@es-joy/jsoe 0.20.6 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.md +4 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/package.json +2 -2
- package/rollup.config.js +2 -0
- package/src/deepEqual.js +1 -0
- package/src/deepEqual.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/.pnpm/jamilih@0.59.2/node_modules/jamilih/dist/jml-es.js","../node_modules/.pnpm/typeson-registry@11.0.0/node_modules/typeson-registry/dist/index.min.js","../src/utils/templateUtils.js","../src/utils/dialogs.js","../src/typeChoices.js","../src/utils/jsonPointer.js","../src/formats/json.js","../src/formats/structuredCloning.js","../src/formats/indexedDBKey.js","../node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/index.mjs","../node_modules/.pnpm/zodex@https+++codeload.github.com+brettz9+zodex+tar.gz+ce5ef4452f96cb5807a8dfc8e43983ca8dadb5_yvxbxdbcfpggxozgef7cp74you/node_modules/zodex/dist/esm/dezerialize.js","../src/utils/objects.js","../src/formats/schema.js","../src/formats.js","../src/fundamentalTypes/nullType.js","../src/subTypes/trueType.js","../src/subTypes/falseType.js","../src/fundamentalTypes/nanType.js","../src/utils/types.js","../src/subTypes/blobHTMLType.js","../src/fundamentalTypes/booleanType.js","../src/fundamentalTypes/numberType.js","../src/fundamentalTypes/bigintType.js","../src/fundamentalTypes/bigintObjectType.js","../src/fundamentalTypes/stringType.js","../src/fundamentalTypes/arrayReferenceType.js","../src/fundamentalTypes/objectReferenceType.js","../src/utils/FileList.js","../src/fundamentalTypes/arrayType.js","../src/fundamentalTypes/tupleType.js","../src/fundamentalTypes/objectType.js","../src/fundamentalTypes/recordType.js","../src/fundamentalTypes/dateType.js","../src/fundamentalTypes/enumType.js","../src/fundamentalTypes/setType.js","../src/fundamentalTypes/mapType.js","../src/fundamentalTypes/literalType.js","../src/fundamentalTypes/undefinedType.js","../src/fundamentalTypes/voidType.js","../src/fundamentalTypes/regexpType.js","../src/fundamentalTypes/BooleanObjectType.js","../src/fundamentalTypes/NumberObjectType.js","../src/fundamentalTypes/StringObjectType.js","../src/superTypes/SpecialRealNumberType.js","../src/superTypes/SpecialNumberType.js","../src/fundamentalTypes/errorType.js","../src/superTypes/errorsSpecialType.js","../src/utils/media.js","../src/fundamentalTypes/fileType.js","../src/fundamentalTypes/filelistType.js","../src/fundamentalTypes/blobType.js","../src/fundamentalTypes/domexceptionType.js","../src/superTypes/domrectType.js","../src/superTypes/dompointType.js","../src/superTypes/dommatrixType.js","../src/superTypes/buffersourceType.js","../src/fundamentalTypes/noneditableType.js","../src/fundamentalTypes/neverType.js","../src/fundamentalTypes/catchType.js","../src/fundamentalTypes/nativeEnumType.js","../src/types.js","../src/formatAndTypeChoices.js"],"sourcesContent":["var _win;\n/*\nPossible todos:\n0. Add XSLT to JML-string stylesheet (or even vice versa)\n0. IE problem: Add JsonML code to handle name attribute (during element creation)\n0. Element-specific: IE object-param handling\n\nTodos inspired by JsonML: https://github.com/mckamey/jsonml/blob/master/jsonml-html.js\n\n0. duplicate attributes?\n0. expand ATTR_MAP\n0. equivalent of markup, to allow strings to be embedded within an object (e.g., {$value: '<div>id</div>'}); advantage over innerHTML in that it wouldn't need to work as the entire contents (nor destroy any existing content or handlers)\n0. More validation?\n0. JsonML DOM Level 0 listener\n0. Whitespace trimming?\n\nJsonML element-specific:\n0. table appending\n0. canHaveChildren necessary? (attempts to append to script and img)\n\nOther Todos:\n0. Note to self: Integrate research from other jml notes\n0. Allow Jamilih to be seeded with an existing element, so as to be able to add/modify attributes and children\n0. Allow array as single first argument\n0. Settle on whether need to use null as last argument to return array (or fragment) or other way to allow appending? Options object at end instead to indicate whether returning array, fragment, first element, etc.?\n0. Allow building of generic XML (pass configuration object)\n0. Allow building content internally as a string (though allowing DOM methods, etc.?)\n0. Support JsonML empty string element name to represent fragments?\n0. Redo browser testing of jml (including ensuring IE7 can work even if test framework can't work)\n*/\n\n/**\n * @typedef {Window & {DocumentFragment: any}} HTMLWindow\n */\n\n/**\n * @typedef {any} ArbitraryValue\n */\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @typedef {{\n * element: Document|HTMLElement|DocumentFragment,\n * attribute: {name: string|null, value: JamilihAttValue},\n * opts: JamilihOptions\n * }} PluginSettings\n */\n\n/**\n * @typedef {object} JamilihPlugin\n * @property {string} name\n * @property {(opts: PluginSettings) => string|Promise<void>} set\n */\n\n/**\n * @type {import('jsdom').DOMWindow|HTMLWindow|undefined}\n */\nlet win;\n\n/* c8 ignore next 3 */\nif (typeof window !== 'undefined' && window) {\n win = window;\n}\n\n/* c8 ignore next */\nlet doc = typeof document !== 'undefined' && document || ((_win = win) === null || _win === void 0 ? void 0 : _win.document);\n\n// STATIC PROPERTIES\n\nconst possibleOptions = ['$plugins',\n// '$mode', // Todo (SVG/XML)\n// '$state', // Used internally\n'$map' // Add any other options here\n];\n\nconst NS_HTML = 'http://www.w3.org/1999/xhtml',\n hyphenForCamelCase = /-([a-z])/gu;\nconst ATTR_MAP = new Map([['maxlength', 'maxLength'], ['minlength', 'minLength'], ['readonly', 'readOnly']]);\n\n// We define separately from ATTR_DOM for clarity (and parity with JsonML) but no current need\n// We don't set attribute esp. for boolean atts as we want to allow setting of `undefined`\n// (e.g., from an empty variable) on templates to have no effect\nconst BOOL_ATTS = ['checked', 'defaultChecked', 'defaultSelected', 'disabled', 'indeterminate', 'open',\n// Dialog elements\n'readOnly', 'selected'];\n\n// From JsonML\nconst ATTR_DOM = [...BOOL_ATTS, 'accessKey',\n// HTMLElement\n'async', 'autocapitalize',\n// HTMLElement\n'autofocus', 'contentEditable',\n// HTMLElement through ElementContentEditable\n'defaultValue', 'defer', 'draggable',\n// HTMLElement\n'formnovalidate', 'hidden',\n// HTMLElement\n'innerText',\n// HTMLElement\n'inputMode',\n// HTMLElement through ElementContentEditable\n'ismap', 'multiple', 'novalidate', 'pattern', 'required', 'spellcheck',\n// HTMLElement\n'translate',\n// HTMLElement\n'value', 'willvalidate'];\n// Todo: Add more to this as useful for templating\n// to avoid setting through nullish value\nconst NULLABLES = ['autocomplete', 'dir',\n// HTMLElement\n'integrity',\n// script, link\n'lang',\n// HTMLElement\n'max', 'min', 'minLength', 'maxLength', 'title' // HTMLElement\n];\n\n/**\n * @param {string} sel\n * @returns {HTMLElement|null}\n */\nconst $ = sel => {\n if (!doc) {\n throw new Error('No document object');\n }\n return doc.querySelector(sel);\n};\n\n/**\n * @param {string} sel\n * @returns {HTMLElement[]}\n */\nconst $$ = sel => {\n if (!doc) {\n throw new Error('No document object');\n }\n return [... /** @type {NodeListOf<HTMLElement>} */doc.querySelectorAll(sel)];\n};\n\n/**\n* Retrieve the (lower-cased) HTML name of a node.\n* @static\n* @param {Node} node The HTML node\n* @returns {string} The lower-cased node name\n*/\nfunction _getHTMLNodeName(node) {\n return node.nodeName && node.nodeName.toLowerCase();\n}\n\n/**\n * @private\n * @static\n * @param {Document|DocumentFragment|HTMLElement} parent The parent to which to append the element\n * @param {Node|string} child The element or other node to append to the parent\n * @throws {Error} Rethrow if problem with `append` and unhandled\n * @returns {void}\n */\nfunction _appendNode(parent, child) {\n const parentName = _getHTMLNodeName(parent);\n if (parentName === 'template') {\n /** @type {HTMLTemplateElement} */parent.content.append(child);\n return;\n }\n parent.append(child); // IE9 is now ok with this\n}\n\n/**\n * Attach event in a cross-browser fashion.\n * @static\n * @param {HTMLElement} el DOM element to which to attach the event\n * @param {string} type The DOM event (without 'on') to attach to the element\n * @param {(evt: Event & {target: HTMLElement}) => void} handler The event handler to attach to the element\n * @param {boolean} [capturing] Whether or not the event should be\n * capturing (W3C-browsers only); default is false; NOT IN USE\n * @returns {void}\n */\nfunction _addEvent(el, type, handler, capturing) {\n // @ts-expect-error It's ok\n el.addEventListener(type, handler, Boolean(capturing));\n}\n\n/**\n* Creates a text node of the result of resolving an entity or character reference.\n* @param {'entity'|'decimal'|'hexadecimal'} type Type of reference\n* @param {string} prefix Text to prefix immediately after the \"&\"\n* @param {string} arg The body of the reference\n* @throws {TypeError}\n* @returns {Text} The text node of the resolved reference\n*/\nfunction _createSafeReference(type, prefix, arg) {\n /* c8 ignore next 3 */\n if (!doc) {\n throw new Error('No document defined');\n }\n // For security reasons related to innerHTML, we ensure this string only\n // contains potential entity characters\n if (!/^\\w+$/u.test(arg)) {\n throw new TypeError(`Bad ${type} reference; with prefix \"${prefix}\" and arg \"${arg}\"`);\n }\n const elContainer = doc.createElement('div');\n // Todo: No workaround for XML?\n // eslint-disable-next-line no-unsanitized/property\n elContainer.innerHTML = '&' + prefix + arg + ';';\n return doc.createTextNode(elContainer.innerHTML);\n}\n\n/**\n* @param {string} n0 Whole expression match (including \"-\")\n* @param {string} n1 Lower-case letter match\n* @returns {string} Uppercased letter\n*/\nfunction _upperCase(n0, n1) {\n return n1.toUpperCase();\n}\n\n// Todo: Make as public utility\n/**\n * @param {ArbitraryValue} o\n * @returns {boolean}\n */\nfunction _isNullish(o) {\n return o === null || o === undefined;\n}\n\n// Todo: Make as public utility, but also return types for undefined, boolean, number, document, etc.\n/**\n* @private\n* @static\n* @param {string|JamilihAttributes|JamilihArray|JamilihChildren|\n* JamilihDocumentFragment|JamilihAttributeNode|\n* JamilihOptions|HTMLElement|Document|DocumentFragment|null|undefined} item\n* @returns {\"string\"|\"null\"|\"array\"|\"element\"|\"fragment\"|\"object\"|\n* \"symbol\"|\"bigint\"|\"function\"|\"number\"|\"boolean\"|\"undefined\"|\n* \"document\"|\"non-container node\"}\n*/\nfunction _getType(item) {\n const type = typeof item;\n\n // Appease TS\n if (typeof item === 'string' || typeof item === 'undefined') {\n return 'string';\n }\n switch (type) {\n case 'object':\n if (item === null) {\n return 'null';\n }\n if (Array.isArray(item)) {\n return 'array';\n }\n if ('nodeType' in item) {\n switch (item.nodeType) {\n case 1:\n return 'element';\n case 9:\n return 'document';\n case 11:\n return 'fragment';\n default:\n return 'non-container node';\n }\n }\n // Fallthrough\n default:\n return type;\n }\n}\n\n/**\n* @private\n* @static\n* @param {DocumentFragment} frag\n* @param {Node} node\n* @returns {DocumentFragment}\n*/\nfunction _fragReducer(frag, node) {\n frag.append(node);\n return frag;\n}\n\n/**\n* @private\n* @static\n* @param {Object<string, string>} xmlnsObj\n* @returns {(...n: string[]) => string}\n*/\nfunction _replaceDefiner(xmlnsObj) {\n /**\n * @param {string[]} n\n * @returns {string}\n */\n return function (...n) {\n const n0 = n[0];\n let retStr = xmlnsObj[''] ? ' xmlns=\"' + xmlnsObj[''] + '\"' : n0; // Preserve XHTML\n for (const [ns, xmlnsVal] of Object.entries(xmlnsObj)) {\n if (ns !== '') {\n retStr += ' xmlns:' + ns + '=\"' + xmlnsVal + '\"';\n }\n }\n return retStr;\n };\n}\n\n/**\n * @callback ChildrenToJMLCallback\n * @param {JamilihArray|JamilihChildType|string} childNodeJML\n * @param {Integer} i\n * @returns {void}\n */\n\n/**\n * @private\n * @static\n * @param {Node} node\n * @returns {ChildrenToJMLCallback}\n */\nfunction _childrenToJML(node) {\n return function (childNodeJML, i) {\n const cn = node.childNodes[i];\n const j = Array.isArray(childNodeJML) ? jml(... /** @type {JamilihArray} */childNodeJML) : jml(childNodeJML);\n cn.replaceWith(j);\n };\n}\n\n/**\n * Keep this in sync with `JamilihArray`'s first argument (minus `Document`).\n * @typedef {JamilihDoc|JamilihDoctype|JamilihTextNode|\n* JamilihAttributeNode|JamilihOptions|ElementName|HTMLElement|\n* JamilihDocumentFragment\n* } JamilihFirstArg\n*/\n\n/**\n* @callback JamilihAppender\n* @param {JamilihArray|JamilihFirstArg|Node|TextNodeString} childJML\n* @returns {void}\n*/\n\n/**\n* @private\n* @static\n* @param {ParentNode} node\n* @returns {JamilihAppender}\n*/\nfunction _appendJML(node) {\n return function (childJML) {\n if (typeof childJML === 'string' || typeof childJML === 'number') {\n throw new TypeError('Unexpected text string/number in the head');\n }\n if (Array.isArray(childJML)) {\n node.append(jml(...childJML));\n } else if (typeof childJML === 'object' && 'nodeType' in childJML) {\n node.append(childJML);\n } else {\n node.append(jml(childJML));\n }\n };\n}\n\n/**\n* @callback appender\n* @param {JamilihArray|JamilihFirstArg|Node|TextNodeString} childJML\n* @returns {void}\n*/\n\n/**\n* @private\n* @static\n* @param {ParentNode} node\n* @returns {appender}\n*/\nfunction _appendJMLOrText(node) {\n return function (childJML) {\n if (typeof childJML === 'string' || typeof childJML === 'number') {\n node.append(String(childJML));\n } else if (Array.isArray(childJML)) {\n node.append(jml(...childJML));\n } else if (typeof childJML === 'object' && 'nodeType' in childJML) {\n node.append(childJML);\n } else {\n node.append(jml(childJML));\n }\n };\n}\n\n/**\n* @private\n* @static\n*/\n/*\nfunction _DOMfromJMLOrString (childNodeJML) {\n if (typeof childNodeJML === 'string') {\n return doc.createTextNode(childNodeJML);\n }\n return jml(...childNodeJML);\n}\n*/\n\n/**\n* @typedef {HTMLElement|DocumentFragment|Comment|Attr|\n* Text|Document|DocumentType|ProcessingInstruction|CDATASection} JamilihReturn\n*/\n// 'string|JamilihOptions|JamilihDocumentFragment|JamilihAttributes|(string|JamilihArray)[]\n\n/**\n * Can either be an array of:\n * 1. JamilihAttributes followed by an array of JamilihArrays or Elements.\n * (Cannot be multiple single JamilihArrays despite TS type).\n * 2. Any number of JamilihArrays.\n * @typedef {[(JamilihAttributes|JamilihArray|JamilihArray[]|HTMLElement), ...(JamilihArray|JamilihArray[]|HTMLElement)[]]} TemplateJamilihArray\n */\n\n/**\n * @typedef {(JamilihArray|HTMLElement)[]} ShadowRootJamilihArrayContainer\n */\n\n/**\n * @typedef {{\n* open?: boolean|ShadowRootJamilihArrayContainer,\n* closed?: boolean|ShadowRootJamilihArrayContainer,\n* template?: string|HTMLTemplateElement|TemplateJamilihArray,\n* content?: ShadowRootJamilihArrayContainer|DocumentFragment\n* }} JamilihShadowRootObject\n */\n\n/**\n * @typedef {{[key: string]: string}} XmlnsAttributeObject\n */\n\n/**\n * @typedef {null|XmlnsAttributeObject} XmlnsAttributeValue\n */\n\n/**\n * @typedef {{\n * [key: string]: string|number|null|undefined|DatasetAttributeObject\n * }} DatasetAttributeObject\n */\n\n/**\n * @typedef {string|undefined|{[key: string]: string|null}} StyleAttributeValue\n */\n\n/**\n * @typedef {(this: HTMLElement, event: Event & {target: HTMLElement}) => void} EventHandler\n */\n\n/**\n * @typedef {{\n * [key: string]: EventHandler|[EventHandler, boolean]\n * }} OnAttributeObject\n */\n\n/**\n * @typedef {{\n * $on?: OnAttributeObject|null\n * }} OnAttribute\n */\n\n/**\n * @typedef {boolean} BooleanAttribute\n */\n\n/**\n * @typedef {((this: HTMLElement, event?: Event) => void)} HandlerAttributeValue\n */\n\n/* eslint-disable jsdoc/valid-types -- jsdoc-type-pratt-parser Bug */\n/**\n * @typedef {{\n * [key: string]: HandlerAttributeValue\n * }} OnHandlerObject\n */\n\n/**\n * @typedef {number} StringifiableNumber\n */\n\n/**\n * @typedef {{\n * name: string,\n * systemId?: string,\n * publicId?: string\n * }} JamilihDocumentType\n */\n\n/**\n * @typedef {string|{extends?: string}} DefineOptions\n */\n\n/**\n * @typedef {{[key: string]: string|number|boolean|((this: DefineMixin, ...args: any[]) => any)}} DefineMixin\n */\n\n/**\n * @typedef {{\n * new (): HTMLElement;\n * prototype: HTMLElement & {[key: string]: any}\n * }} DefineConstructor\n */\n/* eslint-enable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/131 */\n\n/**\n * @typedef {(this: HTMLElement) => void} DefineUserConstructor\n */\n\n/**\n * @typedef {[DefineConstructor|DefineUserConstructor|DefineMixin, DefineOptions?]|[DefineConstructor|DefineUserConstructor, DefineMixin?, DefineOptions?]} DefineObjectArray\n */\n\n/**\n * @typedef {DefineObjectArray|DefineConstructor|DefineMixin|DefineUserConstructor} DefineObject\n */\n\n/**\n * @typedef {{elem?: HTMLElement, [key: string]: any}} SymbolObject\n */\n\n/**\n * @typedef {[symbol|string, ((this: HTMLElement, ...args: any[]) => any)|SymbolObject]} SymbolArray\n */\n\n/**\n * @typedef {null|undefined} NullableAttributeValue\n */\n\n/**\n * @typedef {[string, object]|string|{[key: string]: any}} PluginValue\n */\n\n/**\n * @typedef {(string|NullableAttributeValue|BooleanAttribute|\n * JamilihArray|JamilihShadowRootObject|StringifiableNumber|\n * JamilihDocumentType|JamilihDocument|XmlnsAttributeValue|\n * OnAttributeObject|\n * HandlerAttributeValue|DefineObject|SymbolArray|PluginReference|\n * PluginValue\n * )} JamilihAttValue\n */\n\n/**\n * @typedef {{\n* [key: string]: string|number|((this: HTMLElement, ...args: any[]) => any)\n* }} DataAttributeObject\n*/\n\n/**\n * @typedef {{\n * $data?: true|string[]|Map<any, any>|WeakMap<any, any>|DataAttributeObject|\n * [undefined, DataAttributeObject]|\n * [Map<any, any>|WeakMap<any, any>|undefined, DataAttributeObject]\n * }} DataAttribute\n */\n\n/**\n * @typedef {{\n * dataset?: DatasetAttributeObject\n * }} DatasetAttribute\n */\n\n/**\n * @typedef {{\n * style?: StyleAttributeValue\n * }} StyleAttribute\n */\n\n/**\n * @typedef {{\n * $shadow?: JamilihShadowRootObject\n * }} JamilihShadowRootAttribute\n */\n\n/* eslint-disable jsdoc/valid-types -- jsdoc-type-pratt-parser Bug */\n/**\n * @typedef {{\n * is?: string|null,\n * $define?: DefineObject\n * }} DefineAttribute\n */\n/* eslint-enable jsdoc/valid-types -- jsdoc-type-pratt-parser Bug */\n\n/**\n * @typedef {{\n * $custom?: {[key: string]: any}\n * }} CustomAttribute\n */\n\n/**\n * @typedef {{\n * $symbol?: SymbolArray\n * }} SymbolAttribute\n */\n\n/**\n * @typedef {{\n * xmlns?: string|null|XmlnsAttributeObject\n * }} XmlnsAttribute\n */\n\n/**\n * `OnHandlerObject &` wasn't working, so added `HandlerAttributeValue`.\n * @typedef {DataAttribute & StyleAttribute & JamilihShadowRootAttribute &\n * DefineAttribute & DatasetAttribute & CustomAttribute & SymbolAttribute &\n * OnAttribute & XmlnsAttribute &\n * Partial<JamilihAttributeNode> & Partial<JamilihTextNode> &\n * Partial<JamilihDoc> & Partial<JamilihDoctype> & {\n * [key: string]: JamilihAttValue|HandlerAttributeValue,\n * }} JamilihAttributes\n */\n\n/**\n * @typedef {{\n * title?: string,\n * childNodes?: JamilihChildType[],\n * $DOCTYPE?: JamilihDocumentType,\n * head?: JamilihChildren\n * body?: JamilihChildren\n * }} JamilihDocument\n */\n\n/**\n * @typedef {{\n * $document: JamilihDocument\n * }} JamilihDoc\n */\n\n/**\n * @typedef {{$DOCTYPE: JamilihDocumentType}} JamilihDoctype\n */\n\n/**\n * @typedef {JamilihArray|TextNodeString|HTMLElement} JamilihDocumentFragmentContent\n */\n\n/**\n * @typedef {{'#': JamilihDocumentFragmentContent[]}} JamilihDocumentFragment\n */\n\n/**\n * @typedef {string} ElementName\n */\n\n/**\n * @typedef {string|number} TextNodeString\n */\n\n/**\n * @typedef {{[key: string]: string}} PluginReference\n */\n\n/**\n * @typedef {(\n * JamilihArray|TextNodeString|HTMLElement|Comment|ProcessingInstruction|\n * Text|DocumentFragment|JamilihProcessingInstruction|JamilihDocumentFragment|\n * PluginReference\n * )[]} JamilihChildren\n */\n\n// Todo: DocumentType, Comment, ProcessingInstruction, Text\n// Todo: JamilihCDATANode, JamilihComment, JamilihProcessingInstruction\n/**\n * @typedef {Document|ElementName|HTMLElement|DocumentFragment|\n * JamilihDocumentFragment|JamilihDoc|JamilihDoctype|JamilihTextNode|\n * JamilihAttributeNode} JamilihFirstArgument\n */\n\n/**\n * This would be clearer with overrides, but using as typedef.\n *\n * The optional 0th argument is an Jamilih options object or fragment.\n *\n * The first argument is the element to create (by lower-case name) or DOM element.\n *\n * The second optional argument are attributes to add with the key as the\n * attribute name and value as the attribute value.\n * The third optional argument are an array of children for this element\n * (but raw DOM elements are required to be specified within arrays since\n * could not otherwise be distinguished from siblings being added).\n * The fourth optional argument are a sequence of sibling Elements, represented\n * as DOM elements, or string/attributes/children sequences.\n * The fifth optional argument is the parent to which to attach the element\n * (always the last unless followed by null, in which case it is the\n * second-to-last).\n * The sixth last optional argument is null, used to indicate an array of elements\n * should be returned.\n * @typedef {[\n * JamilihOptions|JamilihFirstArgument,\n * (JamilihFirstArgument|\n * JamilihAttributes|\n * JamilihChildren|\n * HTMLElement|ShadowRoot|\n * null)?,\n * (JamilihAttributes|\n * JamilihChildren|\n * HTMLElement|ShadowRoot|\n * ElementName|null)?,\n * ...(JamilihAttributes|\n * JamilihChildren|\n * HTMLElement|ShadowRoot|\n * ElementName|null)[]\n * ]} JamilihArray\n */\n\n/**\n * @typedef {[\n * (string|HTMLElement|ShadowRoot), (JamilihArray[]|JamilihAttributes|HTMLElement|ShadowRoot|null)?, ...(JamilihArray[]|HTMLElement|JamilihAttributes|ShadowRoot|null)[]\n * ]} JamilihArrayPostOptions\n */\n\n/**\n * @typedef {{\n * root: [Map<HTMLElement,any>|WeakMap<HTMLElement,any>, any],\n * [key: string]: [Map<HTMLElement,any>|WeakMap<HTMLElement,any>, any]\n * }} MapWithRoot\n */\n\n/**\n * @typedef {\"root\"|\"attributeValue\"|\"element\"|\"fragment\"|\"children\"|\"fragmentChildren\"} TraversalState\n */\n\n/**\n * @typedef {object} JamilihOptions\n * @property {TraversalState} [$state]\n * @property {JamilihPlugin[]} [$plugins]\n * @property {MapWithRoot|[Map<HTMLElement,any>|WeakMap<HTMLElement,any>, any]} [$map]\n */\n\n/**\n * @param {Document|HTMLElement|DocumentFragment} elem\n * @param {string|null} att\n * @param {JamilihAttValue} attVal\n * @param {JamilihOptions} opts\n * @param {TraversalState} [state]\n * @returns {Promise<void>|string|null}\n */\nfunction checkPluginValue(elem, att, attVal, opts, state) {\n opts.$state = state !== null && state !== void 0 ? state : 'attributeValue';\n if (attVal && typeof attVal === 'object') {\n const matchingPlugin = getMatchingPlugin(opts, Object.keys(attVal)[0]);\n if (matchingPlugin) {\n return matchingPlugin.set({\n opts,\n element: elem,\n attribute: {\n name: att,\n value: attVal\n }\n });\n }\n }\n return (/** @type {string} */attVal\n );\n}\n\n/**\n * @param {JamilihOptions} opts\n * @param {string} pluginName\n * @returns {JamilihPlugin|undefined}\n */\nfunction getMatchingPlugin(opts, pluginName) {\n return opts.$plugins && opts.$plugins.find(p => {\n return p.name === pluginName;\n });\n}\n\n/* eslint-disable jsdoc/valid-types -- pratt parser bug */\n/**\n * @template T\n * @typedef {T[keyof T]} ValueOf\n */\n/* eslint-enable jsdoc/valid-types -- pratt parser bug */\n\n/* eslint-disable jsdoc/valid-types -- pratt parser bug */\n/**\n * Creates an XHTML or HTML element (XHTML is preferred, but only in browsers\n * that support); any element after element can be omitted, and any subsequent\n * type or types added afterwards.\n * @template {JamilihArray} T\n * @param {T} args\n * @returns {T extends [keyof HTMLElementTagNameMap, any?, any?, any?]\n * ? HTMLElementTagNameMap[T[0]] : JamilihReturn}\n * The newly created (and possibly already appended)\n * element or array of elements\n */\nconst jml = function jml(...args) {\n /* eslint-enable jsdoc/valid-types -- pratt parser bug */\n if (!win) {\n throw new Error('No window object');\n }\n if (!doc) {\n throw new Error('No document object');\n }\n\n /** @type {(Document|DocumentFragment|HTMLElement) & {[key: string]: any}} */\n let elem = doc.createDocumentFragment();\n /**\n *\n * @param {JamilihAttributes} atts\n * @throws {TypeError}\n * @returns {void}\n */\n function _checkAtts(atts) {\n /* c8 ignore next 3 */\n if (!doc) {\n throw new Error('No document object');\n }\n for (let [att, attVal] of Object.entries(atts)) {\n var _ATTR_MAP$get;\n att = (_ATTR_MAP$get = ATTR_MAP.get(att)) !== null && _ATTR_MAP$get !== void 0 ? _ATTR_MAP$get : att;\n\n /**\n * @typedef {any} ElementExpando\n */\n\n if (NULLABLES.includes(att)) {\n attVal = checkPluginValue(elem, att, /** @type {string|JamilihArray} */attVal, opts);\n if (!_isNullish(attVal)) {\n /** @type {ElementExpando} */elem[att] = attVal;\n }\n continue;\n } else if (ATTR_DOM.includes(att)) {\n attVal = checkPluginValue(elem, att, /** @type {string|JamilihArray} */attVal, opts);\n /** @type {ElementExpando} */\n elem[att] = attVal;\n continue;\n }\n switch (att) {\n /*\n Todos:\n 0. JSON mode to prevent event addition\n 0. {$xmlDocument: []} // doc.implementation.createDocument\n 0. Accept array for any attribute with first item as prefix and second as value?\n 0. {$: ['xhtml', 'div']} for prefixed elements\n case '$': // Element with prefix?\n nodes[nodes.length] = elem = doc.createElementNS(attVal[0], attVal[1]);\n break;\n */\n case '#':\n {\n // Document fragment\n opts.$state = 'fragmentChildren';\n nodes[nodes.length] = jml(opts, /** @type {JamilihArray[]} */attVal);\n break;\n }\n case '$shadow':\n {\n const {\n open,\n closed\n } = /** @type {JamilihShadowRootObject} */attVal;\n let {\n content,\n template\n } = /** @type {JamilihShadowRootObject} */attVal;\n const shadowRoot = /** @type {HTMLElement} */elem.attachShadow({\n mode: closed || open === false ? 'closed' : 'open'\n });\n if (template) {\n if (Array.isArray(template)) {\n template = /** @type {HTMLTemplateElement} */\n _getType(template[0]) === 'object' ? jml('template', ...\n /**\n * @type {[\n * JamilihAttributes, ...(JamilihArray[]|HTMLElement)[]\n * ]}\n */\n template, doc.body) : jml('template',\n /**\n * @type {JamilihArray[]|HTMLElement}\n */\n template, doc.body);\n } else if (typeof template === 'string') {\n template = /** @type {HTMLTemplateElement} */$(template);\n }\n jml( /** @type {HTMLTemplateElement} */\n /** @type {HTMLTemplateElement} */template.content.cloneNode(true), shadowRoot);\n } else {\n if (!content) {\n if (open !== true) {\n content = open || typeof closed === 'boolean' ? content : closed;\n }\n }\n if (content && typeof content !== 'boolean') {\n if (Array.isArray(content)) {\n jml({\n '#': content\n }, shadowRoot);\n } else {\n jml(content, shadowRoot);\n }\n }\n }\n break;\n }\n case '$state':\n {\n // Handled internally\n break;\n }\n case 'is':\n {\n // Currently only in Chrome\n // Handled during element creation\n break;\n }\n case '$custom':\n {\n Object.assign(elem, attVal);\n break;\n }\n case '$define':\n {\n if (!('localName' in elem)) {\n throw new Error('Element expected for `$define`');\n }\n const localName = elem.localName.toLowerCase();\n // Note: customized built-ins sadly not working yet\n const customizedBuiltIn = !localName.includes('-');\n\n // We check attribute in case this is a preexisting DOM element\n // const {is} = atts;\n let is;\n if (customizedBuiltIn) {\n is = elem.getAttribute('is');\n if (!is) {\n if (!Object.hasOwn(atts, 'is')) {\n throw new TypeError(`Expected \\`is\\` with \\`$define\\` on built-in; args: ${JSON.stringify(args)}`);\n }\n atts.is = /** @type {string} */checkPluginValue(elem, 'is', atts.is, opts);\n elem.setAttribute('is', atts.is);\n ({\n is\n } = atts);\n }\n }\n const def = customizedBuiltIn ? /** @type {string} */is : localName;\n if (window.customElements.get(def)) {\n break;\n }\n\n /**\n * @param {DefineUserConstructor} [cnstrct]\n * @returns {DefineConstructor}\n */\n const getConstructor = cnstrct => {\n /* c8 ignore next 3 */\n if (!doc) {\n throw new Error('No document object');\n }\n const baseClass = typeof options === 'object' && typeof options.extends === 'string' ? /** @type {typeof HTMLElement} */doc.createElement(options.extends).constructor : customizedBuiltIn ? /** @type {typeof HTMLElement} */doc.createElement(localName).constructor : window.HTMLElement;\n\n /**\n * Class wrapping base class.\n */\n return cnstrct ? class extends baseClass {\n /**\n * Calls user constructor.\n */\n constructor() {\n super();\n /** @type {DefineUserConstructor} */\n cnstrct.call(this);\n }\n } : class extends baseClass {};\n };\n\n /** @type {DefineConstructor|DefineUserConstructor|DefineMixin} */\n let cnstrctr;\n\n /**\n * @type {DefineOptions|undefined}\n */\n let options;\n let mixin;\n const defineObj = /** @type {DefineObject} */attVal;\n if (Array.isArray(defineObj)) {\n if (defineObj.length <= 2) {\n [cnstrctr, options] = defineObj;\n if (typeof options === 'string') {\n // Todo: Allow creating a definition without using it;\n // that may be the only reason to have a string here which\n // differs from the `localName` anyways\n options = {\n extends: options\n };\n } else if (options && !Object.hasOwn(options, 'extends')) {\n mixin = options;\n }\n if (typeof cnstrctr === 'object') {\n mixin = cnstrctr;\n cnstrctr = getConstructor();\n }\n } else {\n [cnstrctr, mixin, options] = defineObj;\n if (typeof options === 'string') {\n options = {\n extends: options\n };\n }\n }\n } else if (typeof defineObj === 'function') {\n cnstrctr = /** @type {DefineConstructor} */defineObj;\n } else {\n mixin = defineObj;\n cnstrctr = getConstructor();\n }\n if (!cnstrctr.toString().startsWith('class')) {\n cnstrctr = getConstructor( /** @type {DefineUserConstructor} */cnstrctr);\n }\n if (!options && customizedBuiltIn) {\n options = {\n extends: localName\n };\n }\n if (mixin) {\n Object.entries(mixin).forEach(([methodName, method]) => {\n /** @type {DefineConstructor} */cnstrctr.prototype[methodName] = method;\n });\n }\n // console.log('def', def, '::', typeof options === 'object' ? options : undefined);\n window.customElements.define(def, /** @type {DefineConstructor} */cnstrctr, typeof options === 'object' ? options : undefined);\n break;\n }\n case '$symbol':\n {\n const [symbol, func] = /** @type {SymbolArray} */attVal;\n if (typeof func === 'function') {\n const funcBound = func.bind( /** @type {HTMLElement} */elem);\n if (typeof symbol === 'string') {\n // @ts-expect-error\n elem[Symbol.for(symbol)] = funcBound;\n } else {\n // @ts-expect-error\n elem[symbol] = funcBound;\n }\n } else {\n const obj = func;\n obj.elem = /** @type {HTMLElement} */elem;\n if (typeof symbol === 'string') {\n // @ts-expect-error\n elem[Symbol.for(symbol)] = obj;\n } else {\n // @ts-expect-error\n elem[symbol] = obj;\n }\n }\n break;\n }\n case '$data':\n {\n setMap( /** @type {true|string[]|Map<any, any>|WeakMap<any, any>|DataAttributeObject} */\n attVal);\n break;\n }\n case '$attribute':\n {\n // Attribute node\n const attr = /** @type {JamilihAttributeNodeValue} */attVal;\n const node = attr.length === 3 ? doc.createAttributeNS(attr[0], attr[1]) : doc.createAttribute( /** @type {string} */attr[0]);\n node.value = /** @type {string} */attr[attr.length - 1];\n nodes[nodes.length] = node;\n break;\n }\n case '$text':\n {\n // Todo: Also allow as jml(['a text node']) (or should that become a fragment)?\n const node = doc.createTextNode( /** @type {string} */attVal);\n nodes[nodes.length] = node;\n break;\n }\n case '$document':\n {\n // Todo: Conditionally create XML document\n const docNode = doc.implementation.createHTMLDocument();\n if (!attVal) {\n throw new Error('Bad attribute value');\n }\n const jamlihDoc = /** @type {JamilihDocument} */attVal;\n if (jamlihDoc.childNodes) {\n // Remove any extra nodes created by createHTMLDocument().\n const j = jamlihDoc.childNodes.length;\n while (docNode.childNodes[j]) {\n const cn = docNode.childNodes[j];\n cn.remove();\n // `j` should stay the same as removing will cause node to be present\n }\n\n jamlihDoc.childNodes.forEach(_childrenToJML(docNode));\n } else {\n if (jamlihDoc.$DOCTYPE) {\n var _docNode$firstChild;\n const dt = {\n $DOCTYPE: jamlihDoc.$DOCTYPE\n };\n const doctype = jml(dt);\n (_docNode$firstChild = docNode.firstChild) === null || _docNode$firstChild === void 0 ? void 0 : _docNode$firstChild.replaceWith(doctype);\n }\n const html = docNode.querySelector('html');\n const head = html === null || html === void 0 ? void 0 : html.querySelector('head');\n const body = html === null || html === void 0 ? void 0 : html.querySelector('body');\n if (jamlihDoc.title || jamlihDoc.head) {\n const meta = doc.createElement('meta');\n // eslint-disable-next-line unicorn/text-encoding-identifier-case -- HTML\n meta.setAttribute('charset', 'utf-8');\n head === null || head === void 0 ? void 0 : head.append(meta);\n if (jamlihDoc.title) {\n docNode.title = jamlihDoc.title; // Appends after meta\n }\n\n if (jamlihDoc.head && head) {\n // each child of `head` is:\n // (JamilihArray|TextNodeString|HTMLElement|Comment|ProcessingInstruction|\n // Text|DocumentFragment|JamilihProcessingInstruction|JamilihDocumentFragment)\n\n // * @typedef {JamilihDoc|JamilihDoctype|JamilihTextNode|\n // * JamilihAttributeNode|JamilihOptions|ElementName|HTMLElement|\n // * JamilihDocumentFragment\n // * } JamilihFirstArg\n // appender childJML param is: JamilihArray|JamilihFirstArg\n\n jamlihDoc.head.forEach(_appendJML(head));\n }\n }\n if (jamlihDoc.body && body) {\n jamlihDoc.body.forEach(_appendJMLOrText(body));\n }\n }\n nodes[nodes.length] = docNode;\n break;\n }\n case '$DOCTYPE':\n {\n const doctype = /** @type {JamilihDocumentType} */attVal;\n const node = doc.implementation.createDocumentType(doctype.name, doctype.publicId || '', doctype.systemId || '');\n nodes[nodes.length] = node;\n break;\n }\n case '$on':\n {\n // Events\n // Allow for no-op by defaulting to `{}`\n for (let [p2, val] of Object.entries( /** @type {OnAttributeObject} */attVal || {})) {\n if (typeof val === 'function') {\n val = [val, false];\n }\n if (typeof val[0] !== 'function') {\n throw new TypeError(`Expect a function for \\`$on\\`; args: ${JSON.stringify(args)}`);\n }\n _addEvent( /** @type {HTMLElement} */elem, p2, val[0], val[1]); // element, event name, handler, capturing\n }\n\n break;\n }\n case 'className':\n case 'class':\n attVal = checkPluginValue(elem, att, /** @type {string} */attVal, opts);\n if (!_isNullish(attVal)) {\n elem.className = attVal;\n }\n break;\n case 'dataset':\n {\n // Map can be keyed with hyphenated or camel-cased properties\n /**\n * @param {DatasetAttributeObject} atVal\n * @param {string} startProp\n * @returns {void}\n */\n const recurse = (atVal, startProp) => {\n let prop = '';\n const pastInitialProp = startProp !== '';\n Object.keys(atVal).forEach(key => {\n const value = atVal[key];\n prop = pastInitialProp ? startProp + key.replace(hyphenForCamelCase, _upperCase).replace(/^([a-z])/u, _upperCase) : startProp + key.replace(hyphenForCamelCase, _upperCase);\n if (value === null || typeof value !== 'object') {\n if (!_isNullish(value)) {\n elem.dataset[prop] = value;\n }\n prop = startProp;\n return;\n }\n recurse(value, prop);\n });\n };\n recurse( /** @type {DatasetAttributeObject} */attVal, '');\n break;\n // Todo: Disable this by default unless configuration explicitly allows (for security)\n }\n // #if IS_REMOVE\n // Don't remove this `if` block (for sake of no-innerHTML build)\n case 'innerHTML':\n if (!_isNullish(attVal)) {\n // eslint-disable-next-line no-unsanitized/property\n elem.innerHTML = attVal;\n }\n break;\n // #endif\n case 'htmlFor':\n case 'for':\n if (elStr === 'label') {\n attVal = checkPluginValue(elem, att, /** @type {string} */attVal, opts);\n if (!_isNullish(attVal)) {\n elem.htmlFor = attVal;\n }\n break;\n }\n attVal = checkPluginValue(elem, att, /** @type {string} */attVal, opts);\n elem.setAttribute(att, attVal);\n break;\n case 'xmlns':\n // Already handled\n break;\n default:\n {\n if (att.startsWith('on')) {\n attVal = checkPluginValue(elem, att, /** @type {HandlerAttributeValue} */attVal, opts);\n elem[att] = attVal;\n // _addEvent(elem, att.slice(2), attVal, false); // This worked, but perhaps the user wishes only one event\n break;\n }\n if (att === 'style') {\n attVal = /** @type {string} */\n checkPluginValue(elem, att, /** @type {StyleAttributeValue} */attVal, opts);\n if (_isNullish(attVal)) {\n break;\n }\n if (typeof attVal === 'object') {\n for (const [p2, styleVal] of Object.entries(attVal)) {\n if (!_isNullish(styleVal)) {\n // Todo: Handle aggregate properties like \"border\"\n if (p2 === 'float') {\n elem.style.cssFloat = styleVal;\n elem.style.styleFloat = styleVal; // Harmless though we could make conditional on older IE instead\n } else {\n elem.style[p2.replace(hyphenForCamelCase, _upperCase)] = styleVal;\n }\n }\n }\n break;\n }\n\n // setAttribute unfortunately erases any existing styles\n elem.setAttribute(att, attVal);\n /*\n // The following reorders which is troublesome for serialization, e.g., as used in our testing\n if (elem.style.cssText !== undefined) {\n elem.style.cssText += attVal;\n } else { // Opera\n elem.style += attVal;\n }\n */\n break;\n }\n const pluginName = att;\n const matchingPlugin = getMatchingPlugin(opts, pluginName);\n if (matchingPlugin) {\n matchingPlugin.set({\n opts,\n element: /** @type {HTMLElement} */nodes[0],\n attribute: {\n name: pluginName,\n value: /** @type {PluginReference} */attVal\n }\n });\n break;\n }\n attVal = checkPluginValue(elem, att, /** @type {string} */attVal, opts);\n elem.setAttribute(att, attVal);\n break;\n }\n }\n }\n }\n\n /**\n * @type {JamilihReturn[]}\n */\n const nodes = [];\n\n /** @type {string} */\n let elStr;\n\n /** @type {JamilihOptions} */\n let opts;\n let isRoot = false;\n let argStart = 0;\n if (_getType(args[0]) === 'object' && Object.keys(args[0]).some(key => possibleOptions.includes(key))) {\n opts = /** @type {JamilihOptions} */args[0];\n if (opts.$state === undefined) {\n isRoot = true;\n opts.$state = 'root';\n }\n if (Array.isArray(opts.$map)) {\n opts.$map = {\n root: opts.$map\n };\n }\n if ('$plugins' in opts) {\n if (!Array.isArray(opts.$plugins)) {\n throw new TypeError(`\\`$plugins\\` must be an array; args: ${JSON.stringify(args)}`);\n }\n opts.$plugins.forEach(pluginObj => {\n if (!pluginObj || typeof pluginObj !== 'object') {\n throw new TypeError(`Plugin must be an object; args: ${JSON.stringify(args)}`);\n }\n if (!pluginObj.name || !pluginObj.name.startsWith('$_')) {\n throw new TypeError(`Plugin object name must be present and begin with \\`$_\\`; args: ${JSON.stringify(args)}`);\n }\n if (typeof pluginObj.set !== 'function') {\n throw new TypeError(`Plugin object must have a \\`set\\` method; args: ${JSON.stringify(args)}`);\n }\n });\n }\n argStart = 1;\n } else {\n opts = {\n $state: undefined\n };\n }\n const argc = args.length;\n const defaultMap = opts.$map && /** @type {MapWithRoot} */opts.$map.root;\n\n /**\n * @param {true|string[]|Map<any, any>|WeakMap<any, any>|DataAttributeObject} dataVal\n * @returns {void}\n */\n const setMap = dataVal => {\n let map, obj;\n const defMap = /** @type {[Map<HTMLElement, any> | WeakMap<HTMLElement, any>, any]} */defaultMap;\n // Boolean indicating use of default map and object\n if (dataVal === true) {\n [map, obj] = defMap;\n } else if (Array.isArray(dataVal)) {\n // Array of strings mapping to default\n if (typeof dataVal[0] === 'string') {\n dataVal.forEach(dVal => {\n setMap( /** @type {MapWithRoot} */opts.$map[dVal]);\n });\n return;\n // Array of Map and non-map data object\n }\n\n map = dataVal[0] || defMap[0];\n obj = dataVal[1] || defMap[1];\n // Map\n } else if (/^\\[object (?:Weak)?Map\\]$/u.test([].toString.call(dataVal))) {\n map = dataVal;\n obj = defMap[1];\n // Non-map data object\n } else {\n map = defMap[0];\n obj = dataVal;\n }\n /** @type {Map<HTMLElement, any> | WeakMap<HTMLElement, any>} */\n map.set( /** @type {HTMLElement} */\n elem, obj);\n };\n for (let i = argStart; i < argc; i++) {\n let arg = args[i];\n const type = _getType(arg);\n switch (type) {\n case 'null':\n // null always indicates a place-holder (only needed for last argument if want array returned)\n if (i === argc - 1) {\n // Casting needing unless changing `jml()` signature with overloads\n return (/** @type {ArbitraryValue} */nodes.length <= 1 ? nodes[0]\n // eslint-disable-next-line unicorn/no-array-callback-reference\n : nodes.reduce(_fragReducer, doc.createDocumentFragment())\n ); // nodes;\n }\n\n throw new TypeError(`\\`null\\` values not allowed except as final Jamilih argument; index ${i} on args: ${JSON.stringify(args)}`);\n case 'string':\n // Strings normally indicate elements\n switch (arg) {\n case '!':\n nodes[nodes.length] = doc.createComment( /** @type {string} */args[++i]);\n break;\n case '?':\n {\n arg = /** @type {string} */args[++i];\n let procValue = /** @type {string} */args[++i];\n const val = procValue;\n if (val && typeof val === 'object') {\n const procValues = [];\n for (const [p, procInstVal] of Object.entries(val)) {\n procValues.push(p + '=' + '\"' +\n // https://www.w3.org/TR/xml-stylesheet/#NT-PseudoAttValue\n procInstVal.replace(/\"/gu, '"') + '\"');\n }\n procValue = procValues.join(' ');\n }\n // Firefox allows instructions with \">\" in this method, but not if placed directly!\n try {\n nodes[nodes.length] = doc.createProcessingInstruction(arg, procValue);\n } catch (e) {\n // Getting NotSupportedError in IE, so we try to imitate a processing instruction with a comment\n // innerHTML didn't work\n // var elContainer = doc.createElement('div');\n // elContainer.innerHTML = '<?' + doc.createTextNode(arg + ' ' + procValue).nodeValue + '?>';\n // nodes[nodes.length] = elContainer.innerHTML;\n // Todo: any other way to resolve? Just use XML?\n nodes[nodes.length] = doc.createComment('?' + arg + ' ' + procValue + '?');\n }\n break;\n // Browsers don't support doc.createEntityReference, so we just use this as a convenience\n }\n case '&':\n nodes[nodes.length] = _createSafeReference('entity', '', /** @type {string} */\n args[++i]);\n break;\n case '#':\n // // Decimal character reference - ['#', '01234'] // Ӓ // probably easier to use JavaScript Unicode escapes\n nodes[nodes.length] = _createSafeReference('decimal', arg, String(args[++i]));\n break;\n case '#x':\n // Hex character reference - ['#x', '123a'] // ሺ // probably easier to use JavaScript Unicode escapes\n nodes[nodes.length] = _createSafeReference('hexadecimal', arg, /** @type {string} */\n args[++i]);\n break;\n case '![':\n // '![', ['escaped <&> text'] // <![CDATA[escaped <&> text]]>\n // CDATA valid in XML only, so we'll just treat as text for mutual compatibility\n // Todo: config (or detection via some kind of doc.documentType property?) of whether in XML\n try {\n nodes[nodes.length] = doc.createCDATASection( /** @type {string} */args[++i]);\n } catch (e2) {\n nodes[nodes.length] = doc.createTextNode( /** @type {string} */\n args[i]); // i already incremented\n }\n\n break;\n case '':\n nodes[nodes.length] = elem = doc.createDocumentFragment();\n // Todo: Report to plugins\n opts.$state = 'fragment';\n break;\n default:\n {\n // An element\n elStr = /** @type {string} */arg;\n const atts = args[i + 1];\n if (atts && _getType(atts) === 'object' && /** @type {JamilihAttributes} */atts.is) {\n const {\n is\n } = /** @type {JamilihAttributes} */atts;\n /* c8 ignore next 4 */\n elem = doc.createElementNS\n // Should create separate file for this\n /* eslint-disable object-shorthand -- Casting */ ? /** @type {HTMLElement} */doc.createElementNS(NS_HTML, elStr, {\n is: /** @type {string} */is\n })\n /* c8 ignore next 1 */ : doc.createElement(elStr, {\n is: /** @type {string} */is\n });\n /* eslint-enable object-shorthand -- Casting */\n } else /* c8 ignore next */if (doc.createElementNS) {\n elem = doc.createElementNS(NS_HTML, elStr);\n /* c8 ignore next 3 */\n } else {\n elem = doc.createElement(elStr);\n }\n // Todo: Report to plugins\n opts.$state = 'element';\n nodes[nodes.length] = elem; // Add to parent\n break;\n }\n }\n break;\n case 'object':\n {\n // Non-DOM-element objects indicate attribute-value pairs\n /* c8 ignore next 3 */\n if (!arg || typeof arg !== 'object') {\n throw new Error('Null should not reach here');\n }\n const atts = arg;\n if ('xmlns' in atts) {\n // We handle this here, as otherwise may lose events, etc.\n // As namespace of element already set as XHTML, we need to change the namespace\n // elem.setAttribute('xmlns', atts.xmlns); // Doesn't work\n // Can't set namespaceURI dynamically, renameNode() is not supported, and setAttribute() doesn't work to change the namespace, so we resort to this hack\n const xmlnsObj = /** @type {XmlnsAttributeObject} */atts;\n const replacer = xmlnsObj.xmlns && typeof xmlnsObj.xmlns === 'object' ? _replaceDefiner(xmlnsObj.xmlns) : ' xmlns=\"' + xmlnsObj.xmlns + '\"';\n // try {\n // Also fix DOMParser to work with text/html\n elem = nodes[nodes.length - 1] =\n // Why doesn't `HTMLWindow` have `DOMParser`?\n new /** @type {import('jsdom').DOMWindow} */win.DOMParser().parseFromString(new /** @type {import('jsdom').DOMWindow} */win.XMLSerializer().serializeToString(elem)\n // Mozilla adds XHTML namespace\n .replace(' xmlns=\"' + NS_HTML + '\"',\n // Needed to cast here, despite either overload working\n /** @type {string} */\n replacer), 'application/xml').documentElement;\n // Todo: Report to plugins\n opts.$state = 'element';\n // }catch(e) {alert(elem.outerHTML);throw e;}\n }\n\n _checkAtts( /** @type {JamilihAttributes} */atts);\n break;\n }\n case 'document':\n case 'fragment':\n case 'element':\n /*\n 1) Last element always the parent (put null if don't want parent and want to return array) unless only atts and children (no other elements)\n 2) Individual elements (DOM elements or sequences of string[/object/array]) get added to parent first-in, first-added\n */\n if (i === 0) {\n // Allow wrapping of element, fragment, or document\n elem = /** @type {Document|DocumentFragment|HTMLElement} */arg;\n // Todo: Report to plugins and change for document/fragment\n opts.$state = 'element';\n }\n if (i === argc - 1 || i === argc - 2 && args[i + 1] === null) {\n // parent\n const elsl = nodes.length;\n for (let k = 0; k < elsl; k++) {\n _appendNode( /** @type {Document|DocumentFragment|HTMLElement} */arg, nodes[k]);\n }\n } else {\n nodes[nodes.length] = /** @type {Document|DocumentFragment|HTMLElement} */arg;\n }\n break;\n case 'array':\n {\n // Arrays or arrays of arrays indicate child nodes\n const child = /** @type {JamilihChildren} */arg;\n const cl = child.length;\n for (let j = 0; j < cl; j++) {\n // Go through children array container to handle elements\n const childContent = child[j];\n const childContentType = typeof childContent;\n if (childContent === null || _isNullish(childContent)) {\n throw new TypeError(`Bad children (parent array: ${JSON.stringify(args)}; index ${j} of child: ${JSON.stringify(child)})`);\n }\n switch (childContentType) {\n // Todo: determine whether null or function should have special handling or be converted to text\n case 'string':\n case 'number':\n case 'boolean':\n _appendNode(elem, doc.createTextNode(String(childContent)));\n break;\n default:\n // bigint, symbol, function\n if (typeof childContent !== 'object') {\n throw new TypeError(`Bad children (parent array: ${JSON.stringify(args)}; index ${j} of child: ${JSON.stringify(child)})`);\n }\n if (Array.isArray(childContent)) {\n // Arrays representing child elements\n opts.$state = 'children';\n _appendNode(elem, jml(opts, ...childContent));\n } else if ('#' in childContent) {\n // Fragment\n opts.$state = 'fragmentChildren';\n _appendNode(elem, jml(opts, childContent['#']));\n } else {\n // Single DOM element children or plugin\n let newChildContent;\n if (!('nodeType' in childContent)) {\n newChildContent = /** @type {string} */\n checkPluginValue(elem, null, childContent, opts, 'children');\n }\n _appendNode(elem, /** @type {string|HTMLElement|DocumentFragment|Comment} */\n newChildContent || childContent);\n }\n break;\n }\n }\n break;\n }\n default:\n throw new TypeError(`Unexpected type: ${type}; arg: ${arg}; index ${i} on args: ${JSON.stringify(args)}`);\n }\n }\n const ret = nodes[0] || elem;\n if (isRoot && opts.$map && /** @type {MapWithRoot} */opts.$map.root) {\n setMap(true);\n }\n\n // Casting needing unless changing `jml()` signature with overloads\n return (/** @type {ArbitraryValue} */ret\n );\n};\n\n/**\n * Configuration object.\n * @typedef {object} ToJmlConfig\n * @property {boolean} [stringOutput=false] Whether to output the Jamilih object as a string.\n * @property {boolean} [reportInvalidState=true] If true (the default), will report invalid state errors\n * @property {boolean} [stripWhitespace=false] Strip whitespace for text nodes\n */\n\n/**\n * @typedef {[namespace: string|null, name: string, value?: string]} JamilihAttributeNodeValue\n */\n\n/**\n * @typedef {{\n * $attribute: JamilihAttributeNodeValue\n * }} JamilihAttributeNode\n */\n\n/**\n * @typedef {{\n * $text: string\n * }} JamilihTextNode\n */\n\n/**\n * @typedef {['![', string]} JamilihCDATANode\n */\n\n/**\n * @typedef {['&', string]} JamilihEntityReference\n */\n\n/**\n * @typedef {[code: '?', target: string, value: string]} JamilihProcessingInstruction\n */\n\n/**\n * @typedef {[code: '!', value: string]} JamilihComment\n */\n\n/**\n * @typedef {{\n * nodeType: number,\n * nodeName: string\n * }} Entity\n */\n\n/* eslint-disable no-shadow, unicorn/custom-error-definition */\n/**\n * Polyfill for `DOMException`.\n */\nclass DOMException extends Error {\n /* eslint-enable no-shadow, unicorn/custom-error-definition */\n /**\n * @param {string} message\n * @param {string} name\n */\n constructor(message, name) {\n super(message);\n this.code = 0;\n // eslint-disable-next-line unicorn/custom-error-definition\n this.name = name;\n }\n}\n\n/**\n * @typedef {JamilihArray|JamilihDoctype|\n* JamilihCDATANode|JamilihEntityReference|JamilihProcessingInstruction|\n* JamilihComment|JamilihDocumentFragment} JamilihChildType\n */\n\n/**\n * @typedef {JamilihDoc|JamilihAttributeNode|JamilihChildType} JamilihType\n */\n\n/**\n* Converts a DOM object or a string of HTML into a Jamilih object (or string).\n* @param {string|HTMLElement|Node|Entity} nde If a string, will parse as document\n* @param {ToJmlConfig} [config] Configuration object\n* @throws {TypeError}\n* @returns {JamilihType|string} Array containing the elements which represent\n* a Jamilih object, or, if `stringOutput` is true, it will be the stringified\n* version of such an object\n*/\njml.toJML = function (nde, {\n stringOutput = false,\n reportInvalidState = true,\n stripWhitespace = false\n} = {}) {\n if (!win) {\n throw new Error('No window object set');\n }\n if (typeof nde === 'string') {\n nde = new /** @type {import('jsdom').DOMWindow} */win.DOMParser().parseFromString(nde, 'text/html'); // todo: Give option for XML once implemented and change JSDoc to allow for Element\n }\n\n const dom = /** @type {HTMLElement|Node|Entity} */nde;\n\n /**\n * @todo Find more specific type than `any`\n * @typedef {{[key: (number|string)]: any}} IndexableObject\n */\n\n const ret = /** @type {IndexableObject} */[];\n let parent = ret;\n let parentIdx = 0;\n\n /**\n * @param {string} msg\n * @throws {DOMException}\n * @returns {void}\n */\n function invalidStateError(msg) {\n // These are probably only necessary if working with text/html\n if (reportInvalidState) {\n // INVALID_STATE_ERR per section 9.3 XHTML 5: http://www.w3.org/TR/html5/the-xhtml-syntax.html\n const e = new DOMException(msg, 'INVALID_STATE_ERR');\n e.code = 11;\n throw e;\n }\n }\n\n /**\n *\n * @param {JamilihDocumentType} obj\n * @param {DocumentType} node\n * @returns {void}\n */\n function addExternalID(obj, node) {\n if (node.systemId.includes('\"') && node.systemId.includes(\"'\")) {\n invalidStateError('systemId cannot have both single and double quotes.');\n }\n const {\n publicId,\n systemId\n } = node;\n if (systemId) {\n obj.systemId = systemId;\n }\n if (publicId) {\n obj.publicId = publicId;\n }\n }\n\n /**\n *\n * @param {ArbitraryValue} val\n * @returns {void}\n */\n function set(val) {\n parent[parentIdx] = val;\n parentIdx++;\n }\n\n /**\n * @returns {void}\n */\n function setChildren() {\n set([]);\n parent = parent[parentIdx - 1];\n parentIdx = 0;\n }\n\n /**\n *\n * @param {string} prop1\n * @param {string} [prop2]\n * @returns {void}\n */\n function setObj(prop1, prop2) {\n parent = parent[parentIdx - 1][prop1];\n parentIdx = 0;\n if (prop2) {\n parent = parent[prop2];\n }\n }\n\n /**\n *\n * @param {Node|Entity} nodeOrEntity\n * @param {Object<string, string|null>} namespaces\n * @throws {TypeError}\n * @returns {void}\n */\n function parseDOM(nodeOrEntity, namespaces) {\n // namespaces = clone(namespaces) || {}; // Ensure we're working with a copy, so different levels in the hierarchy can treat it differently\n\n /*\n if ((nodeOrEntity.prefix && nodeOrEntity.prefix.includes(':')) || (nodeOrEntity.localName && nodeOrEntity.localName.includes(':'))) {\n invalidStateError('Prefix cannot have a colon');\n }\n */\n\n const type = 'nodeType' in nodeOrEntity ? nodeOrEntity.nodeType : null;\n if (!type) {\n throw new TypeError('Not an XML type');\n }\n if (type === 5) {\n // ENTITY REFERENCE (though not in browsers (was already resolved\n // anyways), ok to keep for parity with our \"entity\" shorthand)\n set(['&', nodeOrEntity.nodeName]);\n return;\n }\n namespaces = {\n ...namespaces\n };\n const xmlChars = /^([\\u0009\\u000A\\u000D\\u0020-\\uD7FF\\uE000-\\uFFFD]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])*$/u; // eslint-disable-line no-control-regex\n if ([2, 3, 4, 7, 8].includes(type) && /** @type {Node} */nodeOrEntity.nodeValue && !xmlChars.test( /** @type {Node} */nodeOrEntity.nodeValue)) {\n invalidStateError('Node has bad XML character value');\n }\n\n /**\n * @type {IndexableObject}\n */\n let tmpParent;\n\n /**\n * @type {Integer}\n */\n let tmpParentIdx;\n\n /**\n * @returns {void}\n */\n function setTemp() {\n tmpParent = parent;\n tmpParentIdx = parentIdx;\n }\n /**\n * @returns {void}\n */\n function resetTemp() {\n parent = tmpParent;\n parentIdx = tmpParentIdx;\n parentIdx++; // Increment index in parent container of this element\n }\n\n switch (type) {\n case 1:\n {\n // ELEMENT\n const node = /** @type {HTMLElement} */nodeOrEntity;\n setTemp();\n const nodeName = node.nodeName.toLowerCase(); // Todo: for XML, should not lower-case\n\n setChildren(); // Build child array since elements are, except at the top level, encapsulated in arrays\n set(nodeName);\n\n /**\n * @type {{[key: string]: string|null} & {xmlns?: string|null}}\n */\n const start = {};\n let hasNamespaceDeclaration = false;\n if (namespaces[node.prefix || ''] !== node.namespaceURI) {\n namespaces[node.prefix || ''] = node.namespaceURI;\n if (node.prefix) {\n start['xmlns:' + node.prefix] = node.namespaceURI;\n } else if (node.namespaceURI) {\n start.xmlns = node.namespaceURI;\n } else {\n start.xmlns = null;\n }\n hasNamespaceDeclaration = true;\n }\n if (node.attributes.length) {\n set([...node.attributes].reduce(function (obj, att) {\n obj[att.name] = att.value; // Attr.nodeName and Attr.nodeValue are deprecated as of DOM4 as Attr no longer inherits from Node, so we can safely use name and value\n return obj;\n }, start));\n } else if (hasNamespaceDeclaration) {\n set(start);\n }\n const {\n childNodes\n } = node;\n if (childNodes.length) {\n setChildren(); // Element children array container\n [...childNodes].forEach(function (childNode) {\n parseDOM(childNode, namespaces);\n });\n }\n resetTemp();\n break;\n }\n case 2:\n {\n // ATTRIBUTE (should only get here if passing in an attribute node)\n const node = /** @type {Attr} */nodeOrEntity;\n set({\n $attribute: [node.namespaceURI, node.name, node.value]\n });\n break;\n }\n case 3:\n {\n // TEXT\n const node = /** @type {Text} */nodeOrEntity;\n /* c8 ignore next 3 */\n if (!node.nodeValue) {\n throw new Error('Unexpected null comment value');\n }\n if (stripWhitespace && /^\\s+$/u.test(node.nodeValue)) {\n set('');\n return;\n }\n set(node.nodeValue);\n break;\n }\n case 4:\n {\n var _node$nodeValue;\n // CDATA\n const node = /** @type {CDATASection} */nodeOrEntity;\n if ((_node$nodeValue = node.nodeValue) !== null && _node$nodeValue !== void 0 && _node$nodeValue.includes(']]' + '>')) {\n invalidStateError('CDATA cannot end with closing ]]>');\n }\n set(['![', node.nodeValue]);\n break;\n }\n // case 5:\n // Handled earlier\n case 7:\n {\n // PROCESSING INSTRUCTION\n const node = /** @type {ProcessingInstruction} */nodeOrEntity;\n if (/^xml$/iu.test(node.target)) {\n invalidStateError('Processing instructions cannot be \"xml\".');\n }\n if (node.target.includes('?>')) {\n invalidStateError('Processing instruction targets cannot include ?>');\n }\n if (node.target.includes(':')) {\n invalidStateError('The processing instruction target cannot include \":\"');\n }\n if (node.data.includes('?>')) {\n invalidStateError('Processing instruction data cannot include ?>');\n }\n set(['?', node.target, node.data]); // Todo: Could give option to attempt to convert value back into object if has pseudo-attributes\n break;\n }\n case 8:\n {\n // COMMENT\n const node = /** @type {Comment} */nodeOrEntity;\n /* c8 ignore next 3 */\n if (!node.nodeValue) {\n throw new Error('Unexpected null comment value');\n }\n if (node.nodeValue.includes('--') || node.nodeValue.length && node.nodeValue.lastIndexOf('-') === node.nodeValue.length - 1) {\n invalidStateError('Comments cannot include --');\n }\n set(['!', node.nodeValue]);\n break;\n }\n case 9:\n {\n // DOCUMENT\n const node = /** @type {Document} */nodeOrEntity;\n setTemp();\n const docObj = {\n $document: {\n childNodes: []\n }\n };\n set(docObj); // doc.implementation.createHTMLDocument\n\n // Set position to fragment's array children\n setObj('$document', 'childNodes');\n const {\n childNodes\n } = node;\n if (!childNodes.length) {\n invalidStateError('Documents must have a child node');\n }\n // set({$xmlDocument: []}); // doc.implementation.createDocument // Todo: use this conditionally\n\n [...childNodes].forEach(function (childNode) {\n // Can't just do documentElement as there may be doctype, comments, etc.\n // No need for setChildren, as we have already built the container array\n parseDOM(childNode, namespaces);\n });\n resetTemp();\n break;\n }\n case 10:\n {\n // DOCUMENT TYPE\n const node = /** @type {DocumentType} */nodeOrEntity;\n setTemp();\n\n // Can create directly by doc.implementation.createDocumentType\n const start = {\n $DOCTYPE: {\n name: /** @type {DocumentType} */node.name\n }\n };\n const pubIdChar = /^(\\u0020|\\u000D|\\u000A|[a-zA-Z0-9]|[-'()+,./:=?;!*#@$_%])*$/u; // eslint-disable-line no-control-regex\n if (!pubIdChar.test( /** @type {DocumentType} */node.publicId)) {\n invalidStateError('A publicId must have valid characters.');\n }\n addExternalID(start.$DOCTYPE, node);\n // Fit in internal subset along with entities?: probably don't need as these would only differ if from DTD, and we're not rebuilding the DTD\n set(start); // Auto-generate the internalSubset instead?\n\n resetTemp();\n break;\n }\n case 11:\n {\n // DOCUMENT FRAGMENT\n const node = /** @type {DocumentFragment} */nodeOrEntity;\n setTemp();\n set({\n '#': []\n });\n\n // Set position to fragment's array children\n setObj('#');\n const {\n childNodes\n } = node;\n [...childNodes].forEach(function (childNode) {\n // No need for setChildren, as we have already built the container array\n parseDOM(childNode, namespaces);\n });\n resetTemp();\n break;\n }\n default:\n throw new TypeError('Not an XML type');\n }\n }\n parseDOM(dom, {});\n if (stringOutput) {\n return JSON.stringify(ret[0]);\n }\n return ret[0];\n};\n\n/**\n * @param {string|HTMLElement} dom\n * @param {ToJmlConfig} [config]\n * @returns {string}\n */\njml.toJMLString = function (dom, config) {\n return (/** @type {string} */\n jml.toJML(dom, Object.assign(config || {}, {\n stringOutput: true\n }))\n );\n};\n\n/**\n *\n * @param {JamilihArray} args\n * @returns {JamilihReturn}\n */\njml.toDOM = function (...args) {\n // Alias for jml()\n return jml(...args);\n};\n\n/**\n *\n * @param {JamilihArray} args\n * @returns {string}\n */\njml.toHTML = function (...args) {\n // Todo: Replace this with version of jml() that directly builds a string\n const ret = jml(...args);\n switch (ret.nodeType) {\n case 1:\n {\n // Element\n // Todo: deal with serialization of properties like 'selected',\n // 'checked', 'value', 'defaultValue', 'for', 'dataset', 'on*',\n // 'style'! (i.e., need to build a string ourselves)\n return (/** @type {HTMLElement} */ret.outerHTML\n );\n }\n case 2:\n {\n // ATTR\n return `${\n /** @type {Attr} */ret.name}=\"${\n /** @type {Attr} */ret.value.replace(/\"/gu, '"')}\"`;\n }\n case 3:\n {\n // TEXT\n // Fallthrough\n // } case 4: { // CDATA\n /* c8 ignore next 3 */\n if (!ret.nodeValue) {\n throw new TypeError('Unexpected null Text node');\n }\n return (/** @type {Text|CDATASection} */ret.nodeValue\n );\n // case 5: // Entity Reference Node\n // No 6: Entity Node\n // No 12: Notation Node\n // } case 7: { // PROCESSING INSTRUCTION\n // const node = /** @type {ProcessingInstruction} */ (ret);\n // return `<?${node.target} ${node.data}?>`;\n // } case 8: { // Comment\n // return `<!--${ret.nodeValue}-->`;\n }\n case 9:\n case 11:\n {\n // DOCUMENT FRAGMENT\n const node = /** @type {DocumentFragment} */ret;\n return [...node.childNodes].map(childNode => {\n return jml.toHTML( /** @type {JamilihFirstArgument} */childNode);\n }).join('');\n }\n case 10:\n {\n // DOCUMENT TYPE\n const node = /** @type {DocumentType} */ret;\n return `<!DOCTYPE ${node.name}${node.publicId ? ` PUBLIC \"${node.publicId}\" \"${node.systemId}\"` : node.systemId ? ` SYSTEM \"${node.systemId}\"` : ``}>`;\n /* c8 ignore next 3 */\n }\n default:\n throw new Error('Unexpected node type');\n }\n};\n\n/**\n *\n * @param {JamilihArray} args\n * @returns {string}\n */\njml.toDOMString = function (...args) {\n // Alias for jml.toHTML for parity with jml.toJMLString\n return jml.toHTML(...args);\n};\n\n/**\n *\n * @param {JamilihArray} args\n * @returns {string}\n */\njml.toXML = function (...args) {\n if (!win) {\n throw new Error('No window object set');\n }\n const ret = jml(...args);\n return new /** @type {import('jsdom').DOMWindow} */win.XMLSerializer().serializeToString(ret);\n};\n\n/**\n *\n * @param {JamilihArray} args\n * @returns {string}\n */\njml.toXMLDOMString = function (...args) {\n // Alias for jml.toXML for parity with jml.toJMLString\n return jml.toXML(...args);\n};\n\n/**\n * Element-aware wrapper for `Map`.\n */\nclass JamilihMap extends Map {\n /**\n * @param {?(string|HTMLElement)} element\n * @returns {ArbitraryValue}\n */\n get(element) {\n const elem = typeof element === 'string' ? $(element) : element;\n return super.get.call(this, elem);\n }\n /**\n * @param {string|HTMLElement} element\n * @param {ArbitraryValue} value\n * @returns {ArbitraryValue}\n */\n set(element, value) {\n const elem = typeof element === 'string' ? $(element) : element;\n return super.set.call(this, elem, value);\n }\n /**\n * @param {string|HTMLElement} element\n * @param {string} methodName\n * @param {...ArbitraryValue} args\n * @returns {ArbitraryValue}\n */\n invoke(element, methodName, ...args) {\n const elem = typeof element === 'string' ? $(element) : element;\n return this.get(elem)[methodName](elem, ...args);\n }\n}\n\n/**\n * Element-aware wrapper for `WeakMap`.\n * @extends {WeakMap<any>}\n */\nclass JamilihWeakMap extends WeakMap {\n /**\n * @param {HTMLElement} element\n * @returns {ArbitraryValue}\n */\n get(element) {\n const elem = typeof element === 'string' ? $(element) : element;\n if (!elem) {\n throw new Error(\"Can't find the element\");\n }\n return super.get.call(this, elem);\n }\n /**\n * @param {HTMLElement} element\n * @param {ArbitraryValue} value\n * @returns {ArbitraryValue}\n */\n set(element, value) {\n const elem = typeof element === 'string' ? $(element) : element;\n if (!elem) {\n throw new Error(\"Can't find the element\");\n }\n return super.set.call(this, elem, value);\n }\n /**\n * @param {string|HTMLElement} element\n * @param {string} methodName\n * @param {...ArbitraryValue} args\n * @returns {ArbitraryValue}\n */\n invoke(element, methodName, ...args) {\n const elem = typeof element === 'string' ? $(element) : element;\n if (!elem) {\n throw new Error(\"Can't find the element\");\n }\n return this.get(elem)[methodName](elem, ...args);\n }\n}\njml.Map = JamilihMap;\njml.WeakMap = JamilihWeakMap;\n\n/**\n * @typedef {[JamilihWeakMap|JamilihMap, HTMLElement]} MapAndElementArray\n */\n\n/**\n * @param {{[key: string]: any}} obj\n * @param {JamilihArrayPostOptions} args\n * @returns {MapAndElementArray}\n */\njml.weak = function (obj, ...args) {\n const map = new JamilihWeakMap();\n const elem = jml({\n $map: [map, obj]\n }, ...args);\n return [map, /** @type {HTMLElement} */elem];\n};\n\n/**\n * @param {ArbitraryValue} obj\n * @param {JamilihArrayPostOptions} args\n * @returns {MapAndElementArray}\n */\njml.strong = function (obj, ...args) {\n const map = new JamilihMap();\n const elem = jml({\n $map: [map, obj]\n }, ...args);\n return [map, /** @type {HTMLElement} */elem];\n};\n\n/**\n * @param {string|HTMLElement} element If a string, will be interpreted as a selector\n * @param {symbol|string} sym If a string, will be used with `Symbol.for`\n * @returns {ArbitraryValue} The value associated with the symbol\n */\njml.symbol = jml.sym = jml.for = function (element, sym) {\n const elem = typeof element === 'string' ? $(element) : element;\n\n // @ts-expect-error Should be ok\n return elem[typeof sym === 'symbol' ? sym : Symbol.for(sym)];\n};\n\n/**\n * @typedef {((elem: HTMLElement, ...args: any[]) => void)|{[key: string]: (elem: HTMLElement, ...args: any[]) => void}} MapCommand\n */\n\n/**\n * @param {?(string|HTMLElement)} elem If a string, will be interpreted as a selector\n * @param {symbol|string|Map<HTMLElement, MapCommand>|WeakMap<HTMLElement, MapCommand>} symOrMap If a string, will be used with `Symbol.for`\n * @param {string|any} methodName Can be `any` if the symbol or map directly\n * points to a function (it is then used as the first argument).\n * @param {ArbitraryValue[]} args\n * @returns {ArbitraryValue}\n */\njml.command = function (elem, symOrMap, methodName, ...args) {\n elem = typeof elem === 'string' ? $(elem) : elem;\n if (!elem) {\n throw new Error('No element found');\n }\n let func;\n if (['symbol', 'string'].includes(typeof symOrMap)) {\n func = jml.sym(elem, /** @type {symbol|string} */symOrMap);\n if (typeof func === 'function') {\n return func(methodName, ...args); // Already has `this` bound to `elem`\n }\n\n return func[methodName](...args);\n }\n func = /** @type {Map<HTMLElement, MapCommand>|WeakMap<HTMLElement, MapCommand>} */symOrMap.get(elem);\n if (!func) {\n throw new Error('No map found');\n }\n if (typeof func === 'function') {\n return func.call(elem, methodName, ...args);\n }\n return func[methodName](elem, ...args);\n // return func[methodName].call(elem, ...args);\n};\n\n/**\n * Expects properties `document`, `XMLSerializer`, and `DOMParser`.\n * Also updates `body` with `document.body`.\n * @param {import('jsdom').DOMWindow|HTMLWindow|undefined} wind\n * @returns {void}\n */\njml.setWindow = wind => {\n var _win2;\n win = wind;\n doc = (_win2 = win) === null || _win2 === void 0 ? void 0 : _win2.document;\n if (doc && doc.body) {\n // eslint-disable-next-line prefer-destructuring -- Needed for typing\n body = /** @type {HTMLBodyElement} */doc.body;\n }\n};\n\n/**\n * @returns {import('jsdom').DOMWindow|HTMLWindow}\n */\njml.getWindow = () => {\n if (!win) {\n throw new Error('No window object set');\n }\n return win;\n};\n\n/**\n * Does not run Jamilih so can be further processed.\n * @param {ArbitraryValue[]} array\n * @param {ArbitraryValue} glu\n * @returns {ArbitraryValue[]}\n */\nfunction glue(array, glu) {\n return [...array].reduce((arr, item) => {\n arr.push(item, glu);\n return arr;\n }, []).slice(0, -1);\n}\n\n/**\n * @type {HTMLBodyElement}\n */\nlet body; // eslint-disable-line import/no-mutable-exports\n\n/* c8 ignore next 4 */\nif (doc && doc.body) {\n // eslint-disable-next-line prefer-destructuring -- Needed for type\n body = /** @type {HTMLBodyElement} */doc.body;\n}\nconst nbsp = '\\u00A0'; // Very commonly needed in templates\n\nexport { $, $$, DOMException, body, jml as default, glue, jml, nbsp };\n","function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){_defineProperty(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _typeof(e){return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_typeof(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _createClass(e,t,r){return t&&function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,_toPropertyKey(n.key),n)}}(e.prototype,t),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _slicedToArray(e,t){return function _arrayWithHoles(e){if(Array.isArray(e))return e}(e)||function _iterableToArrayLimit(e,t){var r=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=r){var n,a,o,i,c=[],s=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||_unsupportedIterableToArray(e,t)||function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function _unsupportedIterableToArray(e,t){if(e){if(\"string\"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _toPropertyKey(e){var t=function _toPrimitive(e,t){if(\"object\"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}var e=_createClass((function TypesonPromise(e){_classCallCheck(this,TypesonPromise),this.p=new Promise(e)}));e.__typeson__type__=\"TypesonPromise\",\"undefined\"!=typeof Symbol&&Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function get(){return\"TypesonPromise\"}}),e.prototype.then=function(t,r){var n=this;return new e((function(e,a){n.p.then((function(r){e(t?t(r):r)})).catch((function(e){return r?r(e):Promise.reject(e)})).then(e,a)}))},e.prototype.catch=function(e){return this.then((function(){}),e)},e.resolve=function(t){return new e((function(e){e(t)}))},e.reject=function(t){return new e((function(e,r){r(t)}))},e.all=function(t){return new e((function(e,r){Promise.all(t.map((function(e){return null!=e&&e.constructor&&\"__typeson__type__\"in e.constructor&&\"TypesonPromise\"===e.constructor.__typeson__type__?e.p:e}))).then(e,r)}))},e.race=function(t){return new e((function(e,r){Promise.race(t.map((function(e){return null!=e&&e.constructor&&\"__typeson__type__\"in e.constructor&&\"TypesonPromise\"===e.constructor.__typeson__type__?e.p:e}))).then(e,r)}))},e.allSettled=function(t){return new e((function(e,r){Promise.allSettled(t.map((function(e){return null!=e&&e.constructor&&\"__typeson__type__\"in e.constructor&&\"TypesonPromise\"===e.constructor.__typeson__type__?e.p:e}))).then(e,r)}))};var t=Object.hasOwn,r=Object.getPrototypeOf;function isThenable(e,t){return isObject(e)&&\"function\"==typeof e.then&&(!t||\"function\"==typeof e.catch)}function toStringTag(e){return Object.prototype.toString.call(e).slice(8,-1)}function hasConstructorOf(e,n){if(!e||\"object\"!==_typeof(e))return!1;var a=r(e);if(!a)return null===n;var o=t(a,\"constructor\")&&a.constructor;return\"function\"!=typeof o?null===n:n===o||null!==n&&Function.prototype.toString.call(o)===Function.prototype.toString.call(n)||\"function\"==typeof n&&\"string\"==typeof o.__typeson__type__&&o.__typeson__type__===n.__typeson__type__}function isPlainObject(e){return!(!e||\"Object\"!==toStringTag(e))&&(!r(e)||hasConstructorOf(e,Object))}function isUserObject(e){if(!e||\"Object\"!==toStringTag(e))return!1;var t=r(e);return!t||hasConstructorOf(e,Object)||isUserObject(t)}function isObject(e){return null!==e&&\"object\"===_typeof(e)}function escapeKeyPathComponent(e){return e.replaceAll(\"''\",\"''''\").replace(/^$/,\"''\").replaceAll(\"~\",\"~0\").replaceAll(\".\",\"~1\")}function unescapeKeyPathComponent(e){return e.replaceAll(\"~1\",\".\").replaceAll(\"~0\",\"~\").replace(/^''$/,\"\").replaceAll(\"''''\",\"''\")}function getByKeyPath(e,t){if(\"\"===t)return e;if(null===e||\"object\"!==_typeof(e))throw new TypeError(\"Unexpected non-object type\");var r=t.indexOf(\".\");if(r>-1){var n=e[unescapeKeyPathComponent(t.slice(0,r))];return void 0===n?void 0:getByKeyPath(n,t.slice(r+1))}return e[unescapeKeyPathComponent(t)]}function setAtKeyPath(e,t,r){if(\"\"===t)return r;if(!e||\"object\"!==_typeof(e))throw new TypeError(\"Unexpected non-object type\");var n=t.indexOf(\".\");return n>-1?setAtKeyPath(e[unescapeKeyPathComponent(t.slice(0,n))],t.slice(n+1),r):(e[unescapeKeyPathComponent(t)]=r,e)}function getJSONType(e){return null===e?\"null\":Array.isArray(e)?\"array\":_typeof(e)}function _await(e,t,r){return e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e}var n=Object.keys,a=Object.hasOwn,o=Array.isArray,i=[\"type\",\"replaced\",\"iterateIn\",\"iterateUnsetNumeric\",\"addLength\"];function _async(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];try{return Promise.resolve(e.apply(this,t))}catch(e){return Promise.reject(e)}}}function nestedPathsFirst(e,t){var r,n;if(\"\"===e.keypath)return-1;var a=null!==(r=e.keypath.match(/\\./g))&&void 0!==r?r:0,o=null!==(n=t.keypath.match(/\\./g))&&void 0!==n?n:0;return a&&(a=a.length),o&&(o=o.length),a>o?-1:a<o?1:e.keypath<t.keypath?-1:e.keypath>t.keypath?1:0}var c=function(){function Typeson(e){_classCallCheck(this,Typeson),this.options=e,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={}}return _createClass(Typeson,[{key:\"stringify\",value:function stringify(e,t,r,n){n=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),n),{},{stringification:!0});var a=this.encapsulate(e,null,n);return o(a)?JSON.stringify(a[0],t,r):a.then((function(e){return JSON.stringify(e,t,r)}))}},{key:\"stringifySync\",value:function stringifySync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!0}))}},{key:\"stringifyAsync\",value:function stringifyAsync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!1}))}},{key:\"parse\",value:function parse(e,t,r){return r=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),r),{},{parse:!0}),this.revive(JSON.parse(e,t),r)}},{key:\"parseSync\",value:function parseSync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:\"parseAsync\",value:function parseAsync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:\"specialTypeNames\",value:function specialTypeNames(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.returnTypeNames=!0,this.encapsulate(e,t,r)}},{key:\"rootTypeName\",value:function rootTypeName(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.iterateNone=!0,this.encapsulate(e,t,r)}},{key:\"encapsulate\",value:function encapsulate(t,r,c){var s=this,u=_objectSpread2(_objectSpread2({sync:!0},this.options),c),l=u.sync,f={},y=[],p=[],d=[],v=!(\"cyclic\"in u)||u.cyclic,b=u.encapsulateObserver,h=function finish(e){var t=Object.values(f);if(u.iterateNone)return t.length?t[0]:getJSONType(e);if(t.length){if(u.returnTypeNames)return function _toConsumableArray(e){return function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}(e)||function _iterableToArray(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||_unsupportedIterableToArray(e)||function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}(new Set(t));e&&isPlainObject(e)&&!a(e,\"$types\")?e.$types=f:e={$:e,$types:{$:f}}}else isObject(e)&&a(e,\"$types\")&&(e={$:e,$types:!0});return!u.returnTypeNames&&e},m=_async((function(t,r){return _await(Promise.all(r.map((function(e){return e[1].p}))),(function(n){return _await(Promise.all(n.map(_async((function(n){var a=!1,o=[],i=_slicedToArray(r.splice(0,1),1),c=_slicedToArray(i[0],7),s=c[0],u=c[2],l=c[3],f=c[4],y=c[5],p=c[6],d=O(s,n,u,l,o,!0,p),v=hasConstructorOf(d,e);return function _invoke(e,t){var r=e();return r&&r.then?r.then(t):t(r)}((function(){if(s&&v)return _await(d.p,(function(e){f[y]=e;var r=m(t,o);return a=!0,r}))}),(function(e){return a?e:(s?f[y]=d:t=v?d.p:d,m(t,o))}))})))),(function(){return t}))}))})),g=function _adaptBuiltinStateObjectProperties(e,t,r){Object.assign(e,t);var n=i.map((function(t){var r=e[t];return delete e[t],r}));r(),i.forEach((function(t,r){e[t]=n[r]}))},O=function _encapsulate(t,r,i,c,l,d,v){var h,m={},O=_typeof(r),_=b?function(n){var a,o=null!==(a=null!=v?v:c.type)&&void 0!==a?a:getJSONType(r);b(Object.assign(null!=n?n:m,{keypath:t,value:r,cyclic:i,stateObj:c,promisesData:l,resolvingTypesonPromise:d,awaitingTypesonPromise:hasConstructorOf(r,e)},{type:o}))}:null;if([\"string\",\"boolean\",\"number\",\"undefined\"].includes(O))return void 0===r||Number.isNaN(r)||r===Number.NEGATIVE_INFINITY||r===Number.POSITIVE_INFINITY||0===r?(h=c.replaced?r:w(t,r,c,l,!1,d,_))!==r&&(m={replaced:h}):h=r,_&&_(),h;if(null===r)return _&&_(),r;if(i&&!c.iterateIn&&!c.iterateUnsetNumeric&&r&&\"object\"===_typeof(r)){var A=y.indexOf(r);if(!(A<0))return f[t]=\"#\",_&&_({cyclicKeypath:p[A]}),\"#\"+p[A];!0===i&&(y.push(r),p.push(t))}var S,j,T=isPlainObject(r),I=o(r),N=(T||I)&&(!s.plainObjectReplacers.length||c.replaced)||c.iterateIn?r:w(t,r,c,l,T||I,null,_);if(N!==r?(h=N,m={replaced:N}):\"\"===t&&hasConstructorOf(r,e)?(l.push([t,r,i,c,void 0,void 0,c.type]),h=r):I&&\"object\"!==c.iterateIn||\"array\"===c.iterateIn?(S=new Array(r.length),m={clone:S}):([\"function\",\"symbol\"].includes(_typeof(r))||\"toJSON\"in r||hasConstructorOf(r,e)||hasConstructorOf(r,Promise)||hasConstructorOf(r,ArrayBuffer))&&!T&&\"object\"!==c.iterateIn?h=r:(S={},c.addLength&&(S.length=r.length),m={clone:S}),_&&_(),u.iterateNone)return null!==(j=S)&&void 0!==j?j:h;if(!S)return h;if(c.iterateIn){var P=function _loop(n){var o={ownKeys:a(r,n)};g(c,o,(function(){var a=t+(t?\".\":\"\")+escapeKeyPathComponent(n),o=_encapsulate(a,r[n],Boolean(i),c,l,d);hasConstructorOf(o,e)?l.push([a,o,Boolean(i),c,S,n,c.type]):void 0!==o&&(S[n]=o)}))};for(var x in r)P(x);_&&_({endIterateIn:!0,end:!0})}else n(r).forEach((function(n){var a=t+(t?\".\":\"\")+escapeKeyPathComponent(n);g(c,{ownKeys:!0},(function(){var t=_encapsulate(a,r[n],Boolean(i),c,l,d);hasConstructorOf(t,e)?l.push([a,t,Boolean(i),c,S,n,c.type]):void 0!==t&&(S[n]=t)}))})),_&&_({endIterateOwn:!0,end:!0});if(c.iterateUnsetNumeric){for(var E=r.length,C=function _loop2(n){if(!(n in r)){var a=\"\".concat(t).concat(t?\".\":\"\").concat(n);g(c,{ownKeys:!1},(function(){var t=_encapsulate(a,void 0,Boolean(i),c,l,d);hasConstructorOf(t,e)?l.push([a,t,Boolean(i),c,S,n,c.type]):void 0!==t&&(S[n]=t)}))}},B=0;B<E;B++)C(B);_&&_({endIterateUnsetNumeric:!0,end:!0})}return S},w=function replace(e,t,r,n,a,o,i){for(var c=a?s.plainObjectReplacers:s.nonplainObjectReplacers,u=c.length;u--;){var y=c[u];if(y.test(t,r)){var p=y.type;if(s.revivers[p]){var d=f[e];f[e]=d?[p].concat(d):p}if(Object.assign(r,{type:p,replaced:!0}),(l||!y.replaceAsync)&&!y.replace)return i&&i({typeDetected:!0}),O(e,t,v&&\"readonly\",r,n,o,p);i&&i({replacing:!0});var b=void 0;if(l||!y.replaceAsync){if(void 0===y.replace)throw new TypeError(\"Missing replacer\");b=y.replace(t,r)}else b=y.replaceAsync(t,r);return O(e,b,v&&\"readonly\",r,n,o,p)}}return t},_=O(\"\",t,v,null!=r?r:{},d);if(d.length)return l&&u.throwOnBadSyncType?function(){throw new TypeError(\"Sync method requested but async result obtained\")}():Promise.resolve(m(_,d)).then(h);if(!l&&u.throwOnBadSyncType)throw new TypeError(\"Async method requested but sync result obtained\");return u.stringification&&l?[h(_)]:l?h(_):Promise.resolve(h(_))}},{key:\"encapsulateSync\",value:function encapsulateSync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:\"encapsulateAsync\",value:function encapsulateAsync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:\"revive\",value:function revive(t,r){var a=this,i=_objectSpread2(_objectSpread2({sync:!0},this.options),r),c=i.sync;function finishRevival(e){if(c)return e;if(i.throwOnBadSyncType)throw new TypeError(\"Async method requested but sync result obtained\");return Promise.resolve(e)}if(!t||\"object\"!==_typeof(t)||Array.isArray(t))return finishRevival(t);var u=t.$types;if(!0===u)return finishRevival(t.$);if(!u||\"object\"!==_typeof(u)||Array.isArray(u))return finishRevival(t);var l=[],f={},y=!0;u.$&&isPlainObject(u.$)&&(t=t.$,u=u.$,y=!1);var p=function executeReviver(e,t){var r,n=_slicedToArray(null!==(r=a.revivers[e])&&void 0!==r?r:[],1)[0];if(!n)throw new Error(\"Unregistered type: \"+e);if(c&&!(\"revive\"in n))return t;if(!c&&n.reviveAsync)return n.reviveAsync(t,f);if(n.revive)return n.revive(t,f);throw new Error(\"Missing reviver\")},d=[];function checkUndefined(e){return hasConstructorOf(e,s)?void 0:e}var v,b=function revivePlainObjects(){var r=[];if(!u)throw new Error(\"Found bad `types`\");if(Object.entries(u).forEach((function(e){var t=_slicedToArray(e,2),n=t[0],o=t[1];\"#\"!==o&&[].concat(o).forEach((function(e){var t;_slicedToArray(null!==(t=a.revivers[e])&&void 0!==t?t:[null,{}],2)[1].plain&&(r.push({keypath:n,type:e}),delete u[n])}))})),r.length)return r.sort(nestedPathsFirst).reduce((function reducer(r,n){var a=n.keypath,o=n.type;if(isThenable(r))return r.then((function(e){return reducer(e,{keypath:a,type:o})}));var i=getByKeyPath(t,a);if(hasConstructorOf(i=p(o,i),e))return i.then((function(e){var r=setAtKeyPath(t,a,e);r===e&&(t=r)}));var c=setAtKeyPath(t,a,i);c===i&&(t=c)}),void 0)}();return hasConstructorOf(b,e)?v=b.then((function(){return t})):(v=function _revive(t,r,a,i,c){if(!y||\"$types\"!==t){var f=u[t],v=o(r);if(v||isPlainObject(r)){var b=v?new Array(r.length):{};for(n(r).forEach((function(n){var o=_revive(t+(t?\".\":\"\")+escapeKeyPathComponent(n),r[n],null!=a?a:b,b,n),i=function set(e){return hasConstructorOf(e,s)?b[n]=void 0:void 0!==e&&(b[n]=e),e};hasConstructorOf(o,e)?d.push(o.then((function(e){return i(e)}))):i(o)})),r=b;l.length;){var h=_slicedToArray(l[0],4),m=h[0],g=h[1],O=h[2],w=h[3],_=getByKeyPath(m,g);if(void 0===_)break;O[w]=_,l.splice(0,1)}}if(!f)return r;if(\"#\"===f){var A=getByKeyPath(a,r.slice(1));return void 0===A&&l.push([a,r.slice(1),i,c]),A}return[].concat(f).reduce((function reducer(t,r){if(hasConstructorOf(t,e))return t.then((function(e){return reducer(e,r)}));if(\"string\"!=typeof r)throw new TypeError(\"Bad type JSON\");return p(r,t)}),r)}}(\"\",t,null),d.length&&(v=e.resolve(v).then((function(t){return e.all([t].concat(d))})).then((function(e){return _slicedToArray(e,1)[0]})))),isThenable(v)?c&&i.throwOnBadSyncType?function(){throw new TypeError(\"Sync method requested but async result obtained\")}():hasConstructorOf(v,e)?v.p.then(checkUndefined):v:!c&&i.throwOnBadSyncType?function(){throw new TypeError(\"Async method requested but sync result obtained\")}():c?checkUndefined(v):Promise.resolve(checkUndefined(v))}},{key:\"reviveSync\",value:function reviveSync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!0}))}},{key:\"reviveAsync\",value:function reviveAsync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!1}))}},{key:\"register\",value:function register(e,t){var r=this,a=null!=t?t:{},i=function R(e){o(e)?e.forEach((function(e){return R(e)})):n(e).forEach((function(t){var n;if(\"#\"===t)throw new TypeError(\"# cannot be used as a type name as it is reserved for cyclic objects\");if(u.includes(t))throw new TypeError(\"Plain JSON object types are reserved as type names\");var i=e[t],c=i&&\"function\"!=typeof i&&!Array.isArray(i)&&i.testPlainObjects?r.plainObjectReplacers:r.nonplainObjectReplacers,s=c.filter((function(e){return e.type===t}));if(s.length&&(c.splice(c.indexOf(s[0]),1),delete r.revivers[t],delete r.types[t]),\"function\"==typeof i){var l=i;i={test:function test(e){return e&&e.constructor===l},replace:function replace(e){return _objectSpread2({},e)},revive:function revive(e){return Object.assign(Object.create(l.prototype),e)}}}else if(o(i)){var f=_slicedToArray(i,3);i={test:f[0],replace:f[1],revive:f[2]}}if(null!==(n=i)&&void 0!==n&&n.test){var y={type:t,test:i.test.bind(i)};i.replace&&(y.replace=i.replace.bind(i)),i.replaceAsync&&(y.replaceAsync=i.replaceAsync.bind(i));var p=\"number\"==typeof a.fallback?a.fallback:a.fallback?0:Number.POSITIVE_INFINITY;if(i.testPlainObjects?r.plainObjectReplacers.splice(p,0,y):r.nonplainObjectReplacers.splice(p,0,y),i.revive||i.reviveAsync){var d={};i.revive&&(d.revive=i.revive.bind(i)),i.reviveAsync&&(d.reviveAsync=i.reviveAsync.bind(i)),r.revivers[t]=[d,{plain:i.testPlainObjects}]}r.types[t]=i}}))};return[].concat(e).forEach((function(e){return i(e)})),this}}]),Typeson}(),s=_createClass((function Undefined(){_classCallCheck(this,Undefined)}));s.__typeson__type__=\"TypesonUndefined\";for(var u=[\"null\",\"boolean\",\"number\",\"string\",\"array\",\"object\"],l=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",f=new Uint8Array(256),y=0;y<64;y++)f[l.codePointAt(y)]=y;var p=function encode(e,t,r){null==r&&(r=e.byteLength);for(var n=new Uint8Array(e,0,r),a=n.length,o=\"\",i=0;i<a;i+=3)o+=l[n[i]>>2],o+=l[(3&n[i])<<4|n[i+1]>>4],o+=l[(15&n[i+1])<<2|n[i+2]>>6],o+=l[63&n[i+2]];return a%3==2?o=o.slice(0,-1)+\"=\":a%3==1&&(o=o.slice(0,-2)+\"==\"),o},d=function decode(e,t){var r=e.length;if(r%4)throw new Error(\"Bad base64 length: not divisible by four\");var n,a,o,i,c=.75*e.length,s=0;\"=\"===e[e.length-1]&&(c--,\"=\"===e[e.length-2]&&c--);for(var u=new ArrayBuffer(c,t),l=new Uint8Array(u),y=0;y<r;y+=4)n=f[e.codePointAt(y)],a=f[e.codePointAt(y+1)],o=f[e.codePointAt(y+2)],i=f[e.codePointAt(y+3)],l[s++]=n<<2|a>>4,l[s++]=(15&a)<<4|o>>2,l[s++]=(3&o)<<6|63&i;return u};const v={arraybuffer:{test:e=>\"ArrayBuffer\"===toStringTag(e),replace(e,t){t.buffers||(t.buffers=[]);const r=t.buffers.indexOf(e);return r>-1?{index:r}:(t.buffers.push(e),{s:p(e),maxByteLength:e.maxByteLength})},revive(e,t){if(t.buffers||(t.buffers=[]),Object.hasOwn(e,\"index\"))return t.buffers[e.index];const r=d(e.s,{maxByteLength:e.maxByteLength});return t.buffers.push(r),r}}},b={bigintObject:{test:e=>\"object\"==typeof e&&hasConstructorOf(e,BigInt),replace:String,revive:e=>new Object(BigInt(e))}},h={bigint:{test:e=>\"bigint\"==typeof e,replace:String,revive:e=>BigInt(e)}};function arraybuffer2string(e){return new Uint8Array(e).reduce(((e,t)=>e+String.fromCodePoint(t)),\"\")}function string2arraybuffer(e){const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t.buffer}const m={blob:{test:e=>\"Blob\"===toStringTag(e),replace(e){const t=new XMLHttpRequest;if(t.overrideMimeType(\"text/plain; charset=x-user-defined\"),t.open(\"GET\",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error(\"Bad Blob access: \"+t.status);return{type:e.type,stringContents:t.responseText}},revive(e){const{type:t,stringContents:r}=e;return new Blob([string2arraybuffer(r)],{type:t})},replaceAsync:t=>new e(((e,r)=>{const n=new FileReader;n.addEventListener(\"load\",(()=>{e({type:t.type,stringContents:arraybuffer2string(n.result)})})),n.addEventListener(\"error\",(()=>{r(n.error)})),n.readAsArrayBuffer(t)}))}};function generateUUID(){let e=Date.now();return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replaceAll(/[xy]/gu,(function(t){const r=Math.trunc((e+16*Math.random())%16);return e=Math.floor(e/16),(\"x\"===t?r:3&r|8).toString(16)}))}const g={},O={cloneable:{test:e=>e&&\"object\"==typeof e&&\"function\"==typeof e[Symbol.for(\"cloneEncapsulate\")],replace(e){const t=e[Symbol.for(\"cloneEncapsulate\")](),r=generateUUID();return g[r]=e,{uuid:r,encapsulated:t}},revive(e){const{uuid:t,encapsulated:r}=e;return g[t][Symbol.for(\"cloneRevive\")](r)}}},w={cryptokey:{test:e=>\"CryptoKey\"===toStringTag(e)&&e.extractable,replaceAsync:t=>new e((async(e,r)=>{let n;try{n=await crypto.subtle.exportKey(\"jwk\",t)}catch(e){return void r(e)}e({jwk:n,algorithm:t.algorithm,usages:t.usages})})),revive(e){const{jwk:t,algorithm:r,usages:n}=e;return crypto.subtle.importKey(\"jwk\",t,r,!0,n)}}},_={dataview:{test:e=>\"DataView\"===toStringTag(e),replace({buffer:e,byteOffset:t,byteLength:r},n){n.buffers||(n.buffers=[]);const a=n.buffers.indexOf(e);return a>-1?{index:a,byteOffset:t,byteLength:r}:(n.buffers.push(e),{encoded:p(e),maxByteLength:e.maxByteLength,byteOffset:t,byteLength:r})},revive(e,t){t.buffers||(t.buffers=[]);const{byteOffset:r,byteLength:n,encoded:a,index:o,maxByteLength:i}=e;let c;return\"index\"in e?c=t.buffers[o]:(c=d(a,void 0===i?i:{maxByteLength:i}),t.buffers.push(c)),new DataView(c,r,n)}}},A={date:{test:e=>\"Date\"===toStringTag(e),replace(e){const t=e.getTime();return Number.isNaN(t)?\"NaN\":t},revive:e=>\"NaN\"===e?new Date(Number.NaN):new Date(e)}},S={domexception:{test:e=>\"DOMException\"===toStringTag(e),replace:e=>({name:e.name,message:e.message}),revive:({message:e,name:t})=>new DOMException(e,t)}},j={};function create$5(e){j[e.name.toLowerCase()]={test:t=>toStringTag(t)===e.name,replace:e=>e.is2D?{a:e.a,b:e.b,c:e.c,d:e.d,e:e.e,f:e.f}:{m11:e.m11,m12:e.m12,m13:e.m13,m14:e.m14,m21:e.m21,m22:e.m22,m23:e.m23,m24:e.m24,m31:e.m31,m32:e.m32,m33:e.m33,m34:e.m34,m41:e.m41,m42:e.m42,m43:e.m43,m44:e.m44},revive:t=>Object.hasOwn(t,\"a\")?new e([t.a,t.b,t.c,t.d,t.e,t.f]):new e([t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44])}}\"undefined\"!=typeof DOMMatrix&&create$5(DOMMatrix),\"undefined\"!=typeof DOMMatrixReadOnly&&create$5(DOMMatrixReadOnly);const T={};function create$4(e){T[e.name.toLowerCase()]={test:t=>toStringTag(t)===e.name,replace:e=>({x:e.x,y:e.y,z:e.z,w:e.w}),revive:({x:t,y:r,z:n,w:a})=>new e(t,r,n,a)}}\"undefined\"!=typeof DOMPoint&&create$4(DOMPoint),\"undefined\"!=typeof DOMPointReadOnly&&create$4(DOMPointReadOnly);const I={domquad:{test:e=>\"DOMQuad\"===toStringTag(e),replace:e=>({p1:e.p1,p2:e.p2,p3:e.p3,p4:e.p4}),revive:({p1:e,p2:t,p3:r,p4:n})=>new DOMQuad(e,t,r,n)}},N={};function create$3(e){N[e.name.toLowerCase()]={test:t=>toStringTag(t)===e.name,replace:e=>({x:e.x,y:e.y,width:e.width,height:e.height}),revive:({x:t,y:r,width:n,height:a})=>new e(t,r,n,a)}}\"undefined\"!=typeof DOMRect&&create$3(DOMRect),\"undefined\"!=typeof DOMRectReadOnly&&create$3(DOMRectReadOnly);const P={error:{test:e=>\"Error\"===toStringTag(e),replace:({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i})=>({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i}),revive(e){const t=new Error(e.message);return t.name=e.name,t.cause=e.cause,t.stack=e.stack,t.fileName=e.fileName,t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}}},x={};function create$2(e){x[e.name.toLowerCase()]={test:t=>hasConstructorOf(t,e),replace:({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i,errors:c})=>({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i,errors:c}),revive(t){const r=\"undefined\"!=typeof AggregateError&&e===AggregateError?new e(t.errors,t.message):new e(t.message);return r.name=t.name,r.cause=t.cause,r.stack=t.stack,r.fileName=t.fileName,r.lineNumber=t.lineNumber,r.columnNumber=t.columnNumber,r}}}[TypeError,RangeError,SyntaxError,ReferenceError,EvalError,URIError].forEach((e=>create$2(e))),\"undefined\"!=typeof AggregateError&&create$2(AggregateError),\"function\"==typeof InternalError&&create$2(InternalError);const E={file:{test:e=>\"File\"===toStringTag(e),replace(e){const t=new XMLHttpRequest;if(t.overrideMimeType(\"text/plain; charset=x-user-defined\"),t.open(\"GET\",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error(\"Bad File access: \"+t.status);return{type:e.type,stringContents:t.responseText,name:e.name,lastModified:e.lastModified}},revive:({name:e,type:t,stringContents:r,lastModified:n})=>new File([string2arraybuffer(r)],e,{type:t,lastModified:n}),replaceAsync:t=>new e((function(e,r){const n=new FileReader;n.addEventListener(\"load\",(function(){e({type:t.type,stringContents:arraybuffer2string(n.result),name:t.name,lastModified:t.lastModified})})),n.addEventListener(\"error\",(function(){r(n.error)})),n.readAsArrayBuffer(t)}))}},C={file:E.file,filelist:{test:e=>\"FileList\"===toStringTag(e),replace(e){const t=[];for(let r=0;r<e.length;r++)t[r]=e.item(r);return t},revive(e){class FileList{constructor(){this._files=arguments[0],this.length=this._files.length}item(e){return this._files[e]}get[Symbol.toStringTag](){return\"FileList\"}}return new FileList(e)}}},B={imagebitmap:{test:e=>\"ImageBitmap\"===toStringTag(e)||e&&e.dataset&&\"ImageBitmap\"===e.dataset.toStringTag,replace(e){const t=document.createElement(\"canvas\");return t.getContext(\"2d\").drawImage(e,0,0),{width:e.width,height:e.height,dataURL:t.toDataURL()}},revive(e){const t=\"undefined\"==typeof OffscreenCanvas?document.createElement(\"canvas\"):new OffscreenCanvas(e.width,e.height),r=t.getContext(\"2d\"),n=document.createElement(\"img\");return n.addEventListener(\"load\",(function(){r.drawImage(n,0,0)})),n.src=e.dataURL,\"undefined\"==typeof OffscreenCanvas?t:t.transferToImageBitmap()},reviveAsync(t){const r=document.createElement(\"canvas\"),n=r.getContext(\"2d\"),a=document.createElement(\"img\");return a.addEventListener(\"load\",(function(){n.drawImage(a,0,0)})),a.src=t.dataURL,new e((async(e,t)=>{try{e(await createImageBitmap(r))}catch(e){t(e)}}))}}},k={imagedata:{test:e=>\"ImageData\"===toStringTag(e),replace:e=>({array:[...e.data],width:e.width,height:e.height}),revive:e=>new ImageData(new Uint8ClampedArray(e.array),e.width,e.height)}},U={infinity:{test:e=>e===Number.POSITIVE_INFINITY,replace:()=>\"Infinity\",revive:()=>Number.POSITIVE_INFINITY}},M={test:e=>hasConstructorOf(e,Intl.Collator),replace:e=>e.resolvedOptions(),revive:e=>new Intl.Collator(e.locale,e)},L={IntlCollator:M,IntlDateTimeFormat:{test:e=>hasConstructorOf(e,Intl.DateTimeFormat),replace:e=>e.resolvedOptions(),revive:e=>new Intl.DateTimeFormat(e.locale,e)},IntlNumberFormat:{test:e=>hasConstructorOf(e,Intl.NumberFormat),replace:e=>e.resolvedOptions(),revive:e=>new Intl.NumberFormat(e.locale,e)}},D={map:{test:e=>\"Map\"===toStringTag(e),replace:e=>[...e.entries()],revive:e=>new Map(e)}},K={nan:{test:e=>Number.isNaN(e),replace:()=>\"NaN\",revive:()=>Number.NaN}},F={negativeInfinity:{test:e=>e===Number.NEGATIVE_INFINITY,replace:()=>\"-Infinity\",revive:()=>Number.NEGATIVE_INFINITY}},$={negativeZero:{test:e=>Object.is(e,-0),replace:()=>0,revive:()=>-0}},J={nonbuiltinIgnore:{test:e=>e&&\"object\"==typeof e&&!Array.isArray(e)&&![\"Object\",\"Boolean\",\"Number\",\"String\",\"Error\",\"RegExp\",\"Math\",\"Date\",\"Map\",\"Set\",\"JSON\",\"ArrayBuffer\",\"SharedArrayBuffer\",\"DataView\",\"Int8Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"Int16Array\",\"Uint16Array\",\"Int32Array\",\"Uint32Array\",\"Float32Array\",\"Float64Array\",\"Promise\",\"String Iterator\",\"Array Iterator\",\"Map Iterator\",\"Set Iterator\",\"WeakMap\",\"WeakSet\",\"Atomics\",\"Module\"].includes(toStringTag(e)),replace(){}}},V={StringObject:{test:e=>\"String\"===toStringTag(e)&&\"object\"==typeof e,replace:String,revive:e=>new String(e)},BooleanObject:{test:e=>\"Boolean\"===toStringTag(e)&&\"object\"==typeof e,replace:Boolean,revive:e=>new Boolean(e)},NumberObject:{test:e=>\"Number\"===toStringTag(e)&&\"object\"==typeof e,replace:Number,revive:e=>new Number(e)}},q={regexp:{test:e=>\"RegExp\"===toStringTag(e),replace:e=>({source:e.source,flags:(e.global?\"g\":\"\")+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.sticky?\"y\":\"\")+(e.unicode?\"u\":\"\")}),revive:({source:e,flags:t})=>new RegExp(e,t)}},Y={},W={resurrectable:{test:e=>e&&!Array.isArray(e)&&[\"object\",\"function\",\"symbol\"].includes(typeof e),replace(e){const t=generateUUID();return Y[t]=e,t},revive:e=>Y[e]}},G={set:{test:e=>\"Set\"===toStringTag(e),replace:e=>[...e.values()],revive:e=>new Set(e)}},H={};\"function\"==typeof Int8Array&&[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,...\"function\"==typeof BigInt64Array?[BigInt64Array,BigUint64Array]:[]].forEach((e=>function create$1(e){const t=e.name;H[t.toLowerCase()]={test:e=>toStringTag(e)===t,replace:e=>(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e:e.slice(0)).buffer,revive:t=>\"ArrayBuffer\"===toStringTag(t)?new e(t):t}}(e)));const z={};\"function\"==typeof Int8Array&&[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,...\"function\"==typeof BigInt64Array?[BigInt64Array,BigUint64Array]:[]].forEach((e=>function create(e){const t=e.name;z[t.toLowerCase()]={test:e=>toStringTag(e)===t,replace({buffer:e,byteOffset:t,length:r},n){n.buffers||(n.buffers=[]);const a=n.buffers.indexOf(e);return a>-1?{index:a,byteOffset:t,length:r}:(n.buffers.push(e),{maxByteLength:e.maxByteLength,encoded:p(e),byteOffset:t,length:r})},revive(t,r){r.buffers||(r.buffers=[]);const{byteOffset:n,length:a,encoded:o,index:i,maxByteLength:c}=t;let s;return\"index\"in t?s=r.buffers[i]:(s=d(o,void 0===c?void 0:{maxByteLength:c}),r.buffers.push(s)),new e(s,n,a)}}}(e)));const Q={undef:{test:(e,t)=>void 0===e&&(t.ownKeys||!(\"ownKeys\"in t)),replace:()=>0,revive:()=>new s}},X={userObject:{test:e=>isUserObject(e),replace:e=>({...e}),revive:e=>e}},Z=[{arrayNonindexKeys:{testPlainObjects:!0,test:(e,t)=>!!Array.isArray(e)&&(Object.keys(e).some((e=>String(Number.parseInt(e))!==e))&&(t.iterateIn=\"object\",t.addLength=!0),!0),replace:(e,t)=>(t.iterateUnsetNumeric=!0,e),revive(e){if(Array.isArray(e))return e;const t=[];return Object.entries(e).forEach((([e,r])=>{t[e]=r})),t}}},{sparseUndefined:{test:(e,t)=>void 0===e&&!1===t.ownKeys,replace:()=>0,revive(){}}}],ee=[K,U,F,$],te=[Q,Z,V,ee,A,P,x,q].concat(\"function\"==typeof Map?D:[],\"function\"==typeof Set?G:[],\"function\"==typeof ArrayBuffer?v:[],\"function\"==typeof Uint8Array?z:[],\"function\"==typeof DataView?_:[],\"undefined\"!=typeof Intl?L:[],\"undefined\"!=typeof BigInt?[h,b]:[]),re=[P,x],ne=[te,{arraybuffer:null},H],ae=[{sparseArrays:{testPlainObjects:!0,test:e=>Array.isArray(e),replace:(e,t)=>(t.iterateUnsetNumeric=!0,e)}},{sparseUndefined:{test:(e,t)=>void 0===e&&!1===t.ownKeys,replace:()=>0,revive(){}}}],oe=[X,Q,Z,V,ee,A,q,k,B,E,C,m,P,x].concat(\"function\"==typeof Map?D:[],\"function\"==typeof Set?G:[],\"function\"==typeof ArrayBuffer?v:[],\"function\"==typeof Uint8Array?z:[],\"function\"==typeof DataView?_:[],\"undefined\"!=typeof crypto?w:[],\"undefined\"!=typeof BigInt?[h,b]:[],\"undefined\"!=typeof DOMException?S:[],\"undefined\"!=typeof DOMRect?N:[],\"undefined\"!=typeof DOMPoint?T:[],\"undefined\"!=typeof DOMQuad?I:[],\"undefined\"!=typeof DOMMatrix?j:[]),ie=oe.concat({checkDataCloneException:{test(e){const t={}.toString.call(e).slice(8,-1);if([\"symbol\",\"function\"].includes(typeof e)||[\"Arguments\",\"Module\",\"Promise\",\"WeakMap\",\"WeakSet\",\"Event\",\"MessageChannel\"].includes(t)||e&&\"object\"==typeof e&&\"number\"==typeof e.nodeType&&\"function\"==typeof e.insertBefore)throw new DOMException(\"The object cannot be cloned.\",\"DataCloneError\");return!1}}}),ce=[ae,Q],se=[te];export{u as JSON_TYPES,c as Typeson,e as TypesonPromise,s as Undefined,Z as arrayNonindexKeys,v as arraybuffer,h as bigint,b as bigintObject,m as blob,te as builtin,O as cloneable,w as cryptokey,_ as dataview,A as date,S as domexception,j as dommatrix,T as dompoint,I as domquad,N as domrect,P as error,x as errors,escapeKeyPathComponent,E as file,C as filelist,getByKeyPath,getJSONType,hasConstructorOf,B as imagebitmap,k as imagedata,U as infinity,L as intlTypes,isObject,isPlainObject,isThenable,isUserObject,D as map,K as nan,F as negativeInfinity,$ as negativeZero,J as nonbuiltinIgnore,re as postmessage,V as primitiveObjects,q as regexp,W as resurrectable,G as set,setAtKeyPath,ne as socketio,ae as sparseUndefined,ee as specialNumbers,oe as structuredCloning,ie as structuredCloningThrowing,toStringTag,z as typedArrays,H as typedArraysSocketio,Q as undef,ce as undefPreset,unescapeKeyPathComponent,se as universal,X as userObject};\n//# sourceMappingURL=index.min.js.map\n","const nbsp = '\\u00A0';\nconst upArrow = '\\u2191';\nconst downArrow = '\\u2193';\nconst U = {nbsp, upArrow, downArrow};\n\n/**\n * @param {string} sel\n * @returns {HTMLElement|null}\n */\nconst $ = (sel) => document.querySelector(sel);\n\n/**\n * @param {string} sel\n * @returns {HTMLElement[]}\n */\nconst $$ = (sel) => [...(/** @type {NodeListOf<HTMLElement>} */ (\n document.querySelectorAll(sel)\n))];\n\n/**\n * @param {Element|HTMLElement|string} el\n * @param {string} descendentsSel\n * @returns {HTMLElement|null}\n */\nconst $e = (el, descendentsSel) => {\n const elem = typeof el === 'string' ? $(el) : el;\n if (!elem) {\n return null;\n }\n return elem.querySelector(descendentsSel);\n};\n\n/**\n * @param {HTMLElement|string} el\n * @param {string} descendentsSel\n * @returns {HTMLElement[]}\n */\nconst $$e = (el, descendentsSel) => {\n const elem = typeof el === 'string' ? $(el) : el;\n if (!elem) {\n return [];\n }\n return [...(/** @type {NodeListOf<HTMLElement>} */ (\n elem.querySelectorAll(descendentsSel)\n ))];\n};\n\n/**\n * @param {Node|string} node\n * @returns {void}\n */\nconst removeChildren = (node) => {\n const nde = typeof node === 'string' ? $(node) : node;\n if (!nde) {\n throw new Error('Node not found!');\n }\n while (nde.hasChildNodes()) {\n nde.lastChild?.remove();\n }\n};\n\n/**\n * @param {HTMLElement|string} sel\n * @returns {void}\n */\nconst removeIfExists = (sel) => {\n const el = typeof sel === 'string' ? $(sel) : sel;\n if (el) {\n el.remove();\n }\n};\n\n/**\n * @param {HTMLElement|string} el\n * @param {string|string[]} selectors\n * @returns {HTMLElement[]}\n */\nconst filterChildElements = (el, selectors) => {\n /**\n * @param {HTMLElement} el\n * @param {string} sel\n * @returns {HTMLElement[]}\n */\n const getMatchingChildrenForElement = (el, sel) => {\n const childElements = el.children;\n const matchingChildElements = [...childElements].filter((el) => {\n return el.matches(sel);\n });\n return /** @type {HTMLElement[]} */ (matchingChildElements);\n };\n const elem = typeof el === 'string' ? $(el) : el;\n if (!elem) {\n throw new Error('Element not found!');\n }\n let filtered = [elem];\n selectors = Array.isArray(selectors) ? selectors : [selectors];\n selectors.forEach((sel) => {\n filtered = filtered.reduce((els, childElement) => {\n /* istanbul ignore if -- Guard */\n if (!childElement) {\n return els;\n }\n els.push(...getMatchingChildrenForElement(childElement, sel));\n return els;\n }, /** @type {HTMLElement[]} */ ([]));\n });\n return filtered;\n};\n\n/**\n * @param {string} s\n * @returns {string}\n */\nconst initialCaps = (s) => {\n return s.charAt(0).toUpperCase() + s.slice(1);\n};\n\nconst DOM = {removeChildren, removeIfExists, filterChildElements, initialCaps};\n\nexport {\n U,\n $, $$,\n $e, $$e,\n DOM\n};\n","/* eslint-disable promise/avoid-new -- Our own API */\nimport {jml, nbsp, body} from '../vendor-imports.js';\nimport {$e} from './templateUtils.js';\n\n/**\n * @typedef {{[key: string]: string}} Locale\n */\n\n/** @type {Locale} */\nconst localeStrings = {\n submit: 'Submit',\n cancel: 'Cancel',\n ok: 'Ok'\n};\n\n// Todo: i18nize\nconst dialogs = {\n /** @type {Locale} */\n localeStrings: {},\n /**\n * @param {Locale} [locale]\n * @returns {void}\n */\n setLocale (locale = {}) {\n this.localeStrings = {...localeStrings, ...locale};\n },\n\n /**\n * @typedef {object} MakeDialogArgs\n * @property {import('jamilih').JamilihAttributes} [atts={}]\n * @property {import('jamilih').JamilihChildren} [children=[]]\n * @property {import('jamilih').EventHandler|boolean} [close]\n * @property {boolean} [remove=true]\n */\n /**\n * @param {MakeDialogArgs} cfg\n * @returns {HTMLDialogElement}\n */\n makeDialog ({atts = {}, children = [], close, remove = true} = {}) {\n if (close) {\n if (!atts.$on) {\n atts.$on = {};\n }\n if (!('close' in atts.$on)) {\n atts.$on.close = /** @type {import('jamilih').EventHandler} */ (close);\n }\n }\n const dialog = jml('dialog', atts, children, body);\n dialog.showModal();\n if (remove) {\n dialog.addEventListener('close', () => {\n dialog.remove();\n });\n }\n return dialog;\n },\n /**\n * @typedef {object} MakeCancelArgs\n * @property {(\n * info: {e: Event, dialog: HTMLDialogElement}\n * ) => boolean} [cancel]\n * @property {string} [cancelClass]\n * @property {string} [submitClass]\n * @property {...MakeDialogArgs} [args]\n */\n /**\n * @param {MakeCancelArgs} cfg\n * @returns {HTMLDialogElement}\n */\n makeCancelDialog ({\n cancel,\n cancelClass = 'cancel', submitClass = 'submit',\n ...args\n }) {\n const dialog = this.makeDialog(/** @type {MakeDialogArgs} */ (args));\n jml('div', {class: submitClass}, [\n ['br'], ['br'],\n ['button', {class: cancelClass, $on: {\n click (e) {\n e.preventDefault();\n if (cancel) {\n if (\n cancel.call(\n // eslint-disable-next-line object-shorthand -- Needed for TS\n this, {e: /** @type {Event} */ (e), dialog}\n ) === false\n ) {\n return;\n }\n }\n dialog.close();\n }\n }}, [this.localeStrings.cancel]]\n ], dialog);\n return dialog;\n },\n /**\n * @param {object} cfg\n * @param {(info: {e: Event, dialog: HTMLDialogElement}) => void} cfg.submit\n * @param {string} [cfg.submitText]\n * @param {string} [cfg.submitClass]\n * @param {MakeCancelArgs} [cfg.args]\n * @returns {HTMLDialogElement}\n */\n makeSubmitDialog ({submit, submitText, submitClass = 'submit', ...args}) {\n const dialog = this.makeCancelDialog(/** @type {MakeCancelArgs} */ (args));\n $e(dialog, `button.${/** @type {MakeCancelArgs} */ (\n args\n ).cancelClass || 'cancel'}`)?.before(\n jml('button', {\n class: submitClass,\n $on: {\n click (e) {\n // eslint-disable-next-line object-shorthand -- Needed for TS\n submit.call(this, {e: /** @type {Event} */ (e), dialog});\n }\n }\n }, [submitText ?? this.localeStrings.submit]),\n nbsp.repeat(2)\n );\n return dialog;\n },\n /**\n * @param {string|{\n * submitClass?: string,\n * message: string|import('jamilih').JamilihArray\n * }} message\n * @returns {Promise<void>}\n */\n alert (message) {\n message = typeof message === 'string' ? {message} : message;\n const {submitClass = 'submit'} = message;\n const {message: outputMessage} = message;\n return new Promise((resolve /* , _reject */) => {\n const dialog = jml('dialog', [\n /** @type {string|import('jamilih').JamilihArray} */ (outputMessage),\n ['br'], ['br'],\n ['div', {class: submitClass}, [\n ['button', {$on: {click () {\n dialog.close();\n resolve();\n }}}, [this.localeStrings.ok]]\n ]]\n ], body);\n dialog.showModal();\n });\n },\n /**\n * @param {object} cfg\n * @param {import('jamilih').JamilihAttributes} [cfg.atts]\n * @param {string|{message: string}} cfg.message\n * @param {string} [cfg.submitClass]\n */\n confirm ({atts = {}, message, submitClass = 'submit'}) {\n ({message} = typeof message === 'string' ? {message} : message);\n return new Promise((\n /** @type {(value?: any) => void} */\n resolve,\n reject\n ) => {\n const dialog = jml('dialog', atts, [\n message,\n ['br'], ['br'],\n ['div', {class: submitClass}, [\n ['button', {$on: {click () {\n dialog.close();\n resolve();\n }}}, [this.localeStrings.ok]],\n nbsp.repeat(2),\n ['button', {$on: {click () {\n dialog.close();\n reject(new Error('cancelled'));\n }}}, [this.localeStrings.cancel]]\n ]]\n ], body);\n dialog.showModal();\n });\n }\n};\n\ndialogs.setLocale();\n\nexport default dialogs;\n","import {jml} from './vendor-imports.js';\nimport Formats from './formats.js';\nimport Types from './types.js';\n\nimport {$e, DOM} from './utils/templateUtils.js';\nimport dialogs from './utils/dialogs.js';\n\n// This is technically just `import('./index.js').SetType`, but our\n// redirect file causes problems, so we redefine here\n/**\n * @typedef {(cfg: {\n * type: string,\n * baseValue?: import('./formats.js').StructuredCloneValue,\n * bringIntoFocus?: boolean,\n * avoidReport?: boolean,\n * specificSchema?: import('zodex').SzType\n * }) => void} SetType\n */\n\n/**\n * @typedef {(info: {\n * type: string,\n * editUI: Element,\n * specificSchema?: import('zodex').SzType\n * }) => void} AddTypeAndEditUI\n */\n\n/**\n * @typedef {(info?: {\n * baseValue?: import('./formats.js').StructuredCloneValue,\n * bringIntoFocus?: boolean,\n * schemaObject?: import('./formatAndTypeChoices.js').ZodexSchema,\n * avoidReport?: boolean\n * }) => void} AddAndValidateEditUI\n */\n\n/**\n * @typedef {() => void} SetStyles\n */\n\n/**\n * @typedef {HTMLElement & {\n * $addAndValidateEditUI: AddAndValidateEditUI,\n * $setStyles: SetStyles\n * }} TypeChoicesElementAPI\n */\n\n/**\n * @callback GetValue\n * @param {import('./types.js').StateObject} [stateObj] Will\n * auto-set `typeNamespace` and `format`\n * @param {string} [currentPath]\n * @returns {import('./formats.js').StructuredCloneValue}\n */\n\n/**\n * @callback GetType\n * @returns {string}\n */\n\n/**\n * @callback ValidValuesSet\n * @returns {boolean}\n */\n\n/**\n * @callback SetValue\n * @param {import('./formats.js').StructuredCloneValue} value\n * @param {import('./types.js').StateObject} stateObj\n * @returns {Promise<void>}\n */\n\n/**\n * @callback BuildTypeChoices\n * @param {{\n * autoTrigger?: boolean,\n * format: import('./formats.js').AvailableFormat,\n * typeNamespace?: string,\n * value?: import('./formats.js').StructuredCloneValue,\n * setValue?: boolean,\n * state?: string,\n * forcedState?: string,\n * keySelectClass?: string,\n * requireObject?: boolean,\n * objectHasValue?: boolean,\n * topRoot?: import('./types.js').RootElement,\n * formats?: import('./formats.js').default\n * types?: import('./types.js').default\n * schema?: string,\n * schemaIdx?: number,\n * schemaOriginal?: import('./formatAndTypeChoices.js').ZodexSchema,\n * schemaContent?: import('./formatAndTypeChoices.js').ZodexSchema,\n * }} cfg\n * @returns {{\n * domArray: [select: HTMLElement, typeContainer: HTMLElement],\n * getValue: GetValue,\n * getType: GetType,\n * validValuesSet: ValidValuesSet,\n * setValue: SetValue\n * }}\n */\n\n/**\n * @type {BuildTypeChoices}\n */\nexport const buildTypeChoices = ({\n autoTrigger = true,\n format,\n typeNamespace,\n value,\n setValue = false,\n state,\n // itemIndex = 0,\n keySelectClass,\n requireObject,\n objectHasValue,\n topRoot,\n formats = new Formats(),\n types = new Types(),\n schema,\n schemaIdx,\n schemaOriginal,\n schemaContent\n}) => {\n // console.log('format', format, 'state', state, 'path', typeNamespace);\n const typeAndSchemaInfo = requireObject && !schemaContent\n ? {\n typeOptions: [types.getOptionForType('object')], schemaObjects: undefined\n }\n : types.getTypeOptionsForFormatAndState(\n format, state, schemaContent, schemaOriginal\n );\n const {typeOptions} = typeAndSchemaInfo;\n const schemaObjs = typeAndSchemaInfo.schemaObjects;\n\n let editUI;\n\n /** @type {GetValue} */\n const $getValue = (stateObj, currentPath) => {\n const root = /** @type {HTMLDivElement} */ (\n $e(typeContainer, 'div[data-type]')\n );\n return types.getValueForRoot(\n root,\n /** @type {import('./types.js').StateObject} */ ({\n typeNamespace,\n formats,\n format,\n types,\n ...stateObj\n }),\n currentPath\n );\n };\n const sel = /** @type {HTMLSelectElement} */ (jml('select', {\n hidden: requireObject || typeOptions.length === 1,\n class: `typeChoices-${typeNamespace}${keySelectClass\n ? ' ' + keySelectClass\n : ''\n }`,\n // is: 'type-choices',\n $custom: {\n $getValue,\n /** @type {SetType} */\n $setType ({\n type, baseValue, bringIntoFocus, avoidReport, specificSchema\n }) {\n if (schemaObjs && specificSchema) {\n const idx = schemaObjs.map((obj) => {\n return JSON.stringify(obj);\n }).indexOf(JSON.stringify(specificSchema));\n if (idx === -1) {\n this.value = type;\n } else {\n this.selectedIndex = idx + 1;\n }\n } else {\n this.value = type;\n }\n this.$setStyles();\n this.$addAndValidateEditUI({baseValue, bringIntoFocus, avoidReport});\n },\n /**\n * @type {(info: {\n * type: string,\n * specificSchema?: import('zodex').SzType\n * }) => void} cfg\n */\n $setTypeNoEditUI ({type, specificSchema}) {\n if (schemaObjs && specificSchema) {\n const idx = schemaObjs.map((obj) => {\n return JSON.stringify(obj);\n }).indexOf(JSON.stringify(specificSchema));\n this.selectedIndex = idx + 1;\n } else {\n this.value = type;\n }\n this.$setStyles();\n },\n\n /** @type {SetStyles} */\n $setStyles () {\n const {value: type} = this;\n this.dataset.type = type; // Used for styling\n let ancestorEl = this.parentElement;\n if (ancestorEl.nodeName.toLowerCase() !== 'fieldset') {\n // Grandparent check added for optional items placeholder\n ancestorEl = this.parentElement.parentElement;\n }\n if (ancestorEl.nodeName.toLowerCase() === 'fieldset') {\n ancestorEl.dataset.type = type;\n DOM.filterChildElements(ancestorEl, 'legend').forEach((legend) => {\n legend.dataset.type = type;\n });\n }\n },\n $getTypeRoot () {\n const container = this.$getContainer();\n /* istanbul ignore if -- How to replicate? */\n if (!container) {\n return false;\n }\n return $e(container, 'div[data-type]');\n },\n\n /** @type {AddAndValidateEditUI} */\n $addAndValidateEditUI (/* istanbul ignore next -- Backup */ {\n baseValue, bringIntoFocus, schemaObject, avoidReport\n /* istanbul ignore next -- Backup */\n } = {}) {\n const {value: type} = this;\n\n if (!type) {\n return;\n }\n let topRoot = this.$getTopRoot();\n\n // Todo (low): Try to avoid need for `baseValue`\n // (needed by arrayNonindexKeys for setting an array\n // length and avoiding errors); could set all\n // values through here?\n editUI = types.getUIForModeAndType({\n readonly: false,\n typeNamespace,\n type,\n bringIntoFocus,\n hasValue: type === 'arrayNonindexKeys' && baseValue,\n value: baseValue,\n buildTypeChoices,\n format,\n topRoot,\n schemaContent: schemaOriginal ??\n (schemaContent?.type === 'union' && schemaIdx !== undefined\n ? schemaContent.options[schemaIdx]\n : schemaContent),\n // Added `schemaContent` as inner arrays were not getting their\n // schema info; this apparently allows (actually requires)\n // commenting out the auto-adding of object content at end of\n // editUI in arrayType.js; we add `schemaFallingBack` to\n // distinguish\n specificSchemaObject: schemaObject ??\n\n // Avoid JSON references by using this by default (or only?)\n (schemaObjs?.[sel.selectedIndex - 1]) ??\n\n // eslint-disable-next-line @stylistic/max-len -- Long\n /* istanbul ignore next -- Can probably remove as `schemaObjs` will be set */\n (schemaContent?.type === 'union' && schemaIdx !== undefined\n /* istanbul ignore next -- Can probably remove */\n ? schemaContent.options[schemaIdx]\n // This is probably just `undefined` by here\n : schemaContent),\n schemaFallingBack: Boolean(!schemaObject && schemaContent)\n });\n this.$addEditUI({editUI});\n this.$validate({\n avoidReport\n });\n topRoot = this.$getTopRoot(); // May be existing now\n // Needed; Array/object ref somewhere could now be valid or invalid\n types.validateAllReferences({topRoot});\n },\n\n /** @type {AddTypeAndEditUI} */\n $addTypeAndEditUI ({type, editUI, specificSchema}) {\n this.$setTypeNoEditUI({type, specificSchema});\n this.$addEditUI({editUI});\n },\n /**\n * @type {(info: {editUI: HTMLElement}) => void}\n */\n $addEditUI ({editUI}) {\n const container = this.$getContainer();\n DOM.removeChildren(container);\n jml(editUI, container);\n },\n $getContainer () {\n return this.nextElementSibling;\n },\n $getTopRoot () {\n return topRoot || this.$getTypeRoot();\n },\n /**\n * @param {{avoidReport?: boolean}} cfg\n * @returns {boolean}\n */\n $validate ({avoidReport} = {}) {\n const {value: type} = this;\n const container = this.$getContainer();\n if (!container.firstElementChild) {\n return false;\n }\n const editUI = container.firstElementChild;\n return types.validate({\n type, root: editUI, topRoot: this.$getTopRoot(),\n avoidReport\n });\n }\n },\n $on: {change (e) {\n // We don't want form `onchange` to run `$checkForKeyDuplicates`\n // again (through `addAndValidateEditUI`->`validateAllReferences`)\n e?.stopPropagation();\n /** @type {TypeChoicesElementAPI} */ (this).$addAndValidateEditUI({\n schemaObject: schemaObjs\n ? schemaObjs[Number(\n /** @type {HTMLSelectElement} */\n (e.target).selectedOptions[0].dataset.idx\n )]\n : undefined\n });\n /** @type {TypeChoicesElementAPI} */ (this).$setStyles();\n }}\n }, [\n ['option', {value: ''}, [\n '(Choose a type)'\n ]],\n\n // @ts-expect-error Apparent TS bug\n ...typeOptions.map(\n ([optText, optAtts], idx) => {\n return [\n 'option',\n {\n ...optAtts,\n dataset: schemaObjs ? {idx} : {}\n },\n [optText]\n ];\n }\n )\n ]));\n if (autoTrigger && typeOptions.length === 1 && !setValue) {\n setTimeout(() => {\n sel.selectedIndex = 1;\n sel.dispatchEvent(new Event('change'));\n });\n } else if (setValue || (requireObject && !objectHasValue)) {\n setTimeout(async () => {\n if (!setValue) { // if (requireObject && !objectHasValue) {\n // Todo (low): We could auto-populate keypath if has\n // keypath (and we probably also only want if\n // not autoincrement)\n value = {};\n }\n try {\n const {\n rootUI: rootEditUI,\n specificSchemas\n } = await formats.getControlsForFormatAndValue(\n types,\n format,\n value,\n {\n readonly: false,\n typeNamespace,\n schema,\n schemaContent,\n formats,\n types\n }\n );\n const type =\n Types.getTypeForRoot(/** @type {HTMLDivElement} */ (\n rootEditUI\n ));\n // eslint-disable-next-line @stylistic/max-len -- Long\n /** @type {HTMLSelectElement & {$addTypeAndEditUI: AddTypeAndEditUI}} */ (\n sel\n ).$addTypeAndEditUI({\n type, editUI: rootEditUI,\n // We do actually want the first one\n specificSchema: specificSchemas?.[0]\n });\n } catch (err) {\n /* istanbul ignore next -- At least some errors handled earlier */\n dialogs.alert({\n message: 'The object to be added had types not supported ' +\n 'by the current format.'\n });\n /* istanbul ignore next -- How to trigger? */\n console.log('err', err);\n }\n });\n }\n\n const typeContainer = jml('div', {class: 'typeContainer'});\n\n return {\n domArray: [\n sel,\n typeContainer\n ],\n\n /** @type {GetValue} */\n getValue: $getValue,\n\n /** @type {GetType} */\n getType () {\n const root = /** @type {HTMLDivElement} */ (\n $e(typeContainer, 'div[data-type]')\n );\n return Types.getTypeForRoot(root);\n },\n\n /** @type {ValidValuesSet} */\n validValuesSet () {\n const root = /** @type {HTMLDivElement} */ (\n $e(typeContainer, 'div[data-type]')\n );\n const form = /** @type {HTMLFormElement} */ (root.closest('form'));\n return Types.validValuesSet({form, typeNamespace});\n },\n\n /** @type {SetValue} */\n async setValue (value, stateObj) {\n const rootEditUI = /** @type {HTMLDivElement} */ (\n (await formats.getControlsForFormatAndValue(\n types,\n format, value, stateObj\n )).rootUI\n );\n const type = Types.getTypeForRoot(rootEditUI);\n /** @type {HTMLSelectElement & {$addTypeAndEditUI: AddTypeAndEditUI}} */ (\n sel\n ).$addTypeAndEditUI({type, editUI: rootEditUI});\n }\n };\n};\n","/**\n * @param {...string} args\n * @returns {string}\n */\nconst makeJSONPointer = (...args) => {\n return '#/' + args.map((path) => {\n return escapeJSONPointer(path);\n }).join('/');\n};\n\n/**\n * @param {string} path\n * @returns {string}\n */\nconst escapeJSONPointer = (path) => {\n return path.replaceAll('~', '~0').replaceAll('/', '~1');\n};\n\n/**\n * @param {string} pathPart\n * @returns {string}\n */\nconst unescapeJSONPointerPart = (pathPart) => {\n return pathPart.replaceAll(/~([01])/gu, (_n0, n1) => {\n if (n1 === '0') {\n return '~';\n }\n return '/';\n });\n};\n\n/**\n * @param {string} path\n * @returns {string[]}\n */\nconst getJSONPointerParts = (path) => {\n return path.split('/').slice(1).map(\n (pathPart) => unescapeJSONPointerPart(pathPart)\n );\n};\n\n/**\n * @typedef {any} ArbitraryObject\n */\n\n/**\n * @param {ArbitraryObject} obj\n * @param {string} pathPart\n * @returns {ArbitraryObject|string}\n */\nconst reduceJSONPointerParts = (obj, pathPart) => {\n if (!(pathPart in obj)) {\n throw new TypeError('Path part not found in object');\n }\n obj = obj[pathPart];\n return obj;\n};\n\n/**\n * @param {object} cfg\n * @param {string} cfg.path\n * @param {ArbitraryObject} cfg.obj\n * @returns {string|ArbitraryObject}\n */\nconst resolveJSONPointer = ({path, obj}) => {\n return getJSONPointerParts(path).reduce(\n (obj, pathPart) => reduceJSONPointerParts(obj, pathPart),\n obj\n );\n};\n\n/**\n * @param {string} path\n * @returns {string}\n */\nconst typesonPathToJSONPointer = (path) => {\n if (!path) {\n return path;\n }\n return '/' + path.split('.').map((keyPathComponent) => {\n // Keep `~0` (representing tilde) escaped as same sequence in\n // JSONPointer (that's why we don't just use\n // Typeson's `unescapeKeyPathComponent` + `escapeJSONPointer` here)\n return keyPathComponent.replaceAll('~1', '.').replaceAll('/', '~1');\n }).join('/');\n};\n\nexport {\n makeJSONPointer, escapeJSONPointer,\n unescapeJSONPointerPart, getJSONPointerParts, reduceJSONPointerParts,\n resolveJSONPointer,\n typesonPathToJSONPointer\n};\n","import structuredCloning from './structuredCloning.js';\n\n/**\n * @type {Map<import('../types.js').AvailableType,\n * import('../types.js').AvailableType>\n * }\n */\nconst typesonToJson = new Map([\n ['arrayNonindexKeys', 'array']\n]);\n\n/** @type {import('../formats.js').Format} */\nconst json = {\n types: () => [\n 'null', 'true', 'false', 'number', 'string', 'array', 'object'\n ],\n iterate (records, stateObj) {\n // Todo (low): Add a more optimal (`JSON.stringify`-based iterator)\n const recs = records;\n // I believe this escaping should be by Typeson itself\n // if (records && typeof records === 'object' && records.$types) {\n // recs = {$: records, $types: true};\n // }\n stateObj.format = 'json';\n return structuredCloning.iterate(recs, stateObj);\n },\n // A hack until we simply pass in our own types or do own parsing\n convertFromTypeson (typesonType) {\n return {type: typesonToJson.get(typesonType)};\n },\n testInvalid (newType, value) {\n switch (newType) {\n case 'array':\n return Object.keys(value).length !==\n /** @type {Array<import('../formats.js').StructuredCloneValue>} */ (\n value\n ).length;\n /* istanbul ignore next -- Shouldn't occur */\n default:\n /* istanbul ignore next -- Shouldn't occur */\n return undefined; // Todo: Fix?\n }\n },\n getTypesAndSchemasForState (types, state) {\n /* istanbul ignore else -- No other states apparently */\n if (!state || ['array', 'object'].includes(state)) {\n return {\n types: this.types(),\n schemaObjects: []\n };\n }\n /* istanbul ignore next -- Shouldn't normally reach here */\n return undefined;\n }\n};\n\nexport default json;\n","import {\n Typeson, unescapeKeyPathComponent, structuredCloningThrowing,\n resurrectable as noneditable, toStringTag\n} from '../vendor-imports.js';\n\nimport {buildTypeChoices} from '../typeChoices.js';\nimport {\n typesonPathToJSONPointer\n} from '../utils/jsonPointer.js';\n\nimport json from './json.js';\n\n// We modify resurrectable in hopes an including application doesn't need it\n/** @type {import('typeson').TypeSpecSet} */ (\n noneditable.resurrectable\n).test = /** @type {import('typeson').Tester} */ (x) => {\n return x && typeof x === 'object' && !Array.isArray(x) &&\n // Could be a user object with a string tag, but we can't tell\n toStringTag(x) !== 'Object';\n};\n\n/**\n * Delegates data-based UI building to method for adding child elements (a\n * method which is housed in the array type object).\n * @typedef {(info: {\n * propName: string,\n * type: import('../types.js').AvailableType,\n * value: import('../formats.js').StructuredCloneValue,\n * bringIntoFocus?: boolean,\n * setAValue?: boolean,\n * schemaContent?: import('../formats/schema.js').ZodexSchema,\n * mustBeOptional?: boolean,\n * schemaIdx?: number\n * }) => HTMLElement|null} AddAndSetArrayElement\n */\n\n/**\n * @typedef {import('typeson-registry').EncapsulateObserver} EncapsulateObserver\n */\n\n/**\n * Obtains state-specific data and returns an observer that can build a UI based\n * on data it receives.\n * @param {import('../types.js').StateObject} stateObj\n * @returns {EncapsulateObserver}\n */\nconst encapsulateObserver = (stateObj) => {\n const {\n typeNamespace, readonly, format: frmt, schemaContent,\n formats,\n types\n } = stateObj;\n\n const format = /** @type {import('../formats.js').AvailableFormat} */ (frmt);\n\n /**\n * Matches keypaths to the HTML UI Element.\n * @type {{[key: string]: HTMLElement & {\n * $addAndSetArrayElement: AddAndSetArrayElement\n * }}}\n */\n const parents = {};\n\n /**\n * @type {{\n * [key: string]: [import('zodex').SzType, number|undefined]|undefined\n * }}\n */\n const schemaParents = {};\n\n /** @type {string[]} */\n const mapPaths = [];\n\n return (observerObj) => {\n const {\n type,\n cyclic,\n keypath,\n value,\n replaced,\n cyclicKeypath,\n endIterateIn,\n endIterateOwn,\n endIterateUnsetNumeric,\n clone\n } = observerObj;\n if ('replaced' in observerObj) {\n return;\n }\n if (cyclic === 'readonly' && !Array.isArray(observerObj.value)) {\n return;\n }\n if (cyclic === 'readonly' && (type === 'set' || type === 'filelist')) {\n return;\n }\n if (endIterateIn || endIterateOwn) {\n return;\n }\n if (endIterateUnsetNumeric || (\n clone === undefined && cyclicKeypath === undefined && Array.isArray(value)\n )) {\n return;\n }\n\n // What other situations is this firing twice, and it\n // shouldn't reach here?\n if (observerObj.replacing && type === 'negativeZero') {\n return;\n }\n\n /* istanbul ignore if -- Not part of format */\n if (type === 'sparseUndefined') { // We'll handle otherwise\n return;\n }\n\n /** @type {import('../types.js').AvailableType} */\n let newType;\n let newValue = value;\n\n /* schema: || format.startsWith('schema-') */\n const state = format === 'structuredCloning'\n ? 'arrayNonindexKeys'\n // ? 'sparseArrays'\n : 'array';\n\n const li = keypath.lastIndexOf('.');\n const arrayOrObjectPropertyName =\n unescapeKeyPathComponent(keypath.slice(li + 1));\n const parentPath = li === -1 ? '' : keypath.slice(0, li);\n\n let schema, schemaIdx, mustBeOptional;\n if (typeof cyclicKeypath === 'string') {\n newValue = typesonPathToJSONPointer(cyclicKeypath);\n newType = type === 'array' ? 'arrayReference' : 'objectReference';\n ({\n newType, schema, schemaIdx, mustBeOptional\n } = canonicalTypeToAvailableTypeAndSchema(\n /** @type {import('../types.js').default} */ (types),\n /** @type {import('../formats.js').default} */ (formats),\n format, state, newType, value,\n arrayOrObjectPropertyName,\n schemaParents[parentPath],\n stateObj\n )); // Todo (low): Add accurate state for second argument\n } else {\n // console.log(\n // // keypath\n // 'schemaParents', keypath, parentPath, value,\n // arrayOrObjectPropertyName, schemaParents[parentPath]\n // );\n try {\n // console.log(\n // 'VVVV0', JSON.stringify(parentPath), schemaParents // , stateObj\n // );\n ({\n newType, schema, schemaIdx, mustBeOptional\n } = canonicalTypeToAvailableTypeAndSchema(\n /** @type {import('../types.js').default} */ (types),\n /** @type {import('../formats.js').default} */ (formats),\n format,\n state,\n /**\n * @type {import('../types.js').AvailableType}\n */\n (type),\n value,\n arrayOrObjectPropertyName,\n schemaParents[parentPath],\n stateObj\n )); // Todo (low): Add state for second argument\n // console.log('VVVV1', value, schema);\n // console.log('VVVV2',\n // JSON.stringify(stateObj.schemaContent, null, 2));\n } catch (err) {\n console.log('err', type, err);\n stateObj.error = /** @type {Error} */ (err);\n return;\n }\n }\n\n const hasChildren = [\n 'array', 'object', 'set', 'map', 'tuple', 'record', 'filelist',\n // 'sparseArrays',\n 'arrayNonindexKeys'\n ].includes(newType);\n\n // Maps are followed up by arrays which we don't want as such;\n // we track the paths to avoid reporting these child arrays\n const mapType = type === 'map' &&\n Object.prototype.toString.call(value) === '[object Map]';\n if (mapType) {\n mapPaths.push(keypath);\n }\n\n if (schema) {\n stateObj.specificSchema = schema;\n if (!stateObj.specificSchemas) {\n stateObj.specificSchemas = [];\n }\n stateObj.specificSchemas.push(schema);\n }\n\n // console.log('is', stateObj.schemaContent);\n // console.log('but could set to', schema);\n // console.log('arrayOrObjectPropertyName', arrayOrObjectPropertyName);\n\n if (!stateObj.rootUI) {\n // console.log('vvvv0', newType, newValue);\n stateObj.rootUI = types?.getUIForModeAndType({\n readonly,\n typeNamespace,\n type: newType,\n bringIntoFocus: false,\n buildTypeChoices,\n format,\n specificSchemaObject: schema,\n schemaContent,\n value: newValue,\n hasValue: true,\n // Not currently in use but may be convenient for a\n // type wanting the serialized data\n replaced\n });\n parents[''] = /**\n * @type {HTMLElement &\n * {$addAndSetArrayElement: AddAndSetArrayElement}}\n */ (stateObj.rootUI);\n\n if (schema) {\n schemaParents[''] = [schema, schemaIdx];\n }\n\n // Since we're skipping the array elements, we need to add the\n // map element to the array index where the array children\n // will be found (which we do want)\n if (mapType) {\n /** @type {Map<any, any>} */ [...value].forEach((_, i) => {\n parents[i] = /**\n * @type {HTMLElement &\n * {$addAndSetArrayElement: AddAndSetArrayElement}}\n */ (stateObj.rootUI);\n });\n }\n return;\n }\n\n if (schema) {\n schemaParents[keypath] = [schema, schemaIdx];\n }\n // console.log(\n // 'schemaParents', newValue, JSON.stringify(parentPath),\n // schema, schemaParents\n // );\n\n // Todo (low): If could be async, use async encapsulate method\n // Todo (low): Handle `awaitingTypesonPromise` with place-holder\n // Todo (low): Handle `resolvingTypesonPromise` to replace place-holder\n setTimeout(() => {\n const ui = parents[parentPath];\n // These errors occur, e.g., if `replacing` not first added and then\n // a converted object gets treated as the root UI (e.g., for `regexp`\n // or `blobHTML` at root)\n // If there isn't a problem in Typeson with transmitting the `readonly`\n // status recursively down the object (should be no need to check\n // for circulars there?), could change Typeson to report `readonly`\n // for the nested items, in which case, we could block out `readonly`\n // instead of doing this here\n if (!ui || !('$addAndSetArrayElement' in ui)) {\n return;\n }\n\n // Skip the array structures immediately following the Map,\n // as map needs to handle\n if (!mapType && mapPaths.some((mapPath) => {\n if (mapPath === keypath ||\n (mapPath === '' && (/^\\d+$/u).test(keypath))) {\n return true;\n }\n const trailingIndex = keypath.match(/\\.\\d+$/u);\n return (trailingIndex && mapPath !== '' &&\n keypath.slice(0, -trailingIndex[0].length) === mapPath);\n })) {\n return;\n }\n\n // console.log('vvvv', newType, '::', newValue, '::', newValue?.cause);\n\n const root = ui.$addAndSetArrayElement({\n mustBeOptional,\n propName: arrayOrObjectPropertyName,\n type: newType,\n value: newValue,\n bringIntoFocus: false,\n schemaIdx,\n schemaContent: schema ?? schemaContent\n });\n\n /* istanbul ignore if -- Guard for `null` return */\n if (!root) {\n return;\n }\n\n if (!readonly) {\n types?.setValue({\n type: newType,\n // eslint-disable-next-line object-shorthand -- TS\n root: /** @type {HTMLDivElement} */ (root),\n value: newValue\n });\n types?.validate({\n type: newType,\n // eslint-disable-next-line object-shorthand -- TS\n root: /** @type {HTMLDivElement} */ (root),\n topRoot: /** @type {HTMLDivElement} */ (stateObj.rootUI),\n // We don't want focus when values auto-added\n avoidReport: true\n });\n }\n\n if (hasChildren) {\n parents[keypath] = /**\n * @type {HTMLElement &\n * {$addAndSetArrayElement: AddAndSetArrayElement}}\n */ (\n root\n );\n\n // Since we're skipping the array elements, we need to add the\n // map element to the array index where the array children\n // will be found (which we do want)\n if (mapType) {\n /** @type {Map<any, any>} */ [...value].forEach((_, i) => {\n parents[`${keypath}.${i}`] = /**\n * @type {HTMLElement &\n * {$addAndSetArrayElement: AddAndSetArrayElement}}\n */ (root);\n });\n }\n }\n });\n };\n};\n\n/**\n * Performs replacements on a list of types.\n * @param {string[]} originTypes\n * @param {[originType: string, replacementType: string][]} replacements\n * @returns {void}\n */\nconst replaceTypes = (originTypes, replacements) => {\n replacements.forEach(([originType, replacementType]) => {\n originTypes.splice(originTypes.indexOf(originType), 1, replacementType);\n });\n};\n\n/**\n * Converts a (typeson structured cloning) type to a type name relevant for the\n * format, state, value, and schema content, and may supply a child type if\n * there is a match. Also returns relevant schema for the type.\n * @param {import('../types.js').default} types The Types object containing\n * type-specific data.\n * @param {import('../formats.js').default} formats The Formats object\n * containing format-specific data.\n * @param {import('../formats.js').AvailableFormat} format The current format.\n * @param {string} state The current state.\n * @param {import('../types.js').AvailableType} valType The value type being\n * checked.\n * @param {import('../formats.js').StructuredCloneValue} v The value being\n * checked.\n * @param {string} arrayOrObjectPropertyName\n * @param {[import('zodex').SzType, number|undefined]|undefined} parentSchema\n * @param {import('../types.js').StateObject} stateObj The schema content\n * being checked.\n * @throws {Error} May throw if data found to be invalid.\n * @returns {{\n * newType: import('../types.js').AvailableType,\n * schema?: import('zodex').SzType|undefined,\n * mustBeOptional?: boolean,\n * schemaIdx?: number\n * }} Schema and type info.\n */\nconst canonicalTypeToAvailableTypeAndSchema = (\n types, formats, format, state, valType, v, arrayOrObjectPropertyName,\n parentSchema, stateObj\n) => {\n const frmt = formats.getAvailableFormat(format);\n const {getTypesAndSchemasForState, convertFromTypeson, testInvalid} = frmt;\n const allowableTypes = getTypesAndSchemasForState.call(\n frmt, types, state, stateObj.schemaContent\n )?.types;\n /* istanbul ignore if -- Guard */\n if (!allowableTypes) {\n throw new Error('Unexpected undefined type for state');\n }\n\n /**\n * @type {import('../types.js').AvailableType|undefined}\n */\n let ret;\n\n /**\n * Throws an error with information about the new value type.\n * @param {string} newValType The new value type being recorded.\n * @throws {Error} The invalid Error being thrown.\n * @returns {never} Always throws instead of returning.\n */\n const isInvalid = (newValType) => {\n const err = /** @type {Error & {newValType: string}} */ (\n new Error('Invalid')\n );\n err.newValType = newValType;\n throw err;\n };\n let schema;\n if (convertFromTypeson) {\n let newValType;\n let mustBeOptional;\n let schemaIdx;\n ({\n type: newValType,\n schema,\n schemaIdx,\n mustBeOptional\n } = convertFromTypeson(\n valType, types, v, arrayOrObjectPropertyName, parentSchema, stateObj\n ));\n if (typeof newValType === 'string') {\n if (testInvalid && testInvalid(newValType, v)) {\n return isInvalid(newValType);\n }\n valType = newValType;\n if (schema) {\n return {\n newType: valType,\n schema,\n schemaIdx,\n mustBeOptional\n };\n }\n }\n }\n\n allowableTypes.some((allowableType) => {\n const typeObj =\n /** @type {import('../types.js').TypeObject & {childTypes: string[]}} */ (\n types.getTypeObject(allowableType)\n );\n const {\n valueMatch, superType, childTypes\n } = typeObj;\n if (\n (superType && valueMatch &&\n // Using, e.g., for `true` and `false` subtypes\n superType === valType && valueMatch(v)) ||\n (childTypes && childTypes.includes(valType))\n ) {\n ret = allowableType;\n return true;\n }\n\n return false;\n });\n\n if (ret === undefined) {\n // We run this separately from the `childTypes` check above\n // to ensure `childTypes` have priority regardless of position\n allowableTypes.some((allowableType) => {\n if (allowableType === valType) {\n ret = allowableType;\n return true;\n }\n return false;\n });\n if (ret === undefined) {\n console.log('AALLLowableTypes', state, allowableTypes, '::', valType);\n return isInvalid(valType);\n }\n }\n return {\n newType: ret,\n schema\n };\n};\n\n/** @type {import('../formats.js').Format} */\nconst structuredCloning = {\n iterate (records, stateObj) {\n /* istanbul ignore if -- Just a guard */\n if (!stateObj.format) {\n stateObj.format = 'structuredCloning';\n }\n // Todo: Replace this with async typeson?\n // eslint-disable-next-line promise/avoid-new -- Our own API for now\n return new Promise((resolve, reject) => {\n const structuredCloningFixed = structuredCloningThrowing.filter(\n (typeSpecSet) => {\n return ![\n // Not yet supported within JSOE\n 'imagedata',\n 'imagebitmap',\n 'cryptokey',\n 'domquad'\n ].some((prop) => {\n return Object.hasOwn(typeSpecSet, prop);\n });\n }\n );\n structuredCloningFixed.splice(\n // Add after userObjects\n 1,\n 0,\n noneditable\n );\n const typeson = new Typeson({\n encapsulateObserver: encapsulateObserver(stateObj)\n }).register(structuredCloningFixed);\n typeson.encapsulate(records);\n // Todo (low): We might want to run async encapsulate for\n // async types (and put this after Promise resolves)\n if (stateObj.error) {\n reject(stateObj.error);\n } else {\n resolve(/** @type {Required<import('../types.js').StateObject>} */ (\n stateObj\n ));\n }\n });\n },\n getTypesAndSchemasForState (types, state) {\n if (state && types.getContextInfo('structuredCloning', state)) {\n const typesForFormat = this.getTypesAndSchemasForState(types)?.types ||\n /* istanbul ignore next -- types should be an array */\n [];\n const contextInfo = types.getContextInfo('structuredCloning', state);\n contextInfo.forEach(({type, after}) => {\n const precedingIdx = typesForFormat.indexOf(after);\n typesForFormat.splice(precedingIdx + 1, 0, type);\n });\n return {\n types: typesForFormat,\n schemaObjects: []\n };\n }\n // Todo: Introduce new keys (to `Types.contexts`?) which could be used to\n // determine a delimited group of children (rather\n // than manual exception handling as we do here)\n if (state === 'errorsArray') {\n return {\n types: ['error', 'errors'],\n schemaObjects: []\n };\n }\n if (state === 'filelistArray') {\n return {\n types: ['file'],\n schemaObjects: []\n };\n }\n return {\n types: this.types(),\n schemaObjects: []\n };\n /*\n // These have their children determined internally to array\n if (['map', 'set'].includes(state)) {return;}\n */\n\n // These have their own internal numeric children instead\n /*\n if (\n 'int8array', 'uint8array', 'uint8clampedarray',\n 'int16array', 'uint16array', 'int32array',\n 'uint32array', 'float32array', 'float64array'\n ).includes(state)) {return;}\n */\n },\n types () {\n const jsonTypes = json.types();\n replaceTypes(jsonTypes, [\n [\n 'array',\n // We can rename to this instead of `arrayNonindexKeys` if we change\n // typeson-registry name\n // 'sparseArrays',\n 'arrayNonindexKeys'\n ]\n ]);\n return [\n // This type is only for throwing upon cloning errors:\n // 'checkDataCloneException'\n // This type might be supported by evaluable JS or config passed in:\n // 'userObject'\n ...jsonTypes,\n 'undef', // Explicit undefined only\n 'bigint',\n 'bigintObject',\n 'SpecialNumber', // '`NaN`, `Infinity`, `-Infinity`, `-0`\n 'date',\n 'regexp',\n 'BooleanObject',\n 'NumberObject',\n 'StringObject',\n 'error',\n 'errors',\n 'blob',\n 'blobHTML',\n 'file',\n 'set',\n 'map',\n 'filelist',\n 'domexception',\n 'domrect',\n 'dompoint',\n 'dommatrix',\n 'buffersource',\n 'resurrectable'\n\n // Ok, but will need some work and/or decisions on how to present:\n // 'cryptokey',\n // 'domquad',\n // 'imagedata', 'imagebitmap',\n ];\n }\n};\n\nexport default structuredCloning;\n","import structuredCloning from './structuredCloning.js';\n\n/** @type {import('../formats.js').Format} */\nconst indexedDBKey = {\n types: () => [\n 'number', 'SpecialRealNumber', 'string', 'ValidDate', 'array',\n 'buffersource'\n ],\n // A hack until we simply pass in our own types or do own parsing\n testInvalid (newType, value) {\n switch (newType) {\n /* istanbul ignore next -- Shouldn't occur as it is a preset */\n case 'SpecialRealNumber':\n /* istanbul ignore next -- Shouldn't occur as it is a preset */\n return Number.isNaN(value);\n case 'ValidDate':\n return Number.isNaN(/** @type {Date} */ (value).getTime());\n case 'array':\n return Object.keys(value).length !==\n /** @type {Array<import('../formats.js').StructuredCloneValue>} */ (\n value\n ).length;\n /* istanbul ignore next -- Shouldn't occur */\n default:\n /* istanbul ignore next -- Shouldn't occur */\n return false; // Todo: Should this throw?\n }\n },\n convertFromTypeson (typesonType) {\n return {type: typesonToIndexedDBKey.get(typesonType)};\n },\n iterate (records, stateObj) {\n stateObj.format = 'indexedDBKey';\n return structuredCloning.iterate(records, stateObj);\n },\n getTypesAndSchemasForState (types, state) {\n /* istanbul ignore else -- See below */\n if (!state || ['array'].includes(state)) {\n return {\n types: this.types(),\n schemaObjects: []\n };\n }\n // eslint-disable-next-line @stylistic/max-len -- Long\n /* istanbul ignore next -- Can't be object, so shouldn't normally reach here */\n return undefined;\n }\n};\n\n/**\n * @type {Map<import('../types.js').AvailableType,\n* import('../types.js').AvailableType>\n* }\n*/\nconst typesonToIndexedDBKey = new Map([\n // This shouldn't occur as it is a preset\n ['SpecialNumber', 'SpecialRealNumber'],\n ['date', 'ValidDate'],\n // 'sparseArrays', 'array',\n ['arrayNonindexKeys', 'array']\n]);\n\nexport default indexedDBKey;\n","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n overrideMap,\n overrideMap === errorMap ? undefined : errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\nfunction custom(check, params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n}\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n datetimeRegex: datetimeRegex,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, datetimeRegex, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","import { z } from \"zod\";\nfunction checkRef(item, opts) {\n if (\"$ref\" in item) {\n const lazy = z.lazy(() => z.null());\n opts.$refs.push([lazy, item.$ref]);\n return lazy;\n }\n return false;\n}\nconst d = dezerializeRefs;\nconst dezerializers = {\n number: (shape) => {\n let n = shape.coerce ? z.coerce.number() : z.number();\n if (shape.min !== undefined) {\n n = shape.minInclusive ? n.min(shape.min) : n.gt(shape.min);\n }\n if (shape.max !== undefined) {\n n = shape.maxInclusive ? n.max(shape.max) : n.lt(shape.max);\n }\n if (shape.multipleOf !== undefined) {\n n = n.multipleOf(shape.multipleOf);\n }\n if (shape.int) {\n n = n.int();\n }\n if (shape.finite) {\n n = n.finite();\n }\n return n;\n },\n string: (shape) => {\n let s = shape.coerce ? z.coerce.string() : z.string();\n if (shape.min !== undefined) {\n s = s.min(shape.min);\n }\n if (shape.max !== undefined) {\n s = s.max(shape.max);\n }\n if (shape.length !== undefined) {\n s = s.length(shape.length);\n }\n if (shape.startsWith !== undefined) {\n s = s.startsWith(shape.startsWith);\n }\n if (shape.endsWith !== undefined) {\n s = s.endsWith(shape.endsWith);\n }\n if (shape.toLowerCase !== undefined) {\n s = s.toLowerCase();\n }\n if (shape.toUpperCase !== undefined) {\n s = s.toUpperCase();\n }\n if (shape.trim !== undefined) {\n s = s.trim();\n }\n if (\"includes\" in shape) {\n s = s.includes(shape.includes, { position: shape.position });\n }\n if (\"regex\" in shape) {\n s = s.regex(new RegExp(shape.regex, shape.flags));\n }\n if (\"kind\" in shape) {\n if (shape.kind == \"ip\") {\n s = s.ip({ version: shape.version });\n }\n else if (shape.kind == \"datetime\") {\n s = s.datetime({\n offset: shape.offset,\n precision: shape.precision,\n local: shape.local,\n });\n }\n else if (shape.kind == \"time\") {\n s = s.time({\n precision: shape.precision,\n });\n }\n else {\n s = s[shape.kind]();\n }\n }\n return s;\n },\n boolean: (shape) => (shape.coerce ? z.coerce.boolean() : z.boolean()),\n nan: () => z.nan(),\n bigInt: (shape) => {\n let i = shape.coerce ? z.coerce.bigint() : z.bigint();\n if (shape.min !== undefined) {\n const min = BigInt(shape.min);\n i = shape.minInclusive ? i.min(min) : i.gt(min);\n }\n if (shape.max !== undefined) {\n const max = BigInt(shape.max);\n i = shape.maxInclusive ? i.max(max) : i.lt(max);\n }\n if (shape.multipleOf !== undefined) {\n const multipleOf = BigInt(shape.multipleOf);\n i = i.multipleOf(multipleOf);\n }\n return i;\n },\n date: (shape) => {\n let i = shape.coerce ? z.coerce.date() : z.date();\n if (shape.min !== undefined) {\n i = i.min(new Date(shape.min));\n }\n if (shape.max !== undefined) {\n i = i.max(new Date(shape.max));\n }\n return i;\n },\n undefined: () => z.undefined(),\n null: () => z.null(),\n any: () => z.any(),\n unknown: () => z.unknown(),\n never: () => z.never(),\n void: () => z.void(),\n literal: (shape) => z.literal(shape.value),\n symbol: () => z.symbol(),\n tuple: ((shape, opts) => {\n let i = z.tuple(shape.items.map((item, idx) => {\n return (checkRef(item, opts) ||\n d(item, {\n ...opts,\n path: opts.path + \"/items/\" + idx,\n }));\n }));\n if (shape.rest) {\n const rest = checkRef(shape.rest, opts) ||\n d(shape.rest, {\n ...opts,\n path: opts.path + \"/rest\",\n });\n i = i.rest(rest);\n }\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n set: ((shape, opts) => {\n let i = z.set(checkRef(shape.value, opts) ||\n d(shape.value, {\n ...opts,\n path: opts.path + \"/value\",\n }));\n if (shape.minSize !== undefined) {\n i = i.min(shape.minSize);\n }\n if (shape.maxSize !== undefined) {\n i = i.max(shape.maxSize);\n }\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n array: ((shape, opts) => {\n let i = z.array(checkRef(shape.element, opts) ||\n d(shape.element, {\n ...opts,\n path: opts.path + \"/element\",\n }));\n if (shape.minLength !== undefined) {\n i = i.min(shape.minLength);\n }\n if (shape.maxLength !== undefined) {\n i = i.max(shape.maxLength);\n }\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n object: ((shape, opts) => {\n let i = z.object(Object.fromEntries(Object.entries(shape.properties).map(([key, value]) => {\n return [\n key,\n checkRef(value, opts) ||\n d(value, {\n ...opts,\n path: opts.path + \"/properties/\" + key,\n }),\n ];\n })));\n if (shape.catchall) {\n i = i.catchall(d(shape.catchall, opts));\n }\n else if (shape.unknownKeys === \"strict\") {\n i = i.strict();\n }\n else if (shape.unknownKeys === \"passthrough\") {\n i = i.passthrough();\n }\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n record: ((shape, opts) => {\n const i = z.record(checkRef(shape.key, opts) ||\n d(shape.key, {\n ...opts,\n path: opts.path + \"/key\",\n }), checkRef(shape.value, opts) ||\n d(shape.value, {\n ...opts,\n path: opts.path + \"/value\",\n }));\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n map: ((shape, opts) => {\n const i = z.map(checkRef(shape.key, opts) ||\n d(shape.key, {\n ...opts,\n path: opts.path + \"/key\",\n }), checkRef(shape.value, opts) ||\n d(shape.value, {\n ...opts,\n path: opts.path + \"/value\",\n }));\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n nativeEnum: ((shape) => z.nativeEnum(shape.values)),\n enum: ((shape) => z.enum(shape.values)),\n union: ((shape, opts) => {\n const i = z.union(shape.options.map((opt, idx) => checkRef(opt, opts) ||\n d(opt, {\n ...opts,\n path: opts.path + \"/options/\" + idx,\n })));\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n discriminatedUnion: ((shape, opts) => {\n const i = z.discriminatedUnion(shape.discriminator, shape.options.map((opt, idx) => checkRef(opt, opts) ||\n d(opt, {\n ...opts,\n path: opts.path + \"/options/\" + idx,\n })));\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n intersection: ((shape, opts) => {\n const i = z.intersection(checkRef(shape.left, opts) ||\n d(shape.left, {\n ...opts,\n path: opts.path + \"/left\",\n }), checkRef(shape.right, opts) ||\n d(shape.right, {\n ...opts,\n path: opts.path + \"/right\",\n }));\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n function: ((shape, opts) => {\n const i = z.function(checkRef(shape.args, opts) ||\n d(shape.args, {\n ...opts,\n path: opts.path + \"/args\",\n }), checkRef(shape.returns, opts) ||\n d(shape.returns, {\n ...opts,\n path: opts.path + \"/returns\",\n }));\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n promise: ((shape, opts) => {\n const i = z.promise(checkRef(shape.value, opts) ||\n d(shape.value, {\n ...opts,\n path: opts.path + \"/value\",\n }));\n opts.pathToSchema.set(opts.path, i);\n return i;\n }),\n catch: ((shape, opts) => {\n let base = checkRef(shape.innerType, opts) ||\n d(shape.innerType, {\n ...opts,\n path: opts.path + \"/innerType\",\n });\n base = base.catch(shape.value);\n opts.pathToSchema.set(opts.path, base);\n return base;\n }),\n effect: ((shape, opts) => {\n let base = checkRef(shape.inner, opts) ||\n d(shape.inner, {\n ...opts,\n path: opts.path + \"/inner\",\n });\n if (!(\"superRefinements\" in opts ||\n \"transforms\" in opts ||\n \"preprocesses\" in opts)) {\n opts.pathToSchema.set(opts.path, base);\n return base;\n }\n for (const { name, type } of shape.effects) {\n if (type === \"refinement\" && opts.superRefinements?.[name]) {\n base = base.superRefine(opts.superRefinements[name]);\n }\n else if (type === \"transform\" && opts.transforms?.[name]) {\n base = base.transform(opts.transforms[name]);\n }\n else if (type === \"preprocess\" && opts.preprocesses?.[name]) {\n base = z.preprocess(opts.preprocesses[name], base);\n }\n }\n opts.pathToSchema.set(opts.path, base);\n return base;\n }),\n};\n// Must match the exported Dezerialize types\n// export function dezerialize<T extends SzType>(shape: T, opts?: DezerializerOptions): Dezerialize<T> {\nexport function dezerializeRefs(shape, opts) {\n if (\"isOptional\" in shape) {\n const { isOptional, ...rest } = shape;\n const inner = d(rest, opts);\n const result = isOptional ? inner.optional() : inner;\n opts.pathToSchema.set(opts.path, result);\n return result;\n }\n if (\"isNullable\" in shape) {\n const { isNullable, ...rest } = shape;\n const inner = d(rest, opts);\n const result = isNullable ? inner.nullable() : inner;\n opts.pathToSchema.set(opts.path, result);\n return result;\n }\n if (\"defaultValue\" in shape) {\n const { defaultValue, ...rest } = shape;\n const inner = d(rest, opts);\n const result = inner.default(shape.type === \"bigInt\"\n ? BigInt(defaultValue)\n : shape.type === \"date\"\n ? new Date(defaultValue)\n : defaultValue);\n opts.pathToSchema.set(opts.path, result);\n return result;\n }\n if (\"readonly\" in shape) {\n const { readonly, ...rest } = shape;\n const inner = d(rest, opts);\n const result = readonly ? inner.readonly() : inner;\n opts.pathToSchema.set(opts.path, result);\n return result;\n }\n if (\"description\" in shape && typeof shape.description === \"string\") {\n const { description, ...rest } = shape;\n const inner = d(rest, opts);\n const result = inner.describe(description);\n opts.pathToSchema.set(opts.path, result);\n return result;\n }\n return dezerializers[shape.type](shape, opts);\n}\nfunction resolvePointer(obj, pointer) {\n const tokens = pointer.split(\"/\").slice(1);\n return tokens.reduce((acc, token) => {\n /* c8 ignore next -- Guard */\n if (acc === undefined)\n return acc;\n return acc[token.replace(/~1/g, \"/\").replace(/~0/g, \"~\")];\n }, obj);\n}\nexport function dezerialize(shape, opts = {}) {\n if (!(\"path\" in opts)) {\n opts.path = \"#\";\n }\n if (!(\"pathToSchema\" in opts)) {\n opts.pathToSchema = new Map();\n }\n if (!(\"$refs\" in opts)) {\n opts.$refs = [];\n }\n if (!(\"originalShape\" in opts)) {\n opts.originalShape = shape;\n }\n const options = opts;\n const dez = dezerializeRefs(shape, options);\n for (const [lazy, $ref] of options.$refs) {\n lazy._def.getter = () => {\n const schema = options.pathToSchema.get($ref);\n if (schema) {\n return schema;\n }\n const obj = resolvePointer(options.originalShape, $ref);\n // Ensure we act on the same options as the main document JSON\n const dez = dezerialize(obj, options);\n options.pathToSchema.set($ref, dez);\n return dez;\n };\n }\n return dez;\n}\n","/**\n * @typedef {any} ArbitraryObject\n */\n/**\n * @typedef {{[key: string]: string|NestedObject}} NestedObject\n */\n\n/**\n * @param {ArbitraryObject} obj\n * @returns {ArbitraryObject}\n */\nexport function copyObject (obj) {\n const newObj = Array.isArray(obj)\n ? /** @type {Array<ArbitraryObject> & {[key: string]: ArbitraryObject}} */ (\n []\n )\n : /** @type {NestedObject} */ ({});\n for (const [prop, val] of Object.entries(obj)) {\n newObj[prop] = val && typeof val === 'object' ? copyObject(val) : val;\n }\n return newObj;\n}\n","// import {z} from 'zod';\nimport {dezerialize} from 'zodex';\n\nimport structuredCloning from './structuredCloning.js';\n\nimport {resolveJSONPointer} from '../utils/jsonPointer.js';\nimport {copyObject} from '../utils/objects.js';\n\n/* eslint-disable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/147 */\n/**\n * @typedef {T[keyof T]} ValueOf<T>\n * @template T\n */\n/* eslint-enable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/147 */\n\n/**\n * @typedef {ValueOf<\n* Pick<import('zodex').SzType, \"type\">\n* >} AvailableZodexType\n*/\n\n/** @type {Map<AvailableZodexType, import('../types.js').AvailableType>} */\nconst zodexToStructuredCloningTypeMap = new Map([\n ['boolean', 'boolean'],\n ['number', 'number'],\n ['nan', 'nan'],\n ['bigInt', 'bigint'],\n ['string', 'string'],\n ['date', 'date'],\n ['undefined', 'undef'],\n ['void', 'void'],\n ['null', 'null'],\n\n // ['array', 'array'],\n ['array', 'arrayNonindexKeys'],\n\n ['object', 'object'],\n ['enum', 'enum'],\n ['literal', 'literal'],\n\n ['tuple', 'tuple'],\n ['record', 'record'],\n ['map', 'map'],\n ['set', 'set'],\n\n ['never', 'never'],\n\n // Todo: Allow non-cloning version to return these too, but filter out\n // otherwise\n // ['symbol', 'symbol'],\n // ['function', 'function'],\n // ['promise', 'promise'],\n\n ['catch', 'catch'],\n ['nativeEnum', 'nativeEnum']\n]);\n\n/**\n * @typedef {import('zodex').SzType} ZodexSchema\n */\n/**\n * @typedef {import('../utils/objects.js').NestedObject} NestedObject\n */\n\n/**\n * @param {ZodexSchema} leftItem\n * @param {ZodexSchema} rightItem\n * @throws {Error}\n * @returns {ZodexSchema}\n */\nfunction mergeSchema (leftItem, rightItem) {\n /* istanbul ignore if -- Guard */\n if (leftItem.type !== 'object') {\n console.log('leftItem', leftItem);\n throw new Error('Unexpected leftItem of type ' + leftItem.type);\n }\n /* istanbul ignore if -- Guard */\n if (rightItem.type !== 'object') {\n console.log('rightItem', rightItem);\n throw new Error('Unexpected rightItem of type ' + rightItem.type);\n }\n\n const newLeftObj = copyObject(leftItem);\n\n for (const [prop, val] of Object.entries(rightItem)) {\n if (prop !== 'type' && prop !== 'properties') {\n if (prop === 'description') {\n if (val !== 'Modifiers') { // A bit cleaner\n newLeftObj[prop] = newLeftObj[prop]\n ? newLeftObj[prop] + ' and ' + val\n : val;\n }\n } else { // catchall, unknownKeys\n if (prop in newLeftObj) {\n throw new Error(\n 'Duplicate property ' + prop + ' of value ' +\n JSON.stringify(val) + ' and ' +\n JSON.stringify(newLeftObj[prop])\n );\n }\n\n newLeftObj[prop] = val && typeof val === 'object'\n ? copyObject(val)\n /* istanbul ignore next -- Guard */\n : val;\n }\n }\n }\n\n for (const [prop, val] of Object.entries(rightItem.properties)) {\n if (typeof newLeftObj.properties !== 'string' &&\n prop in newLeftObj.properties) {\n throw new Error(\n 'Duplicate property ' + prop + ' of value ' +\n JSON.stringify(val) + ' and ' +\n JSON.stringify(newLeftObj.properties[prop])\n );\n }\n /** @type {NestedObject} */ (\n newLeftObj.properties\n )[prop] = /* istanbul ignore next -- Guard */\n val && typeof val === 'object'\n ? copyObject(val)\n /* istanbul ignore next -- Guard */\n : val;\n }\n\n return newLeftObj;\n}\n\n/**\n * @param {Set<ZodexSchema>} left\n * @param {Set<ZodexSchema>} right\n * @returns {ZodexSchema[]}\n */\nfunction flattenIntersection (left, right) {\n const leftArray = [...left];\n const rightArray = [...right];\n\n const items = [];\n for (const leftItem of leftArray) {\n for (const rightItem of rightArray) {\n items.push(mergeSchema(leftItem, rightItem));\n }\n }\n\n return items;\n}\n\nlet unionGroupID = 0;\n/**\n * @param {ZodexSchema} schemaObject\n * @param {(ZodexSchema & {\n * $unionGroupID?: number, $defaultValue?: any, $readonlyParent?: any\n * })[]} set\n * @returns {void}\n */\nfunction addModifiers (schemaObject, set) {\n if ('defaultValue' in schemaObject) {\n unionGroupID++;\n for (const obj of set) {\n // Todo: Validate that `defaultValue` is possible and allow for\n // selection of the first schema to validate the `defaultValue`;\n // also validate things like impossible max/min combos\n obj.$unionGroupID = unionGroupID;\n obj.$defaultValue = schemaObject.defaultValue;\n }\n }\n\n if (schemaObject.isNullable) {\n set.push({\n type: 'null'\n });\n }\n\n if (schemaObject.isOptional) {\n for (const obj of set) {\n if (!('isOptional' in obj)) {\n obj.isOptional = schemaObject.isOptional;\n }\n }\n }\n if (schemaObject.readonly) {\n for (const obj of set) {\n if (!('readonly' in obj)) {\n obj.$readonlyParent = schemaObject.readonly;\n }\n }\n }\n\n if (schemaObject.description) {\n for (const obj of set) {\n obj.description = obj.description\n ? obj.description + ' and ' + schemaObject.description\n : schemaObject.description;\n }\n }\n}\n\n/**\n * @param {ZodexSchema} schemaObject\n * @param {ZodexSchema} originalJSON\n * @returns {Set<ZodexSchema>}\n */\nexport function getTypesForSchema (schemaObject, originalJSON) {\n switch (schemaObject.type) {\n case 'never':\n return new Set();\n case 'object': {\n const set = new Set();\n // const {properties} = schemaObject;\n // if (\n // 'type' in properties && properties.type.type === 'enum' &&\n // properties.type.values.length === 1\n // ) {\n // set.add(schemaObject);\n // set.add(properties.type.defaultValue);\n // }\n set.add(schemaObject);\n return set;\n }\n case 'discriminatedUnion':\n case 'union': {\n /** @type {(ZodexSchema & {$discriminator?: string})[]} */\n let set = [];\n for (const option of schemaObject.options) {\n set = [...set, ...getTypesForSchema(option, originalJSON)];\n }\n\n if (schemaObject.type === 'discriminatedUnion') {\n for (const obj of set) {\n // Todo: Use to confirm the object has the discriminator\n obj.$discriminator = schemaObject.discriminator;\n }\n }\n\n addModifiers(schemaObject, set);\n return new Set(set);\n } case 'intersection': {\n const left = getTypesForSchema(schemaObject.left, originalJSON);\n const right = getTypesForSchema(schemaObject.right, originalJSON);\n\n const set = flattenIntersection(left, right);\n addModifiers(schemaObject, set);\n return new Set(set);\n } case 'any': case 'unknown':\n return new Set([\n {\n type: 'boolean'\n },\n {\n type: 'number'\n },\n {\n type: 'nan'\n },\n {\n type: 'bigInt'\n },\n {\n type: 'string'\n },\n {\n description: 'Email',\n type: 'string',\n kind: 'email'\n },\n {\n description: 'URL',\n type: 'string',\n kind: 'url'\n },\n {\n description: 'Date',\n type: 'string',\n kind: 'date'\n },\n {\n type: 'date'\n },\n // {\n // type: 'void'\n // },\n {\n type: 'undefined'\n },\n {\n type: 'null'\n },\n {\n type: 'object',\n properties: {},\n unknownKeys: 'passthrough'\n },\n\n // Todo: support these types separately\n // {\n // type: 'symbol'\n // },\n // {\n // type: 'promise',\n // value: {\n // type: 'any'\n // }\n // },\n // {\n // type: 'function',\n // args: {\n // type: 'tuple',\n // items: [],\n // rest: {\n // type: 'any'\n // }\n // },\n // returns: {\n // type: 'any'\n // }\n // },\n {\n type: 'nativeEnum',\n values: {\n type: 'union',\n options: [\n {\n description: 'Numeric',\n type: 'record',\n key: {\n type: 'number'\n },\n value: {\n type: 'string'\n }\n },\n {\n description: 'String',\n type: 'record',\n key: {\n type: 'string'\n },\n value: {\n type: 'union',\n options: [\n {\n type: 'string'\n },\n {\n type: 'number'\n }\n ]\n }\n }\n ]\n }\n },\n {\n type: 'array',\n element: {\n type: 'any'\n }\n },\n {\n type: 'set',\n value: {\n type: 'any'\n }\n },\n {\n type: 'map',\n key: {\n type: 'any'\n },\n value: {\n type: 'any'\n }\n },\n {\n type: 'never'\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'regexp',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'blob',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'BooleanObject',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'NumberObject',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'StringObject',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'SpecialRealNumber',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'domexception',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'error',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'filelist',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'file',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'resurrectable', // noneditable\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'blobHTML',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'buffersource',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'dommatrix',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'dompoint',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'domrect',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n {\n type: 'effect',\n effects: [\n {\n name: 'errors',\n type: 'refinement'\n }\n ],\n inner: {type: 'any'}\n },\n // Todo: Adapt into a widget to drag to point back to another object\n {\n description: 'JSON Reference',\n type: 'object',\n properties: {\n $ref: {\n type: 'string'\n }\n }\n }\n ]);\n default: {\n if ('$ref' in schemaObject) {\n // console.log('originalJSON', originalJSON, schemaObject.$ref);\n const refObj = resolveJSONPointer({\n obj: originalJSON,\n path: /** @type {import('zodex').SzRef} */ (schemaObject).$ref\n });\n return getTypesForSchema(refObj, originalJSON);\n }\n return new Set([schemaObject]);\n }\n }\n}\n\n/** @type {import('../formats.js').Format} */\nconst schema = {\n iterate (records, stateObj) {\n // console.log('records', records, stateObj);\n stateObj.format = 'schema';\n return structuredCloning.iterate(records, stateObj);\n },\n\n convertFromTypeson (\n typesonType, types, v, arrayOrObjectPropertyName, parentSchemaInfo, stateObj\n ) {\n // eslint-disable-next-line prefer-const -- Convenient\n let [parentSchema, parentSchemaIdx] = parentSchemaInfo ?? [];\n /* istanbul ignore if -- Guard */\n if (!stateObj) {\n throw new Error('State object expected for schema');\n }\n let currentSchema = stateObj.schemaContent;\n let mustBeOptional = false;\n // console.log('currentSchema', currentSchema);\n // console.log(\n // 'parentSchema', parentSchemaIdx, parentSchema, '::',\n // arrayOrObjectPropertyName\n // );\n\n // We shouldn't have to reprocess intersections, etc., as this is our own\n // union\n if (typeof parentSchemaIdx === 'number' && parentSchema?.type === 'union') {\n parentSchema = parentSchema.options[parentSchemaIdx];\n }\n\n switch (parentSchema?.type) {\n case 'object':\n currentSchema = /** @type {import('zodex').SzObject} */ (\n parentSchema\n ).properties[\n /** @type {string} */ (arrayOrObjectPropertyName)\n ];\n if (!currentSchema) {\n currentSchema = /** @type {import('zodex').SzObject} */ (\n parentSchema\n ).catchall;\n mustBeOptional = true;\n }\n break;\n case 'array':\n currentSchema = /** @type {import('zodex').SzArray} */ (\n parentSchema\n ).element;\n break;\n case 'set':\n currentSchema = /** @type {import('zodex').SzSet} */ (\n parentSchema\n ).value;\n break;\n case 'effect':\n currentSchema = /** @type {import('zodex').SzEffect} */ (\n parentSchema\n ).inner;\n break;\n // Todo: Reenable\n // // eslint-disable-next-line sonarjs/no-duplicated-branches -- Maintenance\n // case 'promise':\n // currentSchema = /** @type {import('zodex').SzPromise} */ (\n // parentSchema\n // ).value;\n // break;\n case 'tuple':\n currentSchema = /** @type {import('zodex').SzTuple} */ (\n parentSchema\n ).items[Number(arrayOrObjectPropertyName)] ??\n /** @type {import('zodex').SzTuple} */ (\n parentSchema\n ).rest;\n break;\n // Todo:\n // 'record': key, value\n // 'map': key, value\n // 'function': args, returns\n default:\n break;\n }\n\n /* istanbul ignore if -- Guard */\n if (!currentSchema) {\n return {type: typesonType};\n }\n const schemaObjects = [...getTypesForSchema(\n /** @type {import('zodex').SzType} */ (currentSchema),\n /** @type {import('zodex').SzType} */ (stateObj.schemaContent)\n )];\n // console.log(\n // 'vvv', v, currentSchema,\n // arrayOrObjectPropertyName, parentSchema, schemaObjects\n // );\n // console.log('schemaObjects', schemaObjects);\n for (const [schemaIdx, schema] of schemaObjects.entries()) {\n let unknownKeys;\n if (schema.type === 'object') {\n ({unknownKeys} = schema);\n // We don't want to eagerly match, e.g., if there are other objects\n // which include the optional properties; this could cause a problem,\n // however, if the tested object has extra non-standard properties\n schema.unknownKeys = 'strict';\n }\n const dezSchema = dezerialize(schema, {\n originalShape: stateObj.schemaContent\n });\n const parsed = dezSchema.safeParse(v);\n\n if (schema.type === 'object') {\n schema.unknownKeys = unknownKeys;\n }\n // console.log('parsed', parsed.success, v, schema);\n if (parsed.success) {\n let type = zodexToStructuredCloningTypeMap.get(schema.type);\n if (!type && schema.type === 'effect') {\n type = /** @type {import('../types.js').AvailableType} */ (\n schema.effects[0].name\n );\n }\n\n const typeObject =\n /** @type {Required<import('../types.js').TypeObject>} */ (\n types.getTypeObject(\n /** @type {import('../types.js').AvailableType} */ (type)\n )\n );\n\n if (typeObject.valueMatch && typeObject.valueMatch(v)) {\n // console.log(\n // 'matched', v, v?.length, type, schema, schemaIdx, schemaObjects\n // );\n // console.log('ssss', !stateObj.rootUI ||\n // (stateObj.readonly || schemaObjects.length === 1),\n // schema, schemaObjects);\n return {\n type,\n schemaIdx,\n // For `readonly`, we just want to show the current type (no\n // pull-down)\n schema: !stateObj.rootUI ||\n (stateObj.readonly || schemaObjects.length === 1)\n ? schema\n : {\n type: 'union',\n options: schemaObjects\n },\n mustBeOptional\n };\n }\n }\n }\n return {type: typesonType};\n },\n\n /* istanbul ignore next -- Not in use */\n types () {\n /* istanbul ignore next -- Not in use */\n return structuredCloning.types();\n },\n\n getTypesAndSchemasForState (types, state, schemaObject, schemaOriginal) {\n if (!schemaObject) {\n throw new Error('Missing schema object');\n }\n\n // We don't care about the current schema, as these are inner types\n if (state === 'array') {\n return structuredCloning.getTypesAndSchemasForState(\n types, state, schemaObject, schemaOriginal\n );\n }\n\n // alert(JSON.stringify(schemaObject));\n const schemaObjects = [...getTypesForSchema(\n schemaObject,\n /** @type {import('zodex').SzType} */ (schemaOriginal) ?? schemaObject\n )];\n\n // Note: Zod does not support array/object references\n\n // Todo: implement schema restrictions like tuple on array, record on object\n // Todo: Fix `iterate` for schemas (e.g., inject a value method in demo)\n\n /** @type {AvailableZodexType[]} */\n const typeArray = schemaObjects.map(({type}) => {\n return type;\n });\n\n return {\n schemaObjects,\n types: typeArray.map((item, idx) => {\n if (item === 'effect') {\n return /** @type {import('../types.js').AvailableType} */ (\n /** @type {import('zodex').SzEffect} */ (\n schemaObjects[idx]\n ).effects[0].name\n );\n }\n return /** @type {import('../types.js').AvailableType} */ (\n zodexToStructuredCloningTypeMap.get(item)\n );\n })\n };\n }\n};\n\nexport default schema;\n","import indexedDBKey from './formats/indexedDBKey.js';\nimport json from './formats/json.js';\nimport structuredCloning from './formats/structuredCloning.js';\nimport schema from './formats/schema.js';\n\n/**\n * An arbitrary Structured Clone, JSON, etc. value.\n * @typedef {any} StructuredCloneValue\n */\n\n/**\n * @callback GetTypesAndSchemasForFormatAndState\n * @param {import('./types.js').default} types\n * @param {AvailableFormat} format\n * @param {string} [state]\n * @param {import('./formatAndTypeChoices.js').ZodexSchema|\n * undefined} [schemaObject]\n * @param {import('./formatAndTypeChoices.js').ZodexSchema|\n * undefined} [schemaOriginal]\n * @returns {TypesAndSchemaObjects|undefined}\n */\n\n/* schema:\nexport const getTypeForFormatStateAndValue = ({format, state, value}) => {\n const valType = new Typeson().register(\n structuredCloningThrowing\n ).rootTypeName(value);\n return canonicalToAvailableType(format, state, valType, value);\n};\n*/\n\n/**\n * @typedef {\"indexedDBKey\"|\"json\"|\"structuredCloning\"|\"schema\"} AvailableFormat\n */\n\n/**\n * @typedef {{\n * types: (import('./types.js').AvailableType)[],\n * schemaObjects: import('./formats/schema.js').ZodexSchema[]\n * }} TypesAndSchemaObjects\n */\n\n/**\n * Responsible for traversing over data (along with state information) to build\n * and return a relevant UI element.\n * @callback FormatIterator\n * @param {StructuredCloneValue} records\n * @param {import('./types.js').StateObject} stateObj\n * @returns {Promise<Required<import('./types.js').StateObject>>}\n */\n\n/**\n * @typedef {object} Format\n * @property {() => (import('./types.js').AvailableType)[]} types Returns list\n * of types generally available to structured cloning. See\n * {@link getTypesAndSchemasForState} for context-dependent method.\n * @property {FormatIterator} iterate Traverses over data to build and return\n * a relevant UI element.\n * @property {(\n * types: import('./types.js').default,\n * state?: string,\n * schemaObject?: import('./formatAndTypeChoices.js').ZodexSchema|\n * undefined,\n * schemaOriginal?: import('./formatAndTypeChoices.js').ZodexSchema|\n * undefined\n * ) => TypesAndSchemaObjects|undefined} getTypesAndSchemasForState Gets the\n * specific types (and schemas) relevant to a given state.\n * @property {(\n * newType: string, value: Date|Array<StructuredCloneValue>\n * ) => boolean|undefined} [testInvalid]\n * @property {(\n * typesonType: import('./types.js').AvailableType,\n * types: import('./types.js').default,\n * v?: import('./formats.js').StructuredCloneValue,\n * arrayOrObjectPropertyName?: string,\n * parentSchema?: [import('zodex').SzType, number|undefined]|undefined,\n * stateObj?: import('./types.js').StateObject,\n * ) => {\n * type: import('./types.js').AvailableType|undefined\n * schema?: import('zodex').SzType|undefined,\n * mustBeOptional?: boolean,\n * schemaIdx?: number\n * }} [convertFromTypeson]\n */\n\n/**\n * Class for processing multiple formats.\n */\nclass Formats {\n /**\n *\n */\n constructor () {\n // Can enable later (and add tests)\n // if (formats) {\n // this.availableFormats = {};\n // formats.forEach((format) => {\n // let formatValue;\n // switch (format) {\n // case 'indexedDBKey':\n // formatValue = indexedDBKey;\n // break;\n // case 'json':\n // formatValue = json;\n // break;\n // case 'structuredCloning':\n // formatValue = structuredCloning;\n // break;\n // default:\n // throw new Error('Unknown format');\n // }\n // this.availableFormats[format] = formatValue;\n // });\n // return;\n // }\n // Using methods ensure we have fresh copies\n this.availableFormats = /** @type {{[key: string]: Format}} */ ({\n indexedDBKey,\n json,\n schema,\n structuredCloning\n });\n }\n\n /**\n * @param {import('./types.js').default} types\n * @param {AvailableFormat} format\n * @param {StructuredCloneValue} record\n * @param {import('./types.js').StateObject} stateObj\n * @returns {Promise<Required<import('./types.js').StateObject>>}\n */\n async getControlsForFormatAndValue (types, format, record, stateObj) {\n return await this.availableFormats[format].\n iterate(record, {\n ...stateObj,\n types,\n formats: this,\n // This had been before `stateObj` but should apparently have precedence\n // or just avoid passing `format` to this function\n format\n });\n }\n\n /**\n * @type {GetTypesAndSchemasForFormatAndState}\n */\n getTypesAndSchemasForFormatAndState (\n types, format, state, schemaObject, schemaOriginal\n ) {\n return this.availableFormats[format].getTypesAndSchemasForState(\n types, state, schemaObject, schemaOriginal\n );\n }\n\n /**\n * @param {AvailableFormat} format\n * @returns {Format}\n */\n getAvailableFormat (format) {\n return this.availableFormats[format];\n }\n}\n\nexport default Formats;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst nullType = {\n option: ['Null'],\n stringRegex: /^null$/u,\n valueMatch (x) {\n return x === null;\n },\n toValue: () => ({value: null}),\n getValue: () => null,\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n viewUI ({specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'null'},\n title: specificSchemaObject?.description ?? '(a `null`)'\n }, ['null']];\n },\n editUI ({typeNamespace, specificSchemaObject}) {\n return ['div', {\n dataset: {type: 'null'},\n title: specificSchemaObject?.description ?? 'Null'\n }, [\n ['label', [\n 'Null',\n ['input', {\n type: 'checkbox',\n name: `${typeNamespace}-null`,\n checked: true,\n disabled: true\n }]\n ]]\n ]];\n }\n};\n\nexport default nullType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject & {ct: number}}\n */\nconst trueType = {\n option: ['Boolean (true)', {value: 'true'}],\n stringRegex: /^true$/u,\n toValue: (/* _s */) => ({value: true}),\n valueMatch: (v) => v === true,\n superType: 'boolean',\n getValue: () => true,\n viewUI () {\n return ['i', {dataset: {type: 'true'}}, ['true']];\n },\n ct: 0,\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n editUI ({typeNamespace}) {\n this.ct++;\n return ['div', {dataset: {type: 'true'}}, [\n ['label', [\n 'True',\n ['input', {\n type: 'radio', name: `${typeNamespace}-true${this.ct}`,\n value: 'true', checked: true\n }]\n ]],\n ['label', [\n 'False',\n ['input', {\n type: 'radio', name: `${typeNamespace}-true${this.ct}`,\n value: 'false', disabled: true\n }]\n ]]\n ]];\n }\n};\n\nexport default trueType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject & {ct: number}}\n */\nconst falseType = {\n option: ['Boolean (false)', {value: 'false'}],\n stringRegex: /^false$/u,\n toValue: () => ({value: false}),\n valueMatch: (v) => v === false,\n superType: 'boolean',\n getValue: () => false,\n viewUI () {\n return ['i', {dataset: {type: 'false'}}, ['false']];\n },\n ct: 0,\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input[value=false]'));\n },\n editUI ({typeNamespace}) {\n this.ct++;\n return ['div', {dataset: {type: 'false'}}, [\n ['label', [\n 'True',\n ['input', {\n type: 'radio', name: `${typeNamespace}-false${this.ct}`,\n value: 'true', disabled: true\n }]\n ]],\n ['label', [\n 'False',\n ['input', {\n type: 'radio', name: `${typeNamespace}-false${this.ct}`,\n value: 'false', checked: true\n }]\n ]]\n ]];\n }\n};\n\nexport default falseType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst nanType = {\n option: ['NaN'],\n stringRegex: /^NaN$/u,\n valueMatch (x) {\n return Number.isNaN(x);\n },\n toValue: () => ({value: Number.NaN}),\n getValue: () => Number.NaN,\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n viewUI ({specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'nan'},\n title: specificSchemaObject?.description ?? '(a `NaN`)'\n }, ['NaN']];\n },\n editUI ({typeNamespace, specificSchemaObject}) {\n return ['div', {\n dataset: {type: 'nan'},\n title: specificSchemaObject?.description ?? 'NaN'\n }, [\n ['label', [\n 'NaN',\n ['input', {\n type: 'checkbox',\n name: `${typeNamespace}-nan`,\n checked: true\n }]\n ]]\n ]];\n }\n};\n\nexport default nanType;\n","/**\n * @param {unknown} obj\n */\nexport const isNullish = (obj) => {\n return obj === null || typeof obj === 'undefined';\n};\n","/* globals sceditor -- No ESM version yet */\nimport {jml} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\n\nimport dialogs from '../utils/dialogs.js';\nimport {isNullish} from '../utils/types.js';\n\n/**\n * @typedef {HTMLTextAreaElement & {\n * sceditorInstance: {val: (val?: string) => string|void}\n * }} SCEditorTextarea\n */\n\n/**\n * @type {import('../types.js').TypeObject & {\n * loadBlob: (blob: Blob) => Promise<string>\n * }}\n */\nconst blobHTMLType = {\n // Todo (low): Support other content-types\n option: ['Blob (text/html)'],\n stringRegex: /^data:text\\/html(?:;base64)?,.*$/u,\n valueMatch: (v) => v && v.type === 'text/html',\n superType: 'blob',\n toValue (s) {\n // Todo (low): `Blob` untested; use https://stackoverflow.com/a/30407840/271577 ?\n /**\n *\n * @param {string} dataURI\n * @returns {Blob}\n */\n function dataURIToBlob (dataURI) {\n // Adapted from https://stackoverflow.com/a/12300351/271577\n const [mimeInfo, bytes] = dataURI.split(',');\n const [mimeString, encoding] = mimeInfo.split(':')[1].split(';');\n let ab;\n if (encoding === 'base64') {\n const byteString = atob(bytes);\n ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n // eslint-disable-next-line unicorn/prefer-code-point -- Only a byte\n ia[i] = byteString.charCodeAt(i);\n }\n } else {\n ab = bytes;\n }\n return new Blob([ab], {type: mimeString});\n }\n return {\n value: dataURIToBlob(s)\n };\n },\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLTextAreaElement} */ (\n $e(root, 'textarea[name$=-blobHTML]')\n );\n },\n getValue ({root}) {\n return /** @type {import('../types.js').ToValue} */ (this.toValue)(\n 'data:text/html,' + /** @type {SCEditorTextarea} */ (\n this.getInput({root})\n ).sceditorInstance.val()\n // this.getInput({root}).value\n ).value;\n },\n async loadBlob (blob) {\n return await blob.text();\n },\n async setValue ({root, value}) {\n const result = await this.loadBlob(value);\n /** @type {SCEditorTextarea} */ (\n this.getInput({root})\n ).sceditorInstance.val(/** @type {string} */ (result));\n // this.getInput({root}).value = result;\n },\n viewUI ({value, specificSchemaObject}) {\n /** @type {string} */\n let val;\n const div = jml('div', {\n dataset: {type: 'blobHTML'},\n title: specificSchemaObject?.description ? 'HTML' : undefined\n }, [\n specificSchemaObject?.description ?? 'HTML',\n ': ',\n ['button', {$on: {\n click () {\n dialogs.alert({message: ['div', [\n 'Source: ',\n ['textarea', {class: 'view-source'}, [val]]\n ]]});\n }\n }}, ['View source']]\n ]);\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line promise/prefer-await-to-then -- Not an async method\n this.loadBlob(value).then((\n result\n ) => {\n val = /** @type {string} */ (result);\n jml('iframe', {\n sandbox: '',\n srcdoc: val\n }, div);\n return undefined;\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line promise/prefer-await-to-then -- Not an async method\n }).catch(\n /* istanbul ignore next -- How to simulate? */\n // eslint-disable-next-line promise/prefer-await-to-callbacks -- Not async\n (err) => {\n // Todo: Show an error message?\n console.error('Err', err);\n }\n );\n return [div];\n // return ['i', [`data:text/html,${value}`]];\n },\n editUI ({typeNamespace, specificSchemaObject, value}) {\n const textarea =\n /**\n * @type {SCEditorTextarea}\n */ (\n jml('textarea', {name: `${typeNamespace}-blobHTML`})\n );\n textarea.sceditorInstance = {\n /* istanbul ignore next */\n val () {\n throw new Error('Not yet instantiated');\n }\n };\n\n const root = jml(\n 'div',\n {\n dataset: {type: 'blobHTML'},\n title: specificSchemaObject?.description ?? 'Blob (HTML)'\n },\n [\n textarea\n ]\n );\n setTimeout(() => {\n // Push onto these: https://www.sceditor.com/documentation/formats/xhtml/\n // sceditor.formats.xhtml.converters array\n // sceditor.formats.xhtml.allowedAttribs object\n // sceditor.formats.xhtml.disallowedAttribs object\n // sceditor.formats.xhtml.allowedTags array\n // sceditor.formats.xhtml.disallowedTags array\n // console.log(\n // 'sceditor.formats.xhtml.converters',\n // sceditor.formats.xhtml.converters.map((c) => Object.keys(c.tags))\n // );\n // console.log(\n // 'sceditor.formats.xhtml.converters',\n // sceditor.formats.xhtml.converters.map((c) => c.conv.toString())\n // );\n sceditor.create(textarea, {\n // Todo (low): \"dragdrop\" plugin is for file handling (could\n // treat as Blobs but would need to reference them)\n // \"autoyoutube\" plugin may be ok\n // toolbarExclude (default of `null` doesn't exclude any)\n // Must also add languages files (after editor files but\n // before editor creation)\n // locale: 'en',\n // emoticons: {}, icons, //\n // width, height, resizeMinWidth, resizeMinHeight, autoExpand: true,\n // autofocus, autofocusEnd\n // id, spellcheck, toolbarContainer, dropDownCss, fonts, colors\n // disableBlockRemove, parserOptions\n width: '1000px',\n height: '225px',\n // auto-updates original textbox when the editor loses focus\n autoUpdate: true,\n resizeMaxHeight: -1,\n resizeMaxWidth: -1,\n plugins: 'xhtml,plaintext,undo',\n emoticonsRoot: 'node_modules/sceditor/',\n style: 'node_modules/sceditor/minified/themes/content/default.min.css'\n });\n textarea.sceditorInstance = sceditor.instance(textarea);\n if (!isNullish(value)) {\n /** @type {Required<import('../types.js').TypeObject>} */ (\n this\n ).setValue({root, value});\n }\n });\n return [root];\n }\n};\n\nexport default blobHTMLType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject & {ct: number}}\n */\nconst booleanType = {\n option: ['Boolean', {value: 'boolean'}],\n stringRegex: /^(?:true|false)$/u,\n valueMatch (x) {\n return typeof x === 'boolean';\n },\n toValue: (s) => ({value: s === 'true'}),\n getValue ({root}) {\n return /** @type {HTMLInputElement} */ (this.getInput({root})).checked;\n },\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input[value=true]'));\n },\n setValue ({root, value}) {\n const input = value\n ? /** @type {HTMLInputElement} */ ($e(root, 'input[value=true]'))\n : /** @type {HTMLInputElement} */ ($e(root, 'input[value=false]'));\n input.checked = true;\n },\n viewUI ({value, specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'boolean'},\n title: specificSchemaObject?.description ?? '(a boolean)'\n }, [value ? 'true' : 'false']];\n },\n ct: 0,\n editUI ({typeNamespace, specificSchemaObject, value}) {\n this.ct++;\n const isLiteral = specificSchemaObject?.type === 'literal';\n const val = isLiteral\n ? specificSchemaObject?.value\n : (value ?? specificSchemaObject?.defaultValue);\n return ['div', {\n dataset: {type: 'boolean'},\n title: specificSchemaObject?.description ?? 'Boolean'\n }, [\n ['label', [\n 'True',\n ['input', {\n disabled: isLiteral,\n type: 'radio', name: `${typeNamespace}-boolean${this.ct}`,\n value: 'true', checked: typeof val === 'boolean' ? val : true\n }]\n ]],\n ['label', [\n 'False',\n ['input', {\n disabled: isLiteral,\n type: 'radio', name: `${typeNamespace}-boolean${this.ct}`,\n value: 'false', checked: typeof val === 'boolean' ? !val : false\n }]\n ]]\n ]];\n }\n};\n\nexport default booleanType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst numberType = {\n option: ['Number'],\n stringRegex: new RegExp(\n '^' + // No leading content.\n '[-+]?' + // Optional sign.\n // Optionally 0-30 decimal digits of mantissa.\n String.raw`(?:[0-9]{0,30}\\.)?` +\n // 1-30 decimal digits of integer or fraction.\n '[0-9]{1,30}' +\n // Optional exponent 0-29 for scientific notation.\n '(?:[Ee][-+]?[1-2]?[0-9])?' +\n '$', // No trailing content.\n 'u'\n ),\n valueMatch (x) {\n return typeof x === 'number' &&\n // Avoid special numbers:\n !Number.isNaN(x) &&\n x !== Number.POSITIVE_INFINITY && x !== Number.NEGATIVE_INFINITY &&\n !Object.is(x, -0);\n },\n toValue (s) {\n return {value: Number(s)};\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n setValue ({root, value}) {\n this.getInput({root}).value = String(value);\n },\n validate ({root}) {\n const val = this.getInput({root}).value;\n return {\n message: 'Not a valid (finite) number',\n valid: Boolean(val && (/^-?(\\d+|\\d*\\.\\d+)$/u).test(val))\n };\n },\n getValue ({root}) {\n return Number.parseFloat(this.getInput({root}).value);\n },\n /* schema\n viewSchemaUI () {\n // Todo?\n },\n */\n viewUI ({value, specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'number'},\n title: specificSchemaObject?.description ?? '(a number)'\n }, [\n String(value)\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value}) {\n const isLiteral = specificSchemaObject?.type === 'literal';\n const numberSchemaObject = /** @type {import('zodex').SzNumber} */ (\n specificSchemaObject\n );\n // Seems to need a multiplier of around these sizes to have a noticeable\n // effect on the inputs; shouldn't need any though\n const epsilon = 150 * Number.EPSILON;\n const maxEpsilon = 300 * Number.EPSILON;\n\n return ['div', {\n dataset: {type: 'number'},\n title: specificSchemaObject?.description ?? 'Number'\n }, [\n ['input', {\n disabled: isLiteral,\n name: `${typeNamespace}-number`,\n type: 'number',\n min: numberSchemaObject?.min\n ? numberSchemaObject?.minInclusive\n ? numberSchemaObject?.min\n : numberSchemaObject?.min +\n (numberSchemaObject?.int ? 1 : epsilon)\n : undefined,\n max: numberSchemaObject?.max\n ? numberSchemaObject?.maxInclusive\n ? numberSchemaObject?.max\n : numberSchemaObject?.max -\n (numberSchemaObject?.int ? 1 : maxEpsilon)\n : undefined,\n step: numberSchemaObject?.multipleOf ??\n (numberSchemaObject?.int ? '1' : 'any'),\n value: isLiteral\n ? specificSchemaObject?.value\n : (value ?? specificSchemaObject?.defaultValue ?? '')\n }]\n ]];\n }\n};\n\nexport default numberType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst bigintType = {\n option: ['BigInt'],\n stringRegex: new RegExp(\n '^' + // No leading content.\n '-?' + // Optional negative sign.\n // How many digits?\n '[0-9]{1,}' +\n 'n' +\n '$', // No trailing content.\n 'u'\n ),\n valueMatch (x) {\n return typeof x === 'bigint';\n },\n toValue (s) {\n return {value: BigInt(s.slice(0, -1))};\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n setValue ({root, value}) {\n this.getInput({root}).value = String(value);\n },\n validate ({root}) {\n const val = this.getInput({root}).value;\n return {\n message: 'Not a valid BigInt',\n valid: Boolean(val && (/^-?(\\d+)$/u).test(val))\n };\n },\n getValue ({root}) {\n return BigInt(this.getInput({root}).value);\n },\n /* schema:\n viewSchemaUI () {\n // Todo?\n },\n */\n viewUI ({value, specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'bigint'},\n title: specificSchemaObject?.description ?? '(a BigInt)'\n }, [\n `${String(value)}n`\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value}) {\n const bigintSchemaObject = /** @type {import('zodex').SzBigInt} */ (\n specificSchemaObject\n );\n return ['div', {\n dataset: {type: 'bigint'},\n title: specificSchemaObject?.description ?? 'BigInt'\n }, [\n ['input', {\n name: `${typeNamespace}-bigint`, type: 'number',\n value: value ?? specificSchemaObject?.defaultValue ?? '',\n min: bigintSchemaObject?.min\n ? bigintSchemaObject?.minInclusive\n ? bigintSchemaObject?.min\n : String(BigInt(bigintSchemaObject?.min) + 1n)\n : undefined,\n max: bigintSchemaObject?.max\n ? bigintSchemaObject?.maxInclusive\n ? bigintSchemaObject?.max\n : String(BigInt(bigintSchemaObject?.max) - 1n)\n : undefined,\n step: bigintSchemaObject?.multipleOf ?? '1'\n }]\n ]];\n }\n};\n\nexport default bigintType;\n","import {hasConstructorOf} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst bigintObjectType = {\n option: ['BigInt Object'],\n stringRegex: new RegExp(\n '^BigIntObject' +\n '-?' + // Optional negative sign.\n // How many digits?\n '[0-9]{1,}' +\n 'n' +\n '$', // No trailing content.\n 'u'\n ),\n valueMatch (x) {\n return typeof x === 'object' && hasConstructorOf(x, BigInt);\n },\n toValue (s) {\n return {value: new Object(BigInt(s.slice(12, -1)))};\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n setValue ({root, value}) {\n this.getInput({root}).value = String(value);\n },\n validate ({root}) {\n const val = this.getInput({root}).value;\n return {\n message: 'Not a valid BigInt',\n valid: Boolean(val && (/^-?(\\d+)$/u).test(val))\n };\n },\n getValue ({root}) {\n return new Object(BigInt(this.getInput({root}).value));\n },\n /* schema:\n viewSchemaUI () {\n // Todo?\n },\n */\n viewUI ({value, specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'bigintObject'},\n title: specificSchemaObject?.description ?? '(a BigInt Object)'\n }, [`${String(value)}n`]];\n },\n editUI ({typeNamespace, specificSchemaObject, value = ''}) {\n return ['div', {\n dataset: {type: 'bigintObject'},\n title: specificSchemaObject?.description ?? 'BigInt object'\n }, [\n ['input', {\n name: `${typeNamespace}-bigintObject`, type: 'number', step: '1',\n value\n }]\n ]];\n }\n};\n\nexport default bigintObjectType;\n","import {datetimeRegex} from 'zod';\nimport {$e} from '../utils/templateUtils.js';\n\n// Adapted from Zod: https://github.com/colinhacks/zod/blob/9257ab78eec366c04331a3c2d59deb344a02d9f6/src/types.ts\nconst ipv4Regex =\n /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u;\nconst ipv6Regex =\n /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/u;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex =\n /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/u;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst emojiRegexStr = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nconst emojiRegex = new RegExp(emojiRegexStr, 'u');\nconst cuidRegex = /^c[^\\s-]{8,}$/iu;\nconst cuid2Regex = /^[0-9a-z]+$/u;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/iu;\nconst uuidRegex =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/iu;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/iu;\nconst durationRegex =\n /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/u;\n// End adapted from Zod\n\n/**\n * @param {{precision?: number|null}} args\n * @returns {string}\n */\nfunction timeRegexSource (args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n } else if (args.precision === null || args.precision === undefined) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\n\n/**\n * @param {{\n * offset?: boolean;\n * local?: boolean;\n * precision?: number|null;\n * }} args\n * @returns {RegExp}\n */\nfunction timeRegex (args) {\n return new RegExp(`^${timeRegexSource(args)}$`, 'u');\n}\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst stringType = {\n option: ['String'],\n stringRegex: /^\"(?:[^\\\\\"]|\\\\\\\\|\\\\\")*\"$/u,\n valueMatch (x) {\n return typeof x === 'string';\n },\n toValue (s) {\n return {value: s.slice(1, -1)};\n },\n getInput ({root}) {\n return /** @type {HTMLTextAreaElement} */ (\n $e(root, '[data-type=\"string\"] > textarea,input')\n );\n },\n setValue ({root, value}) {\n this.getInput({root}).value = value;\n },\n getValue ({root}) {\n return this.getInput({root}).value;\n },\n viewUI ({value, specificSchemaObject}) {\n const kind = /** @type {import('zodex').SzString} */ (\n specificSchemaObject\n // @ts-expect-error Does exist\n )?.kind;\n return ['span', {\n dataset: {type: 'string'},\n title: specificSchemaObject?.description ??\n (kind === 'email'\n ? `(an ${kind} string)`\n : kind\n ? `(a ${kind} string)` // url, date\n : '(a string)')\n }, [value]];\n },\n editUI ({typeNamespace, specificSchemaObject, value}) {\n const stringSchemaObject = /** @type {import('zodex').SzString} */ (\n specificSchemaObject\n );\n // @ts-expect-error Does exist\n const kind = stringSchemaObject?.kind;\n const isLiteral = specificSchemaObject?.type === 'literal';\n const minlength = stringSchemaObject?.min ?? stringSchemaObject?.length;\n const maxlength = stringSchemaObject?.max ?? stringSchemaObject?.length;\n\n const startsWith = stringSchemaObject?.startsWith;\n const endsWith = stringSchemaObject?.endsWith;\n\n const toLowerCase = stringSchemaObject?.toLowerCase;\n const toUpperCase = stringSchemaObject?.toUpperCase;\n const trim = stringSchemaObject?.trim;\n\n // @ts-expect-error It is indeed potentially present\n const includes = stringSchemaObject?.includes;\n // @ts-expect-error It is indeed potentially present\n const position = stringSchemaObject?.position;\n\n // @ts-expect-error It is indeed potentially present\n const regex = stringSchemaObject?.regex;\n // @ts-expect-error It is indeed potentially present\n const flags = stringSchemaObject?.flags;\n\n /**\n * @param {string} value\n */\n const checkValue = (value) => {\n if (startsWith && !value.startsWith(startsWith)) {\n return `Value doesn't start with expected: ${startsWith}`;\n }\n if (endsWith && !value.endsWith(endsWith)) {\n return `Value doesn't end with expected: ${endsWith}`;\n }\n if (includes && !value.includes(includes, position ?? 0)) {\n return `Value doesn't include the expected: ${includes}${\n position ? ` after position: ${position}` : ''\n }`;\n }\n if (regex && !(new RegExp(regex, flags ?? '')).test(value)) {\n return `Value doesn't match regular expression: ${regex}${\n flags ? ` with flags: ${flags}` : ''\n }`;\n }\n if (kind) {\n switch (kind) {\n case 'ip':\n // @ts-expect-error Is present\n switch (stringSchemaObject?.version) {\n case 'v4':\n if (!ipv4Regex.test(value)) {\n return `Value doesn't match IP v4 pattern.`;\n }\n break;\n default:\n if (!ipv6Regex.test(value)) {\n return `Value doesn't match IP v6 pattern.`;\n }\n }\n break;\n case 'time':\n // @ts-expect-error It is present\n if (!timeRegex(stringSchemaObject).test(value)) {\n return `Value does not match time/precision.`;\n }\n break;\n case 'datetime':\n // @ts-expect-error It is present\n if (!datetimeRegex(stringSchemaObject).test(value)) {\n return `Value does not match datetime/precision/offset/local`;\n }\n break;\n case 'emoji':\n if (!emojiRegex.test(value)) {\n return `Value does not match emoji pattern`;\n }\n break;\n case 'uuid':\n if (!uuidRegex.test(value)) {\n return `Value does not match uuid pattern`;\n }\n break;\n case 'nanoid':\n if (!nanoidRegex.test(value)) {\n return `Value does not match nanoid pattern`;\n }\n break;\n case 'cuid':\n if (!cuidRegex.test(value)) {\n return `Value does not match cuid pattern`;\n }\n break;\n case 'cuid2':\n if (!cuid2Regex.test(value)) {\n return `Value does not match cuid2 pattern`;\n }\n break;\n case 'ulid':\n if (!ulidRegex.test(value)) {\n return `Value does not match ulid pattern`;\n }\n break;\n case 'duration':\n if (!durationRegex.test(value)) {\n return `Value does not match duration pattern`;\n }\n break;\n case 'base64':\n if (!base64Regex.test(value)) {\n return `Value does not match base64 pattern`;\n }\n break;\n default:\n // 'email'|'url'|'date' should already be handled by the input element\n break;\n }\n }\n return null;\n };\n\n /**\n * @param {string} value\n */\n const transform = (value) => {\n if (toLowerCase) {\n value = value.toLowerCase();\n }\n if (toUpperCase) {\n value = value.toUpperCase();\n }\n if (trim) {\n value = value.trim();\n }\n return value;\n };\n\n return ['div', {\n dataset: {type: 'string'},\n title: specificSchemaObject?.description ?? 'String'\n }, [\n [\n // There is a `time` and `datetime-local` but they don't\n // support milliseconds\n 'email', 'url', 'date'\n ].includes(kind)\n ? ['input', {\n $on: {\n change () {\n const that = /** @type {HTMLInputElement} */ (this);\n that.value = transform(that.value);\n const message = checkValue(that.value);\n that.setCustomValidity(message ?? '');\n that.reportValidity();\n }\n },\n name: `${typeNamespace}-string`,\n type: kind,\n value: value ?? specificSchemaObject?.defaultValue ?? '',\n\n // Form doesn't support for date\n minlength: kind === 'date' ? undefined : minlength,\n maxlength: kind === 'date' ? undefined : maxlength\n }]\n : ['textarea', {\n $on: {\n change () {\n const that = /** @type {HTMLTextAreaElement} */ (this);\n that.value = transform(that.value);\n const message = checkValue(that.value);\n that.setCustomValidity(message ?? '');\n that.reportValidity();\n }\n },\n name: `${typeNamespace}-string`,\n disabled: isLiteral,\n minlength, maxlength\n }, [\n isLiteral\n ? specificSchemaObject?.value\n : (value ?? specificSchemaObject?.defaultValue ?? '')\n ]]\n ]];\n }\n};\n\nexport default stringType;\n","import Types, {getPropertyValueFromLegend} from '../types.js';\nimport {$e, $$e, DOM} from '../utils/templateUtils.js';\nimport {\n getJSONPointerParts\n} from '../utils/jsonPointer.js';\n\n/**\n * @type {import('../types.js').TypeObject & {type: \"array\"}}\n */\nconst arrayReferenceType = {\n option: ['Array reference'],\n type: 'array',\n stringRegex: /^arrayRef\\((?:|\\/[^)]*)\\)$/u,\n toValue (s, info) {\n const {\n rootHolder, parent, parentPath\n } = /** @type {import('../types.js').RootInfo} */ (info);\n const path = s.slice(`${this.type}Ref(`.length, -1);\n rootHolder.push([this.type, parent, parentPath, path]);\n return {assign: false};\n },\n resolveReference (path, value) {\n let parent = value;\n if (path !== '') {\n getJSONPointerParts(path).forEach((pathPart) => {\n parent = parent[pathPart];\n if (!parent) {\n throw new Error('Bad path');\n }\n });\n }\n return parent;\n },\n stateDependent: {\n structuredCloning: {\n // after: 'sparseArrays',\n after: 'arrayNonindexKeys',\n contexts: ['arrayNonindexKeys', 'object', 'set']\n // contexts: ['sparseArrays', 'object']\n }\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n setValue ({root, value}) {\n this.getInput({root}).value = value;\n },\n getValue ({root, stateObj, currentPath}) {\n const referentPath = this.getInput({root}).value;\n // eslint-disable-next-line @stylistic/max-len -- Long\n /* istanbul ignore else -- ArrayRef will not be a root, so should have stateObj */\n if (stateObj) {\n if (!stateObj.paths) {\n stateObj.paths = {};\n }\n stateObj.paths[/** @type {string} */ (currentPath)] = {\n referentPath,\n // Todo (low): Should be utilized along with\n // other validation checking\n expectArrayReferent: this.type === 'array'\n };\n stateObj.handlingReference = true;\n }\n console.log(referentPath);\n },\n validate ({root, topRoot}) {\n const {type} = this;\n const input = this.getInput({root});\n const path = input.value;\n\n /**\n * @param {string|undefined} message\n * @returns {{valid: false, message: string|undefined}}\n */\n const invalidMessage = (message) => {\n return {valid: false, message};\n };\n\n if (input.validity.patternMismatch) {\n return invalidMessage(\n 'You must use a path beginning with \"/\" (or the empty string)'\n );\n }\n if ((/~([^01]|$)/u).test(path)) {\n return invalidMessage(\n 'You must use a valid JSON Pointer (with ' +\n 'tildes followed by 0 or 1)'\n );\n }\n\n let referent = topRoot ||\n /* istanbul ignore next -- Should always exist? */\n root;\n const isObjectOrArray = () => {\n return [\n 'array', 'object',\n 'arrayNonindexKeys'\n // 'sparseArrays'\n ].includes(\n Types.getTypeForRoot(referent)\n );\n };\n let message;\n if (path !== '') { // If empty string, referent will be topRoot\n if (getJSONPointerParts(path).some((pathPart, i) => {\n // Todo (low): We should also support `arrayReference` and\n // `objectReference`, but will need to resolve and bear\n // in mind that references may need to be added out of\n // order)\n const legends = DOM.filterChildElements(\n // Ensure we are only getting one array level at a time\n /** @type {HTMLElement} */ ($e(referent, '.arrayItems')),\n ['fieldset', 'legend']\n );\n const childPropertyValues = legends.map(\n (legend) => getPropertyValueFromLegend(\n /** @type {HTMLLegendElement} */ (legend)\n )\n );\n const partMatchIndex = childPropertyValues.indexOf(pathPart);\n if (partMatchIndex === -1) {\n message = \"Specified path doesn't exist\";\n return true;\n }\n referent = /** @type {HTMLDivElement} */ ($e(\n /** @type {HTMLElement} */ (legends[partMatchIndex].parentElement),\n 'div[data-type]'\n ));\n if (referent === root) {\n message = \"Can't reference self\";\n return true;\n }\n // Condition that path isn't an object/array\n if (!isObjectOrArray()) {\n message = `Referent portion (at segment ${i}) is ` +\n `not an object or array`;\n return true;\n }\n return false;\n })) {\n return invalidMessage(message);\n }\n }\n // Root can only be an object or array unless it is itself\n // else if (!isObjectOrArray()) {\n // return invalidMessage('Referent is not an object or array');\n // }\n\n // UI prevents array/object references at root\n // Condition to forbid path to self\n // if (referent === root) {\n // return invalidMessage(\"Can't reference self\");\n // }\n\n // Condition to confirm that referenced element is an array or\n // object (or reference) with the designated `type`\n const referentType = Types.getTypeForRoot(referent);\n const referentBaseType = /** @type {(string|null|undefined)[]} */ ([\n 'array',\n 'arrayNonindexKeys'\n // 'sparseArrays'\n ]).includes(referentType)\n ? 'array'\n /* istanbul ignore next -- Bad ref should have been caught earlier */\n : (\n /* istanbul ignore next -- Bad ref should have been caught earlier */\n referentType === 'object'\n ? 'object'\n /* istanbul ignore next -- Bad ref should have been caught earlier */\n : null);\n\n if (referentBaseType !== type) {\n return invalidMessage(\n 'Reference must match expected reference type ' +\n '(array or object)'\n );\n }\n return {\n valid: true\n };\n },\n validateAll ({types, topRoot}) {\n const type = /** @type {import('../types.js').AvailableType} */ (\n `${this.type}Reference`\n );\n $$e(topRoot, `div[data-type=\"${type}\"]`).forEach((root) => {\n types.validate({\n type,\n // eslint-disable-next-line object-shorthand -- TS\n root: /** @type {HTMLDivElement} */ (root),\n topRoot\n });\n });\n },\n viewUI ({value}) {\n return ['i', {\n dataset: {type: `${this.type}Reference`}\n }, [`${this.type}Ref(${value})`]];\n },\n // Note: The `value` here must not be the object itself (the\n // circular object/array) as the `value` usually should be,\n // but instead the array/object path\n editUI ({typeNamespace, value = '' /* , topRoot */}) {\n const {type} = this;\n return ['div', {dataset: {type: `${type}Reference`}}, [\n ['label', [\n `JSON Pointer path to ${type} (leave blank for path to root) `,\n ['input', {\n name: `${typeNamespace}-${type}Reference`,\n type: 'text',\n pattern: '^(|/.*)$',\n value\n }]\n ]]\n // Todo (low): Add button to enable mode (supporting\n // scrolling) for clicking on desired referent element\n ]];\n }\n};\n\nexport default arrayReferenceType;\n","import arrayReferenceType from './arrayReferenceType.js';\n\n/**\n * @type {import('../types.js').TypeObject & {type: string}}\n */\nconst objectReferenceType = {\n option: ['Object reference'],\n type: 'object',\n stringRegex: /^objectRef\\((?:|\\/[^)]*)\\)$/u,\n toValue (...args) {\n return /** @type {import('../types.js').ToValue} */ (\n arrayReferenceType.toValue\n ).apply(this, args);\n },\n resolveReference (...args) {\n return arrayReferenceType.resolveReference?.apply(\n this, args\n );\n },\n stateDependent: {\n structuredCloning: {\n after: 'object',\n contexts: [\n 'arrayNonindexKeys',\n // 'sparseArrays',\n 'object',\n 'set'\n ]\n }\n },\n getInput (...args) {\n return arrayReferenceType.getInput.apply(this, args);\n },\n setValue (...args) {\n return arrayReferenceType.setValue?.apply(this, args);\n },\n getValue (...args) {\n return arrayReferenceType.getValue.apply(this, args);\n },\n validate (...args) {\n return /** @type {{message?: string | undefined; valid: boolean;}} */ (\n arrayReferenceType.validate?.apply(this, args)\n );\n },\n validateAll (...args) {\n return arrayReferenceType.validateAll?.apply(this, args);\n },\n viewUI (...args) {\n return arrayReferenceType.viewUI.apply(this, args);\n },\n editUI (...args) {\n return arrayReferenceType.editUI.apply(this, args);\n }\n};\n\nexport default objectReferenceType;\n","/**\n * @typedef {number} Integer\n */\n/**\n * `FileList` polyfill.\n */\nclass FileList {\n /**\n * Set private properties and length.\n */\n constructor () {\n // eslint-disable-next-line prefer-rest-params -- Keep API\n this._files = arguments[0];\n this.length = this._files.length;\n }\n /**\n * @param {Integer} index\n * @returns {File}\n */\n item (index) {\n return this._files[index];\n }\n /* eslint-disable class-methods-use-this -- API */\n /**\n * @returns {\"FileList\"}\n */\n get [Symbol.toStringTag] () {\n /* eslint-enable class-methods-use-this -- API */\n return 'FileList';\n }\n}\nexport default FileList;\n","import {jml, nbsp} from '../vendor-imports.js';\n\nimport {getPropertyValueFromLegend} from '../types.js';\nimport {$e, $$e, U, DOM} from '../utils/templateUtils.js';\nimport dialogs from '../utils/dialogs.js';\nimport {\n resolveJSONPointer, getJSONPointerParts, reduceJSONPointerParts\n} from '../utils/jsonPointer.js';\nimport FileList from '../utils/FileList.js';\n\nlet optionalPropertyId = 0;\n\n/**\n * @typedef {number} Integer\n */\n/**\n * @callback ParseInt\n * @this {HTMLInputElement}\n * @returns {false|Integer}\n */\n/**\n * @typedef {() => HTMLInputElement[]} InputsExceedingLength\n */\n/**\n * @typedef {() => (HTMLSelectElement & {\n * $getValue: import('../typeChoices.js').GetValue\n * })[]} GetMapKeySelects\n */\n/**\n * @typedef {() => void} ValidateMapKey\n */\n/**\n * @callback GetPropertyInputs\n * @returns {HTMLInputElement[]}\n */\n\n/**\n * @callback RedrawMoveArrows\n * @returns {void}\n */\n/**\n * @typedef {() => HTMLDivElement & {\n * $inputsExceedingLength: InputsExceedingLength,\n * $getPropertyInputs: GetPropertyInputs,\n * $redrawMoveArrows: RedrawMoveArrows,\n * $getMapKeySelects: GetMapKeySelects\n * }} GetArrayItems\n */\n/**\n * @typedef {() => Promise<void>} Validate\n */\n\n/**\n * @callback Resort\n * @param {{alwaysFocus?: true}} cfg\n * @returns {void}\n */\n\n/**\n * @typedef {() => HTMLInputElement|undefined} GetPropertyInput\n */\n\n/**\n * @typedef {any} AnyValue\n */\n\n/**\n * Algorithm used for checking key identity in `Map`'s.\n * @param {AnyValue} x\n * @param {AnyValue} y\n * @returns {boolean}\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#same-value-zero_equality\n */\nfunction sameValueZero (x, y) {\n if (typeof x === 'number' && typeof y === 'number') {\n // x and y are equal (may be -0 and 0) or they are both NaN\n // eslint-disable-next-line no-self-compare -- Not pointless with -0\n return x === y || (x !== x && y !== y);\n }\n return x === y;\n}\n\n/**\n * @type {import('../types.js').TypeObject & {sparse?: boolean|undefined}}\n */\nconst arrayType = {\n option: ['Array'],\n array: true,\n // sparse: undefined, // Don't add as will be copied\n regexEndings: [',', ']'],\n stringRegexBegin: /^\\[/u,\n stringRegexEnd: /^\\]/u,\n valueMatch (x) {\n return Array.isArray(x);\n },\n toValue (s, info) {\n const {\n /* istanbul ignore next -- Just a guard */\n endMatchTypeObjs = [],\n remnant: innerContents,\n rootHolder,\n schemaObject\n } = /** @type {import('../types.js').RootInfo} */ (info);\n // eslint-disable-next-line prefer-destructuring -- TS\n const format = /** @type {import('../types.js').RootInfo} */ (info).format;\n // eslint-disable-next-line prefer-destructuring -- TS\n const types = /** @type {import('../types.js').default} */ (\n /** @type {import('../types.js').RootInfo} */ (info).types\n );\n const {sparse} = this;\n const state = sparse\n ? 'arrayNonindexKeys'\n // ? 'sparseArrays'\n : (this.array && !this.record ? 'array' : 'object');\n /** @type {{[key: (string|number)]: any}} */\n const retObj = this.array && !this.record ? [] : {};\n /* istanbul ignore next -- Unreachable? */\n let stringVal = innerContents !== undefined\n ? innerContents\n /* istanbul ignore next -- Unreachable? */\n : s;\n\n /**\n * @param {boolean} beginOnly\n * @returns {boolean}\n */\n const checkEnd = (beginOnly) => {\n if (beginOnly && endMatchTypeObjs.length) {\n const endMatch = stringVal.match(\n /** @type {RegExp} */ (\n /** @type {import('../types.js').TypeObject} */ (\n endMatchTypeObjs.at(-1)\n ).stringRegexEnd\n )\n );\n if (endMatch) {\n endMatchTypeObjs.pop(); // Safe now to extract\n stringVal = stringVal.slice(endMatch[0].length);\n return true;\n }\n }\n return false;\n };\n if (this.array && !this.record) {\n let idx = 0;\n const parse = () => {\n if (!stringVal) {\n return;\n }\n const sparseEntriesOrSpaces = stringVal.match(sparse ? /^[,\\s]+/u : /^\\s*,?\\s*/u);\n if (sparseEntriesOrSpaces) {\n const ws = sparseEntriesOrSpaces[0].match(/\\s/gu);\n idx += sparseEntriesOrSpaces[0].length - (ws ? ws.length : 0);\n stringVal = stringVal.slice(sparseEntriesOrSpaces[0].length);\n if (!stringVal) {\n return;\n }\n }\n let v, beginOnly, assign;\n try {\n [v, stringVal, beginOnly, assign] = types.getValueForString(\n stringVal,\n {\n firstRun: false,\n format,\n state,\n schemaObject,\n endMatchTypeObjs, rootHolder, parent: retObj, parentPath: idx\n }\n );\n } catch (err) {\n console.log('e', err);\n return;\n }\n if (assign) {\n retObj[idx] = v;\n }\n if (checkEnd(beginOnly)) {\n return;\n }\n parse();\n };\n parse();\n if (sparse && idx && idx > retObj.length - 1) {\n retObj.length = idx + 1;\n }\n return {\n value: this.set && Array.isArray(retObj)\n ? new Set(retObj)\n : this.map\n ? new Map(/** @type {Array<any>} */ (retObj))\n : this.filelist\n ? new FileList(retObj)\n : retObj,\n remnant: stringVal\n };\n }\n\n /**\n * @param {boolean} [notFirstRun]\n * @returns {void}\n */\n const parse = (notFirstRun) => {\n if (!stringVal) {\n return;\n }\n if (notFirstRun && stringVal[0] === ',') {\n stringVal = stringVal.slice(1);\n }\n const propAndColon = stringVal.match(/^\\s*(?:([^:\"}]+)|\"((?:[^\\\\\"]|\\\\\\\\|\\\\\")*)\")(\\s*:\\s*)/u); // Todo (low): Use some identifier production\n if (!propAndColon) { // End of object\n return;\n }\n const [, prop, propHadQuotes] = propAndColon;\n const pr = prop !== undefined ? prop : propHadQuotes;\n stringVal = stringVal.slice(propAndColon[0].length);\n let v, beginOnly, assign;\n try {\n [v, stringVal, beginOnly, assign] = types.getValueForString(\n stringVal,\n {\n firstRun: false, format, state, schemaObject,\n endMatchTypeObjs, rootHolder, parent: retObj, parentPath: pr\n }\n );\n } catch {\n // console.log(\n // 'errrrr', stringVal,\n // JSON.stringify(endMatchTypeObjs)\n // );\n return;\n }\n // console.log('vvv', stringVal, beginOnly, v);\n if (assign) {\n // eslint-disable-next-line @stylistic/max-len -- Long\n /** @type {{[key: string]: import('../formats.js').StructuredCloneValue}} */ (\n retObj\n )[pr] = v;\n }\n if (checkEnd(beginOnly)) {\n return;\n }\n parse(true);\n };\n parse();\n return {value: retObj, remnant: stringVal};\n },\n getValue ({root, stateObj, currentPath = ''}) {\n /* istanbul ignore if */\n if (!stateObj) {\n throw new Error('TS guard'); // TS guard\n }\n // eslint-disable-next-line prefer-destructuring -- TS\n const types = /** @type {import('../types.js').default} */ (stateObj.types);\n const top = currentPath === '';\n const arrayItems =\n /**\n * @type {HTMLElement & {\n * $getMapKeySelects: GetMapKeySelects\n * }}\n */ ($e(root, '.arrayItems'));\n const fieldsets = [...arrayItems.children];\n\n /**\n * @type {({[key: string]: any})|any[]}\n */\n const ret = root.dataset.type === 'object'\n ? {}\n : !this.sparse\n ? []\n : Array.from({length: Number.parseInt(\n /** @type {HTMLInputElement} */ (DOM.filterChildElements(\n root,\n ['div', 'div', 'label', 'input']\n )[0]).value\n )});\n\n // Todo: Should this be renamed per return arguments to\n // `getRefOrVal` or is it ok?\n\n /**\n * @param {HTMLDivElement} root\n * @param {string} currentPathPart\n * @returns {[boolean, any?]}\n */\n const getValOrRef = (root, currentPathPart) => {\n const value = types.getValueForRoot(\n root, stateObj, currentPath + '/' + currentPathPart\n );\n if ('handlingReference' in stateObj && stateObj.handlingReference) {\n // We deal with references later once object is fully constructed\n stateObj.handlingReference = false;\n return [false];\n }\n return [true, value];\n };\n fieldsets.forEach((fieldset) => {\n const legend = /** @type {HTMLLegendElement} */ (\n fieldset.firstElementChild\n );\n const propVal = getPropertyValueFromLegend(legend);\n const root = /** @type {HTMLDivElement} */ (\n DOM.filterChildElements(\n /** @type {HTMLFieldSetElement} */\n (fieldset),\n [\n '.typeContainer',\n 'div[data-type]'\n ]\n )[0] || DOM.filterChildElements(\n /** @type {HTMLFieldSetElement} */\n (fieldset),\n [\n '[class^=optionalProperties-placeholder]',\n '.typeContainer',\n 'div[data-type]'\n ]\n )[0]\n );\n /* istanbul ignore if -- Should err first? */\n if (!root) {\n return;\n }\n\n const objectProperty = DOM.filterChildElements(legend, ['input']);\n const [isVal, value] = getValOrRef(\n root,\n propVal\n );\n if (isVal) {\n if (objectProperty.length) {\n /** @type {{[key: string]: any}} */ (ret)[propVal] = value;\n } else {\n ret.push(value);\n }\n }\n });\n if (top) {\n Object.entries(stateObj.paths || []).forEach(\n ([referencePath, {referentPath /* , expectArrayReferent */}]) => {\n const referentObj = referentPath === ''\n ? ret\n : resolveJSONPointer({\n path: referentPath,\n obj: ret\n });\n const referencePathJsonPtr = getJSONPointerParts(referencePath);\n const referenceFinalPathPart = referencePathJsonPtr.pop();\n const referenceParentObj = referencePathJsonPtr.reduce(\n (obj, pathPart) => {\n return reduceJSONPointerParts(obj, pathPart);\n },\n ret\n );\n /** @type {{[key: string]: any}} */ (referenceParentObj)[\n /** @type {string} */ (referenceFinalPathPart)\n ] = referentObj;\n }\n );\n }\n return this.filelist\n ? new FileList(ret)\n : this.set && Array.isArray(ret)\n ? new Set(ret)\n : this.map\n ? new Map(arrayItems.$getMapKeySelects().map((select, idx) => {\n const key = select.$getValue();\n return [key, /** @type {any[]} */ (ret)[idx]];\n }))\n : this.record\n ? arrayItems.$getMapKeySelects().reduce((obj, select, idx) => {\n const key = select.$getValue();\n const val = /** @type {any[]} */ (ret)[idx];\n obj[key] = val;\n // Todo: Reenable for native enums\n // The nature of native enums\n // if (typeof val === 'number') {\n // obj[val] = key;\n // }\n return obj;\n }, /** @type {{[key: string]: any}} */ ({}))\n : ret;\n },\n\n // Try to keep in sync with basic structure of `editUI`\n viewUI ({\n typeNamespace, type, types, value, topRoot, resultType, format,\n specificSchemaObject\n }) {\n // const {sparse} = this;\n let itemIndex = -1;\n\n const parentType = type;\n\n /**\n * @param {{\n * itemIndex: number,\n * typeNamespace?: string,\n * propName?: string\n * }} cfg\n * @returns {import('jamilih').JamilihArray}\n */\n const buildLegend = ({\n /* className, type, arrayItems, */\n itemIndex, typeNamespace, propName\n }) => {\n const tupleItem = /** @type {import('zodex').SzTuple} */ (\n specificSchemaObject\n )?.items?.[itemIndex];\n const restItem = /** @type {import('zodex').SzTuple} */ (\n specificSchemaObject\n )?.rest;\n return ['legend', [\n this.array && type !== 'record'\n ? /** @type {import('zodex').SzArray} */ (\n specificSchemaObject\n )?.element?.description ??\n ((type === 'set' && /** @type {import('zodex').SzSet} */ (\n specificSchemaObject\n )?.value?.description)\n ? /** @type {import('zodex').SzSet} */ (\n specificSchemaObject\n )?.value?.description\n : (\n tupleItem?.description ?? restItem?.description\n )) ?? 'Item'\n : specificSchemaObject ? '' : 'Property',\n specificSchemaObject ? '' : ':',\n nbsp.repeat(2),\n ['span', {\n class: `propertyName-${typeNamespace}`,\n title: type === 'record' && /** @type {import('zodex').SzRecord} */ (\n specificSchemaObject\n )?.key?.description\n ? /** @type {import('zodex').SzRecord} */ (\n specificSchemaObject\n )?.key?.description\n : specificSchemaObject ? propName : undefined\n }, [\n propName !== undefined\n ? /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n )?.properties?.[propName]?.description ?? propName\n // eslint-disable-next-line @stylistic/max-len -- Long\n /* istanbul ignore next -- Won't reach here as typeson will always give keypath? */\n : itemIndex\n ]]\n ]];\n };\n const div = jml('div', /** @type {import('jamilih').JamilihAttributes} */ ({\n class: 'arrayHolder',\n dataset: {type},\n $custom: {\n /**\n * @param {{\n * propName: string,\n * type: import('../types.js').AvailableType,\n * value: import('../formats.js').StructuredCloneValue,\n * bringIntoFocus: boolean,\n * schemaContent: import('../formats/schema.js').ZodexSchema,\n * }} cfg\n * @returns {Element}\n */\n $addAndSetArrayElement ({\n propName, type, value, bringIntoFocus,\n schemaContent\n }) {\n if (parentType === 'map') {\n const root = types.getUIForModeAndType({\n resultType,\n readonly: true,\n typeNamespace, type, topRoot,\n bringIntoFocus,\n format, schemaContent,\n value,\n hasValue: true // type === 'sparseArrays' && value\n });\n if (propName === '0') {\n const fieldset = this.$addMapElement();\n this._lastFieldset = fieldset;\n const keyFieldset = jml(\n 'fieldset', [\n ['legend', {\n title: /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.key?.description\n ? '(map key)'\n : undefined\n }, [\n /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.key?.description ?? 'Key'\n ]]\n ], fieldset\n );\n jml(root, keyFieldset);\n } else { // propName === '1'\n const valueFieldset = jml(\n 'fieldset', [\n ['legend', {\n title: /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.value?.description\n ? '(map value)'\n : undefined\n }, [\n /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.value?.description ??\n 'Value'\n ]]\n ], this._lastFieldset\n );\n this._lastFieldset = null;\n jml(root, valueFieldset);\n }\n return root;\n }\n\n const fieldset = this.$addArrayElement({propName});\n const root = types.getUIForModeAndType({\n resultType,\n readonly: true,\n typeNamespace, type, topRoot,\n bringIntoFocus,\n format,\n schemaContent,\n specificSchemaObject: schemaContent,\n value,\n hasValue: true // type === 'sparseArrays' && value\n });\n jml(root, fieldset);\n return root;\n },\n /**\n * @returns {HTMLFieldSetElement}\n */\n $addMapElement () {\n itemIndex++;\n const arrayItems = this.$getArrayItems();\n // const className = `${type}Item`;\n const fieldset = jml('fieldset', [\n buildLegend({\n // className,\n // type,\n // arrayItems,\n itemIndex,\n typeNamespace,\n propName: undefined\n })\n ], arrayItems);\n return fieldset;\n },\n /**\n * @param {{propName: string}} cfg\n * @returns {HTMLFieldSetElement}\n */\n $addArrayElement ({propName}) {\n itemIndex++;\n const arrayItems = this.$getArrayItems();\n // const className = `${type}Item`;\n const fieldset = jml('fieldset', [\n buildLegend({\n // className,\n // type,\n // arrayItems,\n itemIndex,\n typeNamespace,\n propName\n })\n ], arrayItems);\n return fieldset;\n },\n $getArrayItems () {\n return this.lastElementChild.lastElementChild;\n }\n }\n }), [\n ['span', {\n title: specificSchemaObject?.description\n }, [\n specificSchemaObject\n ? '—'\n : DOM.initialCaps(/** @type {import('../types.js').AvailableType} */ (\n type\n )).replace(/s$/u, '')\n ]],\n nbsp.repeat(2),\n ['button', {$on: {click (/** @type {Event} */ e) {\n e.preventDefault();\n const {target} = e;\n const arrayContents = /** @type {HTMLDivElement} */ ($e(\n /** @type {HTMLElement} */\n (/** @type {HTMLElement} */ (target).closest('.arrayHolder')),\n '.arrayContents'\n ));\n arrayContents.hidden = !arrayContents.hidden;\n /** @type {HTMLElement} */ (\n target\n ).textContent = arrayContents.hidden ? '+' : '-';\n }}}, ['-']],\n ['div', {class: 'arrayContents'}, [\n this.array && type !== 'record'\n ? ['div', {\n title: specificSchemaObject\n ? (type === 'filelist'\n ? '(a FileList)'\n : type === 'set'\n ? '(a Set)'\n : type === 'map'\n ? '(a Map)'\n : type === 'tuple'\n ? '(a tuple)'\n : '(an Array)')\n : undefined\n }, [\n type === 'filelist'\n ? (specificSchemaObject?.description ?? 'FileList') + ' length: '\n : type === 'set'\n ? (specificSchemaObject?.description ?? 'Set') + ' size: '\n : type === 'map'\n ? (specificSchemaObject?.description ?? 'Map') + ' size: '\n : (specificSchemaObject?.description ?? 'Array') +\n ' length: ',\n ['span', [\n (value && (type === 'set' || type === 'map')\n ? value.size\n : value.length) || 0\n ]]\n ]]\n : (type === 'record'\n ? specificSchemaObject?.description ?? 'Record'\n : ''),\n ['div', {\n class: 'arrayItems'\n }]\n ]]\n ]);\n return [div];\n },\n getInput ({root}) {\n // One element we are guaranteed to have for adding validation\n return /** @type {HTMLButtonElement} */ ($e(root, 'button'));\n },\n // Unlike other items, we don't use the `value`, as it wil always be\n // an array (or object if called by that method) and we handle the\n // population of the array in the callback\n editUI ({\n typeNamespace, buildTypeChoices, format, // resultType,\n formats, types, specificSchemaObject, schemaFallingBack, schemaContent,\n type, forcedState, topRoot, value: objectValue, bringIntoFocus = true\n }) {\n const {sparse} = this;\n // eslint-disable-next-line consistent-this -- Clearer\n const parentTypeObject = this;\n const itemAdjust = type === 'object' ? 1 : 0;\n let itemIndex = itemAdjust - 1;\n const editableProperties = type !== 'array' &&\n type !== 'set' && type !== 'map' && type !== 'filelist' &&\n type !== 'tuple' && type !== 'record'; // arrayNonindexKeys and object?\n const mapProperties = type === 'map' || type === 'record';\n\n const elementDesc = /** @type {import('zodex').SzArray} */ (\n specificSchemaObject\n )?.element?.description ?? (type === 'set'\n ? /** @type {import('zodex').SzSet} */ (\n specificSchemaObject\n )?.value?.description\n : undefined);\n\n /**\n * @param {HTMLInputElement} input\n * @param {true|undefined} alwaysFocus\n * @returns {void}\n */\n const bringFocus = (input, alwaysFocus) => {\n if (bringIntoFocus || alwaysFocus) {\n input.scrollIntoView();\n input.focus();\n }\n };\n\n /**\n * @callback SwapGroup\n * @param {Element} holder\n * @param {\"up\"|\"down\"} direction\n * @returns {void}\n */\n\n /**\n * @type {SwapGroup}\n * @this {HTMLDivElement}\n */\n const $swapGroup = function (holder, direction) {\n const group = /** @type {HTMLElement} */ (holder.parentElement);\n const swapGroup = /** @type {HTMLElement} */ (group[\n (direction === 'up' ? 'previousElementSibling' : 'nextElementSibling')\n ]);\n /* istanbul ignore if -- Just a guard */\n if (!swapGroup || swapGroup.nodeName.toLowerCase() !== 'fieldset') {\n return;\n }\n if (!sparse && (!specificSchemaObject || parentTypeObject.array)) {\n const swapCountElem = DOM.filterChildElements(\n swapGroup, ['legend', `.${type}Item`]\n )[0];\n const baseCountElem = DOM.filterChildElements(group, [\n 'legend', `.${type}Item`\n ])[0];\n\n const swap = swapCountElem.textContent;\n const base = baseCountElem.textContent;\n swapCountElem.textContent = base;\n baseCountElem.textContent = swap;\n } else {\n // eslint-disable-next-line @stylistic/max-len -- Long\n const swapCountElem = /** @type {HTMLInputElement & {$parseInt: ParseInt}} */\n (/**\n * @type {HTMLFieldSetElement & {$getPropertyInput: GetPropertyInput}}\n */ (\n group\n ).$getPropertyInput());\n // eslint-disable-next-line @stylistic/max-len -- Long\n const baseCountElem = /** @type {HTMLInputElement & {$parseInt: ParseInt}} */\n (/**\n * @type {HTMLFieldSetElement & {$getPropertyInput: GetPropertyInput}}\n */ (\n swapGroup\n ).$getPropertyInput());\n if (typeof swapCountElem.$parseInt() === 'number' ||\n typeof baseCountElem.$parseInt() === 'number'\n ) {\n const swap = swapCountElem.value;\n const base = baseCountElem.value;\n swapCountElem.value = base;\n baseCountElem.value = swap;\n }\n }\n /*\n const baseID = group.id;\n const swapID = swapGroup.id;\n swapGroup.id = baseID;\n group.id = swapID;\n */\n if (direction === 'up') {\n swapGroup.before(group);\n } else {\n group.before(swapGroup);\n }\n types.validateAllReferences({\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot)\n }); // Needed\n\n /** @type {HTMLDivElement & {$redrawMoveArrows: RedrawMoveArrows}} */ (\n this\n ).$redrawMoveArrows();\n };\n\n /**\n * @type {RedrawMoveArrows}\n * @this {HTMLDivElement & {$swapGroup: SwapGroup}}\n */\n const $redrawMoveArrows = function () {\n if (type === 'tuple') { // Don't want to move non-rest items at least\n return;\n }\n DOM.filterChildElements(this, [\n 'fieldset', `.${type}Item-arrowHolder-${typeNamespace}`\n ]).forEach((holder, j, arr) => {\n DOM.removeChildren(holder);\n let up = true, down = true;\n if (arr.length === 1) { // Nowhere to move\n return;\n }\n if (j === 0) {\n up = false;\n } else if (j === arr.length - 1) {\n down = false;\n }\n if (up) {\n jml('button', {$on: {click: () => {\n this.$swapGroup(holder, 'up');\n }}}, [U.upArrow], holder);\n }\n if (down) {\n jml('button', {$on: {click: () => {\n this.$swapGroup(holder, 'down');\n }}}, [U.downArrow], holder);\n }\n });\n };\n\n /**\n * @typedef {() => void} ValidateLegend\n */\n\n /**\n * @type {ValidateLegend}\n * @this {HTMLInputElement & {\n * $arrayItems: HTMLDivElement & {\n * $getPropertyInputs: GetPropertyInputs\n * }\n * }}\n */\n const $validateLegend = function () {\n const propertyNameInputs = this.$arrayItems.$getPropertyInputs();\n const invalidStr = propertyNameInputs.some((input) => {\n return this !== input && input.value === this.value;\n })\n ? 'Duplicate property name'\n : '';\n\n // Don't validate if erring previously for other reason\n if (invalidStr) {\n this.setCustomValidity(\n invalidStr\n );\n this.reportValidity();\n }\n\n // Others may be ok (or problematic) now too\n propertyNameInputs.some((input, /* typeNamespace, */ _i, arr) => {\n const invalidStr = arr.some((item) => {\n return input !== item && input.value === item.value;\n })\n ? 'Duplicate property name'\n : '';\n\n if (input.validity.valid ||\n // If we just found it had an invalid length, don't\n // make it valid now\n /* istanbul ignore next -- How to replicate? */\n input.validationMessage !== 'Invalid length'\n ) {\n input.setCustomValidity(\n invalidStr\n );\n if (invalidStr) {\n // Might not want this as changes focus; if ok, will hopefully be\n // marked as such elsewhere\n input.reportValidity();\n }\n }\n return invalidStr; // Don't give a chance to become valid\n });\n };\n\n /**\n * @typedef {HTMLDivElement & {\n * $inputsExceedingLength: InputsExceedingLength,\n * $getPropertyInputs: GetPropertyInputs,\n * $redrawMoveArrows: RedrawMoveArrows\n * $getMapKeySelects: GetMapKeySelects\n * }} ArrayItems\n */\n\n /**\n * @param {{\n * className: string,\n * splice: \"append\"|number|undefined,\n * itemIndex: number,\n * typeNamespace: string|undefined,\n * arrayItems: ArrayItems,\n * propName: string|undefined,\n * required?: true,\n * schema?: import('zodex').SzType\n * }} cfg\n * @returns {import('jamilih').JamilihArray}\n */\n const buildLegend = ({\n className, splice, itemIndex, /* type, */ typeNamespace,\n arrayItems, propName, required, schema\n }) => {\n /**\n * @callback ValidateLength\n * @param {boolean} [avoidDialog]\n * @returns {Promise<void>}\n */\n\n /**\n * @type {ValidateLength}\n * @this {HTMLInputElement & {\n * $validateLength: ValidateLength\n * }}\n */\n const $validateLength = async function (avoidDialog) {\n if (!sparse) {\n return;\n }\n const inputsExceedingLength = arrayItems.$inputsExceedingLength();\n const exceedsLength = inputsExceedingLength.length;\n if (avoidDialog || !exceedsLength || !(/^\\d+$/u).test(this.value)) {\n return;\n }\n await dialogs.confirm({\n message: 'You are attempting to add an (integer-based) ' +\n 'array item beyond the length. Click \"Ok\" to allow to ' +\n 'permit and extend the array length or \"Cancel\" otherwise.'\n });\n const arrLengthInput =\n /** @type {HTMLInputElement & {$oldvalue: string}} */ (\n $e(\n /** @type {HTMLElement} */ (arrayItems.previousElementSibling),\n 'input'\n )\n );\n const highest = /** @type {number} */ (inputsExceedingLength.map(\n (i) => Number.parseInt(i.value)\n ).sort().at(-1));\n arrLengthInput.value = String(highest + 1);\n arrLengthInput.$oldvalue = String(highest + 1);\n // Does have potential side effects calling `$inputsExceedingLength`\n this.$validateLength(true);\n };\n if (mapProperties) {\n const keyTypeSelection =\n /** @type {import('../typeChoices.js').BuildTypeChoices} */ (\n buildTypeChoices\n )({\n value: propName !== undefined && type === 'record'\n ? propName\n : undefined,\n setValue: propName !== undefined && type === 'record',\n // Needed as false when map value supplied\n autoTrigger: propName === undefined || type === 'record',\n // eslint-disable-next-line object-shorthand -- TS\n format: /** @type {import('../formats.js').AvailableFormat} */ (\n format\n ),\n schemaOriginal: schemaContent,\n // Can also be a `Record`\n schemaContent: /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.key,\n typeNamespace: 'key-type-choices-only'\n });\n return ['legend', [\n ['span', {\n class: 'mapKey',\n title: (\n type === 'map' &&\n /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.key?.description\n )\n ? '(map key)'\n : type === 'record' &&\n /** @type {import('zodex').SzRecord} */ (\n specificSchemaObject\n )?.key?.description\n ? '(record key)'\n : undefined\n }, [\n type === 'map'\n ? /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.key?.description ?? 'Map key'\n : /** @type {import('zodex').SzRecord} */ (\n specificSchemaObject\n )?.key?.description ?? 'Record key',\n ' '\n ]],\n ['span', {\n dataset: {prop: 'true'},\n className\n }, [String(itemIndex)]],\n ':',\n nbsp.repeat(2),\n\n ['span', {\n class: 'mapKeyHolder',\n $on: {\n change: [function () {\n /**\n * @type {HTMLSpanElement & {\n * $validateMapKey: ValidateMapKey\n * }}\n */\n (this).$validateMapKey();\n\n // Needed?\n types.validateAllReferences({\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot)\n });\n }, true]\n },\n $custom: {\n /** @type {ValidateMapKey} */\n $validateMapKey () {\n const selects = arrayItems.$getMapKeySelects();\n\n setTimeout(() => {\n const values = selects.map((select) => {\n return select.$getValue();\n });\n\n const dupeIndex = values.findLastIndex((value, idx) => {\n return values.some((val, index) => {\n return idx !== index && sameValueZero(value, val);\n });\n });\n\n if (dupeIndex === -1) {\n return;\n }\n const select = selects[dupeIndex];\n /* istanbul ignore if -- Should exist */\n if (!select) {\n return;\n }\n\n const control = select.hidden\n ? /** @type {HTMLInputElement|HTMLTextAreaElement} */ ($e(\n /** @type {HTMLDivElement} */ (\n select.nextElementSibling\n ), 'input,textarea'\n ))\n : select;\n\n control.setCustomValidity(\n `Duplicate ${type === 'map' ? 'Map' : 'Record'} key value`\n );\n control.reportValidity();\n });\n }\n }\n }, keyTypeSelection.domArray]\n ]];\n }\n if (editableProperties) {\n // console.log('PROPNAME', propName, schema, specificSchemaObject);\n const description = /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n )?.properties?.[/** @type {string} */ (propName)]?.description;\n const optionalProperties = Object.entries(\n /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n )?.properties ?? {}\n ).map(([prop, val]) => {\n if (!val.isOptional) {\n return null;\n }\n return prop;\n }).filter(Boolean);\n optionalPropertyId++;\n const initialValue = sparse\n ? (\n splice === 'append'\n ? ''\n : (propName !== undefined ? propName : itemIndex)\n )\n : propName || '';\n return /** @type {import('jamilih').JamilihArray} */ (['legend', [\n sparse\n ? elementDesc ?? 'Item'\n : {'#': required\n ? [\n ['b', {\n className,\n title: (elementDesc ?? description) ? propName : undefined\n }, [\n elementDesc ?? description ?? propName\n ]]\n ]\n : [\n ['span', {\n className: `${className}_propertyHolder${optionalPropertyId}`\n }, [\n ...(specificSchemaObject && propName) // Optional but has name\n ? [\n ['b', [\n /** @type {import('zodex').SzObject} */\n (specificSchemaObject)?.properties?.[\n propName\n ]\n ? /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n )?.properties?.[\n propName\n ]?.description ?? propName\n : /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n /* istanbul ignore next -- Guard */\n )?.catchall?.description ?? propName\n ]]\n ]\n : [\n 'Property ',\n ['span', {className}, [String(itemIndex)]],\n ':'\n ]\n ]]\n ]},\n nbsp.repeat(2),\n specificSchemaObject && !required\n ? ['datalist', {\n id: `optionalProperties_${optionalPropertyId}`\n }, optionalProperties.map((optionalProperty) => {\n return ['option', {value: optionalProperty}];\n })]\n : '',\n ['input', {\n list: specificSchemaObject && !required\n ? `optionalProperties_${optionalPropertyId}`\n : undefined,\n style: {\n display: required && type !== 'arrayNonindexKeys'\n ? 'none'\n : 'block'\n },\n disabled: required && type === 'arrayNonindexKeys',\n value: initialValue,\n dataset: {prop: true, object: true, optionalPropertyId},\n /*\n // Works but we do want to let the user input non-integer\n type: sparse ? 'number' : 'text',\n step: sparse ? 1 : null,\n pattern: sparse ? '\\\\d' : '',\n */\n $custom: {\n /**\n * @type {Validate}\n * @this {HTMLInputElement & {\n * $validateLength: ValidateLength,\n * $validateLegend: ValidateLegend\n * }}\n */\n async $validate () {\n try {\n try {\n await this.$validateLength();\n } catch {\n // Give chance for other validations if cancelled\n }\n // Don't give chance to validate positively if failed\n /* await */ this.$validateLegend();\n // Todo (low): We could make this more efficient by waiting\n // until all added (when pre-populating)\n types.validateAllReferences({\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot)\n }); // Needed\n } catch {}\n },\n\n /**\n * @type {ParseInt}\n * @this {HTMLInputElement}\n */\n $parseInt () {\n if (!(/^\\d+$/u).test(this.value)) {\n return false;\n }\n return Number.parseInt(this.value);\n },\n $validateLegend,\n $arrayItems: arrayItems,\n $validateLength,\n /**\n * @type {Resort}\n * @this {HTMLInputElement}\n */\n $resort ({alwaysFocus}) {\n const inputs = /**\n * @type {(HTMLInputElement & {\n * $parseInt: ParseInt\n * })[]}\n */\n (/**\n * @type {HTMLInputElement & {\n * $arrayItems: HTMLDivElement & {\n * $getPropertyInputs: GetPropertyInputs\n * }\n * }}\n */ (\n this\n ).$arrayItems.$getPropertyInputs());\n if (inputs.length === 1) {\n return;\n }\n /**\n * @param {Element} el\n * @returns {Element}\n */\n const getFieldset = (el) => /** @type {HTMLFieldSetElement} */ (\n el.closest('fieldset')\n );\n const thisFieldset = getFieldset(this);\n // eslint-disable-next-line @stylistic/max-len -- Long\n const intVal = /** @type {HTMLInputElement & {$parseInt: ParseInt}} */ (\n this\n ).$parseInt();\n if (intVal === false) {\n inputs.reverse().some((input) => {\n if (input === this) { // No need to search further\n return true;\n }\n const intValOlder =\n /** @type {HTMLInputElement & {$parseInt: ParseInt}} */ (\n input\n ).$parseInt();\n // Not sorting non-integers\n if (typeof intValOlder !== 'number') {\n return false;\n }\n getFieldset(input).after(thisFieldset);\n bringFocus(this, alwaysFocus);\n arrayItems.$redrawMoveArrows();\n return true;\n });\n return;\n }\n\n /**\n * @param {boolean} [latest]\n * @returns {boolean}\n */\n const getNearest = (latest) => {\n /**\n * @type {HTMLInputElement|undefined}\n */\n let nearest;\n\n inputs.some((input) => {\n if (input === this) {\n return false;\n }\n const intValOlder = input.$parseInt();\n if (typeof intValOlder !== 'number') {\n if (!nearest) {\n // May be no other higher ints or\n // no other ints at all (but some others)\n nearest = input;\n }\n return false;\n }\n\n /**\n * @param {Integer} a\n * @param {Integer} b\n * @returns {boolean}\n */\n const cmp = (a, b) => {\n return latest ? a > b : a < b;\n };\n if (cmp(intVal, intValOlder) &&\n (!nearest || cmp(\n intValOlder, Number.parseInt(nearest.value)\n ))\n ) {\n nearest = input;\n return (intVal + (latest ? -1 : 1)) === intValOlder;\n }\n return false;\n });\n if (!nearest) {\n return false;\n }\n const method = latest ? 'after' : 'before';\n // Ensure move *after* splice that will occur after this\n setTimeout(() => {\n /* istanbul ignore if */\n if (!nearest) {\n return;\n }\n getFieldset(nearest)[method](thisFieldset);\n bringFocus(this, alwaysFocus);\n arrayItems.$redrawMoveArrows();\n });\n return true;\n };\n if (!getNearest()) {\n getNearest(true);\n }\n }\n },\n $on: {\n /**\n * @this {HTMLInputElement}\n */\n input () {\n if (!specificSchemaObject && !schema) {\n return;\n }\n const propHolder = /** @type {HTMLElement} */ (\n $e(arrayItems, `.${className}_propertyHolder${\n this.dataset.optionalPropertyId\n }`)\n );\n DOM.removeChildren(propHolder);\n jml('b', [\n /** @type {import('zodex').SzObject} */\n (specificSchemaObject)?.properties?.[\n this.value\n ]\n ? /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n )?.properties?.[\n this.value\n ]?.description ?? this.value\n : /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n )?.catchall?.description ?? this.value\n ], propHolder);\n },\n /**\n * @param {Event} e\n * @this {HTMLInputElement & {\n * $validate: Validate,\n * $resort: Resort\n * }}\n */\n change (e) {\n const neverProperty = /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n )?.properties?.[\n /** @type {string} */ (this.value)\n ]?.type === 'never';\n\n let invalid = false;\n if (neverProperty) {\n this.setCustomValidity('Never value');\n this.reportValidity();\n this.style.backgroundColor = 'pink';\n\n invalid = true;\n } else if (this.list && !parentTypeObject.array) {\n const dataListValues = [\n ...this.list.options\n ].map(({value}) => value);\n\n if (\n !dataListValues.includes(this.value) &&\n /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n ).unknownKeys === 'strict'\n ) {\n this.setCustomValidity('Bad value');\n this.reportValidity();\n this.style.backgroundColor = 'pink';\n invalid = true;\n } else {\n this.style.backgroundColor = 'revert-layer';\n this.setCustomValidity('');\n this.reportValidity();\n const {optionalPropertyId} = this.dataset;\n let placeholder = /** @type {HTMLElement} */ (\n $e(\n arrayItems,\n `.optionalProperties-placeholder${optionalPropertyId}`\n )\n );\n if (!placeholder) {\n placeholder = /** @type {HTMLElement} */ ($e(\n /** @type {HTMLElement} */\n (this.parentElement?.parentElement),\n `.property-placeholder`\n )?.previousElementSibling);\n // Remove extra select element too\n placeholder.previousElementSibling?.remove();\n }\n placeholder.replaceWith(\n jml('div', {\n className:\n `optionalProperties-placeholder${optionalPropertyId}`\n }, [\n ...buildTypeChoicesForProperty({\n propName: this.value,\n schema:\n /** @type {import('zodex').SzObject} */\n (specificSchemaObject)?.properties?.[this.value] ??\n /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n )?.catchall ??\n {type: 'any'}\n })\n ])\n );\n }\n }\n\n if (invalid) {\n const placeholder = /** @type {HTMLElement} */ (\n $e(\n arrayItems,\n `.optionalProperties-placeholder${optionalPropertyId}`\n )\n );\n DOM.removeChildren(placeholder);\n } else {\n // Should this be awaited or awaited after stopPropagation?\n this.$validate();\n }\n // We don't want form `onchange` to run\n // `$checkForKeyDuplicates` again\n e.stopPropagation();\n this.$resort({alwaysFocus: true});\n }\n },\n class: `propertyName-${typeNamespace}`\n }]\n ]]);\n }\n\n const fileDesc = /** @type {import('zodex').SzEffect} */ (\n specificSchemaObject\n )?.inner?.description;\n\n return /** @type {import('jamilih').JamilihArray} */ (['legend', [\n elementDesc\n ? ''\n : fileDesc\n ? `${fileDesc} `\n : schema?.description\n ? `${schema?.description} `\n : type === 'tuple' && /** @type {import('zodex').SzTuple} */ (\n specificSchemaObject\n )?.rest?.description\n ? `${/** @type {import('zodex').SzTuple} */ (\n specificSchemaObject\n )?.rest?.description} `\n : 'Item ',\n ['span', {\n dataset: {prop: true, array: true},\n className\n }, [\n elementDesc\n ? `${elementDesc} ${itemIndex + 1}`\n : propName !== undefined\n ? propName\n : String(itemIndex)\n ]]\n ]]);\n };\n\n /**\n * @param {HTMLDivElement & {\n * $getPropertyInputs: GetPropertyInputs\n * }} arrayItems\n * @returns {void}\n */\n const decrementItemIndex = (arrayItems) => {\n if (sparse) {\n // eslint-disable-next-line @stylistic/max-len -- Long\n itemIndex = /** @type {(HTMLInputElement & {$parseInt: ParseInt})[]} */ (\n arrayItems.$getPropertyInputs()\n ).reduce(\n (highest, input) => {\n const intVal = input.$parseInt();\n return intVal !== false && intVal > highest ? intVal : highest;\n },\n -1\n );\n } else {\n itemIndex--;\n }\n };\n\n /**\n * @param {{\n * propName: string|undefined,\n * schema?: import('zodex').SzType,\n * schemaIdx?: number,\n * autoTrigger?: boolean\n * }} cfg\n */\n const buildTypeChoicesForProperty = ({\n propName, schema, schemaIdx, autoTrigger\n }) => {\n return /** @type {import('../typeChoices.js').BuildTypeChoices} */ (\n buildTypeChoices\n )({\n autoTrigger,\n // resultType,\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot),\n // eslint-disable-next-line object-shorthand -- TS\n format: /** @type {import('../formats.js').AvailableFormat} */ (format),\n schemaOriginal: schemaContent,\n schemaIdx,\n schemaContent: schema || type === 'tuple'\n ? (schema ?? /** @type {import('zodex').SzTuple} */ (\n specificSchemaObject\n ).rest)\n : mapProperties\n // Can also be a `Record`\n ? /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.value\n : type === 'set'\n ? /** @type {import('zodex').SzSet} */ (\n specificSchemaObject\n )?.value\n : type === 'filelist'\n ? /** @type {import('zodex').SzEffect} */ (\n specificSchemaObject\n )?.inner\n : type === 'array' || type === 'arrayNonindexKeys'\n ? /** @type {import('zodex').SzArray} */ (\n specificSchemaObject\n )?.element\n : /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n )?.properties?.[/** @type {string} */ (propName)],\n state: parentTypeObject.filelist\n ? 'filelistArray'\n : forcedState ?? type,\n // itemIndex,\n typeNamespace\n }).domArray;\n };\n\n /**\n * @param {Integer} [offset]\n * @returns {boolean}\n */\n function preventAdding (offset = 0) {\n switch (type) {\n case 'tuple':\n if (/** @type {import('zodex').SzTuple} */ (\n specificSchemaObject\n )?.rest?.type === 'never') {\n dialogs.alert(\n 'Tuple has rest type \"never\", so one cannot add to it.'\n );\n return true;\n }\n if (\n /** @type {import('zodex').SzTuple} */ (\n specificSchemaObject\n )?.items?.[0]?.type === 'never'\n ) {\n dialogs.alert(\n 'Tuple has items type \"never\", so one cannot add to it.'\n );\n return true;\n }\n break;\n case 'set': {\n if (/** @type {import('zodex').SzSet} */ (\n specificSchemaObject\n )?.value?.type === 'never') {\n dialogs.alert('Set has type \"never\", so one cannot add to it.');\n return true;\n }\n\n const {maxSize} = /** @type {import('zodex').SzSet} */ (\n specificSchemaObject\n ) ?? {};\n if (maxSize !== undefined &&\n [...arrayItems.children].length + offset > maxSize\n ) {\n dialogs.alert(`You cannot add beyond the \\`maxSize\\` of the Set`);\n return true;\n }\n break;\n } case 'array': case 'arrayNonindexKeys': {\n if (/** @type {import('zodex').SzArray} */ (\n specificSchemaObject\n )?.element?.type === 'never') {\n dialogs.alert('Array has type \"never\", so one cannot add to it.');\n return true;\n }\n\n const {maxLength} = /** @type {import('zodex').SzArray} */ (\n specificSchemaObject\n ) ?? {};\n\n if (maxLength !== undefined &&\n arrayItems.$getArrayLength() + offset > maxLength\n ) {\n dialogs.alert(`You cannot add beyond the \\`maxLength\\` of the array`);\n return true;\n }\n break;\n } default:\n break;\n }\n\n return false;\n }\n\n /**\n * @callback AddArrayElement\n * @param {{\n * propName?: string,\n * splice?: \"append\"|number,\n * alwaysFocus?: true\n * required?: true\n * autoTrigger?: boolean,\n * schema?: import('zodex').SzType,\n * schemaIdx?: number\n * }} cfg\n * @returns {void}\n */\n\n /**\n * @type {AddArrayElement}\n * @this {HTMLElement & {\n * $getArrayItems: GetArrayItems,\n * $addArrayElement: AddArrayElement,\n * $getMapKeySelects?: GetMapKeySelects\n * }}\n */\n const $addArrayElement = function ({\n propName, splice, alwaysFocus, required, schema, schemaIdx, autoTrigger\n }) {\n const arrayItems = this.$getArrayItems();\n if (sparse) {\n if (propName) {\n const intVal = propName.match(/^\\d+$/u) && Number.parseInt(propName);\n if (typeof intVal === 'number') {\n itemIndex = intVal;\n }\n } else if (typeof splice === 'number') {\n itemIndex = splice + 1;\n } else if (typeof splice !== 'string') {\n // eslint-disable-next-line @stylistic/max-len -- Long\n itemIndex = /** @type {(HTMLInputElement & {$parseInt: ParseInt})[]} */ (\n // eslint-disable-next-line @stylistic/max-len -- Long\n /** @type {HTMLDivElement & {$getPropertyInputs: GetPropertyInputs}} */\n (arrayItems).$getPropertyInputs()\n ).reduce(\n (highest, input) => {\n const intVal = input.$parseInt();\n return intVal !== false && intVal > highest ? intVal : highest;\n },\n -1\n ) + 1;\n }\n } else {\n itemIndex++;\n }\n const thisButton = this; // eslint-disable-line consistent-this -- Clarity\n const className = `${type}Item`;\n const fieldset = jml('fieldset',\n {\n dataset: required ? {required: 'required'} : {},\n $on: {\n change: [() => {\n if (type !== 'set') {\n return;\n }\n setTimeout(() => {\n const root = div;\n const values = /** @type {any[]} */ (\n parentTypeObject.getValue.call({\n ...parentTypeObject,\n set: false\n }, {\n root,\n stateObj: {\n types,\n // eslint-disable-next-line object-shorthand -- TS\n formats:\n /** @type {import('../formats.js').default} */ (\n formats\n )\n }\n })\n );\n // console.log('values', values);\n\n const dupeIndex = values.findLastIndex((value, idx) => {\n return values.some((val, index) => {\n return idx !== index && value === val;\n });\n });\n\n if (dupeIndex === -1) {\n return;\n }\n const fieldsets = arrayItems.children;\n const controls = [...fieldsets].map((fieldset) => {\n const root = /** @type {HTMLDivElement} */ (\n $e(fieldset, 'div[data-type]')\n );\n /* istanbul ignore if -- Should err first? */\n if (!root) {\n return null;\n }\n return types.getFormControlForRoot(root);\n });\n\n const control = controls[dupeIndex];\n /* istanbul ignore if -- Should exist */\n if (!control) {\n return;\n }\n\n control.setCustomValidity(\n 'Duplicate Set value'\n );\n control.reportValidity();\n });\n }, true]\n },\n $custom: {\n /** @type {GetPropertyInput} */\n $getPropertyInput () {\n return /** @type {HTMLInputElement} */ (\n DOM.filterChildElements(\n /**\n * @type {HTMLFieldSetElement & {\n * $getPropertyInput: GetPropertyInput\n * }}\n */ (this),\n ['legend', `input.propertyName-${typeNamespace}`]\n ).pop()\n );\n }\n }\n },\n [\n buildLegend({\n className,\n splice,\n itemIndex,\n // type,\n typeNamespace,\n arrayItems,\n propName,\n required,\n schema\n })\n ],\n arrayItems);\n\n // We must ensure fieldset is built before passing it\n jml({'#': [\n ['span', {\n class: 'mapValue',\n title: type === 'map' &&\n /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.value?.description\n ? '(map value)'\n : type === 'record' &&\n /** @type {import('zodex').SzRecord} */ (\n specificSchemaObject\n )?.value?.description\n ? '(record value)'\n : undefined\n }, [\n type === 'map'\n ? /** @type {import('zodex').SzMap<any, any>} */ (\n specificSchemaObject\n )?.value?.description ?? 'Map value'\n : type === 'record'\n ? /** @type {import('zodex').SzRecord} */ (\n specificSchemaObject\n )?.value?.description ?? 'Record value'\n : '',\n ' '\n ]],\n ...(specificSchemaObject && !propName && !parentTypeObject.array\n ? [jml('span', {\n className: `optionalProperties-placeholder${optionalPropertyId}`\n })]\n : buildTypeChoicesForProperty({\n propName, schema, schemaIdx, autoTrigger\n })),\n ['span', {className: 'property-placeholder'}],\n nbsp.repeat(2),\n ['button', {\n disabled: type === 'tuple' && required &&\n // The last item of a tuple can have content after it, but earlier\n // items cannot\n /** @type {import('zodex').SzTuple} */\n (specificSchemaObject)?.items?.length - 1 > itemIndex,\n $on: {click (/** @type {Event} */ e) {\n e.preventDefault();\n // e.stopPropagation();\n\n if (preventAdding(1)) {\n return;\n }\n\n /** @type {number | \"append\" | undefined} */\n let splice;\n if (sparse) {\n const prevInputVal =\n /**\n * @type {HTMLInputElement & {\n * $parseInt: ParseInt\n * }}\n */ (\n /**\n * @type {HTMLFieldSetElement & {\n * $getPropertyInput: GetPropertyInput\n * }}\n */ (\n fieldset\n ).$getPropertyInput()).$parseInt();\n splice = prevInputVal === false ? 'append' : prevInputVal;\n }\n thisButton.$addArrayElement({\n splice, alwaysFocus: true, schema\n });\n const newArrayFieldset =\n /** @type {Element & {$getPropertyInput: GetPropertyInput}} */ (\n arrayItems.lastElementChild\n );\n fieldset.after(newArrayFieldset);\n if (sparse || (\n // Because schemas (with descriptions?) don't use className for\n // property count (and the else block will rewrite the\n // property name)\n (specificSchemaObject || schema) &&\n !parentTypeObject.array\n )) {\n const newPrevInput = /** @type {HTMLInputElement} */ (\n newArrayFieldset.$getPropertyInput()\n );\n bringFocus(newPrevInput, true);\n } else {\n DOM.filterChildElements(\n arrayItems, [\n 'fieldset', 'legend', '.' + className\n ]\n ).forEach((span, i) => {\n span.textContent = elementDesc\n ? `${elementDesc} ${i + itemAdjust + 1}`\n : String(i + itemAdjust);\n });\n }\n // Maybe not needed as addition (without renumbering)\n // wouldn't yet add type\n types.validateAllReferences({\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot)\n });\n arrayItems.$redrawMoveArrows();\n }}\n }, ['+']],\n /**\n * @type {import('jamilih').JamilihArray}\n */\n ([\n 'button',\n {\n disabled: required,\n $on: {\n click (/** @type {Event} */ e) {\n e.preventDefault();\n // e.stopPropagation();\n fieldset.remove();\n decrementItemIndex(arrayItems);\n if (!sparse &&\n (!specificSchemaObject || parentTypeObject.array)\n ) {\n DOM.filterChildElements(arrayItems, [\n 'fieldset', 'legend', '.' + className\n ]).forEach((span, i) => {\n span.textContent = elementDesc\n ? `${elementDesc} ${i + itemAdjust + 1}`\n : String(i + itemAdjust);\n });\n }\n // Maybe not needed as removal would remove circular\n types.validateAllReferences({\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot)\n });\n\n /**\n * @type {HTMLDivElement & {\n * $redrawMoveArrows: RedrawMoveArrows\n * }}\n */\n (arrayItems).$redrawMoveArrows();\n }\n }\n }, ['x']\n ]),\n ['span', {\n class: `${type}Item-arrowHolder-${typeNamespace}`\n }, []]\n ]}, fieldset);\n\n // Need to validate if adding more than one property (in\n // case two have empty string)\n if (editableProperties) {\n const pns = arrayItems.$getPropertyInputs();\n /* istanbul ignore else -- Just a guard */\n if (pns.length) {\n const input =\n /**\n * @type {HTMLInputElement & {\n * $validate: Validate,\n * $resort: Resort\n * }}\n */\n (pns.pop());\n input.$validate();\n input.$resort({alwaysFocus});\n bringFocus(input, alwaysFocus);\n }\n }\n arrayItems.$redrawMoveArrows();\n };\n\n /**\n * @callback GetArrayLength\n * @returns {number}\n */\n\n /**\n * @type {GetArrayLength}\n * @this {HTMLDivElement}\n */\n const $getArrayLength = function () {\n return Number(/** @type {HTMLInputElement} */ (\n $e(/** @type {HTMLElement} */ (this.previousElementSibling), 'input')\n ).value);\n };\n\n /**\n * @type {InputsExceedingLength}\n * @this {HTMLDivElement & {\n * $getArrayLength: GetArrayLength,\n * $getPropertyInputs: GetPropertyInputs\n * }}\n */\n const $inputsExceedingLength = function () {\n const highestExpectedIndex = this.$getArrayLength() - 1;\n return this.$getPropertyInputs().filter(\n (input) => input.value.match(/^\\d+$/u)\n ).filter((input) => {\n // We cycle through all elements to set the proper validity on them\n const val = Number.parseInt(input.value);\n const exceedsLength = val > highestExpectedIndex;\n input.setCustomValidity(\n exceedsLength\n ? 'Invalid length'\n : ''\n );\n input.reportValidity(); // Is this having an effect now?\n return exceedsLength;\n });\n };\n const addArrayElement = /** @type {import('jamilih').JamilihArray} */ (\n ['button', {\n class: 'addArrayElement',\n // is: 'add-array-element',\n $custom: {\n $addArrayElement,\n /**\n * @type {GetArrayItems}\n * @this {HTMLDivElement}\n */\n $getArrayItems () {\n const prevSibling = /**\n * @type {HTMLDivElement & {\n * $inputsExceedingLength: InputsExceedingLength,\n * $getPropertyInputs: GetPropertyInputs,\n * $redrawMoveArrows: RedrawMoveArrows,\n * $getMapKeySelects: GetMapKeySelects\n * }}\n */ (this.previousElementSibling);\n return prevSibling;\n }\n },\n $on: {click () {\n if (preventAdding(1)) {\n return;\n }\n\n // Todo: Should really check if all object properties have been used,\n // and stop and warn if so\n /**\n * @type {HTMLButtonElement & {\n * $addArrayElement: AddArrayElement,\n * $getArrayItems: GetArrayItems\n * }}\n */\n (this).$addArrayElement({alwaysFocus: true});\n // Maybe not needed as addition (without renumbering)\n // wouldn't yet add type\n types.validateAllReferences({\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot)\n });\n }}\n }, ['+ Item']]\n );\n\n const arrayContentsFirstChild = sparse\n ? ['div', [\n ['label', [\n 'Array length: ',\n ['input', {\n type: 'number',\n value: (objectValue && objectValue.length) || 0,\n step: 1,\n size: 4,\n class: 'arrayLength',\n pattern: String.raw`\\d`,\n $on: {\n /**\n * @this {HTMLInputElement & {\n * $oldvalue: string\n * }}\n * @returns {Promise<void>}\n */\n async change () {\n if (preventAdding()) {\n /* istanbul ignore next -- Just a guard */\n this.value = this.$oldvalue ?? this.defaultValue;\n return;\n }\n\n const arrayItems = $e(\n /** @type {HTMLElement} */ (\n this.closest('.arrayContents')\n ),\n '.arrayItems'\n );\n const propInputsBeyondLength =\n /**\n * @type {HTMLElement & {\n * $inputsExceedingLength: InputsExceedingLength\n * }}\n */\n (arrayItems).$inputsExceedingLength();\n try {\n if (propInputsBeyondLength.length) {\n await dialogs.confirm({\n message: 'Your new length will truncate the ' +\n 'array causing items to be removed. Continue?'\n });\n propInputsBeyondLength.forEach((input) => {\n const fieldset = /** @type {HTMLFieldSetElement} */ (\n input.closest('fieldset')\n );\n if (!fieldset.matches('[data-required]')) {\n fieldset.remove();\n } else {\n // If not truncating the array, put the length back\n const arrayLengthInput =\n /**\n * @type {HTMLInputElement & {\n * $oldvalue: string\n * }}\n */ (\n $e(div, '.arrayLength')\n );\n arrayLengthInput.value = String(Number.parseInt(\n arrayLengthInput.value\n ) + 1);\n }\n });\n // Maybe not needed as removal would remove circular\n types.validateAllReferences({\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot)\n });\n } else {\n const element = /** @type {import('zodex').SzArray} */ (\n specificSchemaObject\n )?.element;\n if (!['void', 'undefined'].includes(\n element?.type\n ) && (\n element?.type !== 'union' ||\n /** @type {import('zodex').SzUnion} */\n (element)?.options?.every((option) => {\n return !['void', 'undefined'].includes(option.type);\n })\n )) {\n const diff = Number.parseInt(this.value) -\n Number.parseInt(this.$oldvalue ?? this.defaultValue);\n for (let i = 0; i < diff; i++) {\n // Timeout needed by Cypress at least or will get\n // validation triggered which prevents moving forward\n setTimeout(() => {\n div.$addArrayElement({});\n });\n }\n }\n }\n this.$oldvalue = this.value;\n } catch {\n this.value = this.$oldvalue; // Revert\n }\n }\n }\n }]\n ]]\n ]]\n : '';\n\n const arrayItems =\n /** @type {HTMLDivElement & {$getArrayLength: GetArrayLength}} */ (\n jml('div', {\n class: 'arrayItems',\n $custom: {\n $swapGroup, $redrawMoveArrows, $getArrayLength,\n $inputsExceedingLength,\n\n /**\n * Only relevant for maps.\n * @type {GetMapKeySelects}\n * @this {HTMLDivElement}\n */\n $getMapKeySelects () {\n const selects =\n /**\n * @type {(HTMLSelectElement & {\n * $getValue: import('../typeChoices.js').GetValue}\n * )[]}\n */ (DOM.filterChildElements(\n this,\n [\n 'fieldset',\n 'legend:first-child',\n 'span.mapKeyHolder',\n 'select.typeChoices-key-type-choices-only'\n ]\n ));\n return selects;\n },\n\n /**\n * @type {GetPropertyInputs}\n * @this {HTMLDivElement}\n */\n $getPropertyInputs () {\n return /** @type {HTMLInputElement[]} */ (DOM.filterChildElements(\n this,\n ['fieldset', 'legend', `input.propertyName-${typeNamespace}`]\n ));\n }\n }\n })\n );\n\n const minusButton = ['button', {$on: {click (/** @type {Event} */ e) {\n e.preventDefault();\n const {target} = e;\n const arrayContents = /** @type {HTMLDivElement} */ (\n $e(div, '.arrayContents')\n );\n arrayContents.hidden = !arrayContents.hidden;\n /** @type {Element} */ (\n target\n ).textContent = arrayContents.hidden ? '+' : '-';\n }}}, ['-']];\n\n const arrayContents = /** @type {import('jamilih').JamilihArray} */ (\n ['div', {class: 'arrayContents'}, [\n arrayContentsFirstChild,\n arrayItems,\n addArrayElement,\n ['button', {$on: {click () {\n const arrayContents = /** @type {HTMLElement} */ (\n this.closest('.arrayContents')\n );\n const arrayItems =\n // eslint-disable-next-line @stylistic/max-len -- Long\n /** @type {HTMLDivElement & {$getPropertyInputs: GetPropertyInputs;}} */ (\n $e(/** @type {HTMLElement} */ (arrayContents), '.arrayItems')\n );\n const lastElement = arrayItems.lastElementChild;\n if (lastElement && !lastElement.matches('[data-required]')) {\n lastElement.remove();\n decrementItemIndex(arrayItems);\n // eslint-disable-next-line @stylistic/max-len -- Long\n /** @type {HTMLDivElement & {$redrawMoveArrows: RedrawMoveArrows}} */ (\n $e(/** @type {HTMLElement} */ (arrayContents), '.arrayItems')\n ).$redrawMoveArrows();\n }\n // Maybe not needed as removal would remove circular\n types.validateAllReferences({\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot)\n });\n }}}, ['- Last item']],\n // We could only add this when there was more than one\n ['button', {$on: {click () {\n const arrayContents = /** @type {HTMLElement} */ (\n /** @type {HTMLElement} */ (this).closest('.arrayContents')\n );\n const arrayItems =\n // eslint-disable-next-line @stylistic/max-len -- Long\n /** @type {HTMLDivElement & {$getPropertyInputs: GetPropertyInputs}} */ ($e(\n arrayContents,\n '.arrayItems'\n ));\n\n const optionalFieldsetItems = $$e(\n arrayContents,\n '.arrayItems > fieldset:not([data-required])'\n );\n\n for (const optionalFieldsetItem of optionalFieldsetItems) {\n optionalFieldsetItem.remove();\n }\n\n if (sparse) {\n decrementItemIndex(arrayItems);\n } else {\n itemIndex = -1;\n }\n // Maybe not needed as removal would remove circular\n types.validateAllReferences({\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot)\n });\n }}}, ['x All']]\n ]]\n );\n\n const parentType = type;\n\n const div =\n /**\n * @type {HTMLDivElement & {\n * $addAndSetArrayElement:\n * import('../formats/structuredCloning.js').AddAndSetArrayElement,\n * $addArrayElement: AddArrayElement\n * $getArrayItems: GetArrayItems,\n * $getMapKeySelects?: GetMapKeySelects\n * }}\n */ (\n jml('div', /** @type {import('jamilih').JamilihAttributes} */ ({\n dataset: {type},\n // is: 'array-or-object-editor',\n $custom: {\n // eslint-disable-next-line @stylistic/max-len -- Long\n /** @type {import('../formats/structuredCloning.js').AddAndSetArrayElement} */\n $addAndSetArrayElement ({\n propName, type, value, bringIntoFocus, setAValue,\n schemaContent: schema, schemaIdx, mustBeOptional\n }) {\n if (parentType === 'map') {\n if (propName === '0') {\n this.$addArrayElement({\n propName,\n // At least needed when value supplied\n autoTrigger: false\n });\n const arrayItems = this.$getArrayItems();\n const keyTypeChoices = /**\n * @type {HTMLSelectElement & {\n * $setType: import('../typeChoices.js').SetType,\n * $getTypeRoot: import('../formatAndTypeChoices.js').\n * TypeRootGetter\n * }}\n */ (DOM.filterChildElements(\n arrayItems,\n [\n 'fieldset:last-of-type', 'legend',\n '.mapKeyHolder', 'select'\n ]\n )[0]);\n keyTypeChoices.$setType({\n type, baseValue: value, bringIntoFocus,\n avoidReport: true\n });\n\n // The key may itself be a map, etc.\n return keyTypeChoices.$getTypeRoot();\n }\n } else if (parentType === 'record') {\n this.$addArrayElement({\n propName, autoTrigger: false,\n required: false\n });\n } else {\n // console.log('SCHEMA123', schema);\n this.$addArrayElement({\n propName, schema, autoTrigger: false,\n schemaIdx,\n required: !mustBeOptional && schema && !schema.isOptional &&\n schema.type !== 'never'\n });\n }\n const typeChoices = this.$getTypeChoices();\n typeChoices.$setType({\n type, baseValue: value, bringIntoFocus,\n specificSchema:\n schema?.type === 'union' && schemaIdx !== undefined\n ? schema.options[schemaIdx]\n : schema,\n avoidReport: true\n });\n const root = typeChoices.$getTypeRoot();\n // If run for all, causes problems with running `Error.cause`\n // type twice and is inefficient;\n // currently put behind `setAValue` as we need to set a value\n // from `errorsSpecialType` (and `filelistType`)\n if (setAValue) {\n const typeObj =\n /** @type {import('../types.js').TypeObject} */ (\n types.getTypeObject(type)\n );\n if (typeObj.setValue) {\n typeObj.setValue({root, value});\n }\n }\n types.validate({\n type, root, topRoot,\n // We don't want focus when values auto-added\n avoidReport: true\n });\n return root;\n },\n\n /**\n * @typedef {() => Element} GetAddArrayElement\n */\n\n /** @type {GetAddArrayElement} */\n $getAddArrayElement () {\n const el = this.\n lastElementChild.firstElementChild.nextElementSibling;\n return sparse ? el.nextElementSibling : el;\n },\n /**\n * @type {AddArrayElement}\n * @this {HTMLDivElement & {\n * $getAddArrayElement: GetAddArrayElement\n * }}\n */\n // @ts-expect-error TS is apparently getting wrong $addArrayElement\n $addArrayElement ({\n propName, splice, alwaysFocus, required, schema, schemaIdx,\n autoTrigger\n }) {\n const addArrayElement = this.$getAddArrayElement();\n /**\n * @type {HTMLButtonElement & {\n * $addArrayElement: AddArrayElement,\n * $getArrayItems: GetArrayItems\n * }}\n */\n (addArrayElement).$addArrayElement({\n propName, splice, alwaysFocus, required, schema,\n schemaIdx,\n autoTrigger\n });\n },\n $getArrayItems () {\n const addArrayElement = this.$getAddArrayElement();\n return addArrayElement.previousElementSibling;\n },\n $getTypeChoices () {\n const arrayItems = this.$getArrayItems();\n return $e(\n arrayItems.lastElementChild,\n `fieldset > .typeChoices-${typeNamespace}` // Avoid keys\n );\n }\n },\n $on: {\n click (ev) {\n const e = /** @type {Event} */ (ev);\n // eslint-disable-next-line prefer-destructuring -- TS\n const target = /** @type {HTMLInputElement} */ (e.target);\n\n // We needed to stop preventing the default for the\n // invalid date checkbox; is this sufficient to prevent\n // other stray clicks apparently meant for the array\n // and object reference checking?\n if (![\n 'checkbox', 'radio', 'file',\n 'datetime-local',\n // For label radio clicks\n undefined\n ].includes(target.type)) {\n e.preventDefault();\n }\n }\n }\n }), /** @type {import('jamilih').JamilihChildren} */ ([\n [specificSchemaObject ? 'span' : 'b', {\n title: specificSchemaObject?.description ?? (DOM.initialCaps(\n /** @type {import('../types.js').AvailableType} */\n (type)\n ).replace(/s$/u, ''))\n }, [\n specificSchemaObject\n ? '—'\n : DOM.initialCaps(\n /** @type {import('../types.js').AvailableType} */\n (type)\n ).replace(/s$/u, '')\n ]],\n nbsp.repeat(2),\n type === 'filelist'\n ? ['input', {\n name: typeNamespace + '-filelist',\n multiple: true,\n type: 'file',\n $on: {\n /**\n * @this {HTMLInputElement}\n */\n change () {\n /* istanbul ignore if */\n if (!this.files) {\n return;\n }\n for (let i = 0; i < this.files.length; i++) {\n const file = this.files.item(i);\n\n div.$addAndSetArrayElement({\n propName: String(i),\n type: 'file',\n value: file,\n bringIntoFocus: false,\n setAValue: true\n });\n }\n }\n }\n }]\n : '',\n minusButton,\n arrayContents\n ]))\n );\n topRoot = topRoot || div;\n\n if (!objectValue && specificSchemaObject) {\n switch (type) {\n case 'object': {\n // See comment referencing `arrayType.js` in `typeChoices.js`\n if (!schemaFallingBack) {\n for (const [prop, val] of\n Object.entries(\n /** @type {import('zodex').SzObject} */ (\n specificSchemaObject\n /* istanbul ignore next -- Should always have `properties` */\n ).properties ?? {}\n )\n ) {\n if (!val.isOptional && val.type !== 'never') {\n div.$addArrayElement({propName: prop, required: true});\n }\n }\n }\n break;\n }\n case 'tuple': {\n // See comment referencing `arrayType.js` in `typeChoices.js`\n if (!schemaFallingBack) {\n const specificSchemaObj = /** @type {import('zodex').SzTuple} */ (\n specificSchemaObject\n );\n if (\n /** @type {import('zodex').SzTuple} */ (\n specificSchemaObject\n )?.items?.[0]?.type !== 'never'\n ) {\n for (const schema of specificSchemaObj.items) {\n div.$addArrayElement({schema, required: true});\n }\n }\n }\n break;\n }\n // case 'array': // None with schemas?\n case 'arrayNonindexKeys': {\n const {minLength = 0} = /** @type {import('zodex').SzArray} */ (\n specificSchemaObject\n );\n const arrayLengthInput =\n /** @type {HTMLInputElement & {$oldvalue: string}} */ (\n $e(div, '.arrayLength')\n );\n arrayLengthInput.value = String(minLength);\n arrayLengthInput.$oldvalue = String(minLength);\n\n for (let i = 0; i < minLength; i++) {\n div.$addArrayElement({required: true});\n }\n break;\n } case 'set': {\n // See comment referencing `arrayType.js` in `typeChoices.js`\n if (!schemaFallingBack) {\n const {minSize = 0} = /** @type {import('zodex').SzSet} */ (\n specificSchemaObject\n );\n for (let i = 0; i < minSize; i++) {\n div.$addArrayElement({required: true});\n }\n }\n break;\n } default:\n break;\n }\n }\n\n return [div];\n }\n};\n\nexport default arrayType;\n","import arrayType from './arrayType.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst tupleType = {\n option: ['Tuple'],\n array: true,\n regexEndings: [',', ']'],\n stringRegexBegin: /^Tuple\\[/u,\n stringRegexEnd: /^\\]/u,\n tuple: true,\n valueMatch (x) {\n return Array.isArray(x);\n },\n toValue (...args) {\n return /** @type {import('../types.js').ToValue} */ (\n arrayType.toValue\n ).apply(this, args);\n },\n getValue (...args) {\n return arrayType.getValue.apply(this, args);\n },\n getInput (...args) {\n return arrayType.getInput.apply(this, args);\n },\n viewUI ({...args}) {\n return arrayType.viewUI.call(this, {\n ...args, type: 'tuple'\n });\n },\n editUI ({...args}) {\n return arrayType.editUI.call(this, {\n ...args, type: 'tuple'\n });\n }\n};\n\nexport default tupleType;\n","import {toStringTag} from '../vendor-imports.js';\nimport arrayType from './arrayType.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst objectType = {\n option: ['Object'],\n regexEndings: [',', '}'],\n stringRegexBegin: /^\\{/u,\n stringRegexEnd: /^\\}/u,\n valueMatch (x) {\n return x && typeof x === 'object' &&\n // Exclude other special object types\n toStringTag(x) === 'Object';\n },\n toValue (...args) {\n return /** @type {import('../types.js').ToValue} */ (\n arrayType.toValue\n ).apply(this, args);\n },\n getValue (...args) {\n return arrayType.getValue.apply(this, args);\n },\n getInput (...args) {\n return arrayType.getInput.apply(this, args);\n },\n viewUI ({...args}) {\n return arrayType.viewUI.call(this, {\n ...args, type: 'object'\n });\n },\n editUI ({...args}) {\n return arrayType.editUI.call(this, {\n ...args, type: 'object'\n });\n }\n};\n\nexport default objectType;\n","import {toStringTag} from '../vendor-imports.js';\nimport arrayType from './arrayType.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst recordType = {\n option: ['Record'],\n regexEndings: [',', '}'],\n stringRegexBegin: /^Record\\{/u,\n stringRegexEnd: /^\\}/u,\n array: true,\n record: true,\n valueMatch (x) { // Like `object` type, can also match\n return x && typeof x === 'object' &&\n // Exclude other special object types\n toStringTag(x) === 'Object';\n },\n toValue (...args) {\n return /** @type {import('../types.js').ToValue} */ (\n arrayType.toValue\n ).apply(this, args);\n },\n getValue (...args) {\n return arrayType.getValue.apply(this, args);\n },\n getInput (...args) {\n return arrayType.getInput.apply(this, args);\n },\n viewUI ({...args}) {\n return arrayType.viewUI.call(this, {\n ...args, type: 'record'\n });\n },\n editUI ({...args}) {\n return arrayType.editUI.call(this, {\n ...args, type: 'record'\n });\n }\n};\n\nexport default recordType;\n","import {jml, toStringTag} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\n\n/**\n * @typedef {(\n * legitimateInvalid?: boolean|undefined\n * ) => void} SetValidity\n */\n\n/**\n * @type {import('../types.js').TypeObject & {\n * dateRegex: RegExp,\n * isInvalid: (cfg: {root: HTMLDivElement}) => boolean,\n * isValueInvalid: (\n * value: import('../formats.js').StructuredCloneValue\n * ) => boolean\n * valid?: true\n * }}\n */\nconst dateType = {\n option: ['Date'],\n // ISO Date string\n dateRegex: /^(?:\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d)$/u, // ([+-][0-2]\\d:[0-5]\\d|Z)\n // eslint-disable-next-line @stylistic/max-len -- Long\n // /^(?:\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z)?|(?:\\+|-)\\d{6}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z)$/u,\n stringRegex () {\n const regex = this.dateRegex;\n if (!this.valid) {\n const {source} = regex;\n return new RegExp('^' + '(?:InvalidDate)|' + source.slice(1), 'u');\n }\n return new RegExp(regex, 'u');\n },\n valueMatch (x) {\n return toStringTag(x) === 'Date';\n },\n toValue (s) {\n return {value: new Date(s)};\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ (\n $e(root, 'input[type=\"datetime-local\"]')\n );\n },\n setValue ({root, value}) {\n const notANum = value && Number.isNaN(value.getTime());\n if (notANum) {\n /** @type {HTMLElement & {$setValidity: SetValidity}} */ (\n $e(root, '.invalidDate')\n ).$setValidity(true);\n return;\n }\n\n const dateStr = new Date(Date.parse(value)).toISOString();\n /* istanbul ignore next -- See below */\n // eslint-disable-next-line @stylistic/max-len -- Long\n /* istanbul ignore next -- 6 digits year not reliable through `Date.parse` */\n this.getInput({root}).value = dateStr.length === 24\n ? dateStr.slice(0, -8)\n // eslint-disable-next-line @stylistic/max-len -- Long\n /* istanbul ignore next -- 6 digits year not reliable through `Date.parse` */\n : dateStr.slice(3, 13); // Will cut off ten/hundred thousand years\n },\n validate ({root}) {\n if (this.isInvalid({root})) {\n return {\n valid: true\n };\n }\n const val = this.getInput({root}).value;\n if (!val) {\n return {\n valid: false,\n message: 'Must not be empty`'\n };\n }\n\n return {\n valid: new RegExp(this.dateRegex, 'u').test(val),\n message: 'Must match a valid date'\n }; // Input shouldn't allow anyways\n },\n isInvalid ({root}) {\n return !this.valid && /** @type {HTMLInputElement} */ (\n $e(root, '.invalidDate')\n ).checked;\n },\n getValue ({root}) {\n if (this.isInvalid({root})) {\n return /** @type {import('../types.js').ToValue} */ (\n this.toValue\n )('NaN').value;\n }\n return /** @type {import('../types.js').ToValue} */ (\n this.toValue\n )(this.getInput({root}).value).value;\n },\n isValueInvalid (value) {\n return value && Number.isNaN(value.getTime());\n },\n viewUI ({value, specificSchemaObject}) {\n return !this.valid && this.isValueInvalid(value)\n ? ['i', {\n dataset: {type: 'date'}, class: 'InvalidDate',\n title: specificSchemaObject?.description ?? '(an InvalidDate)'\n }, ['InvalidDate']]\n : ['i', {\n dataset: {type: 'date'}, class: 'ValidDate',\n title: specificSchemaObject?.description ?? '(a `Date`)'\n }, [\n value.toISOString().slice(0, -8)\n ]];\n },\n // Change to default to `new Date()` when can't be `NaN`\n // value (keys)?\n editUI ({typeNamespace, specificSchemaObject, types, value}) {\n const dateSchemaObject = /** @type {import('zodex').SzDate} */ (\n specificSchemaObject\n );\n const val = value ?? (specificSchemaObject?.defaultValue\n ? new Date(specificSchemaObject?.defaultValue)\n : '');\n const notANum = this.isValueInvalid(val);\n const invalid = this.valid\n ? ''\n : jml('div', [\n ['label', [\n 'Invalid date',\n ['input', {\n type: 'checkbox',\n class: 'invalidDate',\n checked: notANum,\n name: `${typeNamespace}-invalidDate`,\n $custom: {\n /**\n * @type {SetValidity}\n */\n $setValidity (legitimateInvalid) {\n // console.log('legitimateInvalid', legitimateInvalid);\n if (legitimateInvalid === true) {\n /**\n * @type {HTMLInputElement & {\n * $setValidity: SetValidity\n * }}\n */ (\n this\n ).checked = true;\n }\n const label = /** @type {HTMLLabelElement} */ (\n /** @type {HTMLDivElement} */ (\n invalid\n ).previousElementSibling\n );\n label.hidden = Boolean(legitimateInvalid);\n const root = /** @type {HTMLDivElement} */ (\n label.parentElement\n );\n types.validate({type: 'date', root});\n }\n },\n $on: {\n click (/* e */) {\n /** @type {HTMLInputElement & {$setValidity: SetValidity}} */ (\n this\n ).$setValidity(/** @type {HTMLInputElement} */ (\n this\n ).checked);\n }\n }\n }]\n ]]\n ]);\n return ['div', {\n dataset: {type: this.valid ? 'ValidDate' : 'date'},\n title: specificSchemaObject?.description ?? 'Date'\n }, [\n ['label', {\n hidden: notANum\n }, [\n 'Date: ',\n ['input', {\n name: `${typeNamespace}-date`,\n type: 'datetime-local',\n // Required yyyy-MM-dd format\n value: !val || notANum\n ? ''\n : val.toISOString().slice(0, -8),\n min: dateSchemaObject?.min\n ? new Date(dateSchemaObject.min).toISOString().slice(0, -8)\n : undefined,\n max: dateSchemaObject?.max\n ? new Date(dateSchemaObject.max).toISOString().slice(0, -8)\n : undefined\n }]\n ]],\n invalid\n ]];\n }\n};\n\nexport default dateType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst enumType = {\n option: ['Enum'],\n stringRegex: /^Enum\\((.*)\\)$/u,\n valueMatch (x) {\n return typeof x === 'string';\n },\n toValue (s) {\n return {value: s.slice(1, -1)};\n },\n getInput ({root}) {\n return /** @type {HTMLSelectElement} */ ($e(root, 'select'));\n },\n setValue ({root, value}) {\n this.getInput({root}).value = value;\n },\n getValue ({root}) {\n return this.getInput({root}).value;\n },\n viewUI ({value, specificSchemaObject}) {\n return ['span', {\n dataset: {type: 'enum'},\n title: specificSchemaObject?.description ?? '(an enum)'\n }, [\n value\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value = ''}) {\n return ['div', {\n dataset: {type: 'enum'},\n title: specificSchemaObject?.description ?? 'Enum'\n }, [\n ['select', {\n name: `${typeNamespace}-enum`\n }, /** @type {import('zodex').SzEnum} */ (\n specificSchemaObject\n )?.values.map((val) => {\n return ['option', {\n selected: value\n ? value === val\n : specificSchemaObject?.defaultValue === val\n }, [val]];\n })]\n ]];\n }\n};\n\nexport default enumType;\n","import {toStringTag} from '../vendor-imports.js';\nimport arrayType from './arrayType.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst setType = {\n option: ['Set'],\n array: true,\n set: true,\n regexEndings: [',', ')'],\n stringRegexBegin: /^Set\\(/u,\n stringRegexEnd: /^\\)/u,\n valueMatch (x) {\n return toStringTag(x) === 'Set';\n },\n toValue (...args) {\n return /** @type {import('../types.js').ToValue} */ (\n arrayType.toValue\n ).apply(this, args);\n },\n getValue (...args) {\n return arrayType.getValue.apply(this, args);\n },\n getInput (...args) {\n return arrayType.getInput.apply(this, args);\n },\n viewUI ({...args}) {\n return arrayType.viewUI.call(this, {\n ...args, type: 'set'\n });\n },\n editUI ({...args}) {\n return arrayType.editUI.call(this, {\n ...args, type: 'set'\n });\n }\n};\n\nexport default setType;\n","import {toStringTag} from '../vendor-imports.js';\nimport arrayType from './arrayType.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst mapType = {\n option: ['Map'],\n array: true,\n map: true,\n regexEndings: [',', ')'],\n stringRegexBegin: /^Map\\(/u,\n stringRegexEnd: /^\\)/u,\n valueMatch (x) {\n return toStringTag(x) === 'Map';\n },\n toValue (...args) {\n return /** @type {import('../types.js').ToValue} */ (\n arrayType.toValue\n ).apply(this, args);\n },\n getValue (...args) {\n return arrayType.getValue.apply(this, args);\n },\n getInput (...args) {\n return arrayType.getInput.apply(this, args);\n },\n viewUI ({...args}) {\n return arrayType.viewUI.call(this, {\n ...args, type: 'map'\n });\n },\n editUI ({...args}) {\n return arrayType.editUI.call(this, {\n ...args, type: 'map'\n });\n }\n};\n\nexport default mapType;\n","import {$e} from '../utils/templateUtils.js';\n\nimport booleanType from './booleanType.js';\nimport numberType from './numberType.js';\nimport stringType from './stringType.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst literalType = {\n option: ['Literal'],\n stringRegex: /^Literal\\((.*)\\)$/u,\n valueMatch (x) {\n // const schema =\n // /** @type {import('zodex').SzLiteral<any>} */ (cfg?.schema);\n return (typeof x === 'boolean' || typeof x === 'number' ||\n typeof x === 'string'); // && (!schema || schema.value === x);\n },\n toValue (s) {\n const value = s === 'true'\n ? true\n : s === 'false'\n ? false\n : s.charAt(0) === '\"'\n ? s.slice(1, -1)\n : Number(s);\n return {value};\n },\n // Todo: Fix all the following methods up to `setValue` to work with children\n getInput ({root}) {\n return /** @type {HTMLTextAreaElement} */ ($e(root, 'input,textarea'));\n },\n setValue ({root, value}) {\n this.getInput({root}).value = value;\n },\n getValue ({root, stateObj}) {\n const innerTypeHolder = $e(root, '[data-type]');\n const typeObject = stateObj?.types?.getTypeObject?.(\n /** @type {import('../types.js').AvailableType} */ (\n innerTypeHolder?.dataset.type\n )\n );\n return /** @type {import('../types.js').TypeObject} */ (\n typeObject\n )?.getValue({root, stateObj});\n },\n viewUI ({value, specificSchemaObject}) {\n return ['span', {\n dataset: {type: 'literal'},\n title: specificSchemaObject?.description ?? `(a literal ${typeof value})`\n }, [`${value}`]];\n },\n editUI (arg) {\n const {specificSchemaObject} = arg;\n const {\n value: val\n } = /** @type {import('zodex').SzLiteral<any>} */ (specificSchemaObject);\n\n let specificLiteralEditUI;\n switch (typeof val) {\n case 'boolean':\n // arg.specificSchemaObject = {type: 'boolean'};\n specificLiteralEditUI = booleanType.editUI(arg);\n break;\n case 'number':\n // arg.specificSchemaObject = {type: 'number'};\n specificLiteralEditUI = numberType.editUI(arg);\n break;\n case 'string': default:\n // arg.specificSchemaObject = {type: 'string'};\n specificLiteralEditUI = stringType.editUI(arg);\n break;\n }\n\n return ['div', {dataset: {type: 'literal'}}, [\n specificLiteralEditUI\n ]];\n }\n};\n\nexport default literalType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst undefinedType = {\n stringRegex: /^undefined$/u,\n option: ['Explicit undefined'], // Explicit undefined only\n valueMatch (x) {\n return x === undefined;\n },\n toValue (/* _s */) {\n return {value: undefined};\n },\n getValue () {\n return /** @type {import('../types.js').ToValue} */ (\n this.toValue\n )('').value;\n },\n viewUI ({specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'undef'},\n title: specificSchemaObject?.description ?? '(an `undefined`)'\n }, ['undefined']];\n },\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n editUI ({typeNamespace, specificSchemaObject}) {\n return ['div', {\n dataset: {type: 'undef'},\n title: specificSchemaObject?.description ?? 'Undefined'\n }, [\n ['label', [\n 'Undefined',\n ['input', {\n type: 'checkbox',\n name: `${typeNamespace}-undef`,\n disabled: true,\n checked: true\n }]\n ]]\n ]];\n }\n};\n\nexport default undefinedType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst voidType = {\n stringRegex: /^void$/u,\n option: ['Void'],\n valueMatch (x) {\n return x === undefined;\n },\n toValue (/* _s */) {\n return {value: undefined};\n },\n getValue () {\n return /** @type {import('../types.js').ToValue} */ (\n this.toValue\n )('').value;\n },\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n viewUI ({specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'void'},\n title: specificSchemaObject?.description ?? '(a `void`)'\n }, ['void']];\n },\n editUI ({typeNamespace, specificSchemaObject}) {\n return ['div', {\n dataset: {type: 'void'},\n title: specificSchemaObject?.description ?? 'Void'\n }, [\n ['label', [\n 'Void',\n ['input', {\n type: 'checkbox',\n name: `${typeNamespace}-void`,\n checked: true,\n disabled: true\n }]\n ]]\n ]];\n }\n};\n\nexport default voidType;\n","import {jml, toStringTag} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject & {allowedFlags: string[]}}\n */\nconst regexpType = {\n option: ['RegExp'],\n stringRegex (nonGrouping) {\n const parenth = nonGrouping ? '(?:' : '(';\n return new RegExp(`^/${parenth}.*)/${parenth}[${\n this.allowedFlags.join('')\n }]{0,${\n this.allowedFlags.length\n }})$`, 'u');\n },\n valueMatch (x) {\n return toStringTag(x) === 'RegExp';\n },\n toValue (s) {\n /* istanbul ignore if */\n if (typeof this.stringRegex !== 'function') {\n throw new TypeError('Guard for TS');\n }\n const [, str, flags] = /** @type {RegExpMatchArray} */ (s.match(\n /** @type {Required<import('../types.js').TypeObject>} */ (\n this\n ).stringRegex()\n ));\n return {value: new RegExp(str, flags)};\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n setValue ({root, value}) {\n this.getInput({root}).value = value.source;\n /** @type {HTMLSelectElement & {$set: (flags: string[]) => void}} */\n (/** @type {Required<import('../types.js').TypeObject>} */ (\n this\n ).getSelect({root})).$set([...value.flags]);\n },\n getSelect ({root}) {\n return /** @type {HTMLSelectElement} */ ($e(root, 'select'));\n },\n validate ({root}) {\n try {\n this.getValue({root});\n return {valid: true};\n } catch (err) {\n return {\n valid: false,\n message: /** @type {Error} */ (err).message\n };\n }\n },\n getValue ({root}) {\n return new RegExp(\n this.getInput({root}).value, // .replace(/\\\\/g, '\\\\\\\\'),\n [...(/** @type {Required<import('../types.js').TypeObject>} */ (\n this\n )).getSelect({root}).selectedOptions].reduce((s, opt) => {\n return s + opt.value;\n }, '')\n );\n },\n allowedFlags: ['g', 'i', 'm', 'u', 'y', 's', 'v'],\n viewUI ({value, specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'regexp'},\n title: specificSchemaObject?.description ?? '(a `RegExp`)'\n }, [\n String(value)\n ]];\n },\n editUI ({\n typeNamespace, specificSchemaObject, types, value = {source: '', flags: ''}\n }) {\n // Todo (low): Add RegExp syntax highlighter\n const select = jml('select', {\n multiple: true, size: 5, $custom: {\n /**\n * @callback $Set\n * @param {string[]} valArr\n * @returns {void}\n */\n\n /** @type {$Set} */\n $set (valArr) { // A useful reusable method for multiple selects\n [...(\n /**\n * @type {HTMLSelectElement & {\n * $set: $Set\n * }}\n */ (\n this\n )\n ).options].forEach((opt) => {\n opt.selected = valArr.includes(opt.value);\n });\n }\n }\n }, this.allowedFlags.map((flag) => {\n return ['option', {\n selected: value.flags.includes(flag)\n }, [flag]];\n }));\n const root = jml('div', {\n dataset: {type: 'regexp'},\n title: specificSchemaObject?.description ?? 'RegExp'\n }, [\n ['label', [\n 'Source ',\n ['input', {\n name: `${typeNamespace}-regexp`, type: 'text',\n value: value.source\n }]\n ]],\n ['br'],\n ['label', [\n 'Flags ',\n select\n ]]\n ]);\n // Could be disallowed flags; we might instead try in\n // advance which will work\n select.addEventListener('change', () => {\n types.validate({type: 'regexp', root});\n });\n return [root];\n }\n};\n\nexport default regexpType;\n","import {toStringTag} from '../vendor-imports.js';\nimport {$e, $$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject & {ct: number}}\n */\nconst BooleanObjectType = {\n option: ['BooleanObject'],\n stringRegex: /^Boolean\\((.*)\\)$/u,\n valueMatch (x) {\n return toStringTag(x) === 'Boolean' && typeof x === 'object';\n },\n toValue (s) {\n return {\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line no-new-wrappers, unicorn/new-for-builtins -- Deliberate creation here\n value: new Boolean(s === 'true')\n };\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n getValue ({root}) {\n return /** @type {import('../types.js').ToValue} */ (\n this.toValue\n )(String(/** @type {HTMLInputElement} */ (\n this.getInput({root})\n ).checked)).value;\n },\n setValue ({root, value}) {\n const inputs = /** @type {HTMLInputElement[]} */ ($$e(root, 'input'));\n const input = inputs[value.valueOf() ? 0 : 1];\n input.checked = true;\n },\n viewUI ({value, specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'BooleanObject'},\n title: specificSchemaObject?.description ?? '(a Boolean Object)'\n }, [specificSchemaObject ? `${value}` : `Boolean(${value})`]];\n },\n ct: 0,\n editUI ({\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line no-new-wrappers, unicorn/new-for-builtins -- Deliberate creation here\n typeNamespace, specificSchemaObject, value = new Boolean(true)\n }) {\n this.ct++;\n return ['div', {\n dataset: {type: 'BooleanObject'},\n title: specificSchemaObject?.description ?? 'Boolean object'\n }, [\n ['label', [\n 'True',\n ['input', {\n type: 'radio', name: `${typeNamespace}-BooleanObject${this.ct}`,\n value: 'true', checked: value.valueOf()\n }]\n ]],\n ['label', [\n 'False',\n ['input', {\n type: 'radio',\n name: `${typeNamespace}-BooleanObject${this.ct}`,\n value: 'false', checked: !value.valueOf()\n }]\n ]]\n ]];\n }\n};\n\nexport default BooleanObjectType;\n","import {toStringTag} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\nimport numberType from './numberType.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst NumberObjectType = {\n option: ['NumberObject'],\n stringRegex: /^Number\\((.*)\\)$/u,\n valueMatch (x) {\n return toStringTag(x) === 'Number' && typeof x === 'object';\n },\n toValue (s) {\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line no-new-wrappers, unicorn/new-for-builtins -- Deliberate creation here\n return {value: new Number(s)};\n },\n validate ({root}) {\n return /** @type {Required<import('../types.js').TypeObject>} */ (\n numberType\n ).validate({root});\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n getValue ({root}) {\n return /** @type {import('../types.js').ToValue} */ (\n this.toValue\n )(this.getInput({root}).value).value;\n },\n setValue ({root, value}) {\n this.getInput({root}).value = String(value);\n },\n viewUI ({value, specificSchemaObject}) {\n return ['i', {\n dataset: {type: 'NumberObject'},\n title: specificSchemaObject?.description ?? '(a Number Object)'\n }, [\n specificSchemaObject ? `${value}` : `Number(${value})`\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value}) {\n return ['div', {\n dataset: {type: 'NumberObject'},\n title: specificSchemaObject?.description ?? 'Number object'\n }, [\n ['input', {\n name: `${typeNamespace}-NumberObject`,\n type: 'number',\n value,\n step: 'any'\n }]\n ]];\n }\n};\n\nexport default NumberObjectType;\n","import {toStringTag} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst StringObjectType = {\n stringRegex: /^String\\(([^)]*)\\)$/u,\n valueMatch (x) {\n return toStringTag(x) === 'String' && typeof x === 'object';\n },\n toValue (s) {\n // eslint-disable-next-line @stylistic/max-len -- Long\n /* eslint-disable no-new-wrappers, unicorn/new-for-builtins -- Deliberate creation here */\n return {value: new String(s)};\n // eslint-disable-next-line @stylistic/max-len -- Long\n /* eslint-enable no-new-wrappers, unicorn/new-for-builtins -- Deliberate creation here */\n },\n option: ['StringObject'],\n getInput ({root}) {\n return /** @type {HTMLTextAreaElement} */ ($e(root, 'textarea'));\n },\n getValue ({root}) {\n return /** @type {import('../types.js').ToValue} */ (\n this.toValue\n )(this.getInput({root}).value).value;\n },\n setValue ({root, value}) {\n this.getInput({root}).value = value;\n },\n viewUI ({value, specificSchemaObject}) {\n return ['span', {\n dataset: {type: 'StringObject'},\n title: specificSchemaObject?.description ?? '(a String Object)'\n }, [\n specificSchemaObject ? '' : ['i', ['String(']],\n ['span', [value.valueOf()]],\n specificSchemaObject ? '' : ['i', [')']]\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value = ''}) {\n return ['div', {\n dataset: {type: 'StringObject'},\n title: specificSchemaObject?.description ?? 'String object'\n }, [\n ['textarea', {name: `${typeNamespace}-StringObject`}, [value]]\n ]];\n }\n};\n\nexport default StringObjectType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').SuperTypeObject}\n */\nconst SpecialRealNumberSuperType = {\n option: ['Special Real Number', {title: '`Infinity`, `-Infinity`, `-0`'}],\n childTypes: ['infinity', 'negativeInfinity', 'negativeZero'],\n stringRegex: /^(?:-?Infinity|-0)$/u,\n valueMatch (x) {\n return Object.is(x, -0) || x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY;\n },\n toValue (s) {\n return {\n value: s === '-0'\n ? -0\n : s === 'Infinity'\n ? Number.POSITIVE_INFINITY\n : Number.NEGATIVE_INFINITY\n };\n },\n getSelect ({root}) {\n return /** @type {HTMLSelectElement} */ ($e(root, 'select'));\n },\n getValue ({root}) {\n return /** @type {import('../types.js').ToValue} */ (this.toValue)(\n /** @type {Required<import('../types.js').TypeObject>} */ (\n this\n ).getSelect({root}).value\n ).value;\n },\n setValue ({root, value}) {\n /** @type {Required<import('../types.js').TypeObject>} */ (\n this\n ).getSelect({root}).value = Object.is(value, -0) ? '-0' : String(value);\n },\n viewUI ({value, specificSchemaObject}) {\n const isNegativeZero = Object.is(value, -0);\n return ['i', {\n dataset: {type: 'SpecialRealNumber'},\n title: specificSchemaObject?.description ?? (isNegativeZero\n ? '(negative zero)'\n : `(${String(value)})`)\n }, [\n isNegativeZero\n ? '-0'\n : String(value)\n ]];\n },\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLSelectElement} */ ($e(root, 'select'));\n },\n editUI ({\n typeNamespace, specificSchemaObject, value = Number.POSITIVE_INFINITY\n }) {\n return ['div', {\n dataset: {type: 'SpecialRealNumber'},\n title: specificSchemaObject?.description ?? 'Special Real Number'\n }, [\n ['label', [\n ['select', {name: `${typeNamespace}-SpecialRealNumber`}, [\n ['option', {\n value: 'Infinity', selected: value === Number.POSITIVE_INFINITY\n }, ['Infinity']],\n ['option', {\n value: '-Infinity', selected: value === Number.NEGATIVE_INFINITY\n }, ['-Infinity']],\n ['option', {\n value: '-0', selected: Object.is(value, -0)\n }, ['-0']]\n ]]\n ]]\n ]];\n }\n};\n\nexport default SpecialRealNumberSuperType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').SuperTypeObject}\n */\nconst SpecialNumberSuperType = {\n option: ['Special Number', {title: '`NaN`, `Infinity`, `-Infinity`, `-0`'}],\n childTypes: ['infinity', 'negativeInfinity', 'nan', 'negativeZero'],\n stringRegex: /^(?:NaN|-?Infinity|-0)$/u,\n toValue (s) {\n return {\n value: s === '-0'\n ? -0\n : s === 'NaN'\n ? Number.NaN\n : s === 'Infinity'\n ? Number.POSITIVE_INFINITY\n : Number.NEGATIVE_INFINITY\n };\n },\n getSelect ({root}) {\n return /** @type {HTMLSelectElement} */ ($e(root, 'select'));\n },\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n return /** @type {HTMLSelectElement} */ ($e(root, 'select'));\n },\n getValue ({root}) {\n return /** @type {import('../types.js').ToValue} */ (this.toValue)(\n /** @type {Required<import('../types.js').TypeObject>} */ (\n this\n ).getSelect({root}).value\n ).value;\n },\n setValue ({root, value}) {\n /** @type {Required<import('../types.js').TypeObject>} */ (\n this\n ).getSelect({root}).value = Object.is(value, -0) ? '-0' : String(value);\n },\n viewUI ({value}) {\n return ['i', {dataset: {type: 'SpecialNumber'}}, [\n Object.is(value, -0) ? '-0' : String(value)\n ]];\n },\n editUI ({typeNamespace, value = Number.NaN}) {\n return ['div', {dataset: {type: 'SpecialNumber'}}, [\n ['label', [\n 'Special number: ',\n ['select', {\n name: `${typeNamespace}-SpecialNumber`\n }, [\n ['option', {\n value: 'NaN', selected: Number.isNaN(value)\n }, ['NaN']],\n ['option', {\n value: 'Infinity', selected: value === Number.POSITIVE_INFINITY\n }, ['Infinity']],\n ['option', {\n value: '-Infinity', selected: value === Number.NEGATIVE_INFINITY\n }, ['-Infinity']],\n ['option', {\n value: '-0', selected: Object.is(value, -0)\n }, ['-0']]\n ]]\n ]]\n ]];\n }\n};\n\nexport default SpecialNumberSuperType;\n","import {error as errorTypesonRegistry} from 'typeson-registry';\nimport {$e} from '../utils/templateUtils.js';\nimport {jml, toStringTag, hasConstructorOf} from '../vendor-imports.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst errorType = {\n option: ['Error'],\n stringRegex: /^Error\\((.*)\\)$/u,\n valueMatch (x) {\n return toStringTag(x) === 'Error' &&\n // Exclude special errors to let it be handled elsewhere\n hasConstructorOf(x, Error);\n },\n toValue (s) {\n const obj = JSON.parse(s);\n const errObj = /** @type {{revive: import('typeson-registry').Reviver}} */ (\n errorTypesonRegistry.error\n ).revive(obj, {});\n return {value: errObj};\n },\n getInput ({root}) { // Which one to get here?\n return /** @type {HTMLInputElement} */ ($e(root, 'input:not([type])'));\n },\n setValue ({root, value}) {\n if (typeof value.message === 'string') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.message:not([type])')\n ).value = value.message;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.message[type=checkbox]')\n ).click();\n }\n if (typeof value.name === 'string') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.name:not([type])')\n ).value = value.name;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.name[type=checkbox]')\n ).click();\n }\n if (typeof value.fileName === 'string') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.fileName:not([type])')\n ).value = value.fileName;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.fileName[type=checkbox]')\n ).click();\n }\n\n if (typeof value.lineNumber === 'number') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.lineNumber[type=number]')\n ).value = value.lineNumber;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.lineNumber[type=number]')\n ).value = '';\n }\n\n if (typeof value.columnNumber === 'number') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.columnNumber[type=number]')\n ).value = value.columnNumber;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.columnNumber[type=number]')\n ).value = '';\n }\n\n if (typeof value.stack === 'string') {\n /** @type {HTMLTextAreaElement} */ (\n $e(root, 'textarea.stack:not([type])')\n ).value = value.stack;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.stack[type=checkbox]')\n ).click();\n }\n\n setTimeout(() => {\n if (typeof value.cause === 'object') {\n /** @type {HTMLElement} */ ($e(root, '.cause')).click();\n /** @type {import('../types.js').TypeObjectSetValue} */ (\n this.setValue\n )({\n root: /** @type {HTMLDivElement} */ ($e(root, '.causeContents')),\n value: value.cause\n });\n }\n });\n },\n getValue ({root}) {\n /**\n * @type {{\n * name: string|undefined,\n * stack?: string|undefined,\n * cause?: unknown,\n * message?: string|undefined\n * fileName?: string,\n * lineNumber?: number|undefined,\n * columnNumber?: number|undefined\n * }}\n */\n let errObj;\n if (/** @type {HTMLInputElement} */ (\n $e(root, 'input.message[type=checkbox]')\n ).checked) {\n const message = /** @type {HTMLInputElement} */ (\n $e(root, 'input.message:not([type])')\n ).value;\n errObj = new Error(message);\n } else {\n // eslint-disable-next-line unicorn/error-message -- User requested\n errObj = new Error();\n errObj.message = undefined; // Force (at least needed for Chrome)\n }\n if (/** @type {HTMLInputElement} */ (\n $e(root, 'input.name[type=checkbox]')\n ).checked) {\n const name = /** @type {HTMLInputElement} */ (\n $e(root, 'input.name:not([type])')\n ).value;\n errObj.name = name;\n } else {\n errObj.name = undefined;\n }\n if (/** @type {HTMLInputElement} */ (\n $e(root, 'input.fileName[type=checkbox]')\n ).checked) {\n const fileName = /** @type {HTMLInputElement} */ (\n $e(root, 'input.fileName:not([type])')\n ).value;\n errObj.fileName = fileName;\n } else {\n errObj.fileName = undefined;\n }\n if (/** @type {HTMLInputElement} */ (\n $e(root, 'input.stack[type=checkbox]')\n ).checked) {\n const stack = /** @type {HTMLTextAreaElement} */ (\n $e(root, 'textarea.stack:not([type])')\n ).value;\n errObj.stack = stack;\n } else {\n errObj.stack = undefined;\n }\n\n const lineNumber = /** @type {HTMLInputElement} */ (\n $e(root, 'input.lineNumber[type=number]')\n ).value;\n errObj.lineNumber = lineNumber === '' ? undefined : Number(lineNumber);\n\n const columnNumber = /** @type {HTMLInputElement} */ (\n $e(root, 'input.columnNumber[type=number]')\n ).value;\n errObj.columnNumber = columnNumber === ''\n ? undefined\n : Number(columnNumber);\n\n const causeContents = /** @type {HTMLDivElement} */ (\n $e(root, '.causeContents')\n );\n if (causeContents.children.length) {\n errObj.cause = this.getValue({\n root: causeContents\n });\n }\n\n return errObj;\n },\n viewUI (\n {value: o, specificSchemaObject, types, format}\n ) {\n return /** @type {import('jamilih').JamilihArray} */ ([\n 'div', {dataset: {type: 'error'}}, [\n ['b', {\n class: 'emphasis',\n title: specificSchemaObject?.description ? '(an Error)' : undefined\n }, [\n specificSchemaObject?.description ?? 'Error'\n ]],\n typeof o.message === 'string'\n ? ['div', [['b', ['Message: ']], ['span', [o.message]]]]\n : [],\n typeof o.name === 'string'\n ? ['div', [['b', ['Name: ']], ['span', [o.name]]]]\n : [],\n typeof o.fileName === 'string'\n ? ['div', [['b', ['File name: ']], ['span', [o.fileName]]]]\n : [],\n typeof o.lineNumber === 'number'\n ? ['div', [['b', ['Line number: ']], ['span', [o.lineNumber]]]]\n : [],\n typeof o.columnNumber === 'number'\n ? ['div', [['b', ['Column number: ']], ['span', [o.columnNumber]]]]\n : [],\n typeof o.stack === 'string'\n ? ['div', [['b', ['Stack: ']], ['span', [o.stack]]]]\n : [],\n ['b', ['Cause: ']], ['div', {class: 'causeHolder'}, [\n ['button', {$on: {click (/** @type {Event} */ e) {\n e.preventDefault();\n const {target} = e;\n const causeContents = /** @type {HTMLDivElement} */ (\n /** @type {HTMLElement} */ (target).nextElementSibling\n );\n causeContents.hidden = !causeContents.hidden;\n /** @type {HTMLElement} */ (\n target\n ).textContent = causeContents.hidden ? '+' : '-';\n }}}, ['-']],\n ['div', {class: 'causeContents'}, [\n o.cause\n ? this.viewUI({\n format,\n value: o.cause,\n types\n })\n : ''\n ]]\n ]]\n ]\n ]);\n },\n editUI ({typeNamespace, types, specificSchemaObject, value = {\n message: '',\n name: '',\n fileName: '',\n lineNumber: '',\n columnNumber: '',\n stack: '',\n cause: undefined\n }}) {\n /**\n * @param {Event} e\n * @this {HTMLInputElement}\n * @returns {void}\n */\n const click = function (e) {\n /** @type {HTMLElement} */ (\n /** @type {HTMLElement} */ (\n this.parentNode\n ).nextElementSibling\n // eslint-disable-next-line @stylistic/space-unary-ops -- TS\n ).hidden = !\n /** @type {HTMLInputElement} */\n (e.target).checked;\n };\n // eslint-disable-next-line consistent-this -- Clearer\n const component = this;\n\n if (typeof value.cause === 'object') {\n setTimeout(() => {\n /** @type {HTMLElement} */ ($e(\n div, '.cause'\n )).click();\n });\n }\n\n const div = jml(\n 'div',\n {\n dataset: {type: 'error'},\n title: specificSchemaObject?.description ?? 'Error'\n },\n /** @type {import('jamilih').JamilihChildren} */ ([\n ['div', [\n ['label', [\n 'Message? ',\n ['input', {\n class: 'message',\n type: 'checkbox', checked: typeof value.message === 'string',\n $on: {\n click\n }\n }]\n ]],\n ' ',\n ['label', {\n hidden: typeof value.message !== 'string'\n }, [\n 'Message ',\n ['input', {\n class: 'message',\n name: `${typeNamespace}-error-message`,\n value: value.message\n }]\n ]]\n ]],\n ['div', [\n ['label', [\n 'Name? ',\n ['input', {\n class: 'name',\n type: 'checkbox', checked: typeof value.name === 'string',\n $on: {\n click\n }\n }]\n ]],\n ' ',\n ['label', {\n hidden: typeof value.name !== 'string'\n }, [\n 'Name ',\n ['input', {\n class: 'name',\n name: `${typeNamespace}-error-name`,\n value: value.name\n }]\n ]]\n ]],\n ['br'],\n ['div', [\n ['label', [\n 'File name? ',\n ['input', {\n class: 'fileName',\n type: 'checkbox', checked: typeof value.fileName === 'string',\n $on: {\n click\n }\n }]\n ]],\n ' ',\n ['label', {\n hidden: typeof value.fileName !== 'string'\n }, [\n 'File name ',\n ['input', {\n class: 'fileName',\n name: `${typeNamespace}-error-fileName`,\n value: value.fileName\n }]\n ]]\n ]],\n ['label', [\n 'Line number ',\n ['input', {\n class: 'lineNumber',\n name: `${typeNamespace}-error-lineNumber`,\n type: 'number', step: 'any', value: value.lineNumber\n }]\n ]],\n ['br'],\n ['label', [\n 'Column number ',\n ['input', {\n class: 'columnNumber',\n name: `${typeNamespace}-error-columnNumber`,\n type: 'number', step: 'any', value: value.columnNumber\n }]\n ]],\n ['div', [\n ['label', [\n 'Stack? ',\n ['input', {\n class: 'stack',\n type: 'checkbox', checked: typeof value.stack === 'string',\n $on: {\n click\n }\n }]\n ]],\n ['label', {\n hidden: typeof value.stack !== 'string'\n }, [\n 'Stack ',\n ['textarea', {\n class: 'stack',\n name: `${typeNamespace}-error-stack`\n }, [\n value.stack\n ]]\n ]]\n ]],\n ['label', [\n 'Cause? ',\n ['input', {\n class: 'cause',\n type: 'checkbox',\n $on: {\n click (e) {\n click.call(/** @type {HTMLInputElement} */ (this), e);\n const causeHolder = /** @type {Element} */ (\n /** @type {Element} */ (\n this.parentElement\n ).nextElementSibling\n );\n const causeContents = $e(causeHolder, '.causeContents');\n if (!causeContents?.children.length) {\n const editui = component.editUI({\n typeNamespace,\n types,\n value: value.cause\n });\n jml(...editui, causeContents);\n }\n }\n }\n }]\n ]],\n ['div', {class: 'causeHolder', hidden: true}, [\n ['label', ['Cause ']],\n ['button', {$on: {click (/** @type {Event} */ e) {\n e.preventDefault();\n const {target} = e;\n const causeContents = /** @type {HTMLDivElement} */ ($e(\n /** @type {HTMLElement} */\n (/** @type {HTMLElement} */ (target).closest('.causeHolder')),\n '.causeContents'\n ));\n causeContents.hidden = !causeContents.hidden;\n /** @type {HTMLElement} */ (\n target\n ).textContent = causeContents.hidden ? '+' : '-';\n }}}, ['-']],\n ['div', {class: 'causeContents'}]\n ]]\n ])\n );\n\n return [div];\n }\n};\n\nexport default errorType;\n","/* globals InternalError -- Non-standard */\nimport {errors as errorsTypesonRegistry} from 'typeson-registry';\nimport {$e} from '../utils/templateUtils.js';\nimport {jml, hasConstructorOf} from '../vendor-imports.js';\nimport arrayType from '../fundamentalTypes/arrayType.js';\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @param {object} obj\n * @returns {string}\n */\nfunction getConstructor (obj) {\n const str = Function.prototype.toString.call(obj);\n return str.slice(9, str.indexOf('('));\n}\n\n/**\n * @typedef {ErrorConstructor|AggregateErrorConstructor} SpecialErrorType\n */\n\n/** @type {Map<string, SpecialErrorType>} */\nconst specialErrorsMap = new Map([\n ['TypeError', TypeError],\n ['RangeError', RangeError],\n ['SyntaxError', SyntaxError],\n ['ReferenceError', ReferenceError],\n ['EvalError', EvalError],\n ['URIError', URIError]\n]);\nif (typeof AggregateError !== 'undefined') {\n specialErrorsMap.set('AggregateError', AggregateError);\n}\n\n/* istanbul ignore next 5 */\n// @ts-expect-error Only use if available\nif (typeof InternalError !== 'undefined') {\n // @ts-expect-error Only use if available\n specialErrorsMap.set('InternalError', InternalError);\n}\n\nconst specialErrors = [...specialErrorsMap.keys()];\n\n/**\n * @type {import('../types.js').SuperTypeObject}\n */\nconst errorsSpecialType = {\n option: ['Special errors'],\n valueMatch (x) {\n return [\n TypeError, RangeError, SyntaxError, ReferenceError,\n EvalError, URIError,\n AggregateError\n ].some((Ctor) => hasConstructorOf(x, Ctor));\n },\n childTypes: specialErrors.map((err) => {\n return err.toLowerCase();\n }),\n stringRegex: new RegExp(\n '^(?<errorClass>' + specialErrors.join('|') +\n String.raw`)\\((?<innerContent>.*)\\)$`, 'u'\n ),\n toValue (s, rootInfo) {\n /* istanbul ignore next -- Just a guard */\n const {groups: {\n errorClass\n /* istanbul ignore next -- Should always be found */\n } = {}} = /** @type {RegExpMatchArray} */ (\n /** @type {import('../types.js').RootInfo} */ (rootInfo).match\n );\n\n const obj = JSON.parse(s);\n const errObj = /** @type {{revive: import('typeson-registry').Reviver}} */ (\n errorsTypesonRegistry[errorClass.toLowerCase()]\n ).revive(obj, {});\n return {value: errObj};\n },\n getInput ({root}) { // Which one to get here?\n return /** @type {HTMLInputElement} */ ($e(root, 'input:not([type])'));\n },\n setValue ({root, value}) {\n const errorType =\n /**\n * @type {HTMLSelectElement & {\n * $hideAggregateErrorsLabel: () => void\n * }}\n */ (\n $e(root, '.errorType')\n );\n errorType.value = getConstructor(value.constructor);\n errorType.$hideAggregateErrorsLabel();\n\n if (typeof value.message === 'string') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.message:not([type])')\n ).value = value.message;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.message[type=checkbox]')\n ).click();\n }\n if (typeof value.name === 'string') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.name:not([type])')\n ).value = value.name;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.name[type=checkbox]')\n ).click();\n }\n if (typeof value.fileName === 'string') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.fileName:not([type])')\n ).value = value.fileName;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.fileName[type=checkbox]')\n ).click();\n }\n\n if (typeof value.lineNumber === 'number') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.lineNumber[type=number]')\n ).value = value.lineNumber;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.lineNumber[type=number]')\n ).value = '';\n }\n\n if (typeof value.columnNumber === 'number') {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.columnNumber[type=number]')\n ).value = value.columnNumber;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.columnNumber[type=number]')\n ).value = '';\n }\n\n if (typeof value.stack === 'string') {\n /** @type {HTMLTextAreaElement} */ (\n $e(root, 'textarea.stack:not([type])')\n ).value = value.stack;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, 'input.stack[type=checkbox]')\n ).click();\n }\n\n setTimeout(() => {\n if (typeof value.cause === 'object') {\n /** @type {HTMLElement} */ ($e(root, '.cause')).click();\n /** @type {import('../types.js').TypeObjectSetValue} */ (\n this.setValue\n )({\n root: /** @type {HTMLDivElement} */ ($e(root, '.causeContents')),\n value: value.cause\n });\n }\n\n if (Array.isArray(value.errors)) {\n const aggregateErrors =\n /**\n * @type {HTMLElement & {\n * $emptyAggregateErrorsContents: () => void,\n * $populateContents: (errs: unknown[]) => void\n * }}\n */ (\n $e(root, 'input.aggregateErrors')\n );\n aggregateErrors.click();\n aggregateErrors.$emptyAggregateErrorsContents();\n aggregateErrors.$populateContents(value.errors);\n }\n });\n },\n getValue ({root, stateObj}) {\n const UserErrorType = specialErrorsMap.get(\n /** @type {HTMLSelectElement} */ (\n $e(root, '.errorType')\n ).value\n );\n if (!UserErrorType) {\n throw new Error('Bad error type');\n }\n\n /**\n * @type {{\n * message?: string|undefined\n * name?: string|undefined\n * fileName?: string|undefined\n * stack?: string|undefined,\n * lineNumber?: number|undefined\n * columnNumber?: number|undefined\n * cause?: unknown|undefined\n * }}\n */\n let errObj;\n if (/** @type {HTMLInputElement} */ (\n $e(root, 'input.message[type=checkbox]')\n ).checked) {\n const message = /** @type {HTMLInputElement} */ (\n $e(root, 'input.message:not([type])')\n ).value;\n\n if (getConstructor(UserErrorType) === 'AggregateError') {\n const UET = /** @type {AggregateErrorConstructor} */ (UserErrorType);\n const errorRoot =\n /** @type {HTMLElement} */ ($e(\n root, '.aggregateErrorsContents'\n )).firstElementChild;\n\n const errors = arrayType.getValue({\n stateObj,\n root: /** @type {HTMLDivElement} */ (errorRoot)\n });\n errObj = new UET(errors, message);\n } else {\n const UET = /** @type {TypeErrorConstructor} */ (UserErrorType);\n errObj = new UET(message);\n }\n } else {\n if (getConstructor(UserErrorType) === 'AggregateError') {\n const UET = /** @type {AggregateErrorConstructor} */ (UserErrorType);\n const errorRoot =\n /** @type {HTMLElement} */ ($e(\n root, '.aggregateErrorsContents'\n )).firstElementChild;\n const errors = arrayType.getValue({\n stateObj,\n root: /** @type {HTMLDivElement} */ (errorRoot)\n });\n errObj = new UET(errors);\n } else {\n const UET = /** @type {TypeErrorConstructor} */ (UserErrorType);\n errObj = new UET();\n }\n errObj.message = undefined; // Force (at least needed for Chrome)\n }\n if (/** @type {HTMLInputElement} */ (\n $e(root, 'input.name[type=checkbox]')\n ).checked) {\n const name = /** @type {HTMLInputElement} */ (\n $e(root, 'input.name:not([type])')\n ).value;\n errObj.name = name;\n } else {\n errObj.name = undefined;\n }\n if (/** @type {HTMLInputElement} */ (\n $e(root, 'input.fileName[type=checkbox]')\n ).checked) {\n const fileName = /** @type {HTMLInputElement} */ (\n $e(root, 'input.fileName:not([type])')\n ).value;\n errObj.fileName = fileName;\n } else {\n errObj.fileName = undefined;\n }\n if (/** @type {HTMLInputElement} */ (\n $e(root, 'input.stack[type=checkbox]')\n ).checked) {\n const stack = /** @type {HTMLTextAreaElement} */ (\n $e(root, 'textarea.stack:not([type])')\n ).value;\n errObj.stack = stack;\n } else {\n errObj.stack = undefined;\n }\n\n const lineNumber = /** @type {HTMLInputElement} */ (\n $e(root, 'input.lineNumber[type=number]')\n ).value;\n errObj.lineNumber = lineNumber === '' ? undefined : Number(lineNumber);\n\n const columnNumber = /** @type {HTMLInputElement} */ (\n $e(root, 'input.columnNumber[type=number]')\n ).value;\n errObj.columnNumber = columnNumber === ''\n ? undefined\n : Number(columnNumber);\n\n const causeContents = /** @type {HTMLDivElement} */ (\n $e(root, '.causeContents')\n );\n if (causeContents.children.length) {\n errObj.cause = this.getValue({\n stateObj,\n root: causeContents\n });\n }\n\n return errObj;\n },\n viewUI (\n {value: o, types, format, specificSchemaObject, typeNamespace, resultType}\n ) {\n const constructor = getConstructor(o.constructor);\n return /** @type {import('jamilih').JamilihArray} */ ([\n 'div', {\n dataset: {type: 'errors'},\n title: specificSchemaObject?.description\n ? `(an Error ${constructor})`\n : undefined\n }, [\n specificSchemaObject?.description ??\n ['div', [['b', ['Error type: ']], ['span', [\n constructor\n ]]]],\n typeof o.message === 'string'\n ? ['div', [['b', ['Message: ']], ['span', [o.message]]]]\n : [],\n typeof o.name === 'string'\n ? ['div', [['b', ['Name: ']], ['span', [o.name]]]]\n : [],\n typeof o.fileName === 'string'\n ? ['div', [['b', ['File name: ']], ['span', [o.fileName]]]]\n : [],\n typeof o.lineNumber === 'number'\n ? ['div', [['b', ['Line number: ']], ['span', [o.lineNumber]]]]\n : [],\n typeof o.columnNumber === 'number'\n ? ['div', [['b', ['Column number: ']], ['span', [o.columnNumber]]]]\n : [],\n typeof o.stack === 'string'\n ? ['div', [['b', ['Stack: ']], ['span', [o.stack]]]]\n : [],\n ['b', ['Cause: ']], ['div', {class: 'causeHolder'}, [\n ['button', {$on: {click (/** @type {Event} */ e) {\n e.preventDefault();\n const {target} = e;\n const causeContents = /** @type {HTMLDivElement} */ (\n /** @type {HTMLElement} */ (target).nextElementSibling\n );\n causeContents.hidden = !causeContents.hidden;\n /** @type {HTMLElement} */ (\n target\n ).textContent = causeContents.hidden ? '+' : '-';\n }}}, ['-']],\n ['div', {class: 'causeContents'}, [\n o.cause\n ? this.viewUI({\n format,\n value: o.cause,\n types\n })\n : ''\n ]]\n ]],\n constructor === 'AggregateError'\n ? ['div', [\n ['b', ['Errors ']],\n ['div', {class: 'aggregateErrorsHolder'}, [\n ['button', {$on: {click (/** @type {Event} */ e) {\n e.preventDefault();\n const {target} = e;\n const aggregateErrorsContents = /** @type {HTMLDivElement} */ (\n /** @type {HTMLElement} */ (target).nextElementSibling\n );\n aggregateErrorsContents.hidden =\n !aggregateErrorsContents.hidden;\n /** @type {HTMLElement} */ (\n target\n ).textContent = aggregateErrorsContents.hidden ? '+' : '-';\n }}}, ['-']],\n ['div', {class: 'aggregateErrorsContents'}, [\n /* istanbul ignore next -- Just a guard */\n (o.errors\n ? (() => {\n const [div] = arrayType.viewUI({\n typeNamespace, resultType, format,\n type: 'arrayNonindexKeys',\n value: [],\n types\n });\n\n /** @type {Error[]} */\n (o.errors).forEach((error, idx) => {\n /**\n * @type {HTMLDivElement & {\n * $addAndSetArrayElement:\n * import('../formats/structuredCloning.js').\n * AddAndSetArrayElement\n * }}\n */\n (div).$addAndSetArrayElement({\n propName: String(idx),\n type: getConstructor(error.constructor) === 'Error'\n ? 'error'\n : 'errors',\n value: error,\n bringIntoFocus: false\n });\n });\n return div;\n })()\n /* istanbul ignore next -- Just a guard */\n : '')\n ]]\n ]]\n ]]\n : ''\n ]\n ]);\n },\n editUI ({\n typeNamespace,\n specificSchemaObject,\n types,\n\n // Pass these to `errors` array\n buildTypeChoices,\n format,\n topRoot,\n bringIntoFocus,\n\n value = {\n message: '',\n name: '',\n fileName: '',\n lineNumber: '',\n columnNumber: '',\n stack: '',\n cause: undefined,\n errors: undefined\n }\n }) {\n /**\n * @param {Event} e\n * @this {HTMLInputElement}\n * @returns {void}\n */\n const click = function (e) {\n /** @type {HTMLElement} */ (\n /** @type {HTMLElement} */ (\n this.parentNode\n ).nextElementSibling\n // eslint-disable-next-line @stylistic/space-unary-ops -- TS\n ).hidden = !\n /** @type {HTMLInputElement} */\n (e.target).checked;\n };\n // eslint-disable-next-line consistent-this -- Clearer\n const component = this;\n\n if (typeof value.cause === 'object') {\n setTimeout(() => {\n /** @type {HTMLElement} */ ($e(\n div, '.cause'\n )).click();\n });\n }\n\n if (Array.isArray(value.errors)) {\n setTimeout(() => {\n /** @type {HTMLElement} */ ($e(\n div, 'input.aggregateErrors'\n )).click();\n });\n }\n\n const div = jml(\n 'div',\n {\n dataset: {type: 'errors'},\n title: specificSchemaObject?.description ?? 'Special error'\n },\n /** @type {import('jamilih').JamilihChildren} */ ([\n ['div', [\n ['label', [\n 'Special error type ',\n ['select', {\n class: 'errorType',\n $custom: {\n /**\n * @this {HTMLSelectElement}\n */\n $hideAggregateErrorsLabel () {\n const aggregateErrorsLabel =\n /** @type {HTMLLabelElement} */ ($e(\n /** @type {Element} */\n (this.parentElement?.closest('div[data-type=errors]')),\n 'label.aggregateErrors'\n ));\n aggregateErrorsLabel.hidden =\n /** @type {HTMLSelectElement} */ (\n this\n ).value !== 'AggregateError';\n }\n },\n $on: {\n /**\n * @this {HTMLSelectElement & {\n * $hideAggregateErrorsLabel: () => void\n * }}\n */\n change () {\n this.$hideAggregateErrorsLabel();\n }\n }\n }, [\n ['option', {value: ''}, ['Select an error type']],\n ...specialErrors.map((errorType) => {\n return ['option', {\n selected: errorType === getConstructor(value.constructor)\n ? 'selected'\n : undefined\n }, [\n errorType\n ]];\n })\n ]]\n ]],\n ['br'],\n ['label', [\n 'Message? ',\n ['input', {\n class: 'message',\n type: 'checkbox', checked: typeof value.message === 'string',\n $on: {\n click\n }\n }]\n ]],\n ' ',\n ['label', {\n hidden: typeof value.message !== 'string'\n }, [\n 'Message ',\n ['input', {\n class: 'message',\n name: `${typeNamespace}-errors-message`,\n value: value.message\n }]\n ]]\n ]],\n ['div', [\n ['label', [\n 'Name? ',\n ['input', {\n class: 'name',\n type: 'checkbox', checked: typeof value.name === 'string',\n $on: {\n click\n }\n }]\n ]],\n ' ',\n ['label', {\n hidden: typeof value.name !== 'string'\n }, [\n 'Name ',\n ['input', {\n class: 'name',\n name: `${typeNamespace}-errors-name`,\n value: value.name\n }]\n ]]\n ]],\n ['br'],\n ['div', [\n ['label', [\n 'File name? ',\n ['input', {\n class: 'fileName',\n type: 'checkbox', checked: typeof value.fileName === 'string',\n $on: {\n click\n }\n }]\n ]],\n ' ',\n ['label', {\n hidden: typeof value.fileName !== 'string'\n }, [\n 'File name ',\n ['input', {\n class: 'fileName',\n name: `${typeNamespace}-errors-fileName`,\n value: value.fileName\n }]\n ]]\n ]],\n ['label', [\n 'Line number ',\n ['input', {\n class: 'lineNumber',\n name: `${typeNamespace}-errors-lineNumber`,\n type: 'number', step: 'any', value: value.lineNumber\n }]\n ]],\n ['br'],\n ['label', [\n 'Column number ',\n ['input', {\n class: 'columnNumber',\n name: `${typeNamespace}-errors-columnNumber`,\n type: 'number', step: 'any', value: value.columnNumber\n }]\n ]],\n ['div', [\n ['label', [\n 'Stack? ',\n ['input', {\n class: 'stack',\n type: 'checkbox', checked: typeof value.stack === 'string',\n $on: {\n click\n }\n }]\n ]],\n ['label', {\n hidden: typeof value.stack !== 'string'\n }, [\n 'Stack ',\n ['textarea', {\n class: 'stack',\n name: `${typeNamespace}-errors-stack`\n }, [\n value.stack ?? ''\n ]]\n ]]\n ]],\n ['label', [\n 'Cause? ',\n ['input', {\n class: 'cause',\n type: 'checkbox',\n $on: {\n click (e) {\n click.call(/** @type {HTMLInputElement} */ (this), e);\n const causeHolder = /** @type {Element} */ (\n /** @type {Element} */ (\n this.parentElement\n ).nextElementSibling\n );\n const causeContents = $e(causeHolder, '.causeContents');\n if (!causeContents?.children.length) {\n const editui = component.editUI({\n buildTypeChoices,\n typeNamespace,\n types,\n value: value.cause\n });\n jml(...editui, causeContents);\n }\n }\n }\n }]\n ]],\n ['div', {class: 'causeHolder', hidden: true}, [\n ['label', ['Cause ']],\n ['button', {$on: {click (/** @type {Event} */ e) {\n e.preventDefault();\n const {target} = e;\n const causeContents = /** @type {HTMLDivElement} */ ($e(\n /** @type {HTMLElement} */\n (/** @type {HTMLElement} */ (target).closest('.causeHolder')),\n '.causeContents'\n ));\n causeContents.hidden = !causeContents.hidden;\n /** @type {HTMLElement} */ (\n target\n ).textContent = causeContents.hidden ? '+' : '-';\n }}}, ['-']],\n ['div', {class: 'causeContents'}]\n ]],\n ['br'],\n ['label', {class: 'aggregateErrors'}, {\n hidden: !value.errors\n }, [\n 'Aggregate errors? ',\n ['input', {\n class: 'aggregateErrors',\n type: 'checkbox',\n $custom: {\n /**\n * @this {HTMLInputElement}\n */\n $emptyAggregateErrorsContents () {\n const aggregateErrorsHolder = /** @type {Element} */ (\n /** @type {Element} */ (\n this.parentElement\n ).nextElementSibling\n );\n const aggregateErrorsContents = $e(\n aggregateErrorsHolder, '.aggregateErrorsContents'\n );\n while (aggregateErrorsContents?.firstChild) {\n aggregateErrorsContents?.firstChild.remove();\n }\n },\n\n /**\n * @param {Error[]} errors\n * @this {HTMLInputElement}\n */\n $populateContents (errors) {\n const aggregateErrorsHolder = /** @type {Element} */ (\n /** @type {Element} */ (\n this.parentElement\n ).nextElementSibling\n );\n const aggregateErrorsContents = $e(\n aggregateErrorsHolder, '.aggregateErrorsContents'\n );\n if (!aggregateErrorsContents?.children.length) {\n const [editui] = arrayType.editUI({\n typeNamespace, types, buildTypeChoices, format,\n type: 'array',\n topRoot, bringIntoFocus,\n forcedState: 'errorsArray',\n value: []\n });\n\n errors.forEach((error, idx) => {\n /**\n * @type {HTMLDivElement & {\n * $addAndSetArrayElement:\n * import('../formats/structuredCloning.js').\n * AddAndSetArrayElement\n * }}\n */\n (editui).$addAndSetArrayElement({\n propName: String(idx),\n type: getConstructor(error.constructor) === 'Error'\n ? 'error'\n : 'errors',\n value: error,\n bringIntoFocus: false,\n setAValue: true\n });\n });\n\n jml(editui, aggregateErrorsContents);\n }\n }\n },\n $on: {\n click (e) {\n click.call(/** @type {HTMLInputElement} */ (this), e);\n const that =\n /**\n * @type {HTMLInputElement & {\n * $populateContents: (errs: unknown[]) => void\n * }}\n */\n (this);\n if (value.errors) {\n (that).$populateContents(value.errors);\n } else {\n (that).$populateContents([\n {\n message: '',\n name: '',\n stack: ''\n }\n ]);\n }\n }\n }\n }]\n ]],\n ['div', {class: 'aggregateErrorsHolder', hidden: true}, [\n ['label', ['Aggregate errors ']],\n ['button', {$on: {click (/** @type {Event} */ e) {\n e.preventDefault();\n const {target} = e;\n const aggregateErrorsContents = /** @type {HTMLDivElement} */ ($e(\n /** @type {HTMLElement} */\n (/** @type {HTMLElement} */ (\n target\n ).closest('.aggregateErrorsHolder')),\n '.aggregateErrorsContents'\n ));\n aggregateErrorsContents.hidden = !aggregateErrorsContents.hidden;\n /** @type {HTMLElement} */ (\n target\n ).textContent = aggregateErrorsContents.hidden ? '+' : '-';\n }}}, ['-']],\n ['div', {class: 'aggregateErrorsContents'}]\n ]]\n ])\n );\n\n return [div];\n }\n};\n\nexport default errorsSpecialType;\n","/** @type {AudioContext} */\nlet audioCtx;\n/**\n * @param {MediaStream} stream\n * @param {HTMLCanvasElement} canvas\n * @see Adapted from {@link https://mdn.github.io/dom-examples/media/web-dictaphone/}\n * @returns {void}\n */\nfunction visualize (stream, canvas) {\n if (!audioCtx) {\n audioCtx = new AudioContext();\n }\n const canvasCtx = /** @type {CanvasRenderingContext2D} */ (\n canvas.getContext('2d')\n );\n\n const source = audioCtx.createMediaStreamSource(stream);\n\n const analyser = audioCtx.createAnalyser();\n analyser.fftSize = 2048;\n const bufferLength = analyser.frequencyBinCount;\n const dataArray = new Uint8Array(bufferLength);\n\n source.connect(analyser);\n // analyser.connect(audioCtx.destination);\n\n draw();\n\n /**\n * @returns {void}\n */\n function draw () {\n const WIDTH = canvas.width;\n const HEIGHT = canvas.height;\n\n requestAnimationFrame(draw);\n\n analyser.getByteTimeDomainData(dataArray);\n\n canvasCtx.fillStyle = 'rgb(200, 200, 200)';\n canvasCtx.fillRect(0, 0, WIDTH, HEIGHT);\n\n canvasCtx.lineWidth = 2;\n canvasCtx.strokeStyle = 'rgb(0, 0, 0)';\n\n canvasCtx.beginPath();\n\n const sliceWidth = WIDTH * 1 / bufferLength;\n let x = 0;\n\n for (let i = 0; i < bufferLength; i++) {\n const v = dataArray[i] / 128;\n const y = v * HEIGHT / 2;\n\n if (i === 0) {\n canvasCtx.moveTo(x, y);\n } else {\n canvasCtx.lineTo(x, y);\n }\n\n x += sliceWidth;\n }\n\n canvasCtx.lineTo(canvas.width, canvas.height / 2);\n canvasCtx.stroke();\n }\n}\n\n\n/**\n * @param {MediaStreamConstraints} constraints\n * @returns {Promise<MediaStream|null>}\n */\nasync function getUserMedia (constraints) {\n let stream = null;\n try {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n } catch (err) {\n /* istanbul ignore next */\n console.error('err', err);\n /* istanbul ignore next */\n return null;\n }\n return stream;\n}\n\n/**\n * @param {DisplayMediaStreamOptions|undefined} displayMediaOptions\n * @returns {Promise<MediaStream|null>}\n */\nasync function startScreenCapture (displayMediaOptions) {\n let captureStream = null;\n\n try {\n captureStream =\n await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);\n } catch (err) {\n /* istanbul ignore next */\n console.error(`Error: ${err}`);\n }\n return captureStream;\n}\n\nexport {visualize, getUserMedia, startScreenCapture};\n","import {jml, toStringTag} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\nimport {visualize, getUserMedia, startScreenCapture} from '../utils/media.js';\nimport dialogs from '../utils/dialogs.js';\n\n/**\n * @typedef {File|{\n * name: string, size: string, type: string,\n * lastModified: string\n * }} FileInfo\n */\n\n/**\n * @typedef {(file: FileInfo) => void} SetValue\n */\n\n/**\n * @param {number} timestamp\n * @returns {string}\n */\nfunction getDateString (timestamp) {\n const d = new Date(timestamp);\n const dateTimeLocalValue = (\n new Date(\n d.getTime() - (d.getTimezoneOffset() * 60000)\n ).toISOString()\n ).slice(0, -1);\n return dateTimeLocalValue;\n}\n\n/**\n * @param {HTMLButtonElement & {$value: File}} viewBinary\n * @param {{\n * stringContents?: string,\n * name?: string,\n * type?: string,\n * lastModified?: number\n * }} value\n * @returns {void}\n */\nfunction newFileForBinary (viewBinary, value) {\n const oldFile = /** @type {File|undefined} */ (\n viewBinary.$value\n );\n // We actually want to allow creating `File`'s from scratch\n // if (\n // !oldFile ||\n // Object.prototype.toString.call(\n // oldFile\n // ).slice(8, -1) !== 'File'\n // ) {\n // return false;\n // }\n const file = new File(\n [\n value.stringContents === undefined\n ? oldFile && Object.prototype.toString.call(\n oldFile\n ).slice(8, -1) === 'File'\n ? oldFile\n : ''\n : value.stringContents\n ],\n value.name === undefined\n ? oldFile?.name ?? ''\n : value.name,\n {\n type: value.type === undefined\n ? oldFile?.type ?? ''\n : value.type,\n lastModified: value.lastModified === undefined\n ? oldFile?.lastModified ?? 0\n : value.lastModified\n }\n );\n viewBinary.$value = file;\n}\n\n/**\n * @param {File} value\n * @param {boolean} [editable]\n * @returns {import('jamilih').JamilihArray}\n */\nfunction binaryButton (value, editable) {\n // @ts-expect-error It's ok\n return ['button', /** @type {import('jamilih').JamilihAttributes} */ ({\n class: 'viewBinary',\n $custom: {\n $value: value\n },\n $on: {\n /**\n * @this {HTMLButtonElement & {$value: File}}\n * @param {Event} e\n */\n click (e) {\n // eslint-disable-next-line consistent-this -- Clarity\n const viewBinary = this;\n e.preventDefault();\n if (\n !this.$value ||\n Object.prototype.toString.call(this.$value).slice(8, -1) !== 'File'\n ) {\n // Non-editable shouldn't be empty\n // if (!editable) {\n // dialogs.alert(\n // 'There is no file chosen with binary data'\n // );\n // return;\n // }\n\n newFileForBinary(viewBinary, {});\n }\n const reader = new FileReader();\n reader.addEventListener('load', async function () {\n const dialog = await dialogs.makeSubmitDialog({\n submitText: 'Save',\n submit () {\n const textarea = /** @type {HTMLTextAreaElement} */ (\n $e(dialog, '.view-binary')\n );\n newFileForBinary(viewBinary, {\n stringContents: textarea.value\n });\n dialog.close();\n },\n // @ts-expect-error TS bug\n children: [\n ['div', /** @type {import('jamilih').JamilihChildren} */ ([\n 'Binary source',\n ['br'],\n ['textarea', {\n class: 'view-binary'\n }, [\n /* istanbul ignore next */\n /** @type {string|null} */ (reader.result) ?? ''\n ]]\n ])]\n ]\n });\n });\n // Seems not feasible to accurately simulate\n reader.addEventListener(\n 'error',\n /* istanbul ignore next */\n async function () {\n /* istanbul ignore next */\n console.error(reader.error);\n /* istanbul ignore next */\n await dialogs.alert(/** @type {string} */ (\n /** @type {DOMException} */ (reader.error).message\n ));\n }\n );\n reader.readAsBinaryString(this.$value);\n }\n }\n }), [\n editable\n ? 'Edit binary data'\n : 'View binary data'\n ]];\n}\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst fileType = {\n option: ['File'],\n stringRegex: /^File\\((.*)\\)$/u,\n valueMatch (x) {\n return toStringTag(x) === 'File';\n },\n toValue (s) {\n const obj = JSON.parse(s);\n return {value: new File([obj.stringContents], obj.name, {\n type: obj.type,\n lastModified: obj.lastModified\n })};\n },\n getInput ({root}) {\n return /** @type {HTMLButtonElement} */ ($e(root, 'button.viewBinary'));\n },\n setValue ({root, value}) {\n /** @type {HTMLFieldSetElement & {$setValue: SetValue}} */\n ($e(root, 'fieldset.fileMetaData')).$setValue(value);\n },\n getValue ({root}) {\n // Get value attached to DOM element rather than input,\n // so can be from preexisting file too\n return /** @type {HTMLButtonElement & {$value: File}} */ (\n this.getInput({root})\n ).$value;\n },\n viewUI ({value, specificSchemaObject}) {\n return ['div', {dataset: {type: 'file'}}, [\n ['b', {\n class: 'emphasis',\n title: specificSchemaObject?.description ? '(a File)' : undefined\n }, [\n specificSchemaObject?.description ?? 'File'\n ]],\n ['br'],\n ['br'],\n ['b', [\n 'Name '\n ]],\n value.name,\n ['br'],\n ['b', [\n 'Size (in bytes) '\n ]],\n String(value.size),\n ['br'],\n ['b', [\n 'Content type '\n ]],\n value.type,\n ['br'],\n ['b', [\n 'Last modified date '\n ]],\n getDateString(value.lastModified),\n ['br'],\n value.type.startsWith('text/') || value.type === 'application/json'\n ? (() => {\n const div = jml('div');\n const reader = new FileReader();\n reader.addEventListener('load', function () {\n div.append(jml('div', [\n 'Text source',\n ['br'],\n ['textarea', {class: 'view-text'}, [\n /* istanbul ignore next */\n /** @type {string|null} */ (reader.result) ?? ''\n ]]\n ]));\n });\n // Seems not feasible to accurately simulate\n reader.addEventListener(\n 'error',\n /* istanbul ignore next */\n function () {\n /* istanbul ignore next */\n console.error(reader.error);\n /* istanbul ignore next */\n div.append(\n /** @type {DOMException} */ (reader.error).message\n );\n }\n );\n reader.readAsBinaryString(value);\n return div;\n })()\n : binaryButton(value),\n value.type.startsWith('video/')\n ? (() => {\n const objURL = URL.createObjectURL(value);\n const video = jml('video', {\n src: objURL,\n class: 'video',\n $on: {\n loadeddata () {\n URL.revokeObjectURL(objURL);\n }\n }\n });\n\n return ['div', [\n video,\n ['button', {\n class: 'play',\n $on: {\n click (e) {\n e.preventDefault();\n video.play();\n }\n }\n }, [\n 'Play'\n ]],\n ['button', {\n class: 'pause',\n $on: {\n click (e) {\n e.preventDefault();\n video.pause();\n }\n }\n }, [\n 'Pause'\n ]],\n ['button', {\n class: 'replay',\n $on: {\n click (e) {\n e.preventDefault();\n video.pause();\n video.currentTime = 0;\n video.play();\n }\n }\n }, [\n 'Replay'\n ]]\n ]];\n })()\n : '',\n value.type.startsWith('audio/')\n ? (() => {\n const objURL = URL.createObjectURL(value);\n const audio = jml('audio', {\n src: objURL,\n class: 'audio',\n $on: {\n loadeddata () {\n URL.revokeObjectURL(objURL);\n }\n }\n });\n return ['div', [\n audio,\n ['button', {\n class: 'play',\n $on: {\n click (e) {\n e.preventDefault();\n audio.play();\n }\n }\n }, [\n 'Play'\n ]],\n ['button', {\n class: 'pause',\n $on: {\n click (e) {\n e.preventDefault();\n audio.pause();\n }\n }\n }, [\n 'Pause'\n ]],\n ['button', {\n class: 'replay',\n $on: {\n click (e) {\n e.preventDefault();\n audio.pause();\n audio.currentTime = 0;\n audio.play();\n }\n }\n }, [\n 'Replay'\n ]]\n ]];\n })()\n : '',\n value.type === 'application/pdf'\n ? (() => {\n const objURL = URL.createObjectURL(value);\n const iframe = jml('iframe', {\n class: 'PDF',\n src: objURL,\n $on: {\n load () {\n URL.revokeObjectURL(objURL);\n }\n }\n });\n return iframe;\n })()\n : '',\n value.type.startsWith('image/')\n // @ts-expect-error It's ok\n ? ['img', /** @type {import('jamilih').JamilihAttributes} */ ({\n class: 'imageView',\n src: URL.createObjectURL(value),\n $on: {\n /** @this {HTMLImageElement} */\n load () {\n URL.revokeObjectURL(this.src);\n }\n }\n })]\n : ''\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value = {}}) {\n // Todo: Could add way to preview file in edit mode (whether\n // recorded or uploaded)\n return ['div', {\n dataset: {type: 'file'},\n title: specificSchemaObject?.description ?? 'File'\n }, [\n ['fieldset', {\n class: 'fileMetaData',\n $custom: {\n /**\n * @this {HTMLFieldSetElement}\n * @param {FileInfo} file\n */\n $setValue (file) {\n // eslint-disable-next-line consistent-this -- Clarity\n const metadataFieldset = this;\n /** @type {HTMLInputElement} */ ($e(\n metadataFieldset,\n '.fileName'\n )).value = file.name;\n\n /** @type {HTMLInputElement} */ ($e(\n metadataFieldset,\n '.size'\n )).value = String(file.size);\n\n /** @type {HTMLInputElement} */ ($e(\n metadataFieldset,\n '.contentType'\n )).value = file.type;\n\n /** @type {HTMLInputElement} */ ($e(\n metadataFieldset,\n '.lastModified'\n )).value = typeof file.lastModified === 'number'\n ? getDateString(file.lastModified)\n : '';\n\n /** @type {HTMLButtonElement & {$value: File|undefined}} */ ($e(\n metadataFieldset,\n 'button.viewBinary'\n )).$value = typeof file.lastModified === 'number'\n ? /** @type {File} */ (file)\n : undefined;\n }\n }\n }, [\n ['legend', ['Current file data']],\n ['label', [\n 'Name ',\n ['input', {\n size: 50,\n class: 'fileName', value: value.name ?? '',\n $on: {\n change () {\n const viewBinary =\n /**\n * @type {HTMLButtonElement & {$value: File}}\n */ (\n $e(\n /** @type {HTMLElement} */\n (this.parentElement?.parentElement),\n 'button.viewBinary'\n )\n );\n newFileForBinary(viewBinary, {\n name: /** @type {HTMLInputElement} */ (this).value\n });\n }\n }\n }]\n ]],\n ['br'],\n ['label', [\n 'Size (in bytes) ',\n ['input', {\n type: 'number', step: '1', disabled: true, class: 'size',\n value: String(value.size)\n }]\n ]],\n ['br'],\n ['label', [\n 'Content type ',\n ['input', {\n class: 'contentType', value: value.type ?? '',\n $on: {\n change () {\n const viewBinary =\n /**\n * @type {HTMLButtonElement & {$value: File}}\n */ (\n $e(\n /** @type {HTMLElement} */\n (this.parentElement?.parentElement),\n 'button.viewBinary'\n )\n );\n\n const newContentType =\n /** @type {HTMLInputElement} */ (this).value;\n newFileForBinary(viewBinary, {\n type: newContentType\n });\n }\n }\n }]\n ]],\n ['br'],\n ['label', [\n 'Last modified date ',\n ['input', {\n type: 'datetime-local', class: 'lastModified',\n step: 0.001,\n value: value.lastModified\n ? getDateString(value.lastModified)\n : undefined,\n $on: {\n change () {\n const viewBinary =\n /**\n * @type {HTMLButtonElement & {$value: File}}\n */ (\n $e(\n /** @type {HTMLElement} */\n (this.parentElement?.parentElement),\n 'button.viewBinary'\n )\n );\n\n const newLastModified =\n /** @type {HTMLInputElement} */ (this).value;\n newFileForBinary(viewBinary, {\n lastModified: new Date(newLastModified).getTime()\n });\n }\n }\n }]\n ]],\n ['br'],\n binaryButton(value, true),\n ['button', {\n class: 'clearData',\n $on: {\n click (e) {\n e.preventDefault();\n /**\n * @type {HTMLFieldSetElement & {$setValue: SetValue}}\n */ (this.parentElement).$setValue({\n name: '',\n size: '',\n type: '',\n lastModified: ''\n });\n }\n }\n }, [\n 'Clear data'\n ]]\n ]],\n ['fieldset', [\n ['legend', ['Supply file through upload']],\n ['label', [\n 'File ',\n // @ts-expect-error It's ok\n ['input', /** @type {import('jamilih').JamilihAttributes} */ ({\n $on: {\n /**\n * @this {HTMLInputElement}\n */\n change () {\n /* istanbul ignore if -- TS */\n if (!this.files) {\n return;\n }\n const file = this.files[0];\n\n const metadataFieldset =\n /**\n * @type {HTMLFieldSetElement & {\n * $setValue: SetValue\n * }}\n */ (/** @type {HTMLElement} */ (\n this.parentElement?.parentElement\n )?.previousElementSibling);\n metadataFieldset.$setValue(file);\n }\n },\n name: `${typeNamespace}-file`, type: 'file'\n })]\n ]]\n ]],\n ['fieldset', [\n ['legend', [\n 'Supply file through recording'\n ]],\n (() => {\n const select = jml('select', {\n class: 'device',\n $on: {\n async change () {\n const videoContainer = /** @type {HTMLDivElement} */ (\n this.nextElementSibling?.nextElementSibling\n );\n\n const photo =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(videoContainer, 'img.photo'));\n photo.hidden = true;\n\n const oldVideo =\n /**\n * @type {HTMLVideoElement & {\n * $stream: MediaStream\n * }}\n */\n ($e(\n videoContainer,\n 'video.previewMedia'\n ));\n\n // Drop preexisting listeners\n const previewMedia =\n /**\n * @type {HTMLVideoElement & {\n * $stream: MediaStream,\n * $screenShare: boolean\n * }}\n */ (\n jml('video', {\n class: 'previewMedia'\n })\n );\n\n if (oldVideo.$stream) {\n const tracks = /** @type {MediaStream} */ (\n oldVideo.$stream\n ).getTracks();\n tracks.forEach((track) => {\n track.stop();\n });\n oldVideo.srcObject = null;\n }\n\n oldVideo.replaceWith(previewMedia);\n\n const takeSnapshot = /** @type {HTMLButtonElement} */ (\n $e(/** @type {HTMLDivElement} */ (\n select.nextElementSibling\n ), '.takeSnapshot')\n );\n\n const recordMedia = /** @type {HTMLButtonElement} */ (\n $e(/** @type {HTMLDivElement} */ (\n select.nextElementSibling\n ), '.recordMedia')\n );\n\n /** @type {HTMLDivElement} */ ($e(\n /** @type {HTMLDivElement} */\n (select.nextElementSibling?.\n nextElementSibling),\n 'div.recordedMedia'\n )).hidden = true;\n\n const visualizer = /** @type {HTMLCanvasElement} */ (\n $e(videoContainer, 'canvas.visualizer')\n );\n\n /**\n * @type {{\n * video?: true,\n * audio?: true\n * }|undefined}\n */\n let constraints;\n let screenShareConstraints;\n\n previewMedia.$screenShare = false;\n switch (select.value) {\n case 'audio-and-video':\n constraints = {video: true, audio: true};\n previewMedia.hidden = false;\n takeSnapshot.hidden = false;\n recordMedia.textContent = 'Record video/audio';\n break;\n case 'video':\n constraints = {video: true};\n previewMedia.hidden = false;\n takeSnapshot.hidden = false;\n recordMedia.textContent = 'Record video';\n break;\n case 'audio':\n constraints = {audio: true};\n previewMedia.hidden = true;\n takeSnapshot.hidden = true;\n recordMedia.textContent = 'Record audio';\n break;\n case 'screenShare':\n screenShareConstraints = {video: true};\n // Fallthrough\n case 'screenShareAndVideo':\n if (!screenShareConstraints) {\n screenShareConstraints = {video: true, audio: true};\n }\n previewMedia.$screenShare = true;\n previewMedia.hidden = true;\n takeSnapshot.hidden = true;\n visualizer.hidden = true;\n break;\n default:\n return;\n }\n\n if (constraints) {\n const mediaStream = await getUserMedia(constraints);\n /* istanbul ignore if */\n if (!mediaStream) {\n await dialogs.alert('Error getting user media');\n return;\n }\n\n videoContainer.hidden = false;\n previewMedia.srcObject = mediaStream;\n\n // Save as stream for later reuse as stream\n previewMedia.$stream = mediaStream;\n\n if (constraints.video) {\n const canvas =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(\n videoContainer,\n 'canvas.recordedImage'\n ));\n // https://developer.mozilla.org/en-US/docs/Web/API/Media_Capture_and_Streams_API/Taking_still_photos\n previewMedia.addEventListener('canplay', () => {\n canvas.setAttribute('width', String(\n previewMedia.videoWidth\n ));\n canvas.setAttribute(\n 'height', String(previewMedia.videoHeight)\n );\n });\n }\n\n previewMedia.addEventListener('loadedmetadata', () => {\n previewMedia.play();\n if (constraints?.audio) {\n visualizer.hidden = false;\n visualize(\n mediaStream,\n visualizer\n );\n } else {\n visualizer.hidden = true;\n }\n });\n } else if (screenShareConstraints) {\n const mediaStream = await startScreenCapture(\n screenShareConstraints\n );\n /* istanbul ignore if */\n if (!mediaStream) {\n await dialogs.alert('Error getting user media');\n return;\n }\n\n videoContainer.hidden = false;\n previewMedia.srcObject = mediaStream;\n\n // Save as stream for later reuse as stream\n previewMedia.$stream = mediaStream;\n }\n }\n }\n }, [\n ['option', {value: ''}, ['Please choose a device']]\n ]);\n\n (async () => {\n const devices = await navigator.mediaDevices.enumerateDevices();\n let hasAudioInput = false;\n let hasVideoInput = false;\n devices.forEach((device) => {\n switch (device.kind) {\n case 'audioinput':\n hasAudioInput = true;\n break;\n case 'videoinput':\n hasVideoInput = true;\n break;\n default:\n break;\n }\n });\n\n if (hasAudioInput) {\n jml('option', {value: 'audio'}, ['Microphone only'], select);\n }\n if (hasVideoInput) {\n jml('option', {value: 'video'}, ['Video camera only'], select);\n }\n if (hasAudioInput && hasVideoInput) {\n jml(\n 'option',\n {value: 'audio-and-video'},\n ['Video camera and microphone'],\n select\n );\n }\n\n // Can't be feature detected for privacy reasons\n jml('option', {\n value: 'screenShare'\n }, ['Screen share'], select);\n jml('option', {\n value: 'screenShareAndVideo'\n }, ['Screen share and microphone'], select);\n })();\n\n return select;\n })(),\n ' ',\n ['div', [\n // @ts-expect-error It's ok\n ['button', /** @type {import('jamilih').JamilihAttributes} */ ({\n class: 'recordMedia',\n $on: {\n /**\n * @param {Event} e\n * @this {HTMLButtonElement & {\n * $mediaRecorder: MediaRecorder\n * }}\n */\n click (e) {\n e.preventDefault();\n const previewMedia =\n /**\n * @type {HTMLVideoElement & {$stream: MediaStream}}\n */ ($e(\n /** @type {HTMLDivElement} */\n (this.parentElement?.nextElementSibling),\n 'video.previewMedia'\n ));\n\n /* istanbul ignore if */\n if (!previewMedia.srcObject) {\n dialogs.alert('No stream found to record');\n return;\n }\n\n // Not interested in the photo now, so hide it\n const videoContainer = /** @type {HTMLDivElement} */ (\n this.parentElement?.nextElementSibling\n );\n const photo =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(videoContainer, 'img.photo'));\n photo.hidden = true;\n\n // Todo: Could check codecs for allowable values\n // as second argument\n // see https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/isTypeSupported_static\n const mimeType = 'video/webm';\n const mediaRecorder = new MediaRecorder(previewMedia.$stream, {\n mimeType\n });\n\n /** @type {Blob[]} */\n let chunks = [];\n mediaRecorder.addEventListener('dataavailable', (e) => {\n chunks.push(e.data);\n });\n\n try {\n mediaRecorder.start();\n } catch /* istanbul ignore next */ {\n dialogs.alert('Error starting media recorder');\n return;\n }\n mediaRecorder.addEventListener('stop', () => {\n const blob = new Blob(chunks, {\n type: mimeType\n });\n\n const url = URL.createObjectURL(blob);\n\n const recordedMedia = /** @type {HTMLVideoElement} */ ($e(\n /** @type {HTMLDivElement} */\n (this.parentElement?.nextElementSibling),\n 'video.recordedMedia'\n // )).srcObject = blob;\n ));\n /** @type {HTMLDivElement} */ (\n recordedMedia.parentElement\n ).hidden = false;\n\n recordedMedia.src = url;\n\n recordedMedia.addEventListener('loadeddata', () => {\n URL.revokeObjectURL(url);\n });\n\n const file = new File(\n [blob],\n 'placeholder.webm',\n {type: mimeType}\n );\n console.log('file', file);\n\n const root = /** @type {HTMLDivElement} */\n (this.closest('[data-type=\"file\"]'));\n /**\n * @type {HTMLFieldSetElement & {\n * $setValue: SetValue\n * }}\n */ ($e(\n root, 'fieldset.fileMetaData'\n )).$setValue(file);\n\n chunks = [];\n });\n\n this.$mediaRecorder = mediaRecorder;\n\n // Todo: Could make option for front/back\n // camera (\"user\"/\"environment\") and bringIntoFocus\n }\n }\n }), [\n 'Record media'\n ]],\n ['button', {\n class: 'stopRecording',\n $on: {\n click (e) {\n e.preventDefault();\n /**\n * @type {HTMLButtonElement & {$mediaRecorder: MediaRecorder}}\n */ (\n this.previousElementSibling\n ).$mediaRecorder.stop();\n\n // const previewMedia =\n // /**\n // * @type {HTMLVideoElement & {\n // * $stream: MediaStream,\n // * $screenShare: boolean\n // * }}\n // */ (\n // $e(\n // /** @type {HTMLDivElement} */\n // (this.parentElement?.nextElementSibling),\n // '.previewMedia'\n // )\n // );\n\n // Doesn't hurt to keep the normal video going as user\n // may wish to re-record, but for screen-sharing, we\n // may want to reenable this, at the cost that the\n // screen sharing cannot be re-done\n // if (previewMedia.$screenShare) {\n // const tracks = /** @type {MediaStream} */ (\n // previewMedia.$stream\n // ).getTracks();\n // tracks.forEach((track) => {\n // track.stop();\n // });\n // }\n // previewMedia.srcObject = null;\n }\n }\n }, [\n 'Stop recording'\n ]],\n ['button', {\n class: 'takeSnapshot',\n hidden: true\n }, {\n $on: {\n click (e) {\n e.preventDefault();\n\n const videoContainer = /** @type {HTMLDivElement} */\n (this.parentElement?.nextElementSibling);\n\n // Not interested in this anymore\n /** @type {HTMLVideoElement} */\n ($e(videoContainer, '.recordedMedia')).hidden = true;\n\n const canvas =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(videoContainer, 'canvas.recordedImage'));\n\n const context = /** @type {CanvasRenderingContext2D} */ (\n canvas.getContext('2d')\n );\n\n const previewMedia =\n /**\n * @type {HTMLVideoElement}\n */\n ($e(videoContainer, 'video.previewMedia'));\n context.drawImage(\n previewMedia, 0, 0, canvas.width, canvas.height\n );\n const photo =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(videoContainer, 'img.photo'));\n\n canvas.toBlob((blob) => {\n /* istanbul ignore if */\n if (!blob) {\n dialogs.alert('Error converting canvas to Blob');\n return;\n }\n const newPhoto = jml('img', {\n class: 'photo'\n });\n const url = URL.createObjectURL(blob);\n\n newPhoto.addEventListener('load', () => {\n // no longer need to read the blob so it's revoked\n URL.revokeObjectURL(url);\n });\n\n const file = new File(\n [blob],\n 'placeholder.png',\n {type: blob.type}\n );\n console.log('file', file);\n\n const root = /** @type {HTMLDivElement} */\n (this.closest('[data-type=\"file\"]'));\n /**\n * @type {HTMLFieldSetElement & {\n * $setValue: SetValue\n * }}\n */ ($e(\n root, 'fieldset.fileMetaData'\n )).$setValue(file);\n\n newPhoto.src = url;\n photo.replaceWith(newPhoto);\n });\n }\n }\n }, [\n 'Take and use snapshot as file'\n ]]\n ]],\n ['div', {class: 'videoContainer', hidden: true}, [\n ['canvas', {class: 'visualizer', hidden: true}],\n ['br'],\n ['video', {class: 'previewMedia'}],\n ['div', [\n ['canvas', {hidden: true, class: 'recordedImage'}],\n ['img', {class: 'photo'}]\n ]],\n [\n 'div',\n {class: 'recordedMedia'},\n /** @type {import('jamilih').JamilihChildren} */ ([\n ...(() => {\n const recordedMedia = jml(\n 'video', {class: 'recordedMedia'}\n );\n return [\n recordedMedia,\n ['br'],\n jml('button', {\n class: 'play',\n $on: {\n click (e) {\n e.preventDefault();\n recordedMedia.play();\n }\n }\n }, [\n 'Play'\n ]),\n jml('button', {\n class: 'pause',\n $on: {\n click (e) {\n e.preventDefault();\n recordedMedia.pause();\n }\n }\n }, [\n 'Pause'\n ]),\n jml('button', {\n class: 'replay',\n $on: {\n click (e) {\n e.preventDefault();\n recordedMedia.pause();\n recordedMedia.currentTime = 0;\n recordedMedia.play();\n }\n }\n }, [\n 'Replay'\n ])\n ];\n })()\n ])\n ]\n ]]\n ]]\n ]];\n }\n};\n\nexport default fileType;\n","import {toStringTag} from '../vendor-imports.js';\nimport arrayType from './arrayType.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst filelistType = {\n option: ['FileList'],\n array: true,\n filelist: true,\n regexEndings: [',', ')'],\n stringRegexBegin: /^FileList\\(/u,\n stringRegexEnd: /^\\)/u,\n valueMatch (x) {\n return toStringTag(x) === 'FileList';\n },\n\n toValue (...args) {\n return /** @type {import('../types.js').ToValue} */ (\n arrayType.toValue\n ).apply(this, args);\n },\n getValue (...args) {\n return arrayType.getValue.apply(this, args);\n },\n getInput (...args) {\n return arrayType.getInput.apply(this, args);\n },\n viewUI ({...args}) {\n return arrayType.viewUI.call(this, {\n ...args, type: 'filelist'\n });\n },\n editUI ({...args}) {\n return arrayType.editUI.call(this, {\n ...args, type: 'filelist'\n });\n }\n};\n\nexport default filelistType;\n","import {jml, toStringTag} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\nimport {visualize, getUserMedia, startScreenCapture} from '../utils/media.js';\nimport dialogs from '../utils/dialogs.js';\n\n/**\n * @typedef {Blob|{\n * size: string, type: string\n * }} BlobInfo\n */\n\n/**\n * @typedef {(blob: BlobInfo) => void} SetValue\n */\n\n/**\n * @param {HTMLButtonElement & {$value: Blob}} viewBinary\n * @param {{\n * stringContents?: string,\n * name?: string,\n * type?: string\n * }} value\n * @returns {Blob}\n */\nfunction newBlobForBinary (viewBinary, value) {\n const oldBlob = /** @type {Blob|undefined} */ (\n viewBinary.$value\n );\n // We actually want to allow creating `Blob`'s from scratch\n // if (\n // !oldBlob ||\n // Object.prototype.toString.call(\n // oldBlob\n // ).slice(8, -1) !== 'Blob'\n // ) {\n // return false;\n // }\n const blob = new Blob(\n [\n value.stringContents === undefined\n ? oldBlob && Object.prototype.toString.call(\n oldBlob\n ).slice(8, -1) === 'Blob'\n ? oldBlob\n : ''\n : value.stringContents\n ],\n {\n type: value.type === undefined\n ? oldBlob?.type ?? ''\n : value.type\n }\n );\n viewBinary.$value = blob;\n return blob;\n}\n\n/**\n * @param {Blob} value\n * @param {boolean} [editable]\n * @returns {import('jamilih').JamilihArray}\n */\nfunction binaryButton (value, editable) {\n // @ts-expect-error It's ok\n return ['button', /** @type {import('jamilih').JamilihAttributes} */ ({\n class: 'viewBinary',\n $custom: {\n $value: value\n },\n $on: {\n /**\n * @this {HTMLButtonElement & {$value: Blob}}\n * @param {Event} e\n */\n click (e) {\n // eslint-disable-next-line consistent-this -- Clarity\n const viewBinary = this;\n e.preventDefault();\n if (\n !this.$value ||\n Object.prototype.toString.call(this.$value).slice(8, -1) !== 'Blob'\n ) {\n // Non-editable shouldn't be empty\n // if (!editable) {\n // dialogs.alert(\n // 'There is no blob chosen with binary data'\n // );\n // return;\n // }\n\n newBlobForBinary(viewBinary, {});\n }\n const reader = new FileReader();\n reader.addEventListener('load', async function () {\n const dialog = await dialogs.makeSubmitDialog({\n submitText: 'Save',\n submit () {\n const textarea = /** @type {HTMLTextAreaElement} */ (\n $e(dialog, '.view-binary')\n );\n const blob = newBlobForBinary(viewBinary, {\n stringContents: textarea.value\n });\n // May need to update size:\n /** @type {HTMLFieldSetElement & {$setValue: SetValue}} */\n (viewBinary.parentElement).$setValue(blob);\n dialog.close();\n },\n // @ts-expect-error TS bug\n children: [\n ['div', /** @type {import('jamilih').JamilihChildren} */ ([\n 'Binary source',\n ['br'],\n ['textarea', {\n class: 'view-binary'\n }, [\n /* istanbul ignore next */\n /** @type {string|null} */ (reader.result) ?? ''\n ]]\n ])]\n ]\n });\n });\n // Seems not feasible to accurately simulate\n reader.addEventListener(\n 'error',\n /* istanbul ignore next */\n async function () {\n /* istanbul ignore next */\n console.error(reader.error);\n /* istanbul ignore next */\n await dialogs.alert(/** @type {string} */ (\n /** @type {DOMException} */ (reader.error).message\n ));\n }\n );\n reader.readAsBinaryString(this.$value);\n }\n }\n }), [\n editable\n ? 'Edit binary data'\n : 'View binary data'\n ]];\n}\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst blobType = {\n option: ['Blob'],\n stringRegex: /^Blob\\((.*)\\)$/u,\n valueMatch (x) {\n return toStringTag(x) === 'Blob';\n },\n toValue (s) {\n const obj = JSON.parse(s);\n return {value: new Blob([obj.stringContents], {\n type: obj.type\n })};\n },\n getInput ({root}) {\n return /** @type {HTMLButtonElement} */ ($e(root, 'button.viewBinary'));\n },\n setValue ({root, value}) {\n /** @type {HTMLFieldSetElement & {$setValue: SetValue}} */\n ($e(root, 'fieldset.blobMetaData')).$setValue(value);\n },\n getValue ({root}) {\n // Get value attached to DOM element rather than input,\n // so can be from preexisting blob too\n return /** @type {HTMLButtonElement & {$value: Blob}} */ (\n this.getInput({root})\n ).$value;\n },\n viewUI ({value, specificSchemaObject}) {\n return ['div', {dataset: {type: 'blob'}}, [\n ['b', {\n class: 'emphasis',\n title: specificSchemaObject?.description ? '(a Blob)' : undefined\n }, [\n specificSchemaObject?.description ?? 'Blob'\n ]],\n ['br'],\n ['br'],\n ['b', [\n 'Size (in bytes) '\n ]],\n String(value.size),\n ['br'],\n ['b', [\n 'Content type '\n ]],\n value.type,\n ['br'],\n value.type.startsWith('text/') || value.type === 'application/json'\n ? (() => {\n const div = jml('div');\n const reader = new FileReader();\n reader.addEventListener('load', function () {\n div.append(jml('div', [\n 'Text source',\n ['br'],\n ['textarea', {class: 'view-text'}, [\n /* istanbul ignore next */\n /** @type {string|null} */ (reader.result) ?? ''\n ]]\n ]));\n });\n // Seems not feasible to accurately simulate\n reader.addEventListener(\n 'error',\n /* istanbul ignore next */\n function () {\n /* istanbul ignore next */\n console.error(reader.error);\n /* istanbul ignore next */\n div.append(\n /** @type {DOMException} */ (reader.error).message\n );\n }\n );\n reader.readAsBinaryString(value);\n return div;\n })()\n : binaryButton(value),\n value.type.startsWith('video/')\n ? (() => {\n const objURL = URL.createObjectURL(value);\n const video = jml('video', {\n src: objURL,\n class: 'video',\n $on: {\n loadeddata () {\n URL.revokeObjectURL(objURL);\n }\n }\n });\n\n return ['div', [\n video,\n ['button', {\n class: 'play',\n $on: {\n click (e) {\n e.preventDefault();\n video.play();\n }\n }\n }, [\n 'Play'\n ]],\n ['button', {\n class: 'pause',\n $on: {\n click (e) {\n e.preventDefault();\n video.pause();\n }\n }\n }, [\n 'Pause'\n ]],\n ['button', {\n class: 'replay',\n $on: {\n click (e) {\n e.preventDefault();\n video.pause();\n video.currentTime = 0;\n video.play();\n }\n }\n }, [\n 'Replay'\n ]]\n ]];\n })()\n : '',\n value.type.startsWith('audio/')\n ? (() => {\n const objURL = URL.createObjectURL(value);\n const audio = jml('audio', {\n src: objURL,\n class: 'audio',\n $on: {\n loadeddata () {\n URL.revokeObjectURL(objURL);\n }\n }\n });\n return ['div', [\n audio,\n ['button', {\n class: 'play',\n $on: {\n click (e) {\n e.preventDefault();\n audio.play();\n }\n }\n }, [\n 'Play'\n ]],\n ['button', {\n class: 'pause',\n $on: {\n click (e) {\n e.preventDefault();\n audio.pause();\n }\n }\n }, [\n 'Pause'\n ]],\n ['button', {\n class: 'replay',\n $on: {\n click (e) {\n e.preventDefault();\n audio.pause();\n audio.currentTime = 0;\n audio.play();\n }\n }\n }, [\n 'Replay'\n ]]\n ]];\n })()\n : '',\n value.type === 'application/pdf'\n ? (() => {\n const objURL = URL.createObjectURL(value);\n const iframe = jml('iframe', {\n class: 'PDF',\n src: objURL,\n $on: {\n load () {\n URL.revokeObjectURL(objURL);\n }\n }\n });\n return iframe;\n })()\n : '',\n value.type.startsWith('image/')\n // @ts-expect-error It's ok\n ? ['img', /** @type {import('jamilih').JamilihAttributes} */ ({\n class: 'imageView',\n src: URL.createObjectURL(value),\n $on: {\n /** @this {HTMLImageElement} */\n load () {\n URL.revokeObjectURL(this.src);\n }\n }\n })]\n : ''\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value = {}}) {\n // Todo: Could add way to preview blob in edit mode (whether\n // recorded or uploaded)\n return ['div', {\n dataset: {type: 'blob'},\n title: specificSchemaObject?.description ?? 'Blob'\n }, [\n ['fieldset', {\n class: 'blobMetaData',\n $custom: {\n /**\n * @this {HTMLFieldSetElement}\n * @param {BlobInfo} blob\n */\n $setValue (blob) {\n // eslint-disable-next-line consistent-this -- Clarity\n const metadataFieldset = this;\n\n /** @type {HTMLInputElement} */ ($e(\n metadataFieldset,\n '.size'\n )).value = String(blob.size);\n\n /** @type {HTMLInputElement} */ ($e(\n metadataFieldset,\n '.contentType'\n )).value = blob.type;\n\n /** @type {HTMLButtonElement & {$value: Blob|undefined}} */ ($e(\n metadataFieldset,\n 'button.viewBinary'\n )).$value = Object.prototype.toString.call(\n blob\n ).slice(8, -1) === 'Blob'\n ? /** @type {Blob} */ (blob)\n /* istanbul ignore next */\n : undefined;\n }\n }\n }, [\n ['legend', ['Current blob data']],\n ['label', [\n 'Size (in bytes) ',\n ['input', {\n type: 'number', step: '1', disabled: true, class: 'size',\n value: String(value.size)\n }]\n ]],\n ['br'],\n ['label', [\n 'Content type ',\n ['input', {\n class: 'contentType', value: value.type ?? '',\n $on: {\n change () {\n const viewBinary =\n /**\n * @type {HTMLButtonElement & {$value: Blob}}\n */ (\n $e(\n /** @type {HTMLElement} */\n (this.parentElement?.parentElement),\n 'button.viewBinary'\n )\n );\n\n const newContentType =\n /** @type {HTMLInputElement} */ (this).value;\n newBlobForBinary(viewBinary, {\n type: newContentType\n });\n }\n }\n }]\n ]],\n ['br'],\n binaryButton(value, true),\n ['button', {\n class: 'clearData',\n $on: {\n click (e) {\n e.preventDefault();\n /**\n * @type {HTMLFieldSetElement & {$setValue: SetValue}}\n */ (this.parentElement).$setValue({\n size: '',\n type: ''\n });\n }\n }\n }, [\n 'Clear data'\n ]]\n ]],\n ['fieldset', [\n ['legend', ['Supply blob through upload']],\n ['label', [\n 'Blob ',\n // @ts-expect-error It's ok\n ['input', /** @type {import('jamilih').JamilihAttributes} */ ({\n $on: {\n /**\n * @this {HTMLInputElement}\n */\n change () {\n /* istanbul ignore if -- TS */\n if (!this.files) {\n return;\n }\n const file = this.files[0];\n\n const blob = new Blob([file], {\n type: file.type\n });\n\n const metadataFieldset =\n /**\n * @type {HTMLFieldSetElement & {\n * $setValue: SetValue\n * }}\n */ (/** @type {HTMLElement} */ (\n this.parentElement?.parentElement\n )?.previousElementSibling);\n metadataFieldset.$setValue(blob);\n }\n },\n name: `${typeNamespace}-blob`, type: 'file'\n })]\n ]]\n ]],\n ['fieldset', [\n ['legend', [\n 'Supply blob through recording'\n ]],\n (() => {\n const select = jml('select', {\n class: 'device',\n $on: {\n async change () {\n const videoContainer = /** @type {HTMLDivElement} */ (\n this.nextElementSibling?.nextElementSibling\n );\n\n const photo =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(videoContainer, 'img.photo'));\n photo.hidden = true;\n\n const oldVideo =\n /**\n * @type {HTMLVideoElement & {\n * $stream: MediaStream\n * }}\n */\n ($e(\n videoContainer,\n 'video.previewMedia'\n ));\n\n // Drop preexisting listeners\n const previewMedia =\n /**\n * @type {HTMLVideoElement & {\n * $stream: MediaStream,\n * $screenShare: boolean\n * }}\n */ (\n jml('video', {\n class: 'previewMedia'\n })\n );\n\n if (oldVideo.$stream) {\n const tracks = /** @type {MediaStream} */ (\n oldVideo.$stream\n ).getTracks();\n tracks.forEach((track) => {\n track.stop();\n });\n oldVideo.srcObject = null;\n }\n\n oldVideo.replaceWith(previewMedia);\n\n const takeSnapshot = /** @type {HTMLButtonElement} */ (\n $e(/** @type {HTMLDivElement} */ (\n select.nextElementSibling\n ), '.takeSnapshot')\n );\n\n const recordMedia = /** @type {HTMLButtonElement} */ (\n $e(/** @type {HTMLDivElement} */ (\n select.nextElementSibling\n ), '.recordMedia')\n );\n\n /** @type {HTMLDivElement} */ ($e(\n /** @type {HTMLDivElement} */\n (select.nextElementSibling?.\n nextElementSibling),\n 'div.recordedMedia'\n )).hidden = true;\n\n const visualizer = /** @type {HTMLCanvasElement} */ (\n $e(videoContainer, 'canvas.visualizer')\n );\n\n /**\n * @type {{\n * video?: true,\n * audio?: true\n * }|undefined}\n */\n let constraints;\n let screenShareConstraints;\n\n previewMedia.$screenShare = false;\n switch (select.value) {\n case 'audio-and-video':\n constraints = {video: true, audio: true};\n previewMedia.hidden = false;\n takeSnapshot.hidden = false;\n recordMedia.textContent = 'Record video/audio';\n break;\n case 'video':\n constraints = {video: true};\n previewMedia.hidden = false;\n takeSnapshot.hidden = false;\n recordMedia.textContent = 'Record video';\n break;\n case 'audio':\n constraints = {audio: true};\n previewMedia.hidden = true;\n takeSnapshot.hidden = true;\n recordMedia.textContent = 'Record audio';\n break;\n case 'screenShare':\n screenShareConstraints = {video: true};\n // Fallthrough\n case 'screenShareAndVideo':\n if (!screenShareConstraints) {\n screenShareConstraints = {video: true, audio: true};\n }\n previewMedia.$screenShare = true;\n previewMedia.hidden = true;\n takeSnapshot.hidden = true;\n visualizer.hidden = true;\n break;\n default:\n return;\n }\n\n if (constraints) {\n const mediaStream = await getUserMedia(constraints);\n /* istanbul ignore if */\n if (!mediaStream) {\n await dialogs.alert('Error getting user media');\n return;\n }\n\n videoContainer.hidden = false;\n previewMedia.srcObject = mediaStream;\n\n // Save as stream for later reuse as stream\n previewMedia.$stream = mediaStream;\n\n if (constraints.video) {\n const canvas =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(\n videoContainer,\n 'canvas.recordedImage'\n ));\n // https://developer.mozilla.org/en-US/docs/Web/API/Media_Capture_and_Streams_API/Taking_still_photos\n previewMedia.addEventListener('canplay', () => {\n canvas.setAttribute('width', String(\n previewMedia.videoWidth\n ));\n canvas.setAttribute(\n 'height', String(previewMedia.videoHeight)\n );\n });\n }\n\n previewMedia.addEventListener('loadedmetadata', () => {\n previewMedia.play();\n if (constraints?.audio) {\n visualizer.hidden = false;\n visualize(\n mediaStream,\n visualizer\n );\n } else {\n visualizer.hidden = true;\n }\n });\n } else if (screenShareConstraints) {\n const mediaStream = await startScreenCapture(\n screenShareConstraints\n );\n /* istanbul ignore if */\n if (!mediaStream) {\n await dialogs.alert('Error getting user media');\n return;\n }\n\n videoContainer.hidden = false;\n previewMedia.srcObject = mediaStream;\n\n // Save as stream for later reuse as stream\n previewMedia.$stream = mediaStream;\n }\n }\n }\n }, [\n ['option', {value: ''}, ['Please choose a device']]\n ]);\n\n (async () => {\n const devices = await navigator.mediaDevices.enumerateDevices();\n let hasAudioInput = false;\n let hasVideoInput = false;\n devices.forEach((device) => {\n switch (device.kind) {\n case 'audioinput':\n hasAudioInput = true;\n break;\n case 'videoinput':\n hasVideoInput = true;\n break;\n default:\n break;\n }\n });\n\n if (hasAudioInput) {\n jml('option', {value: 'audio'}, ['Microphone only'], select);\n }\n if (hasVideoInput) {\n jml('option', {value: 'video'}, ['Video camera only'], select);\n }\n if (hasAudioInput && hasVideoInput) {\n jml(\n 'option',\n {value: 'audio-and-video'},\n ['Video camera and microphone'],\n select\n );\n }\n\n // Can't be feature detected for privacy reasons\n jml('option', {\n value: 'screenShare'\n }, ['Screen share'], select);\n jml('option', {\n value: 'screenShareAndVideo'\n }, ['Screen share and microphone'], select);\n })();\n\n return select;\n })(),\n ' ',\n ['div', [\n // @ts-expect-error It's ok\n ['button', /** @type {import('jamilih').JamilihAttributes} */ ({\n class: 'recordMedia',\n $on: {\n /**\n * @param {Event} e\n * @this {HTMLButtonElement & {\n * $mediaRecorder: MediaRecorder\n * }}\n */\n click (e) {\n e.preventDefault();\n const previewMedia =\n /**\n * @type {HTMLVideoElement & {$stream: MediaStream}}\n */ ($e(\n /** @type {HTMLDivElement} */\n (this.parentElement?.nextElementSibling),\n 'video.previewMedia'\n ));\n\n /* istanbul ignore if */\n if (!previewMedia.srcObject) {\n dialogs.alert('No stream found to record');\n return;\n }\n\n // Not interested in the photo now, so hide it\n const videoContainer = /** @type {HTMLDivElement} */ (\n this.parentElement?.nextElementSibling\n );\n const photo =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(videoContainer, 'img.photo'));\n photo.hidden = true;\n\n // Todo: Could check codecs for allowable values\n // as second argument\n // see https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/isTypeSupported_static\n const mimeType = 'video/webm';\n const mediaRecorder = new MediaRecorder(previewMedia.$stream, {\n mimeType\n });\n\n /** @type {Blob[]} */\n let chunks = [];\n mediaRecorder.addEventListener('dataavailable', (e) => {\n chunks.push(e.data);\n });\n\n try {\n mediaRecorder.start();\n /* istanbul ignore next */\n } catch {\n /* istanbul ignore next */\n dialogs.alert('Error starting media recorder');\n /* istanbul ignore next */\n return;\n }\n mediaRecorder.addEventListener('stop', () => {\n const blob = new Blob(chunks, {\n type: mimeType\n });\n\n const url = URL.createObjectURL(blob);\n\n const recordedMedia = /** @type {HTMLVideoElement} */ ($e(\n /** @type {HTMLDivElement} */\n (this.parentElement?.nextElementSibling),\n 'video.recordedMedia'\n // )).srcObject = blob;\n ));\n /** @type {HTMLDivElement} */ (\n recordedMedia.parentElement\n ).hidden = false;\n\n recordedMedia.src = url;\n\n recordedMedia.addEventListener('loadeddata', () => {\n URL.revokeObjectURL(url);\n });\n\n const root = /** @type {HTMLDivElement} */\n (this.closest('[data-type=\"blob\"]'));\n /**\n * @type {HTMLFieldSetElement & {\n * $setValue: SetValue\n * }}\n */ ($e(\n root, 'fieldset.blobMetaData'\n )).$setValue(blob);\n\n chunks = [];\n });\n\n this.$mediaRecorder = mediaRecorder;\n\n // Todo: Could make option for front/back\n // camera (\"user\"/\"environment\") and bringIntoFocus\n }\n }\n }), [\n 'Record media'\n ]],\n ['button', {\n class: 'stopRecording',\n $on: {\n click (e) {\n e.preventDefault();\n /**\n * @type {HTMLButtonElement & {$mediaRecorder: MediaRecorder}}\n */ (\n this.previousElementSibling\n ).$mediaRecorder.stop();\n\n // const previewMedia =\n // /**\n // * @type {HTMLVideoElement & {\n // * $stream: MediaStream,\n // * $screenShare: boolean\n // * }}\n // */ (\n // $e(\n // /** @type {HTMLDivElement} */\n // (this.parentElement?.nextElementSibling),\n // '.previewMedia'\n // )\n // );\n\n // Doesn't hurt to keep the normal video going as user\n // may wish to re-record, but for screen-sharing, we\n // may want to reenable this, at the cost that the\n // screen sharing cannot be re-done\n // if (previewMedia.$screenShare) {\n // const tracks = /** @type {MediaStream} */ (\n // previewMedia.$stream\n // ).getTracks();\n // tracks.forEach((track) => {\n // track.stop();\n // });\n // }\n // previewMedia.srcObject = null;\n }\n }\n }, [\n 'Stop recording'\n ]],\n ['button', {\n class: 'takeSnapshot',\n hidden: true\n }, {\n $on: {\n click (e) {\n e.preventDefault();\n\n const videoContainer = /** @type {HTMLDivElement} */\n (this.parentElement?.nextElementSibling);\n\n // Not interested in this anymore\n /** @type {HTMLVideoElement} */\n ($e(videoContainer, '.recordedMedia')).hidden = true;\n\n const canvas =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(videoContainer, 'canvas.recordedImage'));\n\n const context = /** @type {CanvasRenderingContext2D} */ (\n canvas.getContext('2d')\n );\n\n const previewMedia =\n /**\n * @type {HTMLVideoElement}\n */\n ($e(videoContainer, 'video.previewMedia'));\n context.drawImage(\n previewMedia, 0, 0, canvas.width, canvas.height\n );\n const photo =\n /**\n * @type {HTMLCanvasElement}\n */\n ($e(videoContainer, 'img.photo'));\n\n canvas.toBlob((blob) => {\n /* istanbul ignore if */\n if (!blob) {\n dialogs.alert('Error converting canvas to Blob');\n return;\n }\n const newPhoto = jml('img', {\n class: 'photo'\n });\n const url = URL.createObjectURL(blob);\n\n newPhoto.addEventListener('load', () => {\n // no longer need to read the blob so it's revoked\n URL.revokeObjectURL(url);\n });\n\n const root = /** @type {HTMLDivElement} */\n (this.closest('[data-type=\"blob\"]'));\n /**\n * @type {HTMLFieldSetElement & {\n * $setValue: SetValue\n * }}\n */ ($e(\n root, 'fieldset.blobMetaData'\n )).$setValue(blob);\n\n newPhoto.src = url;\n photo.replaceWith(newPhoto);\n });\n }\n }\n }, [\n 'Take and use snapshot as blob'\n ]]\n ]],\n ['div', {class: 'videoContainer', hidden: true}, [\n ['canvas', {class: 'visualizer', hidden: true}],\n ['br'],\n ['video', {class: 'previewMedia'}],\n ['div', [\n ['canvas', {hidden: true, class: 'recordedImage'}],\n ['img', {class: 'photo'}]\n ]],\n [\n 'div',\n {class: 'recordedMedia'},\n /** @type {import('jamilih').JamilihChildren} */ ([\n ...(() => {\n const recordedMedia = jml(\n 'video', {class: 'recordedMedia'}\n );\n return [\n recordedMedia,\n ['br'],\n jml('button', {\n class: 'play',\n $on: {\n click (e) {\n e.preventDefault();\n recordedMedia.play();\n }\n }\n }, [\n 'Play'\n ]),\n jml('button', {\n class: 'pause',\n $on: {\n click (e) {\n e.preventDefault();\n recordedMedia.pause();\n }\n }\n }, [\n 'Pause'\n ]),\n jml('button', {\n class: 'replay',\n $on: {\n click (e) {\n e.preventDefault();\n recordedMedia.pause();\n recordedMedia.currentTime = 0;\n recordedMedia.play();\n }\n }\n }, [\n 'Replay'\n ])\n ];\n })()\n ])\n ]\n ]]\n ]]\n ]];\n }\n};\n\nexport default blobType;\n","import {toStringTag} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\n\nlet domExceptionNameId = 0;\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst domexceptionType = {\n option: ['DOMException'],\n stringRegex: /^DOMException\\((.*)\\)$/u,\n valueMatch (x) {\n return toStringTag(x) === 'DOMException';\n },\n toValue (s) {\n const {message, name} = JSON.parse(s);\n return {value: new DOMException(message, name)};\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n setValue ({root, value}) {\n /** @type {HTMLInputElement} */ (\n $e(root, '.message')\n ).value = value.message;\n /** @type {HTMLInputElement} */ (\n $e(root, '.name')\n ).value = value.name;\n },\n getValue ({root}) {\n const message = /** @type {HTMLInputElement} */ (\n $e(root, '.message')\n ).value;\n const name = /** @type {HTMLInputElement} */ (\n $e(root, '.name')\n ).value;\n return new DOMException(message, name);\n },\n viewUI ({value, specificSchemaObject}) {\n return ['div', {\n dataset: {type: 'domexception'},\n title: specificSchemaObject?.description ?? '(a `DOMException`)'\n }, [\n ['b', ['Message ']],\n value.message,\n ['br'],\n ['b', ['Name ']],\n value.name,\n ['br'],\n ['b', ['Code ']],\n value.code\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value = ''}) {\n domExceptionNameId++;\n return ['div', {\n dataset: {type: 'domexception'},\n title: specificSchemaObject?.description ?? 'DOMException'\n }, /** @type {import('jamilih').JamilihChildren} */ ([\n ['label', [\n 'Name: ',\n ['input', {\n class: 'name',\n list: `domExceptionNames-${domExceptionNameId}`,\n name: `${typeNamespace}-domexception-name`,\n value: value?.name ?? '',\n size: 30,\n placeholder: '(Optional predefined name)'\n }]\n ]],\n ['datalist', {\n id: `domExceptionNames-${domExceptionNameId}`,\n class: 'predefinedNames'\n }, [\n 'IndexSizeError',\n 'HierarchyRequestError',\n 'WrongDocumentError',\n 'InvalidCharacterError',\n 'NoModificationAllowedError',\n 'NotFoundError',\n 'NotSupportedError',\n 'InvalidStateError',\n 'InUseAttributeError',\n 'SyntaxError',\n 'InvalidModificationError',\n 'NamespaceError',\n 'InvalidAccessError',\n 'TypeMismatchError',\n 'SecurityError',\n 'NetworkError',\n 'AbortError',\n 'URLMismatchError',\n 'QuotaExceededError',\n 'TimeoutError',\n 'InvalidNodeTypeError',\n 'DataCloneError',\n 'EncodingError',\n 'NotReadableError',\n 'UnknownError',\n 'ConstraintError',\n 'DataError',\n 'TransactionInactiveError',\n 'ReadOnlyErrorVersionError',\n 'OperationError',\n 'NotAllowedError'\n ].map((name) => {\n return ['option', [name]];\n })],\n ['br'],\n ['label', [\n 'Message: ',\n ['input', {\n class: 'message',\n name: `${typeNamespace}-domexception-message`,\n value: value?.message ?? ''\n }]\n ]]\n ])];\n }\n};\n\nexport default domexceptionType;\n","import {$e} from '../utils/templateUtils.js';\nimport {toStringTag} from '../vendor-imports.js';\n\nlet idx = 0;\n\n/**\n * @type {import('../types.js').SuperTypeObject}\n */\nconst domrectType = {\n option: ['DOMRect'],\n childTypes: ['domrectreadonly'],\n stringRegex: /^(?<domRectClass>DOMRect|DOMRectReadOnly)\\((?<innerContent>.*)\\)$/u,\n valueMatch (x) {\n return ['DOMRect', 'DOMRectReadOnly'].includes(toStringTag(x));\n },\n toValue (s, rootInfo) {\n /* istanbul ignore next -- Should always be found */\n const {groups: {\n domRectClass\n /* istanbul ignore next -- Should always be found */\n } = {}} = /** @type {RegExpMatchArray} */ (\n /** @type {import('../types.js').RootInfo} */ (rootInfo).match\n );\n const {x, y, width, height} = JSON.parse(s);\n return {\n value: new (\n domRectClass === 'DOMRect' ? DOMRect : DOMRectReadOnly\n )(x, y, width, height)};\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n setValue ({root, value}) {\n /** @type {HTMLInputElement} */ (\n $e(root, '.x')\n ).value = String(value.x);\n /** @type {HTMLInputElement} */ (\n $e(root, '.y')\n ).value = String(value.y);\n /** @type {HTMLInputElement} */ (\n $e(root, '.width')\n ).value = String(value.width);\n /** @type {HTMLInputElement} */ (\n $e(root, '.height')\n ).value = String(value.height);\n\n if (toStringTag(value) === 'DOMRect') {\n /** @type {HTMLInputElement} */ (\n $e(root, '.domrect-readonly-readwrite')\n ).checked = true;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, '.domrect-readonly-readonly')\n ).checked = true;\n }\n },\n getValue ({root}) {\n const x = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.x')\n ).value);\n const y = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.y')\n ).value);\n const width = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.width')\n ).value);\n const height = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.height')\n ).value);\n\n const isReadWrite = /** @type {HTMLInputElement} */ (\n $e(root, '.domrect-readonly-readwrite')\n ).checked;\n return new (isReadWrite ? DOMRect : DOMRectReadOnly)(x, y, width, height);\n },\n viewUI ({value, specificSchemaObject}) {\n const isReadWrite = toStringTag(value) === 'DOMRect';\n return ['div', {\n dataset: {\n type: 'domrect'\n },\n title: specificSchemaObject?.description\n ? `(a \\`${(isReadWrite ? 'DOMRect' : 'DOMRectReadOnly')}\\`)`\n : undefined\n }, [\n ['b', {\n class: 'emphasis'\n }, [\n specificSchemaObject?.description ??\n (isReadWrite ? 'DOMRect' : 'DOMRectReadOnly')\n ]],\n ['br'],\n ['b', ['x ']],\n value.x,\n ['br'],\n ['b', ['y ']],\n value.y,\n ['br'],\n ['b', ['width ']],\n value.width,\n ['br'],\n ['b', ['height ']],\n value.height\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value = {\n x: '',\n y: '',\n width: '',\n height: ''\n }}) {\n idx++;\n const step = 'any'; // Proper step?\n return ['div', {\n dataset: {type: 'domrect'},\n title: specificSchemaObject?.description ?? 'DOMRect'\n }, /** @type {import('jamilih').JamilihChildren} */ ([\n ['div', [\n ['label', [\n ['input', {\n type: 'radio',\n class: 'domrect-readonly-readwrite',\n name: `${typeNamespace}-domrect-readonly-${idx}`,\n value: 'readwrite',\n checked: toStringTag(value) !== 'DOMRectReadOnly'\n }],\n 'Readwrite'\n ]],\n ' ',\n ['label', [\n ['input', {\n type: 'radio',\n class: 'domrect-readonly-readonly',\n name: `${typeNamespace}-domrect-readonly-${idx}`,\n value: 'readonly',\n checked: toStringTag(value) === 'DOMRectReadOnly'\n }],\n 'Read-only'\n ]]\n ]],\n ['label', [\n 'x: ',\n ['input', {\n type: 'number',\n step,\n class: 'x',\n name: `${typeNamespace}-domrect-x`, value: value.x\n }]\n ]],\n ['br'],\n ['label', [\n 'y: ',\n ['input', {\n type: 'number',\n step,\n class: 'y',\n name: `${typeNamespace}-domrect-y`, value: value.y\n }]\n ]],\n ['br'],\n ['label', [\n 'width: ',\n ['input', {\n type: 'number',\n step,\n class: 'width',\n name: `${typeNamespace}-domrect-width`, value: value.width\n }]\n ]],\n ['br'],\n ['label', [\n 'height: ',\n ['input', {\n type: 'number',\n step,\n class: 'height',\n name: `${typeNamespace}-domrect-height`, value: value.height\n }]\n ]]\n ])];\n }\n};\n\nexport default domrectType;\n","import {$e} from '../utils/templateUtils.js';\nimport {toStringTag} from '../vendor-imports.js';\n\nlet idx = 0;\n\n/**\n * @type {import('../types.js').SuperTypeObject}\n */\nconst dompointType = {\n option: ['DOMPoint'],\n childTypes: ['dompointreadonly'],\n stringRegex: /^(?<domPointClass>DOMPoint|DOMPointReadOnly)\\((?<innerContent>.*)\\)$/u,\n valueMatch (x) {\n return ['DOMPoint', 'DOMPointReadOnly'].includes(toStringTag(x));\n },\n toValue (s, rootInfo) {\n /* istanbul ignore next -- Should always be found */\n const {groups: {\n domPointClass\n /* istanbul ignore next -- Should always be found */\n } = {}} = /** @type {RegExpMatchArray} */ (\n /** @type {import('../types.js').RootInfo} */ (rootInfo).match\n );\n const {x, y, z, w} = JSON.parse(s);\n return {value: new (\n domPointClass === 'DOMPoint' ? DOMPoint : DOMPointReadOnly\n )(x, y, z, w)};\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n setValue ({root, value}) {\n /** @type {HTMLInputElement} */ (\n $e(root, '.x')\n ).value = String(value.x);\n /** @type {HTMLInputElement} */ (\n $e(root, '.y')\n ).value = String(value.y);\n /** @type {HTMLInputElement} */ (\n $e(root, '.z')\n ).value = String(value.z);\n /** @type {HTMLInputElement} */ (\n $e(root, '.w')\n ).value = String(value.w);\n\n if (toStringTag(value) === 'DOMPoint') {\n /** @type {HTMLInputElement} */ (\n $e(root, '.dompoint-readonly-readwrite')\n ).checked = true;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, '.dompoint-readonly-readonly')\n ).checked = true;\n }\n },\n getValue ({root}) {\n const x = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.x')\n ).value);\n const y = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.y')\n ).value);\n const z = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.z')\n ).value);\n const w = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.w')\n ).value);\n\n const isReadWrite = /** @type {HTMLInputElement} */ (\n $e(root, '.dompoint-readonly-readwrite')\n ).checked;\n return new (isReadWrite ? DOMPoint : DOMPointReadOnly)(x, y, z, w);\n },\n viewUI ({value, specificSchemaObject}) {\n const isReadWrite = toStringTag(value) === 'DOMPoint';\n return ['div', {\n dataset: {type: 'dompoint'},\n title: specificSchemaObject?.description\n ? `(a \\`${(isReadWrite ? 'DOMPoint' : 'DOMPointReadOnly')}\\`)`\n : undefined\n }, [\n ['b', {class: 'emphasis'}, [\n specificSchemaObject?.description ??\n (isReadWrite ? 'DOMPoint' : 'DOMPointReadOnly')\n ]],\n ['br'],\n ['b', ['x ']],\n value.x,\n ['br'],\n ['b', ['y ']],\n value.y,\n ['br'],\n ['b', ['z ']],\n value.z,\n ['br'],\n ['b', ['w ']],\n value.w\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value = {\n x: '',\n y: '',\n z: '',\n w: ''\n }}) {\n idx++;\n const step = 'any'; // Proper step?\n return ['div', {\n dataset: {type: 'dompoint'},\n title: specificSchemaObject?.description ?? 'DOMPoint'\n }, /** @type {import('jamilih').JamilihChildren} */ ([\n ['div', [\n ['label', [\n ['input', {\n type: 'radio',\n class: 'dompoint-readonly-readwrite',\n name: `${typeNamespace}-dompoint-readonly-${idx}`,\n value: 'readwrite',\n checked: toStringTag(value) !== 'DOMPointReadOnly'\n }],\n 'Readwrite'\n ]],\n ' ',\n ['label', [\n ['input', {\n type: 'radio',\n class: 'dompoint-readonly-readonly',\n name: `${typeNamespace}-dompoint-readonly-${idx}`,\n value: 'readonly',\n checked: toStringTag(value) === 'DOMPointReadOnly'\n }],\n 'Read-only'\n ]]\n ]],\n ['label', [\n 'x: ',\n ['input', {\n type: 'number',\n step,\n class: 'x',\n name: `${typeNamespace}-dompoint-x`, value: value.x\n }]\n ]],\n ['br'],\n ['label', [\n 'y: ',\n ['input', {\n type: 'number',\n step,\n class: 'y',\n name: `${typeNamespace}-dompoint-y`, value: value.y\n }]\n ]],\n ['br'],\n ['label', [\n 'z: ',\n ['input', {\n type: 'number',\n step,\n class: 'z',\n name: `${typeNamespace}-dompoint-z`, value: value.z\n }]\n ]],\n ['br'],\n ['label', [\n 'w: ',\n ['input', {\n type: 'number',\n step,\n class: 'w',\n name: `${typeNamespace}-dompoint-w`, value: value.w\n }]\n ]]\n ])];\n }\n};\n\nexport default dompointType;\n","import {$e} from '../utils/templateUtils.js';\nimport {toStringTag} from '../vendor-imports.js';\n\nlet idx = 0;\n\n/**\n * @type {import('../types.js').SuperTypeObject}\n */\nconst dommatrixType = {\n option: ['DOMMatrix'],\n childTypes: ['dommatrixreadonly'],\n stringRegex: /^(?<domMatrixClass>DOMMatrix|DOMMatrixReadOnly)\\((?<innerContent>.*)\\)$/u,\n valueMatch (x) {\n return ['DOMMatrix', 'DOMMatrixReadOnly'].includes(toStringTag(x));\n },\n toValue (s, rootInfo) {\n /* istanbul ignore next -- Should always be found */\n const {groups: {\n domMatrixClass\n /* istanbul ignore next -- Should always be found */\n } = {}} = /** @type {RegExpMatchArray} */ (\n /** @type {import('../types.js').RootInfo} */ (rootInfo).match\n );\n const o = JSON.parse(s);\n\n const DOMMatrixClass = domMatrixClass === 'DOMMatrix'\n ? DOMMatrix\n : DOMMatrixReadOnly;\n\n const dommatrix = Object.hasOwn(o, 'a')\n ? new DOMMatrixClass([o.a, o.b, o.c, o.d, o.e, o.f])\n : new DOMMatrixClass([\n o.m11, o.m12, o.m13, o.m14,\n o.m21, o.m22, o.m23, o.m24,\n o.m31, o.m32, o.m33, o.m34,\n o.m41, o.m42, o.m43, o.m44\n ]);\n\n return {value: dommatrix};\n },\n getInput ({root}) {\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n setValue ({root, value: o}) {\n const {is2D} = o;\n /** @type {HTMLInputElement} */ ($e(root, '.d2')).checked = is2D;\n /** @type {HTMLInputElement} */ ($e(root, '.d3')).checked = !is2D;\n\n /** @type {HTMLDivElement} */ (\n $e(root, '.holder2d')\n ).hidden = /** @type {HTMLInputElement} */ !is2D;\n /** @type {HTMLDivElement} */ (\n $e(root, '.holder3d')\n ).hidden = /** @type {HTMLInputElement} */ is2D;\n\n if (is2D) {\n /** @type {HTMLInputElement} */ (\n $e(root, '.a')\n ).value = o.a;\n /** @type {HTMLInputElement} */ (\n $e(root, '.b')\n ).value = o.b;\n /** @type {HTMLInputElement} */ (\n $e(root, '.c')\n ).value = o.c;\n /** @type {HTMLInputElement} */ (\n $e(root, '.d')\n ).value = o.d;\n /** @type {HTMLInputElement} */ (\n $e(root, '.e')\n ).value = o.e;\n /** @type {HTMLInputElement} */ (\n $e(root, '.f')\n ).value = o.f;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, '.m11')\n ).value = o.m11;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m12')\n ).value = o.m12;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m13')\n ).value = o.m13;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m14')\n ).value = o.m14;\n\n /** @type {HTMLInputElement} */ (\n $e(root, '.m21')\n ).value = o.m21;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m22')\n ).value = o.m22;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m23')\n ).value = o.m23;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m24')\n ).value = o.m24;\n\n /** @type {HTMLInputElement} */ (\n $e(root, '.m31')\n ).value = o.m31;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m32')\n ).value = o.m32;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m33')\n ).value = o.m33;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m34')\n ).value = o.m34;\n\n /** @type {HTMLInputElement} */ (\n $e(root, '.m41')\n ).value = o.m41;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m42')\n ).value = o.m42;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m43')\n ).value = o.m43;\n /** @type {HTMLInputElement} */ (\n $e(root, '.m44')\n ).value = o.m44;\n }\n\n if (toStringTag(o) === 'DOMMatrix') {\n /** @type {HTMLInputElement} */ (\n $e(root, '.dommatrix-readonly-readwrite')\n ).checked = true;\n } else {\n /** @type {HTMLInputElement} */ (\n $e(root, '.dommatrix-readonly-readonly')\n ).checked = true;\n }\n },\n getValue ({root}) {\n const isReadWrite = /** @type {HTMLInputElement} */ (\n $e(root, '.dommatrix-readonly-readwrite')\n ).checked;\n const DOMMatrixClass = isReadWrite ? DOMMatrix : DOMMatrixReadOnly;\n\n const aType = /** @type {HTMLInputElement} */ (\n $e(root, '.a')\n ).value;\n\n if (aType) {\n const a = Number(aType);\n const b = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.b')\n ).value);\n const c = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.c')\n ).value);\n const d = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.d')\n ).value);\n const e = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.e')\n ).value);\n const f = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.f')\n ).value);\n return new DOMMatrixClass([a, b, c, d, e, f]);\n }\n\n const m11 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m11')\n ).value);\n const m12 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m12')\n ).value);\n const m13 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m13')\n ).value);\n const m14 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m14')\n ).value);\n\n const m21 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m21')\n ).value);\n const m22 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m22')\n ).value);\n const m23 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m23')\n ).value);\n const m24 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m24')\n ).value);\n\n const m31 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m31')\n ).value);\n const m32 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m32')\n ).value);\n const m33 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m33')\n ).value);\n const m34 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m34')\n ).value);\n\n const m41 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m41')\n ).value);\n const m42 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m42')\n ).value);\n const m43 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m43')\n ).value);\n const m44 = Number(/** @type {HTMLInputElement} */ (\n $e(root, '.m44')\n ).value);\n\n return new DOMMatrixClass([\n m11, m12, m13, m14,\n m21, m22, m23, m24,\n m31, m32, m33, m34,\n m41, m42, m43, m44\n ]);\n },\n viewUI ({value, specificSchemaObject}) {\n const isReadWrite = toStringTag(value) === 'DOMMatrix';\n return ['div', {dataset: {type: 'dommatrix'}}, [\n ['b', {\n class: 'emphasis',\n title: specificSchemaObject?.description\n ? `(a \\`${(isReadWrite ? 'DOMMatrix' : 'DOMMatrixReadOnly')}\\`)`\n : undefined\n }, [\n specificSchemaObject?.description ??\n (isReadWrite ? 'DOMMatrix' : 'DOMMatrixReadOnly')\n ]],\n value.is2D\n ? ['div', [\n ['b', ['a ']],\n value.a,\n ['br'],\n ['b', ['b ']],\n value.b,\n ['br'],\n ['b', ['c ']],\n value.c,\n ['br'],\n ['b', ['d ']],\n value.d,\n ['br'],\n ['b', ['e ']],\n value.e,\n ['br'],\n ['b', ['f ']],\n value.f\n ]]\n : ['div', [\n ['b', ['m11 ']],\n value.m11,\n ['br'],\n ['b', ['m12 ']],\n value.m12,\n ['br'],\n ['b', ['m13 ']],\n value.m13,\n ['br'],\n ['b', ['m14 ']],\n value.m14,\n ['br'],\n\n ['b', ['m21 ']],\n value.m21,\n ['br'],\n ['b', ['m22 ']],\n value.m22,\n ['br'],\n ['b', ['m23 ']],\n value.m23,\n ['br'],\n ['b', ['m24 ']],\n value.m24,\n ['br'],\n\n ['b', ['m31 ']],\n value.m31,\n ['br'],\n ['b', ['m32 ']],\n value.m32,\n ['br'],\n ['b', ['m33 ']],\n value.m33,\n ['br'],\n ['b', ['m34 ']],\n value.m34,\n ['br'],\n\n ['b', ['m41 ']],\n value.m41,\n ['br'],\n ['b', ['m42 ']],\n value.m42,\n ['br'],\n ['b', ['m43 ']],\n value.m43,\n ['br'],\n ['b', ['m44 ']],\n value.m44\n ]]\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value = {}}) {\n idx++;\n const {is2D} = value;\n const step = 'any'; // Proper step?\n\n return ['div', {\n dataset: {type: 'dommatrix'},\n title: specificSchemaObject?.description ?? 'DOMMatrix'\n }, /** @type {import('jamilih').JamilihChildren} */ ([\n ['div', [\n ['label', [\n ['input', {\n type: 'radio',\n class: 'dommatrix-readonly-readwrite',\n name: `${typeNamespace}-dommatrix-readonly-${idx}`,\n value: 'readwrite',\n checked: toStringTag(value) !== 'DOMMatrixReadOnly'\n }],\n 'Readwrite'\n ]],\n ' ',\n ['label', [\n ['input', {\n type: 'radio',\n class: 'dommatrix-readonly-readonly',\n name: `${typeNamespace}-dommatrix-readonly-${idx}`,\n value: 'readonly',\n checked: toStringTag(value) === 'DOMMatrixReadOnly'\n }],\n 'Read-only'\n ]]\n ]],\n ['div', {\n $on: {\n click (e) {\n const {target} = e;\n /* istanbul ignore if */\n if (/** @type {HTMLInputElement} */ (target).type !== 'radio') {\n return;\n }\n const parent = /** @type {HTMLDivElement} */ (this.parentElement);\n /** @type {HTMLDivElement} */ (\n $e(parent, '.holder2d')\n ).hidden = /** @type {HTMLInputElement} */ (target).value === '3d';\n /** @type {HTMLDivElement} */ (\n $e(parent, '.holder3d')\n ).hidden = /** @type {HTMLInputElement} */ (target).value === '2d';\n }\n }\n }, [\n ['label', [\n '2d',\n ['input', {\n class: 'd2',\n type: 'radio', name: `${typeNamespace}-dommatrix-dimension-${idx}`,\n value: '2d',\n checked: Boolean(is2D)\n }]\n ]],\n ' ',\n ['label', [\n '3d',\n ['input', {\n class: 'd3',\n type: 'radio', name: `${typeNamespace}-dommatrix-dimension-${idx}`,\n value: '3d',\n checked: !is2D\n }]\n ]]\n ]],\n ['div', {\n class: 'holder2d',\n hidden: !is2D\n }, (['a', 'b', 'c', 'd', 'e', 'f'].flatMap((label) => {\n return [\n ['br'],\n ['label', [\n label + ': ',\n ['input', {\n type: 'number',\n step,\n class: label,\n name: `${typeNamespace}-dommatrix-${label}`,\n value: value[label] ?? ''\n }]\n ]]\n ];\n })).slice(1)],\n ['div', {\n class: 'holder3d',\n hidden: Boolean(is2D)\n }, ([\n 'm11', 'm12', 'm13', 'm14',\n 'm21', 'm22', 'm23', 'm24',\n 'm31', 'm32', 'm33', 'm34',\n 'm41', 'm42', 'm43', 'm44'\n ].flatMap((label) => {\n return [\n ['br'],\n ['label', [\n label + ': ',\n ['input', {\n type: 'number',\n step,\n class: label,\n name: `${typeNamespace}-dommatrix-${label}`,\n value: value[label] ?? ''\n }]\n ]]\n ];\n })).slice(1)]\n ])];\n }\n};\n\nexport default dommatrixType;\n","import {$e, $$e} from '../utils/templateUtils.js';\nimport {jml, toStringTag} from '../vendor-imports.js';\nimport dialogs from '../utils/dialogs.js';\n\nconst dataViewMethods = /** @type {const} */ ([\n 'setInt8',\n 'setUint8',\n 'setInt16',\n 'setUint16',\n 'setInt32',\n 'setUint32',\n 'setFloat32',\n 'setFloat64',\n 'setBigInt64',\n 'setBigUint64'\n]);\n\nconst typedArrays = /** @type {const} */ ([\n 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', 'Int16Array',\n 'Uint16Array', 'Int32Array', 'Uint32Array', 'Float32Array',\n 'Float64Array', 'BigInt64Array', 'BigUint64Array'\n]);\n\n/**\n * @param {TypedArray} typedArray\n * @returns {{min: number, max: number}}\n */\nconst getMinMaxForTypedArray = (typedArray) => {\n switch (typedArray) {\n case 'Int8Array':\n return {min: -128, max: 127};\n case 'Uint8Array':\n return {min: 0, max: 255};\n case 'Uint8ClampedArray':\n return {min: 0, max: 255};\n case 'Int16Array':\n return {min: -32768, max: 32767};\n case 'Uint16Array':\n return {min: 0, max: 65535};\n case 'Int32Array':\n return {min: -2147483648, max: 2147483647};\n case 'Uint32Array':\n return {min: 0, max: 4294967295};\n case 'Float32Array':\n return {min: -3.4e38, max: 3.4e38};\n case 'Float64Array':\n // eslint-disable-next-line no-loss-of-precision -- Inevitable?\n return {min: -1.8e308, max: 1.8e308};\n case 'BigInt64Array':\n return {min: -(2 ** 63), max: (2 ** 63) - 1};\n case 'BigUint64Array':\n return {min: 0, max: (2 ** 64) - 1};\n /* istanbul ignore next -- Guard */\n default:\n /* istanbul ignore next -- Guard */\n throw new Error('Unexpected typed array type');\n }\n};\n\n/**\n * @typedef {\"Int8Array\"|\"Uint8Array\"|\"Uint8ClampedArray\"|\n * \"Int16Array\"|\"Uint16Array\"|\"Int32Array\"|\"Uint32Array\"|\n * \"Float32Array\"|\"Float64Array\"|\"BigInt64Array\"|\n * \"BigUint64Array\"} TypedArray\n */\n\n/**\n * @typedef {Int8Array|Uint8Array|Uint8ClampedArray|\n * Int16Array|Uint16Array|Int32Array|Uint32Array|\n* Float32Array|Float64Array|BigInt64Array|\n* BigUint64Array} TypedArrayInstance\n */\n\n/**\n * @param {TypedArray} prop\n * @returns {Int8ArrayConstructor|Uint8ArrayConstructor|\n * Uint8ClampedArrayConstructor|Int16ArrayConstructor|\n * Uint16ArrayConstructor|Int32ArrayConstructor|Uint32ArrayConstructor|\n * Float32ArrayConstructor|Float64ArrayConstructor|\n * BigInt64ArrayConstructor|BigUint64ArrayConstructor}\n */\nconst getTypedArray = (prop) => {\n switch (prop) {\n case 'Int8Array':\n return Int8Array;\n case 'Uint8Array':\n return Uint8Array;\n case 'Uint8ClampedArray':\n return Uint8ClampedArray;\n case 'Int16Array':\n return Int16Array;\n case 'Uint16Array':\n return Uint16Array;\n case 'Int32Array':\n return Int32Array;\n case 'Uint32Array':\n return Uint32Array;\n case 'Float32Array':\n return Float32Array;\n case 'Float64Array':\n return Float64Array;\n case 'BigInt64Array':\n return BigInt64Array;\n case 'BigUint64Array':\n return BigUint64Array;\n /* istanbul ignore next -- Guard */\n default:\n /* istanbul ignore next -- Guard */\n throw new Error('Unexpected type');\n }\n};\n\nconst bufferSourceClasses = new Set([\n 'ArrayBuffer', 'DataView',\n 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', 'Int16Array', 'Uint16Array',\n 'Int32Array', 'Uint32Array', 'Float32Array', 'Float64Array', 'BigInt64Array',\n 'BigUint64Array'\n]);\n\nlet idx = 0;\n\n/**\n * @type {import('../types.js').SuperTypeObject}\n */\nconst buffersourceType = {\n option: ['Buffer source (ArrayBuffer, DataView, TypedArrays)'],\n childTypes: [\n 'arraybuffer',\n 'dataview',\n 'int8array', 'uint8array', 'uint8clampedarray', 'int16array',\n 'uint16array', 'int32array', 'uint32array', 'float32array',\n 'float64array', 'bigint64array', 'biguint64array'\n ],\n stringRegex: /^(?<bufferSourceClass>ArrayBuffer|DataView|(?:Int8|Uint8|Uint8Clamped|Int16|Uint16|Int32|Uint32|Float32|Float64|BigInt64|BigUint64)Array)\\((?<innerContent>.*)\\)$/u,\n valueMatch (x) {\n return bufferSourceClasses.has(toStringTag(x));\n },\n toValue (s, rootInfo) {\n /* istanbul ignore next -- Should always be found */\n const {groups: {\n bufferSourceClass\n /* istanbul ignore next -- Should always be found */\n } = {}} = /** @type {RegExpMatchArray} */ (\n /** @type {import('../types.js').RootInfo} */ (rootInfo).match\n );\n\n const o = JSON.parse(s);\n const {\n byteLength, maxByteLength, byteOffset,\n dataViewByteOffset,\n dataViewByteLength, length\n } = o;\n // @ts-expect-error Ok\n const buffer = new ArrayBuffer(byteLength, {maxByteLength});\n\n let typedArray, TypedArray;\n if (bufferSourceClass.endsWith('Array') || 'typedArray' in o) {\n TypedArray = getTypedArray(\n /** @type {TypedArray} */ (o.typedArray ?? bufferSourceClass)\n );\n\n typedArray = new TypedArray(buffer, byteOffset, length);\n\n if ('set' in o) {\n o.set[0].forEach(\n /**\n * @param {string} s\n * @param {number} i\n * @returns {void}\n */\n (s, i) => {\n if (typeof s === 'string') {\n o.set[0][i] = BigInt(s);\n }\n }\n );\n typedArray.set(...(\n /**\n * @type {[\n * array: Array<bigint> & Array<number>,\n * offset?: number | undefined\n * ]}\n */ (o.set)));\n }\n }\n\n /** @type {DataView|undefined} */\n let view;\n if (bufferSourceClass === 'DataView' || dataViewMethods.some((method) => {\n return method in o;\n })) {\n view = new DataView(buffer, dataViewByteOffset, dataViewByteLength);\n dataViewMethods.forEach((prop) => {\n o[prop]?.forEach(\n /**\n * @type {(info: [\n * byteOffset: number,\n * value: bigint|number,\n * littleEndian?: boolean|undefined\n * ]) => void}\n */\n (vals) => {\n if (typeof vals[1] === 'string') {\n vals[1] = BigInt(vals[1]);\n }\n // @ts-expect-error It's ok\n view[prop](...vals);\n }\n );\n });\n }\n return {\n value: bufferSourceClass === 'ArrayBuffer'\n ? buffer\n : bufferSourceClass === 'DataView'\n ? view\n : typedArray\n };\n },\n getInput ({root}) {\n const byteLength =\n /**\n * @type {HTMLInputElement & {\n * $value: BufferSource\n * }}\n */ ($e(root, '.byteLength'));\n return byteLength;\n },\n setValue ({root, value}) {\n const stringTag = toStringTag(value);\n if (stringTag === 'ArrayBuffer' || stringTag === 'DataView') {\n $e(root, `[value=${stringTag}].buffersource-returnType`)?.click();\n } else {\n $e(root, `[value=TypedArray].buffersource-returnType`)?.click();\n const typedArrays = /** @type {HTMLSelectElement} */ (\n $e(root, '.buffersource-typedArrays')\n );\n typedArrays.value = stringTag;\n typedArrays.dispatchEvent(new Event('change'));\n }\n\n const byteLength =\n /**\n * @type {HTMLInputElement & {\n * $value: BufferSource\n * }}\n */ ($e(root, '.byteLength'));\n\n byteLength.$value = value;\n\n const buffer = stringTag === 'ArrayBuffer' ? value : value.buffer;\n byteLength.value = buffer.byteLength;\n byteLength.dispatchEvent(new Event('change'));\n\n const maxByteLength = /** @type {HTMLInputElement} */ (\n $e(root, '.maxByteLength')\n );\n maxByteLength.value = buffer.maxByteLength;\n maxByteLength.dispatchEvent(new Event('change'));\n\n if (stringTag === 'DataView') {\n const dataViewByteLength = /** @type {HTMLInputElement} */ (\n $e(root, '.dataViewByteLength')\n );\n dataViewByteLength.value = value.byteLength;\n dataViewByteLength.dispatchEvent(new Event('change'));\n\n const dataViewByteOffset = /** @type {HTMLInputElement} */ (\n $e(root, '.dataViewByteOffset')\n );\n dataViewByteOffset.value = value.byteOffset;\n dataViewByteOffset.dispatchEvent(new Event('change'));\n } else if (stringTag !== 'ArrayBuffer') { // TypedArray\n const typedArrayByteOffset = /** @type {HTMLInputElement} */ (\n $e(root, '.typedArrayByteOffset')\n );\n typedArrayByteOffset.value = value.byteOffset;\n typedArrayByteOffset.dispatchEvent(new Event('change'));\n\n const typedArrayLength = /** @type {HTMLInputElement} */ (\n $e(root, '.typedArrayLength')\n );\n typedArrayLength.value = value.length;\n typedArrayLength.dispatchEvent(new Event('change'));\n }\n },\n getValue ({root}) {\n return /** @type {HTMLInputElement & {$value: BufferSource}} */ (\n this.getInput({root})\n ).$value;\n },\n viewUI ({value, specificSchemaObject}) {\n const stringTag = toStringTag(value);\n const buffer = stringTag === 'ArrayBuffer' ? value : value.buffer;\n\n return ['div', {dataset: {type: 'buffersource'}}, [\n ['b', {\n class: 'emphasis',\n title: specificSchemaObject?.description\n ? (/^[aeiou]/iu).test(stringTag)\n ? `(an ${stringTag})`\n : `(a ${stringTag})`\n : undefined\n }, [\n specificSchemaObject?.description ?? stringTag\n ]],\n ['br'],\n ['b', ['Buffer byte length: ']],\n buffer.byteLength,\n ['br'],\n ['b', ['Buffer max byte length: ']],\n buffer.maxByteLength,\n\n ...stringTag === 'DataView'\n ? [\n ['br'],\n ['b', ['Data View byte length: ']],\n value.byteLength,\n ['br'],\n ['b', ['Data View byte offset: ']],\n value.byteOffset\n ]\n : [''],\n ...(stringTag !== 'DataView' && stringTag !== 'ArrayBuffer') // TypedArray\n ? [\n ['br'],\n ['b', ['Typed Array byte offset: ']],\n value.byteOffset,\n ['br'],\n ['b', ['Typed Array length: ']],\n value.length\n ]\n : [''],\n ['br'],\n ['button', {\n class: 'buffersource-viewData',\n $on: {\n async click (e) {\n e.preventDefault();\n const dialog = await dialogs.makeCancelDialog({\n // @ts-expect-error TS bug\n children: /** @type {import('jamilih').JamilihChildren} */ ([\n ['select', {\n class: 'buffersource-typedArrays-view',\n 'aria-label': 'Typed Arrays',\n $on: {\n change () {\n const typedArrayVal = /** @type {HTMLSelectElement} */ (\n this\n ).value;\n const TypedArray = getTypedArray(\n /** @type {TypedArray} */ (typedArrayVal)\n );\n const typedArray = new TypedArray(buffer);\n const typedArrayArea = /** @type {HTMLElement} */ ($e(\n /** @type {HTMLElement} */\n (this.parentElement),\n '.typedArrayArea'\n ));\n typedArrayArea.textContent = '';\n typedArrayArea.append(\n ...Array.from({\n length: typedArray.length\n }, (_v, key) => {\n return jml('span', [\n ['b', [key]],\n ' ',\n ['span', [\n typedArray[key]\n ? String(typedArray[key])\n : '0'\n ]],\n ' '\n ]);\n })\n );\n }\n }\n }, typedArrays.map((typedArray) => {\n return ['option', {\n selected: stringTag === typedArray\n ? true\n : undefined\n }, [typedArray]];\n })],\n ['div', {\n class: 'typedArrayArea'\n }]\n ])\n });\n\n /** @type {HTMLSelectElement} */ (\n $e(dialog, '.buffersource-typedArrays-view')\n ).dispatchEvent(\n new Event('change')\n );\n // Todo: We could also add `DataView` get methods here\n // (and length/byte offset for the typed array) if\n // there is a demand\n }\n }\n }, ['View data']]\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value}) {\n idx++;\n\n /**\n * @typedef {() => void} BuildInstances\n */\n\n const div = jml('div', {\n dataset: {type: 'buffersource'},\n title: specificSchemaObject?.description ?? 'BufferSource'\n }, [\n ['fieldset', {\n class: 'returnType',\n $on: {\n change () {\n /**\n * @type {HTMLFieldSetElement & {\n * $buildInstances: BuildInstances\n * }}\n */ (this).$buildInstances();\n }\n },\n $custom: {\n /** @type {BuildInstances} */\n $buildInstances () {\n const that = /**\n * @type {HTMLFieldSetElement & {\n * $buildInstances: BuildInstances\n * }}\n */ (this);\n const ancestor = /** @type {HTMLDivElement} */ (that.parentElement);\n const {value} = /** @type {HTMLInputElement} */ ($e(\n that, `[name=${typeNamespace}-buffersource-returnType-${idx}]` +\n `:checked`\n ));\n\n const byteLength =\n /**\n * @type {HTMLInputElement & {\n * $value: BufferSource,\n * $dataView: DataView,\n * $typedArray: TypedArrayInstance\n * }}\n */ (\n $e(ancestor, '.byteLength')\n );\n const byteLengthVal = Number.parseInt(byteLength.value);\n const maxByteLength = Number.parseInt(\n /** @type {HTMLInputElement} */ (\n $e(ancestor, '.maxByteLength')\n ).value\n );\n\n const buffer = new ArrayBuffer(\n // @ts-expect-error New ArrayBuffer argument\n byteLengthVal, maxByteLength ? {maxByteLength} : undefined\n );\n\n const dataViewByteOffsetVal = /** @type {HTMLInputElement} */ ($e(\n ancestor,\n '.dataViewByteOffset'\n )).value;\n const dataViewByteOffset = dataViewByteOffsetVal\n ? Number.parseInt(dataViewByteOffsetVal)\n : 0;\n\n const dataViewByteLengthVal = /** @type {HTMLInputElement} */ ($e(\n ancestor,\n '.dataViewByteLength'\n )).value;\n const dataViewByteLength = dataViewByteLengthVal\n ? Number.parseInt(dataViewByteLengthVal)\n : undefined;\n\n const dataView = new DataView(\n buffer, dataViewByteOffset, dataViewByteLength\n );\n\n const {value: typedArrayValue} = /** @type {HTMLSelectElement} */ (\n $e(ancestor, '.buffersource-typedArrays-init')\n );\n\n const TypedArray = getTypedArray(\n /** @type {TypedArray} */ (typedArrayValue)\n );\n const typedArrayByteOffsetVal =\n /** @type {HTMLInputElement} */ ($e(\n ancestor,\n '.typedArrayByteOffset'\n )).value;\n const typedArrayByteOffset = typedArrayByteOffsetVal\n ? Number.parseInt(typedArrayByteOffsetVal)\n : 0;\n\n const typedArrayLengthVal =\n /** @type {HTMLInputElement} */ ($e(\n ancestor,\n '.typedArrayLength'\n )).value;\n const typedArrayLength = typedArrayLengthVal\n ? Number.parseInt(typedArrayLengthVal)\n : byteLengthVal;\n\n const typedArray = new TypedArray(\n buffer, typedArrayByteOffset, typedArrayLength\n );\n\n byteLength.$dataView = dataView;\n byteLength.$typedArray = typedArray;\n\n const typedArrayValues = $$e(\n ancestor, '.typedArrayArea .typedArrayValue'\n ).map((input) => {\n // Don't check dataset, as may be changing to BigInt now\n return TypedArray.name.startsWith('Big')\n ? BigInt(\n /** @type {HTMLInputElement} */ (input).value\n )\n : Number(\n /** @type {HTMLInputElement} */ (input).value\n );\n });\n\n // @ts-expect-error Ok\n byteLength.$typedArray.set(typedArrayValues, 0);\n\n switch (value) {\n case 'ArrayBuffer':\n byteLength.$value = buffer;\n break;\n case 'DataView': {\n byteLength.$value = dataView;\n break;\n } default: // 'TypedArray'\n byteLength.$value = typedArray;\n break;\n }\n }\n }\n }, [\n ['legend', ['Return type']],\n ['label', {\n $on: {\n click () {\n /** @type {HTMLElement} */ ($e(\n /** @type {HTMLElement} */ (this.parentElement),\n '.buffersource-typedArrays'\n )).hidden = true;\n /** @type {HTMLElement} */ ($e(\n /** @type {HTMLElement} */ (this?.parentElement?.parentElement),\n '.buffersource-typedArrays-init'\n )).hidden = false;\n }\n }\n }, [\n ['input', {\n type: 'radio',\n class: 'buffersource-returnType ' +\n 'buffersource-returnType-arraybuffer',\n name: `${typeNamespace}-buffersource-returnType-${idx}`,\n checked: true,\n value: 'ArrayBuffer'\n // checked: toStringTag(value) !== ''\n }],\n 'ArrayBuffer'\n ]],\n ' ',\n ['label', {\n $on: {\n click () {\n /** @type {HTMLElement} */ ($e(\n /** @type {HTMLElement} */ (this.parentElement),\n '.buffersource-typedArrays'\n )).hidden = true;\n /** @type {HTMLElement} */ ($e(\n /** @type {HTMLElement} */ (this?.parentElement?.parentElement),\n '.buffersource-typedArrays-init'\n )).hidden = false;\n }\n }\n }, [\n ['input', {\n type: 'radio',\n class: 'buffersource-returnType buffersource-returnType-dataview',\n name: `${typeNamespace}-buffersource-returnType-${idx}`,\n value: 'DataView'\n // checked: toStringTag(value) !== ''\n }],\n 'DataView'\n ]],\n ' ',\n ['label', {\n $on: {\n click () {\n /** @type {HTMLElement} */ ($e(\n /** @type {HTMLElement} */ (this.parentElement),\n '.buffersource-typedArrays'\n )).hidden = false;\n /** @type {HTMLElement} */ ($e(\n /** @type {HTMLElement} */ (this?.parentElement?.parentElement),\n '.buffersource-typedArrays-init'\n )).hidden = true;\n }\n }\n }, [\n ['input', {\n type: 'radio',\n class: 'buffersource-returnType buffersource-returnType-typedarray',\n name: `${typeNamespace}-buffersource-returnType-${idx}`,\n value: 'TypedArray'\n // checked: toStringTag(value) !== ''\n }],\n 'Typed Array'\n ]],\n ' ',\n ['select', {\n hidden: true, class: 'buffersource-typedArrays',\n 'aria-label': 'Typed Arrays',\n $on: {\n change (e) {\n const that = /** @type {HTMLSelectElement} */ (this);\n const ancestor = /** @type {HTMLElement} */ (\n that.parentElement?.parentElement\n );\n\n const select =\n /**\n * @type {HTMLSelectElement & {\n * $setMinsAndMaxes: SetMinsAndMaxes,\n * $checkTypedArrayByteLength: CheckTypedArrayByteLength\n * }}\n */\n ($e(\n ancestor,\n '.buffersource-typedArrays-init'\n ));\n\n // Update to reflect current state changes if later revealing\n select.value = /** @type {HTMLSelectElement} */ (this).value;\n\n const typedArrayLength =\n /**\n * @type {HTMLInputElement & {\n * $checkBufferBounds: CheckBufferBounds\n * }}\n */ (\n $e(ancestor, '.typedArrayLength')\n );\n if (!typedArrayLength.$checkBufferBounds(e)) {\n return;\n }\n\n select.$setMinsAndMaxes(\n /** @type {TypedArray} */\n (/** @type {HTMLSelectElement} */ (this).value)\n );\n\n select.$checkTypedArrayByteLength(e);\n\n const typedArrayByteOffset = $e(\n /** @type {HTMLElement} */\n (this?.parentElement?.parentElement),\n '.typedArrayByteOffset'\n );\n /**\n * @type {HTMLInputElement & {\n * $checkByteOffsetMultiple: CheckByteOffsetMultiple\n * }}\n */ (typedArrayByteOffset).$checkByteOffsetMultiple(e);\n }\n }\n }, typedArrays.map((typedArray) => {\n return ['option', [typedArray]];\n })]\n ]],\n ['fieldset', {\n $on: {\n change () {\n /**\n * @type {HTMLFieldSetElement & {\n * $buildInstances: BuildInstances\n * }}\n */ (this.previousElementSibling).$buildInstances();\n }\n }\n }, [\n ['legend', ['Construction options']],\n ['fieldset', [\n ['legend', ['ArrayBuffer']],\n ['label', [\n 'Byte length ',\n ['input', {\n class: 'byteLength',\n type: 'number', step: '1', size: '4',\n pattern: String.raw`\\d+`,\n min: 0,\n $custom: {\n $value: value ?? new ArrayBuffer(0)\n },\n $on: {\n change (e) {\n const that = /** @type {HTMLInputElement} */ (\n this\n );\n\n const ancestor = /** @type {HTMLElement} */ (\n that.\n parentElement?.parentElement?.parentElement?.parentElement\n );\n const typedArrayLength =\n /**\n * @type {HTMLInputElement & {\n * $checkBufferBounds: CheckBufferBounds\n * }}\n */ (\n $e(ancestor, '.typedArrayLength')\n );\n if (!typedArrayLength.$checkBufferBounds(e)) {\n return;\n }\n\n const maxByteLength = /** @type {HTMLInputElement} */ ($e(\n /** @type {HTMLElement} */ (\n that.parentElement?.parentElement\n ), '.maxByteLength'\n ));\n const val = that.value;\n\n if (Number.parseInt(val) > Number.MAX_SAFE_INTEGER) {\n that.setCustomValidity(\n 'The ArrayBuffer length exceeds the maximum ' +\n 'allowable size'\n );\n e.stopPropagation();\n that.reportValidity();\n return;\n }\n that.setCustomValidity('');\n that.reportValidity();\n\n if (\n Number.parseInt(val) > Number.parseInt(maxByteLength.value)\n ) {\n maxByteLength.value = val;\n }\n\n const greatGrandparent = /** @type {HTMLElement} */\n (that.parentElement?.parentElement?.parentElement);\n\n /**\n * @type {HTMLInputElement & {\n * $checkDataViewByteLength: CheckDataViewByteLength\n * }}\n */ ($e(\n greatGrandparent,\n '.dataViewByteLength'\n )).$checkDataViewByteLength(e);\n\n /**\n * @type {HTMLSelectElement & {\n * $checkTypedArrayByteLength: CheckTypedArrayByteLength\n * }}\n */ ($e(\n /** @type {HTMLElement} */\n (greatGrandparent.parentElement),\n '.buffersource-typedArrays-init'\n )).$checkTypedArrayByteLength(e);\n }\n }\n }]\n ]],\n ' ',\n ['label', [\n 'Max byte length ',\n ['input', {\n class: 'maxByteLength',\n type: 'number', step: '1', size: '4',\n pattern: String.raw`\\d+`,\n min: 0,\n $on: {\n change (e) {\n const that = /** @type {HTMLInputElement} */ (this);\n const byteLength = /** @type {HTMLInputElement} */ ($e(\n /** @type {HTMLElement} */ (\n that.parentElement?.parentElement\n ), '.byteLength'\n ));\n const val = that.value;\n if (\n Number.parseInt(val) < Number.parseInt(byteLength.value)\n ) {\n // byteLength.value = val;\n that.setCustomValidity(\n 'The max value cannot be less than the byte length'\n );\n e.stopPropagation();\n } else {\n that.setCustomValidity('');\n }\n that.reportValidity();\n }\n }\n }]\n ]]\n ]],\n ['fieldset', [\n ['legend', ['DataView']],\n ['label', [\n 'Byte length ',\n ['input', {\n class: 'dataViewByteLength',\n type: 'number', step: '1', size: '4',\n pattern: String.raw`\\d+`,\n min: 0,\n $custom: {\n /**\n * @typedef {(e: Event) => void} CheckDataViewByteLength\n */\n\n /** @type {CheckDataViewByteLength} */\n $checkDataViewByteLength (e) {\n const that = /**\n * @type {HTMLInputElement & {\n * $checkDataViewByteLength: CheckDataViewByteLength\n * }}\n */ (\n this\n );\n const greatGrandparent = /** @type {HTMLElement} */\n (that.parentElement?.parentElement?.parentElement);\n\n const byteOffset = Number.parseInt(\n /** @type {HTMLInputElement} */ ($e(\n greatGrandparent,\n '.dataViewByteOffset'\n )).value\n ) || 0;\n\n const bufferByteLengthVal = /** @type {HTMLInputElement} */ (\n $e(\n greatGrandparent,\n '.byteLength'\n )).value;\n const bufferByteLength = bufferByteLengthVal\n ? Number.parseInt(\n bufferByteLengthVal\n )\n : 0;\n\n const byteLength = that.value\n ? Number.parseInt(\n that.value\n )\n : bufferByteLength;\n\n if (byteOffset + byteLength > bufferByteLength) {\n that.setCustomValidity(\n 'The DataView byte length and offset exceed ' +\n 'the buffer\\'s byte length'\n );\n e.stopPropagation();\n } else {\n that.setCustomValidity('');\n }\n that.reportValidity();\n }\n },\n $on: {\n change (e) {\n /**\n * @type {HTMLInputElement & {\n * $checkDataViewByteLength: CheckDataViewByteLength\n * }}\n */ (\n this\n ).$checkDataViewByteLength(e);\n }\n }\n }]\n ]],\n ' ',\n ['label', [\n 'Byte offset ',\n ['input', {\n class: 'dataViewByteOffset',\n type: 'number', step: '1', size: '4',\n pattern: String.raw`\\d+`,\n min: 0,\n $on: {\n change (e) {\n const that = /** @type {HTMLInputElement} */ (\n this\n );\n const greatGrandparent = /** @type {HTMLElement} */\n (that.parentElement?.parentElement?.parentElement);\n\n /**\n * @type {HTMLInputElement & {\n * $checkDataViewByteLength: CheckDataViewByteLength\n * }}\n */ ($e(\n greatGrandparent,\n '.dataViewByteLength'\n )).$checkDataViewByteLength(e);\n }\n }\n }]\n ]]\n ]],\n ['fieldset', [\n ['legend', ['Typed array']],\n ['label', [\n 'Byte offset ',\n ['input', {\n class: 'typedArrayByteOffset',\n type: 'number', step: '1', size: '4',\n pattern: String.raw`\\d+`,\n min: 0,\n max: (2 ** 53) - 1,\n $custom: {\n /**\n * @typedef {(e: Event) => void} CheckByteOffsetMultiple\n */\n\n /** @type {CheckByteOffsetMultiple} */\n $checkByteOffsetMultiple (e) {\n const that = /**\n * @type {HTMLInputElement & {\n * $checkByteOffsetMultiple: CheckByteOffsetMultiple\n * }}\n */ (this);\n const ancestor = /** @type {HTMLElement} */ (\n that.\n parentElement?.parentElement?.parentElement?.parentElement\n );\n\n const {value} = /** @type {HTMLSelectElement} */ (\n $e(ancestor, '.buffersource-typedArrays-init')\n );\n\n const TypedArray = getTypedArray(\n /** @type {TypedArray} */ (value)\n );\n if (\n Number.parseInt(that.value) % TypedArray.BYTES_PER_ELEMENT\n ) {\n that.setCustomValidity(\n 'Byte offset must be a multiple of the typed ' +\n `array's bytes-per-element size (${\n TypedArray.BYTES_PER_ELEMENT\n })`\n );\n e.stopPropagation();\n } else {\n that.setCustomValidity('');\n }\n that.reportValidity();\n }\n },\n $on: {\n change (e) {\n const that = /** @type {HTMLInputElement} */ (this);\n const ancestor = /** @type {HTMLElement} */ (\n that.\n parentElement?.parentElement?.parentElement?.parentElement\n );\n const typedArrayLength =\n /**\n * @type {HTMLInputElement & {\n * $checkBufferBounds: CheckBufferBounds\n * }}\n */ (\n $e(ancestor, '.typedArrayLength')\n );\n if (!typedArrayLength.$checkBufferBounds(e)) {\n return;\n }\n /**\n * @type {HTMLInputElement & {\n * $checkByteOffsetMultiple: CheckByteOffsetMultiple\n * }}\n */ (this).$checkByteOffsetMultiple(e);\n }\n }\n }]\n ]]\n // ' ',\n // ['label', [\n // 'Length ',\n // ['input', {\n // class: 'typedArrayLength',\n // type: 'number', step: '1', size: '4', pattern: '\\\\d+',\n // min: 0\n // }]\n // ]]\n ]]\n ]],\n ['fieldset', [\n ['legend', ['Typed Array initialization (optional)']],\n ['select', {\n class: 'buffersource-typedArrays-init',\n 'aria-label': 'Typed Arrays',\n $custom: {\n /**\n * @callback SetMinsAndMaxes\n * @param {TypedArray} typedArray\n * @returns {void}\n */\n\n /** @type {SetMinsAndMaxes} */\n $setMinsAndMaxes (typedArray) {\n const {min, max} = getMinMaxForTypedArray(typedArray);\n\n /** @type {HTMLInputElement[]} */ (\n $$e(/** @type {HTMLElement} */ (\n /**\n * @type {HTMLSelectElement & {\n * $setMinsAndMaxes: SetMinsAndMaxes,\n * $checkTypedArrayByteLength: CheckTypedArrayByteLength\n * }}\n */ (this).parentElement\n ), '.typedArrayValue')\n ).forEach((typedArrayValue) => {\n typedArrayValue.className =\n 'typedArrayValue typedArray-' + typedArray;\n typedArrayValue.min = String(min);\n typedArrayValue.max = String(max);\n });\n },\n\n /**\n * @typedef {(e: Event) => void} CheckTypedArrayByteLength\n */\n\n /** @type {CheckTypedArrayByteLength} */\n $checkTypedArrayByteLength (e) {\n const that = /**\n * @type {HTMLSelectElement & {\n * $setMinsAndMaxes: SetMinsAndMaxes,\n * $checkTypedArrayByteLength: CheckTypedArrayByteLength\n * }}\n */ (this);\n const TypedArray = getTypedArray(\n /** @type {TypedArray} */ (that.value)\n );\n\n const byteLength = /** @type {HTMLInputElement} */ ($e(\n /** @type {HTMLElement} */\n (that.parentElement?.parentElement),\n '.byteLength'\n ));\n const arrayBufferLength = byteLength.value\n ? Number.parseInt(\n byteLength.value\n )\n : 0;\n if (arrayBufferLength % TypedArray.BYTES_PER_ELEMENT) {\n byteLength.setCustomValidity(\n 'Array buffer must be a multiple of the typed array\\'s ' +\n `bytes-per-element size (${TypedArray.BYTES_PER_ELEMENT})`\n );\n e.stopPropagation();\n } else {\n byteLength.setCustomValidity('');\n }\n byteLength.reportValidity();\n }\n },\n $on: {\n change (e) {\n const that =\n /**\n * @type {HTMLSelectElement & {\n * $setMinsAndMaxes: SetMinsAndMaxes,\n * $checkTypedArrayByteLength: CheckTypedArrayByteLength\n * }}\n */ (\n this\n );\n\n const ancestor = /** @type {HTMLElement} */ (\n that.\n parentElement?.parentElement?.parentElement\n );\n\n // Update to reflect current state changes if later revealing\n /** @type {HTMLSelectElement} */ ($e(\n /** @type {HTMLElement} */\n (this.parentElement?.parentElement),\n '.buffersource-typedArrays'\n )).value = that.value;\n\n const typedArrayLength =\n /**\n * @type {HTMLInputElement & {\n * $checkBufferBounds: CheckBufferBounds\n * }}\n */ (\n $e(ancestor, '.typedArrayLength')\n );\n if (!typedArrayLength.$checkBufferBounds(e)) {\n return;\n }\n\n that.$checkTypedArrayByteLength(e);\n\n that.$setMinsAndMaxes(/** @type {TypedArray} */ (that.value));\n\n const typedArrayByteOffset = $e(\n /** @type {HTMLElement} */\n (that?.parentElement?.parentElement),\n '.typedArrayByteOffset'\n );\n /**\n * @type {HTMLInputElement & {\n * $checkByteOffsetMultiple: CheckByteOffsetMultiple\n * }}\n */ (typedArrayByteOffset).$checkByteOffsetMultiple(e);\n\n /**\n * @type {HTMLFieldSetElement & {\n * $buildInstances: BuildInstances\n * }}\n */ ($e(\n /** @type {HTMLElement} */\n (this.parentElement?.parentElement),\n '.returnType'\n )).$buildInstances();\n }\n }\n }, typedArrays.map((typedArray) => {\n return ['option', [typedArray]];\n })],\n ' ',\n ['label', [\n 'Array length: ',\n ['input', {\n class: 'typedArrayLength',\n type: 'number', step: '1', size: '4',\n pattern: String.raw`\\d+`,\n min: 0,\n $custom: {\n /**\n * When creating a view from a buffer, the bounds are outside\n * the buffer. In other words, `byteOffset + length *\n * TypedArray.BYTES_PER_ELEMENT > buffer.byteLength`.\n * @typedef {(e: Event) => boolean} CheckBufferBounds\n */\n\n /** @type {CheckBufferBounds} */\n $checkBufferBounds (e) {\n const that = /**\n * @type {HTMLInputElement & {\n * $checkBufferBounds: CheckBufferBounds,\n * $buildTypedArray: BuildTypedArray\n * }}\n */ (this);\n\n const ancestor = /** @type {HTMLElement} */ (\n that.parentElement?.parentElement?.parentElement\n );\n const bufferByteLengthVal = /** @type {HTMLInputElement} */ (\n $e(\n ancestor,\n '.byteLength'\n )).value;\n const bufferByteLength = bufferByteLengthVal\n ? Number.parseInt(\n bufferByteLengthVal\n )\n : 0;\n\n const length = that.value\n ? Number.parseInt(that.value)\n : bufferByteLength;\n\n const {value} = /** @type {HTMLSelectElement} */ (\n $e(ancestor, '.buffersource-typedArrays-init')\n );\n\n const TypedArray = getTypedArray(\n /** @type {TypedArray} */ (value)\n );\n\n const typedArrayByteOffsetVal =\n /** @type {HTMLInputElement} */ ($e(\n ancestor,\n '.typedArrayByteOffset'\n )).value;\n const typedArrayByteOffset = typedArrayByteOffsetVal\n ? Number.parseInt(typedArrayByteOffsetVal)\n : 0;\n\n if (\n (typedArrayByteOffset +\n (length * TypedArray.BYTES_PER_ELEMENT)) >\n bufferByteLength\n ) {\n that.setCustomValidity(\n 'The byte offset and the length times bytes per element ' +\n 'is greater than the buffer length'\n );\n e.stopPropagation();\n that.reportValidity();\n return false;\n }\n\n that.setCustomValidity('');\n that.reportValidity();\n return true;\n },\n\n /**\n * @typedef {() => void} BuildTypedArray\n */\n\n /** @type {BuildTypedArray} */\n $buildTypedArray () {\n const that = /**\n * @type {HTMLInputElement & {\n * $checkBufferBounds: CheckBufferBounds,\n * $buildTypedArray: BuildTypedArray\n * }}\n */ (this);\n const length = Number.parseInt(that.value);\n const grandparent = /** @type {HTMLElement} */ (\n that.parentElement?.parentElement\n );\n\n const ancestor = /** @type {HTMLElement} */ (\n that.parentElement?.parentElement?.parentElement\n );\n const bufferByteLength =\n /**\n * @type {HTMLInputElement & {\n * $typedArray: TypedArrayInstance\n * }}\n */ ($e(\n ancestor,\n '.byteLength'\n ));\n\n const typedArrayArea = /** @type {HTMLElement} */ ($e(\n grandparent, '.typedArrayArea'\n ));\n\n typedArrayArea.addEventListener('change', (e) => {\n const input = /** @type {HTMLInputElement} */ (e.target);\n bufferByteLength.$typedArray.set([\n // @ts-expect-error Ok\n input.dataset.bigint === 'true'\n ? BigInt(input.value)\n : Number(input.value)\n ], Number.parseInt(\n /** @type {string} */ (input.dataset.key)\n ));\n });\n const {value} = /** @type {HTMLSelectElement} */ (\n $e(grandparent, '.buffersource-typedArrays-init')\n );\n const {min, max} = getMinMaxForTypedArray(\n /** @type {TypedArray} */ (value)\n );\n\n typedArrayArea.textContent = '';\n typedArrayArea.append(\n ...Array.from({length}, (_v, key) => {\n return jml('label', [\n key,\n ' ',\n ['input', {\n class: 'typedArrayValue typedArray-' + value,\n dataset: {\n key, bigint: String(value.startsWith('BigInt'))\n },\n type: 'number', step: '1',\n pattern: value.startsWith('Float')\n ? String.raw`\\d+(?:\\.\\d+)?`\n : String.raw`\\d+`,\n value: bufferByteLength.$typedArray[key]\n ? String(bufferByteLength.$typedArray[key])\n : '0',\n min, max\n }],\n ' '\n // !key || key % 9 ? ' ' : ['br']\n ]);\n })\n );\n }\n },\n $on: {\n change (e) {\n const that =\n /**\n * @type {HTMLInputElement & {\n * $checkBufferBounds: CheckBufferBounds,\n * $buildTypedArray: BuildTypedArray\n * }}\n */ (\n this\n );\n const grandparent = /** @type {HTMLElement} */ (\n this.parentElement?.parentElement\n );\n\n if (!that.$checkBufferBounds(e)) {\n return;\n }\n\n const {value} = /** @type {HTMLSelectElement} */ (\n $e(grandparent, '.buffersource-typedArrays-init')\n );\n\n const length = Number.parseInt(that.value);\n try {\n const TypedArray = getTypedArray(\n /** @type {TypedArray} */ (value)\n );\n // eslint-disable-next-line no-new -- Testing\n new TypedArray(length);\n } catch {\n that.setCustomValidity('Typed Array length is too long');\n e.stopPropagation();\n that.reportValidity();\n return;\n }\n that.setCustomValidity('');\n that.reportValidity();\n\n /**\n * @type {HTMLFieldSetElement & {\n * $buildInstances: BuildInstances\n * }}\n */ ($e(\n /** @type {HTMLElement} */\n (this.parentElement?.parentElement?.parentElement),\n '.returnType'\n )).$buildInstances();\n\n that.$buildTypedArray();\n }\n }\n }],\n ['div', {\n class: 'typedArrayArea'\n }]\n ]]\n ]],\n ['fieldset', [\n ['legend', ['DataView initialization (optional)']],\n ['select', {\n class: 'dataViewMethod',\n 'aria-label': 'Data View methods',\n $on: {\n change () {\n const dataViewArea = /** @type {HTMLDivElement} */ ($e(\n /** @type {HTMLElement} */ (this.parentElement), '.dataViewArea'\n ));\n\n const val = /** @type {HTMLSelectElement} */ (this).value;\n const typedArray = /** @type {TypedArray} */ (\n val.slice(3) + 'Array'\n );\n\n dataViewArea.textContent = '';\n dataViewArea.append(\n jml(\n 'label', [\n 'Byte offset ',\n ['input', {\n type: 'number',\n class: 'dataViewSetByteOffset',\n step: '1', size: '4',\n pattern: String.raw`\\d+`\n }]\n ]\n ),\n ' ',\n jml(\n 'label', [\n 'Value ',\n ['input', {\n type: 'number',\n step: '1', size: '4',\n pattern: String.raw`\\d+`,\n class: 'typedArrayValue typedArray-' + typedArray,\n ...getMinMaxForTypedArray(typedArray)\n }]\n ]\n ),\n val === 'setInt8' || val === 'setUint8'\n ? ''\n : jml('label', [\n ['input', {\n class: 'littleEndian',\n type: 'checkbox'\n }],\n 'Little endian'\n ]),\n ' ',\n jml('button', {\n $on: {\n click (e) {\n e.preventDefault();\n const ancestor = /** @type {HTMLElement} */ (\n this.parentElement\n );\n const dataViewMethod =\n /** @type {dataViewMethods[number]} */ (\n /** @type {HTMLSelectElement} */ (\n ancestor.previousElementSibling\n )?.value\n );\n\n const dataViewSetByteOffset =\n Number.parseInt(/** @type {HTMLInputElement} */ ($e(\n ancestor,\n '.dataViewSetByteOffset'\n )).value);\n const typedArrayValue =\n /** @type {HTMLInputElement} */ ($e(\n ancestor,\n '.typedArrayValue'\n )).value;\n const littleEndian =\n /** @type {HTMLInputElement|null} */ ($e(\n ancestor,\n '.littleEndian'\n ))?.checked;\n\n const byteLength =\n /**\n * @type {HTMLInputElement & {\n * $dataView: DataView,\n * }}\n */ (\n $e(\n /** @type {HTMLElement} */\n (ancestor?.parentElement?.parentElement),\n '.byteLength'\n )\n );\n\n if (\n dataViewMethod === 'setBigInt64' ||\n dataViewMethod === 'setBigUint64'\n ) {\n byteLength.$dataView[dataViewMethod](\n dataViewSetByteOffset,\n BigInt(typedArrayValue),\n littleEndian\n );\n } else {\n byteLength.$dataView[dataViewMethod](\n dataViewSetByteOffset,\n Number(typedArrayValue),\n littleEndian\n );\n }\n\n const typedArrayLength =\n /**\n * @type {HTMLInputElement & {\n * $buildTypedArray: BuildTypedArray\n * }}\n */ ($e(\n /** @type {HTMLElement} */\n (ancestor.parentElement?.parentElement),\n '.typedArrayLength'\n ));\n typedArrayLength.$buildTypedArray();\n }\n }\n }, ['Set'])\n );\n }\n }\n }, [\n ['option', {value: ''}, ['(Select a data view method)']],\n ...dataViewMethods.map((dataViewMethod) => {\n return /** @type {import('jamilih').JamilihArray} */ (\n ['option', [dataViewMethod]]\n );\n })\n ]],\n ' ',\n ['div', {class: 'dataViewArea'}]\n ]]\n ]);\n\n if (this.setValue && value) {\n this.setValue({root: div, value});\n } else {\n const byteLength =\n /**\n * @type {HTMLInputElement & {\n * $value: BufferSource\n * }}\n */ ($e(div, '.byteLength'));\n byteLength.$value = new ArrayBuffer(0);\n }\n\n return [div];\n }\n};\n\nexport default buffersourceType;\n","import {toStringTag} from '../vendor-imports.js';\nimport {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst noneditableType = {\n // Ideally, we would remove the option,\n // but edit forms currently need a pull-down option\n option: ['Non-editable'],\n valueMatch () {\n return true;\n },\n getInput ({root}) {\n return /** @type {HTMLButtonElement} */ ($e(root, 'button'));\n },\n setValue ({root, value}) {\n /** @type {HTMLButtonElement & {$value: any}} */ (\n this.getInput({root})\n ).$value = value;\n /** @type {HTMLSpanElement} */ (\n $e(root, '.stringTag')\n ).textContent = value === undefined\n ? '(None)'\n : toStringTag(value);\n },\n getValue ({root}) {\n return /** @type {HTMLButtonElement & {$value: any}} */ (\n this.getInput({root})\n ).$value;\n },\n validate ({root}) {\n const val = /** @type {HTMLButtonElement & {$value: any}} */ (\n this.getInput({root})\n ).$value;\n return {\n message: 'The non-editable type is only for passing on ' +\n 'pre-existing content that is unknown or currently unsupported',\n valid: val !== undefined\n };\n },\n viewUI ({value, specificSchemaObject}) {\n const stringTag = toStringTag(value);\n return ['div', {dataset: {type: 'resurrectable'}}, [\n ['b', {\n class: 'emphasis',\n title: specificSchemaObject?.description\n ? `(a non-editable ${stringTag})`\n : undefined\n }, [\n specificSchemaObject?.description ?? 'Non-editable'\n ]],\n ['span', {\n title: 'There is no current support for editing this element\\'s ' +\n 'type, but its contents will be passed on transparently.'\n }, ['?']],\n ['b', ['String tag: ']],\n stringTag\n ]];\n },\n editUI ({typeNamespace, specificSchemaObject, value}) {\n return ['div', {\n dataset: {type: 'resurrectable'},\n title: specificSchemaObject?.description ?? 'Non-editable'\n }, [\n ['a', {\n // eslint-disable-next-line no-script-url -- Safe\n href: 'javascript:void(0)',\n $on: {\n click (e) {\n e.preventDefault();\n }\n },\n title: 'There is no current support for editing this element\\'s ' +\n 'type, but its contents will be passed on transparently.'\n }, ['?']],\n ' ',\n ['button', {\n $on: {\n click (e) {\n e.preventDefault();\n console.log(/** @type {HTMLButtonElement & {$value: any}} */ (\n this\n ).$value);\n }\n },\n name: `${typeNamespace}-resurrectable`,\n $custom: {\n $value: value\n }\n }, [\n 'Non-editable'\n ]],\n ['br'],\n ['b', ['String tag: ']],\n ['span', {class: 'stringTag'}, [value ? toStringTag(value) : '(None)']]\n ]];\n }\n};\n\nexport default noneditableType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst neverType = {\n stringRegex: /^never$/u,\n option: ['Never'],\n /* istanbul ignore next -- Back-up in case shows */\n valueMatch () {\n /* istanbul ignore next -- Back-up in case shows */\n return false;\n },\n toValue (/* _s */) {\n throw new Error('Cannot convert to value');\n },\n getValue () {\n return /** @type {import('../types.js').ToValue} */ (\n this.toValue\n )('');\n },\n /* istanbul ignore next -- Back-up in case shows */\n viewUI ({specificSchemaObject}) {\n /* istanbul ignore next -- Back-up in case shows */\n return ['i', {\n dataset: {type: 'never'},\n title: specificSchemaObject?.description ?? '(a `never`)'\n }, ['never']];\n },\n /* istanbul ignore next -- No dupe keys, array refs, or validation */\n getInput ({root}) {\n /* istanbul ignore next -- Back-up in case shows */\n return /** @type {HTMLInputElement} */ ($e(root, 'input'));\n },\n editUI ({typeNamespace}) {\n return ['div', {dataset: {type: 'never'}}, [\n ['label', [\n 'Never (no value present here)',\n ['input', {\n type: 'checkbox',\n name: `${typeNamespace}-never`,\n hidden: true\n }]\n ]]\n ]];\n }\n};\n\nexport default neverType;\n","import {$e} from '../utils/templateUtils.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst catchType = {\n option: ['Catch'],\n stringRegex: /^catch\\((.*)\\)$/u,\n valueMatch (x) {\n // Todo: Should expand types here and in `toValue`\n return ['number', 'string'].includes(typeof x);\n },\n toValue (s) {\n const value = s.charAt(0) === '\"' ? s.slice(1, -1) : Number(s);\n return {value};\n },\n getInput ({root}) {\n return /** @type {HTMLTextAreaElement} */ (\n $e(root, 'input,textarea')\n );\n },\n setValue ({root, value}) {\n // input/textarea hasn't yet been added, so set timeout\n setTimeout(() => {\n this.getInput({root}).value = value;\n });\n },\n getValue ({root}) {\n return this.getInput({root}).value;\n },\n viewUI ({\n specificSchemaObject, types,\n resultType, typeNamespace, topRoot, format,\n bringIntoFocus, buildTypeChoices, // schemaContent,\n replaced, value\n }) {\n return ['span', {\n dataset: {type: 'catch'},\n title: specificSchemaObject?.description ?? '(a catch)'\n }, [\n ['b', ['Catch']],\n ['br'],\n 'Default value',\n ['br'],\n ['div', {\n class: 'defaultValue'\n }, [\n types.getUIForModeAndType({\n readonly: true,\n specificSchemaObject: /** @type {import('zodex').SzCatch} */ (\n specificSchemaObject\n )?.innerType,\n hasValue: true,\n value,\n resultType, typeNamespace,\n type: /** @type {import('../types.js').AvailableType} */ (\n /** @type {import('zodex').SzCatch} */ (\n specificSchemaObject\n )?.innerType?.type\n ),\n topRoot, bringIntoFocus,\n buildTypeChoices, format,\n // schemaContent,\n replaced\n })\n ]],\n 'Catch value',\n ['br'],\n ['div', {\n class: 'catchValue'\n }, [\n types.getUIForModeAndType({\n readonly: true,\n specificSchemaObject: {\n ...(/** @type {import('zodex').SzCatch} */ (\n specificSchemaObject\n )?.innerType),\n description: '(catch value)'\n },\n hasValue: true,\n value: /** @type {import('zodex').SzCatch} */ (\n specificSchemaObject\n ).value,\n resultType, typeNamespace,\n type: /** @type {import('../types.js').AvailableType} */ (\n /** @type {import('zodex').SzCatch} */ (\n specificSchemaObject\n )?.innerType?.type\n ),\n topRoot, bringIntoFocus,\n buildTypeChoices, format,\n // schemaContent,\n replaced\n })\n ]]\n ]];\n },\n editUI ({\n format, type, buildTypeChoices, specificSchemaObject,\n topRoot, schemaContent, typeNamespace, value\n }) {\n const schemaValue =\n /** @type {import('zodex').SzCatch} */ (\n specificSchemaObject\n )?.value;\n return ['div', {\n dataset: {type: 'catch'},\n title: specificSchemaObject?.description ?? '(a `catch`)'\n }, [\n ['label', [\n ['b', {\n title: String(schemaValue)\n }, ['Value']],\n ' ',\n ...(/** @type {import('../typeChoices.js').BuildTypeChoices} */ (\n buildTypeChoices\n )({\n // resultType,\n // eslint-disable-next-line object-shorthand -- TS\n topRoot: /** @type {HTMLDivElement} */ (topRoot),\n // eslint-disable-next-line object-shorthand -- TS\n format: /** @type {import('../formats.js').AvailableFormat} */ (\n format\n ),\n setValue: true,\n value: value ?? schemaValue,\n schemaOriginal: schemaContent,\n schemaContent: /** @type {import('zodex').SzCatch} */ (\n specificSchemaObject\n )?.innerType,\n state: type,\n // itemIndex,\n typeNamespace\n }).domArray)\n ]]\n ]];\n }\n};\n\nexport default catchType;\n","import {$e} from '../utils/templateUtils.js';\nimport {escapeRegex} from '../types.js';\nimport {jml} from '../vendor-imports.js';\n\n/**\n * @type {import('../types.js').TypeObject}\n */\nconst nativeEnumType = {\n option: ['Native enum'],\n stringRegex: /^nativeEnum\\((.*)\\)$/u,\n valueMatch (x) {\n return ['number', 'string'].includes(typeof x);\n },\n toValue (s, rootInfo) {\n const key = s.charAt(0) === '\"' ? s.slice(1, -1) : Number(s);\n\n let schema = rootInfo?.schemaObject;\n /* istanbul ignore else -- Most likely is if */\n if (rootInfo?.schemaObject?.type === 'union') {\n const schemas = /** @type {import('zodex').SzUnion} */ (\n rootInfo.schemaObject\n ).options.filter((option) => {\n return option.type === 'nativeEnum';\n });\n schema = schemas.find((schema) => {\n return key in schema.values;\n });\n }\n const value = /** @type {import('zodex').SzNativeEnum} */ (schema)?.values[\n key\n ];\n return {value};\n },\n getInput ({root}) {\n return /** @type {HTMLTextAreaElement} */ ($e(root, 'input.nativeEnumKey'));\n },\n setValue ({root, value}) {\n const input = /**\n * @type {HTMLInputElement & {\n * $schemaNativeEnumValues: import('zodex').SzNativeEnum['values']\n * }}\n */ (this.getInput({root}));\n input.value = Object.entries(\n input.$schemaNativeEnumValues\n ).find(([, val]) => {\n return val === value;\n })?.[0] ?? '';\n if (input.value) { // If key was found, the value is ok\n /** @type {HTMLSpanElement} */ (\n $e(root, '.enumeratedValue')\n ).textContent = value;\n }\n },\n getValue ({root}) {\n const {value, $schemaNativeEnumValues} =\n /**\n * @type {HTMLInputElement & {\n * $schemaNativeEnumValues: import('zodex').SzNativeEnum['values']\n * }}\n */ (\n this.getInput({root})\n );\n\n return $schemaNativeEnumValues[value];\n },\n viewUI ({value, specificSchemaObject}) {\n return ['div', [\n 'Native enum: ',\n ['span', {\n dataset: {type: 'nativeEnum'},\n title: specificSchemaObject?.description ?? '(a native enum)'\n }, [value]]\n ]];\n },\n editUI (info) {\n const {\n specificSchemaObject,\n value\n // typeNamespace\n } = info;\n const schemaNativeEnumValues = /** @type {import('zodex').SzNativeEnum} */ (\n specificSchemaObject\n )?.values;\n const nativeEnumKeys = Object.keys(schemaNativeEnumValues);\n\n let keyForValue;\n if (schemaNativeEnumValues && 'value' in info) {\n keyForValue = Object.entries(schemaNativeEnumValues).find(([, val]) => {\n return val === value;\n })?.[0];\n }\n\n const nativeEnumPattern = nativeEnumKeys.map((nativeEnumKey) => {\n // Zod seems to prohibit numerically-indexed strings so we prevent here,\n // but it seems the generated JavaScript allows them (?)\n if (\n (/^\\d$/u).test(nativeEnumKey) &&\n Object.values(schemaNativeEnumValues).includes(\n Number.parseInt(nativeEnumKey)\n )\n ) {\n return null;\n }\n return escapeRegex(nativeEnumKey);\n }).filter(Boolean).join('|');\n\n const input =\n /**\n * @type {HTMLInputElement & {\n * $schemaNativeEnumValues: import('zodex').SzNativeEnum['values']\n * }}\n */ (jml(\n 'input',\n /** @type {import('jamilih').JamilihAttributes} */ ({\n class: 'nativeEnumKey',\n placeholder: nativeEnumPattern,\n title: nativeEnumPattern,\n // Implicitly already wrapped by HTML in `^(?:...)$`\n pattern: nativeEnumPattern,\n value: keyForValue ?? '',\n $on: {\n input () {\n const ev = /** @type {HTMLSpanElement} */ (\n this.parentElement?.parentElement?.querySelector(\n '.enumeratedValue'\n )\n );\n ev.textContent = String(schemaNativeEnumValues[\n /** @type {HTMLInputElement} */\n (this).value\n ] ?? '');\n }\n }\n })\n ));\n input.$schemaNativeEnumValues = schemaNativeEnumValues;\n\n return ['div', {\n dataset: {type: 'nativeEnum'},\n title: specificSchemaObject?.description ?? 'Native Enum'\n }, [\n ['label', [\n 'Enumerated key ',\n input\n ]],\n ['br'],\n 'Enumerated value: ',\n ['span', {\n class: 'enumeratedValue'\n }, [\n value ?? ''\n ]]\n ]];\n }\n};\n\nexport default nativeEnumType;\n","import Formats from './formats.js';\n\nimport {\n // jamilih\n jml,\n // typeson-registry\n Typeson, getJSONType, structuredCloningThrowing\n} from './vendor-imports.js';\n\nimport {$e, $$e} from './utils/templateUtils.js';\n\nimport nullType from './fundamentalTypes/nullType.js';\nimport trueType from './subTypes/trueType.js';\nimport falseType from './subTypes/falseType.js';\nimport nanType from './fundamentalTypes/nanType.js';\nimport blobHTMLType from './subTypes/blobHTMLType.js';\nimport booleanType from './fundamentalTypes/booleanType.js';\nimport numberType from './fundamentalTypes/numberType.js';\nimport bigintType from './fundamentalTypes/bigintType.js';\nimport bigintObjectType from './fundamentalTypes/bigintObjectType.js';\nimport stringType from './fundamentalTypes/stringType.js';\nimport arrayReferenceType from './fundamentalTypes/arrayReferenceType.js';\nimport objectReferenceType from './fundamentalTypes/objectReferenceType.js';\nimport arrayType from './fundamentalTypes/arrayType.js';\nimport tupleType from './fundamentalTypes/tupleType.js';\nimport objectType from './fundamentalTypes/objectType.js';\nimport recordType from './fundamentalTypes/recordType.js';\nimport dateType from './fundamentalTypes/dateType.js';\nimport enumType from './fundamentalTypes/enumType.js';\nimport setType from './fundamentalTypes/setType.js';\nimport mapType from './fundamentalTypes/mapType.js';\nimport literalType from './fundamentalTypes/literalType.js';\nimport undefinedType from './fundamentalTypes/undefinedType.js';\nimport voidType from './fundamentalTypes/voidType.js';\nimport regexpType from './fundamentalTypes/regexpType.js';\nimport BooleanObjectType from './fundamentalTypes/BooleanObjectType.js';\nimport NumberObjectType from './fundamentalTypes/NumberObjectType.js';\nimport StringObjectType from './fundamentalTypes/StringObjectType.js';\n// import sparseUndefinedType from './fundamentalTypes/sparseUndefinedType.js';\nimport SpecialRealNumberSuperType from\n './superTypes/SpecialRealNumberType.js';\nimport SpecialNumberSuperType from './superTypes/SpecialNumberType.js';\nimport errorType from './fundamentalTypes/errorType.js';\nimport errorsSpecialType from './superTypes/errorsSpecialType.js';\nimport fileType from './fundamentalTypes/fileType.js';\nimport filelistType from './fundamentalTypes/filelistType.js';\nimport blobType from './fundamentalTypes/blobType.js';\nimport domexceptionType from './fundamentalTypes/domexceptionType.js';\nimport domrectType from './superTypes/domrectType.js';\nimport dompointType from './superTypes/dompointType.js';\nimport dommatrixType from './superTypes/dommatrixType.js';\nimport buffersourceType from './superTypes/buffersourceType.js';\nimport noneditableType from './fundamentalTypes/noneditableType.js';\nimport neverType from './fundamentalTypes/neverType.js';\nimport catchType from './fundamentalTypes/catchType.js';\nimport nativeEnumType from './fundamentalTypes/nativeEnumType.js';\n\n// Todo: Reenable\n// import symbolType from './fundamentalTypes/symbolType.js';\n// import promiseType from './fundamentalTypes/promiseType.js';\n// import functionType from './fundamentalTypes/functionType.js';\n\n/**\n * Utility to retrieve the property value given a legend element.\n * @param {HTMLLegendElement} legend\n * @returns {string}\n */\nexport const getPropertyValueFromLegend = (legend) => {\n const propElem = $e(legend, '*[data-prop=\"true\"]');\n if (!propElem) {\n throw new Error(\n 'No property on the supplied legend element'\n );\n }\n if (propElem.nodeName.toLowerCase() === 'input') {\n return /** @type {HTMLInputElement} */ (propElem).value;\n }\n if (!propElem.textContent) {\n throw new Error(\n 'No property with text present on the supplied legend element'\n );\n }\n // 1-based to 0-based\n return String(Number.parseInt(propElem.textContent) - 1);\n};\n\n/**\n * Any other possibilities than `div`?\n * @typedef {HTMLDivElement} RootElement\n */\n\n/**\n * Utility to retrieve the type out of a type root element.\n * @callback GetTypeForRoot\n * @param {?RootElement} root\n * @returns {string} Why would it not exist?\n */\n\n/**\n * Utility to get the value out of a type root element with a given\n * state and path.\n * @callback GetValueForRoot\n * @param {RootElement} root\n * @param {StateObject} [stateObj]\n * @param {string} [currentPath]\n * @returns {StructuredCloneValue}\n */\n\n/**\n * Utility to get the form control (e.g., input element) for a root.\n * @callback GetFormControlForRoot\n * @param {RootElement} root\n * @returns {null|\n * HTMLInputElement|HTMLTextAreaElement|HTMLSelectElement|HTMLButtonElement}\n */\n\n/**\n * Utility to get the value for a root using its ancestor and state.\n * @callback GetValueFromRootAncestor\n * @param {string|HTMLElement} selOrEl\n * @param {StateObject} [stateObj]\n * @returns {StructuredCloneValue}\n */\n\n/**\n * @callback GetFormControlFromRootAncestor\n * @param {string|HTMLElement} selOrEl\n * @returns {null|HTMLInputElement|HTMLTextAreaElement|HTMLSelectElement|\n * HTMLButtonElement}\n */\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @callback GetOptionForType\n * @param {AvailableType} type\n * @param {import('./formatAndTypeChoices.js').ZodexSchema|\n * undefined} [schemaContent]\n * @returns {[string, {value: AvailableType, title?: string}]}\n */\n\n/**\n * @callback GetTypeOptionsForFormatAndState\n * @param {import('./formats.js').AvailableFormat} format\n * @param {string} [parserState]\n * @param {import('./formatAndTypeChoices.js').ZodexSchema|\n * undefined} [schemaContent]\n * @param {import('./formatAndTypeChoices.js').ZodexSchema|\n * undefined} [schemaOriginal]\n * @returns {{\n * typeOptions: [string, {value: AvailableType, title?: string}][],\n * schemaObjects: import('./formats/schema.js').ZodexSchema[]\n * }}\n */\n\n/**\n* @typedef {{\n* typeNamespace?: string,\n* \"readonly\"?: boolean,\n* format?: import('./formats.js').AvailableFormat,\n* formats?: import('./formats.js').default,\n* types?: Types,\n* error?: Error,\n* rootUI?: Element,\n* schema?: string,\n* schemaParent?: import('./formats/schema.js').ZodexSchema,\n* schemaContent?: import('./formats/schema.js').ZodexSchema,\n* specificSchema?: import('./formats/schema.js').ZodexSchema,\n* specificSchemas?: import('./formats/schema.js').ZodexSchema[],\n* paths?: {[currentPath: string]: {\n* referentPath: string,\n* expectArrayReferent: boolean\n* }},\n* handlingReference?: boolean\n* }} StateObject\n*/\n\n/* eslint-disable jsdoc/valid-types -- readonly reserved */\n/**\n * @typedef {(cfg: {\n * readonly?: boolean,\n * resultType?: \"both\"|\"keys\"|\"values\",\n * typeNamespace?: string,\n * type: AvailableType,\n * topRoot?: RootElement,\n * bringIntoFocus?: boolean|undefined,\n * buildTypeChoices?: import('./typeChoices.js').BuildTypeChoices,\n * format: import('./formats.js').AvailableFormat,\n * schemaContent?: import('./formats/schema.js').ZodexSchema\n * specificSchemaObject?: import('./formats/schema.js').ZodexSchema\n * value: StructuredCloneValue,\n * hasValue: boolean,\n * replaced?: StructuredCloneValue,\n * schemaFallingBack?: boolean\n * }) => HTMLElement} GetUIForModeAndType\n */\n/* eslint-enable jsdoc/valid-types -- readonly reserved */\n\n/**\n * @typedef {(cfg: {\n * form: HTMLFormElement,\n * typeNamespace?: string,\n * keySelectClass?: string,\n * }) => boolean} ValidValuesSet\n */\n\n/**\n * @typedef {(cfg: {\n * topRoot: RootElement\n * }) => void} ValidateAllReferences\n */\n\n/**\n * @typedef {(cfg: {\n * type: AvailableType,\n * root: RootElement,\n * topRoot?: RootElement,\n * avoidReport?: boolean\n * }) => boolean} Validate\n */\n\n/**\n * @typedef {(cfg: {\n * type: AvailableType,\n * root: RootElement,\n * value: StructuredCloneValue,\n * }) => void} SetValue\n */\n\n/**\n * @typedef {(s: string, cfg: {\n * format: import('./formats.js').AvailableFormat,\n * state?: string,\n * endMatchTypeObjs?: TypeObject[]\n * firstRun?: boolean,\n * rootHolder?: [\n * type: string,\n * parent: {[key: string]: any}|undefined,\n * parentPath: string|number|undefined,\n * path: string\n * ][],\n * parent?: {[key: string]: any},\n * parentPath?: string|number,\n * schemaObject?: import('./formatAndTypeChoices.js').ZodexSchema|undefined\n * schemaOriginal?: import('./formatAndTypeChoices.js').ZodexSchema|undefined\n * }) => [\n* value: StructuredCloneValue,\n* remnant: string,\n* beginOnly: boolean,\n* assign: boolean\n* ]} GetValueForString\n*/\n\n/**\n * @typedef {(\n * info: {topRoot: HTMLDivElement}\n * ) => void} CustomValidateAllReferences\n */\n\n/**\n * @typedef {import('./formats.js').StructuredCloneValue} StructuredCloneValue\n */\n\n/**\n * @typedef {import('jamilih').JamilihArray} JamilihArray\n */\n\n/**\n * @typedef {{\n * format: import('./formats.js').AvailableFormat,\n * match: boolean|RegExpMatchArray|null\n * endMatchTypeObjs: TypeObject[],\n * remnant: string,\n * rootHolder: [\n * type: string,\n * parent: object|undefined,\n * parentPath: string|number|undefined,\n * path: string\n * ][],\n * parent?: object,\n * parentPath?: string|number,\n * types?: Types\n * schemaObject?: import('./formatAndTypeChoices.js').ZodexSchema|undefined\n * }} RootInfo\n */\n\n/**\n * @typedef {(\n * info: {\n* root: HTMLDivElement,\n* value: StructuredCloneValue\n* }\n* ) => void} TypeObjectSetValue\n */\n\n/**\n * @typedef {(\n * s: string, info?: RootInfo\n * ) => {\n * value?: StructuredCloneValue,\n * remnant?: string,\n * assign?: false\n * }} ToValue\n */\n\n/**\n * @typedef {object} TypeObject\n * @property {[\n * string, {value?: AvailableType, title?: string}?\n * ]} option Creates the option HTML. May set an option `title` or `value`\n * @property {boolean} [array] Private context variable. Whether or not\n * it is an array. Do not use in other types.\n * @property {boolean} [map] Private context variable. Whether or not\n * it is a `Map`. Do not use in other types.\n * @property {boolean} [set] Private context variable. Whether or not\n * it is a `Set`. Do not use in other types.\n * @property {boolean} [record] Private context variable. Whether or not\n * it is a `Record`. Do not use in other types.\n * @property {boolean} [tuple] Private context variable. Whether or not\n * it is a tuple type. Do not use in other types.\n * @property {boolean} [filelist] Private context variable. Whether or not\n * it is a `FileList` type. Do not use in other types.\n * @property {boolean} [sparse] Private context variable. Whether or not\n * it is a sparse array. Do not use in other types.\n * @property {boolean} [valid] Private context variable. Whether or not\n * it is a valid date. Do not use in other types.\n * @property {string[]} [regexEndings] Used for string parsing.\n * @property {RegExp|((nonGrouping?: boolean) => RegExp)} [stringRegex] Used\n * for string parsing. If not present, use `stringRegexBegin` and\n * `stringRegexEnd`.\n * @property {RegExp} [stringRegexBegin] Used for string parsing. If not\n * present, use `stringRegex`\n * @property {RegExp} [stringRegexEnd] Used for string parsing. If not\n * present, use `stringRegex`\n * @property {(\n * v: StructuredCloneValue\n * ) => boolean} [valueMatch] Function to check whether this type or subtype\n * matches\n * @property {string} [superType] The greater fundamental type to which\n * the type belongs\n * @property {ToValue} [toValue] Converts from string to value. May use\n * `stringRegex` to find components.\n * @property {(info: {\n * root: HTMLDivElement,\n * stateObj?: StateObject,\n * currentPath?: string\n * }) =>\n * StructuredCloneValue\n * } getValue Gets the value for the type\n * @property {TypeObjectSetValue} [setValue] Should set the value of the\n * form's `getInput` element\n * @property {(info: {\n * value?: StructuredCloneValue,\n * typeNamespace?: string,\n * type?: AvailableType,\n * topRoot?: HTMLDivElement,\n * resultType?: \"keys\"|\"values\"|\"both\",\n * format: import('./formats.js').AvailableFormat,\n * specificSchemaObject?: import('./formats/schema.js').ZodexSchema,\n * types: Types\n * bringIntoFocus?: boolean|undefined,\n * buildTypeChoices?: import('./typeChoices.js').BuildTypeChoices,\n * schemaContent?: import('./formats/schema.js').ZodexSchema\n * replaced?: any\n * }) => JamilihArray} viewUI\n * @property {(info: {\n * value?: StructuredCloneValue,\n * typeNamespace?: string,\n * bringIntoFocus?: boolean,\n * format?: import('./formats.js').AvailableFormat,\n * formats?: import('./formats.js').default,\n * types: Types,\n * resultType?: \"keys\"|\"values\"|\"both\",\n * type?: AvailableType,\n * forcedState?: string,\n * buildTypeChoices?: import('./typeChoices.js').BuildTypeChoices,\n * topRoot?: HTMLDivElement\n * schemaContent?: import('./formats/schema.js').ZodexSchema,\n * specificSchemaObject?: import('./formats/schema.js').ZodexSchema,\n * schemaFallingBack?: boolean\n * }) => JamilihArray} editUI\n * @property {(info: {root: HTMLDivElement}) =>\n * HTMLInputElement|HTMLTextAreaElement|HTMLSelectElement|\n * HTMLButtonElement} getInput Gets the form control (with `value`)\n * @property {(\n * info: {root: HTMLDivElement}\n * ) => HTMLSelectElement} [getSelect]\n * @property {(path: string, value: StructuredCloneValue) =>\n * StructuredCloneValue} [resolveReference] Gets the reference. For array\n * and object references types only\n * @property {(info: {root: HTMLDivElement, topRoot?: HTMLDivElement}) => {\n * message?: string,\n * valid: boolean\n * }} [validate] Message will be used if validity is false.\n * @property {(info: {\n * topRoot: HTMLDivElement,\n * types: Types\n * }) => void} [validateAll] For\n * validation of array and object references only.\n * @property {{\n * structuredCloning: {\n * after: AvailableType,\n * contexts: string[]\n * }\n * }} [stateDependent] The type after which it should be placed and its\n * context types\n */\n\n/**\n * @typedef {\"null\"|\"true\"|\"false\"|\"number\"|\"bigint\"|\"bigintObject\"|\n * \"string\"|\"arrayReference\"|\n * \"objectReference\"|\"array\"|\"object\"|\"date\"|\"userObject\"|\"undef\"|\n * \"SpecialRealNumber\"|\"SpecialNumber\"|\"regexp\"|\"BooleanObject\"|\n * \"NumberObject\"|\"StringObject\"|\"map\"|\"set\"|\"file\"|\"filelist\"|\"blobHTML\"|\n * \"buffersource\"|\"dataview\"|\"imagedata\"|\"imagebitmap\"|\n * \"int8array\"|\"uint8array\"|\"uint8clampedarray\"|\"int16array\"|\"uint16array\"|\n * \"int32array\"|\"uint32array\"|\"float32array\"|\"float64array\"|\"ValidDate\"|\n * \"arrayNonindexKeys\"|\"error\"|\"errors\"|\"blob\"|\"domexception\"|\"domrect\"|\n * \"dompoint\"|\"dommatrix\"|\"resurrectable\"|\"boolean\"|\"nan\"|\"tuple\"|\n * \"record\"|\"void\"|\"enum\"|\"literal\"|\"never\"|\"catch\"|\"nativeEnum\"\n * } AvailableType\n */\n// Todo: Add to own section when ready for these non-structured-cloning:\n// \"symbol\"|\"promise\"|\"function\"\n\n/**\n * @typedef {TypeObject & {\n* childTypes: string[]\n* }} SuperTypeObject\n*/\n\n/**\n *\n */\nclass Types {\n /**\n *\n */\n constructor () {\n this.formats = new Formats(); // Todo: Make customizable and test\n\n /** @type {CustomValidateAllReferences|undefined} */\n this.customValidateAllReferences = undefined;\n /**\n * @type {{\n * [key in AvailableType]: Partial<TypeObject>|string[]\n * }}\n */\n this.availableTypes = {\n null: nullType,\n true: trueType,\n false: falseType,\n nan: nanType, // Schema type\n boolean: booleanType, // Schema type\n number: numberType,\n bigint: bigintType,\n bigintObject: bigintObjectType,\n string: stringType,\n arrayReference: arrayReferenceType,\n objectReference: objectReferenceType,\n array: arrayType,\n tuple: tupleType, // Schema type\n // Note: We don't do for BooleanObject/NumberObject/StringObject, date,\n // regexp, as added properties on them are not being cloned (in Chrome\n // at least)\n object: objectType,\n record: recordType, // Schema type\n date: dateType,\n enum: enumType,\n\n // This type is only for throwing upon cloning errors:\n // 'checkDataCloneException'\n // This type might be supported by evaluable JS or config\n // passed in:\n userObject: ['User objects'],\n undef: undefinedType,\n void: voidType,\n SpecialRealNumber: SpecialRealNumberSuperType,\n SpecialNumber: SpecialNumberSuperType,\n\n error: errorType,\n errors: errorsSpecialType,\n\n regexp: regexpType,\n BooleanObject: BooleanObjectType,\n NumberObject: NumberObjectType,\n StringObject: StringObjectType,\n\n literal: literalType,\n\n map: mapType,\n set: setType,\n\n file: fileType,\n filelist: filelistType,\n blob: blobType,\n blobHTML: blobHTMLType,\n\n domexception: domexceptionType,\n domrect: domrectType,\n dompoint: dompointType,\n dommatrix: dommatrixType,\n\n resurrectable: noneditableType,\n never: neverType,\n\n // Todo: Reenable\n // symbol: symbolType, // Non-cloning type\n // promise: promiseType,\n // function: functionType,\n\n catch: catchType,\n nativeEnum: nativeEnumType,\n\n buffersource: buffersourceType,\n dataview: {\n option: ['DataView']\n },\n imagedata: {\n option: ['ImageData']\n },\n imagebitmap: {\n option: ['ImageBitmap']\n },\n\n // Typed Arrays\n int8array: {\n option: ['Int8Array']\n },\n uint8array: {\n option: ['Uint8Array']\n },\n uint8clampedarray: {\n option: ['Uint8ClampedArray']\n },\n int16array: {\n option: ['Int16Array']\n },\n uint16array: {\n option: ['Uint16Array']\n },\n int32array: {\n option: ['Int32Array']\n },\n uint32array: {\n option: ['Uint32Array']\n },\n float32array: {\n option: ['Float32Array']\n },\n float64array: {\n option: ['Float64Array']\n },\n\n // We're catching this instead of using this\n // sparseUndefined: sparseUndefinedType,\n\n ValidDate: {\n valid: true\n },\n /*\n sparseArrays: {\n sparse: true\n },\n */\n arrayNonindexKeys: {\n sparse: true\n }\n };\n\n /**\n * @param {[\n * copyFrom: AvailableType, copyTo: AvailableType\n * ][]} replacements\n * @returns {void}\n */\n const copyTypeObjs = (replacements) => {\n replacements.forEach(([copyFrom, copyTo]) => {\n Object.assign(this.availableTypes[\n /** @type {AvailableType} */\n (copyTo)\n ], this.availableTypes[\n /** @type {AvailableType} */\n (copyFrom)\n ]);\n });\n };\n\n copyTypeObjs(\n [\n /** @type {[AvailableType, AvailableType]} */ (\n ['date', 'ValidDate']\n ),\n // 'sparseArrays'\n /** @type {[AvailableType, AvailableType]} */ (\n ['array', 'arrayNonindexKeys']\n )\n ]\n );\n\n /**\n * @type {{\n * [key: string]: {\n * [key: string]: {type: AvailableType, after: AvailableType}[]\n * }\n * }}\n */\n this.contexts = {};\n Object.entries(this.availableTypes).forEach(([typ, typeObj]) => {\n const type = /** @type {AvailableType} */ (typ);\n const {stateDependent} = /** @type {TypeObject} */ (typeObj);\n if (stateDependent) {\n Object.entries(stateDependent).forEach(([\n format, formatStateDependent\n ]) => {\n if (!this.contexts[format]) {\n this.contexts[format] = {};\n }\n const {contexts, after} = formatStateDependent;\n contexts.forEach((context) => {\n if (!this.contexts[format][context]) {\n this.contexts[format][context] = [];\n }\n this.contexts[format][context].push({type, after});\n });\n });\n }\n });\n }\n\n /**\n * @param {import('./formats.js').AvailableFormat} format\n * @param {StructuredCloneValue} record\n * @param {StateObject} stateObj\n * @returns {Promise<Element>}\n */\n async getControlsForFormatAndValue (\n format, record, stateObj\n ) {\n return (await this.formats.getControlsForFormatAndValue(\n this, format, record, stateObj\n )).rootUI;\n }\n\n /**\n * @param {import('./formats.js').AvailableFormat} format\n * @param {string} context\n * @returns {{\n * type: AvailableType\n * after: AvailableType\n * }[]}\n */\n getContextInfo (format, context) {\n return this.contexts[format][context];\n }\n\n /** @type {GetValueForRoot} */\n getValueForRoot (root, stateObj, currentPath) {\n const typeObject = /** @type {TypeObject} */ (\n this.availableTypes[\n /** @type {AvailableType} */\n (Types.getTypeForRoot(root))\n ]\n );\n // Ensure `stateObj` remains a reference if present\n /* istanbul ignore next -- Guard */\n return typeObject.getValue({\n root,\n /* istanbul ignore next -- Guard */\n stateObj: stateObj ?? {\n types: this\n },\n currentPath\n });\n }\n\n /** @type {GetFormControlForRoot} */\n getFormControlForRoot (root) {\n const typeObj = /** @type {TypeObject} */ (this.availableTypes[\n /** @type {AvailableType} */\n (Types.getTypeForRoot(root))\n ]);\n /* istanbul ignore if -- All have except aliases */\n if (!typeObj.getInput) {\n return null;\n }\n return typeObj.getInput({root});\n }\n\n /** @type {GetValueFromRootAncestor} */\n getValueFromRootAncestor (selOrEl, stateObj) {\n return this.getValueForRoot(\n /** @type {RootElement} */\n ($e(selOrEl, 'div[data-type]')),\n {\n ...stateObj,\n types: this,\n formats: this.formats\n }\n );\n }\n\n /** @type {GetFormControlFromRootAncestor} */\n getFormControlFromRootAncestor (selOrEl) {\n const root = /** @type {RootElement} */ ($e(selOrEl, 'div[data-type]'));\n if (!root) {\n return null;\n }\n return this.getFormControlForRoot(root);\n }\n\n /** @type {GetOptionForType} */\n getOptionForType (type, schemaContent = undefined) {\n const availableType = /** @type {TypeObject} */ (\n this.availableTypes[type]\n );\n /** @type {[string, {value?: AvailableType, title?: string}?]} */\n const optInfo = [\n ...availableType.option\n ];\n\n if (schemaContent && schemaContent.description) {\n optInfo[0] = `${optInfo[0]} (${schemaContent.description})`;\n }\n\n optInfo[1] = {\n value: type,\n ...(optInfo[1])\n };\n return /** @type {[string, {value: AvailableType, title?: string}]} */ (\n optInfo\n );\n }\n\n /** @type {GetTypeOptionsForFormatAndState} */\n getTypeOptionsForFormatAndState (\n format, parserState, schemaContent, schemaOriginal\n ) {\n const typesForFormatAndState =\n this.formats.getTypesAndSchemasForFormatAndState(\n this, format, parserState, schemaContent, schemaOriginal\n );\n if (!typesForFormatAndState) {\n throw new Error('Unexpected type for format and state');\n }\n\n return {\n typeOptions: typesForFormatAndState.types.map((type, idx) => {\n return this.getOptionForType(\n type, typesForFormatAndState.schemaObjects[idx]\n );\n }),\n schemaObjects: typesForFormatAndState.schemaObjects\n };\n }\n\n /** @type {GetUIForModeAndType} */\n getUIForModeAndType ({\n readonly, resultType, typeNamespace, type, topRoot, bringIntoFocus,\n buildTypeChoices, format, schemaContent, value, hasValue,\n replaced, specificSchemaObject, schemaFallingBack\n }) {\n const typeObj = /** @type {TypeObject} */ (this.availableTypes[type]);\n const arg = hasValue\n ? {\n typeNamespace, type, buildTypeChoices,\n format, schemaContent,\n resultType, topRoot, bringIntoFocus, value,\n replaced,\n specificSchemaObject, schemaFallingBack,\n types: this\n }\n : {\n typeNamespace, type, buildTypeChoices,\n format, schemaContent,\n resultType, topRoot, bringIntoFocus,\n replaced,\n specificSchemaObject, schemaFallingBack,\n types: this\n };\n const root = /** @type {HTMLDivElement} */ (jml(\n ...(readonly\n ? typeObj.viewUI(arg)\n : typeObj.editUI(arg))\n ));\n if (!readonly && typeObj.validate) {\n const formControl = typeObj.getInput({root});\n formControl.addEventListener('input', () => {\n this.validate({type, root, topRoot});\n });\n }\n return root;\n }\n\n /** @type {ValidateAllReferences} */\n validateAllReferences ({topRoot}) {\n /* istanbul ignore if -- Unreachable? */\n if (!topRoot) {\n console.log('No references present');\n return;\n }\n\n // Could just hard-code arrayReference and objectReference,\n // but we'll try to avoid depending on specific types\n Object.values(this.availableTypes).forEach((typeObj) => {\n const typeObject = /** @type {TypeObject} */ (typeObj);\n if (typeObject.validateAll) {\n typeObject.validateAll({topRoot, types: this});\n }\n });\n\n if (this.customValidateAllReferences) {\n this.customValidateAllReferences({topRoot});\n }\n }\n\n /** @type {Validate} */\n validate ({type, root, topRoot, avoidReport}) {\n const typeObj = /** @type {TypeObject} */ (this.availableTypes[type]);\n // Todo (low): We limit for now to input boxes which have `validate`\n if (typeObj.validate) {\n const {valid, message} = typeObj.validate({root, topRoot});\n const formControl = typeObj.getInput({root});\n formControl.setCustomValidity(\n valid\n ? ''\n /* istanbul ignore next -- Should always have a message */\n : (message || 'Invalid')\n );\n\n // We don't want a focus as `reportValidity` does in at least\n // some cases, but blur() would cause user to\n // leave input (used during input handler)\n if (!avoidReport) {\n formControl.reportValidity();\n }\n return valid;\n }\n return true;\n }\n\n /** @type {SetValue} */\n setValue ({type, root, value}) {\n const typeObj = /** @type {TypeObject} */ (this.availableTypes[type]);\n if (typeObj.setValue) {\n typeObj.setValue({root, value});\n }\n }\n\n // Todo (low): Should really add real parser\n // Todo (low): Implement `getStringForValue` (e.g., to expose feature for\n // bookmarking object value currently in view); would not be\n // enough to iterate DOM to get string URL as we'd also like\n // the ability to have arbitrary JSON/structuredCloning sent to this\n // URL from other sites/programs (can currently pass in JSON\n // format to the URL, but that is still expecting our Router\n // string syntax)\n\n /** @type {GetValueForString} */\n getValueForString (s, {\n format, state, endMatchTypeObjs = [], firstRun = true,\n rootHolder = [], parent, parentPath, schemaObject, schemaOriginal\n }) {\n const allowedTypes = this.formats.getTypesAndSchemasForFormatAndState(\n this, format, state, schemaObject, schemaOriginal\n )?.types;\n if (!allowedTypes) {\n throw new Error('Could not get types for format and state');\n }\n const allowedTypeObjs = Object.entries(\n this.availableTypes\n ).filter(([type]) => {\n return allowedTypes.includes(/** @type {AvailableType} */ (type));\n });\n const allowedTypeObjsVals = allowedTypeObjs.map(([, arr]) => arr);\n\n const reduced = allowedTypeObjsVals.reduce((array, typObj) => {\n const typeObj = /** @type {TypeObject} */ (typObj);\n let arr = /** @type {string[]} */ (array);\n if (typeObj.regexEndings) {\n arr.push(...typeObj.regexEndings);\n arr = [...new Set(arr)];\n }\n return arr;\n }, []);\n const endings = '|' + /** @type {string[]} */ (\n reduced\n ).map((str) => escapeRegex(str)).join('|');\n\n /**\n * @type {RegExpMatchArray|boolean|null}\n */\n let match = null;\n let found = allowedTypeObjs.find(([/* _type */, typObj]) => {\n const typeObj = /** @type {TypeObject} */ (typObj);\n let {stringRegex} = typeObj;\n if (typeof typeObj.stringRegex === 'function') {\n stringRegex = typeObj.stringRegex(true);\n }\n stringRegex = stringRegex\n // Strip off terminal (dollar sign) when matching substrings\n ? new RegExp(\n /** @type {RegExp} */ (\n stringRegex\n ).source.slice(0, -1) + '(?=$' + endings + ')',\n 'u'\n )\n : stringRegex;\n match = Boolean(stringRegex && s) && s.match(\n /** @type {RegExp} */ (stringRegex)\n );\n return match;\n });\n\n let beginOnly = false;\n if (found === undefined) {\n found = allowedTypeObjs.find(([/* _type */, typObj]) => {\n const typeObj = /** @type {TypeObject} */ (typObj);\n const {stringRegexBegin} = typeObj;\n match = Boolean(stringRegexBegin && s) && s.match(\n /** @type {RegExp} */ (stringRegexBegin)\n );\n if (match) {\n beginOnly = true;\n endMatchTypeObjs.push(typeObj);\n }\n return match;\n });\n }\n let assign = true;\n if (found !== undefined) {\n // The `found` is evaluated again, so sets `match` to non-null\n const mtch = /** @type {RegExpMatchArray} */ (\n /** @type {unknown} */ (match)\n );\n const [content, innerContent] = mtch;\n let remnant = s.slice(content.length);\n s = s.slice(0, content.length);\n // console.log('s0', s, '::', remnant, match);\n let valObj;\n try {\n const typeObj = /** @type {TypeObject} */ (found[1]);\n /* istanbul ignore if -- TS guard */\n if (!typeObj.toValue) {\n throw new Error('Type has no `toValue` method');\n }\n valObj = typeObj.toValue(\n mtch.groups?.innerContent || innerContent || s, {\n types: this,\n format,\n match,\n endMatchTypeObjs,\n remnant,\n rootHolder,\n parent,\n parentPath,\n schemaObject\n }\n );\n /* istanbul ignore next -- Good regexes should prevent */\n } catch (e) {\n /* istanbul ignore next -- Good regexes should prevent */\n console.log('eee', e);\n /* istanbul ignore next -- Good regexes should prevent */\n throw e;\n }\n if (valObj.assign === false) {\n assign = false;\n }\n const {value} = valObj;\n if (valObj.remnant !== undefined) {\n ({remnant} = valObj);\n }\n\n if (beginOnly && endMatchTypeObjs.length) {\n const endMatch = remnant.match(\n /** @type {RegExp} */ (/** @type {TypeObject} */ (\n endMatchTypeObjs.at(-1)\n ).stringRegexEnd)\n );\n if (endMatch) {\n endMatchTypeObjs.pop(); // Safe now to extract\n remnant = remnant.slice(endMatch[0].length);\n }\n }\n if (firstRun) {\n const typeson = new Typeson().register(\n structuredCloningThrowing\n );\n try {\n const topRoot = typeson.revive(value);\n rootHolder.forEach(([type, parent, parentPath, path]) => {\n const typeObject = this.availableTypes[\n /** @type {AvailableType} */ (type + 'Reference')\n ];\n\n // @ts-expect-error Reference method exists\n const val = typeObject.resolveReference(path, topRoot);\n const basicType = getJSONType(val);\n // eslint-disable-next-line @stylistic/max-len -- Long\n /* istanbul ignore else -- Successful reference always an object/array? */\n if (\n ['array', 'object'].includes(type) && basicType === type\n ) {\n /** @type {{[key: string]: any}} */ (\n parent\n )[/** @type {string|number} */ (parentPath)] = val;\n }\n });\n return [topRoot, remnant, beginOnly, assign];\n } catch (err) {\n console.log('failed Typeson revival', err);\n }\n }\n return [value, remnant, beginOnly, assign];\n }\n throw new Error('Bad parsing data');\n }\n\n /**\n * @param {AvailableType} type\n * @returns {Partial<TypeObject>|string[]}\n */\n getTypeObject (type) {\n return this.availableTypes[type];\n }\n}\n\n/** @type {GetTypeForRoot} */\nTypes.getTypeForRoot = (root) => {\n return String(root ? root.dataset.type : root);\n};\n\n/** @type {ValidValuesSet} */\nTypes.validValuesSet = ({form, typeNamespace, keySelectClass}) => {\n // If form is hidden, don't list errors by default\n if (!form.offsetParent ||\n // Not an invalid form (bad key or value)\n // May be redundant as re-validating below\n !form.checkValidity()\n ) {\n return false;\n }\n\n const typeChoices =\n /** @type {(HTMLSelectElement & {$validate: () => boolean})[]} */ (\n $$e(\n form,\n keySelectClass ? `.${keySelectClass}` : `.typeChoices-${typeNamespace}`\n )\n );\n return (\n // Specific value type set if present (any descendant, not\n // only the first) chosen\n typeChoices.every((sel) => {\n // console.log('sel', sel.value !== '' && sel.$validate());\n // Hidden are ok\n return !sel.offsetParent ||\n // If present, must be valid\n (sel.value !== '' && sel.$validate());\n })\n // Container of a specific type added (should always be present\n // if typeChoices non-empty)\n // $e(form, '.typeContainer')\n );\n};\n\n/**\n *\n * @param {string} str\n * @returns {string}\n */\nexport function escapeRegex (str) {\n return String(str).\n replaceAll(/[.\\\\+*?^[\\]$(){}=!<>|:-]/gu, String.raw`\\$&`);\n}\n\nexport default Types;\n","import {jml} from './vendor-imports.js';\nimport {buildTypeChoices} from './typeChoices.js';\nimport Types from './types.js';\nimport Formats from './formats.js';\nimport {$e, DOM} from './utils/templateUtils.js';\n\n/**\n * @callback TypeRootGetter\n * @returns {HTMLDivElement|null}\n */\n\n/**\n * Defaults to structured cloning.\n * @todo Compose from format metadata, so can make user customizable.\n * @param {object} cfg\n * @param {string[]} [cfg.schemas]\n * @param {string} [cfg.selectedSchema]\n * @param {boolean} [cfg.hasKeyPath] Whether or not a key path is expected; if\n * true, an indexedDB key is not allowed here as a key does not support\n * the object type which is needed for a key path.\n * @returns {DocumentFragment}\n */\nexport const getFormatAndSchemaChoices = ({\n schemas, selectedSchema, hasKeyPath\n} = {}) => {\n const hasSchema = schemas && schemas.length;\n // eslint-disable-next-line @stylistic/max-len -- Long\n return /** @type {[optText: string, opts: {value: string, selected?: boolean}][]} */ ([\n ['JSON only', {value: 'json'}],\n ...(hasKeyPath\n ? []\n : [['IndexedDB key', {value: 'indexedDBKey'}]]),\n ['Structured Clone (via Typeson JSON)', {\n value: 'structuredCloning', selected: !hasSchema\n }],\n ...(hasSchema\n ? schemas.map((schema, idx) => {\n return [`Schema: ${schema}`, {\n value: 'schema',\n dataset: {schema},\n selected: selectedSchema ? schema === selectedSchema : idx === 0\n }];\n })\n : [])\n ]).map(([optText, optAtts]) => {\n return jml('option', optAtts, [optText]);\n }).reduce((\n frag,\n option\n ) => {\n frag.append(option);\n return frag;\n }, document.createDocumentFragment());\n};\n\n/**\n * @callback SetValue\n * @param {import('./formats.js').StructuredCloneValue} value\n * @param {import('./types.js').StateObject} stateObj\n * @returns {Promise<void>}\n */\n\n/**\n * @typedef {import('./formats/schema.js').ZodexSchema} ZodexSchema\n */\n\n/**\n * Builds a selector and container for types.\n * @param {object} cfg\n * @param {string[]} [cfg.schemas] The schema names\n * @param {(schema: string) => Promise<ZodexSchema>} [cfg.getSchemaContent] The\n * schema content retriever\n * @param {boolean} [cfg.hasValue] Set to `true` if you are supplying\n * your own value. If `false` and `hasKeyPath` is `true`,\n * will initialize with an object.\n * @param {boolean} [cfg.singleValue] (NOT IN USE)\n * @param {boolean} [cfg.hasKeyPath] If this is set (because there is a keyPath\n * to be found within the object) and `hasValue` is true, an object type\n * will be set and required at the root level. This option will also\n * prevent selection of indexedDB key at root (since a key cannot be a\n * plain object).\n * @param {string} [cfg.typeNamespace] Used to prevent conflicts with other\n * instances of typeChoices on the page\n * @param {string} [cfg.selectedSchema]\n * @param {import('./formats.js').default} [cfg.formats]\n * @param {import('./types.js').default} [cfg.types]\n * @returns {Promise<{\n * formatChoices: FormatChoices,\n * typesHolder: TypesHolder,\n * domArray: [formatChoices: FormatChoices, typesHolder: TypesHolder],\n * getValue: (stateObj: import('./types.js').StateObject,\n * currentPath: string) => import('./formats.js').StructuredCloneValue,\n * getType: () => string,\n * validValuesSet: () => boolean,\n * setValue: SetValue,\n * formats: import('./formats.js').default,\n * types: import('./types.js').default\n * }>} The selector for types and the container for them. Both should be\n * added to the page.\n */\nexport async function formatAndTypeChoices ({\n schemas,\n getSchemaContent,\n hasValue,\n singleValue,\n hasKeyPath,\n typeNamespace,\n selectedSchema,\n formats = new Formats(),\n types = new Types()\n}) {\n const format = schemas && schemas.length ? 'schema' : 'structuredCloning';\n const formatChoices = /** @type {FormatChoices} */ (jml('select', {\n class: 'formatChoices',\n hidden: singleValue,\n // is: 'main-type-choices',\n $custom: {\n /**\n * Sets the desired format and rebuilds the type choices.\n * @callback SetFormat\n * @param {{\n * valueFormat?: import('./formats.js').AvailableFormat,\n * autoTrigger: boolean,\n * schema?: string\n * }} cfg\n * @this {HTMLSelectElement & {\n * $buildTypeChoices: TypeChoiceBuilder\n * }}\n * @returns {Promise<void>}\n */\n\n /**\n * Rebuilds the type choices.\n * @callback TypeChoiceBuilder\n * @param {boolean} [autoTrigger]\n * @this {HTMLSelectElement & {\n * $buildTypeChoices: TypeChoiceBuilder\n * }}\n * @returns {Promise<void>}\n */\n\n /**\n * @typedef {HTMLSelectElement & {\n * $setFormat: SetFormat,\n * $buildTypeChoices: TypeChoiceBuilder\n * }} FormatChoices\n */\n\n /**\n * @type {SetFormat}\n */\n async $setFormat ({valueFormat, autoTrigger, schema}) {\n if (schema) {\n const idx = [...this.options].findIndex((option) => {\n return option.dataset.schema === schema;\n });\n this.selectedIndex = idx === -1 ? 0 : idx;\n } else if (valueFormat) {\n this.value = valueFormat;\n }\n await this.$buildTypeChoices(autoTrigger);\n },\n\n /**\n * @type {TypeChoiceBuilder}\n */\n async $buildTypeChoices (autoTrigger) {\n DOM.removeChildren(typesHolder);\n const {schema} = this.selectedOptions[0].dataset;\n jml({'#': buildTypeChoices({\n autoTrigger,\n topRoot: /** @type {HTMLDivElement} */ (\n $e(typesHolder, 'div[data-type]')\n ),\n // resultType: 'both',\n format: /** @type {import('./formats.js').AvailableFormat} */ (\n this.value\n ),\n formats,\n types,\n typeNamespace,\n requireObject: hasKeyPath,\n objectHasValue: hasValue,\n schema,\n schemaContent: schema\n ? await getSchemaContent?.(\n /** @type {string} */ (schema)\n )\n : undefined\n }).domArray}, typesHolder);\n }\n },\n $on: {\n async change () {\n await /**\n * @type {HTMLSelectElement & {\n * $buildTypeChoices: TypeChoiceBuilder\n * }}\n */ (\n this\n ).$buildTypeChoices();\n }\n }\n }, [getFormatAndSchemaChoices({schemas, hasKeyPath, selectedSchema})]));\n\n /**\n * @callback TypeSelectGetter\n * @returns {HTMLSelectElement|null}\n */\n\n /**\n * @typedef {HTMLDivElement} TypesHolder\n * @property {TypeRootGetter} $getTypeRoot\n * @property {TypeSelectGetter} $getTypeSelect\n */\n\n const typesHolder = (\n jml('div', {class: 'typesHolder', $custom: {\n /**\n * @type {TypeRootGetter}\n * @this {HTMLDivElement}\n */\n $getTypeRoot () {\n return /** @type {HTMLDivElement} */ ($e(this, 'div[data-type]'));\n },\n /**\n * @type {TypeSelectGetter}\n * @this {HTMLSelectElement}\n */\n $getTypeSelect () {\n return /** @type {HTMLSelectElement} */ (\n $e(this, `.typeChoices-${typeNamespace}`)\n );\n }\n }})\n );\n\n const schema = format === 'schema'\n ? formatChoices.selectedOptions[0].dataset.schema\n : undefined;\n\n jml({'#': buildTypeChoices({\n // resultType: 'both',\n topRoot: /** @type {HTMLDivElement} */ ($e(typesHolder, 'div[data-type]')),\n format,\n formats,\n types,\n typeNamespace,\n requireObject: hasKeyPath,\n objectHasValue: hasValue,\n schema,\n schemaContent: await getSchemaContent?.(/** @type {string} */ (schema))\n }).domArray}, typesHolder);\n\n return {\n formats,\n types,\n formatChoices,\n typesHolder,\n // Easier for Jamilih\n domArray: [formatChoices, typesHolder],\n\n // Normal API\n\n /**\n * @param {import('./types.js').StateObject} [stateObj] Will\n * auto-set `typeNamespace` and `format`\n * @param {string} [currentPath]\n * @returns {import('./formats.js').StructuredCloneValue}\n */\n getValue (stateObj, currentPath) {\n // eslint-disable-next-line @stylistic/max-len -- Long\n const root = /** @type {HTMLDivElement & {$getTypeRoot: TypeRootGetter}} */ (\n typesHolder\n ).$getTypeRoot();\n return types.getValueForRoot(/** @type {HTMLDivElement} */ (root), {\n typeNamespace,\n format: /** @type {import('./formats.js').AvailableFormat} */ (\n formatChoices.value\n ),\n formats,\n types,\n ...stateObj\n }, currentPath);\n },\n\n /**\n * @returns {string}\n */\n getType () {\n // eslint-disable-next-line @stylistic/max-len -- Long\n const root = /** @type {HTMLDivElement & {$getTypeRoot: TypeRootGetter}} */ (\n typesHolder\n ).$getTypeRoot();\n return Types.getTypeForRoot(/** @type {HTMLDivElement} */ (root));\n },\n\n /**\n * @returns {boolean}\n */\n validValuesSet () {\n // eslint-disable-next-line @stylistic/max-len -- Long\n const root = /** @type {HTMLDivElement & {$getTypeRoot: TypeRootGetter}} */ (\n typesHolder\n ).$getTypeRoot();\n const form = /** @type {HTMLFormElement} */ (\n /** @type {Element} */ (root).closest('form')\n );\n return Types.validValuesSet({form, typeNamespace});\n },\n\n /** @type {SetValue} */\n async setValue (value, stateObj) {\n const rootEditUI = /** @type {HTMLDivElement} */ (\n (await formats.getControlsForFormatAndValue(\n types,\n /** @type {import('./formats.js').AvailableFormat} */ (\n formatChoices.value\n ),\n value,\n stateObj\n )).rootUI\n );\n const type = Types.getTypeForRoot(rootEditUI);\n // eslint-disable-next-line @stylistic/max-len -- Long\n const sel = /** @type {HTMLDivElement & {$getTypeSelect: TypeSelectGetter}} */ (\n typesHolder\n ).$getTypeSelect();\n // eslint-disable-next-line @stylistic/max-len -- Long\n /** @type {HTMLSelectElement & {$addTypeAndEditUI: import('./typeChoices.js').AddTypeAndEditUI}} */ (\n sel\n ).$addTypeAndEditUI({type, editUI: rootEditUI});\n }\n };\n}\n"],"names":["$","DOMException","nbsp","d","U","z","noneditable","structuredCloningThrowing","Typeson","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","durationRegex","emojiRegex","ipv4Regex","ipv6Regex","base64Regex","timeRegexSource","timeRegex","stringType","numberType","nanType","booleanType","dateType","undefinedType","nullType","neverType","voidType","arrayType","objectType","tupleType","recordType","mapType","setType","literalType","enumType","nativeEnumType","errorTypesonRegistry","errorsTypesonRegistry","binaryButton","idx"],"mappings":"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AK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACxC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACpC,KAAK,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,EAAE;AACvE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,GAAG,CAAC;AACJ,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1D,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,gBAAgB,CAAC;AAC9E,EAAE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5C,IAAI,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAA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EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AACtC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG;AACrC,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC;AAC3B,YAAY,OAAO,EAAE,CAAC;AACtB,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AACvC,UAAUA,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxB,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG;AACrC,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC;AAC3B,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3C,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC3C,SAAS,CAAC;AACV,OAAO,EAAE,IAAI,CAAC,CAAC;AACf,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;AACzB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC,CAAC;AACF;AACA,OAAO,CAAC,SAAS,EAAE;;AC7KnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,gBAAgB,GAAG,CAAC;AACjC,EAAE,WAAW,GAAG,IAAI;AACpB,EAAE,M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CAAC,CAAC;AACP;AACA,IAAI,OAAO;AACX,MAAM,aAAa;AACnB,MAAM,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK;AAC1C,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;AAC/B,UAAU;AACV,oDAAoD;AACpD,cAAc,aAAa,CAAC,GAAG,CAAC;AAChC,cAAc,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;AAC7B,YAAY;AACZ,SAAS;AACT,QAAQ;AACR,UAAU,+BAA+B,CAAC,GAAG,CAAC,IAAI,CAAC;AACnD,UAAU;AACV,OAAO,CAAC;AACR,KAAK,CAAC;AACN,GAAG;AACH,CAAC;;ACtwBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO,CAAC;AACd;AACA;AACA;AACA,EAAE,WAAW,CAAC,GAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,gBAAgB,2CAA2C;AACpE,MAAM,YAAY;AAClB,MAAM,IAAI;AACV,MAAM,MAAM;AACZ,MAAM,iBAAiB;AACvB,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,4BAA4B,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AACvE,IAAI,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAC9C,MAAM,OAAO,CAAC,MAAM,EAAE;AACtB,QAAQ,GAAG,QAAQ;AACnB,QAAQ,KAAK;AACb,QAAQ,OAAO,EAAE,IAAI;AACrB;AACA;AACA,QAAQ,MAAM;AACd,OAAO,CAAC,CAAC;AACT,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,mCAAmC,CAAC;AACtC,IAAI,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc;AACtD,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,0BAA0B;AACnE,MAAM,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc;AAChD,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,kBAAkB,CAAC,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACzC,GAAG;AACH;;AC/JA;AACA;AACA;AACA,MAAM,QAAQ,GAAG;AACjB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC;AAClB,EAAE,WAAW,EAAE,SAAS;AACxB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC;AACtB,GAAG;AACH,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAChC,EAAE,QAAQ,EAAE,MAAM,IAAI;AACtB;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE;AAClC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,YAAY;AAC9D,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,CAAC,EAAE;AACjD,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,MAAM;AACxD,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,MAAM;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,UAAU;AAC1B,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC;AACvC,UAAU,OAAO,EAAE,IAAI;AACvB,UAAU,QAAQ,EAAE,IAAI;AACxB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACrCD;AACA;AACA;AACA,MAAM,QAAQ,GAAG;AACjB,EAAE,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C,EAAE,WAAW,EAAE,SAAS;AACxB,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACxC,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI;AAC/B,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,QAAQ,EAAE,MAAM,IAAI;AACtB,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,EAAE,EAAE,CAAC;AACP;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;AACd,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE;AAC9C,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,MAAM;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAChE,UAAU,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI;AACtC,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,OAAO;AACf,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAChE,UAAU,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI;AACxC,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACrCD;AACA;AACA;AACA,MAAM,SAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC/C,EAAE,WAAW,EAAE,UAAU;AACzB,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACjC,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK;AAChC,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,QAAQ,EAAE,MAAM,KAAK;AACvB,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD,GAAG;AACH,EAAE,EAAE,EAAE,CAAC;AACP;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE;AAC5E,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;AACd,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE;AAC/C,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,MAAM;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACjE,UAAU,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI;AACvC,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,OAAO;AACf,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACjE,UAAU,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI;AACvC,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACrCD;AACA;AACA;AACA,MAAM,OAAO,GAAG;AAChB,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC;AACjB,EAAE,WAAW,EAAE,QAAQ;AACvB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACtC,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC,GAAG;AAC5B;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE;AAClC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,WAAW;AAC7D,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,CAAC,EAAE;AACjD,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,KAAK;AACvD,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,KAAK;AACb,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,UAAU;AAC1B,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC;AACtC,UAAU,OAAO,EAAE,IAAI;AACvB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACtCD;AACA;AACA;AACO,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK;AAClC,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,WAAW,CAAC;AACpD,CAAC;;ACLD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY,GAAG;AACrB;AACA,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC;AAC9B,EAAE,WAAW,EAAE,mCAAmC;AAClD,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;AAChD,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,aAAa,EAAE,OAAO,EAAE;AACrC;AACA,MAAM,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvE,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACjC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,QAAQ,EAAE,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAChD,QAAQ,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACtC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD;AACA,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3C,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,EAAE,GAAG,KAAK,CAAC;AACnB,OAAO;AACP,MAAM,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;AAC7B,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI;AACJ,MAAM,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC3C,MAAM;AACN,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,oDAAoD,CAAC,IAAI,CAAC,OAAO;AACrE,MAAM,iBAAiB,mCAAmC;AAC1D,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,QAAQ,gBAAgB,CAAC,GAAG,EAAE;AAC9B;AACA,KAAK,CAAC,KAAK,CAAC;AACZ,GAAG;AACH,EAAE,MAAM,QAAQ,CAAC,CAAC,IAAI,EAAE;AACxB,IAAI,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAC7B,GAAG;AACH,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AACjC,IAAI,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9C,oCAAoC;AACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,gBAAgB,CAAC,GAAG,wBAAwB,MAAM,EAAE,CAAC;AAC3D;AACA,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC;AACA,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE;AAC3B,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;AACjC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS;AACnE,KAAK,EAAE;AACP,MAAM,oBAAoB,EAAE,WAAW,IAAI,MAAM;AACjD,MAAM,IAAI;AACV,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE;AACvB,QAAQ,KAAK,CAAC,GAAG;AACjB,UAAU,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;AAC1C,YAAY,UAAU;AACtB,YAAY,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACvD,WAAW,CAAC,CAAC,CAAC,CAAC;AACf,SAAS;AACT,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAC1B,KAAK,CAAC,CAAC;AACP;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAC9B,MAAM,MAAM;AACZ,SAAS;AACT,MAAM,GAAG,0BAA0B,MAAM,CAAC,CAAC;AAC3C,MAAM,GAAG,CAAC,QAAQ,EAAE;AACpB,QAAQ,OAAO,EAAE,EAAE;AACnB,QAAQ,MAAM,EAAE,GAAG;AACnB,OAAO,EAAE,GAAG,CAAC,CAAC;AACd,MAAM,OAAO,SAAS,CAAC;AACvB;AACA;AACA,KAAK,CAAC,CAAC,KAAK;AACZ;AACA;AACA,MAAM,CAAC,GAAG,KAAK;AACf;AACA,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,OAAO;AACP,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB;AACA,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE;AACxD,IAAI,MAAM,QAAQ;AAClB;AACA;AACA;AACA,QAAQ,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5D,OAAO,CAAC;AACR,IAAI,QAAQ,CAAC,gBAAgB,GAAG;AAChC;AACA,MAAM,GAAG,CAAC,GAAG;AACb,QAAQ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAChD,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,MAAM,IAAI,GAAG,GAAG;AACpB,MAAM,KAAK;AACX,MAAM;AACN,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;AACnC,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,aAAa;AACjE,OAAO;AACP,MAAM;AACN,QAAQ,QAAQ;AAChB,OAAO;AACP,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,QAAQ;AACvB,QAAQ,MAAM,EAAE,OAAO;AACvB;AACA,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,eAAe,EAAE,CAAC,CAAC;AAC3B,QAAQ,cAAc,EAAE,CAAC,CAAC;AAC1B,QAAQ,OAAO,EAAE,sBAAsB;AACvC,QAAQ,aAAa,EAAE,wBAAwB;AAC/C,QAAQ,KAAK,EAAE,+DAA+D;AAC9E,OAAO,CAAC,CAAC;AACT,MAAM,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9D,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAC7B,kEAAkE;AAClE,UAAU,IAAI;AACd,UAAU,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAClC,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB,GAAG;AACH,CAAC;;AC5LD;AACA;AACA;AACA,MAAM,WAAW,GAAG;AACpB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACzC,EAAE,WAAW,EAAE,mBAAmB;AAClC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,OAAO,CAAC,KAAK,SAAS,CAAC;AAClC,GAAG;AACH,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;AACzC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,uCAAuC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC;AAC3E,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE;AAC3E,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,KAAK,GAAG,KAAK;AACvB,yCAAyC,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;AACtE,yCAAyC,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;AACzE,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAChC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,aAAa;AAC/D,KAAK,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE;AACxD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;AACd,IAAI,MAAM,SAAS,GAAG,oBAAoB,EAAE,IAAI,KAAK,SAAS,CAAC;AAC/D,IAAI,MAAM,GAAG,GAAG,SAAS;AACzB,QAAQ,oBAAoB,EAAE,KAAK;AACnC,SAAS,KAAK,IAAI,oBAAoB,EAAE,YAAY,CAAC,CAAC;AACtD,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAChC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,SAAS;AAC3D,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,MAAM;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,QAAQ,EAAE,SAAS;AAC7B,UAAU,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACnE,UAAU,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,SAAS,GAAG,GAAG,GAAG,IAAI;AACvE,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,OAAO;AACf,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,QAAQ,EAAE,SAAS;AAC7B,UAAU,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACnE,UAAU,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK;AAC1E,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC1DD;AACA;AACA;AACA,MAAM,UAAU,GAAG;AACnB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC;AACpB,EAAE,WAAW,EAAE,IAAI,MAAM;AACzB,IAAI,GAAG;AACP,MAAM,OAAO;AACb;AACA,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACpC;AACA,MAAM,aAAa;AACnB;AACA,MAAM,2BAA2B;AACjC,MAAM,GAAG;AACT,IAAI,GAAG;AACP,GAAG;AACH,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,OAAO,CAAC,KAAK,QAAQ;AAChC;AACA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,MAAM,CAAC,KAAK,MAAM,CAAC,iBAAiB,IAAI,CAAC,KAAK,MAAM,CAAC,iBAAiB;AACtE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,IAAI,OAAO;AACX,MAAM,OAAO,EAAE,6BAA6B;AAC5C,MAAM,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,KAAK,CAAC;AACN,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1D,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,YAAY;AAC9D,KAAK,EAAE;AACP,MAAM,MAAM,CAAC,KAAK,CAAC;AACnB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE;AACxD,IAAI,MAAM,SAAS,GAAG,oBAAoB,EAAE,IAAI,KAAK,SAAS,CAAC;AAC/D,IAAI,MAAM,kBAAkB;AAC5B,MAAM,oBAAoB;AAC1B,KAAK,CAAC;AACN;AACA;AACA,IAAI,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;AACzC,IAAI,MAAM,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;AAC5C;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,QAAQ;AAC1D,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,QAAQ,EAAE,SAAS;AAC3B,QAAQ,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC;AACvC,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,GAAG,EAAE,kBAAkB,EAAE,GAAG;AACpC,YAAY,kBAAkB,EAAE,YAAY;AAC5C,cAAc,kBAAkB,EAAE,GAAG;AACrC,cAAc,kBAAkB,EAAE,GAAG;AACrC,eAAe,kBAAkB,EAAE,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC;AACrD,YAAY,SAAS;AACrB,QAAQ,GAAG,EAAE,kBAAkB,EAAE,GAAG;AACpC,YAAY,kBAAkB,EAAE,YAAY;AAC5C,cAAc,kBAAkB,EAAE,GAAG;AACrC,cAAc,kBAAkB,EAAE,GAAG;AACrC,eAAe,kBAAkB,EAAE,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC;AACxD,YAAY,SAAS;AACrB,QAAQ,IAAI,EAAE,kBAAkB,EAAE,UAAU;AAC5C,WAAW,kBAAkB,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AACjD,QAAQ,KAAK,EAAE,SAAS;AACxB,YAAY,oBAAoB,EAAE,KAAK;AACvC,aAAa,KAAK,IAAI,oBAAoB,EAAE,YAAY,IAAI,EAAE,CAAC;AAC/D,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC9FD;AACA;AACA;AACA,MAAM,UAAU,GAAG;AACnB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC;AACpB,EAAE,WAAW,EAAE,IAAI,MAAM;AACzB,IAAI,GAAG;AACP,MAAM,IAAI;AACV;AACA,MAAM,WAAW;AACjB,MAAM,GAAG;AACT,MAAM,GAAG;AACT,IAAI,GAAG;AACP,GAAG;AACH,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,IAAI,OAAO;AACX,MAAM,OAAO,EAAE,oBAAoB;AACnC,MAAM,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/C,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,YAAY;AAC9D,KAAK,EAAE;AACP,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE;AACxD,IAAI,MAAM,kBAAkB;AAC5B,MAAM,oBAAoB;AAC1B,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,QAAQ;AAC1D,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ;AACvD,QAAQ,KAAK,EAAE,KAAK,IAAI,oBAAoB,EAAE,YAAY,IAAI,EAAE;AAChE,QAAQ,GAAG,EAAE,kBAAkB,EAAE,GAAG;AACpC,YAAY,kBAAkB,EAAE,YAAY;AAC5C,cAAc,kBAAkB,EAAE,GAAG;AACrC,cAAc,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AAC1D,YAAY,SAAS;AACrB,QAAQ,GAAG,EAAE,kBAAkB,EAAE,GAAG;AACpC,YAAY,kBAAkB,EAAE,YAAY;AAC5C,cAAc,kBAAkB,EAAE,GAAG;AACrC,cAAc,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AAC1D,YAAY,SAAS;AACrB,QAAQ,IAAI,EAAE,kBAAkB,EAAE,UAAU,IAAI,GAAG;AACnD,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACzED;AACA;AACA;AACA,MAAM,gBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC;AAC3B,EAAE,WAAW,EAAE,IAAI,MAAM;AACzB,IAAI,eAAe;AACnB,MAAM,IAAI;AACV;AACA,MAAM,WAAW;AACjB,MAAM,GAAG;AACT,MAAM,GAAG;AACT,IAAI,GAAG;AACP,GAAG;AACH,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,IAAI,OAAO;AACX,MAAM,OAAO,EAAE,oBAAoB;AACnC,MAAM,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AACrC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,mBAAmB;AACrE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE;AAC7D,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AACrC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,eAAe;AACjE,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;AACxE,QAAQ,KAAK;AACb,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC1DD;AACA,MAAM,SAAS;AACf,EAAE,sHAAsH,CAAC;AACzH,MAAM,SAAS;AACf,EAAE,+XAA+X,CAAC;AAClY;AACA,MAAM,WAAW;AACjB,EAAE,mEAAmE,CAAC;AACtE;AACA,MAAM,aAAa,GAAG,CAAC,oDAAoD,CAAC,CAAC;AAC7E,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,UAAU,GAAG,cAAc,CAAC;AAClC,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAC/C,MAAM,SAAS;AACf,EAAE,yFAAyF,CAAC;AAC5F,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,aAAa;AACnB,EAAE,2SAA2S,CAAC;AAC9S;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,EAAE,IAAI,EAAE;AAChC;AACA,EAAE,IAAI,KAAK,GAAG,CAAC,kCAAkC,CAAC,CAAC;AACnD;AACA,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;AACtB,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChD,GAAG,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACtE,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,EAAE,IAAI,EAAE;AAC1B,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,UAAU,GAAG;AACnB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC;AACpB,EAAE,WAAW,EAAE,2BAA2B;AAC1C,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI;AACJ,MAAM,EAAE,CAAC,IAAI,EAAE,uCAAuC,CAAC;AACvD,MAAM;AACN,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACxC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACvC,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,MAAM,IAAI,2CAA2C;AACzD,MAAM,oBAAoB;AAC1B;AACA,OAAO,IAAI,CAAC;AACZ,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW;AAC9C,SAAS,IAAI,KAAK,OAAO;AACzB,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;AACjC,YAAY,IAAI;AAChB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE;AACxD,IAAI,MAAM,kBAAkB;AAC5B,MAAM,oBAAoB;AAC1B,KAAK,CAAC;AACN;AACA,IAAI,MAAM,IAAI,GAAG,kBAAkB,EAAE,IAAI,CAAC;AAC1C,IAAI,MAAM,SAAS,GAAG,oBAAoB,EAAE,IAAI,KAAK,SAAS,CAAC;AAC/D,IAAI,MAAM,SAAS,GAAG,kBAAkB,EAAE,GAAG,IAAI,kBAAkB,EAAE,MAAM,CAAC;AAC5E,IAAI,MAAM,SAAS,GAAG,kBAAkB,EAAE,GAAG,IAAI,kBAAkB,EAAE,MAAM,CAAC;AAC5E;AACA,IAAI,MAAM,UAAU,GAAG,kBAAkB,EAAE,UAAU,CAAC;AACtD,IAAI,MAAM,QAAQ,GAAG,kBAAkB,EAAE,QAAQ,CAAC;AAClD;AACA,IAAI,MAAM,WAAW,GAAG,kBAAkB,EAAE,WAAW,CAAC;AACxD,IAAI,MAAM,WAAW,GAAG,kBAAkB,EAAE,WAAW,CAAC;AACxD,IAAI,MAAM,IAAI,GAAG,kBAAkB,EAAE,IAAI,CAAC;AAC1C;AACA;AACA,IAAI,MAAM,QAAQ,GAAG,kBAAkB,EAAE,QAAQ,CAAC;AAClD;AACA,IAAI,MAAM,QAAQ,GAAG,kBAAkB,EAAE,QAAQ,CAAC;AAClD;AACA;AACA,IAAI,MAAM,KAAK,GAAG,kBAAkB,EAAE,KAAK,CAAC;AAC5C;AACA,IAAI,MAAM,KAAK,GAAG,kBAAkB,EAAE,KAAK,CAAC;AAC5C;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK;AAClC,MAAM,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;AACvD,QAAQ,OAAO,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,OAAO;AACP,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACjD,QAAQ,OAAO,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9D,OAAO;AACP,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,EAAE;AAChE,QAAQ,OAAO,CAAC,oCAAoC,EAAE,QAAQ,CAAC;AAC/D,UAAU,QAAQ,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE;AACxD,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAClE,QAAQ,OAAO,CAAC,wCAAwC,EAAE,KAAK,CAAC;AAChE,UAAU,KAAK,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AAC9C,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,QAAQ,IAAI;AACpB,QAAQ,KAAK,IAAI;AACjB;AACA,UAAU,QAAQ,kBAAkB,EAAE,OAAO;AAC7C,UAAU,KAAK,IAAI;AACnB,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACxC,cAAc,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAC1D,aAAa;AACb,YAAY,MAAM;AAClB,UAAU;AACV,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACxC,cAAc,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAC1D,aAAa;AACb,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,MAAM;AACnB;AACA,UAAU,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1D,YAAY,OAAO,CAAC,oCAAoC,CAAC,CAAC;AAC1D,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU;AACvB;AACA,UAAU,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9D,YAAY,OAAO,CAAC,oDAAoD,CAAC,CAAC;AAC1E,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,OAAO;AACpB,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvC,YAAY,OAAO,CAAC,kCAAkC,CAAC,CAAC;AACxD,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,MAAM;AACnB,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtC,YAAY,OAAO,CAAC,iCAAiC,CAAC,CAAC;AACvD,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,QAAQ;AACrB,UAAU,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACxC,YAAY,OAAO,CAAC,mCAAmC,CAAC,CAAC;AACzD,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,MAAM;AACnB,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtC,YAAY,OAAO,CAAC,iCAAiC,CAAC,CAAC;AACvD,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,OAAO;AACpB,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvC,YAAY,OAAO,CAAC,kCAAkC,CAAC,CAAC;AACxD,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,MAAM;AACnB,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtC,YAAY,OAAO,CAAC,iCAAiC,CAAC,CAAC;AACvD,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU;AACvB,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,YAAY,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAC3D,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,QAAQ;AACrB,UAAU,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACxC,YAAY,OAAO,CAAC,mCAAmC,CAAC,CAAC;AACzD,WAAW;AACX,UAAU,MAAM;AAIhB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,MAAM,SAAS,GAAG,CAAC,KAAK,KAAK;AACjC,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AACpC,OAAO;AACP,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AACpC,OAAO;AACP,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAC7B,OAAO;AACP,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK,CAAC;AACN;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,QAAQ;AAC1D,KAAK,EAAE;AACP,MAAM;AACN;AACA;AACA,QAAQ,OAAO,EAAE,KAAK,EAAE,MAAM;AAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;AACtB,UAAU,CAAC,OAAO,EAAE;AACpB,UAAU,GAAG,EAAE;AACf,YAAY,MAAM,CAAC,GAAG;AACtB,cAAc,MAAM,IAAI,oCAAoC,IAAI,CAAC,CAAC;AAClE,cAAc,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,cAAc,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,cAAc,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AACpD,cAAc,IAAI,CAAC,cAAc,EAAE,CAAC;AACpC,aAAa;AACb,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC;AACzC,UAAU,IAAI,EAAE,IAAI;AACpB,UAAU,KAAK,EAAE,KAAK,IAAI,oBAAoB,EAAE,YAAY,IAAI,EAAE;AAClE;AACA;AACA,UAAU,SAAS,EAAE,IAAI,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS;AAC5D,UAAU,SAAS,EAAE,IAAI,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS;AAC5D,SAAS,CAAC;AACV,UAAU,CAAC,UAAU,EAAE;AACvB,UAAU,GAAG,EAAE;AACf,YAAY,MAAM,CAAC,GAAG;AACtB,cAAc,MAAM,IAAI,uCAAuC,IAAI,CAAC,CAAC;AACrE,cAAc,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,cAAc,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrD,cAAc,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AACpD,cAAc,IAAI,CAAC,cAAc,EAAE,CAAC;AACpC,aAAa;AACb,WAAW;AACX,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC;AACzC,UAAU,QAAQ,EAAE,SAAS;AAC7B,UAAU,SAAS,EAAE,SAAS;AAC9B,SAAS,EAAE;AACX,UAAU,SAAS;AACnB,cAAc,oBAAoB,EAAE,KAAK;AACzC,eAAe,KAAK,IAAI,oBAAoB,EAAE,YAAY,IAAI,EAAE,CAAC;AACjE,SAAS,CAAC;AACV,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC9QD;AACA;AACA;AACA,MAAM,kBAAkB,GAAG;AAC3B,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC;AAC7B,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,WAAW,EAAE,6BAA6B;AAC5C,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACpB,IAAI,MAAM;AACV,MAAM,UAAU,EAAE,MAAM,EAAE,UAAU;AACpC,KAAK,kDAAkD,IAAI,CAAC,CAAC;AAC7D,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,gBAAgB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;AACjC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;AACrB,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACtD,QAAQ,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,UAAU,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;AACtC,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,iBAAiB,EAAE;AACvB;AACA,MAAM,KAAK,EAAE,mBAAmB;AAChC,MAAM,QAAQ,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,KAAK,CAAC;AACtD;AACA,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACxC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE;AAC3C,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACrD;AACA;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC3B,QAAQ,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;AAC5B,OAAO;AACP,MAAM,QAAQ,CAAC,KAAK,wBAAwB,WAAW,EAAE,GAAG;AAC5D,QAAQ,YAAY;AACpB;AACA;AACA,QAAQ,mBAAmB,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;AAClD,OAAO,CAAC;AACR,MAAM,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACxC,KAAK;AACL,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACxB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,GAAG,CAAC,OAAO,KAAK;AACxC,MAAM,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACrC,KAAK,CAAC;AACN;AACA,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE;AACxC,MAAM,OAAO,cAAc;AAC3B,QAAQ,8DAA8D;AACtE,OAAO,CAAC;AACR,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACpC,MAAM,OAAO,cAAc;AAC3B,QAAQ,0CAA0C;AAClD,UAAU,4BAA4B;AACtC,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,GAAG,OAAO;AAC1B;AACA,MAAM,IAAI,CAAC;AACX,IAAI,MAAM,eAAe,GAAG,MAAM;AAClC,MAAM,OAAO;AACb,QAAQ,OAAO,EAAE,QAAQ;AACzB,QAAQ,mBAAmB;AAC3B;AACA,OAAO,CAAC,QAAQ;AAChB,QAAQ,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;AACtC,OAAO,CAAC;AACR,KAAK,CAAC;AACN,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;AACrB,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK;AAC1D;AACA;AACA;AACA;AACA,QAAQ,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB;AAC/C;AACA,sCAAsC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;AACjE,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG;AAC/C,UAAU,CAAC,MAAM,KAAK,0BAA0B;AAChD,8CAA8C,MAAM;AACpD,WAAW;AACX,SAAS,CAAC;AACV,QAAQ,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrE,QAAQ,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;AACnC,UAAU,OAAO,GAAG,8BAA8B,CAAC;AACnD,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,QAAQ,QAAQ,kCAAkC,EAAE;AACpD,sCAAsC,OAAO,CAAC,cAAc,CAAC,CAAC,aAAa;AAC3E,UAAU,gBAAgB;AAC1B,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC/B,UAAU,OAAO,GAAG,sBAAsB,CAAC;AAC3C,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,eAAe,EAAE,EAAE;AAChC,UAAU,OAAO,GAAG,CAAC,6BAA6B,EAAE,CAAC,CAAC,KAAK,CAAC;AAC5D,YAAY,CAAC,sBAAsB,CAAC,CAAC;AACrC,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO,CAAC,EAAE;AACV,QAAQ,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACvC,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACxD,IAAI,MAAM,gBAAgB,4CAA4C,CAAC;AACvE,MAAM,OAAO;AACb,MAAM,mBAAmB;AACzB;AACA,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC;AAC7B,QAAQ,OAAO;AACf;AACA;AACA;AACA,QAAQ,YAAY,KAAK,QAAQ;AACjC,YAAY,QAAQ;AACpB;AACA,YAAY,IAAI,CAAC,CAAC;AAClB;AACA,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE;AACnC,MAAM,OAAO,cAAc;AAC3B,QAAQ,+CAA+C;AACvD,UAAU,mBAAmB;AAC7B,OAAO,CAAC;AACR,KAAK;AACL,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,IAAI;AACjB,KAAK,CAAC;AACN,GAAG;AACH,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;AACjC,IAAI,MAAM,IAAI;AACd,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7B,KAAK,CAAC;AACN,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC/D,MAAM,KAAK,CAAC,QAAQ,CAAC;AACrB,QAAQ,IAAI;AACZ;AACA,QAAQ,IAAI,iCAAiC,IAAI,CAAC;AAClD,QAAQ,OAAO;AACf,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACnB,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9C,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,GAAG;AACH;AACA;AACA;AACA,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,GAAG,EAAE,iBAAiB,EAAE;AACvD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACxB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AAC1D,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC,gCAAgC,CAAC;AACtE,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;AACnD,UAAU,IAAI,EAAE,MAAM;AACtB,UAAU,OAAO,EAAE,UAAU;AAC7B,UAAU,KAAK;AACf,SAAS,CAAC;AACV,OAAO,CAAC;AACR;AACA;AACA,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACxND;AACA;AACA;AACA,MAAM,mBAAmB,GAAG;AAC5B,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC;AAC9B,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,WAAW,EAAE,8BAA8B;AAC7C,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,kBAAkB,CAAC,OAAO;AAChC,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,gBAAgB,CAAC,CAAC,GAAG,IAAI,EAAE;AAC7B,IAAI,OAAO,kBAAkB,CAAC,gBAAgB,EAAE,KAAK;AACrD,MAAM,IAAI,EAAE,IAAI;AAChB,KAAK,CAAC;AACN,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,iBAAiB,EAAE;AACvB,MAAM,KAAK,EAAE,QAAQ;AACrB,MAAM,QAAQ,EAAE;AAChB,QAAQ,mBAAmB;AAC3B;AACA,QAAQ,QAAQ;AAChB,QAAQ,KAAK;AACb,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI;AACJ,MAAM,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACpD,MAAM;AACN,GAAG;AACH,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI,EAAE;AACxB,IAAI,OAAO,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE;AACnB,IAAI,OAAO,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE;AACnB,IAAI,OAAO,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACvD,GAAG;AACH,CAAC;;ACrDD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAQ,CAAC;AACf;AACA;AACA;AACA,EAAE,WAAW,CAAC,GAAG;AACjB;AACA,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE;AACf,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,GAAG;AAC9B;AACA,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH;;ACpBA,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9B,EAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACtD;AACA;AACA,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,SAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC;AACnB,EAAE,KAAK,EAAE,IAAI;AACb;AACA,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1B,EAAE,gBAAgB,EAAE,MAAM;AAC1B,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AACpB,IAAI,MAAM;AACV;AACA,MAAM,gBAAgB,GAAG,EAAE;AAC3B,MAAM,OAAO,EAAE,aAAa;AAC5B,MAAM,UAAU;AAChB,MAAM,YAAY;AAClB,KAAK,kDAAkD,IAAI,CAAC,CAAC;AAC7D;AACA,IAAI,MAAM,MAAM,iDAAiD,CAAC,IAAI,EAAE,MAAM,CAAC;AAC/E;AACA,IAAI,MAAM,KAAK;AACf,oDAAoD,CAAC,IAAI,EAAE,KAAK;AAChE,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAC1B,IAAI,MAAM,KAAK,GAAG,MAAM;AACxB,QAAQ,mBAAmB;AAC3B;AACA,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;AAC1D;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AACxD;AACA,IAAI,IAAI,SAAS,GAAG,aAAa,KAAK,SAAS;AAC/C,QAAQ,aAAa;AACrB;AACA,QAAQ,CAAC,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,QAAQ,GAAG,CAAC,SAAS,KAAK;AACpC,MAAM,IAAI,SAAS,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAChD,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK;AACxC;AACA,4DAA4D;AAC5D,cAAc,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrC,cAAc,cAAc;AAC5B;AACA,SAAS,CAAC;AACV,QAAQ,IAAI,QAAQ,EAAE;AACtB,UAAU,gBAAgB,CAAC,GAAG,EAAE,CAAC;AACjC,UAAU,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1D,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC;AAClB,MAAM,MAAM,KAAK,GAAG,MAAM;AAC1B,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,MAAM,qBAAqB,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,GAAG,YAAY,CAAC,CAAC;AAC1F,QAAQ,IAAI,qBAAqB,EAAE;AACnC,UAAU,MAAM,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5D,UAAU,GAAG,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxE,UAAU,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACvE,UAAU,IAAI,CAAC,SAAS,EAAE;AAC1B,YAAY,OAAO;AACnB,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC;AACjC,QAAQ,IAAI;AACZ,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,iBAAiB;AACrE,YAAY,SAAS;AACrB,YAAY;AACZ,cAAc,QAAQ,EAAE,KAAK;AAC7B,cAAc,MAAM;AACpB,cAAc,KAAK;AACnB,cAAc,YAAY;AAC1B,cAAc,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG;AAC3E,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC,OAAO,GAAG,EAAE;AACtB,UAAU,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAChC,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACjC,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,KAAK,EAAE,CAAC;AAChB,OAAO,CAAC;AACR,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACpD,QAAQ,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;AAChC,OAAO;AACP,MAAM,OAAO;AACb,QAAQ,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAChD,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC;AAC3B,YAAY,IAAI,CAAC,GAAG;AACpB,cAAc,IAAI,GAAG,4BAA4B,MAAM,EAAE;AACzD,cAAc,IAAI,CAAC,QAAQ;AAC3B,gBAAgB,IAAI,QAAQ,CAAC,MAAM,CAAC;AACpC,gBAAgB,MAAM;AACtB,QAAQ,OAAO,EAAE,SAAS;AAC1B,OAAO,CAAC;AACR,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG,CAAC,WAAW,KAAK;AACnC,MAAM,IAAI,CAAC,SAAS,EAAE;AACtB,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC/C,QAAQ,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,OAAO;AACP,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACnG,MAAM,IAAI,CAAC,YAAY,EAAE;AACzB,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC,GAAG,YAAY,CAAC;AACnD,MAAM,MAAM,EAAE,GAAG,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,aAAa,CAAC;AAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1D,MAAM,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC;AAC/B,MAAM,IAAI;AACV,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,iBAAiB;AACnE,UAAU,SAAS;AACnB,UAAU;AACV,YAAY,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY;AACxD,YAAY,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;AACxE,WAAW;AACX,SAAS,CAAC;AACV,OAAO,CAAC,MAAM;AACd;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,IAAI,MAAM,EAAE;AAClB;AACA,qFAAqF;AACrF,UAAU,MAAM;AAChB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;AAClB,OAAO;AACP,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC/B,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;AAClB,KAAK,CAAC;AACN,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,GAAG,EAAE,CAAC,EAAE;AAChD;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;AAClC,KAAK;AACL;AACA,IAAI,MAAM,KAAK,iDAAiD,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChF,IAAI,MAAM,GAAG,GAAG,WAAW,KAAK,EAAE,CAAC;AACnC,IAAI,MAAM,UAAU;AACpB;AACA;AACA;AACA;AACA,WAAW,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;AACpC,IAAI,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC/C;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;AAC9C,QAAQ,EAAE;AACV,QAAQ,CAAC,IAAI,CAAC,MAAM;AACpB,UAAU,EAAE;AACZ,UAAU,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ;AAC7C,0CAA0C,CAAC,GAAG,CAAC,mBAAmB;AAClE,YAAY,IAAI;AAChB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5C,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK;AACrB,SAAS,CAAC,CAAC,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK;AACnD,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe;AACzC,QAAQ,IAAI,EAAE,QAAQ,EAAE,WAAW,GAAG,GAAG,GAAG,eAAe;AAC3D,OAAO,CAAC;AACR,MAAM,IAAI,mBAAmB,IAAI,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,EAAE;AACzE;AACA,QAAQ,QAAQ,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC3C,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC;AACvB,OAAO;AACP,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACpC,MAAM,MAAM,MAAM;AAClB,QAAQ,QAAQ,CAAC,iBAAiB;AAClC,OAAO,CAAC;AACR,MAAM,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,IAAI;AAChB,QAAQ,GAAG,CAAC,mBAAmB;AAC/B;AACA,WAAW,QAAQ;AACnB,UAAU;AACV,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,WAAW;AACX,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,mBAAmB;AACvC;AACA,WAAW,QAAQ;AACnB,UAAU;AACV,YAAY,yCAAyC;AACrD,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,WAAW;AACX,SAAS,CAAC,CAAC,CAAC;AACZ,OAAO,CAAC;AACR;AACA,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,WAAW;AACxC,QAAQ,IAAI;AACZ,QAAQ,OAAO;AACf,OAAO,CAAC;AACR,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,IAAI,cAAc,CAAC,MAAM,EAAE;AACnC,8CAA8C,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;AACrE,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAS;AACT,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO;AAClD,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC,YAAY,6BAA6B,CAAC,KAAK;AACzE,UAAU,MAAM,WAAW,GAAG,YAAY,KAAK,EAAE;AACjD,cAAc,GAAG;AACjB,cAAc,kBAAkB,CAAC;AACjC,cAAc,IAAI,EAAE,YAAY;AAChC,cAAc,GAAG,EAAE,GAAG;AACtB,aAAa,CAAC,CAAC;AACf,UAAU,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAC1E,UAAU,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;AACpE,UAAU,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,MAAM;AAChE,YAAY,CAAC,GAAG,EAAE,QAAQ,KAAK;AAC/B,cAAc,OAAO,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC3D,aAAa;AACb,YAAY,GAAG;AACf,WAAW,CAAC;AACZ,8CAA8C,CAAC,kBAAkB;AACjE,mCAAmC,sBAAsB;AACzD,WAAW,GAAG,WAAW,CAAC;AAC1B,SAAS;AACT,OAAO,CAAC;AACR,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,QAAQ;AACxB,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC;AACzB,QAAQ,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACtC,UAAU,IAAI,GAAG,CAAC,GAAG,CAAC;AACtB,UAAU,IAAI,CAAC,GAAG;AAClB,YAAY,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AACxE,YAAY,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;AAC3C,YAAY,OAAO,CAAC,GAAG,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1D,WAAW,CAAC,CAAC;AACb,YAAY,IAAI,CAAC,MAAM;AACvB,cAAc,UAAU,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK;AAC1E,cAAc,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;AAC7C,cAAc,MAAM,GAAG,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1D,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO,GAAG,CAAC;AACzB,aAAa,uCAAuC,EAAE,EAAE;AACxD,cAAc,GAAG,CAAC;AAClB,GAAG;AACH;AACA;AACA,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM;AAClE,IAAI,oBAAoB;AACxB,GAAG,EAAE;AACL;AACA,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;AACvB;AACA,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,GAAG,CAAC;AACzB;AACA,MAAM,SAAS,EAAE,aAAa,EAAE,QAAQ;AACxC,KAAK,KAAK;AACV,MAAM,MAAM,SAAS,0CAA0C;AAC/D,QAAQ,oBAAoB;AAC5B,SAAS,KAAK,GAAG,SAAS,CAAC,CAAC;AAC5B,MAAM,MAAM,QAAQ,0CAA0C;AAC9D,QAAQ,oBAAoB;AAC5B,SAAS,IAAI,CAAC;AACd,MAAM,OAAO,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,QAAQ;AACvC,mDAAmD;AACnD,YAAY,oBAAoB;AAChC,aAAa,OAAO,EAAE,WAAW;AACjC,aAAa,CAAC,IAAI,KAAK,KAAK,yCAAyC;AACrE,cAAc,oBAAoB;AAClC,eAAe,KAAK,EAAE,WAAW;AACjC,qDAAqD;AACrD,gBAAgB,oBAAoB;AACpC,iBAAiB,KAAK,EAAE,WAAW;AACnC;AACA,gBAAgB,SAAS,EAAE,WAAW,IAAI,QAAQ,EAAE,WAAW;AAC/D,eAAe,CAAC,IAAI,MAAM;AAC1B,YAAY,oBAAoB,GAAG,EAAE,GAAG,UAAU;AAClD,QAAQ,oBAAoB,GAAG,EAAE,GAAG,GAAG;AACvC,QAAQ3B,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,QAAQ,CAAC,MAAM,EAAE;AACjB,UAAU,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAChD,UAAU,KAAK,EAAE,IAAI,KAAK,QAAQ,4CAA4C;AAC9E,YAAY,oBAAoB;AAChC,aAAa,GAAG,EAAE,WAAW;AAC7B,sDAAsD;AACtD,cAAc,oBAAoB;AAClC,eAAe,GAAG,EAAE,WAAW;AAC/B,cAAc,oBAAoB,GAAG,QAAQ,GAAG,SAAS;AACzD,SAAS,EAAE;AACX,UAAU,QAAQ,KAAK,SAAS;AAChC,sDAAsD;AACtD,cAAc,oBAAoB;AAClC,eAAe,UAAU,GAAG,QAAQ,CAAC,EAAE,WAAW,IAAI,QAAQ;AAC9D;AACA;AACA,cAAc,SAAS;AACvB,SAAS,CAAC;AACV,OAAO,CAAC,CAAC;AACT,KAAK,CAAC;AACN,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,sDAAsD;AAC/E,MAAM,KAAK,EAAE,aAAa;AAC1B,MAAM,OAAO,EAAE,CAAC,IAAI,CAAC;AACrB,MAAM,OAAO,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB,CAAC,CAAC;AAChC,UAAU,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc;AAC/C,UAAU,aAAa;AACvB,SAAS,EAAE;AACX,UAAU,IAAI,UAAU,KAAK,KAAK,EAAE;AACpC,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC;AACnD,cAAc,UAAU;AACxB,cAAc,QAAQ,EAAE,IAAI;AAC5B,cAAc,aAAa,EAAE,IAAI,EAAE,OAAO;AAC1C,cAAc,cAAc;AAC5B,cAAc,MAAM,EAAE,aAAa;AACnC,cAAc,KAAK;AACnB,cAAc,QAAQ,EAAE,IAAI;AAC5B,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,QAAQ,KAAK,GAAG,EAAE;AAClC,cAAc,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACrD,cAAc,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;AAC5C,cAAc,MAAM,WAAW,GAAG,GAAG;AACrC,gBAAgB,UAAU,EAAE;AAC5B,kBAAkB,CAAC,QAAQ,EAAE;AAC7B,oBAAoB,KAAK,iDAAiD;AAC1E,sBAAsB,oBAAoB;AAC1C,uBAAuB,GAAG,EAAE,WAAW;AACvC,wBAAwB,WAAW;AACnC,wBAAwB,SAAS;AACjC,mBAAmB,EAAE;AACrB,mEAAmE;AACnE,sBAAsB,oBAAoB;AAC1C,uBAAuB,GAAG,EAAE,WAAW,IAAI,KAAK;AAChD,mBAAmB,CAAC;AACpB,iBAAiB,EAAE,QAAQ;AAC3B,eAAe,CAAC;AAChB,cAAc,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACrC,aAAa,MAAM;AACnB,cAAc,MAAM,aAAa,GAAG,GAAG;AACvC,gBAAgB,UAAU,EAAE;AAC5B,kBAAkB,CAAC,QAAQ,EAAE;AAC7B,oBAAoB,KAAK,iDAAiD;AAC1E,sBAAsB,oBAAoB;AAC1C,uBAAuB,KAAK,EAAE,WAAW;AACzC,wBAAwB,aAAa;AACrC,wBAAwB,SAAS;AACjC,mBAAmB,EAAE;AACrB,mEAAmE;AACnE,sBAAsB,oBAAoB;AAC1C,uBAAuB,KAAK,EAAE,WAAW;AACzC,oBAAoB,OAAO;AAC3B,mBAAmB,CAAC;AACpB,iBAAiB,EAAE,IAAI,CAAC,aAAa;AACrC,eAAe,CAAC;AAChB,cAAc,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AACxC,cAAc,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACvC,aAAa;AACb,YAAY,OAAO,IAAI,CAAC;AACxB,WAAW;AACX;AACA,UAAU,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7D,UAAU,MAAM,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC;AACjD,YAAY,UAAU;AACtB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,aAAa,EAAE,IAAI,EAAE,OAAO;AACxC,YAAY,cAAc;AAC1B,YAAY,MAAM;AAClB,YAAY,aAAa;AACzB,YAAY,oBAAoB,EAAE,aAAa;AAC/C,YAAY,KAAK;AACjB,YAAY,QAAQ,EAAE,IAAI;AAC1B,WAAW,CAAC,CAAC;AACb,UAAU,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC9B,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT;AACA;AACA;AACA,QAAQ,cAAc,CAAC,GAAG;AAC1B,UAAU,SAAS,EAAE,CAAC;AACtB,UAAU,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACnD;AACA,UAAU,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE;AAC3C,YAAY,WAAW,CAAC;AACxB;AACA;AACA;AACA,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,QAAQ,EAAE,SAAS;AACjC,aAAa,CAAC;AACd,WAAW,EAAE,UAAU,CAAC,CAAC;AACzB,UAAU,OAAO,QAAQ,CAAC;AAC1B,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;AACtC,UAAU,SAAS,EAAE,CAAC;AACtB,UAAU,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACnD;AACA,UAAU,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE;AAC3C,YAAY,WAAW,CAAC;AACxB;AACA;AACA;AACA,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,aAAa,CAAC;AACd,WAAW,EAAE,UAAU,CAAC,CAAC;AACzB,UAAU,OAAO,QAAQ,CAAC;AAC1B,SAAS;AACT,QAAQ,cAAc,CAAC,GAAG;AAC1B,UAAU,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AACxD,SAAS;AACT,OAAO;AACP,KAAK,GAAG;AACR,MAAM,CAAC,MAAM,EAAE;AACf,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW;AAChD,OAAO,EAAE;AACT,QAAQ,oBAAoB;AAC5B,YAAY,GAAG;AACf,YAAY,GAAG,CAAC,WAAW;AAC3B,YAAY,IAAI;AAChB,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/B,OAAO,CAAC;AACR,MAAMA,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACpB,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AACvD,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAQ,MAAM,aAAa,kCAAkC,EAAE;AAC/D;AACA,sCAAsC,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;AACtE,UAAU,gBAAgB;AAC1B,SAAS,CAAC,CAAC;AACX,QAAQ,aAAa,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AACrD,mCAAmC;AACnC,UAAU,MAAM;AAChB,UAAU,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AACzD,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;AACxC,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,QAAQ;AACvC,YAAY,CAAC,KAAK,EAAE;AACpB,YAAY,KAAK,EAAE,oBAAoB;AACvC,iBAAiB,IAAI,KAAK,UAAU;AACpC,kBAAkB,cAAc;AAChC,kBAAkB,IAAI,KAAK,KAAK;AAChC,oBAAoB,SAAS;AAC7B,oBAAoB,IAAI,KAAK,KAAK;AAClC,sBAAsB,SAAS;AAC/B,sBAAsB,IAAI,KAAK,OAAO;AACtC,wBAAwB,WAAW;AACnC,wBAAwB,YAAY;AACpC,gBAAgB,SAAS;AACzB,WAAW,EAAE;AACb,YAAY,IAAI,KAAK,UAAU;AAC/B,gBAAgB,CAAC,oBAAoB,EAAE,WAAW,IAAI,UAAU,IAAI,WAAW;AAC/E,gBAAgB,IAAI,KAAK,KAAK;AAC9B,kBAAkB,CAAC,oBAAoB,EAAE,WAAW,IAAI,KAAK,IAAI,SAAS;AAC1E,kBAAkB,IAAI,KAAK,KAAK;AAChC,oBAAoB,CAAC,oBAAoB,EAAE,WAAW,IAAI,KAAK,IAAI,SAAS;AAC5E,oBAAoB,CAAC,oBAAoB,EAAE,WAAW,IAAI,OAAO;AACjE,oBAAoB,WAAW;AAC/B,YAAY,CAAC,MAAM,EAAE;AACrB,cAAc,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC;AAC1D,kBAAkB,KAAK,CAAC,IAAI;AAC5B,kBAAkB,KAAK,CAAC,MAAM,KAAK,CAAC;AACpC,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,aAAa,IAAI,KAAK,QAAQ;AAC9B,cAAc,oBAAoB,EAAE,WAAW,IAAI,QAAQ;AAC3D,cAAc,EAAE,CAAC;AACjB,QAAQ,CAAC,KAAK,EAAE;AAChB,UAAU,KAAK,EAAE,YAAY;AAC7B,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB;AACA,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AACjE,GAAG;AACH;AACA;AACA;AACA,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,aAAa,EAAE,gBAAgB,EAAE,MAAM;AAC3C,IAAI,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,aAAa;AAC1E,IAAI,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,GAAG,IAAI;AACzE,GAAG,EAAE;AACL,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAC1B;AACA,IAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAClC,IAAI,MAAM,UAAU,GAAG,IAAI,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,IAAI,IAAI,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;AACnC,IAAI,MAAM,kBAAkB,GAAG,IAAI,KAAK,OAAO;AAC/C,MAAM,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,UAAU;AAC7D,MAAM,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,CAAC;AAC5C,IAAI,MAAM,aAAa,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,CAAC;AAC9D;AACA,IAAI,MAAM,WAAW,0CAA0C;AAC/D,MAAM,oBAAoB;AAC1B,OAAO,OAAO,EAAE,WAAW,KAAK,IAAI,KAAK,KAAK;AAC9C,6CAA6C;AAC7C,QAAQ,oBAAoB;AAC5B,SAAS,KAAK,EAAE,WAAW;AAC3B,QAAQ,SAAS,CAAC,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK;AAC/C,MAAM,IAAI,cAAc,IAAI,WAAW,EAAE;AACzC,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;AACtB,OAAO;AACP,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG,UAAU,MAAM,EAAE,SAAS,EAAE;AACpD,MAAM,MAAM,KAAK,+BAA+B,MAAM,CAAC,aAAa,CAAC,CAAC;AACtE,MAAM,MAAM,SAAS,+BAA+B,KAAK;AACzD,SAAS,SAAS,KAAK,IAAI,GAAG,wBAAwB,GAAG,oBAAoB;AAC7E,OAAO,CAAC,CAAC;AACT;AACA,MAAM,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AACzE,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,MAAM,KAAK,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACxE,QAAQ,MAAM,aAAa,GAAG,GAAG,CAAC,mBAAmB;AACrD,UAAU,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,SAAS,CAAC,CAAC,CAAC,CAAC;AACb,QAAQ,MAAM,aAAa,GAAG,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE;AAC7D,UAAU,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;AAClC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACd;AACA,QAAQ,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC;AAC/C,QAAQ,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC;AAC/C,QAAQ,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;AACzC,QAAQ,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;AACzC,OAAO,MAAM;AACb;AACA,QAAQ,MAAM,aAAa;AAC3B;AACA;AACA,cAAc;AACd,cAAc,KAAK;AACnB,cAAc,iBAAiB,EAAE,CAAC,CAAC;AACnC;AACA,QAAQ,MAAM,aAAa;AAC3B;AACA;AACA,cAAc;AACd,cAAc,SAAS;AACvB,cAAc,iBAAiB,EAAE,CAAC,CAAC;AACnC,QAAQ,IAAI,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,QAAQ;AACzD,UAAU,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,QAAQ;AACvD,UAAU;AACV,UAAU,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;AAC3C,UAAU,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC;AAC3C,UAAU,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;AACrC,UAAU,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;AACrC,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAI,SAAS,KAAK,IAAI,EAAE;AAC9B,QAAQ,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChC,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAChC,OAAO;AACP,MAAM,KAAK,CAAC,qBAAqB,CAAC;AAClC;AACA,QAAQ,OAAO,iCAAiC,OAAO,CAAC;AACxD,OAAO,CAAC,CAAC;AACT;AACA,4EAA4E;AAC5E,QAAQ,IAAI;AACZ,QAAQ,iBAAiB,EAAE,CAAC;AAC5B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,iBAAiB,GAAG,YAAY;AAC1C,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE;AAC5B,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE;AACpC,QAAQ,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAC/D,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK;AACrC,QAAQ,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACnC,QAAQ,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;AACnC,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE;AACrB,UAAU,EAAE,GAAG,KAAK,CAAC;AACrB,SAAS,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,UAAU,IAAI,GAAG,KAAK,CAAC;AACvB,SAAS;AACT,QAAQ,IAAI,EAAE,EAAE;AAChB,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM;AAC5C,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1C,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AACpC,SAAS;AACT,QAAQ,IAAI,IAAI,EAAE;AAClB,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM;AAC5C,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5C,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AACtC,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,GAAG,YAAY;AACxC,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;AACvE,MAAM,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;AAC5D,QAAQ,OAAO,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;AAC5D,OAAO,CAAC;AACR,UAAU,yBAAyB;AACnC,UAAU,EAAE,CAAC;AACb;AACA;AACA,MAAM,IAAI,UAAU,EAAE;AACtB,QAAQ,IAAI,CAAC,iBAAiB;AAC9B,UAAU,UAAU;AACpB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,OAAO;AACP;AACA;AACA,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,uBAAuB,EAAE,EAAE,GAAG,KAAK;AACvE,QAAQ,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AAC9C,UAAU,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;AAC9D,SAAS,CAAC;AACV,YAAY,yBAAyB;AACrC,YAAY,EAAE,CAAC;AACf;AACA,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK;AAChC;AACA;AACA;AACA,UAAU,KAAK,CAAC,iBAAiB,KAAK,gBAAgB;AACtD,UAAU;AACV,UAAU,KAAK,CAAC,iBAAiB;AACjC,YAAY,UAAU;AACtB,WAAW,CAAC;AACZ,UAAU,IAAI,UAAU,EAAE;AAC1B;AACA;AACA,YAAY,KAAK,CAAC,cAAc,EAAE,CAAC;AACnC,WAAW;AACX,SAAS;AACT,QAAQ,OAAO,UAAU,CAAC;AAC1B,OAAO,CAAC,CAAC;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,GAAG,CAAC;AACzB,MAAM,SAAS,EAAE,MAAM,EAAE,SAAS,cAAc,aAAa;AAC7D,MAAM,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;AAC5C,KAAK,KAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAM,eAAe,GAAG,gBAAgB,WAAW,EAAE;AAC3D,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,MAAM,qBAAqB,GAAG,UAAU,CAAC,sBAAsB,EAAE,CAAC;AAC1E,QAAQ,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC;AAC3D,QAAQ,IAAI,WAAW,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3E,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,MAAM,OAAO,CAAC,OAAO,CAAC;AAC9B,UAAU,OAAO,EAAE,+CAA+C;AAClE,YAAY,uDAAuD;AACnE,YAAY,2DAA2D;AACvE,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,cAAc;AAC5B;AACA,YAAY,EAAE;AACd,0CAA0C,UAAU,CAAC,sBAAsB;AAC3E,cAAc,OAAO;AACrB,aAAa;AACb,WAAW,CAAC;AACZ,QAAQ,MAAM,OAAO,0BAA0B,qBAAqB,CAAC,GAAG;AACxE,UAAU,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AACnD,QAAQ,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AACvD;AACA,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC,OAAO,CAAC;AACR,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,MAAM,gBAAgB;AAC9B,sEAAsE;AACtE,YAAY,gBAAgB;AAC5B,YAAY;AACZ,YAAY,KAAK,EAAE,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;AAC9D,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,YAAY,QAAQ,EAAE,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;AACjE;AACA,YAAY,WAAW,EAAE,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;AACpE;AACA,YAAY,MAAM;AAClB,cAAc,MAAM;AACpB,aAAa;AACb,YAAY,cAAc,EAAE,aAAa;AACzC;AACA,YAAY,aAAa,iDAAiD;AAC1E,cAAc,oBAAoB;AAClC,eAAe,GAAG;AAClB,YAAY,aAAa,EAAE,uBAAuB;AAClD,WAAW,CAAC,CAAC;AACb,QAAQ,OAAO,CAAC,QAAQ,EAAE;AAC1B,UAAU,CAAC,MAAM,EAAE;AACnB,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,KAAK,EAAE;AACnB,cAAc,IAAI,KAAK,KAAK;AAC5B,6DAA6D;AAC7D,gBAAgB,oBAAoB;AACpC,iBAAiB,GAAG,EAAE,WAAW;AACjC;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,IAAI,KAAK,QAAQ;AACjC,sDAAsD;AACtD,gBAAgB,oBAAoB;AACpC,iBAAiB,GAAG,EAAE,WAAW;AACjC,kBAAkB,cAAc;AAChC,kBAAkB,SAAS;AAC3B,WAAW,EAAE;AACb,YAAY,IAAI,KAAK,KAAK;AAC1B,+DAA+D;AAC/D,gBAAgB,oBAAoB;AACpC,iBAAiB,GAAG,EAAE,WAAW,IAAI,SAAS;AAC9C,wDAAwD;AACxD,gBAAgB,oBAAoB;AACpC,iBAAiB,GAAG,EAAE,WAAW,IAAI,YAAY;AACjD,YAAY,GAAG;AACf,WAAW,CAAC;AACZ,UAAU,CAAC,MAAM,EAAE;AACnB,YAAY,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACnC,YAAY,SAAS;AACrB,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACjC,UAAU,GAAG;AACb,UAAUA,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxB;AACA,UAAU,CAAC,MAAM,EAAE;AACnB,YAAY,KAAK,EAAE,cAAc;AACjC,YAAY,GAAG,EAAE;AACjB,cAAc,MAAM,EAAE,CAAC,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;AACzC;AACA;AACA,gBAAgB,KAAK,CAAC,qBAAqB,CAAC;AAC5C;AACA,kBAAkB,OAAO,iCAAiC,OAAO,CAAC;AAClE,iBAAiB,CAAC,CAAC;AACnB,eAAe,EAAE,IAAI,CAAC;AACtB,aAAa;AACb,YAAY,OAAO,EAAE;AACrB;AACA,cAAc,eAAe,CAAC,GAAG;AACjC,gBAAgB,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;AAC/D;AACA,gBAAgB,UAAU,CAAC,MAAM;AACjC,kBAAkB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACzD,oBAAoB,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC;AAC9C,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACzE,oBAAoB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK;AACvD,sBAAsB,OAAO,GAAG,KAAK,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxE,qBAAqB,CAAC,CAAC;AACvB,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AACxC,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB,kBAAkB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACpD;AACA,kBAAkB,IAAI,CAAC,MAAM,EAAE;AAC/B,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB;AACA,kBAAkB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;AAC/C,2EAA2E,EAAE;AAC7E;AACA,wBAAwB,MAAM,CAAC,kBAAkB;AACjD,yBAAyB,gBAAgB;AACzC,qBAAqB;AACrB,sBAAsB,MAAM,CAAC;AAC7B;AACA,kBAAkB,OAAO,CAAC,iBAAiB;AAC3C,oBAAoB,CAAC,UAAU,EAAE,IAAI,KAAK,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC9E,mBAAmB,CAAC;AACpB,kBAAkB,OAAO,CAAC,cAAc,EAAE,CAAC;AAC3C,iBAAiB,CAAC,CAAC;AACnB,eAAe;AACf,aAAa;AACb,WAAW,EAAE,gBAAgB,CAAC,QAAQ,CAAC;AACvC,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,IAAI,kBAAkB,EAAE;AAC9B;AACA,QAAQ,MAAM,WAAW,2CAA2C;AACpE,UAAU,oBAAoB;AAC9B,WAAW,UAAU,0BAA0B,QAAQ,EAAE,EAAE,WAAW,CAAC;AACvE,QAAQ,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO;AACjD,kDAAkD;AAClD,YAAY,oBAAoB;AAChC,aAAa,UAAU,IAAI,EAAE;AAC7B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK;AAC/B,UAAU,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;AAC/B,YAAY,OAAO,IAAI,CAAC;AACxB,WAAW;AACX,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3B,QAAQ,kBAAkB,EAAE,CAAC;AAC7B,QAAQ,MAAM,YAAY,GAAG,MAAM;AACnC;AACA,YAAY,MAAM,KAAK,QAAQ;AAC/B,gBAAgB,EAAE;AAClB,iBAAiB,QAAQ,KAAK,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC/D;AACA,YAAY,QAAQ,IAAI,EAAE,CAAC;AAC3B,QAAQ,sDAAsD,CAAC,QAAQ,EAAE;AACzE,UAAU,MAAM;AAChB,cAAc,WAAW,IAAI,MAAM;AACnC,cAAc,CAAC,GAAG,EAAE,QAAQ;AAC5B,gBAAgB;AAChB,gBAAgB,CAAC,GAAG,EAAE;AACtB,kBAAkB,SAAS;AAC3B,kBAAkB,KAAK,EAAE,CAAC,WAAW,IAAI,WAAW,IAAI,QAAQ,GAAG,SAAS;AAC5E,iBAAiB,EAAE;AACnB,kBAAkB,WAAW,IAAI,WAAW,IAAI,QAAQ;AACxD,iBAAiB,CAAC;AAClB,eAAe;AACf,gBAAgB;AAChB,gBAAgB,CAAC,MAAM,EAAE;AACzB,kBAAkB,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;AAC/E,iBAAiB,EAAE;AACnB,kBAAkB,GAAG,CAAC,oBAAoB,IAAI,QAAQ;AACtD,sBAAsB;AACtB,sBAAsB,CAAC,GAAG,EAAE;AAC5B;AACA,wBAAwB,CAAC,oBAAoB,GAAG,UAAU;AAC1D,0BAA0B,QAAQ;AAClC,yBAAyB;AACzB,oEAAoE;AACpE,4BAA4B,oBAAoB;AAChD,6BAA6B,UAAU;AACvC,4BAA4B,QAAQ;AACpC,2BAA2B,EAAE,WAAW,IAAI,QAAQ;AACpD,oEAAoE;AACpE,4BAA4B,oBAAoB;AAChD;AACA,6BAA6B,QAAQ,EAAE,WAAW,IAAI,QAAQ;AAC9D,uBAAuB,CAAC;AACxB,qBAAqB;AACrB,sBAAsB;AACtB,sBAAsB,WAAW;AACjC,sBAAsB,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAChE,sBAAsB,GAAG;AACzB,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,eAAe,CAAC;AAChB,UAAUA,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxB,UAAU,oBAAoB,IAAI,CAAC,QAAQ;AAC3C,cAAc,CAAC,UAAU,EAAE;AAC3B,cAAc,EAAE,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;AAC5D,aAAa,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,gBAAgB,KAAK;AAC5D,cAAc,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAC3D,aAAa,CAAC,CAAC;AACf,cAAc,EAAE;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,oBAAoB,IAAI,CAAC,QAAQ;AACnD,gBAAgB,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;AAC1D,gBAAgB,SAAS;AACzB,YAAY,KAAK,EAAE;AACnB,cAAc,OAAO,EAAE,QAAQ,IAAI,IAAI,KAAK,mBAAmB;AAC/D,kBAAkB,MAAM;AACxB,kBAAkB,OAAO;AACzB,aAAa;AACb,YAAY,QAAQ,EAAE,QAAQ,IAAI,IAAI,KAAK,mBAAmB;AAC9D,YAAY,KAAK,EAAE,YAAY;AAC/B,YAAY,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAM,SAAS,CAAC,GAAG;AACjC,gBAAgB,IAAI;AACpB,kBAAkB,IAAI;AACtB,oBAAoB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AACjD,mBAAmB,CAAC,MAAM;AAC1B;AACA,mBAAmB;AACnB;AACA,8BAA8B,IAAI,CAAC,eAAe,EAAE,CAAC;AACrD;AACA;AACA,kBAAkB,KAAK,CAAC,qBAAqB,CAAC;AAC9C;AACA,oBAAoB,OAAO,iCAAiC,OAAO,CAAC;AACpE,mBAAmB,CAAC,CAAC;AACrB,iBAAiB,CAAC,MAAM,EAAE;AAC1B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,CAAC,GAAG;AAC3B,gBAAgB,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAClD,kBAAkB,OAAO,KAAK,CAAC;AAC/B,iBAAiB;AACjB,gBAAgB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,eAAe;AACf,cAAc,eAAe;AAC7B,cAAc,WAAW,EAAE,UAAU;AACrC,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA,cAAc,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;AACtC,gBAAgB,MAAM,MAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,sBAAsB,IAAI;AAC1B,sBAAsB,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACxD,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,kBAAkB,OAAO;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gBAAgB,MAAM,WAAW,GAAG,CAAC,EAAE;AACvC,kBAAkB,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;AACxC,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AACvD;AACA,gBAAgB,MAAM,MAAM,2DAA2D;AACvF,kBAAkB,IAAI;AACtB,kBAAkB,SAAS,EAAE,CAAC;AAC9B,gBAAgB,IAAI,MAAM,KAAK,KAAK,EAAE;AACtC,kBAAkB,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;AACnD,oBAAoB,IAAI,KAAK,KAAK,IAAI,EAAE;AACxC,sBAAsB,OAAO,IAAI,CAAC;AAClC,qBAAqB;AACrB,oBAAoB,MAAM,WAAW;AACrC,8EAA8E;AAC9E,wBAAwB,KAAK;AAC7B,wBAAwB,SAAS,EAAE,CAAC;AACpC;AACA,oBAAoB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACzD,sBAAsB,OAAO,KAAK,CAAC;AACnC,qBAAqB;AACrB,oBAAoB,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC3D,oBAAoB,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAClD,oBAAoB,UAAU,CAAC,iBAAiB,EAAE,CAAC;AACnD,oBAAoB,OAAO,IAAI,CAAC;AAChC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,OAAO;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM,UAAU,GAAG,CAAC,MAAM,KAAK;AAC/C;AACA;AACA;AACA,kBAAkB,IAAI,OAAO,CAAC;AAC9B;AACA,kBAAkB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;AACzC,oBAAoB,IAAI,KAAK,KAAK,IAAI,EAAE;AACxC,sBAAsB,OAAO,KAAK,CAAC;AACnC,qBAAqB;AACrB,oBAAoB,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AAC1D,oBAAoB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACzD,sBAAsB,IAAI,CAAC,OAAO,EAAE;AACpC;AACA;AACA,wBAAwB,OAAO,GAAG,KAAK,CAAC;AACxC,uBAAuB;AACvB,sBAAsB,OAAO,KAAK,CAAC;AACnC,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC1C,sBAAsB,OAAO,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpD,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;AAChD,uBAAuB,CAAC,OAAO,IAAI,GAAG;AACtC,wBAAwB,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AACnE,uBAAuB,CAAC;AACxB,sBAAsB;AACtB,sBAAsB,OAAO,GAAG,KAAK,CAAC;AACtC,sBAAsB,OAAO,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,WAAW,CAAC;AAC1E,qBAAqB;AACrB,oBAAoB,OAAO,KAAK,CAAC;AACjC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,IAAI,CAAC,OAAO,EAAE;AAChC,oBAAoB,OAAO,KAAK,CAAC;AACjC,mBAAmB;AACnB,kBAAkB,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC7D;AACA,kBAAkB,UAAU,CAAC,MAAM;AACnC;AACA,oBAAoB,IAAI,CAAC,OAAO,EAAE;AAClC,sBAAsB,OAAO;AAC7B,qBAAqB;AACrB,oBAAoB,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAC/D,oBAAoB,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAClD,oBAAoB,UAAU,CAAC,iBAAiB,EAAE,CAAC;AACnD,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,OAAO,IAAI,CAAC;AAC9B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,UAAU,EAAE,EAAE;AACnC,kBAAkB,UAAU,CAAC,IAAI,CAAC,CAAC;AACnC,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,YAAY,GAAG,EAAE;AACjB;AACA;AACA;AACA,cAAc,KAAK,CAAC,GAAG;AACvB,gBAAgB,IAAI,CAAC,oBAAoB,IAAI,CAAC,MAAM,EAAE;AACtD,kBAAkB,OAAO;AACzB,iBAAiB;AACjB,gBAAgB,MAAM,UAAU;AAChC,kBAAkB,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,eAAe;AAC9D,oBAAoB,IAAI,CAAC,OAAO,CAAC,kBAAkB;AACnD,mBAAmB,CAAC,CAAC;AACrB,iBAAiB,CAAC;AAClB,gBAAgB,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAC/C,gBAAgB,GAAG,CAAC,GAAG,EAAE;AACzB;AACA,kBAAkB,CAAC,oBAAoB,GAAG,UAAU;AACpD,oBAAoB,IAAI,CAAC,KAAK;AAC9B,mBAAmB;AACnB,8DAA8D;AAC9D,sBAAsB,oBAAoB;AAC1C,uBAAuB,UAAU;AACjC,sBAAsB,IAAI,CAAC,KAAK;AAChC,qBAAqB,EAAE,WAAW,IAAI,IAAI,CAAC,KAAK;AAChD,8DAA8D;AAC9D,sBAAsB,oBAAoB;AAC1C,uBAAuB,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC,KAAK;AAC1D,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAC/B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAM,CAAC,CAAC,CAAC,EAAE;AACzB,gBAAgB,MAAM,aAAa,2CAA2C;AAC9E,kBAAkB,oBAAoB;AACtC,mBAAmB,UAAU;AAC7B,uCAAuC,IAAI,CAAC,KAAK;AACjD,iBAAiB,EAAE,IAAI,KAAK,OAAO,CAAC;AACpC;AACA,gBAAgB,IAAI,OAAO,GAAG,KAAK,CAAC;AACpC,gBAAgB,IAAI,aAAa,EAAE;AACnC,kBAAkB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACxD,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;AACxC,kBAAkB,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC;AACtD;AACA,kBAAkB,OAAO,GAAG,IAAI,CAAC;AACjC,iBAAiB,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACjE,kBAAkB,MAAM,cAAc,GAAG;AACzC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AACxC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AAC5C;AACA,kBAAkB;AAClB,oBAAoB,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACxD,4DAA4D;AAC5D,sBAAsB,oBAAoB;AAC1C,sBAAsB,WAAW,KAAK,QAAQ;AAC9C,oBAAoB;AACpB,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACxD,oBAAoB,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1C,oBAAoB,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC;AACxD,oBAAoB,OAAO,GAAG,IAAI,CAAC;AACnC,mBAAmB,MAAM;AACzB,oBAAoB,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,cAAc,CAAC;AAChE,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC/C,oBAAoB,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1C,oBAAoB,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9D,oBAAoB,IAAI,WAAW;AACnC,sBAAsB,EAAE;AACxB,wBAAwB,UAAU;AAClC,wBAAwB,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;AAC9E,uBAAuB;AACvB,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,CAAC,WAAW,EAAE;AACtC,sBAAsB,WAAW,+BAA+B,EAAE;AAClE;AACA,yBAAyB,IAAI,CAAC,aAAa,EAAE,aAAa;AAC1D,wBAAwB,CAAC,qBAAqB,CAAC;AAC/C,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;AACjD;AACA,sBAAsB,WAAW,CAAC,sBAAsB,EAAE,MAAM,EAAE,CAAC;AACnE,qBAAqB;AACrB,oBAAoB,WAAW,CAAC,WAAW;AAC3C,sBAAsB,GAAG,CAAC,KAAK,EAAE;AACjC,wBAAwB,SAAS;AACjC,0BAA0B,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,CAAC;AAC/E,uBAAuB,EAAE;AACzB,wBAAwB,GAAG,2BAA2B,CAAC;AACvD,0BAA0B,QAAQ,EAAE,IAAI,CAAC,KAAK;AAC9C,0BAA0B,MAAM;AAChC;AACA,0BAA0B,CAAC,oBAAoB,GAAG,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAC1E,kEAAkE;AAClE,4BAA4B,oBAAoB;AAChD,6BAA6B,QAAQ;AACrC,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC;AACvC,yBAAyB,CAAC;AAC1B,uBAAuB,CAAC;AACxB,qBAAqB,CAAC;AACtB,mBAAmB;AACnB,iBAAiB;AACjB;AACA,gBAAgB,IAAI,OAAO,EAAE;AAC7B,kBAAkB,MAAM,WAAW;AACnC,oBAAoB,EAAE;AACtB,sBAAsB,UAAU;AAChC,sBAAsB,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;AAC5E,qBAAqB;AACrB,mBAAmB,CAAC;AACpB,kBAAkB,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAClD,iBAAiB,MAAM;AACvB;AACA,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC;AACnC,iBAAiB;AACjB;AACA;AACA,gBAAgB,CAAC,CAAC,eAAe,EAAE,CAAC;AACpC,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAClD,eAAe;AACf,aAAa;AACb,YAAY,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAClD,WAAW,CAAC;AACZ,SAAS,CAAC,EAAE;AACZ,OAAO;AACP;AACA,MAAM,MAAM,QAAQ,2CAA2C;AAC/D,QAAQ,oBAAoB;AAC5B,SAAS,KAAK,EAAE,WAAW,CAAC;AAC5B;AACA,MAAM,sDAAsD,CAAC,QAAQ,EAAE;AACvE,QAAQ,WAAW;AACnB,YAAY,EAAE;AACd,YAAY,QAAQ;AACpB,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5B,cAAc,MAAM,EAAE,WAAW;AACjC,gBAAgB,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AACzC,gBAAgB,IAAI,KAAK,OAAO,2CAA2C;AAC3E,gBAAgB,oBAAoB;AACpC,iBAAiB,IAAI,EAAE,WAAW;AAClC,kBAAkB,CAAC,yCAAyC;AAC5D,kBAAkB,oBAAoB;AACtC,mBAAmB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AACvC,kBAAkB,OAAO;AACzB,QAAQ,CAAC,MAAM,EAAE;AACjB,UAAU,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;AAC5C,UAAU,SAAS;AACnB,SAAS,EAAE;AACX,UAAU,WAAW;AACrB,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;AAC/C,cAAc,QAAQ,KAAK,SAAS;AACpC,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM,CAAC,SAAS,CAAC;AACjC,SAAS,CAAC;AACV,OAAO,CAAC,EAAE;AACV,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,kBAAkB,GAAG,CAAC,UAAU,KAAK;AAC/C,MAAM,IAAI,MAAM,EAAE;AAClB;AACA,QAAQ,SAAS,+DAA+D;AAChF,UAAU,UAAU,CAAC,kBAAkB,EAAE;AACzC,UAAU,MAAM;AAChB,UAAU,CAAC,OAAO,EAAE,KAAK,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AAC7C,YAAY,OAAO,MAAM,KAAK,KAAK,IAAI,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3E,WAAW;AACX,UAAU,CAAC,CAAC;AACZ,SAAS,CAAC;AACV,OAAO,MAAM;AACb,QAAQ,SAAS,EAAE,CAAC;AACpB,OAAO;AACP,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,2BAA2B,GAAG,CAAC;AACzC,MAAM,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW;AAC9C,KAAK,KAAK;AACV,MAAM,mEAAmE;AACzE,QAAQ,gBAAgB;AACxB,QAAQ;AACR,QAAQ,WAAW;AACnB;AACA;AACA,QAAQ,OAAO,iCAAiC,OAAO,CAAC;AACxD;AACA,QAAQ,MAAM,0DAA0D,MAAM,CAAC;AAC/E,QAAQ,cAAc,EAAE,aAAa;AACrC,QAAQ,SAAS;AACjB,QAAQ,aAAa,EAAE,MAAM,IAAI,IAAI,KAAK,OAAO;AACjD,aAAa,MAAM,2CAA2C;AAC9D,YAAY,oBAAoB;AAChC,YAAY,IAAI;AAChB,YAAY,aAAa;AACzB;AACA,6DAA6D;AAC7D,cAAc,oBAAoB;AAClC,eAAe,KAAK;AACpB,cAAc,IAAI,KAAK,KAAK;AAC5B,qDAAqD;AACrD,gBAAgB,oBAAoB;AACpC,iBAAiB,KAAK;AACtB,gBAAgB,IAAI,KAAK,UAAU;AACnC,0DAA0D;AAC1D,kBAAkB,oBAAoB;AACtC,mBAAmB,KAAK;AACxB,kBAAkB,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,mBAAmB;AAClE,2DAA2D;AAC3D,oBAAoB,oBAAoB;AACxC,qBAAqB,OAAO;AAC5B,4DAA4D;AAC5D,oBAAoB,oBAAoB;AACxC,qBAAqB,UAAU,0BAA0B,QAAQ,EAAE;AACnE,QAAQ,KAAK,EAAE,gBAAgB,CAAC,QAAQ;AACxC,YAAY,eAAe;AAC3B,YAAY,WAAW,IAAI,IAAI;AAC/B;AACA,QAAQ,aAAa;AACrB,OAAO,CAAC,CAAC,QAAQ,CAAC;AAClB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE;AACxC,MAAM,QAAQ,IAAI;AAClB,MAAM,KAAK,OAAO;AAClB,QAAQ,2CAA2C;AACnD,UAAU,oBAAoB;AAC9B,WAAW,IAAI,EAAE,IAAI,KAAK,OAAO,EAAE;AACnC,UAAU,OAAO,CAAC,KAAK;AACvB,YAAY,uDAAuD;AACnE,WAAW,CAAC;AACZ,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,QAAQ;AACR,iDAAiD;AACjD,YAAY,oBAAoB;AAChC,aAAa,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO;AACzC,UAAU;AACV,UAAU,OAAO,CAAC,KAAK;AACvB,YAAY,wDAAwD;AACpE,WAAW,CAAC;AACZ,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM;AACd,MAAM,KAAK,KAAK,EAAE;AAClB,QAAQ,yCAAyC;AACjD,UAAU,oBAAoB;AAC9B,WAAW,KAAK,EAAE,IAAI,KAAK,OAAO,EAAE;AACpC,UAAU,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAC1E,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,OAAO,CAAC,wCAAwC;AAC/D,UAAU,oBAAoB;AAC9B,aAAa,EAAE,CAAC;AAChB,QAAQ,IAAI,OAAO,KAAK,SAAS;AACjC,UAAU,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO;AAC5D,UAAU;AACV,UAAU,OAAO,CAAC,KAAK,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC;AAC5E,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM;AACd,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,KAAK,mBAAmB,EAAE;AAChD,QAAQ,2CAA2C;AACnD,UAAU,oBAAoB;AAC9B,WAAW,OAAO,EAAE,IAAI,KAAK,OAAO,EAAE;AACtC,UAAU,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAC5E,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,SAAS,CAAC,0CAA0C;AACnE,UAAU,oBAAoB;AAC9B,aAAa,EAAE,CAAC;AAChB;AACA,QAAQ,IAAI,SAAS,KAAK,SAAS;AACnC,UAAU,UAAU,CAAC,eAAe,EAAE,GAAG,MAAM,GAAG,SAAS;AAC3D,UAAU;AACV,UAAU,OAAO,CAAC,KAAK,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC;AAChF,UAAU,OAAO,IAAI,CAAC;AACtB,SAAS;AACT,QAAQ,MAAM;AACd,OAEA,OAAO;AACP;AACA,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,GAAG,UAAU;AACvC,MAAM,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW;AAC7E,KAAK,EAAE;AACP,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AAC/C,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,IAAI,QAAQ,EAAE;AACtB,UAAU,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC/E,UAAU,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC1C,YAAY,SAAS,GAAG,MAAM,CAAC;AAC/B,WAAW;AACX,SAAS,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC/C,UAAU,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;AACjC,SAAS,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC/C;AACA,UAAU,SAAS,+DAA+D;AAClF;AACA;AACA,YAAY,CAAC,UAAU,EAAE,kBAAkB,EAAE;AAC7C,YAAY,MAAM;AAClB,YAAY,CAAC,OAAO,EAAE,KAAK,KAAK;AAChC,cAAc,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AAC/C,cAAc,OAAO,MAAM,KAAK,KAAK,IAAI,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAC7E,aAAa;AACb,YAAY,CAAC,CAAC;AACd,WAAW,GAAG,CAAC,CAAC;AAChB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,SAAS,EAAE,CAAC;AACpB,OAAO;AACP,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC;AAC9B,MAAM,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU;AACrC,QAAQ;AACR,UAAU,OAAO,EAAE,QAAQ,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE;AACzD,UAAU,GAAG,EAAE;AACf,YAAY,MAAM,EAAE,CAAC,MAAM;AAC3B,cAAc,IAAI,IAAI,KAAK,KAAK,EAAE;AAClC,gBAAgB,OAAO;AACvB,eAAe;AACf,cAAc,UAAU,CAAC,MAAM;AAC/B,gBAAgB,MAAM,IAAI,GAAG,GAAG,CAAC;AACjC,gBAAgB,MAAM,MAAM;AAC5B,kBAAkB,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjD,oBAAoB,GAAG,gBAAgB;AACvC,oBAAoB,GAAG,EAAE,KAAK;AAC9B,mBAAmB,EAAE;AACrB,oBAAoB,IAAI;AACxB,oBAAoB,QAAQ,EAAE;AAC9B,sBAAsB,KAAK;AAC3B;AACA,sBAAsB,OAAO;AAC7B;AACA,wBAAwB,OAAO;AAC/B,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB,CAAC;AACpB,iBAAiB,CAAC;AAClB;AACA;AACA,gBAAgB,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACvE,kBAAkB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK;AACrD,oBAAoB,OAAO,GAAG,KAAK,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC;AAC1D,mBAAmB,CAAC,CAAC;AACrB,iBAAiB,CAAC,CAAC;AACnB;AACA,gBAAgB,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AACtC,kBAAkB,OAAO;AACzB,iBAAiB;AACjB,gBAAgB,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;AACtD,gBAAgB,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK;AAClE,kBAAkB,MAAM,IAAI;AAC5B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AAClD,mBAAmB,CAAC;AACpB;AACA,kBAAkB,IAAI,CAAC,IAAI,EAAE;AAC7B,oBAAoB,OAAO,IAAI,CAAC;AAChC,mBAAmB;AACnB,kBAAkB,OAAO,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC3D,iBAAiB,CAAC,CAAC;AACnB;AACA,gBAAgB,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpD;AACA,gBAAgB,IAAI,CAAC,OAAO,EAAE;AAC9B,kBAAkB,OAAO;AACzB,iBAAiB;AACjB;AACA,gBAAgB,OAAO,CAAC,iBAAiB;AACzC,kBAAkB,qBAAqB;AACvC,iBAAiB,CAAC;AAClB,gBAAgB,OAAO,CAAC,cAAc,EAAE,CAAC;AACzC,eAAe,CAAC,CAAC;AACjB,aAAa,EAAE,IAAI,CAAC;AACpB,WAAW;AACX,UAAU,OAAO,EAAE;AACnB;AACA,YAAY,iBAAiB,CAAC,GAAG;AACjC,cAAc;AACd,gBAAgB,GAAG,CAAC,mBAAmB;AACvC;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B,kBAAkB,CAAC,QAAQ,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC;AACnE,iBAAiB,CAAC,GAAG,EAAE;AACvB,gBAAgB;AAChB,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ;AACR,UAAU,WAAW,CAAC;AACtB,YAAY,SAAS;AACrB,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,MAAM;AAClB,WAAW,CAAC;AACZ,SAAS;AACT,QAAQ,UAAU,CAAC,CAAC;AACpB;AACA;AACA,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AAChB,QAAQ,CAAC,MAAM,EAAE;AACjB,UAAU,KAAK,EAAE,UAAU;AAC3B,UAAU,KAAK,EAAE,IAAI,KAAK,KAAK;AAC/B,yDAAyD;AACzD,YAAY,oBAAoB;AAChC,aAAa,KAAK,EAAE,WAAW;AAC/B,cAAc,aAAa;AAC3B,cAAc,IAAI,KAAK,QAAQ;AAC/B,oDAAoD;AACpD,cAAc,oBAAoB;AAClC,eAAe,KAAK,EAAE,WAAW;AACjC,gBAAgB,gBAAgB;AAChC,gBAAgB,SAAS;AACzB,SAAS,EAAE;AACX,UAAU,IAAI,KAAK,KAAK;AACxB,6DAA6D;AAC7D,cAAc,oBAAoB;AAClC,eAAe,KAAK,EAAE,WAAW,IAAI,WAAW;AAChD,cAAc,IAAI,KAAK,QAAQ;AAC/B,wDAAwD;AACxD,gBAAgB,oBAAoB;AACpC,iBAAiB,KAAK,EAAE,WAAW,IAAI,cAAc;AACrD,gBAAgB,EAAE;AAClB,UAAU,GAAG;AACb,SAAS,CAAC;AACV,QAAQ,IAAI,oBAAoB,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK;AACxE,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE;AACzB,YAAY,SAAS,EAAE,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,CAAC;AAC5E,WAAW,CAAC,CAAC;AACb,YAAY,2BAA2B,CAAC;AACxC,YAAY,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW;AACpD,WAAW,CAAC,CAAC;AACb,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AACrD,QAAQA,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,QAAQ,CAAC,QAAQ,EAAE;AACnB,UAAU,QAAQ,EAAE,IAAI,KAAK,OAAO,IAAI,QAAQ;AAChD;AACA;AACA;AACA,YAAY,CAAC,oBAAoB,GAAG,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;AACjE,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AAC/C,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B;AACA;AACA,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;AAClC,cAAc,OAAO;AACrB,aAAa;AACb;AACA;AACA,YAAY,IAAI,MAAM,CAAC;AACvB,YAAY,IAAI,MAAM,EAAE;AACxB,cAAc,MAAM,YAAY;AAChC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB,QAAQ;AAC5B,oBAAoB,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC;AACrD,cAAc,MAAM,GAAG,YAAY,KAAK,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC;AACxE,aAAa;AACb,YAAY,UAAU,CAAC,gBAAgB,CAAC;AACxC,cAAc,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;AAC/C,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,gBAAgB;AAClC;AACA,gBAAgB,UAAU,CAAC,gBAAgB;AAC3C,eAAe,CAAC;AAChB,YAAY,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC7C,YAAY,IAAI,MAAM;AACtB;AACA;AACA;AACA,cAAc,CAAC,oBAAoB,IAAI,MAAM;AAC7C,cAAc,CAAC,gBAAgB,CAAC,KAAK;AACrC,aAAa,EAAE;AACf,cAAc,MAAM,YAAY;AAChC,gBAAgB,gBAAgB,CAAC,iBAAiB,EAAE;AACpD,eAAe,CAAC;AAChB,cAAc,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC7C,aAAa,MAAM;AACnB,cAAc,GAAG,CAAC,mBAAmB;AACrC,gBAAgB,UAAU,EAAE;AAC5B,kBAAkB,UAAU,EAAE,QAAQ,EAAE,GAAG,GAAG,SAAS;AACvD,iBAAiB;AACjB,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AACrC,gBAAgB,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9C,oBAAoB,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC;AAC1D,oBAAoB,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;AAC3C,eAAe,CAAC,CAAC;AACjB,aAAa;AACb;AACA;AACA,YAAY,KAAK,CAAC,qBAAqB,CAAC;AACxC;AACA,cAAc,OAAO,iCAAiC,OAAO,CAAC;AAC9D,aAAa,CAAC,CAAC;AACf,YAAY,UAAU,CAAC,iBAAiB,EAAE,CAAC;AAC3C,WAAW,CAAC;AACZ,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;AACjB;AACA;AACA;AACA,SAAS;AACT,UAAU,QAAQ;AAClB,UAAU;AACV,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,GAAG,EAAE;AACjB,cAAc,KAAK,CAAC,sBAAsB,CAAC,EAAE;AAC7C,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC;AACA,gBAAgB,QAAQ,CAAC,MAAM,EAAE,CAAC;AAClC,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAC/C,gBAAgB,IAAI,CAAC,MAAM;AAC3B,mBAAmB,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,KAAK,CAAC;AACnE,kBAAkB;AAClB,kBAAkB,GAAG,CAAC,mBAAmB,CAAC,UAAU,EAAE;AACtD,oBAAoB,UAAU,EAAE,QAAQ,EAAE,GAAG,GAAG,SAAS;AACzD,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AAC1C,oBAAoB,IAAI,CAAC,WAAW,GAAG,WAAW;AAClD,wBAAwB,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC;AAC9D,wBAAwB,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;AAC/C,mBAAmB,CAAC,CAAC;AACrB,iBAAiB;AACjB;AACA,gBAAgB,KAAK,CAAC,qBAAqB,CAAC;AAC5C;AACA,kBAAkB,OAAO,iCAAiC,OAAO,CAAC;AAClE,iBAAiB,CAAC,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;AACjD,eAAe;AACf,aAAa;AACb,WAAW,EAAE,CAAC,GAAG,CAAC;AAClB,SAAS;AACT,QAAQ,CAAC,MAAM,EAAE;AACjB,UAAU,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAC3D,SAAS,EAAE,EAAE,CAAC;AACd,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpB;AACA;AACA;AACA,MAAM,IAAI,kBAAkB,EAAE;AAC9B,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;AACpD;AACA,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;AACxB,UAAU,MAAM,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AACxB,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC;AAC5B,UAAU,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AACvC,UAAU,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACzC,SAAS;AACT,OAAO;AACP,MAAM,UAAU,CAAC,iBAAiB,EAAE,CAAC;AACrC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,GAAG,YAAY;AACxC,MAAM,OAAO,MAAM,iCAAiC;AACpD,QAAQ,EAAE,6BAA6B,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC;AAC7E,QAAQ,KAAK,CAAC,CAAC;AACf,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,sBAAsB,GAAG,YAAY;AAC/C,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAC9D,MAAM,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM;AAC7C,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC9C,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAC1B;AACA,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjD,QAAQ,MAAM,aAAa,GAAG,GAAG,GAAG,oBAAoB,CAAC;AACzD,QAAQ,KAAK,CAAC,iBAAiB;AAC/B,UAAU,aAAa;AACvB,cAAc,gBAAgB;AAC9B,cAAc,EAAE;AAChB,SAAS,CAAC;AACV,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,OAAO,aAAa,CAAC;AAC7B,OAAO,CAAC,CAAC;AACT,KAAK,CAAC;AACN,IAAI,MAAM,eAAe;AACzB,MAAM,CAAC,QAAQ,EAAE;AACjB,QAAQ,KAAK,EAAE,iBAAiB;AAChC;AACA,QAAQ,OAAO,EAAE;AACjB,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA,UAAU,cAAc,CAAC,GAAG;AAC5B,YAAY,MAAM,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC9C,YAAY,OAAO,WAAW,CAAC;AAC/B,WAAW;AACX,SAAS;AACT,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG;AACvB,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;AAChC,YAAY,OAAO;AACnB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD;AACA;AACA,UAAU,KAAK,CAAC,qBAAqB,CAAC;AACtC;AACA,YAAY,OAAO,iCAAiC,OAAO,CAAC;AAC5D,WAAW,CAAC,CAAC;AACb,SAAS,CAAC;AACV,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;AACpB,KAAK,CAAC;AACN;AACA,IAAI,MAAM,uBAAuB,GAAG,MAAM;AAC1C,QAAQ,CAAC,KAAK,EAAE;AAChB,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,gBAAgB;AAC1B,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK,EAAE,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;AAC3D,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACnC,YAAY,GAAG,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAM,MAAM,CAAC,GAAG;AAC9B,gBAAgB,IAAI,aAAa,EAAE,EAAE;AACrC;AACA,kBAAkB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC;AACnE,kBAAkB,OAAO;AACzB,iBAAiB;AACjB;AACA,gBAAgB,MAAM,UAAU,GAAG,EAAE;AACrC;AACA,oBAAoB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;AAClD;AACA,kBAAkB,aAAa;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA,kBAAkB,CAAC,UAAU,EAAE,sBAAsB,EAAE,CAAC;AACxD,gBAAgB,IAAI;AACpB,kBAAkB,IAAI,sBAAsB,CAAC,MAAM,EAAE;AACrD,oBAAoB,MAAM,OAAO,CAAC,OAAO,CAAC;AAC1C,sBAAsB,OAAO,EAAE,oCAAoC;AACnE,wBAAwB,8CAA8C;AACtE,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,sBAAsB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAC9D,sBAAsB,MAAM,QAAQ;AACpC,wBAAwB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;AACjD,uBAAuB,CAAC;AACxB,sBAAsB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AAChE,wBAAwB,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC1C,uBAAuB,MAAM;AAC7B;AACA,wBAAwB,MAAM,gBAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC;AACnD,2BAA2B,CAAC;AAC5B,wBAAwB,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ;AACvE,0BAA0B,gBAAgB,CAAC,KAAK;AAChD,yBAAyB,GAAG,CAAC,CAAC,CAAC;AAC/B,uBAAuB;AACvB,qBAAqB,CAAC,CAAC;AACvB;AACA,oBAAoB,KAAK,CAAC,qBAAqB,CAAC;AAChD;AACA,sBAAsB,OAAO,iCAAiC,OAAO,CAAC;AACtE,qBAAqB,CAAC,CAAC;AACvB,mBAAmB,MAAM;AACzB,oBAAoB,MAAM,OAAO,0CAA0C;AAC3E,sBAAsB,oBAAoB;AAC1C,uBAAuB,OAAO,CAAC;AAC/B,oBAAoB,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ;AACvD,sBAAsB,OAAO,EAAE,IAAI;AACnC,qBAAqB;AACrB,sBAAsB,OAAO,EAAE,IAAI,KAAK,OAAO;AAC/C;AACA,sBAAsB,CAAC,OAAO,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK;AAC5D,wBAAwB,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5E,uBAAuB,CAAC;AACxB,qBAAqB,EAAE;AACvB,sBAAsB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9D,wBAAwB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7E,sBAAsB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACrD;AACA;AACA,wBAAwB,UAAU,CAAC,MAAM;AACzC,0BAA0B,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;AACnD,yBAAyB,CAAC,CAAC;AAC3B,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB;AACnB,kBAAkB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9C,iBAAiB,CAAC,MAAM;AACxB,kBAAkB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9C,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,OAAO,CAAC;AACR,QAAQ,EAAE,CAAC;AACX;AACA,IAAI,MAAM,UAAU;AACpB;AACA,QAAQ,GAAG,CAAC,KAAK,EAAE;AACnB,UAAU,KAAK,EAAE,YAAY;AAC7B,UAAU,OAAO,EAAE;AACnB,YAAY,UAAU,EAAE,iBAAiB,EAAE,eAAe;AAC1D,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB,CAAC,GAAG;AACjC,cAAc,MAAM,OAAO;AAC3B;AACA;AACA;AACA;AACA,qBAAqB,GAAG,CAAC,mBAAmB;AAC5C,kBAAkB,IAAI;AACtB,kBAAkB;AAClB,oBAAoB,UAAU;AAC9B,oBAAoB,oBAAoB;AACxC,oBAAoB,mBAAmB;AACvC,oBAAoB,0CAA0C;AAC9D,mBAAmB;AACnB,iBAAiB,CAAC,CAAC;AACnB,cAAc,OAAO,OAAO,CAAC;AAC7B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB,CAAC,GAAG;AAClC,cAAc,0CAA0C,GAAG,CAAC,mBAAmB;AAC/E,gBAAgB,IAAI;AACpB,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC;AAC7E,eAAe,EAAE;AACjB,aAAa;AACb,WAAW;AACX,SAAS,CAAC;AACV,OAAO,CAAC;AACR;AACA,IAAI,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AACzE,MAAM,CAAC,CAAC,cAAc,EAAE,CAAC;AACzB,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,MAAM,MAAM,aAAa;AACzB,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC;AACjC,OAAO,CAAC;AACR,MAAM,aAAa,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AACnD,6BAA6B;AAC7B,QAAQ,MAAM;AACd,QAAQ,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AACvD,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAChB;AACA,IAAI,MAAM,aAAa;AACvB,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;AACxC,QAAQ,uBAAuB;AAC/B,QAAQ,UAAU;AAClB,QAAQ,eAAe;AACvB,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG;AACnC,UAAU,MAAM,aAAa;AAC7B,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;AAC1C,WAAW,CAAC;AACZ,UAAU,MAAM,UAAU;AAC1B;AACA;AACA,cAAc,EAAE,6BAA6B,aAAa,GAAG,aAAa,CAAC;AAC3E,aAAa,CAAC;AACd,UAAU,MAAM,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC;AAC1D,UAAU,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;AACtE,YAAY,WAAW,CAAC,MAAM,EAAE,CAAC;AACjC,YAAY,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAC3C;AACA,kFAAkF;AAClF,cAAc,EAAE,6BAA6B,aAAa,GAAG,aAAa,CAAC;AAC3E,cAAc,iBAAiB,EAAE,CAAC;AAClC,WAAW;AACX;AACA,UAAU,KAAK,CAAC,qBAAqB,CAAC;AACtC;AACA,YAAY,OAAO,iCAAiC,OAAO,CAAC;AAC5D,WAAW,CAAC,CAAC;AACb,SAAS,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAC7B;AACA,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG;AACnC,UAAU,MAAM,aAAa;AAC7B,uCAAuC,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC;AACvE,WAAW,CAAC;AACZ,UAAU,MAAM,UAAU;AAC1B;AACA,qFAAqF,EAAE;AACvF,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B,aAAa,CAAC,CAAC;AACf;AACA,UAAU,MAAM,qBAAqB,GAAG,GAAG;AAC3C,YAAY,aAAa;AACzB,YAAY,6CAA6C;AACzD,WAAW,CAAC;AACZ;AACA,UAAU,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE;AACpE,YAAY,oBAAoB,CAAC,MAAM,EAAE,CAAC;AAC1C,WAAW;AACX;AACA,UAAU,IAAI,MAAM,EAAE;AACtB,YAAY,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAC3C,WAAW,MAAM;AACjB,YAAY,SAAS,GAAG,CAAC,CAAC,CAAC;AAC3B,WAAW;AACX;AACA,UAAU,KAAK,CAAC,qBAAqB,CAAC;AACtC;AACA,YAAY,OAAO,iCAAiC,OAAO,CAAC;AAC5D,WAAW,CAAC,CAAC;AACb,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACvB,OAAO,CAAC;AACR,KAAK,CAAC;AACN;AACA,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC;AAC5B;AACA,IAAI,MAAM,GAAG;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,GAAG,CAAC,KAAK,sDAAsD;AACvE,UAAU,OAAO,EAAE,CAAC,IAAI,CAAC;AACzB;AACA,UAAU,OAAO,EAAE;AACnB;AACA;AACA,YAAY,sBAAsB,CAAC,CAAC;AACpC,cAAc,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS;AAC9D,cAAc,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc;AAC9D,aAAa,EAAE;AACf,cAAc,IAAI,UAAU,KAAK,KAAK,EAAE;AACxC,gBAAgB,IAAI,QAAQ,KAAK,GAAG,EAAE;AACtC,kBAAkB,IAAI,CAAC,gBAAgB,CAAC;AACxC,oBAAoB,QAAQ;AAC5B;AACA,oBAAoB,WAAW,EAAE,KAAK;AACtC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AAC3D,kBAAkB,MAAM,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA,sBAAsB,GAAG,CAAC,mBAAmB;AAC7C,sBAAsB,UAAU;AAChC,sBAAsB;AACtB,wBAAwB,uBAAuB,EAAE,QAAQ;AACzD,wBAAwB,eAAe,EAAE,QAAQ;AACjD,uBAAuB;AACvB,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,kBAAkB,cAAc,CAAC,QAAQ,CAAC;AAC1C,oBAAoB,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc;AAC1D,oBAAoB,WAAW,EAAE,IAAI;AACrC,mBAAmB,CAAC,CAAC;AACrB;AACA;AACA,kBAAkB,OAAO,cAAc,CAAC,YAAY,EAAE,CAAC;AACvD,iBAAiB;AACjB,eAAe,MAAM,IAAI,UAAU,KAAK,QAAQ,EAAE;AAClD,gBAAgB,IAAI,CAAC,gBAAgB,CAAC;AACtC,kBAAkB,QAAQ,EAAE,WAAW,EAAE,KAAK;AAC9C,kBAAkB,QAAQ,EAAE,KAAK;AACjC,iBAAiB,CAAC,CAAC;AACnB,eAAe,MAAM;AACrB;AACA,gBAAgB,IAAI,CAAC,gBAAgB,CAAC;AACtC,kBAAkB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK;AACtD,kBAAkB,SAAS;AAC3B,kBAAkB,QAAQ,EAAE,CAAC,cAAc,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU;AAC3E,oBAAoB,MAAM,CAAC,IAAI,KAAK,OAAO;AAC3C,iBAAiB,CAAC,CAAC;AACnB,eAAe;AACf,cAAc,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AACzD,cAAc,WAAW,CAAC,QAAQ,CAAC;AACnC,gBAAgB,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc;AACtD,gBAAgB,cAAc;AAC9B,kBAAkB,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS;AACrE,sBAAsB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AAC/C,sBAAsB,MAAM;AAC5B,gBAAgB,WAAW,EAAE,IAAI;AACjC,eAAe,CAAC,CAAC;AACjB,cAAc,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;AACtD;AACA;AACA;AACA;AACA,cAAc,IAAI,SAAS,EAAE;AAC7B,gBAAgB,MAAM,OAAO;AAC7B;AACA,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;AAC7C,mBAAmB,CAAC;AACpB,gBAAgB,IAAI,OAAO,CAAC,QAAQ,EAAE;AACtC,kBAAkB,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAClD,iBAAiB;AACjB,eAAe;AACf,cAAc,KAAK,CAAC,QAAQ,CAAC;AAC7B,gBAAgB,IAAI,EAAE,IAAI,EAAE,OAAO;AACnC;AACA,gBAAgB,WAAW,EAAE,IAAI;AACjC,eAAe,CAAC,CAAC;AACjB,cAAc,OAAO,IAAI,CAAC;AAC1B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB,CAAC,GAAG;AACnC,cAAc,MAAM,EAAE,GAAG,IAAI;AAC7B,gBAAgB,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;AACtE,cAAc,OAAO,MAAM,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC;AACzD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB,CAAC,CAAC;AAC9B,cAAc,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;AACxE,cAAc,WAAW;AACzB,aAAa,EAAE;AACf,cAAc,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC;AACjD,gBAAgB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM;AAC/D,gBAAgB,SAAS;AACzB,gBAAgB,WAAW;AAC3B,eAAe,CAAC,CAAC;AACjB,aAAa;AACb,YAAY,cAAc,CAAC,GAAG;AAC9B,cAAc,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACjE,cAAc,OAAO,eAAe,CAAC,sBAAsB,CAAC;AAC5D,aAAa;AACb,YAAY,eAAe,CAAC,GAAG;AAC/B,cAAc,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACvD,cAAc,OAAO,EAAE;AACvB,gBAAgB,UAAU,CAAC,gBAAgB;AAC3C,gBAAgB,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC;AAC1D,eAAe,CAAC;AAChB,aAAa;AACb,WAAW;AACX,UAAU,GAAG,EAAE;AACf,YAAY,KAAK,CAAC,CAAC,EAAE,EAAE;AACvB,cAAc,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC;AAClD;AACA,cAAc,MAAM,MAAM,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA,cAAc,IAAI,CAAC;AACnB,gBAAgB,UAAU,EAAE,OAAO,EAAE,MAAM;AAC3C,gBAAgB,gBAAgB;AAChC;AACA,gBAAgB,SAAS;AACzB,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACvC,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS,qDAAqD;AAC9D,UAAU,CAAC,oBAAoB,GAAG,MAAM,GAAG,GAAG,EAAE;AAChD,YAAY,KAAK,EAAE,oBAAoB,EAAE,WAAW,KAAK,GAAG,CAAC,WAAW;AACxE;AACA,eAAe,IAAI;AACnB,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjC,WAAW,EAAE;AACb,YAAY,oBAAoB;AAChC,gBAAgB,GAAG;AACnB,gBAAgB,GAAG,CAAC,WAAW;AAC/B;AACA,iBAAiB,IAAI;AACrB,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClC,WAAW,CAAC;AACZ,UAAUA,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxB,UAAU,IAAI,KAAK,UAAU;AAC7B,cAAc,CAAC,OAAO,EAAE;AACxB,cAAc,IAAI,EAAE,aAAa,GAAG,WAAW;AAC/C,cAAc,QAAQ,EAAE,IAAI;AAC5B,cAAc,IAAI,EAAE,MAAM;AAC1B,cAAc,GAAG,EAAE;AACnB;AACA;AACA;AACA,gBAAgB,MAAM,CAAC,GAAG;AAC1B;AACA,kBAAkB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnC,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB,kBAAkB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9D,oBAAoB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpD;AACA,oBAAoB,GAAG,CAAC,sBAAsB,CAAC;AAC/C,sBAAsB,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACzC,sBAAsB,IAAI,EAAE,MAAM;AAClC,sBAAsB,KAAK,EAAE,IAAI;AACjC,sBAAsB,cAAc,EAAE,KAAK;AAC3C,sBAAsB,SAAS,EAAE,IAAI;AACrC,qBAAqB,CAAC,CAAC;AACvB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa,CAAC;AACd,cAAc,EAAE;AAChB,UAAU,WAAW;AACrB,UAAU,aAAa;AACvB,SAAS,EAAE;AACX,OAAO,CAAC;AACR,IAAI,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC;AAC7B;AACA,IAAI,IAAI,CAAC,WAAW,IAAI,oBAAoB,EAAE;AAC9C,MAAM,QAAQ,IAAI;AAClB,MAAM,KAAK,QAAQ,EAAE;AACrB;AACA,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;AAChC,YAAY,MAAM,CAAC,OAAO;AAC1B,sDAAsD;AACtD,gBAAgB,oBAAoB;AACpC;AACA,gBAAgB,UAAU,IAAI,EAAE;AAChC,aAAa;AACb,YAAY;AACZ,YAAY,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;AACzD,cAAc,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACrE,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,OAAO,EAAE;AACpB;AACA,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,UAAU,MAAM,iBAAiB;AACjC,YAAY,oBAAoB;AAChC,WAAW,CAAC;AACZ,UAAU;AACV,mDAAmD;AACnD,cAAc,oBAAoB;AAClC,eAAe,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO;AAC3C,YAAY;AACZ,YAAY,KAAK,MAAM,MAAM,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC1D,cAAc,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,MAAM;AACd,OAAO;AACP;AACA,MAAM,KAAK,mBAAmB,EAAE;AAChC,QAAQ,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;AAC7B,UAAU,oBAAoB;AAC9B,SAAS,CAAC;AACV,QAAQ,MAAM,gBAAgB;AAC9B;AACA,YAAY,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC;AACnC,WAAW,CAAC;AACZ,QAAQ,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACnD,QAAQ,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACvD;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC5C,UAAU,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACjD,SAAS;AACT,QAAQ,MAAM;AACd,OAAO,CAAC,KAAK,KAAK,EAAE;AACpB;AACA,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,UAAU,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;AAC7B,YAAY,oBAAoB;AAChC,WAAW,CAAC;AACZ,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD,WAAW;AACX,SAAS;AACT,QAAQ,MAAM;AACd,OAEA,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,GAAG;AACH,CAAC;;ACj8ED;AACA;AACA;AACA,MAAM,SAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC;AACnB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1B,EAAE,gBAAgB,EAAE,WAAW;AAC/B,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,SAAS,CAAC,OAAO;AACvB,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO;AAC5B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO;AAC5B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACjCD;AACA;AACA;AACA,MAAM,UAAU,GAAG;AACnB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC;AACpB,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1B,EAAE,gBAAgB,EAAE,MAAM;AAC1B,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;AACrC;AACA,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,SAAS,CAAC,OAAO;AACvB,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ;AAC7B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ;AAC7B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AClCD;AACA;AACA;AACA,MAAM,UAAU,GAAG;AACnB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC;AACpB,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1B,EAAE,gBAAgB,EAAE,YAAY;AAChC,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;AACrC;AACA,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,SAAS,CAAC,OAAO;AACvB,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ;AAC7B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ;AAC7B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACpCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAQ,GAAG;AACjB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC;AAClB;AACA,EAAE,SAAS,EAAE,6CAA6C;AAC1D;AACA;AACA,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACrB,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC7B,MAAM,OAAO,IAAI,MAAM,CAAC,GAAG,GAAG,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzE,KAAK;AACL,IAAI,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;AACrC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI;AACJ,MAAM,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAC9C,MAAM;AACN,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3D,IAAI,IAAI,OAAO,EAAE;AACjB,+DAA+D;AAC/D,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AAChC,QAAQ,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9D;AACA;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,EAAE;AACvD,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B;AACA;AACA,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7B,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAChC,MAAM,OAAO;AACb,QAAQ,KAAK,EAAE,IAAI;AACnB,OAAO,CAAC;AACR,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,MAAM,OAAO;AACb,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,OAAO,EAAE,oBAAoB;AACrC,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACtD,MAAM,OAAO,EAAE,yBAAyB;AACxC,KAAK,CAAC;AACN,GAAG;AACH,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,oCAAoC;AAC1D,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AAC9B,MAAM,OAAO,CAAC;AACd,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;AAChC,MAAM,oDAAoD;AAC1D,QAAQ,IAAI,CAAC,OAAO;AACpB,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,oDAAoD;AACxD,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AACzC,GAAG;AACH,EAAE,cAAc,CAAC,CAAC,KAAK,EAAE;AACzB,IAAI,OAAO,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACpD,QAAQ,CAAC,GAAG,EAAE;AACd,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa;AACrD,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,kBAAkB;AACtE,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;AACzB,QAAQ,CAAC,GAAG,EAAE;AACd,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW;AACnD,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,YAAY;AAChE,OAAO,EAAE;AACT,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,OAAO,CAAC,CAAC;AACT,GAAG;AACH;AACA;AACA,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;AAC/D,IAAI,MAAM,gBAAgB;AAC1B,MAAM,oBAAoB;AAC1B,KAAK,CAAC;AACN,IAAI,MAAM,GAAG,GAAG,KAAK,KAAK,oBAAoB,EAAE,YAAY;AAC5D,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC;AACpD,QAAQ,EAAE,CAAC,CAAC;AACZ,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK;AAC9B,QAAQ,EAAE;AACV,QAAQ,GAAG,CAAC,KAAK,EAAE;AACnB,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,cAAc;AACxB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC;AAChD,YAAY,OAAO,EAAE;AACrB;AACA;AACA;AACA,cAAc,YAAY,CAAC,CAAC,iBAAiB,EAAE;AAC/C;AACA,gBAAgB,IAAI,iBAAiB,KAAK,IAAI,EAAE;AAChD;AACA;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB,IAAI;AACxB,oBAAoB,OAAO,GAAG,IAAI,CAAC;AACnC,iBAAiB;AACjB,gBAAgB,MAAM,KAAK;AAC3B,gDAAgD;AAChD,oBAAoB,OAAO;AAC3B,oBAAoB,sBAAsB;AAC1C,iBAAiB,CAAC;AAClB,gBAAgB,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC1D,gBAAgB,MAAM,IAAI;AAC1B,kBAAkB,KAAK,CAAC,aAAa;AACrC,iBAAiB,CAAC;AAClB,gBAAgB,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACrD,eAAe;AACf,aAAa;AACb,YAAY,GAAG,EAAE;AACjB,cAAc,KAAK,CAAC,UAAU;AAC9B,8EAA8E;AAC9E,kBAAkB,IAAI;AACtB,kBAAkB,YAAY,iCAAiC;AAC/D,kBAAkB,IAAI;AACtB,kBAAkB,OAAO,CAAC,CAAC;AAC3B,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,OAAO,CAAC,CAAC;AACT,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;AACxD,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,MAAM;AACxD,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,MAAM,EAAE,OAAO;AACvB,OAAO,EAAE;AACT,QAAQ,QAAQ;AAChB,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC;AACvC,UAAU,IAAI,EAAE,gBAAgB;AAChC;AACA,UAAU,KAAK,EAAE,CAAC,GAAG,IAAI,OAAO;AAChC,cAAc,EAAE;AAChB,cAAc,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,UAAU,GAAG,EAAE,gBAAgB,EAAE,GAAG;AACpC,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,cAAc,SAAS;AACvB,UAAU,GAAG,EAAE,gBAAgB,EAAE,GAAG;AACpC,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,cAAc,SAAS;AACvB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,OAAO;AACb,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACpMD;AACA;AACA;AACA,MAAM,QAAQ,GAAG;AACjB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC;AAClB,EAAE,WAAW,EAAE,iBAAiB;AAChC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AACjE,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACxC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACvC,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,WAAW;AAC7D,KAAK,EAAE;AACP,MAAM,KAAK;AACX,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE;AAC7D,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,MAAM;AACxD,KAAK,EAAE;AACP,MAAM,CAAC,QAAQ,EAAE;AACjB,QAAQ,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC;AACrC,OAAO,wCAAwC;AAC/C,QAAQ,oBAAoB;AAC5B,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AAC7B,QAAQ,OAAO,CAAC,QAAQ,EAAE;AAC1B,UAAU,QAAQ,EAAE,KAAK;AACzB,cAAc,KAAK,KAAK,GAAG;AAC3B,cAAc,oBAAoB,EAAE,YAAY,KAAK,GAAG;AACxD,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAClB,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC9CD;AACA;AACA;AACA,MAAM,OAAO,GAAG;AAChB,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC;AACjB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,GAAG,EAAE,IAAI;AACX,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1B,EAAE,gBAAgB,EAAE,SAAS;AAC7B,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;AACpC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,SAAS,CAAC,OAAO;AACvB,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK;AAC1B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK;AAC1B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AClCD;AACA;AACA;AACA,MAAM,OAAO,GAAG;AAChB,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC;AACjB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,GAAG,EAAE,IAAI;AACX,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1B,EAAE,gBAAgB,EAAE,SAAS;AAC7B,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;AACpC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,SAAS,CAAC,OAAO;AACvB,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK;AAC1B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK;AAC1B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC/BD;AACA;AACA;AACA,MAAM,WAAW,GAAG;AACpB,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC;AACrB,EAAE,WAAW,EAAE,oBAAoB;AACnC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB;AACA;AACA,IAAI,QAAQ,OAAO,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ;AAC3D,MAAM,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC7B,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,MAAM,KAAK,GAAG,CAAC,KAAK,MAAM;AAC9B,QAAQ,IAAI;AACZ,QAAQ,CAAC,KAAK,OAAO;AACrB,UAAU,KAAK;AACf,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;AAC7B,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,YAAY,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AACnB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,2CAA2C,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;AAC3E,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACxC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AAC9B,IAAI,MAAM,eAAe,GAAG,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACpD,IAAI,MAAM,UAAU,GAAG,QAAQ,EAAE,KAAK,EAAE,aAAa;AACrD;AACA,QAAQ,eAAe,EAAE,OAAO,CAAC,IAAI;AACrC;AACA,KAAK,CAAC;AACN,IAAI,uDAAuD;AAC3D,MAAM,UAAU;AAChB,OAAO,QAAQ,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAChC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;AAC/E,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE;AACf,IAAI,MAAM,CAAC,oBAAoB,CAAC,GAAG,GAAG,CAAC;AACvC,IAAI,MAAM;AACV,MAAM,KAAK,EAAE,GAAG;AAChB,KAAK,kDAAkD,oBAAoB,CAAC,CAAC;AAC7E;AACA,IAAI,IAAI,qBAAqB,CAAC;AAC9B,IAAI,QAAQ,OAAO,GAAG;AACtB,IAAI,KAAK,SAAS;AAClB;AACA,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,MAAM;AACZ,IAAI,KAAK,QAAQ;AACjB;AACA,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrD,MAAM,MAAM;AACZ,IAAI,KAAK,QAAQ,CAAC,CAAC;AACnB;AACA,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrD,MAAM,MAAM;AACZ,KAAK;AACL;AACA,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AACjD,MAAM,qBAAqB;AAC3B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC5ED;AACA;AACA;AACA,MAAM,aAAa,GAAG;AACtB,EAAE,WAAW,EAAE,cAAc;AAC7B,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC;AAChC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,CAAC,KAAK,SAAS,CAAC;AAC3B,GAAG;AACH,EAAE,OAAO,CAAC,WAAW;AACrB,IAAI,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,oDAAoD;AACxD,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE;AAClC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAC9B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,kBAAkB;AACpE,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AACtB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,CAAC,EAAE;AACjD,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAC9B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,WAAW;AAC7D,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,WAAW;AACnB,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,UAAU;AAC1B,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC;AACxC,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,OAAO,EAAE,IAAI;AACvB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC3CD;AACA;AACA;AACA,MAAM,QAAQ,GAAG;AACjB,EAAE,WAAW,EAAE,SAAS;AACxB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC;AAClB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,CAAC,KAAK,SAAS,CAAC;AAC3B,GAAG;AACH,EAAE,OAAO,CAAC,WAAW;AACrB,IAAI,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,oDAAoD;AACxD,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;AAChB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE;AAClC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,YAAY;AAC9D,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,CAAC,EAAE;AACjD,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,MAAM;AACxD,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,MAAM;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,UAAU;AAC1B,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC;AACvC,UAAU,OAAO,EAAE,IAAI;AACvB,UAAU,QAAQ,EAAE,IAAI;AACxB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC1CD;AACA;AACA;AACA,MAAM,UAAU,GAAG;AACnB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC;AACpB,EAAE,WAAW,CAAC,CAAC,WAAW,EAAE;AAC5B,IAAI,MAAM,OAAO,GAAG,WAAW,GAAG,KAAK,GAAG,GAAG,CAAC;AAC9C,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;AAChC,KAAK,IAAI;AACT,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM;AAC9B,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAChB,GAAG;AACH,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd;AACA,IAAI,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AAChD,MAAM,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAC,KAAK;AACnE,gEAAgE;AAChE,QAAQ,IAAI;AACZ,QAAQ,WAAW,EAAE;AACrB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AAC/C;AACA,IAAI,2DAA2D;AAC/D,MAAM,IAAI;AACV,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACrB,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AACjE,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,IAAI;AACR,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3B,KAAK,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,OAAO;AACb,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,OAAO,uBAAuB,CAAC,GAAG,EAAE,OAAO;AACnD,OAAO,CAAC;AACR,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,OAAO,IAAI,MAAM;AACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACjC,MAAM,CAAC,GAAG;AACV,QAAQ,IAAI;AACZ,SAAS,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK;AAC/D,QAAQ,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AAC7B,OAAO,EAAE,EAAE,CAAC;AACZ,KAAK,CAAC;AACN,GAAG;AACH,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnD,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,cAAc;AAChE,KAAK,EAAE;AACP,MAAM,MAAM,CAAC,KAAK,CAAC;AACnB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,aAAa,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;AAC/E,GAAG,EAAE;AACL;AACA,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE;AACjC,MAAM,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE;AACtB,UAAU,CAAC,GAAG;AACd;AACA;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB;AACA,YAAY,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACtC,YAAY,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,WAAW,CAAC,CAAC;AACb,SAAS;AACT,OAAO;AACP,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACvC,MAAM,OAAO,CAAC,QAAQ,EAAE;AACxB,QAAQ,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE;AAC5B,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,QAAQ;AAC1D,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,SAAS;AACjB,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM;AACvD,UAAU,KAAK,EAAE,KAAK,CAAC,MAAM;AAC7B,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP;AACA;AACA,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;AAC5C,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7C,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB,GAAG;AACH,CAAC;;AC/HD;AACA;AACA;AACA,MAAM,iBAAiB,GAAG;AAC1B,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC;AAC3B,EAAE,WAAW,EAAE,oBAAoB;AACnC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AACjE,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,OAAO;AACX;AACA;AACA,MAAM,KAAK,EAAE,IAAI,OAAO,CAAC,CAAC,KAAK,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,MAAM,iCAAiC;AAC7C,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,MAAM,sCAAsC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1E,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC;AACtC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,oBAAoB;AACtE,KAAK,EAAE,CAAC,oBAAoB,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,GAAG;AACH,EAAE,EAAE,EAAE,CAAC;AACP,EAAE,MAAM,CAAC,CAAC;AACV;AACA;AACA,IAAI,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;AAClE,GAAG,EAAE;AACL,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;AACd,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC;AACtC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,gBAAgB;AAClE,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,MAAM;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACzE,UAAU,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;AACjD,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,OAAO;AACf,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1D,UAAU,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;AACnD,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AChED;AACA;AACA;AACA,MAAM,gBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC;AAC1B,EAAE,WAAW,EAAE,mBAAmB;AAClC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAChE,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,iEAAiE;AACrE,MAAM,UAAU;AAChB,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AACzC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AACrC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,mBAAmB;AACrE,KAAK,EAAE;AACP,MAAM,oBAAoB,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5D,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE;AACxD,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AACrC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,eAAe;AACjE,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC;AAC7C,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK;AACb,QAAQ,IAAI,EAAE,KAAK;AACnB,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACpDD;AACA;AACA;AACA,MAAM,gBAAgB,GAAG;AACzB,EAAE,WAAW,EAAE,sBAAsB;AACrC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAChE,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC;AACA;AACA,GAAG;AACH,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC;AAC1B,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,2CAA2C,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;AACrE,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AACzC,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACxC,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AACrC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,mBAAmB;AACrE,KAAK,EAAE;AACP,MAAM,oBAAoB,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACjC,MAAM,oBAAoB,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9C,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE;AAC7D,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AACrC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,eAAe;AACjE,KAAK,EAAE;AACP,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACpE,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC9CD;AACA;AACA;AACA,MAAM,0BAA0B,GAAG;AACnC,EAAE,MAAM,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;AAC3E,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,cAAc,CAAC;AAC9D,EAAE,WAAW,EAAE,sBAAsB;AACrC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,iBAAiB;AAC7D,MAAM,CAAC,KAAK,MAAM,CAAC,iBAAiB,CAAC;AACrC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,CAAC,KAAK,IAAI;AACvB,UAAU,CAAC,CAAC;AACZ,UAAU,CAAC,KAAK,UAAU;AAC1B,YAAY,MAAM,CAAC,iBAAiB;AACpC,YAAY,MAAM,CAAC,iBAAiB;AACpC,KAAK,CAAC;AACN,GAAG;AACH,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACrB,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AACjE,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,oDAAoD,CAAC,IAAI,CAAC,OAAO;AACrE,gEAAgE;AAChE,QAAQ,IAAI;AACZ,QAAQ,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AAC/B,KAAK,CAAC,KAAK,CAAC;AACZ,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,8DAA8D;AAC9D,MAAM,IAAI;AACV,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5E,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;AAC1C,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,KAAK,cAAc;AACjE,UAAU,iBAAiB;AAC3B,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,KAAK,EAAE;AACP,MAAM,cAAc;AACpB,UAAU,IAAI;AACd,UAAU,MAAM,CAAC,KAAK,CAAC;AACvB,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AACjE,GAAG;AACH,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG,MAAM,CAAC,iBAAiB;AACzE,GAAG,EAAE;AACL,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;AAC1C,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,qBAAqB;AACvE,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,EAAE;AACjE,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,KAAK,MAAM,CAAC,iBAAiB;AAC3E,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC;AAC1B,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,KAAK,MAAM,CAAC,iBAAiB;AAC5E,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;AAC3B,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvD,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;AACpB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC1ED;AACA;AACA;AACA,MAAM,sBAAsB,GAAG;AAC/B,EAAE,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAC;AAC7E,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,CAAC;AACrE,EAAE,WAAW,EAAE,0BAA0B;AACzC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,CAAC,KAAK,IAAI;AACvB,UAAU,CAAC,CAAC;AACZ,UAAU,CAAC,KAAK,KAAK;AACrB,YAAY,MAAM,CAAC,GAAG;AACtB,YAAY,CAAC,KAAK,UAAU;AAC5B,cAAc,MAAM,CAAC,iBAAiB;AACtC,cAAc,MAAM,CAAC,iBAAiB;AACtC,KAAK,CAAC;AACN,GAAG;AACH,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACrB,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AACjE,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AACjE,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,oDAAoD,CAAC,IAAI,CAAC,OAAO;AACrE,gEAAgE;AAChE,QAAQ,IAAI;AACZ,QAAQ,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AAC/B,KAAK,CAAC,KAAK,CAAC;AACZ,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,8DAA8D;AAC9D,MAAM,IAAI;AACV,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5E,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACnB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE;AACrD,MAAM,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;AACjD,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE;AAC/C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE;AACvD,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,kBAAkB;AAC1B,QAAQ,CAAC,QAAQ,EAAE;AACnB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;AAChD,SAAS,EAAE;AACX,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AACvD,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;AACrB,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,KAAK,MAAM,CAAC,iBAAiB;AAC3E,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC;AAC1B,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,KAAK,MAAM,CAAC,iBAAiB;AAC5E,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;AAC3B,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvD,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;AACpB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC/DD;AACA;AACA;AACA,MAAM,SAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC;AACnB,EAAE,WAAW,EAAE,kBAAkB;AACjC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO;AACrC;AACA,MAAM,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,MAAM,MAAM,+DAA+D;AAC/E,MAAMqC,CAAoB,CAAC,KAAK;AAChC,MAAM,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACtB,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE;AAC3E,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC3C,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC7C,QAAQ,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAChD,QAAQ,KAAK,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxC,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC;AAC1C,QAAQ,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;AAC3B,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC7C,QAAQ,KAAK,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5C,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC/B,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AACjD,QAAQ,KAAK,EAAE,CAAC;AAChB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;AAC9C,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AACjD,QAAQ,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;AACjC,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AACjD,QAAQ,KAAK,GAAG,EAAE,CAAC;AACnB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE;AAChD,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,iCAAiC,CAAC;AACnD,QAAQ,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;AACnC,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,iCAAiC,CAAC;AACnD,QAAQ,KAAK,GAAG,EAAE,CAAC;AACnB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;AACzC,yCAAyC;AACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5B,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,EAAE,CAAC;AAChB,KAAK;AACL;AACA,IAAI,UAAU,CAAC,MAAM;AACrB,MAAM,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;AAC3C,mCAAmC,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;AAChE,gEAAgE;AAChE,UAAU,IAAI,CAAC,QAAQ;AACvB,UAAU;AACV,UAAU,IAAI,iCAAiC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAC1E,UAAU,KAAK,EAAE,KAAK,CAAC,KAAK;AAC5B,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,oCAAoC;AACxC,MAAM,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAC9C,MAAM,OAAO,EAAE;AACf,MAAM,MAAM,OAAO,mCAAmC;AACtD,QAAQ,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC7C,QAAQ,KAAK,CAAC;AACd,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAClC,KAAK,MAAM;AACX;AACA,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;AAC3B,MAAM,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;AACjC,KAAK;AACL,IAAI,oCAAoC;AACxC,MAAM,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC3C,MAAM,OAAO,EAAE;AACf,MAAM,MAAM,IAAI,mCAAmC;AACnD,QAAQ,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC;AAC1C,QAAQ,KAAK,CAAC;AACd,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,oCAAoC;AACxC,MAAM,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AAC/C,MAAM,OAAO,EAAE;AACf,MAAM,MAAM,QAAQ,mCAAmC;AACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,CAAC;AACd,MAAM,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;AAClC,KAAK;AACL,IAAI,oCAAoC;AACxC,MAAM,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC5C,MAAM,OAAO,EAAE;AACf,MAAM,MAAM,KAAK,sCAAsC;AACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,CAAC;AACd,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,MAAM,UAAU,mCAAmC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AAC/C,MAAM,KAAK,CAAC;AACZ,IAAI,MAAM,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,GAAG,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3E;AACA,IAAI,MAAM,YAAY,mCAAmC;AACzD,MAAM,EAAE,CAAC,IAAI,EAAE,iCAAiC,CAAC;AACjD,MAAM,KAAK,CAAC;AACZ,IAAI,MAAM,CAAC,YAAY,GAAG,YAAY,KAAK,EAAE;AAC7C,QAAQ,SAAS;AACjB,QAAQ,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7B;AACA,IAAI,MAAM,aAAa;AACvB,MAAM,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAChC,KAAK,CAAC;AACN,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;AACvC,MAAM,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,QAAQ,IAAI,EAAE,aAAa;AAC3B,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,MAAM,CAAC;AACT,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,CAAC;AACnD,IAAI;AACJ,IAAI,sDAAsD;AAC1D,MAAM,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE;AACzC,QAAQ,CAAC,GAAG,EAAE;AACd,UAAU,KAAK,EAAE,UAAU;AAC3B,UAAU,KAAK,EAAE,oBAAoB,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS;AAC7E,SAAS,EAAE;AACX,UAAU,oBAAoB,EAAE,WAAW,IAAI,OAAO;AACtD,SAAS,CAAC;AACV,QAAQ,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;AACrC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;AAClC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5D,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;AACtC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrE,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;AACxC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzE,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;AAC1C,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7E,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;AACnC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,YAAY,EAAE;AACd,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;AAC5D,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AAC3D,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAY,MAAM,aAAa;AAC/B,yCAAyC,CAAC,MAAM,EAAE,kBAAkB;AACpE,aAAa,CAAC;AACd,YAAY,aAAa,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AACzD,uCAAuC;AACvC,cAAc,MAAM;AACpB,cAAc,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7D,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrB,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;AAC5C,YAAY,CAAC,CAAC,KAAK;AACnB,gBAAgB,IAAI,CAAC,MAAM,CAAC;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,KAAK,EAAE,CAAC,CAAC,KAAK;AAC9B,gBAAgB,KAAK;AACrB,eAAe,CAAC;AAChB,gBAAgB,EAAE;AAClB,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,OAAO;AACP,KAAK,EAAE;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,GAAG;AAC/D,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,IAAI,EAAE,EAAE;AACZ,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,YAAY,EAAE,EAAE;AACpB,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,KAAK,EAAE,SAAS;AACpB,GAAG,CAAC,EAAE;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE;AAC/B,iCAAiC;AACjC,mCAAmC;AACnC,UAAU,IAAI,CAAC,UAAU;AACzB,UAAU,kBAAkB;AAC5B;AACA,QAAQ,MAAM,GAAG;AACjB;AACA,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC;AACzB,KAAK,CAAC;AACN;AACA,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC;AAC3B;AACA,IAAI,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;AACzC,MAAM,UAAU,CAAC,MAAM;AACvB,mCAAmC,CAAC,EAAE;AACtC,UAAU,GAAG,EAAE,QAAQ;AACvB,SAAS,EAAE,KAAK,EAAE,CAAC;AACnB,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,MAAM,GAAG,GAAG,GAAG;AACnB,MAAM,KAAK;AACX,MAAM;AACN,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAChC,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,OAAO;AAC3D,OAAO;AACP,wDAAwD;AACxD,QAAQ,CAAC,KAAK,EAAE;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,WAAW;AACvB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,SAAS;AAC9B,cAAc,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AAC1E,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK;AACrB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,GAAG;AACb,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AACrD,WAAW,EAAE;AACb,YAAY,UAAU;AACtB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,SAAS;AAC9B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;AACpD,cAAc,KAAK,EAAE,KAAK,CAAC,OAAO;AAClC,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,KAAK,EAAE;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,QAAQ;AACpB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,MAAM;AAC3B,cAAc,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AACvE,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK;AACrB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,GAAG;AACb,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAClD,WAAW,EAAE;AACb,YAAY,OAAO;AACnB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,MAAM;AAC3B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC;AACjD,cAAc,KAAK,EAAE,KAAK,CAAC,IAAI;AAC/B,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,CAAC,KAAK,EAAE;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,aAAa;AACzB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,UAAU;AAC/B,cAAc,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;AAC3E,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK;AACrB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,GAAG;AACb,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;AACtD,WAAW,EAAE;AACb,YAAY,YAAY;AACxB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,UAAU;AAC/B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC;AACrD,cAAc,KAAK,EAAE,KAAK,CAAC,QAAQ;AACnC,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,cAAc;AACxB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,YAAY;AAC/B,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC;AACrD,YAAY,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU;AAChE,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,gBAAgB;AAC1B,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,cAAc;AACjC,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC;AACvD,YAAY,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY;AAClE,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,KAAK,EAAE;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,SAAS;AACrB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;AACxE,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK;AACrB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;AACnD,WAAW,EAAE;AACb,YAAY,QAAQ;AACpB,YAAY,CAAC,UAAU,EAAE;AACzB,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC;AAClD,aAAa,EAAE;AACf,cAAc,KAAK,CAAC,KAAK;AACzB,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,SAAS;AACnB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,GAAG,EAAE;AACjB,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE;AACxB,gBAAgB,KAAK,CAAC,IAAI,kCAAkC,IAAI,GAAG,CAAC,CAAC,CAAC;AACtE,gBAAgB,MAAM,WAAW;AACjC,yCAAyC;AACzC,oBAAoB,IAAI,CAAC,aAAa;AACtC,oBAAoB,kBAAkB;AACtC,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACxE,gBAAgB,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE;AACrD,kBAAkB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AAClD,oBAAoB,aAAa;AACjC,oBAAoB,KAAK;AACzB,oBAAoB,KAAK,EAAE,KAAK,CAAC,KAAK;AACtC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,GAAG,CAAC,GAAG,MAAM,EAAE,aAAa,CAAC,CAAC;AAChD,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;AACtD,UAAU,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC/B,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AAC3D,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAY,MAAM,aAAa,kCAAkC,EAAE;AACnE;AACA,0CAA0C,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;AAC1E,cAAc,gBAAgB;AAC9B,aAAa,CAAC,CAAC;AACf,YAAY,aAAa,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AACzD,uCAAuC;AACvC,cAAc,MAAM;AACpB,cAAc,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7D,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrB,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AAC3C,SAAS,CAAC;AACV,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,GAAG;AACH,CAAC;;AC7aD;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,EAAE,GAAG,EAAE;AAC9B,EAAE,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;AACjC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;AAC1B,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;AAC5B,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;AAC9B,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC;AACpC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;AAC1B,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;AACxB,CAAC,CAAC,CAAC;AACH,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AAC3C,EAAE,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AACD;AACA;AACA;AACA,IAAI,OAAO,aAAa,KAAK,WAAW,EAAE;AAC1C;AACA,EAAE,gBAAgB,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AACvD,CAAC;AACD;AACA,MAAM,aAAa,GAAG,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA,MAAM,iBAAiB,GAAG;AAC1B,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC;AAC5B,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO;AACX,MAAM,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc;AACxD,MAAM,SAAS,EAAE,QAAQ;AACzB,MAAM,cAAc;AACpB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACzC,IAAI,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC7B,GAAG,CAAC;AACJ,EAAE,WAAW,EAAE,IAAI,MAAM;AACzB,IAAI,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/C,MAAM,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,GAAG;AAChD,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;AACxB;AACA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,MAAM,UAAU;AAChB;AACA,KAAK,GAAG,EAAE,CAAC;AACX,oDAAoD,CAAC,QAAQ,EAAE,KAAK;AACpE,KAAK,CAAC;AACN;AACA,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,MAAM,MAAM,+DAA+D;AAC/E,MAAMC,CAAqB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AACrD,MAAM,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACtB,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE;AAC3E,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;AAC9B,OAAO,CAAC;AACR,IAAI,SAAS,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACxD,IAAI,SAAS,CAAC,yBAAyB,EAAE,CAAC;AAC1C;AACA,IAAI,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC3C,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC7C,QAAQ,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAChD,QAAQ,KAAK,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxC,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC;AAC1C,QAAQ,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;AAC3B,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC7C,QAAQ,KAAK,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5C,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC/B,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AACjD,QAAQ,KAAK,EAAE,CAAC;AAChB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;AAC9C,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AACjD,QAAQ,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;AACjC,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AACjD,QAAQ,KAAK,GAAG,EAAE,CAAC;AACnB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE;AAChD,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,iCAAiC,CAAC;AACnD,QAAQ,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;AACnC,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,iCAAiC,CAAC;AACnD,QAAQ,KAAK,GAAG,EAAE,CAAC;AACnB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;AACzC,yCAAyC;AACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5B,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,EAAE,CAAC;AAChB,KAAK;AACL;AACA,IAAI,UAAU,CAAC,MAAM;AACrB,MAAM,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;AAC3C,mCAAmC,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;AAChE,gEAAgE;AAChE,UAAU,IAAI,CAAC,QAAQ;AACvB,UAAU;AACV,UAAU,IAAI,iCAAiC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAC1E,UAAU,KAAK,EAAE,KAAK,CAAC,KAAK;AAC5B,SAAS,CAAC,CAAC;AACX,OAAO;AACP;AACA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACvC,QAAQ,MAAM,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC;AAC7C,WAAW,CAAC;AACZ,QAAQ,eAAe,CAAC,KAAK,EAAE,CAAC;AAChC,QAAQ,eAAe,CAAC,6BAA6B,EAAE,CAAC;AACxD,QAAQ,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxD,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AAC9B,IAAI,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG;AAC9C,uCAAuC;AACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;AAC9B,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,aAAa,EAAE;AACxB,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACxC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,oCAAoC;AACxC,MAAM,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAC9C,MAAM,OAAO,EAAE;AACf,MAAM,MAAM,OAAO,mCAAmC;AACtD,QAAQ,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC7C,QAAQ,KAAK,CAAC;AACd;AACA,MAAM,IAAI,cAAc,CAAC,aAAa,CAAC,KAAK,gBAAgB,EAAE;AAC9D,QAAQ,MAAM,GAAG,6CAA6C,aAAa,CAAC,CAAC;AAC7E,QAAQ,MAAM,SAAS;AACvB,qCAAqC,CAAC,EAAE;AACxC,YAAY,IAAI,EAAE,0BAA0B;AAC5C,WAAW,EAAE,iBAAiB,CAAC;AAC/B;AACA,QAAQ,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC1C,UAAU,QAAQ;AAClB,UAAU,IAAI,iCAAiC,SAAS,CAAC;AACzD,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,OAAO,MAAM;AACb,QAAQ,MAAM,GAAG,wCAAwC,aAAa,CAAC,CAAC;AACxE,QAAQ,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;AAClC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,cAAc,CAAC,aAAa,CAAC,KAAK,gBAAgB,EAAE;AAC9D,QAAQ,MAAM,GAAG,6CAA6C,aAAa,CAAC,CAAC;AAC7E,QAAQ,MAAM,SAAS;AACvB,qCAAqC,CAAC,EAAE;AACxC,YAAY,IAAI,EAAE,0BAA0B;AAC5C,WAAW,EAAE,iBAAiB,CAAC;AAC/B,QAAQ,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC1C,UAAU,QAAQ;AAClB,UAAU,IAAI,iCAAiC,SAAS,CAAC;AACzD,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;AACjC,OAAO,MAAM;AACb,QAAQ,MAAM,GAAG,wCAAwC,aAAa,CAAC,CAAC;AACxE,QAAQ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3B,OAAO;AACP,MAAM,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;AACjC,KAAK;AACL,IAAI,oCAAoC;AACxC,MAAM,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC3C,MAAM,OAAO,EAAE;AACf,MAAM,MAAM,IAAI,mCAAmC;AACnD,QAAQ,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC;AAC1C,QAAQ,KAAK,CAAC;AACd,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,oCAAoC;AACxC,MAAM,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AAC/C,MAAM,OAAO,EAAE;AACf,MAAM,MAAM,QAAQ,mCAAmC;AACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,CAAC;AACd,MAAM,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;AAClC,KAAK;AACL,IAAI,oCAAoC;AACxC,MAAM,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC5C,MAAM,OAAO,EAAE;AACf,MAAM,MAAM,KAAK,sCAAsC;AACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,KAAK,CAAC;AACd,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,MAAM,UAAU,mCAAmC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AAC/C,MAAM,KAAK,CAAC;AACZ,IAAI,MAAM,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,GAAG,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3E;AACA,IAAI,MAAM,YAAY,mCAAmC;AACzD,MAAM,EAAE,CAAC,IAAI,EAAE,iCAAiC,CAAC;AACjD,MAAM,KAAK,CAAC;AACZ,IAAI,MAAM,CAAC,YAAY,GAAG,YAAY,KAAK,EAAE;AAC7C,QAAQ,SAAS;AACjB,QAAQ,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7B;AACA,IAAI,MAAM,aAAa;AACvB,MAAM,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAChC,KAAK,CAAC;AACN,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;AACvC,MAAM,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,QAAQ,QAAQ;AAChB,QAAQ,IAAI,EAAE,aAAa;AAC3B,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,MAAM,CAAC;AACT,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,aAAa,EAAE,UAAU,CAAC;AAC9E,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AACtD,IAAI,sDAAsD;AAC1D,MAAM,KAAK,EAAE;AACb,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AACjC,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW;AAChD,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AACvC,YAAY,SAAS;AACrB,OAAO,EAAE;AACT,QAAQ,oBAAoB,EAAE,WAAW;AACzC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE;AACrD,YAAY,WAAW;AACvB,WAAW,CAAC,CAAC,CAAC;AACd,QAAQ,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;AACrC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;AAClC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5D,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;AACtC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrE,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;AACxC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzE,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;AAC1C,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7E,YAAY,EAAE;AACd,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;AACnC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,YAAY,EAAE;AACd,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;AAC5D,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AAC3D,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAY,MAAM,aAAa;AAC/B,yCAAyC,CAAC,MAAM,EAAE,kBAAkB;AACpE,aAAa,CAAC;AACd,YAAY,aAAa,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AACzD,uCAAuC;AACvC,cAAc,MAAM;AACpB,cAAc,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7D,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrB,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;AAC5C,YAAY,CAAC,CAAC,KAAK;AACnB,gBAAgB,IAAI,CAAC,MAAM,CAAC;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,KAAK,EAAE,CAAC,CAAC,KAAK;AAC9B,gBAAgB,KAAK;AACrB,eAAe,CAAC;AAChB,gBAAgB,EAAE;AAClB,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,WAAW,KAAK,gBAAgB;AACxC,YAAY,CAAC,KAAK,EAAE;AACpB,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9B,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,uBAAuB,CAAC,EAAE;AACtD,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AAC/D,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnC,gBAAgB,MAAM,uBAAuB;AAC7C,6CAA6C,CAAC,MAAM,EAAE,kBAAkB;AACxE,iBAAiB,CAAC;AAClB,gBAAgB,uBAAuB,CAAC,MAAM;AAC9C,kBAAkB,CAAC,uBAAuB,CAAC,MAAM,CAAC;AAClD,2CAA2C;AAC3C,kBAAkB,MAAM;AACxB,kBAAkB,WAAW,GAAG,uBAAuB,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AAC3E,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACzB,cAAc,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,yBAAyB,CAAC,EAAE;AAC1D;AACA,iBAAiB,CAAC,CAAC,MAAM;AACzB,oBAAoB,CAAC,MAAM;AAC3B,oBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;AACnD,sBAAsB,aAAa,EAAE,UAAU,EAAE,MAAM;AACvD,sBAAsB,IAAI,EAAE,mBAAmB;AAC/C,sBAAsB,KAAK,EAAE,EAAE;AAC/B,sBAAsB,KAAK;AAC3B,qBAAqB,CAAC,CAAC;AACvB;AACA;AACA,oBAAoB,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,CAAC,GAAG,EAAE,sBAAsB,CAAC;AACnD,wBAAwB,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;AAC7C,wBAAwB,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,OAAO;AAC3E,4BAA4B,OAAO;AACnC,4BAA4B,QAAQ;AACpC,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,cAAc,EAAE,KAAK;AAC7C,uBAAuB,CAAC,CAAC;AACzB,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,OAAO,GAAG,CAAC;AAC/B,mBAAmB,GAAG;AACtB;AACA,oBAAoB,EAAE;AACtB,eAAe,CAAC;AAChB,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,YAAY,EAAE;AACd,OAAO;AACP,KAAK,EAAE;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,aAAa;AACjB,IAAI,oBAAoB;AACxB,IAAI,KAAK;AACT;AACA;AACA,IAAI,gBAAgB;AACpB,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,cAAc;AAClB;AACA,IAAI,KAAK,GAAG;AACZ,MAAM,OAAO,EAAE,EAAE;AACjB,MAAM,IAAI,EAAE,EAAE;AACd,MAAM,QAAQ,EAAE,EAAE;AAClB,MAAM,UAAU,EAAE,EAAE;AACpB,MAAM,YAAY,EAAE,EAAE;AACtB,MAAM,KAAK,EAAE,EAAE;AACf,MAAM,KAAK,EAAE,SAAS;AACtB,MAAM,MAAM,EAAE,SAAS;AACvB,KAAK;AACL,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE;AAC/B,iCAAiC;AACjC,mCAAmC;AACnC,UAAU,IAAI,CAAC,UAAU;AACzB,UAAU,kBAAkB;AAC5B;AACA,QAAQ,MAAM,GAAG;AACjB;AACA,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC;AACzB,KAAK,CAAC;AACN;AACA,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC;AAC3B;AACA,IAAI,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;AACzC,MAAM,UAAU,CAAC,MAAM;AACvB,mCAAmC,CAAC,EAAE;AACtC,UAAU,GAAG,EAAE,QAAQ;AACvB,SAAS,EAAE,KAAK,EAAE,CAAC;AACnB,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACrC,MAAM,UAAU,CAAC,MAAM;AACvB,mCAAmC,CAAC,EAAE;AACtC,UAAU,GAAG,EAAE,uBAAuB;AACtC,SAAS,EAAE,KAAK,EAAE,CAAC;AACnB,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,MAAM,GAAG,GAAG,GAAG;AACnB,MAAM,KAAK;AACX,MAAM;AACN,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AACjC,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,eAAe;AACnE,OAAO;AACP,wDAAwD;AACxD,QAAQ,CAAC,KAAK,EAAE;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,qBAAqB;AACjC,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,WAAW;AAChC,cAAc,OAAO,EAAE;AACvB;AACA;AACA;AACA,gBAAgB,yBAAyB,CAAC,GAAG;AAC7C,kBAAkB,MAAM,oBAAoB;AAC5C,qDAAqD,EAAE;AACvD;AACA,uBAAuB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,uBAAuB,CAAC;AAC3E,sBAAsB,uBAAuB;AAC7C,qBAAqB,CAAC,CAAC;AACvB,kBAAkB,oBAAoB,CAAC,MAAM;AAC7C,qDAAqD;AACrD,sBAAsB,IAAI;AAC1B,sBAAsB,KAAK,KAAK,gBAAgB,CAAC;AACjD,iBAAiB;AACjB,eAAe;AACf,cAAc,GAAG,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM,CAAC,GAAG;AAC1B,kBAAkB,IAAI,CAAC,yBAAyB,EAAE,CAAC;AACnD,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;AAC/D,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK;AAClD,gBAAgB,OAAO,CAAC,QAAQ,EAAE;AAClC,kBAAkB,QAAQ,EAAE,SAAS,KAAK,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC;AAC3E,sBAAsB,UAAU;AAChC,sBAAsB,SAAS;AAC/B,iBAAiB,EAAE;AACnB,kBAAkB,SAAS;AAC3B,iBAAiB,CAAC,CAAC;AACnB,eAAe,CAAC;AAChB,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,WAAW;AACvB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,SAAS;AAC9B,cAAc,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AAC1E,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK;AACrB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,GAAG;AACb,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AACrD,WAAW,EAAE;AACb,YAAY,UAAU;AACtB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,SAAS;AAC9B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC;AACrD,cAAc,KAAK,EAAE,KAAK,CAAC,OAAO;AAClC,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,KAAK,EAAE;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,QAAQ;AACpB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,MAAM;AAC3B,cAAc,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AACvE,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK;AACrB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,GAAG;AACb,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAClD,WAAW,EAAE;AACb,YAAY,OAAO;AACnB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,MAAM;AAC3B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC;AAClD,cAAc,KAAK,EAAE,KAAK,CAAC,IAAI;AAC/B,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,CAAC,KAAK,EAAE;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,aAAa;AACzB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,UAAU;AAC/B,cAAc,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;AAC3E,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK;AACrB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,GAAG;AACb,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;AACtD,WAAW,EAAE;AACb,YAAY,YAAY;AACxB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,UAAU;AAC/B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC;AACtD,cAAc,KAAK,EAAE,KAAK,CAAC,QAAQ;AACnC,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,cAAc;AACxB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,YAAY;AAC/B,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC;AACtD,YAAY,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU;AAChE,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,gBAAgB;AAC1B,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,cAAc;AACjC,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC;AACxD,YAAY,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY;AAClE,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,KAAK,EAAE;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,SAAS;AACrB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;AACxE,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK;AACrB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,MAAM,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;AACnD,WAAW,EAAE;AACb,YAAY,QAAQ;AACpB,YAAY,CAAC,UAAU,EAAE;AACzB,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC;AACnD,aAAa,EAAE;AACf,cAAc,KAAK,CAAC,KAAK,IAAI,EAAE;AAC/B,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,SAAS;AACnB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,GAAG,EAAE;AACjB,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE;AACxB,gBAAgB,KAAK,CAAC,IAAI,kCAAkC,IAAI,GAAG,CAAC,CAAC,CAAC;AACtE,gBAAgB,MAAM,WAAW;AACjC,yCAAyC;AACzC,oBAAoB,IAAI,CAAC,aAAa;AACtC,oBAAoB,kBAAkB;AACtC,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACxE,gBAAgB,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE;AACrD,kBAAkB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AAClD,oBAAoB,gBAAgB;AACpC,oBAAoB,aAAa;AACjC,oBAAoB,KAAK;AACzB,oBAAoB,KAAK,EAAE,KAAK,CAAC,KAAK;AACtC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,GAAG,CAAC,GAAG,MAAM,EAAE,aAAa,CAAC,CAAC;AAChD,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;AACtD,UAAU,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC/B,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AAC3D,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAY,MAAM,aAAa,kCAAkC,EAAE;AACnE;AACA,0CAA0C,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;AAC1E,cAAc,gBAAgB;AAC9B,aAAa,CAAC,CAAC;AACf,YAAY,aAAa,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;AACzD,uCAAuC;AACvC,cAAc,MAAM;AACpB,cAAc,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7D,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrB,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AAC3C,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE;AAC9C,UAAU,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM;AAC/B,SAAS,EAAE;AACX,UAAU,oBAAoB;AAC9B,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,iBAAiB;AACpC,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,OAAO,EAAE;AACrB;AACA;AACA;AACA,cAAc,6BAA6B,CAAC,GAAG;AAC/C,gBAAgB,MAAM,qBAAqB;AAC3C,yCAAyC;AACzC,oBAAoB,IAAI,CAAC,aAAa;AACtC,oBAAoB,kBAAkB;AACtC,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,uBAAuB,GAAG,EAAE;AAClD,kBAAkB,qBAAqB,EAAE,0BAA0B;AACnE,iBAAiB,CAAC;AAClB,gBAAgB,OAAO,uBAAuB,EAAE,UAAU,EAAE;AAC5D,kBAAkB,uBAAuB,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;AAC/D,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB,CAAC,CAAC,MAAM,EAAE;AACzC,gBAAgB,MAAM,qBAAqB;AAC3C,yCAAyC;AACzC,oBAAoB,IAAI,CAAC,aAAa;AACtC,oBAAoB,kBAAkB;AACtC,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,uBAAuB,GAAG,EAAE;AAClD,kBAAkB,qBAAqB,EAAE,0BAA0B;AACnE,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,uBAAuB,EAAE,QAAQ,CAAC,MAAM,EAAE;AAC/D,kBAAkB,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;AACpD,oBAAoB,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM;AAClE,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,OAAO,EAAE,cAAc;AAC3C,oBAAoB,WAAW,EAAE,aAAa;AAC9C,oBAAoB,KAAK,EAAE,EAAE;AAC7B,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,CAAC;AACpD,sBAAsB,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;AAC3C,sBAAsB,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,OAAO;AACzE,0BAA0B,OAAO;AACjC,0BAA0B,QAAQ;AAClC,sBAAsB,KAAK,EAAE,KAAK;AAClC,sBAAsB,cAAc,EAAE,KAAK;AAC3C,sBAAsB,SAAS,EAAE,IAAI;AACrC,qBAAqB,CAAC,CAAC;AACvB,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AACvD,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,YAAY,GAAG,EAAE;AACjB,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE;AACxB,gBAAgB,KAAK,CAAC,IAAI,kCAAkC,IAAI,GAAG,CAAC,CAAC,CAAC;AACtE,gBAAgB,MAAM,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,CAAC,CAAC;AACzB,gBAAgB,IAAI,KAAK,CAAC,MAAM,EAAE;AAClC,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACzD,iBAAiB,MAAM;AACvB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC;AAC3C,oBAAoB;AACpB,sBAAsB,OAAO,EAAE,EAAE;AACjC,sBAAsB,IAAI,EAAE,EAAE;AAC9B,sBAAsB,KAAK,EAAE,EAAE;AAC/B,qBAAqB;AACrB,mBAAmB,CAAC,CAAC;AACrB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;AAChE,UAAU,CAAC,OAAO,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAC1C,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AAC3D,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAY,MAAM,uBAAuB,kCAAkC,EAAE;AAC7E;AACA,0CAA0C;AAC1C,gBAAgB,MAAM;AACtB,gBAAgB,OAAO,CAAC,wBAAwB,CAAC;AACjD,cAAc,0BAA0B;AACxC,aAAa,CAAC,CAAC;AACf,YAAY,uBAAuB,CAAC,MAAM,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC;AAC7E,uCAAuC;AACvC,cAAc,MAAM;AACpB,cAAc,WAAW,GAAG,uBAAuB,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AACvE,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrB,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;AACrD,SAAS,CAAC;AACV,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,GAAG;AACH,CAAC;;ACtxBD;AACA,IAAI,QAAQ,CAAC;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;AACpC,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,GAAG;AACH,EAAE,MAAM,SAAS;AACjB,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC3B,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAC1D;AACA,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;AAC7C,EAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC1B,EAAE,MAAM,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC;AAClD,EAAE,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AACjD;AACA,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3B;AACA;AACA,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA,EAAE,SAAS,IAAI,IAAI;AACnB,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC/B,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC;AACA,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAChC;AACA,IAAI,QAAQ,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC9C;AACA,IAAI,SAAS,CAAC,SAAS,GAAG,oBAAoB,CAAC;AAC/C,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5C;AACA,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;AAC5B,IAAI,SAAS,CAAC,WAAW,GAAG,cAAc,CAAC;AAC3C;AACA,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;AAC1B;AACA,IAAI,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,GAAG,YAAY,CAAC;AAChD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;AAC3C,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACnC,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AAC/B;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AACnB,QAAQ,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,OAAO,MAAM;AACb,QAAQ,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,OAAO;AACP;AACA,MAAM,CAAC,IAAI,UAAU,CAAC;AACtB,KAAK;AACL;AACA,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;AACvB,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY,EAAE,WAAW,EAAE;AAC1C,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC;AACpB,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACpE,GAAG,CAAC,OAAO,GAAG,EAAE;AAChB;AACA,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9B;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB,EAAE,mBAAmB,EAAE;AACxD,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC;AAC3B;AACA,EAAE,IAAI;AACN,IAAI,aAAa;AACjB,MAAM,MAAM,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AACxE,GAAG,CAAC,OAAO,GAAG,EAAE;AAChB;AACA,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACnC,GAAG;AACH,EAAE,OAAO,aAAa,CAAC;AACvB;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,EAAE,SAAS,EAAE;AACnC,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AAChC,EAAE,MAAM,kBAAkB,GAAG;AAC7B,IAAI,IAAI,IAAI;AACZ,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC;AACnD,KAAK,CAAC,WAAW,EAAE;AACnB,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjB,EAAE,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE;AAC9C,EAAE,MAAM,OAAO;AACf,IAAI,UAAU,CAAC,MAAM;AACrB,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI;AACvB,IAAI;AACJ,MAAM,KAAK,CAAC,cAAc,KAAK,SAAS;AACxC,UAAU,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;AACnD,UAAU,OAAO;AACjB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;AACjC,YAAY,OAAO;AACnB,YAAY,EAAE;AACd,UAAU,KAAK,CAAC,cAAc;AAC9B,KAAK;AACL,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;AAC5B,QAAQ,OAAO,EAAE,IAAI,IAAI,EAAE;AAC3B,QAAQ,KAAK,CAAC,IAAI;AAClB,IAAI;AACJ,MAAM,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS;AACpC,UAAU,OAAO,EAAE,IAAI,IAAI,EAAE;AAC7B,UAAU,KAAK,CAAC,IAAI;AACpB,MAAM,YAAY,EAAE,KAAK,CAAC,YAAY,KAAK,SAAS;AACpD,UAAU,OAAO,EAAE,YAAY,IAAI,CAAC;AACpC,UAAU,KAAK,CAAC,YAAY;AAC5B,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,cAAY,EAAE,KAAK,EAAE,QAAQ,EAAE;AACxC;AACA,EAAE,OAAO,CAAC,QAAQ,sDAAsD;AACxE,IAAI,KAAK,EAAE,YAAY;AACvB,IAAI,OAAO,EAAE;AACb,MAAM,MAAM,EAAE,KAAK;AACnB,KAAK;AACL,IAAI,GAAG,EAAE;AACT;AACA;AACA;AACA;AACA,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE;AAChB;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC;AAChC,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,QAAQ;AACR,UAAU,CAAC,IAAI,CAAC,MAAM;AACtB,UAAU,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;AAC7E,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AACxC,QAAQ,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,kBAAkB;AAC1D,UAAU,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC;AACxD,YAAY,UAAU,EAAE,MAAM;AAC9B,YAAY,MAAM,CAAC,GAAG;AACtB,cAAc,MAAM,QAAQ;AAC5B,gBAAgB,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;AAC1C,eAAe,CAAC;AAChB,cAAc,gBAAgB,CAAC,UAAU,EAAE;AAC3C,gBAAgB,cAAc,EAAE,QAAQ,CAAC,KAAK;AAC9C,eAAe,CAAC,CAAC;AACjB,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC;AAC7B,aAAa;AACb;AACA,YAAY,QAAQ,EAAE;AACtB,cAAc,CAAC,KAAK,oDAAoD;AACxE,gBAAgB,eAAe;AAC/B,gBAAgB,CAAC,IAAI,CAAC;AACtB,gBAAgB,CAAC,UAAU,EAAE;AAC7B,kBAAkB,KAAK,EAAE,aAAa;AACtC,iBAAiB,EAAE;AACnB;AACA,6CAA6C,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE;AAClE,iBAAiB,CAAC;AAClB,eAAe,EAAE;AACjB,aAAa;AACb,WAAW,CAAC,CAAC;AACb,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,MAAM,CAAC,gBAAgB;AAC/B,UAAU,OAAO;AACjB;AACA,UAAU,kBAAkB;AAC5B;AACA,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxC;AACA,YAAY,MAAM,OAAO,CAAC,KAAK;AAC/B,0CAA0C,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;AAChE,cAAc,CAAC;AACf,WAAW;AACX,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,OAAO;AACP,KAAK;AACL,GAAG,GAAG;AACN,IAAI,QAAQ;AACZ,QAAQ,kBAAkB;AAC1B,QAAQ,kBAAkB;AAC1B,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,QAAQ,GAAG;AACjB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC;AAClB,EAAE,WAAW,EAAE,iBAAiB;AAChC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;AACrC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE;AAC5D,MAAM,IAAI,EAAE,GAAG,CAAC,IAAI;AACpB,MAAM,YAAY,EAAE,GAAG,CAAC,YAAY;AACpC,KAAK,CAAC,CAAC,CAAC;AACR,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE;AAC5E,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B;AACA,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACzD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB;AACA;AACA,IAAI,yDAAyD;AAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,MAAM,CAAC;AACb,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE;AAC9C,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS;AACzE,OAAO,EAAE;AACT,QAAQ,oBAAoB,EAAE,WAAW,IAAI,MAAM;AACnD,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,OAAO;AACf,OAAO,CAAC;AACR,MAAM,KAAK,CAAC,IAAI;AAChB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,kBAAkB;AAC1B,OAAO,CAAC;AACR,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,eAAe;AACvB,OAAO,CAAC;AACR,MAAM,KAAK,CAAC,IAAI;AAChB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,qBAAqB;AAC7B,OAAO,CAAC;AACR,MAAM,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC;AACvC,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB;AACzE,UAAU,CAAC,MAAM;AACjB,UAAU,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AACjC,UAAU,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC1C,UAAU,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY;AACtD,YAAY,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;AAClC,cAAc,aAAa;AAC3B,cAAc,CAAC,IAAI,CAAC;AACpB,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AACjD;AACA,2CAA2C,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE;AAChE,eAAe,CAAC;AAChB,aAAa,CAAC,CAAC,CAAC;AAChB,WAAW,CAAC,CAAC;AACb;AACA,UAAU,MAAM,CAAC,gBAAgB;AACjC,YAAY,OAAO;AACnB;AACA,YAAY,YAAY;AACxB;AACA,cAAc,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1C;AACA,cAAc,GAAG,CAAC,MAAM;AACxB,4CAA4C,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;AAClE,eAAe,CAAC;AAChB,aAAa;AACb,WAAW,CAAC;AACZ,UAAU,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC3C,UAAU,OAAO,GAAG,CAAC;AACrB,SAAS,GAAG;AACZ,UAAUA,cAAY,CAAC,KAAK,CAAC;AAC7B,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACrC,UAAU,CAAC,MAAM;AACjB,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACpD,UAAU,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE;AACrC,YAAY,GAAG,EAAE,MAAM;AACvB,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,GAAG,EAAE;AACjB,cAAc,UAAU,CAAC,GAAG;AAC5B,gBAAgB,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC5C,eAAe;AACf,aAAa;AACb,WAAW,CAAC,CAAC;AACb;AACA,UAAU,OAAO,CAAC,KAAK,EAAE;AACzB,YAAY,KAAK;AACjB,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,MAAM;AAC3B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,MAAM;AACpB,aAAa,CAAC;AACd,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChC,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,OAAO;AACrB,aAAa,CAAC;AACd,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,QAAQ;AAC7B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChC,kBAAkB,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;AACxC,kBAAkB,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,QAAQ;AACtB,aAAa,CAAC;AACd,WAAW,CAAC,CAAC;AACb,SAAS,GAAG;AACZ,UAAU,EAAE;AACZ,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACrC,UAAU,CAAC,MAAM;AACjB,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACpD,UAAU,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE;AACrC,YAAY,GAAG,EAAE,MAAM;AACvB,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,GAAG,EAAE;AACjB,cAAc,UAAU,CAAC,GAAG;AAC5B,gBAAgB,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC5C,eAAe;AACf,aAAa;AACb,WAAW,CAAC,CAAC;AACb,UAAU,OAAO,CAAC,KAAK,EAAE;AACzB,YAAY,KAAK;AACjB,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,MAAM;AAC3B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,MAAM;AACpB,aAAa,CAAC;AACd,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChC,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,OAAO;AACrB,aAAa,CAAC;AACd,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,QAAQ;AAC7B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChC,kBAAkB,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;AACxC,kBAAkB,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,QAAQ;AACtB,aAAa,CAAC;AACd,WAAW,CAAC,CAAC;AACb,SAAS,GAAG;AACZ,UAAU,EAAE;AACZ,MAAM,KAAK,CAAC,IAAI,KAAK,iBAAiB;AACtC,UAAU,CAAC,MAAM;AACjB,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACpD,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE;AACvC,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,GAAG,EAAE,MAAM;AACvB,YAAY,GAAG,EAAE;AACjB,cAAc,IAAI,CAAC,GAAG;AACtB,gBAAgB,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC5C,eAAe;AACf,aAAa;AACb,WAAW,CAAC,CAAC;AACb,UAAU,OAAO,MAAM,CAAC;AACxB,SAAS,GAAG;AACZ,UAAU,EAAE;AACZ,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACrC;AACA,UAAU,CAAC,KAAK,sDAAsD;AACtE,UAAU,KAAK,EAAE,WAAW;AAC5B,UAAU,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC;AACzC,UAAU,GAAG,EAAE;AACf;AACA,YAAY,IAAI,CAAC,GAAG;AACpB,cAAc,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,aAAa;AACb,WAAW;AACX,SAAS,EAAE;AACX,UAAU,EAAE;AACZ,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE;AAC7D;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,MAAM;AACxD,KAAK,EAAE;AACP,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,KAAK,EAAE,cAAc;AAC7B,QAAQ,OAAO,EAAE;AACjB;AACA;AACA;AACA;AACA,UAAU,SAAS,CAAC,CAAC,IAAI,EAAE;AAC3B;AACA,YAAY,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC1C,4CAA4C,CAAC,EAAE;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,WAAW;AACzB,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;AACjC;AACA,4CAA4C,CAAC,EAAE;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,OAAO;AACrB,aAAa,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC;AACA,4CAA4C,CAAC,EAAE;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,cAAc;AAC5B,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;AACjC;AACA,4CAA4C,CAAC,EAAE;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,aAAa,EAAE,KAAK,GAAG,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;AAC5D,gBAAgB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;AAChD,gBAAgB,EAAE,CAAC;AACnB;AACA,wEAAwE,CAAC,EAAE;AAC3E,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,aAAa,EAAE,MAAM,GAAG,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;AAC7D,qCAAqC,IAAI;AACzC,gBAAgB,SAAS,CAAC;AAC1B,WAAW;AACX,SAAS;AACT,OAAO,EAAE;AACT,QAAQ,CAAC,QAAQ,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACzC,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,OAAO;AACjB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;AACtD,YAAY,GAAG,EAAE;AACjB,cAAc,MAAM,CAAC,GAAG;AACxB,gBAAgB,MAAM,UAAU;AAChC;AACA;AACA;AACA,oBAAoB,EAAE;AACtB;AACA,uBAAuB,IAAI,CAAC,aAAa,EAAE,aAAa;AACxD,sBAAsB,mBAAmB;AACzC,qBAAqB;AACrB,mBAAmB,CAAC;AACpB,gBAAgB,gBAAgB,CAAC,UAAU,EAAE;AAC7C,kBAAkB,IAAI,kCAAkC,CAAC,IAAI,EAAE,KAAK;AACpE,iBAAiB,CAAC,CAAC;AACnB,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,kBAAkB;AAC5B,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;AACpE,YAAY,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,eAAe;AACzB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;AACzD,YAAY,GAAG,EAAE;AACjB,cAAc,MAAM,CAAC,GAAG;AACxB,gBAAgB,MAAM,UAAU;AAChC;AACA;AACA;AACA,oBAAoB,EAAE;AACtB;AACA,uBAAuB,IAAI,CAAC,aAAa,EAAE,aAAa;AACxD,sBAAsB,mBAAmB;AACzC,qBAAqB;AACrB,mBAAmB,CAAC;AACpB;AACA,gBAAgB,MAAM,cAAc;AACpC,kDAAkD,CAAC,IAAI,EAAE,KAAK,CAAC;AAC/D,gBAAgB,gBAAgB,CAAC,UAAU,EAAE;AAC7C,kBAAkB,IAAI,EAAE,cAAc;AACtC,iBAAiB,CAAC,CAAC;AACnB,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,qBAAqB;AAC/B,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc;AACzD,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,KAAK,CAAC,YAAY;AACrC,gBAAgB,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC;AACjD,gBAAgB,SAAS;AACzB,YAAY,GAAG,EAAE;AACjB,cAAc,MAAM,CAAC,GAAG;AACxB,gBAAgB,MAAM,UAAU;AAChC;AACA;AACA;AACA,oBAAoB,EAAE;AACtB;AACA,uBAAuB,IAAI,CAAC,aAAa,EAAE,aAAa;AACxD,sBAAsB,mBAAmB;AACzC,qBAAqB;AACrB,mBAAmB,CAAC;AACpB;AACA,gBAAgB,MAAM,eAAe;AACrC,kDAAkD,CAAC,IAAI,EAAE,KAAK,CAAC;AAC/D,gBAAgB,gBAAgB,CAAC,UAAU,EAAE;AAC7C,kBAAkB,YAAY,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE;AACnE,iBAAiB,CAAC,CAAC;AACnB,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQA,cAAY,CAAC,KAAK,EAAE,IAAI,CAAC;AACjC,QAAQ,CAAC,QAAQ,EAAE;AACnB,UAAU,KAAK,EAAE,WAAW;AAC5B,UAAU,GAAG,EAAE;AACf,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE;AACtB,cAAc,CAAC,CAAC,cAAc,EAAE,CAAC;AACjC;AACA;AACA,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;AACjD,gBAAgB,IAAI,EAAE,EAAE;AACxB,gBAAgB,IAAI,EAAE,EAAE;AACxB,gBAAgB,IAAI,EAAE,EAAE;AACxB,gBAAgB,YAAY,EAAE,EAAE;AAChC,eAAe,CAAC,CAAC;AACjB,aAAa;AACb,WAAW;AACX,SAAS,EAAE;AACX,UAAU,YAAY;AACtB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,CAAC,QAAQ,EAAE,CAAC,4BAA4B,CAAC,CAAC;AAClD,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,OAAO;AACjB;AACA,UAAU,CAAC,OAAO,sDAAsD;AACxE,YAAY,GAAG,EAAE;AACjB;AACA;AACA;AACA,cAAc,MAAM,CAAC,GAAG;AACxB;AACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACjC,kBAAkB,OAAO;AACzB,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C;AACA,gBAAgB,MAAM,gBAAgB;AACtC;AACA;AACA;AACA;AACA,kDAAkD;AAClD,oBAAoB,IAAI,CAAC,aAAa,EAAE,aAAa;AACrD,qBAAqB,sBAAsB,CAAC,CAAC;AAC7C,gBAAgB,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACjD,eAAe;AACf,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM;AACvD,WAAW,EAAE;AACb,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,CAAC,QAAQ,EAAE;AACnB,UAAU,+BAA+B;AACzC,SAAS,CAAC;AACV,QAAQ,CAAC,MAAM;AACf,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE;AACvC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,GAAG,EAAE;AACjB,cAAc,MAAM,MAAM,CAAC,GAAG;AAC9B,gBAAgB,MAAM,cAAc;AACpC,kBAAkB,IAAI,CAAC,kBAAkB,EAAE,kBAAkB;AAC7D,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,KAAK;AAC3B;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;AACpD,gBAAgB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACpC;AACA,gBAAgB,MAAM,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB,cAAc;AAClC,oBAAoB,oBAAoB;AACxC,mBAAmB,CAAC,CAAC;AACrB;AACA;AACA,gBAAgB,MAAM,YAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG,CAAC,OAAO,EAAE;AACjC,sBAAsB,KAAK,EAAE,cAAc;AAC3C,qBAAqB,CAAC;AACtB,mBAAmB,CAAC;AACpB;AACA,gBAAgB,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtC,kBAAkB,MAAM,MAAM,8BAA8B;AAC5D,oBAAoB,QAAQ,CAAC,OAAO;AACpC,oBAAoB,SAAS,EAAE,CAAC;AAChC,kBAAkB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAC5C,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC;AACjC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5C,iBAAiB;AACjB;AACA,gBAAgB,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACnD;AACA,gBAAgB,MAAM,YAAY;AAClC,kBAAkB,EAAE;AACpB,oBAAoB,MAAM,CAAC,kBAAkB;AAC7C,qBAAqB,eAAe,CAAC;AACrC,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,WAAW;AACjC,kBAAkB,EAAE;AACpB,oBAAoB,MAAM,CAAC,kBAAkB;AAC7C,qBAAqB,cAAc,CAAC;AACpC,iBAAiB,CAAC;AAClB;AACA,8CAA8C,CAAC,EAAE;AACjD;AACA,mBAAmB,MAAM,CAAC,kBAAkB;AAC5C,oBAAoB,kBAAkB;AACtC,kBAAkB,mBAAmB;AACrC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;AACjC;AACA,gBAAgB,MAAM,UAAU;AAChC,kBAAkB,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;AACzD,iBAAiB,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,WAAW,CAAC;AAChC,gBAAgB,IAAI,sBAAsB,CAAC;AAC3C;AACA,gBAAgB,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;AAClD,gBAAgB,QAAQ,MAAM,CAAC,KAAK;AACpC,gBAAgB,KAAK,iBAAiB;AACtC,kBAAkB,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3D,kBAAkB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9C,kBAAkB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9C,kBAAkB,WAAW,CAAC,WAAW,GAAG,oBAAoB,CAAC;AACjE,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,OAAO;AAC5B,kBAAkB,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,kBAAkB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9C,kBAAkB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9C,kBAAkB,WAAW,CAAC,WAAW,GAAG,cAAc,CAAC;AAC3D,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,OAAO;AAC5B,kBAAkB,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,kBAAkB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7C,kBAAkB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7C,kBAAkB,WAAW,CAAC,WAAW,GAAG,cAAc,CAAC;AAC3D,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,aAAa;AAClC,kBAAkB,sBAAsB,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzD;AACA,gBAAgB,KAAK,qBAAqB;AAC1C,kBAAkB,IAAI,CAAC,sBAAsB,EAAE;AAC/C,oBAAoB,sBAAsB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACxE,mBAAmB;AACnB,kBAAkB,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;AACnD,kBAAkB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7C,kBAAkB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7C,kBAAkB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3C,kBAAkB,MAAM;AACxB,gBAAgB;AAChB,kBAAkB,OAAO;AACzB,iBAAiB;AACjB;AACA,gBAAgB,IAAI,WAAW,EAAE;AACjC,kBAAkB,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;AACtE;AACA,kBAAkB,IAAI,CAAC,WAAW,EAAE;AACpC,oBAAoB,MAAM,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AACpE,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB;AACA,kBAAkB,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;AAChD,kBAAkB,YAAY,CAAC,SAAS,GAAG,WAAW,CAAC;AACvD;AACA;AACA,kBAAkB,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;AACrD;AACA,kBAAkB,IAAI,WAAW,CAAC,KAAK,EAAE;AACzC,oBAAoB,MAAM,MAAM;AAChC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB,cAAc;AACtC,wBAAwB,sBAAsB;AAC9C,uBAAuB,CAAC,CAAC;AACzB;AACA,oBAAoB,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM;AACnE,sBAAsB,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM;AACzD,wBAAwB,YAAY,CAAC,UAAU;AAC/C,uBAAuB,CAAC,CAAC;AACzB,sBAAsB,MAAM,CAAC,YAAY;AACzC,wBAAwB,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC;AAClE,uBAAuB,CAAC;AACxB,qBAAqB,CAAC,CAAC;AACvB,mBAAmB;AACnB;AACA,kBAAkB,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM;AACxE,oBAAoB,YAAY,CAAC,IAAI,EAAE,CAAC;AACxC,oBAAoB,IAAI,WAAW,EAAE,KAAK,EAAE;AAC5C,sBAAsB,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;AAChD,sBAAsB,SAAS;AAC/B,wBAAwB,WAAW;AACnC,wBAAwB,UAAU;AAClC,uBAAuB,CAAC;AACxB,qBAAqB,MAAM;AAC3B,sBAAsB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/C,qBAAqB;AACrB,mBAAmB,CAAC,CAAC;AACrB,iBAAiB,MAAM,IAAI,sBAAsB,EAAE;AACnD,kBAAkB,MAAM,WAAW,GAAG,MAAM,kBAAkB;AAC9D,oBAAoB,sBAAsB;AAC1C,mBAAmB,CAAC;AACpB;AACA,kBAAkB,IAAI,CAAC,WAAW,EAAE;AACpC,oBAAoB,MAAM,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AACpE,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB;AACA,kBAAkB,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;AAChD,kBAAkB,YAAY,CAAC,SAAS,GAAG,WAAW,CAAC;AACvD;AACA;AACA,kBAAkB,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;AACrD,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW,EAAE;AACb,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;AAC/D,WAAW,CAAC,CAAC;AACb;AACA,UAAU,CAAC,YAAY;AACvB,YAAY,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;AAC5E,YAAY,IAAI,aAAa,GAAG,KAAK,CAAC;AACtC,YAAY,IAAI,aAAa,GAAG,KAAK,CAAC;AACtC,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACxC,cAAc,QAAQ,MAAM,CAAC,IAAI;AACjC,cAAc,KAAK,YAAY;AAC/B,gBAAgB,aAAa,GAAG,IAAI,CAAC;AACrC,gBAAgB,MAAM;AACtB,cAAc,KAAK,YAAY;AAC/B,gBAAgB,aAAa,GAAG,IAAI,CAAC;AACrC,gBAAgB,MAAM;AAGtB,eAAe;AACf,aAAa,CAAC,CAAC;AACf;AACA,YAAY,IAAI,aAAa,EAAE;AAC/B,cAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;AAC3E,aAAa;AACb,YAAY,IAAI,aAAa,EAAE;AAC/B,cAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7E,aAAa;AACb,YAAY,IAAI,aAAa,IAAI,aAAa,EAAE;AAChD,cAAc,GAAG;AACjB,gBAAgB,QAAQ;AACxB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC;AAC1C,gBAAgB,CAAC,6BAA6B,CAAC;AAC/C,gBAAgB,MAAM;AACtB,eAAe,CAAC;AAChB,aAAa;AACb;AACA;AACA,YAAY,GAAG,CAAC,QAAQ,EAAE;AAC1B,cAAc,KAAK,EAAE,aAAa;AAClC,aAAa,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;AACzC,YAAY,GAAG,CAAC,QAAQ,EAAE;AAC1B,cAAc,KAAK,EAAE,qBAAqB;AAC1C,aAAa,EAAE,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC,CAAC;AACxD,WAAW,GAAG,CAAC;AACf;AACA,UAAU,OAAO,MAAM,CAAC;AACxB,SAAS,GAAG;AACZ,QAAQ,GAAG;AACX,QAAQ,CAAC,KAAK,EAAE;AAChB;AACA,UAAU,CAAC,QAAQ,sDAAsD;AACzE,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,GAAG,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE;AACxB,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC,gBAAgB,MAAM,YAAY;AAClC;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,qBAAqB,IAAI,CAAC,aAAa,EAAE,kBAAkB;AAC3D,oBAAoB,oBAAoB;AACxC,mBAAmB,CAAC,CAAC;AACrB;AACA;AACA,gBAAgB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;AAC7C,kBAAkB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC7D,kBAAkB,OAAO;AACzB,iBAAiB;AACjB;AACA;AACA,gBAAgB,MAAM,cAAc;AACpC,kBAAkB,IAAI,CAAC,aAAa,EAAE,kBAAkB;AACxD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,KAAK;AAC3B;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;AACpD,gBAAgB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACpC;AACA;AACA;AACA;AACA,gBAAgB,MAAM,QAAQ,GAAG,YAAY,CAAC;AAC9C,gBAAgB,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE;AAC9E,kBAAkB,QAAQ;AAC1B,iBAAiB,CAAC,CAAC;AACnB;AACA;AACA,gBAAgB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChC,gBAAgB,aAAa,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK;AACvE,kBAAkB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,iBAAiB,CAAC,CAAC;AACnB;AACA,gBAAgB,IAAI;AACpB,kBAAkB,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,iBAAiB,CAAC,iCAAiC;AACnD,kBAAkB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACjE,kBAAkB,OAAO;AACzB,iBAAiB;AACjB,gBAAgB,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;AAC7D,kBAAkB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AAChD,oBAAoB,IAAI,EAAE,QAAQ;AAClC,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACxD;AACA,kBAAkB,MAAM,aAAa,oCAAoC,EAAE;AAC3E;AACA,qBAAqB,IAAI,CAAC,aAAa,EAAE,kBAAkB;AAC3D,oBAAoB,qBAAqB;AACzC;AACA,mBAAmB,CAAC,CAAC;AACrB,gDAAgD;AAChD,oBAAoB,aAAa,CAAC,aAAa;AAC/C,oBAAoB,MAAM,GAAG,KAAK,CAAC;AACnC;AACA,kBAAkB,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;AAC1C;AACA,kBAAkB,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM;AACrE,oBAAoB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7C,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,MAAM,IAAI,GAAG,IAAI,IAAI;AACvC,oBAAoB,CAAC,IAAI,CAAC;AAC1B,oBAAoB,kBAAkB;AACtC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC;AACpC,mBAAmB,CAAC;AACpB,kBAAkB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5C;AACA,kBAAkB,MAAM,IAAI;AAC5B,qBAAqB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA,sBAAsB,CAAC,EAAE;AACzB,oBAAoB,IAAI,EAAE,uBAAuB;AACjD,mBAAmB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrC;AACA,kBAAkB,MAAM,GAAG,EAAE,CAAC;AAC9B,iBAAiB,CAAC,CAAC;AACnB;AACA,gBAAgB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AACpD;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW,GAAG;AACd,YAAY,cAAc;AAC1B,WAAW,CAAC;AACZ,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,eAAe;AAClC,YAAY,GAAG,EAAE;AACjB,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE;AACxB,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC;AACA;AACA,oBAAoB;AACpB,kBAAkB,IAAI,CAAC,sBAAsB;AAC7C,kBAAkB,cAAc,CAAC,IAAI,EAAE,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW,EAAE;AACb,YAAY,gBAAgB;AAC5B,WAAW,CAAC;AACZ,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,cAAc;AACjC,YAAY,MAAM,EAAE,IAAI;AACxB,WAAW,EAAE;AACb,YAAY,GAAG,EAAE;AACjB,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE;AACxB,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC;AACA,gBAAgB,MAAM,cAAc;AACpC,mBAAmB,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;AAC3D;AACA;AACA;AACA,gBAAgB,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;AACrE;AACA,gBAAgB,MAAM,MAAM;AAC5B;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAC;AAC/D;AACA,gBAAgB,MAAM,OAAO;AAC7B,kBAAkB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACzC,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,YAAY;AAClC;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAC7D,gBAAgB,OAAO,CAAC,SAAS;AACjC,kBAAkB,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM;AACjE,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,KAAK;AAC3B;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;AACpD;AACA,gBAAgB,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AACxC;AACA,kBAAkB,IAAI,CAAC,IAAI,EAAE;AAC7B,oBAAoB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACrE,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB,kBAAkB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE;AAC9C,oBAAoB,KAAK,EAAE,OAAO;AAClC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACxD;AACA,kBAAkB,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;AAC1D;AACA,oBAAoB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7C,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,MAAM,IAAI,GAAG,IAAI,IAAI;AACvC,oBAAoB,CAAC,IAAI,CAAC;AAC1B,oBAAoB,iBAAiB;AACrC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AACrC,mBAAmB,CAAC;AACpB,kBAAkB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5C;AACA,kBAAkB,MAAM,IAAI;AAC5B,qBAAqB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA,sBAAsB,CAAC,EAAE;AACzB,oBAAoB,IAAI,EAAE,uBAAuB;AACjD,mBAAmB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrC;AACA,kBAAkB,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;AACrC,kBAAkB,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC9C,iBAAiB,CAAC,CAAC;AACnB,eAAe;AACf,aAAa;AACb,WAAW,EAAE;AACb,YAAY,+BAA+B;AAC3C,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;AACzD,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACzD,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAC5C,UAAU,CAAC,KAAK,EAAE;AAClB,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AAC9D,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrC,WAAW,CAAC;AACZ,UAAU;AACV,YAAY,KAAK;AACjB,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC;AACpC,8DAA8D;AAC9D,cAAc,GAAG,CAAC,MAAM;AACxB,gBAAgB,MAAM,aAAa,GAAG,GAAG;AACzC,kBAAkB,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC;AACnD,iBAAiB,CAAC;AAClB,gBAAgB,OAAO;AACvB,kBAAkB,aAAa;AAC/B,kBAAkB,CAAC,IAAI,CAAC;AACxB,kBAAkB,GAAG,CAAC,QAAQ,EAAE;AAChC,oBAAoB,KAAK,EAAE,MAAM;AACjC,oBAAoB,GAAG,EAAE;AACzB,sBAAsB,KAAK,CAAC,CAAC,CAAC,EAAE;AAChC,wBAAwB,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3C,wBAAwB,aAAa,CAAC,IAAI,EAAE,CAAC;AAC7C,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB,EAAE;AACrB,oBAAoB,MAAM;AAC1B,mBAAmB,CAAC;AACpB,kBAAkB,GAAG,CAAC,QAAQ,EAAE;AAChC,oBAAoB,KAAK,EAAE,OAAO;AAClC,oBAAoB,GAAG,EAAE;AACzB,sBAAsB,KAAK,CAAC,CAAC,CAAC,EAAE;AAChC,wBAAwB,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3C,wBAAwB,aAAa,CAAC,KAAK,EAAE,CAAC;AAC9C,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB,EAAE;AACrB,oBAAoB,OAAO;AAC3B,mBAAmB,CAAC;AACpB,kBAAkB,GAAG,CAAC,QAAQ,EAAE;AAChC,oBAAoB,KAAK,EAAE,QAAQ;AACnC,oBAAoB,GAAG,EAAE;AACzB,sBAAsB,KAAK,CAAC,CAAC,CAAC,EAAE;AAChC,wBAAwB,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3C,wBAAwB,aAAa,CAAC,KAAK,EAAE,CAAC;AAC9C,wBAAwB,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;AACtD,wBAAwB,aAAa,CAAC,IAAI,EAAE,CAAC;AAC7C,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB,EAAE;AACrB,oBAAoB,QAAQ;AAC5B,mBAAmB,CAAC;AACpB,iBAAiB,CAAC;AAClB,eAAe,GAAG;AAClB,aAAa;AACb,WAAW;AACX,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACxlCD;AACA;AACA;AACA,MAAM,YAAY,GAAG;AACrB,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC;AACtB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1B,EAAE,gBAAgB,EAAE,cAAc;AAClC,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;AACzC,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE;AACpB,IAAI,oDAAoD;AACxD,MAAM,SAAS,CAAC,OAAO;AACvB,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,UAAU;AAC/B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;AACrB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACvC,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,UAAU;AAC/B,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACjCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE;AAC9C,EAAE,MAAM,OAAO;AACf,IAAI,UAAU,CAAC,MAAM;AACrB,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI;AACvB,IAAI;AACJ,MAAM,KAAK,CAAC,cAAc,KAAK,SAAS;AACxC,UAAU,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;AACnD,UAAU,OAAO;AACjB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;AACjC,YAAY,OAAO;AACnB,YAAY,EAAE;AACd,UAAU,KAAK,CAAC,cAAc;AAC9B,KAAK;AACL,IAAI;AACJ,MAAM,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS;AACpC,UAAU,OAAO,EAAE,IAAI,IAAI,EAAE;AAC7B,UAAU,KAAK,CAAC,IAAI;AACpB,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE;AACxC;AACA,EAAE,OAAO,CAAC,QAAQ,sDAAsD;AACxE,IAAI,KAAK,EAAE,YAAY;AACvB,IAAI,OAAO,EAAE;AACb,MAAM,MAAM,EAAE,KAAK;AACnB,KAAK;AACL,IAAI,GAAG,EAAE;AACT;AACA;AACA;AACA;AACA,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE;AAChB;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC;AAChC,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,QAAQ;AACR,UAAU,CAAC,IAAI,CAAC,MAAM;AACtB,UAAU,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;AAC7E,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AACxC,QAAQ,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,kBAAkB;AAC1D,UAAU,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC;AACxD,YAAY,UAAU,EAAE,MAAM;AAC9B,YAAY,MAAM,CAAC,GAAG;AACtB,cAAc,MAAM,QAAQ;AAC5B,gBAAgB,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;AAC1C,eAAe,CAAC;AAChB,cAAc,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,EAAE;AACxD,gBAAgB,cAAc,EAAE,QAAQ,CAAC,KAAK;AAC9C,eAAe,CAAC,CAAC;AACjB;AACA;AACA,cAAc,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACzD,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC;AAC7B,aAAa;AACb;AACA,YAAY,QAAQ,EAAE;AACtB,cAAc,CAAC,KAAK,oDAAoD;AACxE,gBAAgB,eAAe;AAC/B,gBAAgB,CAAC,IAAI,CAAC;AACtB,gBAAgB,CAAC,UAAU,EAAE;AAC7B,kBAAkB,KAAK,EAAE,aAAa;AACtC,iBAAiB,EAAE;AACnB;AACA,6CAA6C,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE;AAClE,iBAAiB,CAAC;AAClB,eAAe,EAAE;AACjB,aAAa;AACb,WAAW,CAAC,CAAC;AACb,SAAS,CAAC,CAAC;AACX;AACA,QAAQ,MAAM,CAAC,gBAAgB;AAC/B,UAAU,OAAO;AACjB;AACA,UAAU,kBAAkB;AAC5B;AACA,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxC;AACA,YAAY,MAAM,OAAO,CAAC,KAAK;AAC/B,0CAA0C,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;AAChE,cAAc,CAAC;AACf,WAAW;AACX,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,OAAO;AACP,KAAK;AACL,GAAG,GAAG;AACN,IAAI,QAAQ;AACZ,QAAQ,kBAAkB;AAC1B,QAAQ,kBAAkB;AAC1B,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,QAAQ,GAAG;AACjB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC;AAClB,EAAE,WAAW,EAAE,iBAAiB;AAChC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;AACrC,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;AAClD,MAAM,IAAI,EAAE,GAAG,CAAC,IAAI;AACpB,KAAK,CAAC,CAAC,CAAC;AACR,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE;AAC5E,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B;AACA,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACzD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB;AACA;AACA,IAAI,yDAAyD;AAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,MAAM,CAAC;AACb,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE;AAC9C,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS;AACzE,OAAO,EAAE;AACT,QAAQ,oBAAoB,EAAE,WAAW,IAAI,MAAM;AACnD,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,kBAAkB;AAC1B,OAAO,CAAC;AACR,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,eAAe;AACvB,OAAO,CAAC;AACR,MAAM,KAAK,CAAC,IAAI;AAChB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB;AACzE,UAAU,CAAC,MAAM;AACjB,UAAU,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AACjC,UAAU,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC1C,UAAU,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY;AACtD,YAAY,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;AAClC,cAAc,aAAa;AAC3B,cAAc,CAAC,IAAI,CAAC;AACpB,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AACjD;AACA,2CAA2C,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE;AAChE,eAAe,CAAC;AAChB,aAAa,CAAC,CAAC,CAAC;AAChB,WAAW,CAAC,CAAC;AACb;AACA,UAAU,MAAM,CAAC,gBAAgB;AACjC,YAAY,OAAO;AACnB;AACA,YAAY,YAAY;AACxB;AACA,cAAc,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1C;AACA,cAAc,GAAG,CAAC,MAAM;AACxB,4CAA4C,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;AAClE,eAAe,CAAC;AAChB,aAAa;AACb,WAAW,CAAC;AACZ,UAAU,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC3C,UAAU,OAAO,GAAG,CAAC;AACrB,SAAS,GAAG;AACZ,UAAU,YAAY,CAAC,KAAK,CAAC;AAC7B,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACrC,UAAU,CAAC,MAAM;AACjB,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACpD,UAAU,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE;AACrC,YAAY,GAAG,EAAE,MAAM;AACvB,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,GAAG,EAAE;AACjB,cAAc,UAAU,CAAC,GAAG;AAC5B,gBAAgB,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC5C,eAAe;AACf,aAAa;AACb,WAAW,CAAC,CAAC;AACb;AACA,UAAU,OAAO,CAAC,KAAK,EAAE;AACzB,YAAY,KAAK;AACjB,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,MAAM;AAC3B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,MAAM;AACpB,aAAa,CAAC;AACd,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChC,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,OAAO;AACrB,aAAa,CAAC;AACd,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,QAAQ;AAC7B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChC,kBAAkB,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;AACxC,kBAAkB,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,QAAQ;AACtB,aAAa,CAAC;AACd,WAAW,CAAC,CAAC;AACb,SAAS,GAAG;AACZ,UAAU,EAAE;AACZ,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACrC,UAAU,CAAC,MAAM;AACjB,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACpD,UAAU,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE;AACrC,YAAY,GAAG,EAAE,MAAM;AACvB,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,GAAG,EAAE;AACjB,cAAc,UAAU,CAAC,GAAG;AAC5B,gBAAgB,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC5C,eAAe;AACf,aAAa;AACb,WAAW,CAAC,CAAC;AACb,UAAU,OAAO,CAAC,KAAK,EAAE;AACzB,YAAY,KAAK;AACjB,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,MAAM;AAC3B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,MAAM;AACpB,aAAa,CAAC;AACd,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,OAAO;AAC5B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChC,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,OAAO;AACrB,aAAa,CAAC;AACd,YAAY,CAAC,QAAQ,EAAE;AACvB,cAAc,KAAK,EAAE,QAAQ;AAC7B,cAAc,GAAG,EAAE;AACnB,gBAAgB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,kBAAkB,CAAC,CAAC,cAAc,EAAE,CAAC;AACrC,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChC,kBAAkB,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;AACxC,kBAAkB,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/B,iBAAiB;AACjB,eAAe;AACf,aAAa,EAAE;AACf,cAAc,QAAQ;AACtB,aAAa,CAAC;AACd,WAAW,CAAC,CAAC;AACb,SAAS,GAAG;AACZ,UAAU,EAAE;AACZ,MAAM,KAAK,CAAC,IAAI,KAAK,iBAAiB;AACtC,UAAU,CAAC,MAAM;AACjB,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACpD,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE;AACvC,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,GAAG,EAAE,MAAM;AACvB,YAAY,GAAG,EAAE;AACjB,cAAc,IAAI,CAAC,GAAG;AACtB,gBAAgB,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC5C,eAAe;AACf,aAAa;AACb,WAAW,CAAC,CAAC;AACb,UAAU,OAAO,MAAM,CAAC;AACxB,SAAS,GAAG;AACZ,UAAU,EAAE;AACZ,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACrC;AACA,UAAU,CAAC,KAAK,sDAAsD;AACtE,UAAU,KAAK,EAAE,WAAW;AAC5B,UAAU,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC;AACzC,UAAU,GAAG,EAAE;AACf;AACA,YAAY,IAAI,CAAC,GAAG;AACpB,cAAc,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,aAAa;AACb,WAAW;AACX,SAAS,EAAE;AACX,UAAU,EAAE;AACZ,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE;AAC7D;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,MAAM;AACxD,KAAK,EAAE;AACP,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,KAAK,EAAE,cAAc;AAC7B,QAAQ,OAAO,EAAE;AACjB;AACA;AACA;AACA;AACA,UAAU,SAAS,CAAC,CAAC,IAAI,EAAE;AAC3B;AACA,YAAY,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC1C;AACA,4CAA4C,CAAC,EAAE;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,OAAO;AACrB,aAAa,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC;AACA,4CAA4C,CAAC,EAAE;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,cAAc;AAC5B,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;AACjC;AACA,wEAAwE,CAAC,EAAE;AAC3E,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;AACtD,cAAc,IAAI;AAClB,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;AACrC,qCAAqC,IAAI;AACzC;AACA,gBAAgB,SAAS,CAAC;AAC1B,WAAW;AACX,SAAS;AACT,OAAO,EAAE;AACT,QAAQ,CAAC,QAAQ,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACzC,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,kBAAkB;AAC5B,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;AACpE,YAAY,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,eAAe;AACzB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;AACzD,YAAY,GAAG,EAAE;AACjB,cAAc,MAAM,CAAC,GAAG;AACxB,gBAAgB,MAAM,UAAU;AAChC;AACA;AACA;AACA,oBAAoB,EAAE;AACtB;AACA,uBAAuB,IAAI,CAAC,aAAa,EAAE,aAAa;AACxD,sBAAsB,mBAAmB;AACzC,qBAAqB;AACrB,mBAAmB,CAAC;AACpB;AACA,gBAAgB,MAAM,cAAc;AACpC,kDAAkD,CAAC,IAAI,EAAE,KAAK,CAAC;AAC/D,gBAAgB,gBAAgB,CAAC,UAAU,EAAE;AAC7C,kBAAkB,IAAI,EAAE,cAAc;AACtC,iBAAiB,CAAC,CAAC;AACnB,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,IAAI,CAAC;AACd,QAAQ,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;AACjC,QAAQ,CAAC,QAAQ,EAAE;AACnB,UAAU,KAAK,EAAE,WAAW;AAC5B,UAAU,GAAG,EAAE;AACf,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE;AACtB,cAAc,CAAC,CAAC,cAAc,EAAE,CAAC;AACjC;AACA;AACA,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;AACjD,gBAAgB,IAAI,EAAE,EAAE;AACxB,gBAAgB,IAAI,EAAE,EAAE;AACxB,eAAe,CAAC,CAAC;AACjB,aAAa;AACb,WAAW;AACX,SAAS,EAAE;AACX,UAAU,YAAY;AACtB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,CAAC,QAAQ,EAAE,CAAC,4BAA4B,CAAC,CAAC;AAClD,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,OAAO;AACjB;AACA,UAAU,CAAC,OAAO,sDAAsD;AACxE,YAAY,GAAG,EAAE;AACjB;AACA;AACA;AACA,cAAc,MAAM,CAAC,GAAG;AACxB;AACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACjC,kBAAkB,OAAO;AACzB,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C;AACA,gBAAgB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9C,kBAAkB,IAAI,EAAE,IAAI,CAAC,IAAI;AACjC,iBAAiB,CAAC,CAAC;AACnB;AACA,gBAAgB,MAAM,gBAAgB;AACtC;AACA;AACA;AACA;AACA,kDAAkD;AAClD,oBAAoB,IAAI,CAAC,aAAa,EAAE,aAAa;AACrD,qBAAqB,sBAAsB,CAAC,CAAC;AAC7C,gBAAgB,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACjD,eAAe;AACf,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM;AACvD,WAAW,EAAE;AACb,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,CAAC,QAAQ,EAAE;AACnB,UAAU,+BAA+B;AACzC,SAAS,CAAC;AACV,QAAQ,CAAC,MAAM;AACf,UAAU,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE;AACvC,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,GAAG,EAAE;AACjB,cAAc,MAAM,MAAM,CAAC,GAAG;AAC9B,gBAAgB,MAAM,cAAc;AACpC,kBAAkB,IAAI,CAAC,kBAAkB,EAAE,kBAAkB;AAC7D,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,KAAK;AAC3B;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;AACpD,gBAAgB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACpC;AACA,gBAAgB,MAAM,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB,cAAc;AAClC,oBAAoB,oBAAoB;AACxC,mBAAmB,CAAC,CAAC;AACrB;AACA;AACA,gBAAgB,MAAM,YAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG,CAAC,OAAO,EAAE;AACjC,sBAAsB,KAAK,EAAE,cAAc;AAC3C,qBAAqB,CAAC;AACtB,mBAAmB,CAAC;AACpB;AACA,gBAAgB,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtC,kBAAkB,MAAM,MAAM,8BAA8B;AAC5D,oBAAoB,QAAQ,CAAC,OAAO;AACpC,oBAAoB,SAAS,EAAE,CAAC;AAChC,kBAAkB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAC5C,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC;AACjC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5C,iBAAiB;AACjB;AACA,gBAAgB,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACnD;AACA,gBAAgB,MAAM,YAAY;AAClC,kBAAkB,EAAE;AACpB,oBAAoB,MAAM,CAAC,kBAAkB;AAC7C,qBAAqB,eAAe,CAAC;AACrC,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,WAAW;AACjC,kBAAkB,EAAE;AACpB,oBAAoB,MAAM,CAAC,kBAAkB;AAC7C,qBAAqB,cAAc,CAAC;AACpC,iBAAiB,CAAC;AAClB;AACA,8CAA8C,CAAC,EAAE;AACjD;AACA,mBAAmB,MAAM,CAAC,kBAAkB;AAC5C,oBAAoB,kBAAkB;AACtC,kBAAkB,mBAAmB;AACrC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;AACjC;AACA,gBAAgB,MAAM,UAAU;AAChC,kBAAkB,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;AACzD,iBAAiB,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,WAAW,CAAC;AAChC,gBAAgB,IAAI,sBAAsB,CAAC;AAC3C;AACA,gBAAgB,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;AAClD,gBAAgB,QAAQ,MAAM,CAAC,KAAK;AACpC,gBAAgB,KAAK,iBAAiB;AACtC,kBAAkB,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3D,kBAAkB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9C,kBAAkB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9C,kBAAkB,WAAW,CAAC,WAAW,GAAG,oBAAoB,CAAC;AACjE,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,OAAO;AAC5B,kBAAkB,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,kBAAkB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9C,kBAAkB,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9C,kBAAkB,WAAW,CAAC,WAAW,GAAG,cAAc,CAAC;AAC3D,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,OAAO;AAC5B,kBAAkB,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,kBAAkB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7C,kBAAkB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7C,kBAAkB,WAAW,CAAC,WAAW,GAAG,cAAc,CAAC;AAC3D,kBAAkB,MAAM;AACxB,gBAAgB,KAAK,aAAa;AAClC,kBAAkB,sBAAsB,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzD;AACA,gBAAgB,KAAK,qBAAqB;AAC1C,kBAAkB,IAAI,CAAC,sBAAsB,EAAE;AAC/C,oBAAoB,sBAAsB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACxE,mBAAmB;AACnB,kBAAkB,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;AACnD,kBAAkB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7C,kBAAkB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7C,kBAAkB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3C,kBAAkB,MAAM;AACxB,gBAAgB;AAChB,kBAAkB,OAAO;AACzB,iBAAiB;AACjB;AACA,gBAAgB,IAAI,WAAW,EAAE;AACjC,kBAAkB,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;AACtE;AACA,kBAAkB,IAAI,CAAC,WAAW,EAAE;AACpC,oBAAoB,MAAM,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AACpE,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB;AACA,kBAAkB,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;AAChD,kBAAkB,YAAY,CAAC,SAAS,GAAG,WAAW,CAAC;AACvD;AACA;AACA,kBAAkB,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;AACrD;AACA,kBAAkB,IAAI,WAAW,CAAC,KAAK,EAAE;AACzC,oBAAoB,MAAM,MAAM;AAChC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB,cAAc;AACtC,wBAAwB,sBAAsB;AAC9C,uBAAuB,CAAC,CAAC;AACzB;AACA,oBAAoB,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM;AACnE,sBAAsB,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM;AACzD,wBAAwB,YAAY,CAAC,UAAU;AAC/C,uBAAuB,CAAC,CAAC;AACzB,sBAAsB,MAAM,CAAC,YAAY;AACzC,wBAAwB,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC;AAClE,uBAAuB,CAAC;AACxB,qBAAqB,CAAC,CAAC;AACvB,mBAAmB;AACnB;AACA,kBAAkB,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM;AACxE,oBAAoB,YAAY,CAAC,IAAI,EAAE,CAAC;AACxC,oBAAoB,IAAI,WAAW,EAAE,KAAK,EAAE;AAC5C,sBAAsB,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;AAChD,sBAAsB,SAAS;AAC/B,wBAAwB,WAAW;AACnC,wBAAwB,UAAU;AAClC,uBAAuB,CAAC;AACxB,qBAAqB,MAAM;AAC3B,sBAAsB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/C,qBAAqB;AACrB,mBAAmB,CAAC,CAAC;AACrB,iBAAiB,MAAM,IAAI,sBAAsB,EAAE;AACnD,kBAAkB,MAAM,WAAW,GAAG,MAAM,kBAAkB;AAC9D,oBAAoB,sBAAsB;AAC1C,mBAAmB,CAAC;AACpB;AACA,kBAAkB,IAAI,CAAC,WAAW,EAAE;AACpC,oBAAoB,MAAM,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AACpE,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB;AACA,kBAAkB,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;AAChD,kBAAkB,YAAY,CAAC,SAAS,GAAG,WAAW,CAAC;AACvD;AACA;AACA,kBAAkB,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;AACrD,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW,EAAE;AACb,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;AAC/D,WAAW,CAAC,CAAC;AACb;AACA,UAAU,CAAC,YAAY;AACvB,YAAY,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;AAC5E,YAAY,IAAI,aAAa,GAAG,KAAK,CAAC;AACtC,YAAY,IAAI,aAAa,GAAG,KAAK,CAAC;AACtC,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACxC,cAAc,QAAQ,MAAM,CAAC,IAAI;AACjC,cAAc,KAAK,YAAY;AAC/B,gBAAgB,aAAa,GAAG,IAAI,CAAC;AACrC,gBAAgB,MAAM;AACtB,cAAc,KAAK,YAAY;AAC/B,gBAAgB,aAAa,GAAG,IAAI,CAAC;AACrC,gBAAgB,MAAM;AAGtB,eAAe;AACf,aAAa,CAAC,CAAC;AACf;AACA,YAAY,IAAI,aAAa,EAAE;AAC/B,cAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;AAC3E,aAAa;AACb,YAAY,IAAI,aAAa,EAAE;AAC/B,cAAc,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7E,aAAa;AACb,YAAY,IAAI,aAAa,IAAI,aAAa,EAAE;AAChD,cAAc,GAAG;AACjB,gBAAgB,QAAQ;AACxB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC;AAC1C,gBAAgB,CAAC,6BAA6B,CAAC;AAC/C,gBAAgB,MAAM;AACtB,eAAe,CAAC;AAChB,aAAa;AACb;AACA;AACA,YAAY,GAAG,CAAC,QAAQ,EAAE;AAC1B,cAAc,KAAK,EAAE,aAAa;AAClC,aAAa,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;AACzC,YAAY,GAAG,CAAC,QAAQ,EAAE;AAC1B,cAAc,KAAK,EAAE,qBAAqB;AAC1C,aAAa,EAAE,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAC,CAAC;AACxD,WAAW,GAAG,CAAC;AACf;AACA,UAAU,OAAO,MAAM,CAAC;AACxB,SAAS,GAAG;AACZ,QAAQ,GAAG;AACX,QAAQ,CAAC,KAAK,EAAE;AAChB;AACA,UAAU,CAAC,QAAQ,sDAAsD;AACzE,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,GAAG,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE;AACxB,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC,gBAAgB,MAAM,YAAY;AAClC;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,qBAAqB,IAAI,CAAC,aAAa,EAAE,kBAAkB;AAC3D,oBAAoB,oBAAoB;AACxC,mBAAmB,CAAC,CAAC;AACrB;AACA;AACA,gBAAgB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;AAC7C,kBAAkB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC7D,kBAAkB,OAAO;AACzB,iBAAiB;AACjB;AACA;AACA,gBAAgB,MAAM,cAAc;AACpC,kBAAkB,IAAI,CAAC,aAAa,EAAE,kBAAkB;AACxD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,KAAK;AAC3B;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;AACpD,gBAAgB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACpC;AACA;AACA;AACA;AACA,gBAAgB,MAAM,QAAQ,GAAG,YAAY,CAAC;AAC9C,gBAAgB,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE;AAC9E,kBAAkB,QAAQ;AAC1B,iBAAiB,CAAC,CAAC;AACnB;AACA;AACA,gBAAgB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChC,gBAAgB,aAAa,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK;AACvE,kBAAkB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,iBAAiB,CAAC,CAAC;AACnB;AACA,gBAAgB,IAAI;AACpB,kBAAkB,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC;AACA,iBAAiB,CAAC,MAAM;AACxB;AACA,kBAAkB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACjE;AACA,kBAAkB,OAAO;AACzB,iBAAiB;AACjB,gBAAgB,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;AAC7D,kBAAkB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AAChD,oBAAoB,IAAI,EAAE,QAAQ;AAClC,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACxD;AACA,kBAAkB,MAAM,aAAa,oCAAoC,EAAE;AAC3E;AACA,qBAAqB,IAAI,CAAC,aAAa,EAAE,kBAAkB;AAC3D,oBAAoB,qBAAqB;AACzC;AACA,mBAAmB,CAAC,CAAC;AACrB,gDAAgD;AAChD,oBAAoB,aAAa,CAAC,aAAa;AAC/C,oBAAoB,MAAM,GAAG,KAAK,CAAC;AACnC;AACA,kBAAkB,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;AAC1C;AACA,kBAAkB,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM;AACrE,oBAAoB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7C,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,MAAM,IAAI;AAC5B,qBAAqB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA,sBAAsB,CAAC,EAAE;AACzB,oBAAoB,IAAI,EAAE,uBAAuB;AACjD,mBAAmB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrC;AACA,kBAAkB,MAAM,GAAG,EAAE,CAAC;AAC9B,iBAAiB,CAAC,CAAC;AACnB;AACA,gBAAgB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AACpD;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW,GAAG;AACd,YAAY,cAAc;AAC1B,WAAW,CAAC;AACZ,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,eAAe;AAClC,YAAY,GAAG,EAAE;AACjB,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE;AACxB,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC;AACA;AACA,oBAAoB;AACpB,kBAAkB,IAAI,CAAC,sBAAsB;AAC7C,kBAAkB,cAAc,CAAC,IAAI,EAAE,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW,EAAE;AACb,YAAY,gBAAgB;AAC5B,WAAW,CAAC;AACZ,UAAU,CAAC,QAAQ,EAAE;AACrB,YAAY,KAAK,EAAE,cAAc;AACjC,YAAY,MAAM,EAAE,IAAI;AACxB,WAAW,EAAE;AACb,YAAY,GAAG,EAAE;AACjB,cAAc,KAAK,CAAC,CAAC,CAAC,EAAE;AACxB,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;AACnC;AACA,gBAAgB,MAAM,cAAc;AACpC,mBAAmB,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;AAC3D;AACA;AACA;AACA,gBAAgB,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;AACrE;AACA,gBAAgB,MAAM,MAAM;AAC5B;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAC;AAC/D;AACA,gBAAgB,MAAM,OAAO;AAC7B,kBAAkB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AACzC,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,YAAY;AAClC;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAC7D,gBAAgB,OAAO,CAAC,SAAS;AACjC,kBAAkB,YAAY,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM;AACjE,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,KAAK;AAC3B;AACA;AACA;AACA,mBAAmB,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;AACpD;AACA,gBAAgB,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AACxC;AACA,kBAAkB,IAAI,CAAC,IAAI,EAAE;AAC7B,oBAAoB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACrE,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB,kBAAkB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE;AAC9C,oBAAoB,KAAK,EAAE,OAAO;AAClC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACxD;AACA,kBAAkB,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;AAC1D;AACA,oBAAoB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7C,mBAAmB,CAAC,CAAC;AACrB;AACA,kBAAkB,MAAM,IAAI;AAC5B,qBAAqB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA,sBAAsB,CAAC,EAAE;AACzB,oBAAoB,IAAI,EAAE,uBAAuB;AACjD,mBAAmB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACrC;AACA,kBAAkB,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;AACrC,kBAAkB,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC9C,iBAAiB,CAAC,CAAC;AACnB,eAAe;AACf,aAAa;AACb,WAAW,EAAE;AACb,YAAY,+BAA+B;AAC3C,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;AACzD,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACzD,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAC5C,UAAU,CAAC,KAAK,EAAE;AAClB,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AAC9D,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrC,WAAW,CAAC;AACZ,UAAU;AACV,YAAY,KAAK;AACjB,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC;AACpC,8DAA8D;AAC9D,cAAc,GAAG,CAAC,MAAM;AACxB,gBAAgB,MAAM,aAAa,GAAG,GAAG;AACzC,kBAAkB,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC;AACnD,iBAAiB,CAAC;AAClB,gBAAgB,OAAO;AACvB,kBAAkB,aAAa;AAC/B,kBAAkB,CAAC,IAAI,CAAC;AACxB,kBAAkB,GAAG,CAAC,QAAQ,EAAE;AAChC,oBAAoB,KAAK,EAAE,MAAM;AACjC,oBAAoB,GAAG,EAAE;AACzB,sBAAsB,KAAK,CAAC,CAAC,CAAC,EAAE;AAChC,wBAAwB,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3C,wBAAwB,aAAa,CAAC,IAAI,EAAE,CAAC;AAC7C,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB,EAAE;AACrB,oBAAoB,MAAM;AAC1B,mBAAmB,CAAC;AACpB,kBAAkB,GAAG,CAAC,QAAQ,EAAE;AAChC,oBAAoB,KAAK,EAAE,OAAO;AAClC,oBAAoB,GAAG,EAAE;AACzB,sBAAsB,KAAK,CAAC,CAAC,CAAC,EAAE;AAChC,wBAAwB,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3C,wBAAwB,aAAa,CAAC,KAAK,EAAE,CAAC;AAC9C,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB,EAAE;AACrB,oBAAoB,OAAO;AAC3B,mBAAmB,CAAC;AACpB,kBAAkB,GAAG,CAAC,QAAQ,EAAE;AAChC,oBAAoB,KAAK,EAAE,QAAQ;AACnC,oBAAoB,GAAG,EAAE;AACzB,sBAAsB,KAAK,CAAC,CAAC,CAAC,EAAE;AAChC,wBAAwB,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3C,wBAAwB,aAAa,CAAC,KAAK,EAAE,CAAC;AAC9C,wBAAwB,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;AACtD,wBAAwB,aAAa,CAAC,IAAI,EAAE,CAAC;AAC7C,uBAAuB;AACvB,qBAAqB;AACrB,mBAAmB,EAAE;AACrB,oBAAoB,QAAQ;AAC5B,mBAAmB,CAAC;AACpB,iBAAiB,CAAC;AAClB,eAAe,GAAG;AAClB,aAAa;AACb,WAAW;AACX,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACl/BD,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAC3B;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC;AAC1B,EAAE,WAAW,EAAE,yBAAyB;AACxC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;AAC7C,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;AAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;AAC5B,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AACvB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;AACzB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,OAAO,mCAAmC;AACpD,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;AAC1B,MAAM,KAAK,CAAC;AACZ,IAAI,MAAM,IAAI,mCAAmC;AACjD,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AACvB,MAAM,KAAK,CAAC;AACZ,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AACrC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,oBAAoB;AACtE,KAAK,EAAE;AACP,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;AACzB,MAAM,KAAK,CAAC,OAAO;AACnB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AACtB,MAAM,KAAK,CAAC,IAAI;AAChB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AACtB,MAAM,KAAK,CAAC,IAAI;AAChB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE;AAC7D,IAAI,kBAAkB,EAAE,CAAC;AACzB,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AACrC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,cAAc;AAChE,KAAK,oDAAoD;AACzD,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,QAAQ;AAChB,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,KAAK,EAAE,MAAM;AACvB,UAAU,IAAI,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AACzD,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC;AACpD,UAAU,KAAK,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE;AAClC,UAAU,IAAI,EAAE,EAAE;AAClB,UAAU,WAAW,EAAE,4BAA4B;AACnD,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,EAAE,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AACrD,QAAQ,KAAK,EAAE,iBAAiB;AAChC,OAAO,EAAE;AACT,QAAQ,gBAAgB;AACxB,QAAQ,uBAAuB;AAC/B,QAAQ,oBAAoB;AAC5B,QAAQ,uBAAuB;AAC/B,QAAQ,4BAA4B;AACpC,QAAQ,eAAe;AACvB,QAAQ,mBAAmB;AAC3B,QAAQ,mBAAmB;AAC3B,QAAQ,qBAAqB;AAC7B,QAAQ,aAAa;AACrB,QAAQ,0BAA0B;AAClC,QAAQ,gBAAgB;AACxB,QAAQ,oBAAoB;AAC5B,QAAQ,mBAAmB;AAC3B,QAAQ,eAAe;AACvB,QAAQ,cAAc;AACtB,QAAQ,YAAY;AACpB,QAAQ,kBAAkB;AAC1B,QAAQ,oBAAoB;AAC5B,QAAQ,cAAc;AACtB,QAAQ,sBAAsB;AAC9B,QAAQ,gBAAgB;AACxB,QAAQ,eAAe;AACvB,QAAQ,kBAAkB;AAC1B,QAAQ,cAAc;AACtB,QAAQ,iBAAiB;AACzB,QAAQ,WAAW;AACnB,QAAQ,0BAA0B;AAClC,QAAQ,2BAA2B;AACnC,QAAQ,gBAAgB;AACxB,QAAQ,iBAAiB;AACzB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACtB,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,OAAO,CAAC,CAAC;AACT,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,WAAW;AACnB,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,KAAK,EAAE,SAAS;AAC1B,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC;AACvD,UAAU,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE;AACrC,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,EAAE,CAAC;AACR,GAAG;AACH,CAAC;;ACpHD,IAAIC,KAAG,GAAG,CAAC,CAAC;AACZ;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG;AACpB,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC;AACrB,EAAE,UAAU,EAAE,CAAC,iBAAiB,CAAC;AACjC,EAAE,WAAW,EAAE,oEAAoE;AACnF,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;AACxB;AACA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,MAAM,YAAY;AAClB;AACA,KAAK,GAAG,EAAE,CAAC;AACX,oDAAoD,CAAC,QAAQ,EAAE,KAAK;AACpE,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,OAAO;AACX,MAAM,KAAK,EAAE;AACb,QAAQ,YAAY,KAAK,SAAS,GAAG,OAAO,GAAG,eAAe;AAC9D,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnC;AACA,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;AAC1C,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,6BAA6B,CAAC;AAC/C,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC;AAC9C,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACrD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACrD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,KAAK,GAAG,MAAM,iCAAiC;AACzD,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;AACxB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,MAAM,GAAG,MAAM,iCAAiC;AAC1D,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AACzB,MAAM,KAAK,CAAC,CAAC;AACb;AACA,IAAI,MAAM,WAAW,mCAAmC;AACxD,MAAM,EAAE,CAAC,IAAI,EAAE,6BAA6B,CAAC;AAC7C,MAAM,OAAO,CAAC;AACd,IAAI,OAAO,KAAK,WAAW,GAAG,OAAO,GAAG,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9E,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;AACzD,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE;AACf,QAAQ,IAAI,EAAE,SAAS;AACvB,OAAO;AACP,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW;AAC9C,UAAU,CAAC,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,iBAAiB,EAAE,GAAG,CAAC;AACpE,UAAU,SAAS;AACnB,KAAK,EAAE;AACP,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,KAAK,EAAE,UAAU;AACzB,OAAO,EAAE;AACT,QAAQ,oBAAoB,EAAE,WAAW;AACzC,WAAW,WAAW,GAAG,SAAS,GAAG,iBAAiB,CAAC;AACvD,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACnB,MAAM,KAAK,CAAC,CAAC;AACb,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACnB,MAAM,KAAK,CAAC,CAAC;AACb,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;AACvB,MAAM,KAAK,CAAC,KAAK;AACjB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AACxB,MAAM,KAAK,CAAC,MAAM;AAClB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG;AACxD,IAAI,CAAC,EAAE,EAAE;AACT,IAAI,CAAC,EAAE,EAAE;AACT,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,GAAG,CAAC,EAAE;AACN,IAAIA,KAAG,EAAE,CAAC;AACV,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC;AACvB,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAChC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,SAAS;AAC3D,KAAK,oDAAoD;AACzD,MAAM,CAAC,KAAK,EAAE;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,4BAA4B;AAC/C,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,kBAAkB,EAAEA,KAAG,CAAC,CAAC;AAC5D,YAAY,KAAK,EAAE,WAAW;AAC9B,YAAY,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,iBAAiB;AAC7D,WAAW,CAAC;AACZ,UAAU,WAAW;AACrB,SAAS,CAAC;AACV,QAAQ,GAAG;AACX,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,2BAA2B;AAC9C,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,kBAAkB,EAAEA,KAAG,CAAC,CAAC;AAC5D,YAAY,KAAK,EAAE,UAAU;AAC7B,YAAY,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,iBAAiB;AAC7D,WAAW,CAAC;AACZ,UAAU,WAAW;AACrB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,KAAK;AACb,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,IAAI;AACd,UAAU,KAAK,EAAE,GAAG;AACpB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5D,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,KAAK;AACb,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,IAAI;AACd,UAAU,KAAK,EAAE,GAAG;AACpB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5D,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,SAAS;AACjB,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,IAAI;AACd,UAAU,KAAK,EAAE,OAAO;AACxB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;AACpE,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,UAAU;AAClB,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,IAAI;AACd,UAAU,KAAK,EAAE,QAAQ;AACzB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM;AACtE,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,EAAE,CAAC;AACR,GAAG;AACH,CAAC;;AClLD,IAAIA,KAAG,GAAG,CAAC,CAAC;AACZ;AACA;AACA;AACA;AACA,MAAM,YAAY,GAAG;AACrB,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC;AACtB,EAAE,UAAU,EAAE,CAAC,kBAAkB,CAAC;AAClC,EAAE,WAAW,EAAE,uEAAuE;AACtF,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;AACxB;AACA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,MAAM,aAAa;AACnB;AACA,KAAK,GAAG,EAAE,CAAC;AACX,oDAAoD,CAAC,QAAQ,EAAE,KAAK;AACpE,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,aAAa,KAAK,UAAU,GAAG,QAAQ,GAAG,gBAAgB;AAChE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,oCAAoC;AACpC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B;AACA,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE;AAC3C,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAChD,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,6BAA6B,CAAC;AAC/C,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACrD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACrD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACrD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACrD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,CAAC,CAAC;AACb;AACA,IAAI,MAAM,WAAW,mCAAmC;AACxD,MAAM,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAC9C,MAAM,OAAO,CAAC;AACd,IAAI,OAAO,KAAK,WAAW,GAAG,QAAQ,GAAG,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC;AAC1D,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;AACjC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW;AAC9C,UAAU,CAAC,KAAK,GAAG,WAAW,GAAG,UAAU,GAAG,kBAAkB,EAAE,GAAG,CAAC;AACtE,UAAU,SAAS;AACnB,KAAK,EAAE;AACP,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;AACjC,QAAQ,oBAAoB,EAAE,WAAW;AACzC,WAAW,WAAW,GAAG,UAAU,GAAG,kBAAkB,CAAC;AACzD,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACnB,MAAM,KAAK,CAAC,CAAC;AACb,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACnB,MAAM,KAAK,CAAC,CAAC;AACb,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACnB,MAAM,KAAK,CAAC,CAAC;AACb,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACnB,MAAM,KAAK,CAAC,CAAC;AACb,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG;AACxD,IAAI,CAAC,EAAE,EAAE;AACT,IAAI,CAAC,EAAE,EAAE;AACT,IAAI,CAAC,EAAE,EAAE;AACT,IAAI,CAAC,EAAE,EAAE;AACT,GAAG,CAAC,EAAE;AACN,IAAIA,KAAG,EAAE,CAAC;AACV,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC;AACvB,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;AACjC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,UAAU;AAC5D,KAAK,oDAAoD;AACzD,MAAM,CAAC,KAAK,EAAE;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,6BAA6B;AAChD,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,mBAAmB,EAAEA,KAAG,CAAC,CAAC;AAC7D,YAAY,KAAK,EAAE,WAAW;AAC9B,YAAY,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,kBAAkB;AAC9D,WAAW,CAAC;AACZ,UAAU,WAAW;AACrB,SAAS,CAAC;AACV,QAAQ,GAAG;AACX,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,4BAA4B;AAC/C,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,mBAAmB,EAAEA,KAAG,CAAC,CAAC;AAC7D,YAAY,KAAK,EAAE,UAAU;AAC7B,YAAY,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,kBAAkB;AAC9D,WAAW,CAAC;AACZ,UAAU,WAAW;AACrB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,KAAK;AACb,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,IAAI;AACd,UAAU,KAAK,EAAE,GAAG;AACpB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7D,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,KAAK;AACb,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,IAAI;AACd,UAAU,KAAK,EAAE,GAAG;AACpB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7D,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,KAAK;AACb,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,IAAI;AACd,UAAU,KAAK,EAAE,GAAG;AACpB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7D,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,KAAK;AACb,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,IAAI;AACd,UAAU,KAAK,EAAE,GAAG;AACpB,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7D,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,EAAE,CAAC;AACR,GAAG;AACH,CAAC;;AC7KD,IAAIA,KAAG,GAAG,CAAC,CAAC;AACZ;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAG;AACtB,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC;AACvB,EAAE,UAAU,EAAE,CAAC,mBAAmB,CAAC;AACnC,EAAE,WAAW,EAAE,0EAA0E;AACzF,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;AACxB;AACA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,MAAM,cAAc;AACpB;AACA,KAAK,GAAG,EAAE,CAAC;AACX,oDAAoD,CAAC,QAAQ,EAAE,KAAK;AACpE,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B;AACA,IAAI,MAAM,cAAc,GAAG,cAAc,KAAK,WAAW;AACzD,QAAQ,SAAS;AACjB,QAAQ,iBAAiB,CAAC;AAC1B;AACA,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3C,QAAQ,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,QAAQ,IAAI,cAAc,CAAC;AAC3B,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG;AAClC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG;AAClC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG;AAClC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG;AAClC,OAAO,CAAC,CAAC;AACT;AACA,IAAI,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC9B,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;AAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,oCAAoC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;AACrE,oCAAoC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC;AACtE;AACA,kCAAkC;AAClC,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;AAC3B,MAAM,MAAM,mCAAmC,CAAC,IAAI,CAAC;AACrD,kCAAkC;AAClC,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;AAC3B,MAAM,MAAM,mCAAmC,IAAI,CAAC;AACpD;AACA,IAAI,IAAI,IAAI,EAAE;AACd,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB;AACA,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB;AACA,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB;AACA,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACxB,QAAQ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;AACtB,KAAK;AACL;AACA,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;AACxC,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AACjD,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,KAAK,MAAM;AACX,sCAAsC;AACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAChD,QAAQ,OAAO,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,WAAW,mCAAmC;AACxD,MAAM,EAAE,CAAC,IAAI,EAAE,+BAA+B,CAAC;AAC/C,MAAM,OAAO,CAAC;AACd,IAAI,MAAM,cAAc,GAAG,WAAW,GAAG,SAAS,GAAG,iBAAiB,CAAC;AACvE;AACA,IAAI,MAAM,KAAK,mCAAmC;AAClD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACpB,MAAM,KAAK,CAAC;AACZ;AACA,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,MAAM,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,CAAC,CAAC;AACf,MAAM,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,CAAC,CAAC;AACf,MAAM,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,CAAC,CAAC;AACf,MAAM,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,CAAC,CAAC;AACf,MAAM,MAAM,CAAC,GAAG,MAAM,iCAAiC;AACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,QAAQ,KAAK,CAAC,CAAC;AACf,MAAM,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK;AACL;AACA,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb;AACA,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb;AACA,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb;AACA,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb,IAAI,MAAM,GAAG,GAAG,MAAM,iCAAiC;AACvD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACtB,MAAM,KAAK,CAAC,CAAC;AACb;AACA,IAAI,OAAO,IAAI,cAAc,CAAC;AAC9B,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACxB,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACxB,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACxB,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACxB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC;AAC3D,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE;AACnD,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW;AAChD,YAAY,CAAC,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,mBAAmB,EAAE,GAAG,CAAC;AAC1E,YAAY,SAAS;AACrB,OAAO,EAAE;AACT,QAAQ,oBAAoB,EAAE,WAAW;AACzC,WAAW,WAAW,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAC3D,OAAO,CAAC;AACR,MAAM,KAAK,CAAC,IAAI;AAChB,UAAU,CAAC,KAAK,EAAE;AAClB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvB,UAAU,KAAK,CAAC,CAAC;AACjB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvB,UAAU,KAAK,CAAC,CAAC;AACjB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvB,UAAU,KAAK,CAAC,CAAC;AACjB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvB,UAAU,KAAK,CAAC,CAAC;AACjB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvB,UAAU,KAAK,CAAC,CAAC;AACjB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvB,UAAU,KAAK,CAAC,CAAC;AACjB,SAAS,CAAC;AACV,UAAU,CAAC,KAAK,EAAE;AAClB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB;AACA,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB;AACA,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB;AACA,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACzB,UAAU,KAAK,CAAC,GAAG;AACnB,SAAS,CAAC;AACV,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE;AAC7D,IAAIA,KAAG,EAAE,CAAC;AACV,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACzB,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC;AACvB;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;AAClC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,WAAW;AAC7D,KAAK,oDAAoD;AACzD,MAAM,CAAC,KAAK,EAAE;AACd,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,8BAA8B;AACjD,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,oBAAoB,EAAEA,KAAG,CAAC,CAAC;AAC9D,YAAY,KAAK,EAAE,WAAW;AAC9B,YAAY,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,mBAAmB;AAC/D,WAAW,CAAC;AACZ,UAAU,WAAW;AACrB,SAAS,CAAC;AACV,QAAQ,GAAG;AACX,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,6BAA6B;AAChD,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,oBAAoB,EAAEA,KAAG,CAAC,CAAC;AAC9D,YAAY,KAAK,EAAE,UAAU;AAC7B,YAAY,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,mBAAmB;AAC/D,WAAW,CAAC;AACZ,UAAU,WAAW;AACrB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,KAAK,EAAE;AACd,QAAQ,GAAG,EAAE;AACb,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE;AACpB,YAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B;AACA,YAAY,oCAAoC,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE;AAC3E,cAAc,OAAO;AACrB,aAAa;AACb,YAAY,MAAM,MAAM,kCAAkC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9E,0CAA0C;AAC1C,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;AACrC,cAAc,MAAM,mCAAmC,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC;AAC/E,0CAA0C;AAC1C,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;AACrC,cAAc,MAAM,mCAAmC,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC;AAC/E,WAAW;AACX,SAAS;AACT,OAAO,EAAE;AACT,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI;AACd,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,qBAAqB,EAAEA,KAAG,CAAC,CAAC;AAC9E,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;AAClC,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,GAAG;AACX,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI;AACd,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,qBAAqB,EAAEA,KAAG,CAAC,CAAC;AAC9E,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,OAAO,EAAE,CAAC,IAAI;AAC1B,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,KAAK,EAAE;AACd,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,MAAM,EAAE,CAAC,IAAI;AACrB,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAC5D,QAAQ,OAAO;AACf,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,GAAG,IAAI;AACxB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,IAAI,EAAE,QAAQ;AAC5B,cAAc,IAAI;AAClB,cAAc,KAAK,EAAE,KAAK;AAC1B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACzD,cAAc,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;AACvC,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,KAAK,EAAE;AACd,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;AAC7B,OAAO,EAAE,CAAC;AACV,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AAClC,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AAClC,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AAClC,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AAClC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAC3B,QAAQ,OAAO;AACf,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,GAAG,IAAI;AACxB,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,IAAI,EAAE,QAAQ;AAC5B,cAAc,IAAI;AAClB,cAAc,KAAK,EAAE,KAAK;AAC1B,cAAc,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACzD,cAAc,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;AACvC,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,KAAK,EAAE,CAAC;AACR,GAAG;AACH,CAAC;;ACtaD,MAAM,eAAe,yBAAyB;AAC9C,EAAE,SAAS;AACX,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,aAAa;AACf,EAAE,cAAc;AAChB,CAAC,CAAC,CAAC;AACH;AACA,MAAM,WAAW,yBAAyB;AAC1C,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY;AAC9D,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc;AAC5D,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB;AACnD,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB,GAAG,CAAC,UAAU,KAAK;AAC/C,EAAE,QAAQ,UAAU;AACpB,EAAE,KAAK,WAAW;AAClB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjC,EAAE,KAAK,YAAY;AACnB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,EAAE,KAAK,mBAAmB;AAC1B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,EAAE,KAAK,YAAY;AACnB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACrC,EAAE,KAAK,aAAa;AACpB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,EAAE,KAAK,YAAY;AACnB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;AAC/C,EAAE,KAAK,aAAa;AACpB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;AACrC,EAAE,KAAK,cAAc;AACrB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACvC,EAAE,KAAK,cAAc;AACrB;AACA,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACzC,EAAE,KAAK,eAAe;AACtB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACjD,EAAE,KAAK,gBAAgB;AACvB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACxC;AACA,EAAE;AACF;AACA,IAAI,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACnD,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK;AAChC,EAAE,QAAQ,IAAI;AACd,EAAE,KAAK,WAAW;AAClB,IAAI,OAAO,SAAS,CAAC;AACrB,EAAE,KAAK,YAAY;AACnB,IAAI,OAAO,UAAU,CAAC;AACtB,EAAE,KAAK,mBAAmB;AAC1B,IAAI,OAAO,iBAAiB,CAAC;AAC7B,EAAE,KAAK,YAAY;AACnB,IAAI,OAAO,UAAU,CAAC;AACtB,EAAE,KAAK,aAAa;AACpB,IAAI,OAAO,WAAW,CAAC;AACvB,EAAE,KAAK,YAAY;AACnB,IAAI,OAAO,UAAU,CAAC;AACtB,EAAE,KAAK,aAAa;AACpB,IAAI,OAAO,WAAW,CAAC;AACvB,EAAE,KAAK,cAAc;AACrB,IAAI,OAAO,YAAY,CAAC;AACxB,EAAE,KAAK,cAAc;AACrB,IAAI,OAAO,YAAY,CAAC;AACxB,EAAE,KAAK,eAAe;AACtB,IAAI,OAAO,aAAa,CAAC;AACzB,EAAE,KAAK,gBAAgB;AACvB,IAAI,OAAO,cAAc,CAAC;AAC1B;AACA,EAAE;AACF;AACA,IAAI,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACvC,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;AACpC,EAAE,aAAa,EAAE,UAAU;AAC3B,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,aAAa;AAC7E,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe;AAC9E,EAAE,gBAAgB;AAClB,CAAC,CAAC,CAAC;AACH;AACA,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,CAAC,oDAAoD,CAAC;AAChE,EAAE,UAAU,EAAE;AACd,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,IAAI,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY;AAChE,IAAI,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc;AAC9D,IAAI,cAAc,EAAE,eAAe,EAAE,gBAAgB;AACrD,GAAG;AACH,EAAE,WAAW,EAAE,oKAAoK;AACnL,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;AACxB;AACA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,MAAM,iBAAiB;AACvB;AACA,KAAK,GAAG,EAAE,CAAC;AACX,oDAAoD,CAAC,QAAQ,EAAE,KAAK;AACpE,KAAK,CAAC;AACN;AACA,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,MAAM;AACV,MAAM,UAAU,EAAE,aAAa,EAAE,UAAU;AAC3C,MAAM,kBAAkB;AACxB,MAAM,kBAAkB,EAAE,MAAM;AAChC,KAAK,GAAG,CAAC,CAAC;AACV;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AAChE;AACA,IAAI,IAAI,UAAU,EAAE,UAAU,CAAC;AAC/B,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE;AAClE,MAAM,UAAU,GAAG,aAAa;AAChC,mCAAmC,CAAC,CAAC,UAAU,IAAI,iBAAiB;AACpE,OAAO,CAAC;AACR;AACA,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAC9D;AACA,MAAM,IAAI,KAAK,IAAI,CAAC,EAAE;AACtB,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK;AACpB,YAAY,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACvC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,aAAa;AACb,WAAW;AACX,SAAS,CAAC;AACV,QAAQ,UAAU,CAAC,GAAG,CAAC;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACxB,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,IAAI,iBAAiB,KAAK,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC7E,MAAM,OAAO,MAAM,IAAI,CAAC,CAAC;AACzB,KAAK,CAAC,EAAE;AACR,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AAC1E,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACxC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,CAAC,IAAI,KAAK;AACpB,YAAY,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC7C,cAAc,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,aAAa;AACb;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,WAAW;AACX,SAAS,CAAC;AACV,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,iBAAiB,KAAK,aAAa;AAChD,UAAU,MAAM;AAChB,UAAU,iBAAiB,KAAK,UAAU;AAC1C,YAAY,IAAI;AAChB,YAAY,UAAU;AACtB,KAAK,CAAC;AACN,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,UAAU;AACpB;AACA;AACA;AACA;AACA,WAAW,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;AACpC,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACzC,IAAI,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,UAAU,EAAE;AACjE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACxE,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,0CAA0C,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACtE,MAAM,MAAM,WAAW;AACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC;AAC7C,OAAO,CAAC;AACR,MAAM,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;AACpC,MAAM,WAAW,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrD,KAAK;AACL;AACA,IAAI,MAAM,UAAU;AACpB;AACA;AACA;AACA;AACA,WAAW,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;AACpC;AACA,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9B;AACA,IAAI,MAAM,MAAM,GAAG,SAAS,KAAK,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AACtE,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AACzC,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD;AACA,IAAI,MAAM,aAAa;AACvB,MAAM,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAChC,KAAK,CAAC;AACN,IAAI,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;AAC/C,IAAI,aAAa,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrD;AACA,IAAI,IAAI,SAAS,KAAK,UAAU,EAAE;AAClC,MAAM,MAAM,kBAAkB;AAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC;AACvC,OAAO,CAAC;AACR,MAAM,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;AAClD,MAAM,kBAAkB,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D;AACA,MAAM,MAAM,kBAAkB;AAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC;AACvC,OAAO,CAAC;AACR,MAAM,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;AAClD,MAAM,kBAAkB,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D,KAAK,MAAM,IAAI,SAAS,KAAK,aAAa,EAAE;AAC5C,MAAM,MAAM,oBAAoB;AAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC;AACzC,OAAO,CAAC;AACR,MAAM,oBAAoB,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;AACpD,MAAM,oBAAoB,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9D;AACA,MAAM,MAAM,gBAAgB;AAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;AACrC,OAAO,CAAC;AACR,MAAM,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5C,MAAM,gBAAgB,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1D,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,gEAAgE;AACpE,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,MAAM,CAAC;AACb,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACzC,IAAI,MAAM,MAAM,GAAG,SAAS,KAAK,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;AACtE;AACA,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE;AACtD,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW;AAChD,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;AAC1C,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AACjC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;AAChC,YAAY,SAAS;AACrB,OAAO,EAAE;AACT,QAAQ,oBAAoB,EAAE,WAAW,IAAI,SAAS;AACtD,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAC;AACrC,MAAM,MAAM,CAAC,UAAU;AACvB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,CAAC;AACzC,MAAM,MAAM,CAAC,aAAa;AAC1B;AACA,MAAM,GAAG,SAAS,KAAK,UAAU;AACjC,UAAU;AACV,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;AAC5C,UAAU,KAAK,CAAC,UAAU;AAC1B,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;AAC5C,UAAU,KAAK,CAAC,UAAU;AAC1B,SAAS;AACT,UAAU,CAAC,EAAE,CAAC;AACd,MAAM,GAAG,CAAC,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,aAAa;AACjE,UAAU;AACV,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,CAAC;AAC9C,UAAU,KAAK,CAAC,UAAU;AAC1B,UAAU,CAAC,IAAI,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAC;AACzC,UAAU,KAAK,CAAC,MAAM;AACtB,SAAS;AACT,UAAU,CAAC,EAAE,CAAC;AACd,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,QAAQ,EAAE;AACjB,QAAQ,KAAK,EAAE,uBAAuB;AACtC,QAAQ,GAAG,EAAE;AACb,UAAU,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1B,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAY,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC;AAC1D;AACA,cAAc,QAAQ,oDAAoD;AAC1E,gBAAgB,CAAC,QAAQ,EAAE;AAC3B,kBAAkB,KAAK,EAAE,+BAA+B;AACxD,kBAAkB,YAAY,EAAE,cAAc;AAC9C,kBAAkB,GAAG,EAAE;AACvB,oBAAoB,MAAM,CAAC,GAAG;AAC9B,sBAAsB,MAAM,aAAa,oCAAoC;AAC7E,wBAAwB,IAAI;AAC5B,wBAAwB,KAAK,CAAC;AAC9B,sBAAsB,MAAM,UAAU,GAAG,aAAa;AACtD,mDAAmD,aAAa;AAChE,uBAAuB,CAAC;AACxB,sBAAsB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAChE,sBAAsB,MAAM,cAAc,+BAA+B,EAAE;AAC3E;AACA,yBAAyB,IAAI,CAAC,aAAa;AAC3C,wBAAwB,iBAAiB;AACzC,uBAAuB,CAAC,CAAC;AACzB,sBAAsB,cAAc,CAAC,WAAW,GAAG,EAAE,CAAC;AACtD,sBAAsB,cAAc,CAAC,MAAM;AAC3C,wBAAwB,GAAG,KAAK,CAAC,IAAI,CAAC;AACtC,0BAA0B,MAAM,EAAE,UAAU,CAAC,MAAM;AACnD,yBAAyB,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK;AACxC,0BAA0B,OAAO,GAAG,CAAC,MAAM,EAAE;AAC7C,4BAA4B,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AACxC,4BAA4B,GAAG;AAC/B,4BAA4B,CAAC,MAAM,EAAE;AACrC,8BAA8B,UAAU,CAAC,GAAG,CAAC;AAC7C,kCAAkC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACzD,kCAAkC,GAAG;AACrC,6BAA6B,CAAC;AAC9B,4BAA4B,GAAG;AAC/B,2BAA2B,CAAC,CAAC;AAC7B,yBAAyB,CAAC;AAC1B,uBAAuB,CAAC;AACxB,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK;AACnD,kBAAkB,OAAO,CAAC,QAAQ,EAAE;AACpC,oBAAoB,QAAQ,EAAE,SAAS,KAAK,UAAU;AACtD,wBAAwB,IAAI;AAC5B,wBAAwB,SAAS;AACjC,mBAAmB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACnC,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,CAAC,KAAK,EAAE;AACxB,kBAAkB,KAAK,EAAE,gBAAgB;AACzC,iBAAiB,CAAC;AAClB,eAAe,CAAC;AAChB,aAAa,CAAC,CAAC;AACf;AACA,6CAA6C;AAC7C,cAAc,EAAE,CAAC,MAAM,EAAE,gCAAgC,CAAC;AAC1D,cAAc,aAAa;AAC3B,cAAc,IAAI,KAAK,CAAC,QAAQ,CAAC;AACjC,aAAa,CAAC;AACd;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;AACvB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE;AACxD,IAAI,GAAG,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE;AAC3B,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC;AACrC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,cAAc;AAChE,KAAK,EAAE;AACP,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,KAAK,EAAE,YAAY;AAC3B,QAAQ,GAAG,EAAE;AACb,UAAU,MAAM,CAAC,GAAG;AACpB;AACA;AACA;AACA;AACA,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;AACzC,WAAW;AACX,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB;AACA,UAAU,eAAe,CAAC,GAAG;AAC7B,YAAY,MAAM,IAAI;AACtB;AACA;AACA;AACA,gBAAgB,IAAI,CAAC,CAAC;AACtB,YAAY,MAAM,QAAQ,kCAAkC,IAAI,CAAC,aAAa,CAAC,CAAC;AAChF,YAAY,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;AAC/D,cAAc,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5E,sBAAsB,CAAC,QAAQ,CAAC;AAChC,aAAa,CAAC,CAAC;AACf;AACA,YAAY,MAAM,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;AAC3C,eAAe,CAAC;AAChB,YAAY,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACpE,YAAY,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ;AACjD,8CAA8C;AAC9C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AAC9C,gBAAgB,KAAK;AACrB,aAAa,CAAC;AACd;AACA,YAAY,MAAM,MAAM,GAAG,IAAI,WAAW;AAC1C;AACA,cAAc,aAAa,EAAE,aAAa,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS;AACxE,aAAa,CAAC;AACd;AACA,YAAY,MAAM,qBAAqB,mCAAmC,CAAC,EAAE;AAC7E,cAAc,QAAQ;AACtB,cAAc,qBAAqB;AACnC,aAAa,EAAE,KAAK,CAAC;AACrB,YAAY,MAAM,kBAAkB,GAAG,qBAAqB;AAC5D,gBAAgB,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACtD,gBAAgB,CAAC,CAAC;AAClB;AACA,YAAY,MAAM,qBAAqB,mCAAmC,CAAC,EAAE;AAC7E,cAAc,QAAQ;AACtB,cAAc,qBAAqB;AACnC,aAAa,EAAE,KAAK,CAAC;AACrB,YAAY,MAAM,kBAAkB,GAAG,qBAAqB;AAC5D,gBAAgB,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACtD,gBAAgB,SAAS,CAAC;AAC1B;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,QAAQ;AACzC,cAAc,MAAM,EAAE,kBAAkB,EAAE,kBAAkB;AAC5D,aAAa,CAAC;AACd;AACA,YAAY,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC;AAC1C,cAAc,EAAE,CAAC,QAAQ,EAAE,gCAAgC,CAAC;AAC5D,aAAa,CAAC;AACd;AACA,YAAY,MAAM,UAAU,GAAG,aAAa;AAC5C,yCAAyC,eAAe;AACxD,aAAa,CAAC;AACd,YAAY,MAAM,uBAAuB;AACzC,8CAA8C,CAAC,EAAE;AACjD,gBAAgB,QAAQ;AACxB,gBAAgB,uBAAuB;AACvC,eAAe,EAAE,KAAK,CAAC;AACvB,YAAY,MAAM,oBAAoB,GAAG,uBAAuB;AAChE,gBAAgB,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC;AACxD,gBAAgB,CAAC,CAAC;AAClB;AACA,YAAY,MAAM,mBAAmB;AACrC,8CAA8C,CAAC,EAAE;AACjD,gBAAgB,QAAQ;AACxB,gBAAgB,mBAAmB;AACnC,eAAe,EAAE,KAAK,CAAC;AACvB,YAAY,MAAM,gBAAgB,GAAG,mBAAmB;AACxD,gBAAgB,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AACpD,gBAAgB,aAAa,CAAC;AAC9B;AACA,YAAY,MAAM,UAAU,GAAG,IAAI,UAAU;AAC7C,cAAc,MAAM,EAAE,oBAAoB,EAAE,gBAAgB;AAC5D,aAAa,CAAC;AACd;AACA,YAAY,UAAU,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC5C,YAAY,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC;AAChD;AACA,YAAY,MAAM,gBAAgB,GAAG,GAAG;AACxC,cAAc,QAAQ,EAAE,kCAAkC;AAC1D,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AAC7B;AACA,cAAc,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtD,kBAAkB,MAAM;AACxB,kDAAkD,CAAC,KAAK,EAAE,KAAK;AAC/D,iBAAiB;AACjB,kBAAkB,MAAM;AACxB,kDAAkD,CAAC,KAAK,EAAE,KAAK;AAC/D,iBAAiB,CAAC;AAClB,aAAa,CAAC,CAAC;AACf;AACA;AACA,YAAY,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC5D;AACA,YAAY,QAAQ,KAAK;AACzB,YAAY,KAAK,aAAa;AAC9B,cAAc,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;AACzC,cAAc,MAAM;AACpB,YAAY,KAAK,UAAU,EAAE;AAC7B,cAAc,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;AAC3C,cAAc,MAAM;AACpB,aAAa,CAAC;AACd,cAAc,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC;AAC7C,cAAc,MAAM;AACpB,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,EAAE;AACT,QAAQ,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;AACnC,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,GAAG,EAAE;AACf,YAAY,KAAK,CAAC,GAAG;AACrB,yCAAyC,CAAC,EAAE;AAC5C,4CAA4C,IAAI,CAAC,aAAa;AAC9D,gBAAgB,2BAA2B;AAC3C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;AAC/B,yCAAyC,CAAC,EAAE;AAC5C,4CAA4C,IAAI,EAAE,aAAa,EAAE,aAAa;AAC9E,gBAAgB,gCAAgC;AAChD,eAAe,EAAE,MAAM,GAAG,KAAK,CAAC;AAChC,aAAa;AACb,WAAW;AACX,SAAS,EAAE;AACX,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,0BAA0B;AAC7C,cAAc,qCAAqC;AACnD,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;AACnE,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,KAAK,EAAE,aAAa;AAChC;AACA,WAAW,CAAC;AACZ,UAAU,aAAa;AACvB,SAAS,CAAC;AACV,QAAQ,GAAG;AACX,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,GAAG,EAAE;AACf,YAAY,KAAK,CAAC,GAAG;AACrB,yCAAyC,CAAC,EAAE;AAC5C,4CAA4C,IAAI,CAAC,aAAa;AAC9D,gBAAgB,2BAA2B;AAC3C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;AAC/B,yCAAyC,CAAC,EAAE;AAC5C,4CAA4C,IAAI,EAAE,aAAa,EAAE,aAAa;AAC9E,gBAAgB,gCAAgC;AAChD,eAAe,EAAE,MAAM,GAAG,KAAK,CAAC;AAChC,aAAa;AACb,WAAW;AACX,SAAS,EAAE;AACX,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,0DAA0D;AAC7E,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;AACnE,YAAY,KAAK,EAAE,UAAU;AAC7B;AACA,WAAW,CAAC;AACZ,UAAU,UAAU;AACpB,SAAS,CAAC;AACV,QAAQ,GAAG;AACX,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,GAAG,EAAE;AACf,YAAY,KAAK,CAAC,GAAG;AACrB,yCAAyC,CAAC,EAAE;AAC5C,4CAA4C,IAAI,CAAC,aAAa;AAC9D,gBAAgB,2BAA2B;AAC3C,eAAe,EAAE,MAAM,GAAG,KAAK,CAAC;AAChC,yCAAyC,CAAC,EAAE;AAC5C,4CAA4C,IAAI,EAAE,aAAa,EAAE,aAAa;AAC9E,gBAAgB,gCAAgC;AAChD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;AAC/B,aAAa;AACb,WAAW;AACX,SAAS,EAAE;AACX,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,4DAA4D;AAC/E,YAAY,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;AACnE,YAAY,KAAK,EAAE,YAAY;AAC/B;AACA,WAAW,CAAC;AACZ,UAAU,aAAa;AACvB,SAAS,CAAC;AACV,QAAQ,GAAG;AACX,QAAQ,CAAC,QAAQ,EAAE;AACnB,UAAU,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,0BAA0B;AACzD,UAAU,YAAY,EAAE,cAAc;AACtC,UAAU,GAAG,EAAE;AACf,YAAY,MAAM,CAAC,CAAC,CAAC,EAAE;AACvB,cAAc,MAAM,IAAI,qCAAqC,IAAI,CAAC,CAAC;AACnE,cAAc,MAAM,QAAQ;AAC5B,gBAAgB,IAAI,CAAC,aAAa,EAAE,aAAa;AACjD,eAAe,CAAC;AAChB;AACA,cAAc,MAAM,MAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE;AACnB,kBAAkB,QAAQ;AAC1B,kBAAkB,gCAAgC;AAClD,iBAAiB,CAAC,CAAC;AACnB;AACA;AACA,cAAc,MAAM,CAAC,KAAK,oCAAoC,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3E;AACA,cAAc,MAAM,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACnD,iBAAiB,CAAC;AAClB,cAAc,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;AAC3D,gBAAgB,OAAO;AACvB,eAAe;AACf;AACA,cAAc,MAAM,CAAC,gBAAgB;AACrC;AACA,kDAAkD,CAAC,IAAI,EAAE,KAAK;AAC9D,eAAe,CAAC;AAChB;AACA,cAAc,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AACnD;AACA,cAAc,MAAM,oBAAoB,GAAG,EAAE;AAC7C;AACA,iBAAiB,IAAI,EAAE,aAAa,EAAE,aAAa;AACnD,gBAAgB,uBAAuB;AACvC,eAAe,CAAC;AAChB;AACA;AACA;AACA;AACA,kBAAkB,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACrE,aAAa;AACb,WAAW;AACX,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK;AAC3C,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,SAAS,CAAC,CAAC;AACX,OAAO,CAAC;AACR,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,GAAG,EAAE;AACb,UAAU,MAAM,CAAC,GAAG;AACpB;AACA;AACA;AACA;AACA,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,EAAE,CAAC;AAChE,WAAW;AACX,SAAS;AACT,OAAO,EAAE;AACT,QAAQ,CAAC,QAAQ,EAAE,CAAC,sBAAsB,CAAC,CAAC;AAC5C,QAAQ,CAAC,UAAU,EAAE;AACrB,UAAU,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;AACrC,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,cAAc;AAC1B,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,YAAY;AACjC,cAAc,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AAClD,cAAc,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACtC,cAAc,GAAG,EAAE,CAAC;AACpB,cAAc,OAAO,EAAE;AACvB,gBAAgB,MAAM,EAAE,KAAK,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;AACnD,eAAe;AACf,cAAc,GAAG,EAAE;AACnB,gBAAgB,MAAM,CAAC,CAAC,CAAC,EAAE;AAC3B,kBAAkB,MAAM,IAAI;AAC5B,oBAAoB,IAAI;AACxB,mBAAmB,CAAC;AACpB;AACA,kBAAkB,MAAM,QAAQ;AAChC,oBAAoB,IAAI;AACxB,sBAAsB,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;AAChF,mBAAmB,CAAC;AACpB,kBAAkB,MAAM,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA,sBAAsB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACvD,qBAAqB,CAAC;AACtB,kBAAkB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;AAC/D,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB;AACA,kBAAkB,MAAM,aAAa,oCAAoC,EAAE;AAC3E;AACA,sBAAsB,IAAI,CAAC,aAAa,EAAE,aAAa;AACvD,uBAAuB,gBAAgB;AACvC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;AACzC;AACA,kBAAkB,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,EAAE;AACtE,oBAAoB,IAAI,CAAC,iBAAiB;AAC1C,sBAAsB,6CAA6C;AACnE,sBAAsB,gBAAgB;AACtC,qBAAqB,CAAC;AACtB,oBAAoB,CAAC,CAAC,eAAe,EAAE,CAAC;AACxC,oBAAoB,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1C,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB,kBAAkB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC7C,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;AACxC;AACA,kBAAkB;AAClB,oBAAoB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/E,oBAAoB;AACpB,oBAAoB,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC;AAC9C,mBAAmB;AACnB;AACA,kBAAkB,MAAM,gBAAgB;AACxC,qBAAqB,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA,sBAAsB,CAAC,EAAE;AACzB,oBAAoB,gBAAgB;AACpC,oBAAoB,qBAAqB;AACzC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA,sBAAsB,CAAC,EAAE;AACzB;AACA,qBAAqB,gBAAgB,CAAC,aAAa;AACnD,oBAAoB,gCAAgC;AACpD,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;AACnD,iBAAiB;AACjB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,GAAG;AACb,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,kBAAkB;AAC9B,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,eAAe;AACpC,cAAc,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AAClD,cAAc,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACtC,cAAc,GAAG,EAAE,CAAC;AACpB,cAAc,GAAG,EAAE;AACnB,gBAAgB,MAAM,CAAC,CAAC,CAAC,EAAE;AAC3B,kBAAkB,MAAM,IAAI,oCAAoC,IAAI,CAAC,CAAC;AACtE,kBAAkB,MAAM,UAAU,oCAAoC,EAAE;AACxE;AACA,sBAAsB,IAAI,CAAC,aAAa,EAAE,aAAa;AACvD,uBAAuB,aAAa;AACpC,mBAAmB,CAAC,CAAC;AACrB,kBAAkB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;AACzC,kBAAkB;AAClB,oBAAoB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;AAC5E,oBAAoB;AACpB;AACA,oBAAoB,IAAI,CAAC,iBAAiB;AAC1C,sBAAsB,mDAAmD;AACzE,qBAAqB,CAAC;AACtB,oBAAoB,CAAC,CAAC,eAAe,EAAE,CAAC;AACxC,mBAAmB,MAAM;AACzB,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC/C,mBAAmB;AACnB,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;AACxC,iBAAiB;AACjB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,UAAU,EAAE;AACrB,UAAU,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;AAClC,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,cAAc;AAC1B,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,oBAAoB;AACzC,cAAc,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AAClD,cAAc,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACtC,cAAc,GAAG,EAAE,CAAC;AACpB,cAAc,OAAO,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB,CAAC,CAAC,CAAC,EAAE;AAC7C,kBAAkB,MAAM,IAAI;AAC5B;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B,qBAAqB,CAAC;AACtB,kBAAkB,MAAM,gBAAgB;AACxC,qBAAqB,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACvE;AACA,kBAAkB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ;AACpD,oDAAoD,CAAC,EAAE;AACvD,sBAAsB,gBAAgB;AACtC,sBAAsB,qBAAqB;AAC3C,qBAAqB,EAAE,KAAK;AAC5B,mBAAmB,IAAI,CAAC,CAAC;AACzB;AACA,kBAAkB,MAAM,mBAAmB,mCAAmC;AAC9E,oBAAoB,EAAE;AACtB,sBAAsB,gBAAgB;AACtC,sBAAsB,aAAa;AACnC,qBAAqB,EAAE,KAAK,CAAC;AAC7B,kBAAkB,MAAM,gBAAgB,GAAG,mBAAmB;AAC9D,sBAAsB,MAAM,CAAC,QAAQ;AACrC,sBAAsB,mBAAmB;AACzC,qBAAqB;AACrB,sBAAsB,CAAC,CAAC;AACxB;AACA,kBAAkB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK;AAC/C,sBAAsB,MAAM,CAAC,QAAQ;AACrC,sBAAsB,IAAI,CAAC,KAAK;AAChC,qBAAqB;AACrB,sBAAsB,gBAAgB,CAAC;AACvC;AACA,kBAAkB,IAAI,UAAU,GAAG,UAAU,GAAG,gBAAgB,EAAE;AAClE,oBAAoB,IAAI,CAAC,iBAAiB;AAC1C,sBAAsB,6CAA6C;AACnE,wBAAwB,2BAA2B;AACnD,qBAAqB,CAAC;AACtB,oBAAoB,CAAC,CAAC,eAAe,EAAE,CAAC;AACxC,mBAAmB,MAAM;AACzB,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC/C,mBAAmB;AACnB,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;AACxC,iBAAiB;AACjB,eAAe;AACf,cAAc,GAAG,EAAE;AACnB,gBAAgB,MAAM,CAAC,CAAC,CAAC,EAAE;AAC3B;AACA;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB,IAAI;AACxB,oBAAoB,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAChD,iBAAiB;AACjB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,UAAU,GAAG;AACb,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,cAAc;AAC1B,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,oBAAoB;AACzC,cAAc,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AAClD,cAAc,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACtC,cAAc,GAAG,EAAE,CAAC;AACpB,cAAc,GAAG,EAAE;AACnB,gBAAgB,MAAM,CAAC,CAAC,CAAC,EAAE;AAC3B,kBAAkB,MAAM,IAAI;AAC5B,oBAAoB,IAAI;AACxB,mBAAmB,CAAC;AACpB,kBAAkB,MAAM,gBAAgB;AACxC,qBAAqB,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA,sBAAsB,CAAC,EAAE;AACzB,oBAAoB,gBAAgB;AACpC,oBAAoB,qBAAqB;AACzC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACjD,iBAAiB;AACjB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,CAAC,UAAU,EAAE;AACrB,UAAU,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;AACrC,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,cAAc;AAC1B,YAAY,CAAC,OAAO,EAAE;AACtB,cAAc,KAAK,EAAE,sBAAsB;AAC3C,cAAc,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AAClD,cAAc,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACtC,cAAc,GAAG,EAAE,CAAC;AACpB,cAAc,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;AAChC,cAAc,OAAO,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB,CAAC,CAAC,CAAC,EAAE;AAC7C,kBAAkB,MAAM,IAAI;AAC5B;AACA;AACA;AACA,sBAAsB,IAAI,CAAC,CAAC;AAC5B,kBAAkB,MAAM,QAAQ;AAChC,oBAAoB,IAAI;AACxB,sBAAsB,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;AAChF,mBAAmB,CAAC;AACpB;AACA,kBAAkB,MAAM,CAAC,KAAK,CAAC;AAC/B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,gCAAgC,CAAC;AAClE,mBAAmB,CAAC;AACpB;AACA,kBAAkB,MAAM,UAAU,GAAG,aAAa;AAClD,+CAA+C,KAAK;AACpD,mBAAmB,CAAC;AACpB,kBAAkB;AAClB,oBAAoB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,iBAAiB;AAC9E,oBAAoB;AACpB,oBAAoB,IAAI,CAAC,iBAAiB;AAC1C,sBAAsB,8CAA8C;AACpE,wBAAwB,CAAC,gCAAgC;AACzD,0BAA0B,UAAU,CAAC,iBAAiB;AACtD,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB,CAAC;AACtB,oBAAoB,CAAC,CAAC,eAAe,EAAE,CAAC;AACxC,mBAAmB,MAAM;AACzB,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC/C,mBAAmB;AACnB,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;AACxC,iBAAiB;AACjB,eAAe;AACf,cAAc,GAAG,EAAE;AACnB,gBAAgB,MAAM,CAAC,CAAC,CAAC,EAAE;AAC3B,kBAAkB,MAAM,IAAI,oCAAoC,IAAI,CAAC,CAAC;AACtE,kBAAkB,MAAM,QAAQ;AAChC,oBAAoB,IAAI;AACxB,sBAAsB,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;AAChF,mBAAmB,CAAC;AACpB,kBAAkB,MAAM,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA,sBAAsB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACvD,qBAAqB,CAAC;AACtB,kBAAkB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;AAC/D,oBAAoB,OAAO;AAC3B,mBAAmB;AACnB;AACA;AACA;AACA;AACA,sBAAsB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACzD,iBAAiB;AACjB,eAAe;AACf,aAAa,CAAC;AACd,WAAW,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,CAAC,QAAQ,EAAE,CAAC,uCAAuC,CAAC,CAAC;AAC7D,QAAQ,CAAC,QAAQ,EAAE;AACnB,UAAU,KAAK,EAAE,+BAA+B;AAChD,UAAU,YAAY,EAAE,cAAc;AACtC,UAAU,OAAO,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB,CAAC,CAAC,UAAU,EAAE;AAC1C,cAAc,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;AACpE;AACA,gDAAgD;AAChD,gBAAgB,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA,sBAAsB,CAAC,IAAI,EAAE,aAAa;AAC1C,mBAAmB,kBAAkB,CAAC;AACtC,gBAAgB,OAAO,CAAC,CAAC,eAAe,KAAK;AAC7C,gBAAgB,eAAe,CAAC,SAAS;AACzC,kBAAkB,6BAA6B,GAAG,UAAU,CAAC;AAC7D,gBAAgB,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAClD,gBAAgB,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAClD,eAAe,CAAC,CAAC;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B,CAAC,CAAC,CAAC,EAAE;AAC3C,cAAc,MAAM,IAAI;AACxB;AACA;AACA;AACA;AACA,kBAAkB,IAAI,CAAC,CAAC;AACxB,cAAc,MAAM,UAAU,GAAG,aAAa;AAC9C,2CAA2C,IAAI,CAAC,KAAK;AACrD,eAAe,CAAC;AAChB;AACA,cAAc,MAAM,UAAU,oCAAoC,EAAE;AACpE;AACA,iBAAiB,IAAI,CAAC,aAAa,EAAE,aAAa;AAClD,gBAAgB,aAAa;AAC7B,eAAe,CAAC,CAAC;AACjB,cAAc,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK;AACxD,kBAAkB,MAAM,CAAC,QAAQ;AACjC,kBAAkB,UAAU,CAAC,KAAK;AAClC,iBAAiB;AACjB,kBAAkB,CAAC,CAAC;AACpB,cAAc,IAAI,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAE;AACpE,gBAAgB,UAAU,CAAC,iBAAiB;AAC5C,kBAAkB,wDAAwD;AAC1E,oBAAoB,CAAC,wBAAwB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC9E,iBAAiB,CAAC;AAClB,gBAAgB,CAAC,CAAC,eAAe,EAAE,CAAC;AACpC,eAAe,MAAM;AACrB,gBAAgB,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AACjD,eAAe;AACf,cAAc,UAAU,CAAC,cAAc,EAAE,CAAC;AAC1C,aAAa;AACb,WAAW;AACX,UAAU,GAAG,EAAE;AACf,YAAY,MAAM,CAAC,CAAC,CAAC,EAAE;AACvB,cAAc,MAAM,IAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,IAAI;AACtB,iBAAiB,CAAC;AAClB;AACA,cAAc,MAAM,QAAQ;AAC5B,gBAAgB,IAAI;AACpB,kBAAkB,aAAa,EAAE,aAAa,EAAE,aAAa;AAC7D,eAAe,CAAC;AAChB;AACA;AACA,+CAA+C,CAAC,EAAE;AAClD;AACA,iBAAiB,IAAI,CAAC,aAAa,EAAE,aAAa;AAClD,gBAAgB,2BAA2B;AAC3C,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACpC;AACA,cAAc,MAAM,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACnD,iBAAiB,CAAC;AAClB,cAAc,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;AAC3D,gBAAgB,OAAO;AACvB,eAAe;AACf;AACA,cAAc,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AACjD;AACA,cAAc,IAAI,CAAC,gBAAgB,4BAA4B,IAAI,CAAC,KAAK,EAAE,CAAC;AAC5E;AACA,cAAc,MAAM,oBAAoB,GAAG,EAAE;AAC7C;AACA,iBAAiB,IAAI,EAAE,aAAa,EAAE,aAAa;AACnD,gBAAgB,uBAAuB;AACvC,eAAe,CAAC;AAChB;AACA;AACA;AACA;AACA,kBAAkB,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACrE;AACA;AACA;AACA;AACA;AACA,kBAAkB,CAAC,EAAE;AACrB;AACA,iBAAiB,IAAI,CAAC,aAAa,EAAE,aAAa;AAClD,gBAAgB,aAAa;AAC7B,eAAe,EAAE,eAAe,EAAE,CAAC;AACnC,aAAa;AACb,WAAW;AACX,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK;AAC3C,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,SAAS,CAAC,CAAC;AACX,QAAQ,GAAG;AACX,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,gBAAgB;AAC1B,UAAU,CAAC,OAAO,EAAE;AACpB,YAAY,KAAK,EAAE,kBAAkB;AACrC,YAAY,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AAChD,YAAY,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC,YAAY,GAAG,EAAE,CAAC;AAClB,YAAY,OAAO,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB,CAAC,CAAC,CAAC,EAAE;AACrC,gBAAgB,MAAM,IAAI;AAC1B;AACA;AACA;AACA;AACA,oBAAoB,IAAI,CAAC,CAAC;AAC1B;AACA,gBAAgB,MAAM,QAAQ;AAC9B,kBAAkB,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa;AAClE,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,mBAAmB,mCAAmC;AAC5E,kBAAkB,EAAE;AACpB,oBAAoB,QAAQ;AAC5B,oBAAoB,aAAa;AACjC,mBAAmB,EAAE,KAAK,CAAC;AAC3B,gBAAgB,MAAM,gBAAgB,GAAG,mBAAmB;AAC5D,oBAAoB,MAAM,CAAC,QAAQ;AACnC,oBAAoB,mBAAmB;AACvC,mBAAmB;AACnB,oBAAoB,CAAC,CAAC;AACtB;AACA,gBAAgB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK;AACzC,oBAAoB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/C,oBAAoB,gBAAgB,CAAC;AACrC;AACA,gBAAgB,MAAM,CAAC,KAAK,CAAC;AAC7B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,gCAAgC,CAAC;AAChE,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,UAAU,GAAG,aAAa;AAChD,6CAA6C,KAAK;AAClD,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,uBAAuB;AAC7C,kDAAkD,CAAC,EAAE;AACrD,oBAAoB,QAAQ;AAC5B,oBAAoB,uBAAuB;AAC3C,mBAAmB,EAAE,KAAK,CAAC;AAC3B,gBAAgB,MAAM,oBAAoB,GAAG,uBAAuB;AACpE,oBAAoB,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC;AAC5D,oBAAoB,CAAC,CAAC;AACtB;AACA,gBAAgB;AAChB,kBAAkB,CAAC,oBAAoB;AACvC,qBAAqB,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC;AAC3D,kBAAkB,gBAAgB;AAClC,kBAAkB;AAClB,kBAAkB,IAAI,CAAC,iBAAiB;AACxC,oBAAoB,yDAAyD;AAC7E,oBAAoB,mCAAmC;AACvD,mBAAmB,CAAC;AACpB,kBAAkB,CAAC,CAAC,eAAe,EAAE,CAAC;AACtC,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;AACxC,kBAAkB,OAAO,KAAK,CAAC;AAC/B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC3C,gBAAgB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB,CAAC,GAAG;AAClC,gBAAgB,MAAM,IAAI;AAC1B;AACA;AACA;AACA;AACA,oBAAoB,IAAI,CAAC,CAAC;AAC1B,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D,gBAAgB,MAAM,WAAW;AACjC,kBAAkB,IAAI,CAAC,aAAa,EAAE,aAAa;AACnD,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,QAAQ;AAC9B,kBAAkB,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa;AAClE,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,gBAAgB;AACtC;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,oBAAoB,QAAQ;AAC5B,oBAAoB,aAAa;AACjC,mBAAmB,CAAC,CAAC;AACrB;AACA,gBAAgB,MAAM,cAAc,+BAA+B,EAAE;AACrE,kBAAkB,WAAW,EAAE,iBAAiB;AAChD,iBAAiB,CAAC,CAAC;AACnB;AACA,gBAAgB,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;AACjE,kBAAkB,MAAM,KAAK,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3E,kBAAkB,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC;AACnD;AACA,oBAAoB,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM;AACnD,wBAAwB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AAC3C,wBAAwB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AAC3C,mBAAmB,EAAE,MAAM,CAAC,QAAQ;AACpC,2CAA2C,KAAK,CAAC,OAAO,CAAC,GAAG;AAC5D,mBAAmB,CAAC,CAAC;AACrB,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,MAAM,CAAC,KAAK,CAAC;AAC7B,kBAAkB,EAAE,CAAC,WAAW,EAAE,gCAAgC,CAAC;AACnE,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,sBAAsB;AACzD,6CAA6C,KAAK;AAClD,iBAAiB,CAAC;AAClB;AACA,gBAAgB,cAAc,CAAC,WAAW,GAAG,EAAE,CAAC;AAChD,gBAAgB,cAAc,CAAC,MAAM;AACrC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK;AACvD,oBAAoB,OAAO,GAAG,CAAC,OAAO,EAAE;AACxC,sBAAsB,GAAG;AACzB,sBAAsB,GAAG;AACzB,sBAAsB,CAAC,OAAO,EAAE;AAChC,wBAAwB,KAAK,EAAE,6BAA6B,GAAG,KAAK;AACpE,wBAAwB,OAAO,EAAE;AACjC,0BAA0B,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACzE,yBAAyB;AACzB,wBAAwB,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;AACjD,wBAAwB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;AAC1D,4BAA4B,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;AACrD,4BAA4B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAC3C,wBAAwB,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC;AAChE,4BAA4B,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACrE,4BAA4B,GAAG;AAC/B,wBAAwB,GAAG,EAAE,GAAG;AAChC,uBAAuB,CAAC;AACxB,sBAAsB,GAAG;AACzB;AACA,qBAAqB,CAAC,CAAC;AACvB,mBAAmB,CAAC;AACpB,iBAAiB,CAAC;AAClB,eAAe;AACf,aAAa;AACb,YAAY,GAAG,EAAE;AACjB,cAAc,MAAM,CAAC,CAAC,CAAC,EAAE;AACzB,gBAAgB,MAAM,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB,mBAAmB,CAAC;AACpB,gBAAgB,MAAM,WAAW;AACjC,kBAAkB,IAAI,CAAC,aAAa,EAAE,aAAa;AACnD,iBAAiB,CAAC;AAClB;AACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;AACjD,kBAAkB,OAAO;AACzB,iBAAiB;AACjB;AACA,gBAAgB,MAAM,CAAC,KAAK,CAAC;AAC7B,kBAAkB,EAAE,CAAC,WAAW,EAAE,gCAAgC,CAAC;AACnE,iBAAiB,CAAC;AAClB;AACA,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D,gBAAgB,IAAI;AACpB,kBAAkB,MAAM,UAAU,GAAG,aAAa;AAClD,+CAA+C,KAAK;AACpD,mBAAmB,CAAC;AACpB;AACA,kBAAkB,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AACzC,iBAAiB,CAAC,MAAM;AACxB,kBAAkB,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,CAAC;AAC3E,kBAAkB,CAAC,CAAC,eAAe,EAAE,CAAC;AACtC,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;AACxC,kBAAkB,OAAO;AACzB,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC3C,gBAAgB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB,CAAC,EAAE;AACvB;AACA,mBAAmB,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa;AACnE,kBAAkB,aAAa;AAC/B,iBAAiB,EAAE,eAAe,EAAE,CAAC;AACrC;AACA,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxC,eAAe;AACf,aAAa;AACb,WAAW,CAAC;AACZ,UAAU,CAAC,KAAK,EAAE;AAClB,YAAY,KAAK,EAAE,gBAAgB;AACnC,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,CAAC,UAAU,EAAE;AACnB,QAAQ,CAAC,QAAQ,EAAE,CAAC,oCAAoC,CAAC,CAAC;AAC1D,QAAQ,CAAC,QAAQ,EAAE;AACnB,UAAU,KAAK,EAAE,gBAAgB;AACjC,UAAU,YAAY,EAAE,mBAAmB;AAC3C,UAAU,GAAG,EAAE;AACf,YAAY,MAAM,CAAC,GAAG;AACtB,cAAc,MAAM,YAAY,kCAAkC,EAAE;AACpE,4CAA4C,IAAI,CAAC,aAAa,GAAG,eAAe;AAChF,eAAe,CAAC,CAAC;AACjB;AACA,cAAc,MAAM,GAAG,oCAAoC,CAAC,IAAI,EAAE,KAAK,CAAC;AACxE,cAAc,MAAM,UAAU;AAC9B,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO;AACtC,eAAe,CAAC;AAChB;AACA,cAAc,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC;AAC5C,cAAc,YAAY,CAAC,MAAM;AACjC,gBAAgB,GAAG;AACnB,kBAAkB,OAAO,EAAE;AAC3B,oBAAoB,cAAc;AAClC,oBAAoB,CAAC,OAAO,EAAE;AAC9B,sBAAsB,IAAI,EAAE,QAAQ;AACpC,sBAAsB,KAAK,EAAE,uBAAuB;AACpD,sBAAsB,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AAC1C,sBAAsB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAC9C,qBAAqB,CAAC;AACtB,mBAAmB;AACnB,iBAAiB;AACjB,gBAAgB,GAAG;AACnB,gBAAgB,GAAG;AACnB,kBAAkB,OAAO,EAAE;AAC3B,oBAAoB,QAAQ;AAC5B,oBAAoB,CAAC,OAAO,EAAE;AAC9B,sBAAsB,IAAI,EAAE,QAAQ;AACpC,sBAAsB,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AAC1C,sBAAsB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAC9C,sBAAsB,KAAK,EAAE,6BAA6B,GAAG,UAAU;AACvE,sBAAsB,GAAG,sBAAsB,CAAC,UAAU,CAAC;AAC3D,qBAAqB,CAAC;AACtB,mBAAmB;AACnB,iBAAiB;AACjB,gBAAgB,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU;AACvD,oBAAoB,EAAE;AACtB,oBAAoB,GAAG,CAAC,OAAO,EAAE;AACjC,oBAAoB,CAAC,OAAO,EAAE;AAC9B,sBAAsB,KAAK,EAAE,cAAc;AAC3C,sBAAsB,IAAI,EAAE,UAAU;AACtC,qBAAqB,CAAC;AACtB,oBAAoB,eAAe;AACnC,mBAAmB,CAAC;AACpB,gBAAgB,GAAG;AACnB,gBAAgB,GAAG,CAAC,QAAQ,EAAE;AAC9B,kBAAkB,GAAG,EAAE;AACvB,oBAAoB,KAAK,CAAC,CAAC,CAAC,EAAE;AAC9B,sBAAsB,CAAC,CAAC,cAAc,EAAE,CAAC;AACzC,sBAAsB,MAAM,QAAQ;AACpC,wBAAwB,IAAI,CAAC,aAAa;AAC1C,uBAAuB,CAAC;AACxB,sBAAsB,MAAM,cAAc;AAC1C;AACA,2DAA2D;AAC3D,4BAA4B,QAAQ,CAAC,sBAAsB;AAC3D,6BAA6B,KAAK;AAClC,yBAAyB,CAAC;AAC1B;AACA,sBAAsB,MAAM,qBAAqB;AACjD,wBAAwB,MAAM,CAAC,QAAQ,iCAAiC,CAAC,EAAE;AAC3E,0BAA0B,QAAQ;AAClC,0BAA0B,wBAAwB;AAClD,yBAAyB,EAAE,KAAK,CAAC,CAAC;AAClC,sBAAsB,MAAM,eAAe;AAC3C,wDAAwD,CAAC,EAAE;AAC3D,0BAA0B,QAAQ;AAClC,0BAA0B,kBAAkB;AAC5C,yBAAyB,EAAE,KAAK,CAAC;AACjC,sBAAsB,MAAM,YAAY;AACxC,6DAA6D,CAAC,EAAE;AAChE,0BAA0B,QAAQ;AAClC,0BAA0B,eAAe;AACzC,yBAAyB,GAAG,OAAO,CAAC;AACpC;AACA,sBAAsB,MAAM,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,EAAE;AAC5B;AACA,6BAA6B,QAAQ,EAAE,aAAa,EAAE,aAAa;AACnE,4BAA4B,aAAa;AACzC,2BAA2B;AAC3B,yBAAyB,CAAC;AAC1B;AACA,sBAAsB;AACtB,wBAAwB,cAAc,KAAK,aAAa;AACxD,wBAAwB,cAAc,KAAK,cAAc;AACzD,wBAAwB;AACxB,wBAAwB,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC;AAC5D,0BAA0B,qBAAqB;AAC/C,0BAA0B,MAAM,CAAC,eAAe,CAAC;AACjD,0BAA0B,YAAY;AACtC,yBAAyB,CAAC;AAC1B,uBAAuB,MAAM;AAC7B,wBAAwB,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC;AAC5D,0BAA0B,qBAAqB;AAC/C,0BAA0B,MAAM,CAAC,eAAe,CAAC;AACjD,0BAA0B,YAAY;AACtC,yBAAyB,CAAC;AAC1B,uBAAuB;AACvB;AACA,sBAAsB,MAAM,gBAAgB;AAC5C;AACA;AACA;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA,2BAA2B,QAAQ,CAAC,aAAa,EAAE,aAAa;AAChE,0BAA0B,mBAAmB;AAC7C,yBAAyB,CAAC,CAAC;AAC3B,sBAAsB,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;AAC1D,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3B,eAAe,CAAC;AAChB,aAAa;AACb,WAAW;AACX,SAAS,EAAE;AACX,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC;AAClE,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,KAAK;AACrD,YAAY;AACZ,cAAc,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC;AAC1C,cAAc;AACd,WAAW,CAAC;AACZ,SAAS,CAAC;AACV,QAAQ,GAAG;AACX,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACxC,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;AAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACxC,KAAK,MAAM;AACX,MAAM,MAAM,UAAU;AACtB;AACA;AACA;AACA;AACA,WAAW,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;AACnC,MAAM,UAAU,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAK;AACL;AACA,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,GAAG;AACH,CAAC;;ACl+CD;AACA;AACA;AACA,MAAM,eAAe,GAAG;AACxB;AACA;AACA,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC;AAC1B,EAAE,UAAU,CAAC,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,yCAAyC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AACjE,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,qDAAqD;AACrD,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,mCAAmC;AACnC,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;AAC5B,MAAM,WAAW,GAAG,KAAK,KAAK,SAAS;AACvC,QAAQ,QAAQ;AAChB,QAAQ,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,wDAAwD;AAC5D,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,MAAM,CAAC;AACb,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,GAAG,oDAAoD;AACjE,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,MAAM,MAAM,CAAC;AACb,IAAI,OAAO;AACX,MAAM,OAAO,EAAE,+CAA+C;AAC9D,QAAQ,+DAA+D;AACvE,MAAM,KAAK,EAAE,GAAG,KAAK,SAAS;AAC9B,KAAK,CAAC;AACN,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACzC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE;AACvD,MAAM,CAAC,GAAG,EAAE;AACZ,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW;AAChD,YAAY,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3C,YAAY,SAAS;AACrB,OAAO,EAAE;AACT,QAAQ,oBAAoB,EAAE,WAAW,IAAI,cAAc;AAC3D,OAAO,CAAC;AACR,MAAM,CAAC,MAAM,EAAE;AACf,QAAQ,KAAK,EAAE,0DAA0D;AACzE,UAAU,yDAAyD;AACnE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;AACf,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;AAC7B,MAAM,SAAS;AACf,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE;AACxD,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC;AACtC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,cAAc;AAChE,KAAK,EAAE;AACP,MAAM,CAAC,GAAG,EAAE;AACZ;AACA,QAAQ,IAAI,EAAE,oBAAoB;AAClC,QAAQ,GAAG,EAAE;AACb,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE;AACpB,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,WAAW;AACX,SAAS;AACT,QAAQ,KAAK,EAAE,0DAA0D;AACzE,UAAU,yDAAyD;AACnE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;AACf,MAAM,GAAG;AACT,MAAM,CAAC,QAAQ,EAAE;AACjB,QAAQ,GAAG,EAAE;AACb,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE;AACpB,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,YAAY,OAAO,CAAC,GAAG,kDAAkD;AACzE,cAAc,IAAI;AAClB,cAAc,MAAM,CAAC,CAAC;AACtB,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;AAC9C,QAAQ,OAAO,EAAE;AACjB,UAAU,MAAM,EAAE,KAAK;AACvB,SAAS;AACT,OAAO,EAAE;AACT,QAAQ,cAAc;AACtB,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC7E,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AChGD;AACA;AACA;AACA,MAAM,SAAS,GAAG;AAClB,EAAE,WAAW,EAAE,UAAU;AACzB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC;AACnB;AACA,EAAE,UAAU,CAAC,GAAG;AAChB;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,CAAC,WAAW;AACrB,IAAI,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,oDAAoD;AACxD,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,EAAE,CAAC,CAAC;AACV,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE;AAClC;AACA,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAC9B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,aAAa;AAC/D,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAClB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB;AACA,IAAI,wCAAwC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC/D,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;AAC3B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE;AAC/C,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,+BAA+B;AACvC,QAAQ,CAAC,OAAO,EAAE;AAClB,UAAU,IAAI,EAAE,UAAU;AAC1B,UAAU,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC;AACxC,UAAU,MAAM,EAAE,IAAI;AACtB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AC5CD;AACA;AACA;AACA,MAAM,SAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC;AACnB,EAAE,WAAW,EAAE,kBAAkB;AACjC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB;AACA,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACnE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI;AACJ,MAAM,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAChC,MAAM;AACN,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B;AACA,IAAI,UAAU,CAAC,MAAM;AACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AAC1C,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACvC,GAAG;AACH,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,oBAAoB,EAAE,KAAK;AAC/B,IAAI,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM;AAC9C,IAAI,cAAc,EAAE,gBAAgB;AACpC,IAAI,QAAQ,EAAE,KAAK;AACnB,GAAG,EAAE;AACL,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAC9B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,WAAW;AAC7D,KAAK,EAAE;AACP,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AACtB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,eAAe;AACrB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,KAAK,EAAE;AACd,QAAQ,KAAK,EAAE,cAAc;AAC7B,OAAO,EAAE;AACT,QAAQ,KAAK,CAAC,mBAAmB,CAAC;AAClC,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,oBAAoB,yCAAyC;AACvE,YAAY,oBAAoB;AAChC,aAAa,SAAS;AACtB,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,KAAK;AACf,UAAU,UAAU,EAAE,aAAa;AACnC,UAAU,IAAI;AACd,mDAAmD;AACnD,cAAc,oBAAoB;AAClC,eAAe,SAAS,EAAE,IAAI;AAC9B,WAAW;AACX,UAAU,OAAO,EAAE,cAAc;AACjC,UAAU,gBAAgB,EAAE,MAAM;AAClC;AACA,UAAU,QAAQ;AAClB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,MAAM,aAAa;AACnB,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,CAAC,KAAK,EAAE;AACd,QAAQ,KAAK,EAAE,YAAY;AAC3B,OAAO,EAAE;AACT,QAAQ,KAAK,CAAC,mBAAmB,CAAC;AAClC,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,oBAAoB,EAAE;AAChC,YAAY,2CAA2C;AACvD,cAAc,oBAAoB;AAClC,eAAe,SAAS,CAAC;AACzB,YAAY,WAAW,EAAE,eAAe;AACxC,WAAW;AACX,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,KAAK,yCAAyC;AACxD,YAAY,oBAAoB;AAChC,YAAY,KAAK;AACjB,UAAU,UAAU,EAAE,aAAa;AACnC,UAAU,IAAI;AACd,mDAAmD;AACnD,cAAc,oBAAoB;AAClC,eAAe,SAAS,EAAE,IAAI;AAC9B,WAAW;AACX,UAAU,OAAO,EAAE,cAAc;AACjC,UAAU,gBAAgB,EAAE,MAAM;AAClC;AACA,UAAU,QAAQ;AAClB,SAAS,CAAC;AACV,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC;AACV,IAAI,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,oBAAoB;AACxD,IAAI,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK;AAChD,GAAG,EAAE;AACL,IAAI,MAAM,WAAW;AACrB,6CAA6C;AAC7C,QAAQ,oBAAoB;AAC5B,SAAS,KAAK,CAAC;AACf,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAC9B,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,aAAa;AAC/D,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,CAAC,GAAG,EAAE;AACd,UAAU,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC;AACpC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;AACrB,QAAQ,GAAG;AACX,QAAQ,gEAAgE;AACxE,UAAU,gBAAgB;AAC1B,UAAU;AACV;AACA;AACA,UAAU,OAAO,iCAAiC,OAAO,CAAC;AAC1D;AACA,UAAU,MAAM;AAChB,YAAY,MAAM;AAClB,WAAW;AACX,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,KAAK,EAAE,KAAK,IAAI,WAAW;AACrC,UAAU,cAAc,EAAE,aAAa;AACvC,UAAU,aAAa,yCAAyC;AAChE,YAAY,oBAAoB;AAChC,aAAa,SAAS;AACtB,UAAU,KAAK,EAAE,IAAI;AACrB;AACA,UAAU,aAAa;AACvB,SAAS,CAAC,CAAC,QAAQ,CAAC;AACpB,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACrID;AACA;AACA;AACA,MAAM,cAAc,GAAG;AACvB,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC;AACzB,EAAE,WAAW,EAAE,uBAAuB;AACtC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;AACxB,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACjE;AACA,IAAI,IAAI,MAAM,GAAG,QAAQ,EAAE,YAAY,CAAC;AACxC;AACA,IAAI,IAAI,QAAQ,EAAE,YAAY,EAAE,IAAI,KAAK,OAAO,EAAE;AAClD,MAAM,MAAM,OAAO,0CAA0C;AAC7D,QAAQ,QAAQ,CAAC,YAAY;AAC7B,QAAQ,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK;AACnC,QAAQ,OAAO,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC;AAC5C,OAAO,CAAC,CAAC;AACT,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACxC,QAAQ,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC;AACpC,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,MAAM,KAAK,+CAA+C,CAAC,MAAM,GAAG,MAAM;AAC9E,MAAM,GAAG;AACT,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,2CAA2C,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE;AAChF,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC3B,IAAI,MAAM,KAAK;AACf;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO;AAChC,MAAM,KAAK,CAAC,uBAAuB;AACnC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK;AACxB,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC;AAC3B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAClB,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AACrB,qCAAqC;AACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC;AACpC,QAAQ,WAAW,GAAG,KAAK,CAAC;AAC5B,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACpB,IAAI,MAAM,CAAC,KAAK,EAAE,uBAAuB,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,OAAO,CAAC;AACR;AACA,IAAI,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;AACzC,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,eAAe;AACrB,MAAM,CAAC,MAAM,EAAE;AACf,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;AACrC,QAAQ,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,iBAAiB;AACrE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACjB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;AAChB,IAAI,MAAM;AACV,MAAM,oBAAoB;AAC1B,MAAM,KAAK;AACX;AACA,KAAK,GAAG,IAAI,CAAC;AACb,IAAI,MAAM,sBAAsB,+CAA+C;AAC/E,MAAM,oBAAoB;AAC1B,OAAO,MAAM,CAAC;AACd,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC/D;AACA,IAAI,IAAI,WAAW,CAAC;AACpB,IAAI,IAAI,sBAAsB,IAAI,OAAO,IAAI,IAAI,EAAE;AACnD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK;AAC7E,QAAQ,OAAO,GAAG,KAAK,KAAK,CAAC;AAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACd,KAAK;AACL;AACA,IAAI,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,KAAK;AACpE;AACA;AACA,MAAM;AACN,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;AACrC,QAAQ,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,QAAQ;AACtD,UAAU,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;AACxC,SAAS;AACT,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,MAAM,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;AACxC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC;AACA,IAAI,MAAM,KAAK;AACf;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,QAAQ,OAAO;AACf,4DAA4D;AAC5D,UAAU,KAAK,EAAE,eAAe;AAChC,UAAU,WAAW,EAAE,iBAAiB;AACxC,UAAU,KAAK,EAAE,iBAAiB;AAClC;AACA,UAAU,OAAO,EAAE,iBAAiB;AACpC,UAAU,KAAK,EAAE,WAAW,IAAI,EAAE;AAClC,UAAU,GAAG,EAAE;AACf,YAAY,KAAK,CAAC,GAAG;AACrB,cAAc,MAAM,EAAE;AACtB,gBAAgB,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa;AAChE,kBAAkB,kBAAkB;AACpC,iBAAiB;AACjB,eAAe,CAAC;AAChB,cAAc,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,sBAAsB;AAC5D;AACA,gBAAgB,CAAC,IAAI,EAAE,KAAK;AAC5B,eAAe,IAAI,EAAE,CAAC,CAAC;AACvB,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,CAAC,CAAC;AACT,IAAI,KAAK,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;AAC3D;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;AACnC,MAAM,KAAK,EAAE,oBAAoB,EAAE,WAAW,IAAI,aAAa;AAC/D,KAAK,EAAE;AACP,MAAM,CAAC,OAAO,EAAE;AAChB,QAAQ,iBAAiB;AACzB,QAAQ,KAAK;AACb,OAAO,CAAC;AACR,MAAM,CAAC,IAAI,CAAC;AACZ,MAAM,oBAAoB;AAC1B,MAAM,CAAC,MAAM,EAAE;AACf,QAAQ,KAAK,EAAE,iBAAiB;AAChC,OAAO,EAAE;AACT,QAAQ,KAAK,IAAI,EAAE;AACnB,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;ACjGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,0BAA0B,GAAG,CAAC,MAAM,KAAK;AACtD,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AACrD,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM,4CAA4C;AAClD,KAAK,CAAC;AACN,GAAG;AACH,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AACnD,IAAI,uCAAuC,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC5D,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC7B,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM,8DAA8D;AACpE,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK,CAAC;AACZ;AACA;AACA;AACA,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACjC;AACA;AACA,IAAI,IAAI,CAAC,2BAA2B,GAAG,SAAS,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,cAAc,GAAG;AAC1B,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,KAAK,EAAE,SAAS;AACtB,MAAM,GAAG,EAAE,OAAO;AAClB,MAAM,OAAO,EAAE,WAAW;AAC1B,MAAM,MAAM,EAAE,UAAU;AACxB,MAAM,MAAM,EAAE,UAAU;AACxB,MAAM,YAAY,EAAE,gBAAgB;AACpC,MAAM,MAAM,EAAE,UAAU;AACxB,MAAM,cAAc,EAAE,kBAAkB;AACxC,MAAM,eAAe,EAAE,mBAAmB;AAC1C,MAAM,KAAK,EAAE,SAAS;AACtB,MAAM,KAAK,EAAE,SAAS;AACtB;AACA;AACA;AACA,MAAM,MAAM,EAAE,UAAU;AACxB,MAAM,MAAM,EAAE,UAAU;AACxB,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,IAAI,EAAE,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM,UAAU,EAAE,CAAC,cAAc,CAAC;AAClC,MAAM,KAAK,EAAE,aAAa;AAC1B,MA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","x_google_ignoreList":[0,1,9,10]}
|