@sourcegraph/amp 0.0.1749254507-g977549 → 0.0.1749256326-gf8b1cf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/amp.js +1 -2
- package/dist/client-D82aFqMl.js +0 -1
- package/dist/console-RPzEsLY0.js +0 -1
- package/dist/create_file.node-Dg6SfP0E.js +0 -1
- package/dist/edit_file.node-DOTivrdL.js +0 -1
- package/dist/executable-Cvv6G9ik.js +0 -1
- package/dist/files-DrSncnX3.js +0 -1
- package/dist/fuzzy-server.js +0 -1
- package/dist/glob.node-Betywdle.js +0 -1
- package/dist/index-C1JH-cfZ.js +0 -1
- package/dist/list_directory.node-B8bOIV1q.js +0 -1
- package/dist/load-profile-CgexvkzB.js +0 -1
- package/dist/{main-CSw2Cx-a.js → main-8KUolY-x.js} +10 -11
- package/dist/node-BIJw0rpH.js +0 -1
- package/dist/{node-CaahOEeV.js → node-BSnweH9G.js} +1 -2
- package/dist/node-CQsX6uby.js +0 -1
- package/dist/node-DeN3f1CH.js +0 -1
- package/dist/node-cSLqYAQI.js +0 -1
- package/dist/node-l0bjR3wx.js +0 -1
- package/dist/read_file.node-Cf-KhpsY.js +0 -1
- package/dist/{stdio-De_F_RHg.js → stdio-KJwwMQUN.js} +1 -2
- package/dist/storybook.js +0 -1
- package/dist/undo_edit.node-CCYYuJ4U.js +0 -1
- package/package.json +2 -1
- package/dist/amp.js.map +0 -1
- package/dist/client-D82aFqMl.js.map +0 -1
- package/dist/console-RPzEsLY0.js.map +0 -1
- package/dist/create_file.node-Dg6SfP0E.js.map +0 -1
- package/dist/edit_file.node-DOTivrdL.js.map +0 -1
- package/dist/executable-Cvv6G9ik.js.map +0 -1
- package/dist/files-DrSncnX3.js.map +0 -1
- package/dist/fuzzy-server.js.map +0 -1
- package/dist/glob.node-Betywdle.js.map +0 -1
- package/dist/index-C1JH-cfZ.js.map +0 -1
- package/dist/list_directory.node-B8bOIV1q.js.map +0 -1
- package/dist/load-profile-CgexvkzB.js.map +0 -1
- package/dist/main-CSw2Cx-a.js.map +0 -1
- package/dist/node-BIJw0rpH.js.map +0 -1
- package/dist/node-CQsX6uby.js.map +0 -1
- package/dist/node-CaahOEeV.js.map +0 -1
- package/dist/node-DeN3f1CH.js.map +0 -1
- package/dist/node-cSLqYAQI.js.map +0 -1
- package/dist/node-l0bjR3wx.js.map +0 -1
- package/dist/read_file.node-Cf-KhpsY.js.map +0 -1
- package/dist/stdio-De_F_RHg.js.map +0 -1
- package/dist/storybook.js.map +0 -1
- package/dist/undo_edit.node-CCYYuJ4U.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"node-cSLqYAQI.js","sources":["../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/translator.js","../../node_modules/.pnpm/he@1.2.0/node_modules/he/he.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/node.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/type.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/comment.js","../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js","../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js","../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js","../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js","../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/stringify.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/traversal.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/manipulation.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/querying.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/legacy.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/helpers.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/feeds.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/index.js","../../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js","../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/types.js","../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/parse.js","../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/stringify.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/sort.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/attributes.js","../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/parse.js","../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/compile.js","../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/index.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/filters.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudos.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/aliases.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/subselects.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/index.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/general.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/compile.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/index.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/back.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/matcher.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/void-tag.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/text.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/html.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/parse.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/valid.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/index.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/utilities.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/config.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/nodes.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/visitor.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/main.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/index.js","../../core/src/tools/builtin/read_web_page/node.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTranslatorContext = exports.isTranslatorConfig = exports.TranslatorCollection = exports.PostProcessResult = void 0;\nvar PostProcessResult;\n(function (PostProcessResult) {\n PostProcessResult[PostProcessResult[\"NoChange\"] = 0] = \"NoChange\";\n PostProcessResult[PostProcessResult[\"RemoveNode\"] = 1] = \"RemoveNode\";\n})(PostProcessResult = exports.PostProcessResult || (exports.PostProcessResult = {}));\n// endregion\n/* ****************************************************************************************************************** */\n// region: TranslatorCollection\n/* ****************************************************************************************************************** */\nclass TranslatorCollection {\n get size() { return Object.keys(this).length; }\n /**\n * Add / update translator config for one or more element tags\n */\n set(keys, config, /* @internal */ preserveBase) {\n keys.split(',').forEach(el => {\n el = el.toUpperCase();\n let res = config;\n if (preserveBase) {\n const base = this[el];\n if ((0, exports.isTranslatorConfig)(base))\n res = !(0, exports.isTranslatorConfig)(config)\n ? Object.assign((...args) => config.apply(void 0, args), { base })\n : Object.assign(Object.assign({}, base), config);\n }\n this[el] = res;\n });\n }\n /**\n * Get translator config for element tag\n */\n get(key) {\n return this[key.toUpperCase()];\n }\n /**\n * Returns array of entries\n */\n entries() {\n return Object.entries(this);\n }\n /**\n * Remove translator config for one or more element tags\n */\n remove(keys) {\n keys.split(',').forEach(el => delete this[el.toUpperCase()]);\n }\n}\nexports.TranslatorCollection = TranslatorCollection;\n// endregion\n/* ****************************************************************************************************************** */\n// region: Utilities\n/* ****************************************************************************************************************** */\n/**\n * Only use to narrow union of types where only TranslatorConfig has JS type 'object'\n */\nconst isTranslatorConfig = (v) => typeof v === 'object';\nexports.isTranslatorConfig = isTranslatorConfig;\nfunction createTranslatorContext(visitor, node, metadata, base) {\n const { instance, nodeMetadata, } = visitor;\n return Object.assign({ node, options: instance.options, parent: node.parentNode, nodeMetadata,\n visitor,\n base }, metadata);\n}\nexports.createTranslatorContext = createTranslatorContext;\n// endregion\n//# sourceMappingURL=translator.js.map","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar he_1 = require(\"he\");\n/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nvar Node = /** @class */ (function () {\n function Node(parentNode, range) {\n if (parentNode === void 0) { parentNode = null; }\n this.parentNode = parentNode;\n this.childNodes = [];\n Object.defineProperty(this, 'range', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: range !== null && range !== void 0 ? range : [-1, -1]\n });\n }\n /**\n * Remove current node\n */\n Node.prototype.remove = function () {\n var _this = this;\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n this.parentNode.childNodes = children.filter(function (child) {\n return _this !== child;\n });\n this.parentNode = null;\n }\n return this;\n };\n Object.defineProperty(Node.prototype, \"innerText\", {\n get: function () {\n return this.rawText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"textContent\", {\n get: function () {\n return (0, he_1.decode)(this.rawText);\n },\n set: function (val) {\n this.rawText = (0, he_1.encode)(val);\n },\n enumerable: false,\n configurable: true\n });\n return Node;\n}());\nexports.default = Node;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexports.default = NodeType;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar node_1 = __importDefault(require(\"./node\"));\nvar type_1 = __importDefault(require(\"./type\"));\nvar CommentNode = /** @class */ (function (_super) {\n __extends(CommentNode, _super);\n function CommentNode(rawText, parentNode, range, rawTagName) {\n if (parentNode === void 0) { parentNode = null; }\n if (rawTagName === void 0) { rawTagName = '!--'; }\n var _this = _super.call(this, parentNode, range) || this;\n _this.rawText = rawText;\n _this.rawTagName = rawTagName;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = type_1.default.COMMENT_NODE;\n return _this;\n }\n CommentNode.prototype.clone = function () {\n return new CommentNode(this.rawText, null, undefined, this.rawTagName);\n };\n Object.defineProperty(CommentNode.prototype, \"text\", {\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n return this.rawText;\n },\n enumerable: false,\n configurable: true\n });\n CommentNode.prototype.toString = function () {\n return \"<!--\".concat(this.rawText, \"-->\");\n };\n return CommentNode;\n}(node_1.default));\nexports.default = CommentNode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOuterHTML = getOuterHTML;\nexports.getInnerHTML = getInnerHTML;\nexports.getText = getText;\nexports.textContent = textContent;\nexports.innerText = innerText;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChildren = getChildren;\nexports.getParent = getParent;\nexports.getSiblings = getSiblings;\nexports.getAttributeValue = getAttributeValue;\nexports.hasAttrib = hasAttrib;\nexports.getName = getName;\nexports.nextElementSibling = nextElementSibling;\nexports.prevElementSibling = prevElementSibling;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeElement = removeElement;\nexports.replaceElement = replaceElement;\nexports.appendChild = appendChild;\nexports.append = append;\nexports.prependChild = prependChild;\nexports.prepend = prepend;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n var childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filter = filter;\nexports.find = find;\nexports.findOneChild = findOneChild;\nexports.findOne = findOne;\nexports.existsOne = existsOne;\nexports.findAll = findAll;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n /** Stack of the indices within the arrays. */\n var indexStack = [0];\n for (;;) {\n // First, check if the current array has any more elements to look at.\n if (indexStack[0] >= nodeStack[0].length) {\n // If we have no more arrays to look at, we are done.\n if (indexStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n /*\n * Add the children to the stack. We are depth-first, so this is\n * the next array we look at.\n */\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var searchedNodes = Array.isArray(nodes) ? nodes : [nodes];\n for (var i = 0; i < searchedNodes.length; i++) {\n var node = searchedNodes[i];\n if ((0, domhandler_1.isTag)(node) && test(node)) {\n return node;\n }\n if (recurse && (0, domhandler_1.hasChildren)(node) && node.children.length > 0) {\n var found = findOne(test, node.children, true);\n if (found)\n return found;\n }\n }\n return null;\n}\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return (Array.isArray(nodes) ? nodes : [nodes]).some(function (node) {\n return ((0, domhandler_1.isTag)(node) && test(node)) ||\n ((0, domhandler_1.hasChildren)(node) && existsOne(test, node.children));\n });\n}\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n var indexStack = [0];\n for (;;) {\n if (indexStack[0] >= nodeStack[0].length) {\n if (nodeStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if ((0, domhandler_1.isTag)(elem) && test(elem))\n result.push(elem);\n if ((0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n//# sourceMappingURL=querying.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.testElement = testElement;\nexports.getElements = getElements;\nexports.getElementById = getElementById;\nexports.getElementsByTagName = getElementsByTagName;\nexports.getElementsByClassName = getElementsByClassName;\nexports.getElementsByTagType = getElementsByTagType;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `className`.\n *\n * @category Legacy Query Functions\n * @param className Class name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `className`.\n */\nfunction getElementsByClassName(className, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(getAttribCheck(\"class\", className), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DocumentPosition = void 0;\nexports.removeSubsets = removeSubsets;\nexports.compareDocumentPosition = compareDocumentPosition;\nexports.uniqueSort = uniqueSort;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (exports.DocumentPosition = DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = getFeed;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"Attribute\"] = \"attribute\";\n SelectorType[\"Pseudo\"] = \"pseudo\";\n SelectorType[\"PseudoElement\"] = \"pseudo-element\";\n SelectorType[\"Tag\"] = \"tag\";\n SelectorType[\"Universal\"] = \"universal\";\n // Traversals\n SelectorType[\"Adjacent\"] = \"adjacent\";\n SelectorType[\"Child\"] = \"child\";\n SelectorType[\"Descendant\"] = \"descendant\";\n SelectorType[\"Parent\"] = \"parent\";\n SelectorType[\"Sibling\"] = \"sibling\";\n SelectorType[\"ColumnCombinator\"] = \"column-combinator\";\n})(SelectorType || (SelectorType = {}));\n/**\n * Modes for ignore case.\n *\n * This could be updated to an enum, and the object is\n * the current stand-in that will allow code to be updated\n * without big changes.\n */\nexport const IgnoreCaseMode = {\n Unknown: null,\n QuirksMode: \"quirks\",\n IgnoreCase: true,\n CaseSensitive: false,\n};\nexport var AttributeAction;\n(function (AttributeAction) {\n AttributeAction[\"Any\"] = \"any\";\n AttributeAction[\"Element\"] = \"element\";\n AttributeAction[\"End\"] = \"end\";\n AttributeAction[\"Equals\"] = \"equals\";\n AttributeAction[\"Exists\"] = \"exists\";\n AttributeAction[\"Hyphen\"] = \"hyphen\";\n AttributeAction[\"Not\"] = \"not\";\n AttributeAction[\"Start\"] = \"start\";\n})(AttributeAction || (AttributeAction = {}));\n","import { SelectorType, AttributeAction, } from \"./types\";\nconst reName = /^[^\\\\#]?(?:\\\\(?:[\\da-f]{1,6}\\s?|.)|[\\w\\-\\u00b0-\\uFFFF])+/;\nconst reEscape = /\\\\([\\da-f]{1,6}\\s?|(\\s)|.)/gi;\nconst actionTypes = new Map([\n [126 /* Tilde */, AttributeAction.Element],\n [94 /* Circumflex */, AttributeAction.Start],\n [36 /* Dollar */, AttributeAction.End],\n [42 /* Asterisk */, AttributeAction.Any],\n [33 /* ExclamationMark */, AttributeAction.Not],\n [124 /* Pipe */, AttributeAction.Hyphen],\n]);\n// Pseudos, whose data property is parsed as well.\nconst unpackPseudos = new Set([\n \"has\",\n \"not\",\n \"matches\",\n \"is\",\n \"where\",\n \"host\",\n \"host-context\",\n]);\n/**\n * Checks whether a specific selector is a traversal.\n * This is useful eg. in swapping the order of elements that\n * are not traversals.\n *\n * @param selector Selector to check.\n */\nexport function isTraversal(selector) {\n switch (selector.type) {\n case SelectorType.Adjacent:\n case SelectorType.Child:\n case SelectorType.Descendant:\n case SelectorType.Parent:\n case SelectorType.Sibling:\n case SelectorType.ColumnCombinator:\n return true;\n default:\n return false;\n }\n}\nconst stripQuotesFromPseudos = new Set([\"contains\", \"icontains\"]);\n// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152\nfunction funescape(_, escaped, escapedWhitespace) {\n const high = parseInt(escaped, 16) - 0x10000;\n // NaN means non-codepoint\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n}\nfunction unescapeCSS(str) {\n return str.replace(reEscape, funescape);\n}\nfunction isQuote(c) {\n return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;\n}\nfunction isWhitespace(c) {\n return (c === 32 /* Space */ ||\n c === 9 /* Tab */ ||\n c === 10 /* NewLine */ ||\n c === 12 /* FormFeed */ ||\n c === 13 /* CarriageReturn */);\n}\n/**\n * Parses `selector`, optionally with the passed `options`.\n *\n * @param selector Selector to parse.\n * @param options Options for parsing.\n * @returns Returns a two-dimensional array.\n * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),\n * the second contains the relevant tokens for that selector.\n */\nexport function parse(selector) {\n const subselects = [];\n const endIndex = parseSelector(subselects, `${selector}`, 0);\n if (endIndex < selector.length) {\n throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);\n }\n return subselects;\n}\nfunction parseSelector(subselects, selector, selectorIndex) {\n let tokens = [];\n function getName(offset) {\n const match = selector.slice(selectorIndex + offset).match(reName);\n if (!match) {\n throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);\n }\n const [name] = match;\n selectorIndex += offset + name.length;\n return unescapeCSS(name);\n }\n function stripWhitespace(offset) {\n selectorIndex += offset;\n while (selectorIndex < selector.length &&\n isWhitespace(selector.charCodeAt(selectorIndex))) {\n selectorIndex++;\n }\n }\n function readValueWithParenthesis() {\n selectorIndex += 1;\n const start = selectorIndex;\n let counter = 1;\n for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter++;\n }\n else if (selector.charCodeAt(selectorIndex) ===\n 41 /* RightParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter--;\n }\n }\n if (counter) {\n throw new Error(\"Parenthesis not matched\");\n }\n return unescapeCSS(selector.slice(start, selectorIndex - 1));\n }\n function isEscaped(pos) {\n let slashCount = 0;\n while (selector.charCodeAt(--pos) === 92 /* BackSlash */)\n slashCount++;\n return (slashCount & 1) === 1;\n }\n function ensureNotTraversal() {\n if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {\n throw new Error(\"Did not expect successive traversals.\");\n }\n }\n function addTraversal(type) {\n if (tokens.length > 0 &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens[tokens.length - 1].type = type;\n return;\n }\n ensureNotTraversal();\n tokens.push({ type });\n }\n function addSpecialAttribute(name, action) {\n tokens.push({\n type: SelectorType.Attribute,\n name,\n action,\n value: getName(1),\n namespace: null,\n ignoreCase: \"quirks\",\n });\n }\n /**\n * We have finished parsing the current part of the selector.\n *\n * Remove descendant tokens at the end if they exist,\n * and return the last index, so that parsing can be\n * picked up from here.\n */\n function finalizeSubselector() {\n if (tokens.length &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens.pop();\n }\n if (tokens.length === 0) {\n throw new Error(\"Empty sub-selector\");\n }\n subselects.push(tokens);\n }\n stripWhitespace(0);\n if (selector.length === selectorIndex) {\n return selectorIndex;\n }\n loop: while (selectorIndex < selector.length) {\n const firstChar = selector.charCodeAt(selectorIndex);\n switch (firstChar) {\n // Whitespace\n case 32 /* Space */:\n case 9 /* Tab */:\n case 10 /* NewLine */:\n case 12 /* FormFeed */:\n case 13 /* CarriageReturn */: {\n if (tokens.length === 0 ||\n tokens[0].type !== SelectorType.Descendant) {\n ensureNotTraversal();\n tokens.push({ type: SelectorType.Descendant });\n }\n stripWhitespace(1);\n break;\n }\n // Traversals\n case 62 /* GreaterThan */: {\n addTraversal(SelectorType.Child);\n stripWhitespace(1);\n break;\n }\n case 60 /* LessThan */: {\n addTraversal(SelectorType.Parent);\n stripWhitespace(1);\n break;\n }\n case 126 /* Tilde */: {\n addTraversal(SelectorType.Sibling);\n stripWhitespace(1);\n break;\n }\n case 43 /* Plus */: {\n addTraversal(SelectorType.Adjacent);\n stripWhitespace(1);\n break;\n }\n // Special attribute selectors: .class, #id\n case 46 /* Period */: {\n addSpecialAttribute(\"class\", AttributeAction.Element);\n break;\n }\n case 35 /* Hash */: {\n addSpecialAttribute(\"id\", AttributeAction.Equals);\n break;\n }\n case 91 /* LeftSquareBracket */: {\n stripWhitespace(1);\n // Determine attribute name and namespace\n let name;\n let namespace = null;\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {\n // Equivalent to no namespace\n name = getName(1);\n }\n else if (selector.startsWith(\"*|\", selectorIndex)) {\n namespace = \"*\";\n name = getName(2);\n }\n else {\n name = getName(0);\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n namespace = name;\n name = getName(1);\n }\n }\n stripWhitespace(0);\n // Determine comparison operation\n let action = AttributeAction.Exists;\n const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));\n if (possibleAction) {\n action = possibleAction;\n if (selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n throw new Error(\"Expected `=`\");\n }\n stripWhitespace(2);\n }\n else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {\n action = AttributeAction.Equals;\n stripWhitespace(1);\n }\n // Determine value\n let value = \"\";\n let ignoreCase = null;\n if (action !== \"exists\") {\n if (isQuote(selector.charCodeAt(selectorIndex))) {\n const quote = selector.charCodeAt(selectorIndex);\n let sectionEnd = selectorIndex + 1;\n while (sectionEnd < selector.length &&\n (selector.charCodeAt(sectionEnd) !== quote ||\n isEscaped(sectionEnd))) {\n sectionEnd += 1;\n }\n if (selector.charCodeAt(sectionEnd) !== quote) {\n throw new Error(\"Attribute value didn't end\");\n }\n value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));\n selectorIndex = sectionEnd + 1;\n }\n else {\n const valueStart = selectorIndex;\n while (selectorIndex < selector.length &&\n ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&\n selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) ||\n isEscaped(selectorIndex))) {\n selectorIndex += 1;\n }\n value = unescapeCSS(selector.slice(valueStart, selectorIndex));\n }\n stripWhitespace(0);\n // See if we have a force ignore flag\n const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;\n // If the forceIgnore flag is set (either `i` or `s`), use that value\n if (forceIgnore === 115 /* LowerS */) {\n ignoreCase = false;\n stripWhitespace(1);\n }\n else if (forceIgnore === 105 /* LowerI */) {\n ignoreCase = true;\n stripWhitespace(1);\n }\n }\n if (selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) {\n throw new Error(\"Attribute selector didn't terminate\");\n }\n selectorIndex += 1;\n const attributeSelector = {\n type: SelectorType.Attribute,\n name,\n action,\n value,\n namespace,\n ignoreCase,\n };\n tokens.push(attributeSelector);\n break;\n }\n case 58 /* Colon */: {\n if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {\n tokens.push({\n type: SelectorType.PseudoElement,\n name: getName(2).toLowerCase(),\n data: selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */\n ? readValueWithParenthesis()\n : null,\n });\n continue;\n }\n const name = getName(1).toLowerCase();\n let data = null;\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */) {\n if (unpackPseudos.has(name)) {\n if (isQuote(selector.charCodeAt(selectorIndex + 1))) {\n throw new Error(`Pseudo-selector ${name} cannot be quoted`);\n }\n data = [];\n selectorIndex = parseSelector(data, selector, selectorIndex + 1);\n if (selector.charCodeAt(selectorIndex) !==\n 41 /* RightParenthesis */) {\n throw new Error(`Missing closing parenthesis in :${name} (${selector})`);\n }\n selectorIndex += 1;\n }\n else {\n data = readValueWithParenthesis();\n if (stripQuotesFromPseudos.has(name)) {\n const quot = data.charCodeAt(0);\n if (quot === data.charCodeAt(data.length - 1) &&\n isQuote(quot)) {\n data = data.slice(1, -1);\n }\n }\n data = unescapeCSS(data);\n }\n }\n tokens.push({ type: SelectorType.Pseudo, name, data });\n break;\n }\n case 44 /* Comma */: {\n finalizeSubselector();\n tokens = [];\n stripWhitespace(1);\n break;\n }\n default: {\n if (selector.startsWith(\"/*\", selectorIndex)) {\n const endIndex = selector.indexOf(\"*/\", selectorIndex + 2);\n if (endIndex < 0) {\n throw new Error(\"Comment was not terminated\");\n }\n selectorIndex = endIndex + 2;\n // Remove leading whitespace\n if (tokens.length === 0) {\n stripWhitespace(0);\n }\n break;\n }\n let namespace = null;\n let name;\n if (firstChar === 42 /* Asterisk */) {\n selectorIndex += 1;\n name = \"*\";\n }\n else if (firstChar === 124 /* Pipe */) {\n name = \"\";\n if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {\n addTraversal(SelectorType.ColumnCombinator);\n stripWhitespace(2);\n break;\n }\n }\n else if (reName.test(selector.slice(selectorIndex))) {\n name = getName(0);\n }\n else {\n break loop;\n }\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {\n namespace = name;\n if (selector.charCodeAt(selectorIndex + 1) ===\n 42 /* Asterisk */) {\n name = \"*\";\n selectorIndex += 2;\n }\n else {\n name = getName(1);\n }\n }\n tokens.push(name === \"*\"\n ? { type: SelectorType.Universal, namespace }\n : { type: SelectorType.Tag, name, namespace });\n }\n }\n }\n finalizeSubselector();\n return selectorIndex;\n}\n","import { SelectorType, AttributeAction } from \"./types\";\nconst attribValChars = [\"\\\\\", '\"'];\nconst pseudoValChars = [...attribValChars, \"(\", \")\"];\nconst charsToEscapeInAttributeValue = new Set(attribValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInPseudoValue = new Set(pseudoValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInName = new Set([\n ...pseudoValChars,\n \"~\",\n \"^\",\n \"$\",\n \"*\",\n \"+\",\n \"!\",\n \"|\",\n \":\",\n \"[\",\n \"]\",\n \" \",\n \".\",\n].map((c) => c.charCodeAt(0)));\n/**\n * Turns `selector` back into a string.\n *\n * @param selector Selector to stringify.\n */\nexport function stringify(selector) {\n return selector\n .map((token) => token.map(stringifyToken).join(\"\"))\n .join(\", \");\n}\nfunction stringifyToken(token, index, arr) {\n switch (token.type) {\n // Simple types\n case SelectorType.Child:\n return index === 0 ? \"> \" : \" > \";\n case SelectorType.Parent:\n return index === 0 ? \"< \" : \" < \";\n case SelectorType.Sibling:\n return index === 0 ? \"~ \" : \" ~ \";\n case SelectorType.Adjacent:\n return index === 0 ? \"+ \" : \" + \";\n case SelectorType.Descendant:\n return \" \";\n case SelectorType.ColumnCombinator:\n return index === 0 ? \"|| \" : \" || \";\n case SelectorType.Universal:\n // Return an empty string if the selector isn't needed.\n return token.namespace === \"*\" &&\n index + 1 < arr.length &&\n \"name\" in arr[index + 1]\n ? \"\"\n : `${getNamespace(token.namespace)}*`;\n case SelectorType.Tag:\n return getNamespacedName(token);\n case SelectorType.PseudoElement:\n return `::${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${escapeName(token.data, charsToEscapeInPseudoValue)})`}`;\n case SelectorType.Pseudo:\n return `:${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${typeof token.data === \"string\"\n ? escapeName(token.data, charsToEscapeInPseudoValue)\n : stringify(token.data)})`}`;\n case SelectorType.Attribute: {\n if (token.name === \"id\" &&\n token.action === AttributeAction.Equals &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `#${escapeName(token.value, charsToEscapeInName)}`;\n }\n if (token.name === \"class\" &&\n token.action === AttributeAction.Element &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `.${escapeName(token.value, charsToEscapeInName)}`;\n }\n const name = getNamespacedName(token);\n if (token.action === AttributeAction.Exists) {\n return `[${name}]`;\n }\n return `[${name}${getActionValue(token.action)}=\"${escapeName(token.value, charsToEscapeInAttributeValue)}\"${token.ignoreCase === null ? \"\" : token.ignoreCase ? \" i\" : \" s\"}]`;\n }\n }\n}\nfunction getActionValue(action) {\n switch (action) {\n case AttributeAction.Equals:\n return \"\";\n case AttributeAction.Element:\n return \"~\";\n case AttributeAction.Start:\n return \"^\";\n case AttributeAction.End:\n return \"$\";\n case AttributeAction.Any:\n return \"*\";\n case AttributeAction.Not:\n return \"!\";\n case AttributeAction.Hyphen:\n return \"|\";\n case AttributeAction.Exists:\n throw new Error(\"Shouldn't be here\");\n }\n}\nfunction getNamespacedName(token) {\n return `${getNamespace(token.namespace)}${escapeName(token.name, charsToEscapeInName)}`;\n}\nfunction getNamespace(namespace) {\n return namespace !== null\n ? `${namespace === \"*\"\n ? \"*\"\n : escapeName(namespace, charsToEscapeInName)}|`\n : \"\";\n}\nfunction escapeName(str, charsToEscape) {\n let lastIdx = 0;\n let ret = \"\";\n for (let i = 0; i < str.length; i++) {\n if (charsToEscape.has(str.charCodeAt(i))) {\n ret += `${str.slice(lastIdx, i)}\\\\${str.charAt(i)}`;\n lastIdx = i + 1;\n }\n }\n return ret.length > 0 ? ret + str.slice(lastIdx) : str;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTraversal = void 0;\nvar css_what_1 = require(\"css-what\");\nvar procedure = new Map([\n [css_what_1.SelectorType.Universal, 50],\n [css_what_1.SelectorType.Tag, 30],\n [css_what_1.SelectorType.Attribute, 1],\n [css_what_1.SelectorType.Pseudo, 0],\n]);\nfunction isTraversal(token) {\n return !procedure.has(token.type);\n}\nexports.isTraversal = isTraversal;\nvar attributes = new Map([\n [css_what_1.AttributeAction.Exists, 10],\n [css_what_1.AttributeAction.Equals, 8],\n [css_what_1.AttributeAction.Not, 7],\n [css_what_1.AttributeAction.Start, 6],\n [css_what_1.AttributeAction.End, 6],\n [css_what_1.AttributeAction.Any, 5],\n]);\n/**\n * Sort the parts of the passed selector,\n * as there is potential for optimization\n * (some types of selectors are faster than others)\n *\n * @param arr Selector to sort\n */\nfunction sortByProcedure(arr) {\n var procs = arr.map(getProcedure);\n for (var i = 1; i < arr.length; i++) {\n var procNew = procs[i];\n if (procNew < 0)\n continue;\n for (var j = i - 1; j >= 0 && procNew < procs[j]; j--) {\n var token = arr[j + 1];\n arr[j + 1] = arr[j];\n arr[j] = token;\n procs[j + 1] = procs[j];\n procs[j] = procNew;\n }\n }\n}\nexports.default = sortByProcedure;\nfunction getProcedure(token) {\n var _a, _b;\n var proc = (_a = procedure.get(token.type)) !== null && _a !== void 0 ? _a : -1;\n if (token.type === css_what_1.SelectorType.Attribute) {\n proc = (_b = attributes.get(token.action)) !== null && _b !== void 0 ? _b : 4;\n if (token.action === css_what_1.AttributeAction.Equals && token.name === \"id\") {\n // Prefer ID selectors (eg. #ID)\n proc = 9;\n }\n if (token.ignoreCase) {\n /*\n * IgnoreCase adds some overhead, prefer \"normal\" token\n * this is a binary operation, to ensure it's still an int\n */\n proc >>= 1;\n }\n }\n else if (token.type === css_what_1.SelectorType.Pseudo) {\n if (!token.data) {\n proc = 3;\n }\n else if (token.name === \"has\" || token.name === \"contains\") {\n proc = 0; // Expensive in any case\n }\n else if (Array.isArray(token.data)) {\n // Eg. :matches, :not\n proc = Math.min.apply(Math, token.data.map(function (d) { return Math.min.apply(Math, d.map(getProcedure)); }));\n // If we have traversals, try to avoid executing this selector\n if (proc < 0) {\n proc = 0;\n }\n }\n else {\n proc = 2;\n }\n }\n return proc;\n}\n//# sourceMappingURL=sort.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeRules = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\n/**\n * All reserved characters in a regex, used for escaping.\n *\n * Taken from XRegExp, (c) 2007-2020 Steven Levithan under the MIT license\n * https://github.com/slevithan/xregexp/blob/95eeebeb8fac8754d54eafe2b4743661ac1cf028/src/xregexp.js#L794\n */\nvar reChars = /[-[\\]{}()*+?.,\\\\^$|#\\s]/g;\nfunction escapeRegex(value) {\n return value.replace(reChars, \"\\\\$&\");\n}\n/**\n * Attributes that are case-insensitive in HTML.\n *\n * @private\n * @see https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors\n */\nvar caseInsensitiveAttributes = new Set([\n \"accept\",\n \"accept-charset\",\n \"align\",\n \"alink\",\n \"axis\",\n \"bgcolor\",\n \"charset\",\n \"checked\",\n \"clear\",\n \"codetype\",\n \"color\",\n \"compact\",\n \"declare\",\n \"defer\",\n \"dir\",\n \"direction\",\n \"disabled\",\n \"enctype\",\n \"face\",\n \"frame\",\n \"hreflang\",\n \"http-equiv\",\n \"lang\",\n \"language\",\n \"link\",\n \"media\",\n \"method\",\n \"multiple\",\n \"nohref\",\n \"noresize\",\n \"noshade\",\n \"nowrap\",\n \"readonly\",\n \"rel\",\n \"rev\",\n \"rules\",\n \"scope\",\n \"scrolling\",\n \"selected\",\n \"shape\",\n \"target\",\n \"text\",\n \"type\",\n \"valign\",\n \"valuetype\",\n \"vlink\",\n]);\nfunction shouldIgnoreCase(selector, options) {\n return typeof selector.ignoreCase === \"boolean\"\n ? selector.ignoreCase\n : selector.ignoreCase === \"quirks\"\n ? !!options.quirksMode\n : !options.xmlMode && caseInsensitiveAttributes.has(selector.name);\n}\n/**\n * Attribute selectors\n */\nexports.attributeRules = {\n equals: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length === value.length &&\n attr.toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) === value && next(elem);\n };\n },\n hyphen: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function hyphenIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function hyphen(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len) === value &&\n next(elem));\n };\n },\n element: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (/\\s/.test(value)) {\n return boolbase_1.default.falseFunc;\n }\n var regex = new RegExp(\"(?:^|\\\\s)\".concat(escapeRegex(value), \"(?:$|\\\\s)\"), shouldIgnoreCase(data, options) ? \"i\" : \"\");\n return function element(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex.test(attr) &&\n next(elem));\n };\n },\n exists: function (next, _a, _b) {\n var name = _a.name;\n var adapter = _b.adapter;\n return function (elem) { return adapter.hasAttrib(elem, name) && next(elem); };\n },\n start: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (len === 0) {\n return boolbase_1.default.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= len &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) &&\n next(elem);\n };\n },\n end: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = -value.length;\n if (len === 0) {\n return boolbase_1.default.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var _a;\n return ((_a = adapter\n .getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem);\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) &&\n next(elem);\n };\n },\n any: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (value === \"\") {\n return boolbase_1.default.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n var regex_1 = new RegExp(escapeRegex(value), \"i\");\n return function anyIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex_1.test(attr) &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) &&\n next(elem);\n };\n },\n not: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (value === \"\") {\n return function (elem) {\n return !!adapter.getAttributeValue(elem, name) && next(elem);\n };\n }\n else if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return ((attr == null ||\n attr.length !== value.length ||\n attr.toLowerCase() !== value) &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) !== value && next(elem);\n };\n },\n};\n//# sourceMappingURL=attributes.js.map","\"use strict\";\n// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = void 0;\n// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is \" \\t\\r\\n\\f\"\nvar whitespace = new Set([9, 10, 12, 13, 32]);\nvar ZERO = \"0\".charCodeAt(0);\nvar NINE = \"9\".charCodeAt(0);\n/**\n * Parses an expression.\n *\n * @throws An `Error` if parsing fails.\n * @returns An array containing the integer step size and the integer offset of the nth rule.\n * @example nthCheck.parse(\"2n+3\"); // returns [2, 3]\n */\nfunction parse(formula) {\n formula = formula.trim().toLowerCase();\n if (formula === \"even\") {\n return [2, 0];\n }\n else if (formula === \"odd\") {\n return [2, 1];\n }\n // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]?\n var idx = 0;\n var a = 0;\n var sign = readSign();\n var number = readNumber();\n if (idx < formula.length && formula.charAt(idx) === \"n\") {\n idx++;\n a = sign * (number !== null && number !== void 0 ? number : 1);\n skipWhitespace();\n if (idx < formula.length) {\n sign = readSign();\n skipWhitespace();\n number = readNumber();\n }\n else {\n sign = number = 0;\n }\n }\n // Throw if there is anything else\n if (number === null || idx < formula.length) {\n throw new Error(\"n-th rule couldn't be parsed ('\".concat(formula, \"')\"));\n }\n return [a, sign * number];\n function readSign() {\n if (formula.charAt(idx) === \"-\") {\n idx++;\n return -1;\n }\n if (formula.charAt(idx) === \"+\") {\n idx++;\n }\n return 1;\n }\n function readNumber() {\n var start = idx;\n var value = 0;\n while (idx < formula.length &&\n formula.charCodeAt(idx) >= ZERO &&\n formula.charCodeAt(idx) <= NINE) {\n value = value * 10 + (formula.charCodeAt(idx) - ZERO);\n idx++;\n }\n // Return `null` if we didn't read anything.\n return idx === start ? null : value;\n }\n function skipWhitespace() {\n while (idx < formula.length &&\n whitespace.has(formula.charCodeAt(idx))) {\n idx++;\n }\n }\n}\nexports.parse = parse;\n//# sourceMappingURL=parse.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generate = exports.compile = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\n/**\n * Returns a function that checks if an elements index matches the given rule\n * highly optimized to return the fastest solution.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A highly optimized function that returns whether an index matches the nth-check.\n * @example\n *\n * ```js\n * const check = nthCheck.compile([2, 3]);\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n * ```\n */\nfunction compile(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n /*\n * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`.\n * Besides, the specification states that no elements are\n * matched when `a` and `b` are 0.\n *\n * `b < 0` here as we subtracted 1 from `b` above.\n */\n if (b < 0 && a <= 0)\n return boolbase_1.default.falseFunc;\n // When `a` is in the range -1..1, it matches any element (so only `b` is checked).\n if (a === -1)\n return function (index) { return index <= b; };\n if (a === 0)\n return function (index) { return index === b; };\n // When `b <= 0` and `a === 1`, they match any element.\n if (a === 1)\n return b < 0 ? boolbase_1.default.trueFunc : function (index) { return index >= b; };\n /*\n * Otherwise, modulo can be used to check if there is a match.\n *\n * Modulo doesn't care about the sign, so let's use `a`s absolute value.\n */\n var absA = Math.abs(a);\n // Get `b mod a`, + a if this is negative.\n var bMod = ((b % absA) + absA) % absA;\n return a > 1\n ? function (index) { return index >= b && index % absA === bMod; }\n : function (index) { return index <= b && index % absA === bMod; };\n}\nexports.compile = compile;\n/**\n * Returns a function that produces a monotonously increasing sequence of indices.\n *\n * If the sequence has an end, the returned function will return `null` after\n * the last index in the sequence.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A function that produces a sequence of indices.\n * @example <caption>Always increasing (2n+3)</caption>\n *\n * ```js\n * const gen = nthCheck.generate([2, 3])\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example <caption>With end value (-2n+10)</caption>\n *\n * ```js\n *\n * const gen = nthCheck.generate([-2, 5]);\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction generate(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n var n = 0;\n // Make sure to always return an increasing sequence\n if (a < 0) {\n var aPos_1 = -a;\n // Get `b mod a`\n var minValue_1 = ((b % aPos_1) + aPos_1) % aPos_1;\n return function () {\n var val = minValue_1 + aPos_1 * n++;\n return val > b ? null : val;\n };\n }\n if (a === 0)\n return b < 0\n ? // There are no result — always return `null`\n function () { return null; }\n : // Return `b` exactly once\n function () { return (n++ === 0 ? b : null); };\n if (b < 0) {\n b += a * Math.ceil(-b / a);\n }\n return function () { return a * n++ + b; };\n}\nexports.generate = generate;\n//# sourceMappingURL=compile.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sequence = exports.generate = exports.compile = exports.parse = void 0;\nvar parse_js_1 = require(\"./parse.js\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_js_1.parse; } });\nvar compile_js_1 = require(\"./compile.js\");\nObject.defineProperty(exports, \"compile\", { enumerable: true, get: function () { return compile_js_1.compile; } });\nObject.defineProperty(exports, \"generate\", { enumerable: true, get: function () { return compile_js_1.generate; } });\n/**\n * Parses and compiles a formula to a highly optimized function.\n * Combination of {@link parse} and {@link compile}.\n *\n * If the formula doesn't match any elements,\n * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`.\n * Otherwise, a function accepting an _index_ is returned, which returns\n * whether or not the passed _index_ matches the formula.\n *\n * Note: The nth-rule starts counting at `1`, the returned function at `0`.\n *\n * @param formula The formula to compile.\n * @example\n * const check = nthCheck(\"2n+3\");\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n */\nfunction nthCheck(formula) {\n return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula));\n}\nexports.default = nthCheck;\n/**\n * Parses and compiles a formula to a generator that produces a sequence of indices.\n * Combination of {@link parse} and {@link generate}.\n *\n * @param formula The formula to compile.\n * @returns A function that produces a sequence of indices.\n * @example <caption>Always increasing</caption>\n *\n * ```js\n * const gen = nthCheck.sequence('2n+3')\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example <caption>With end value</caption>\n *\n * ```js\n *\n * const gen = nthCheck.sequence('-2n+5');\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction sequence(formula) {\n return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula));\n}\nexports.sequence = sequence;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filters = void 0;\nvar nth_check_1 = __importDefault(require(\"nth-check\"));\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nfunction getChildFunc(next, adapter) {\n return function (elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(elem);\n };\n}\nexports.filters = {\n contains: function (next, text, _a) {\n var adapter = _a.adapter;\n return function contains(elem) {\n return next(elem) && adapter.getText(elem).includes(text);\n };\n },\n icontains: function (next, text, _a) {\n var adapter = _a.adapter;\n var itext = text.toLowerCase();\n return function icontains(elem) {\n return (next(elem) &&\n adapter.getText(elem).toLowerCase().includes(itext));\n };\n },\n // Location specific methods\n \"nth-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n // TODO determine the actual root element\n root: function (next, _rule, _a) {\n var adapter = _a.adapter;\n return function (elem) {\n var parent = adapter.getParent(elem);\n return (parent == null || !adapter.isTag(parent)) && next(elem);\n };\n },\n scope: function (next, rule, options, context) {\n var equals = options.equals;\n if (!context || context.length === 0) {\n // Equivalent to :root\n return exports.filters[\"root\"](next, rule, options);\n }\n if (context.length === 1) {\n // NOTE: can't be unpacked, as :has uses this for side-effects\n return function (elem) { return equals(context[0], elem) && next(elem); };\n }\n return function (elem) { return context.includes(elem) && next(elem); };\n },\n hover: dynamicStatePseudo(\"isHovered\"),\n visited: dynamicStatePseudo(\"isVisited\"),\n active: dynamicStatePseudo(\"isActive\"),\n};\n/**\n * Dynamic state pseudos. These depend on optional Adapter methods.\n *\n * @param name The name of the adapter method to call.\n * @returns Pseudo for the `filters` object.\n */\nfunction dynamicStatePseudo(name) {\n return function dynamicPseudo(next, _rule, _a) {\n var adapter = _a.adapter;\n var func = adapter[name];\n if (typeof func !== \"function\") {\n return boolbase_1.default.falseFunc;\n }\n return function active(elem) {\n return func(elem) && next(elem);\n };\n };\n}\n//# sourceMappingURL=filters.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.verifyPseudoArgs = exports.pseudos = void 0;\n// While filters are precompiled, pseudos get called when they are needed\nexports.pseudos = {\n empty: function (elem, _a) {\n var adapter = _a.adapter;\n return !adapter.getChildren(elem).some(function (elem) {\n // FIXME: `getText` call is potentially expensive.\n return adapter.isTag(elem) || adapter.getText(elem) !== \"\";\n });\n },\n \"first-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n if (adapter.prevElementSibling) {\n return adapter.prevElementSibling(elem) == null;\n }\n var firstChild = adapter\n .getSiblings(elem)\n .find(function (elem) { return adapter.isTag(elem); });\n return firstChild != null && equals(elem, firstChild);\n },\n \"last-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n return true;\n if (adapter.isTag(siblings[i]))\n break;\n }\n return false;\n },\n \"first-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"last-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"only-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var elemName = adapter.getName(elem);\n return adapter\n .getSiblings(elem)\n .every(function (sibling) {\n return equals(elem, sibling) ||\n !adapter.isTag(sibling) ||\n adapter.getName(sibling) !== elemName;\n });\n },\n \"only-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n return adapter\n .getSiblings(elem)\n .every(function (sibling) { return equals(elem, sibling) || !adapter.isTag(sibling); });\n },\n};\nfunction verifyPseudoArgs(func, name, subselect, argIndex) {\n if (subselect === null) {\n if (func.length > argIndex) {\n throw new Error(\"Pseudo-class :\".concat(name, \" requires an argument\"));\n }\n }\n else if (func.length === argIndex) {\n throw new Error(\"Pseudo-class :\".concat(name, \" doesn't have any arguments\"));\n }\n}\nexports.verifyPseudoArgs = verifyPseudoArgs;\n//# sourceMappingURL=pseudos.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = void 0;\n/**\n * Aliases are pseudos that are expressed as selectors.\n */\nexports.aliases = {\n // Links\n \"any-link\": \":is(a, area, link)[href]\",\n link: \":any-link:not(:visited)\",\n // Forms\n // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements\n disabled: \":is(\\n :is(button, input, select, textarea, optgroup, option)[disabled],\\n optgroup[disabled] > option,\\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\\n )\",\n enabled: \":not(:disabled)\",\n checked: \":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)\",\n required: \":is(input, select, textarea)[required]\",\n optional: \":is(input, select, textarea):not([required])\",\n // JQuery extensions\n // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness\n selected: \"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)\",\n checkbox: \"[type=checkbox]\",\n file: \"[type=file]\",\n password: \"[type=password]\",\n radio: \"[type=radio]\",\n reset: \"[type=reset]\",\n image: \"[type=image]\",\n submit: \"[type=submit]\",\n parent: \":not(:empty)\",\n header: \":is(h1, h2, h3, h4, h5, h6)\",\n button: \":is(button, input[type=button])\",\n input: \":is(input, textarea, select, button)\",\n text: \"input:is(:not([type!='']), [type=text])\",\n};\n//# sourceMappingURL=aliases.js.map","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nvar sort_js_1 = require(\"../sort.js\");\n/** Used as a placeholder for :has. Will be replaced with the actual element. */\nexports.PLACEHOLDER_ELEMENT = {};\nfunction ensureIsTag(next, adapter) {\n if (next === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n return function (elem) { return adapter.isTag(elem) && next(elem); };\n}\nexports.ensureIsTag = ensureIsTag;\nfunction getNextSiblings(elem, adapter) {\n var siblings = adapter.getSiblings(elem);\n if (siblings.length <= 1)\n return [];\n var elemIndex = siblings.indexOf(elem);\n if (elemIndex < 0 || elemIndex === siblings.length - 1)\n return [];\n return siblings.slice(elemIndex + 1).filter(adapter.isTag);\n}\nexports.getNextSiblings = getNextSiblings;\nfunction copyOptions(options) {\n // Not copied: context, rootFunc\n return {\n xmlMode: !!options.xmlMode,\n lowerCaseAttributeNames: !!options.lowerCaseAttributeNames,\n lowerCaseTags: !!options.lowerCaseTags,\n quirksMode: !!options.quirksMode,\n cacheResults: !!options.cacheResults,\n pseudos: options.pseudos,\n adapter: options.adapter,\n equals: options.equals,\n };\n}\nvar is = function (next, token, options, context, compileToken) {\n var func = compileToken(token, copyOptions(options), context);\n return func === boolbase_1.default.trueFunc\n ? next\n : func === boolbase_1.default.falseFunc\n ? boolbase_1.default.falseFunc\n : function (elem) { return func(elem) && next(elem); };\n};\n/*\n * :not, :has, :is, :matches and :where have to compile selectors\n * doing this in src/pseudos.ts would lead to circular dependencies,\n * so we add them here\n */\nexports.subselects = {\n is: is,\n /**\n * `:matches` and `:where` are aliases for `:is`.\n */\n matches: is,\n where: is,\n not: function (next, token, options, context, compileToken) {\n var func = compileToken(token, copyOptions(options), context);\n return func === boolbase_1.default.falseFunc\n ? next\n : func === boolbase_1.default.trueFunc\n ? boolbase_1.default.falseFunc\n : function (elem) { return !func(elem) && next(elem); };\n },\n has: function (next, subselect, options, _context, compileToken) {\n var adapter = options.adapter;\n var opts = copyOptions(options);\n opts.relativeSelector = true;\n var context = subselect.some(function (s) { return s.some(sort_js_1.isTraversal); })\n ? // Used as a placeholder. Will be replaced with the actual element.\n [exports.PLACEHOLDER_ELEMENT]\n : undefined;\n var compiled = compileToken(subselect, opts, context);\n if (compiled === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n var hasElement = ensureIsTag(compiled, adapter);\n // If `compiled` is `trueFunc`, we can skip this.\n if (context && compiled !== boolbase_1.default.trueFunc) {\n /*\n * `shouldTestNextSiblings` will only be true if the query starts with\n * a traversal (sibling or adjacent). That means we will always have a context.\n */\n var _a = compiled.shouldTestNextSiblings, shouldTestNextSiblings_1 = _a === void 0 ? false : _a;\n return function (elem) {\n if (!next(elem))\n return false;\n context[0] = elem;\n var childs = adapter.getChildren(elem);\n var nextElements = shouldTestNextSiblings_1\n ? __spreadArray(__spreadArray([], childs, true), getNextSiblings(elem, adapter), true) : childs;\n return adapter.existsOne(hasElement, nextElements);\n };\n }\n return function (elem) {\n return next(elem) &&\n adapter.existsOne(hasElement, adapter.getChildren(elem));\n };\n },\n};\n//# sourceMappingURL=subselects.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filters = void 0;\nvar css_what_1 = require(\"css-what\");\nvar filters_js_1 = require(\"./filters.js\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return filters_js_1.filters; } });\nvar pseudos_js_1 = require(\"./pseudos.js\");\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return pseudos_js_1.pseudos; } });\nvar aliases_js_1 = require(\"./aliases.js\");\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return aliases_js_1.aliases; } });\nvar subselects_js_1 = require(\"./subselects.js\");\nfunction compilePseudoSelector(next, selector, options, context, compileToken) {\n var _a;\n var name = selector.name, data = selector.data;\n if (Array.isArray(data)) {\n if (!(name in subselects_js_1.subselects)) {\n throw new Error(\"Unknown pseudo-class :\".concat(name, \"(\").concat(data, \")\"));\n }\n return subselects_js_1.subselects[name](next, data, options, context, compileToken);\n }\n var userPseudo = (_a = options.pseudos) === null || _a === void 0 ? void 0 : _a[name];\n var stringPseudo = typeof userPseudo === \"string\" ? userPseudo : aliases_js_1.aliases[name];\n if (typeof stringPseudo === \"string\") {\n if (data != null) {\n throw new Error(\"Pseudo \".concat(name, \" doesn't have any arguments\"));\n }\n // The alias has to be parsed here, to make sure options are respected.\n var alias = (0, css_what_1.parse)(stringPseudo);\n return subselects_js_1.subselects[\"is\"](next, alias, options, context, compileToken);\n }\n if (typeof userPseudo === \"function\") {\n (0, pseudos_js_1.verifyPseudoArgs)(userPseudo, name, data, 1);\n return function (elem) { return userPseudo(elem, data) && next(elem); };\n }\n if (name in filters_js_1.filters) {\n return filters_js_1.filters[name](next, data, options, context);\n }\n if (name in pseudos_js_1.pseudos) {\n var pseudo_1 = pseudos_js_1.pseudos[name];\n (0, pseudos_js_1.verifyPseudoArgs)(pseudo_1, name, data, 2);\n return function (elem) { return pseudo_1(elem, options, data) && next(elem); };\n }\n throw new Error(\"Unknown pseudo-class :\".concat(name));\n}\nexports.compilePseudoSelector = compilePseudoSelector;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileGeneralSelector = void 0;\nvar attributes_js_1 = require(\"./attributes.js\");\nvar index_js_1 = require(\"./pseudo-selectors/index.js\");\nvar css_what_1 = require(\"css-what\");\nfunction getElementParent(node, adapter) {\n var parent = adapter.getParent(node);\n if (parent && adapter.isTag(parent)) {\n return parent;\n }\n return null;\n}\n/*\n * All available rules\n */\nfunction compileGeneralSelector(next, selector, options, context, compileToken) {\n var adapter = options.adapter, equals = options.equals;\n switch (selector.type) {\n case css_what_1.SelectorType.PseudoElement: {\n throw new Error(\"Pseudo-elements are not supported by css-select\");\n }\n case css_what_1.SelectorType.ColumnCombinator: {\n throw new Error(\"Column combinators are not yet supported by css-select\");\n }\n case css_what_1.SelectorType.Attribute: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced attributes are not yet supported by css-select\");\n }\n if (!options.xmlMode || options.lowerCaseAttributeNames) {\n selector.name = selector.name.toLowerCase();\n }\n return attributes_js_1.attributeRules[selector.action](next, selector, options);\n }\n case css_what_1.SelectorType.Pseudo: {\n return (0, index_js_1.compilePseudoSelector)(next, selector, options, context, compileToken);\n }\n // Tags\n case css_what_1.SelectorType.Tag: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced tag names are not yet supported by css-select\");\n }\n var name_1 = selector.name;\n if (!options.xmlMode || options.lowerCaseTags) {\n name_1 = name_1.toLowerCase();\n }\n return function tag(elem) {\n return adapter.getName(elem) === name_1 && next(elem);\n };\n }\n // Traversal\n case css_what_1.SelectorType.Descendant: {\n if (options.cacheResults === false ||\n typeof WeakSet === \"undefined\") {\n return function descendant(elem) {\n var current = elem;\n while ((current = getElementParent(current, adapter))) {\n if (next(current)) {\n return true;\n }\n }\n return false;\n };\n }\n // @ts-expect-error `ElementNode` is not extending object\n var isFalseCache_1 = new WeakSet();\n return function cachedDescendant(elem) {\n var current = elem;\n while ((current = getElementParent(current, adapter))) {\n if (!isFalseCache_1.has(current)) {\n if (adapter.isTag(current) && next(current)) {\n return true;\n }\n isFalseCache_1.add(current);\n }\n }\n return false;\n };\n }\n case \"_flexibleDescendant\": {\n // Include element itself, only used while querying an array\n return function flexibleDescendant(elem) {\n var current = elem;\n do {\n if (next(current))\n return true;\n } while ((current = getElementParent(current, adapter)));\n return false;\n };\n }\n case css_what_1.SelectorType.Parent: {\n return function parent(elem) {\n return adapter\n .getChildren(elem)\n .some(function (elem) { return adapter.isTag(elem) && next(elem); });\n };\n }\n case css_what_1.SelectorType.Child: {\n return function child(elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(parent);\n };\n }\n case css_what_1.SelectorType.Sibling: {\n return function sibling(elem) {\n var siblings = adapter.getSiblings(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) && next(currentSibling)) {\n return true;\n }\n }\n return false;\n };\n }\n case css_what_1.SelectorType.Adjacent: {\n if (adapter.prevElementSibling) {\n return function adjacent(elem) {\n var previous = adapter.prevElementSibling(elem);\n return previous != null && next(previous);\n };\n }\n return function adjacent(elem) {\n var siblings = adapter.getSiblings(elem);\n var lastElement;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling)) {\n lastElement = currentSibling;\n }\n }\n return !!lastElement && next(lastElement);\n };\n }\n case css_what_1.SelectorType.Universal: {\n if (selector.namespace != null && selector.namespace !== \"*\") {\n throw new Error(\"Namespaced universal selectors are not yet supported by css-select\");\n }\n return next;\n }\n }\n}\nexports.compileGeneralSelector = compileGeneralSelector;\n//# sourceMappingURL=general.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileToken = exports.compileUnsafe = exports.compile = void 0;\nvar css_what_1 = require(\"css-what\");\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nvar sort_js_1 = __importStar(require(\"./sort.js\"));\nvar general_js_1 = require(\"./general.js\");\nvar subselects_js_1 = require(\"./pseudo-selectors/subselects.js\");\n/**\n * Compiles a selector to an executable function.\n *\n * @param selector Selector to compile.\n * @param options Compilation options.\n * @param context Optional context for the selector.\n */\nfunction compile(selector, options, context) {\n var next = compileUnsafe(selector, options, context);\n return (0, subselects_js_1.ensureIsTag)(next, options.adapter);\n}\nexports.compile = compile;\nfunction compileUnsafe(selector, options, context) {\n var token = typeof selector === \"string\" ? (0, css_what_1.parse)(selector) : selector;\n return compileToken(token, options, context);\n}\nexports.compileUnsafe = compileUnsafe;\nfunction includesScopePseudo(t) {\n return (t.type === css_what_1.SelectorType.Pseudo &&\n (t.name === \"scope\" ||\n (Array.isArray(t.data) &&\n t.data.some(function (data) { return data.some(includesScopePseudo); }))));\n}\nvar DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant };\nvar FLEXIBLE_DESCENDANT_TOKEN = {\n type: \"_flexibleDescendant\",\n};\nvar SCOPE_TOKEN = {\n type: css_what_1.SelectorType.Pseudo,\n name: \"scope\",\n data: null,\n};\n/*\n * CSS 4 Spec (Draft): 3.4.1. Absolutizing a Relative Selector\n * http://www.w3.org/TR/selectors4/#absolutizing\n */\nfunction absolutize(token, _a, context) {\n var adapter = _a.adapter;\n // TODO Use better check if the context is a document\n var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function (e) {\n var parent = adapter.isTag(e) && adapter.getParent(e);\n return e === subselects_js_1.PLACEHOLDER_ELEMENT || (parent && adapter.isTag(parent));\n }));\n for (var _i = 0, token_1 = token; _i < token_1.length; _i++) {\n var t = token_1[_i];\n if (t.length > 0 &&\n (0, sort_js_1.isTraversal)(t[0]) &&\n t[0].type !== css_what_1.SelectorType.Descendant) {\n // Don't continue in else branch\n }\n else if (hasContext && !t.some(includesScopePseudo)) {\n t.unshift(DESCENDANT_TOKEN);\n }\n else {\n continue;\n }\n t.unshift(SCOPE_TOKEN);\n }\n}\nfunction compileToken(token, options, context) {\n var _a;\n token.forEach(sort_js_1.default);\n context = (_a = options.context) !== null && _a !== void 0 ? _a : context;\n var isArrayContext = Array.isArray(context);\n var finalContext = context && (Array.isArray(context) ? context : [context]);\n // Check if the selector is relative\n if (options.relativeSelector !== false) {\n absolutize(token, options, finalContext);\n }\n else if (token.some(function (t) { return t.length > 0 && (0, sort_js_1.isTraversal)(t[0]); })) {\n throw new Error(\"Relative selectors are not allowed when the `relativeSelector` option is disabled\");\n }\n var shouldTestNextSiblings = false;\n var query = token\n .map(function (rules) {\n if (rules.length >= 2) {\n var first = rules[0], second = rules[1];\n if (first.type !== css_what_1.SelectorType.Pseudo ||\n first.name !== \"scope\") {\n // Ignore\n }\n else if (isArrayContext &&\n second.type === css_what_1.SelectorType.Descendant) {\n rules[1] = FLEXIBLE_DESCENDANT_TOKEN;\n }\n else if (second.type === css_what_1.SelectorType.Adjacent ||\n second.type === css_what_1.SelectorType.Sibling) {\n shouldTestNextSiblings = true;\n }\n }\n return compileRules(rules, options, finalContext);\n })\n .reduce(reduceRules, boolbase_1.default.falseFunc);\n query.shouldTestNextSiblings = shouldTestNextSiblings;\n return query;\n}\nexports.compileToken = compileToken;\nfunction compileRules(rules, options, context) {\n var _a;\n return rules.reduce(function (previous, rule) {\n return previous === boolbase_1.default.falseFunc\n ? boolbase_1.default.falseFunc\n : (0, general_js_1.compileGeneralSelector)(previous, rule, options, context, compileToken);\n }, (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase_1.default.trueFunc);\n}\nfunction reduceRules(a, b) {\n if (b === boolbase_1.default.falseFunc || a === boolbase_1.default.trueFunc) {\n return a;\n }\n if (a === boolbase_1.default.falseFunc || b === boolbase_1.default.trueFunc) {\n return b;\n }\n return function combine(elem) {\n return a(elem) || b(elem);\n };\n}\n//# sourceMappingURL=compile.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0;\nvar DomUtils = __importStar(require(\"domutils\"));\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nvar compile_js_1 = require(\"./compile.js\");\nvar subselects_js_1 = require(\"./pseudo-selectors/subselects.js\");\nvar defaultEquals = function (a, b) { return a === b; };\nvar defaultOptions = {\n adapter: DomUtils,\n equals: defaultEquals,\n};\nfunction convertOptionFormats(options) {\n var _a, _b, _c, _d;\n /*\n * We force one format of options to the other one.\n */\n // @ts-expect-error Default options may have incompatible `Node` / `ElementNode`.\n var opts = options !== null && options !== void 0 ? options : defaultOptions;\n // @ts-expect-error Same as above.\n (_a = opts.adapter) !== null && _a !== void 0 ? _a : (opts.adapter = DomUtils);\n // @ts-expect-error `equals` does not exist on `Options`\n (_b = opts.equals) !== null && _b !== void 0 ? _b : (opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals);\n return opts;\n}\nfunction wrapCompile(func) {\n return function addAdapter(selector, options, context) {\n var opts = convertOptionFormats(options);\n return func(selector, opts, context);\n };\n}\n/**\n * Compiles the query, returns a function.\n */\nexports.compile = wrapCompile(compile_js_1.compile);\nexports._compileUnsafe = wrapCompile(compile_js_1.compileUnsafe);\nexports._compileToken = wrapCompile(compile_js_1.compileToken);\nfunction getSelectorFunc(searchFunc) {\n return function select(query, elements, options) {\n var opts = convertOptionFormats(options);\n if (typeof query !== \"function\") {\n query = (0, compile_js_1.compileUnsafe)(query, opts, elements);\n }\n var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings);\n return searchFunc(query, filteredElements, opts);\n };\n}\nfunction prepareContext(elems, adapter, shouldTestNextSiblings) {\n if (shouldTestNextSiblings === void 0) { shouldTestNextSiblings = false; }\n /*\n * Add siblings if the query requires them.\n * See https://github.com/fb55/css-select/pull/43#issuecomment-225414692\n */\n if (shouldTestNextSiblings) {\n elems = appendNextSiblings(elems, adapter);\n }\n return Array.isArray(elems)\n ? adapter.removeSubsets(elems)\n : adapter.getChildren(elems);\n}\nexports.prepareContext = prepareContext;\nfunction appendNextSiblings(elem, adapter) {\n // Order matters because jQuery seems to check the children before the siblings\n var elems = Array.isArray(elem) ? elem.slice(0) : [elem];\n var elemsLength = elems.length;\n for (var i = 0; i < elemsLength; i++) {\n var nextSiblings = (0, subselects_js_1.getNextSiblings)(elems[i], adapter);\n elems.push.apply(elems, nextSiblings);\n }\n return elems;\n}\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns All matching elements.\n *\n */\nexports.selectAll = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.default.falseFunc || !elems || elems.length === 0\n ? []\n : options.adapter.findAll(query, elems);\n});\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns the first match, or null if there was no match.\n */\nexports.selectOne = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.default.falseFunc || !elems || elems.length === 0\n ? null\n : options.adapter.findOne(query, elems);\n});\n/**\n * Tests whether or not an element is matched by query.\n *\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elem The element to test if it matches the query.\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns\n */\nfunction is(elem, query, options) {\n var opts = convertOptionFormats(options);\n return (typeof query === \"function\" ? query : (0, compile_js_1.compile)(query, opts))(elem);\n}\nexports.is = is;\n/**\n * Alias for selectAll(query, elems, options).\n * @see [compile] for supported selector queries.\n */\nexports.default = exports.selectAll;\n// Export filters, pseudos and aliases to allow users to supply their own.\n/** @deprecated Use the `pseudos` option instead. */\nvar index_js_1 = require(\"./pseudo-selectors/index.js\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return index_js_1.filters; } });\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return index_js_1.pseudos; } });\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return index_js_1.aliases; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction arr_back(arr) {\n return arr[arr.length - 1];\n}\nexports.default = arr_back;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar type_1 = __importDefault(require(\"./nodes/type\"));\nfunction isTag(node) {\n return node && node.nodeType === type_1.default.ELEMENT_NODE;\n}\nfunction getAttributeValue(elem, name) {\n return isTag(elem) ? elem.getAttribute(name) : undefined;\n}\nfunction getName(elem) {\n return ((elem && elem.rawTagName) || '').toLowerCase();\n}\nfunction getChildren(node) {\n return node && node.childNodes;\n}\nfunction getParent(node) {\n return node ? node.parentNode : null;\n}\nfunction getText(node) {\n return node.text;\n}\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n var node;\n var ancestor;\n var replace;\n // Check if each node (or one of its ancestors) is already contained in the\n // array.\n while (--idx > -1) {\n node = ancestor = nodes[idx];\n // Temporarily remove the node under consideration\n nodes[idx] = null;\n replace = true;\n while (ancestor) {\n if (nodes.indexOf(ancestor) > -1) {\n replace = false;\n nodes.splice(idx, 1);\n break;\n }\n ancestor = getParent(ancestor);\n }\n // If the node has been found to be unique, re-insert it.\n if (replace) {\n nodes[idx] = node;\n }\n }\n return nodes;\n}\nfunction existsOne(test, elems) {\n return elems.some(function (elem) {\n return isTag(elem) ? test(elem) || existsOne(test, getChildren(elem)) : false;\n });\n}\nfunction getSiblings(node) {\n var parent = getParent(node);\n return parent ? getChildren(parent) : [];\n}\nfunction hasAttrib(elem, name) {\n return getAttributeValue(elem, name) !== undefined;\n}\nfunction findOne(test, elems) {\n var elem = null;\n for (var i = 0, l = elems === null || elems === void 0 ? void 0 : elems.length; i < l && !elem; i++) {\n var el = elems[i];\n if (test(el)) {\n elem = el;\n }\n else {\n var childs = getChildren(el);\n if (childs && childs.length > 0) {\n elem = findOne(test, childs);\n }\n }\n }\n return elem;\n}\nfunction findAll(test, nodes) {\n var result = [];\n for (var i = 0, j = nodes.length; i < j; i++) {\n if (!isTag(nodes[i]))\n continue;\n if (test(nodes[i]))\n result.push(nodes[i]);\n var childs = getChildren(nodes[i]);\n if (childs)\n result = result.concat(findAll(test, childs));\n }\n return result;\n}\nexports.default = {\n isTag: isTag,\n getAttributeValue: getAttributeValue,\n getName: getName,\n getChildren: getChildren,\n getParent: getParent,\n getText: getText,\n removeSubsets: removeSubsets,\n existsOne: existsOne,\n getSiblings: getSiblings,\n hasAttrib: hasAttrib,\n findOne: findOne,\n findAll: findAll\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar VoidTag = /** @class */ (function () {\n function VoidTag(addClosingSlash, tags) {\n if (addClosingSlash === void 0) { addClosingSlash = false; }\n this.addClosingSlash = addClosingSlash;\n if (Array.isArray(tags)) {\n this.voidTags = tags.reduce(function (set, tag) {\n return set.add(tag.toLowerCase()).add(tag.toUpperCase()).add(tag);\n }, new Set());\n }\n else {\n this.voidTags = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'].reduce(function (set, tag) {\n return set.add(tag.toLowerCase()).add(tag.toUpperCase()).add(tag);\n }, new Set());\n }\n }\n VoidTag.prototype.formatNode = function (tag, attrs, innerHTML) {\n var addClosingSlash = this.addClosingSlash;\n var closingSpace = (addClosingSlash && attrs && !attrs.endsWith(' ')) ? ' ' : '';\n var closingSlash = addClosingSlash ? \"\".concat(closingSpace, \"/\") : '';\n return this.isVoidElement(tag.toLowerCase()) ? \"<\".concat(tag).concat(attrs).concat(closingSlash, \">\") : \"<\".concat(tag).concat(attrs, \">\").concat(innerHTML, \"</\").concat(tag, \">\");\n };\n VoidTag.prototype.isVoidElement = function (tag) {\n return this.voidTags.has(tag);\n };\n return VoidTag;\n}());\nexports.default = VoidTag;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar he_1 = require(\"he\");\nvar node_1 = __importDefault(require(\"./node\"));\nvar type_1 = __importDefault(require(\"./type\"));\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nvar TextNode = /** @class */ (function (_super) {\n __extends(TextNode, _super);\n function TextNode(rawText, parentNode, range) {\n if (parentNode === void 0) { parentNode = null; }\n var _this = _super.call(this, parentNode, range) || this;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = type_1.default.TEXT_NODE;\n _this.rawTagName = '';\n _this._rawText = rawText;\n return _this;\n }\n TextNode.prototype.clone = function () {\n return new TextNode(this._rawText, null);\n };\n Object.defineProperty(TextNode.prototype, \"rawText\", {\n get: function () {\n return this._rawText;\n },\n /**\n * Set rawText and invalidate trimmed caches\n */\n set: function (text) {\n this._rawText = text;\n this._trimmedRawText = void 0;\n this._trimmedText = void 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"trimmedRawText\", {\n /**\n * Returns raw text with all whitespace trimmed except single leading/trailing non-breaking space\n */\n get: function () {\n if (this._trimmedRawText !== undefined)\n return this._trimmedRawText;\n this._trimmedRawText = trimText(this.rawText);\n return this._trimmedRawText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"trimmedText\", {\n /**\n * Returns text with all whitespace trimmed except single leading/trailing non-breaking space\n */\n get: function () {\n if (this._trimmedText !== undefined)\n return this._trimmedText;\n this._trimmedText = trimText(this.text);\n return this._trimmedText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"text\", {\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n return (0, he_1.decode)(this.rawText);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"isWhitespace\", {\n /**\n * Detect if the node contains only white space.\n * @return {boolean}\n */\n get: function () {\n return /^(\\s| )*$/.test(this.rawText);\n },\n enumerable: false,\n configurable: true\n });\n TextNode.prototype.toString = function () {\n return this.rawText;\n };\n return TextNode;\n}(node_1.default));\nexports.default = TextNode;\n/**\n * Trim whitespace except single leading/trailing non-breaking space\n */\nfunction trimText(text) {\n var i = 0;\n var startPos;\n var endPos;\n while (i >= 0 && i < text.length) {\n if (/\\S/.test(text[i])) {\n if (startPos === undefined) {\n startPos = i;\n i = text.length;\n }\n else {\n endPos = i;\n i = void 0;\n }\n }\n if (startPos === undefined)\n i++;\n else\n i--;\n }\n if (startPos === undefined)\n startPos = 0;\n if (endPos === undefined)\n endPos = text.length - 1;\n var hasLeadingSpace = startPos > 0 && /[^\\S\\r\\n]/.test(text[startPos - 1]);\n var hasTrailingSpace = endPos < (text.length - 1) && /[^\\S\\r\\n]/.test(text[endPos + 1]);\n return (hasLeadingSpace ? ' ' : '') + text.slice(startPos, endPos + 1) + (hasTrailingSpace ? ' ' : '');\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = exports.base_parse = void 0;\nvar css_select_1 = require(\"css-select\");\nvar he_1 = __importDefault(require(\"he\"));\nvar back_1 = __importDefault(require(\"../back\"));\nvar matcher_1 = __importDefault(require(\"../matcher\"));\nvar void_tag_1 = __importDefault(require(\"../void-tag\"));\nvar comment_1 = __importDefault(require(\"./comment\"));\nvar node_1 = __importDefault(require(\"./node\"));\nvar text_1 = __importDefault(require(\"./text\"));\nvar type_1 = __importDefault(require(\"./type\"));\nfunction decode(val) {\n // clone string\n return JSON.parse(JSON.stringify(he_1.default.decode(val)));\n}\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\nvar Htags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup'];\nvar Dtags = ['details', 'dialog', 'dd', 'div', 'dt'];\nvar Ftags = ['fieldset', 'figcaption', 'figure', 'footer', 'form'];\nvar tableTags = ['table', 'td', 'tr'];\nvar htmlTags = ['address', 'article', 'aside', 'blockquote', 'br', 'hr', 'li', 'main', 'nav', 'ol', 'p', 'pre', 'section', 'ul'];\nvar kBlockElements = new Set();\nfunction addToKBlockElement() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var addToSet = function (array) {\n for (var index = 0; index < array.length; index++) {\n var element = array[index];\n kBlockElements.add(element);\n kBlockElements.add(element.toUpperCase());\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n addToSet(arg);\n }\n}\naddToKBlockElement(Htags, Dtags, Ftags, tableTags, htmlTags);\nvar DOMTokenList = /** @class */ (function () {\n function DOMTokenList(valuesInit, afterUpdate) {\n if (valuesInit === void 0) { valuesInit = []; }\n if (afterUpdate === void 0) { afterUpdate = function () { return null; }; }\n this._set = new Set(valuesInit);\n this._afterUpdate = afterUpdate;\n }\n DOMTokenList.prototype._validate = function (c) {\n if (/\\s/.test(c)) {\n throw new Error(\"DOMException in DOMTokenList.add: The token '\".concat(c, \"' contains HTML space characters, which are not valid in tokens.\"));\n }\n };\n DOMTokenList.prototype.add = function (c) {\n this._validate(c);\n this._set.add(c);\n this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.replace = function (c1, c2) {\n this._validate(c2);\n this._set.delete(c1);\n this._set.add(c2);\n this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.remove = function (c) {\n this._set.delete(c) && this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.toggle = function (c) {\n this._validate(c);\n if (this._set.has(c))\n this._set.delete(c);\n else\n this._set.add(c);\n this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.contains = function (c) {\n return this._set.has(c);\n };\n Object.defineProperty(DOMTokenList.prototype, \"length\", {\n get: function () {\n return this._set.size;\n },\n enumerable: false,\n configurable: true\n });\n DOMTokenList.prototype.values = function () {\n return this._set.values();\n };\n Object.defineProperty(DOMTokenList.prototype, \"value\", {\n get: function () {\n return Array.from(this._set.values());\n },\n enumerable: false,\n configurable: true\n });\n DOMTokenList.prototype.toString = function () {\n return Array.from(this._set.values()).join(' ');\n };\n return DOMTokenList;\n}());\n/**\n * HTMLElement, which contains a set of children.\n *\n * Note: this is a minimalist implementation, no complete tree\n * structure provided (no parentNode, nextSibling,\n * previousSibling etc).\n * @class HTMLElement\n * @extends {Node}\n */\nvar HTMLElement = /** @class */ (function (_super) {\n __extends(HTMLElement, _super);\n /**\n * Creates an instance of HTMLElement.\n * @param keyAttrs\tid and class attribute\n * @param [rawAttrs]\tattributes in string\n *\n * @memberof HTMLElement\n */\n function HTMLElement(tagName, keyAttrs, rawAttrs, parentNode, range, voidTag, _parseOptions) {\n if (rawAttrs === void 0) { rawAttrs = ''; }\n if (parentNode === void 0) { parentNode = null; }\n if (voidTag === void 0) { voidTag = new void_tag_1.default(); }\n if (_parseOptions === void 0) { _parseOptions = {}; }\n var _this = _super.call(this, parentNode, range) || this;\n _this.rawAttrs = rawAttrs;\n _this.voidTag = voidTag;\n /**\n * Node Type declaration.\n */\n _this.nodeType = type_1.default.ELEMENT_NODE;\n _this.rawTagName = tagName;\n _this.rawAttrs = rawAttrs || '';\n _this.id = keyAttrs.id || '';\n _this.childNodes = [];\n _this._parseOptions = _parseOptions;\n _this.classList = new DOMTokenList(keyAttrs.class ? keyAttrs.class.split(/\\s+/) : [], function (classList) { return _this.setAttribute('class', classList.toString()); } // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n );\n if (keyAttrs.id) {\n if (!rawAttrs) {\n _this.rawAttrs = \"id=\\\"\".concat(keyAttrs.id, \"\\\"\");\n }\n }\n if (keyAttrs.class) {\n if (!rawAttrs) {\n var cls = \"class=\\\"\".concat(_this.classList.toString(), \"\\\"\");\n if (_this.rawAttrs) {\n _this.rawAttrs += \" \".concat(cls);\n }\n else {\n _this.rawAttrs = cls;\n }\n }\n }\n return _this;\n }\n /**\n * Quote attribute values\n * @param attr attribute value\n * @returns {string} quoted value\n */\n HTMLElement.prototype.quoteAttribute = function (attr) {\n if (attr == null) {\n return 'null';\n }\n return JSON.stringify(attr.replace(/\"/g, '"')).replace(/\\\\t/g, '\\t').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\/g, '');\n };\n /**\n * Remove Child element from childNodes array\n * @param {HTMLElement} node node to remove\n */\n HTMLElement.prototype.removeChild = function (node) {\n this.childNodes = this.childNodes.filter(function (child) {\n return child !== node;\n });\n return this;\n };\n /**\n * Exchanges given child with new child\n * @param {HTMLElement} oldNode node to exchange\n * @param {HTMLElement} newNode new node\n */\n HTMLElement.prototype.exchangeChild = function (oldNode, newNode) {\n var children = this.childNodes;\n this.childNodes = children.map(function (child) {\n if (child === oldNode) {\n return newNode;\n }\n return child;\n });\n return this;\n };\n Object.defineProperty(HTMLElement.prototype, \"tagName\", {\n get: function () {\n return this.rawTagName ? this.rawTagName.toUpperCase() : this.rawTagName;\n },\n set: function (newname) {\n this.rawTagName = newname.toLowerCase();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"localName\", {\n get: function () {\n return this.rawTagName.toLowerCase();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"isVoidElement\", {\n get: function () {\n return this.voidTag.isVoidElement(this.localName);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"rawText\", {\n /**\n * Get escpaed (as-it) text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n // https://github.com/taoqf/node-html-parser/issues/249\n if (/^br$/i.test(this.rawTagName)) {\n return '\\n';\n }\n return this.childNodes.reduce(function (pre, cur) {\n return (pre += cur.rawText);\n }, '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"textContent\", {\n get: function () {\n return decode(this.rawText);\n },\n set: function (val) {\n var content = [new text_1.default(val, this)];\n this.childNodes = content;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"text\", {\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n return decode(this.rawText);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"structuredText\", {\n /**\n * Get structured Text (with '\\n' etc.)\n * @return {string} structured text\n */\n get: function () {\n var currentBlock = [];\n var blocks = [currentBlock];\n function dfs(node) {\n if (node.nodeType === type_1.default.ELEMENT_NODE) {\n if (kBlockElements.has(node.rawTagName)) {\n if (currentBlock.length > 0) {\n blocks.push((currentBlock = []));\n }\n node.childNodes.forEach(dfs);\n if (currentBlock.length > 0) {\n blocks.push((currentBlock = []));\n }\n }\n else {\n node.childNodes.forEach(dfs);\n }\n }\n else if (node.nodeType === type_1.default.TEXT_NODE) {\n if (node.isWhitespace) {\n // Whitespace node, postponed output\n currentBlock.prependWhitespace = true;\n }\n else {\n var text = node.trimmedText;\n if (currentBlock.prependWhitespace) {\n text = \" \".concat(text);\n currentBlock.prependWhitespace = false;\n }\n currentBlock.push(text);\n }\n }\n }\n dfs(this);\n return blocks\n .map(function (block) {\n return block.join('').replace(/\\s{2,}/g, ' '); // Normalize each line's whitespace\n })\n .join('\\n')\n .replace(/\\s+$/, ''); // trimRight;\n },\n enumerable: false,\n configurable: true\n });\n HTMLElement.prototype.toString = function () {\n var tag = this.rawTagName;\n if (tag) {\n var attrs = this.rawAttrs ? \" \".concat(this.rawAttrs) : '';\n return this.voidTag.formatNode(tag, attrs, this.innerHTML);\n }\n return this.innerHTML;\n };\n Object.defineProperty(HTMLElement.prototype, \"innerHTML\", {\n get: function () {\n return this.childNodes\n .map(function (child) {\n return child.toString();\n })\n .join('');\n },\n set: function (content) {\n var r = parse(content, this._parseOptions);\n var nodes = r.childNodes.length ? r.childNodes : [new text_1.default(content, this)];\n resetParent(nodes, this);\n resetParent(this.childNodes, null);\n this.childNodes = nodes;\n },\n enumerable: false,\n configurable: true\n });\n HTMLElement.prototype.set_content = function (content, options) {\n if (options === void 0) { options = {}; }\n if (content instanceof node_1.default) {\n content = [content];\n }\n else if (typeof content == 'string') {\n options = __assign(__assign({}, this._parseOptions), options);\n var r = parse(content, options);\n content = r.childNodes.length ? r.childNodes : [new text_1.default(r.innerHTML, this)];\n }\n resetParent(this.childNodes, null);\n resetParent(content, this);\n this.childNodes = content;\n return this;\n };\n HTMLElement.prototype.replaceWith = function () {\n var _this = this;\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n var parent = this.parentNode;\n var content = nodes\n .map(function (node) {\n if (node instanceof node_1.default) {\n return [node];\n }\n else if (typeof node == 'string') {\n var r = parse(node, _this._parseOptions);\n return r.childNodes.length ? r.childNodes : [new text_1.default(node, _this)];\n }\n return [];\n })\n .flat();\n var idx = parent.childNodes.findIndex(function (child) {\n return child === _this;\n });\n resetParent([this], null);\n parent.childNodes = __spreadArray(__spreadArray(__spreadArray([], parent.childNodes.slice(0, idx), true), resetParent(content, parent), true), parent.childNodes.slice(idx + 1), true);\n return this;\n };\n Object.defineProperty(HTMLElement.prototype, \"outerHTML\", {\n get: function () {\n return this.toString();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Trim element from right (in block) after seeing pattern in a TextNode.\n * @param {RegExp} pattern pattern to find\n * @return {HTMLElement} reference to current node\n */\n HTMLElement.prototype.trimRight = function (pattern) {\n for (var i = 0; i < this.childNodes.length; i++) {\n var childNode = this.childNodes[i];\n if (childNode.nodeType === type_1.default.ELEMENT_NODE) {\n childNode.trimRight(pattern);\n }\n else {\n var index = childNode.rawText.search(pattern);\n if (index > -1) {\n childNode.rawText = childNode.rawText.substr(0, index);\n // trim all following nodes.\n this.childNodes.length = i + 1;\n }\n }\n }\n return this;\n };\n Object.defineProperty(HTMLElement.prototype, \"structure\", {\n /**\n * Get DOM structure\n * @return {string} structure\n */\n get: function () {\n var res = [];\n var indention = 0;\n function write(str) {\n res.push(' '.repeat(indention) + str);\n }\n function dfs(node) {\n var idStr = node.id ? \"#\".concat(node.id) : '';\n var classStr = node.classList.length ? \".\".concat(node.classList.value.join('.')) : ''; // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call\n write(\"\".concat(node.rawTagName).concat(idStr).concat(classStr));\n indention++;\n node.childNodes.forEach(function (childNode) {\n if (childNode.nodeType === type_1.default.ELEMENT_NODE) {\n dfs(childNode);\n }\n else if (childNode.nodeType === type_1.default.TEXT_NODE) {\n if (!childNode.isWhitespace) {\n write('#text');\n }\n }\n });\n indention--;\n }\n dfs(this);\n return res.join('\\n');\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Remove whitespaces in this sub tree.\n * @return {HTMLElement} pointer to this\n */\n HTMLElement.prototype.removeWhitespace = function () {\n var _this = this;\n var o = 0;\n this.childNodes.forEach(function (node) {\n if (node.nodeType === type_1.default.TEXT_NODE) {\n if (node.isWhitespace) {\n return;\n }\n node.rawText = node.trimmedRawText;\n }\n else if (node.nodeType === type_1.default.ELEMENT_NODE) {\n node.removeWhitespace();\n }\n _this.childNodes[o++] = node;\n });\n this.childNodes.length = o;\n return this;\n };\n /**\n * Query CSS selector to find matching nodes.\n * @param {string} selector Simplified CSS selector\n * @return {HTMLElement[]} matching elements\n */\n HTMLElement.prototype.querySelectorAll = function (selector) {\n return (0, css_select_1.selectAll)(selector, this, {\n xmlMode: true,\n adapter: matcher_1.default,\n });\n };\n /**\n * Query CSS Selector to find matching node.\n * @param {string} selector Simplified CSS selector\n * @return {(HTMLElement|null)} matching node\n */\n HTMLElement.prototype.querySelector = function (selector) {\n return (0, css_select_1.selectOne)(selector, this, {\n xmlMode: true,\n adapter: matcher_1.default,\n });\n };\n /**\n * find elements by their tagName\n * @param {string} tagName the tagName of the elements to select\n */\n HTMLElement.prototype.getElementsByTagName = function (tagName) {\n var upperCasedTagName = tagName.toUpperCase();\n var re = [];\n var stack = [];\n var currentNodeReference = this;\n var index = 0;\n // index turns to undefined once the stack is empty and the first condition occurs\n // which happens once all relevant children are searched through\n while (index !== undefined) {\n var child = void 0;\n // make it work with sparse arrays\n do {\n child = currentNodeReference.childNodes[index++];\n } while (index < currentNodeReference.childNodes.length && child === undefined);\n // if the child does not exist we move on with the last provided index (which belongs to the parentNode)\n if (child === undefined) {\n currentNodeReference = currentNodeReference.parentNode;\n index = stack.pop();\n continue;\n }\n if (child.nodeType === type_1.default.ELEMENT_NODE) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName#syntax\n if (tagName === '*' || child.tagName === upperCasedTagName)\n re.push(child);\n // if children are existing push the current status to the stack and keep searching for elements in the level below\n if (child.childNodes.length > 0) {\n stack.push(index);\n currentNodeReference = child;\n index = 0;\n }\n }\n }\n return re;\n };\n /**\n * find element by it's id\n * @param {string} id the id of the element to select\n * @returns {HTMLElement | null} the element with the given id or null if not found\n */\n HTMLElement.prototype.getElementById = function (id) {\n var stack = [];\n var currentNodeReference = this;\n var index = 0;\n // index turns to undefined once the stack is empty and the first condition occurs\n // which happens once all relevant children are searched through\n while (index !== undefined) {\n var child = void 0;\n // make it work with sparse arrays\n do {\n child = currentNodeReference.childNodes[index++];\n } while (index < currentNodeReference.childNodes.length && child === undefined);\n // if the child does not exist we move on with the last provided index (which belongs to the parentNode)\n if (child === undefined) {\n currentNodeReference = currentNodeReference.parentNode;\n index = stack.pop();\n continue;\n }\n if (child.nodeType === type_1.default.ELEMENT_NODE) {\n if (child.id === id) {\n return child;\n }\n ;\n // if children are existing push the current status to the stack and keep searching for elements in the level below\n if (child.childNodes.length > 0) {\n stack.push(index);\n currentNodeReference = child;\n index = 0;\n }\n }\n }\n return null;\n };\n /**\n * traverses the Element and its parents (heading toward the document root) until it finds a node that matches the provided selector string. Will return itself or the matching ancestor. If no such element exists, it returns null.\n * @param selector a DOMString containing a selector list\n * @returns {HTMLElement | null} the element with the given id or null if not found\n */\n HTMLElement.prototype.closest = function (selector) {\n var mapChild = new Map();\n var el = this;\n var old = null;\n function findOne(test, elems) {\n var elem = null;\n for (var i = 0, l = elems.length; i < l && !elem; i++) {\n var el_1 = elems[i];\n if (test(el_1)) {\n elem = el_1;\n }\n else {\n var child = mapChild.get(el_1);\n if (child) {\n elem = findOne(test, [child]);\n }\n }\n }\n return elem;\n }\n while (el) {\n mapChild.set(el, old);\n old = el;\n el = el.parentNode;\n }\n el = this;\n while (el) {\n var e = (0, css_select_1.selectOne)(selector, el, {\n xmlMode: true,\n adapter: __assign(__assign({}, matcher_1.default), { getChildren: function (node) {\n var child = mapChild.get(node);\n return child && [child];\n }, getSiblings: function (node) {\n return [node];\n }, findOne: findOne, findAll: function () {\n return [];\n } }),\n });\n if (e) {\n return e;\n }\n el = el.parentNode;\n }\n return null;\n };\n /**\n * Append a child node to childNodes\n * @param {Node} node node to append\n * @return {Node} node appended\n */\n HTMLElement.prototype.appendChild = function (node) {\n // remove the node from it's parent\n node.remove();\n this.childNodes.push(node);\n node.parentNode = this;\n return node;\n };\n Object.defineProperty(HTMLElement.prototype, \"firstChild\", {\n /**\n * Get first child node\n * @return {Node | undefined} first child node; or undefined if none\n */\n get: function () {\n return this.childNodes[0];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"lastChild\", {\n /**\n * Get last child node\n * @return {Node | undefined} last child node; or undefined if none\n */\n get: function () {\n return (0, back_1.default)(this.childNodes);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"attrs\", {\n /**\n * Get attributes\n * @access private\n * @return {Object} parsed and unescaped attributes\n */\n get: function () {\n if (this._attrs) {\n return this._attrs;\n }\n this._attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n this._attrs[key.toLowerCase()] = decode(val);\n }\n return this._attrs;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"attributes\", {\n get: function () {\n var ret_attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n ret_attrs[key] = decode(val);\n }\n return ret_attrs;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"rawAttributes\", {\n /**\n * Get escaped (as-is) attributes\n * @return {Object} parsed attributes\n */\n get: function () {\n if (this._rawAttrs) {\n return this._rawAttrs;\n }\n var attrs = {};\n if (this.rawAttrs) {\n var re = /([a-zA-Z()[\\]#@$.?:][a-zA-Z0-9-_:()[\\]#]*)(?:\\s*=\\s*((?:'[^']*')|(?:\"[^\"]*\")|\\S+))?/g;\n var match = void 0;\n while ((match = re.exec(this.rawAttrs))) {\n var key = match[1];\n var val = match[2] || null;\n if (val && (val[0] === \"'\" || val[0] === \"\\\"\"))\n val = val.slice(1, val.length - 1);\n attrs[key] = attrs[key] || val;\n }\n }\n this._rawAttrs = attrs;\n return attrs;\n },\n enumerable: false,\n configurable: true\n });\n HTMLElement.prototype.removeAttribute = function (key) {\n var _this = this;\n var attrs = this.rawAttributes;\n delete attrs[key];\n // Update this.attribute\n if (this._attrs) {\n delete this._attrs[key];\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs)\n .map(function (name) {\n var val = _this.quoteAttribute(attrs[name]);\n if (val === 'null' || val === '\"\"')\n return name;\n return \"\".concat(name, \"=\").concat(val);\n })\n .join(' ');\n // Update this.id\n if (key === 'id') {\n this.id = '';\n }\n return this;\n };\n HTMLElement.prototype.hasAttribute = function (key) {\n return key.toLowerCase() in this.attrs;\n };\n /**\n * Get an attribute\n * @return {string | undefined} value of the attribute; or undefined if not exist\n */\n HTMLElement.prototype.getAttribute = function (key) {\n return this.attrs[key.toLowerCase()];\n };\n /**\n * Set an attribute value to the HTMLElement\n * @param {string} key The attribute name\n * @param {string} value The value to set, or null / undefined to remove an attribute\n */\n HTMLElement.prototype.setAttribute = function (key, value) {\n var _this = this;\n if (arguments.length < 2) {\n throw new Error(\"Failed to execute 'setAttribute' on 'Element'\");\n }\n var k2 = key.toLowerCase();\n var attrs = this.rawAttributes;\n for (var k in attrs) {\n if (k.toLowerCase() === k2) {\n key = k;\n break;\n }\n }\n attrs[key] = String(value);\n // update this.attrs\n if (this._attrs) {\n this._attrs[k2] = decode(attrs[key]);\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs)\n .map(function (name) {\n var val = _this.quoteAttribute(attrs[name]);\n if (val === 'null' || val === '\"\"')\n return name;\n return \"\".concat(name, \"=\").concat(val);\n })\n .join(' ');\n // Update this.id\n if (key === 'id') {\n this.id = value;\n }\n return this;\n };\n /**\n * Replace all the attributes of the HTMLElement by the provided attributes\n * @param {Attributes} attributes the new attribute set\n */\n HTMLElement.prototype.setAttributes = function (attributes) {\n var _this = this;\n // Invalidate current this.attributes\n if (this._attrs) {\n delete this._attrs;\n }\n // Invalidate current this.rawAttributes\n if (this._rawAttrs) {\n delete this._rawAttrs;\n }\n // Update rawString\n this.rawAttrs = Object.keys(attributes)\n .map(function (name) {\n var val = attributes[name];\n if (val === 'null' || val === '\"\"')\n return name;\n return \"\".concat(name, \"=\").concat(_this.quoteAttribute(String(val)));\n })\n .join(' ');\n return this;\n };\n HTMLElement.prototype.insertAdjacentHTML = function (where, html) {\n var _a, _b, _c;\n var _this = this;\n if (arguments.length < 2) {\n throw new Error('2 arguments required');\n }\n var p = parse(html, this._parseOptions);\n if (where === 'afterend') {\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this;\n });\n resetParent(p.childNodes, this.parentNode);\n (_a = this.parentNode.childNodes).splice.apply(_a, __spreadArray([idx + 1, 0], p.childNodes, false));\n }\n else if (where === 'afterbegin') {\n resetParent(p.childNodes, this);\n (_b = this.childNodes).unshift.apply(_b, p.childNodes);\n }\n else if (where === 'beforeend') {\n p.childNodes.forEach(function (n) {\n _this.appendChild(n);\n });\n }\n else if (where === 'beforebegin') {\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this;\n });\n resetParent(p.childNodes, this.parentNode);\n (_c = this.parentNode.childNodes).splice.apply(_c, __spreadArray([idx, 0], p.childNodes, false));\n }\n else {\n throw new Error(\"The value provided ('\".concat(where, \"') is not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'\"));\n }\n return this;\n // if (!where || html === undefined || html === null) {\n // \treturn;\n // }\n };\n Object.defineProperty(HTMLElement.prototype, \"nextSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n while (i < children.length) {\n var child = children[i++];\n if (this === child)\n return children[i] || null;\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"nextElementSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n var find = false;\n while (i < children.length) {\n var child = children[i++];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n }\n else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"previousSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = children.length;\n while (i > 0) {\n var child = children[--i];\n if (this === child)\n return children[i - 1] || null;\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"previousElementSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = children.length;\n var find = false;\n while (i > 0) {\n var child = children[--i];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n }\n else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"classNames\", {\n get: function () {\n return this.classList.toString();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this Node\n */\n HTMLElement.prototype.clone = function () {\n return parse(this.toString(), this._parseOptions).firstChild;\n };\n return HTMLElement;\n}(node_1.default));\nexports.default = HTMLElement;\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\nvar kMarkupPattern = /<!--[\\s\\S]*?-->|<(\\/?)([a-zA-Z][-.:0-9_a-zA-Z]*)((?:\\s+[^>]*?(?:(?:'[^']*')|(?:\"[^\"]*\"))?)*)\\s*(\\/?)>/g;\nvar kAttributePattern = /(?:^|\\s)(id|class)\\s*=\\s*((?:'[^']*')|(?:\"[^\"]*\")|\\S+)/gi;\nvar kElementsClosedByOpening = {\n li: { li: true, LI: true },\n LI: { li: true, LI: true },\n p: { p: true, div: true, P: true, DIV: true },\n P: { p: true, div: true, P: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n td: { td: true, th: true, TD: true, TH: true },\n TD: { td: true, th: true, TD: true, TH: true },\n th: { td: true, th: true, TD: true, TH: true },\n TH: { td: true, th: true, TD: true, TH: true },\n h1: { h1: true, H1: true },\n H1: { h1: true, H1: true },\n h2: { h2: true, H2: true },\n H2: { h2: true, H2: true },\n h3: { h3: true, H3: true },\n H3: { h3: true, H3: true },\n h4: { h4: true, H4: true },\n H4: { h4: true, H4: true },\n h5: { h5: true, H5: true },\n H5: { h5: true, H5: true },\n h6: { h6: true, H6: true },\n H6: { h6: true, H6: true },\n};\nvar kElementsClosedByClosing = {\n li: { ul: true, ol: true, UL: true, OL: true },\n LI: { ul: true, ol: true, UL: true, OL: true },\n a: { div: true, DIV: true },\n A: { div: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n i: { div: true, DIV: true },\n I: { div: true, DIV: true },\n p: { div: true, DIV: true },\n P: { div: true, DIV: true },\n td: { tr: true, table: true, TR: true, TABLE: true },\n TD: { tr: true, table: true, TR: true, TABLE: true },\n th: { tr: true, table: true, TR: true, TABLE: true },\n TH: { tr: true, table: true, TR: true, TABLE: true },\n};\nvar frameflag = 'documentfragmentcontainer';\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n * @param {string} data html\n * @return {HTMLElement} root element\n */\nfunction base_parse(data, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n var voidTag = new void_tag_1.default((_a = options === null || options === void 0 ? void 0 : options.voidTag) === null || _a === void 0 ? void 0 : _a.closingSlash, (_b = options === null || options === void 0 ? void 0 : options.voidTag) === null || _b === void 0 ? void 0 : _b.tags);\n var elements = options.blockTextElements || {\n script: true,\n noscript: true,\n style: true,\n pre: true,\n };\n var element_names = Object.keys(elements);\n var kBlockTextElements = element_names.map(function (it) { return new RegExp(\"^\".concat(it, \"$\"), 'i'); });\n var kIgnoreElements = element_names.filter(function (it) { return Boolean(elements[it]); }).map(function (it) { return new RegExp(\"^\".concat(it, \"$\"), 'i'); });\n function element_should_be_ignore(tag) {\n return kIgnoreElements.some(function (it) { return it.test(tag); });\n }\n function is_block_text_element(tag) {\n return kBlockTextElements.some(function (it) { return it.test(tag); });\n }\n var createRange = function (startPos, endPos) { return [startPos - frameFlagOffset, endPos - frameFlagOffset]; };\n var root = new HTMLElement(null, {}, '', null, [0, data.length], voidTag, options);\n var currentParent = root;\n var stack = [root];\n var lastTextPos = -1;\n var noNestedTagIndex = undefined;\n var match;\n // https://github.com/taoqf/node-html-parser/issues/38\n data = \"<\".concat(frameflag, \">\").concat(data, \"</\").concat(frameflag, \">\");\n var lowerCaseTagName = options.lowerCaseTagName, fixNestedATags = options.fixNestedATags;\n var dataEndPos = data.length - (frameflag.length + 2);\n var frameFlagOffset = frameflag.length + 2;\n while ((match = kMarkupPattern.exec(data))) {\n // Note: Object destructuring here consistently tests as higher performance than array destructuring\n // eslint-disable-next-line prefer-const\n var matchText = match[0], leadingSlash = match[1], tagName = match[2], attributes = match[3], closingSlash = match[4];\n var matchLength = matchText.length;\n var tagStartPos = kMarkupPattern.lastIndex - matchLength;\n var tagEndPos = kMarkupPattern.lastIndex;\n // Add TextNode if content\n if (lastTextPos > -1) {\n if (lastTextPos + matchLength < tagEndPos) {\n var text = data.substring(lastTextPos, tagStartPos);\n currentParent.appendChild(new text_1.default(text, currentParent, createRange(lastTextPos, tagStartPos)));\n }\n }\n lastTextPos = kMarkupPattern.lastIndex;\n // https://github.com/taoqf/node-html-parser/issues/38\n // Skip frameflag node\n if (tagName === frameflag)\n continue;\n // Handle comments\n if (matchText[1] === '!') {\n if (options.comment) {\n // Only keep what is in between <!-- and -->\n var text = data.substring(tagStartPos + 4, tagEndPos - 3);\n currentParent.appendChild(new comment_1.default(text, currentParent, createRange(tagStartPos, tagEndPos)));\n }\n continue;\n }\n /* -- Handle tag matching -- */\n // Fix tag casing if necessary\n if (lowerCaseTagName)\n tagName = tagName.toLowerCase();\n // Handle opening tags (ie. <this> not </that>)\n if (!leadingSlash) {\n /* Populate attributes */\n var attrs = {};\n for (var attMatch = void 0; (attMatch = kAttributePattern.exec(attributes));) {\n var key = attMatch[1], val = attMatch[2];\n var isQuoted = val[0] === \"'\" || val[0] === \"\\\"\";\n attrs[key.toLowerCase()] = isQuoted ? val.slice(1, val.length - 1) : val;\n }\n var parentTagName = currentParent.rawTagName;\n if (!closingSlash && kElementsClosedByOpening[parentTagName]) {\n if (kElementsClosedByOpening[parentTagName][tagName]) {\n stack.pop();\n currentParent = (0, back_1.default)(stack);\n }\n }\n // Prevent nested A tags by terminating the last A and starting a new one : see issue #144\n if (fixNestedATags && (tagName === 'a' || tagName === 'A')) {\n if (noNestedTagIndex !== undefined) {\n stack.splice(noNestedTagIndex);\n currentParent = (0, back_1.default)(stack);\n }\n noNestedTagIndex = stack.length;\n }\n var tagEndPos_1 = kMarkupPattern.lastIndex;\n var tagStartPos_1 = tagEndPos_1 - matchLength;\n currentParent = currentParent.appendChild(\n // Initialize range (end position updated later for closed tags)\n new HTMLElement(tagName, attrs, attributes.slice(1), null, createRange(tagStartPos_1, tagEndPos_1), voidTag, options));\n stack.push(currentParent);\n if (is_block_text_element(tagName)) {\n // Find closing tag\n var closeMarkup = \"</\".concat(tagName, \">\");\n var closeIndex = lowerCaseTagName\n ? data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex)\n : data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n var textEndPos = closeIndex === -1 ? dataEndPos : closeIndex;\n if (element_should_be_ignore(tagName)) {\n var text = data.substring(tagEndPos_1, textEndPos);\n if (text.length > 0 && /\\S/.test(text)) {\n currentParent.appendChild(new text_1.default(text, currentParent, createRange(tagEndPos_1, textEndPos)));\n }\n }\n if (closeIndex === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n }\n else {\n lastTextPos = kMarkupPattern.lastIndex = closeIndex + closeMarkup.length;\n // Cause to be treated as self-closing, because no close found\n leadingSlash = '/';\n }\n }\n }\n // Handle closing tags or self-closed elements (ie </tag> or <br>)\n if (leadingSlash || closingSlash || voidTag.isVoidElement(tagName)) {\n while (true) {\n if (noNestedTagIndex != null && (tagName === 'a' || tagName === 'A'))\n noNestedTagIndex = undefined;\n if (currentParent.rawTagName === tagName) {\n // Update range end for closed tag\n currentParent.range[1] = createRange(-1, Math.max(lastTextPos, tagEndPos))[1];\n stack.pop();\n currentParent = (0, back_1.default)(stack);\n break;\n }\n else {\n var parentTagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[parentTagName]) {\n if (kElementsClosedByClosing[parentTagName][tagName]) {\n stack.pop();\n currentParent = (0, back_1.default)(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n return stack;\n}\nexports.base_parse = base_parse;\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nfunction parse(data, options) {\n if (options === void 0) { options = {}; }\n var stack = base_parse(data, options);\n var root = stack[0];\n var _loop_1 = function () {\n // Handle each error elements.\n var last = stack.pop();\n var oneBefore = (0, back_1.default)(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case <h3> <h3> handle : Fixes to <h3> </h3>\n // this is wrong, becouse this will put the H3 outside the current right position which should be inside the current Html Element, see issue 152 for more info\n if (options.parseNoneClosedTags !== true) {\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n }\n }\n else {\n // Single error <div> <h3> </div> handle: Just removes <h3>\n // Why remove? this is already a HtmlElement and the missing <H3> is already added in this case. see issue 152 for more info\n // eslint-disable-next-line no-lonely-if\n if (options.parseNoneClosedTags !== true) {\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.appendChild(child);\n });\n }\n }\n }\n else {\n // If it's final element just skip.\n }\n };\n while (stack.length > 1) {\n _loop_1();\n }\n // response.childNodes.forEach((node) => {\n // \tif (node instanceof HTMLElement) {\n // \t\tnode.parentNode = null;\n // \t}\n // });\n return root;\n}\nexports.parse = parse;\nfunction resetParent(nodes, parent) {\n return nodes.map(function (node) {\n node.parentNode = parent;\n return node;\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar html_1 = require(\"./nodes/html\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return html_1.parse; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar html_1 = require(\"./nodes/html\");\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nfunction valid(data, options) {\n if (options === void 0) { options = {}; }\n var stack = (0, html_1.base_parse)(data, options);\n return Boolean(stack.length === 1);\n}\nexports.default = valid;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeType = exports.TextNode = exports.Node = exports.valid = exports.CommentNode = exports.HTMLElement = exports.parse = void 0;\nvar comment_1 = __importDefault(require(\"./nodes/comment\"));\nexports.CommentNode = comment_1.default;\nvar html_1 = __importDefault(require(\"./nodes/html\"));\nexports.HTMLElement = html_1.default;\nvar node_1 = __importDefault(require(\"./nodes/node\"));\nexports.Node = node_1.default;\nvar text_1 = __importDefault(require(\"./nodes/text\"));\nexports.TextNode = text_1.default;\nvar type_1 = __importDefault(require(\"./nodes/type\"));\nexports.NodeType = type_1.default;\nvar parse_1 = __importDefault(require(\"./parse\"));\nvar valid_1 = __importDefault(require(\"./valid\"));\nexports.valid = valid_1.default;\nfunction parse(data, options) {\n if (options === void 0) { options = {}; }\n return (0, parse_1.default)(data, options);\n}\nexports.default = parse;\nexports.parse = parse;\nparse.parse = parse_1.default;\nparse.HTMLElement = html_1.default;\nparse.CommentNode = comment_1.default;\nparse.valid = valid_1.default;\nparse.Node = node_1.default;\nparse.TextNode = text_1.default;\nparse.NodeType = type_1.default;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.perfStop = exports.perfStart = exports.getChildNodes = exports.parseHTML = exports.truthyStr = exports.getTrailingWhitespaceInfo = exports.tagSurround = exports.splitSpecial = exports.isWhiteSpaceOnly = exports.surround = exports.trimNewLines = void 0;\nconst config_1 = require(\"./config\");\n/* ****************************************************************************************************************** */\n// region: String Utils\n/* ****************************************************************************************************************** */\nconst trimNewLines = (s) => s.replace(/^\\n+|\\n+$/g, '');\nexports.trimNewLines = trimNewLines;\nconst surround = (source, surroundStr) => `${surroundStr}${source}${surroundStr}`;\nexports.surround = surround;\nconst isWhiteSpaceOnly = (s) => !/\\S/.test(s);\nexports.isWhiteSpaceOnly = isWhiteSpaceOnly;\n/**\n * Split string, preserving specific newline used for each line\n */\nfunction splitSpecial(s) {\n const lines = [];\n const strLen = s.length;\n for (let i = 0, startPos = 0; i < strLen; ++i) {\n let char = s.charAt(i);\n let newLineChar = '';\n if (char === '\\r')\n newLineChar = (s.charAt(i + 1) === '\\n') ? '\\r\\n' : char;\n else if (char === '\\n')\n newLineChar = char;\n const endPos = newLineChar ? i :\n i === (strLen - 1) ? i + 1 :\n undefined;\n if (endPos === undefined)\n continue;\n lines.push({\n text: s.slice(startPos, endPos),\n newLineChar\n });\n startPos = endPos + newLineChar.length;\n if (newLineChar.length > 1)\n ++i;\n }\n return lines;\n}\nexports.splitSpecial = splitSpecial;\n/**\n * Surround tag content with delimiter (moving any leading/trailing space to outside the tag\n */\nfunction tagSurround(content, surroundStr) {\n // If un-escaped surroundStr already occurs, remove all instances\n // See: https://github.com/crosstype/node-html-markdown/issues/18\n const nestedSurroundStrIndex = content.indexOf(surroundStr);\n if (nestedSurroundStrIndex >= 0)\n content = content.replace(new RegExp(`([^\\\\\\\\])\\\\${surroundStr.split('').join('\\\\')}`, 'gm'), '$1');\n const lines = splitSpecial(content);\n let res = '';\n for (const { text, newLineChar } of lines) {\n let i = 0;\n let startPos = undefined;\n let endPos = undefined;\n while (i >= 0 && i < text.length) {\n if (/[\\S]/.test(text[i])) {\n if (startPos === undefined) {\n startPos = i;\n i = text.length;\n }\n else {\n endPos = i;\n i = NaN;\n }\n }\n if (startPos === undefined)\n ++i;\n else\n --i;\n }\n // If whole string is non-breaking whitespace, don't surround it\n if (startPos === undefined) {\n res += text + newLineChar;\n continue;\n }\n if (endPos === undefined)\n endPos = text.length - 1;\n const leadingSpace = startPos > 0 ? text[startPos - 1] : '';\n const trailingSpace = endPos < (text.length - 1) ? text[endPos + 1] : '';\n const slicedText = text.slice(startPos, endPos + 1);\n res += leadingSpace + surroundStr + slicedText + surroundStr + trailingSpace + newLineChar;\n }\n return res;\n}\nexports.tagSurround = tagSurround;\nconst getTrailingWhitespaceInfo = (s) => {\n const res = { whitespace: 0, newLines: 0 };\n const minI = Math.max(s.length - 10, 0);\n for (let i = s.length - 1; i >= minI; --i) {\n const token = s.slice(i, i + 1);\n if (!/\\s/.test(token))\n break;\n ++res.whitespace;\n if (['\\r', '\\n'].includes(token))\n ++res.newLines;\n }\n return res;\n};\nexports.getTrailingWhitespaceInfo = getTrailingWhitespaceInfo;\n/**\n * If value is truthy, returns `value` (or `v` if no `value` provided), otherwise, returns an empty string\n * @param v - Var to check for truthiness\n * @param value - Value to return if true\n */\nconst truthyStr = (v, value) => v ? ((value !== undefined) ? value : String(v)) : '';\nexports.truthyStr = truthyStr;\n// endregion\n/* ****************************************************************************************************************** */\n// region: Parser\n/* ****************************************************************************************************************** */\nfunction tryParseWithNativeDom(html) {\n try {\n if (!((window === null || window === void 0 ? void 0 : window.DOMParser) && (new window.DOMParser()).parseFromString('', 'text/html')))\n return void 0;\n }\n catch (_a) {\n return void 0;\n }\n /* Get a document */\n let doc;\n try {\n doc = document.implementation.createHTMLDocument('').open();\n }\n catch (e) {\n const { ActiveXObject } = window;\n if (ActiveXObject) {\n const doc = ActiveXObject('htmlfile');\n doc.designMode = 'on'; // disable on-page scripts\n return doc.open();\n }\n throw e;\n }\n // Prepare document, ensuring we have a wrapper node\n doc.write('<node-html-markdown>' + html + '</node-html-markdown>');\n doc.close();\n return doc.documentElement;\n}\nconst getNodeHtmlParser = () => {\n try {\n return require('node-html-parser').parse;\n }\n catch (_a) {\n return undefined;\n }\n};\n/**\n * Parser string to HTMLElement\n */\nfunction parseHTML(html, options) {\n let nodeHtmlParse;\n /* If specified, try to parse with native engine, fallback to node-html-parser */\n perfStart('parse');\n let el;\n if (options.preferNativeParser) {\n try {\n el = tryParseWithNativeDom(html);\n }\n catch (e) {\n nodeHtmlParse = getNodeHtmlParser();\n if (nodeHtmlParse)\n console.warn('Native DOM parser encountered an error during parse', e);\n else\n throw e;\n }\n }\n else\n nodeHtmlParse = getNodeHtmlParser();\n if (!el)\n el = nodeHtmlParse(html, config_1.nodeHtmlParserConfig);\n perfStop('parse');\n return el;\n}\nexports.parseHTML = parseHTML;\nfunction getChildNodes(node) {\n if (!isNodeList(node.childNodes))\n return node.childNodes;\n const res = [];\n node.childNodes.forEach(n => res.push(n));\n return res;\n function isNodeList(v) {\n return (v != null) || (typeof v[Symbol.iterator] === 'function');\n }\n}\nexports.getChildNodes = getChildNodes;\nfunction perfStart(label) {\n if (process.env.LOG_PERF)\n console.time(label);\n}\nexports.perfStart = perfStart;\nfunction perfStop(label) {\n if (process.env.LOG_PERF)\n console.timeEnd(label);\n}\nexports.perfStop = perfStop;\n// endregion\n//# sourceMappingURL=utilities.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeHtmlParserConfig = exports.aTagTranslatorConfig = exports.defaultCodeBlockTranslators = exports.tableCellTranslatorConfig = exports.tableRowTranslatorConfig = exports.tableTranslatorConfig = exports.defaultTranslators = exports.defaultOptions = exports.contentlessElements = exports.defaultIgnoreElements = exports.defaultBlockElements = void 0;\nconst utilities_1 = require(\"./utilities\");\nconst translator_1 = require(\"./translator\");\n/* ****************************************************************************************************************** */\n// region: Elements\n/* ****************************************************************************************************************** */\nexports.defaultBlockElements = [\n 'ADDRESS', 'ARTICLE', 'ASIDE', 'AUDIO', 'BLOCKQUOTE', 'BODY', 'CANVAS', 'CENTER', 'DD', 'DIR', 'DIV', 'DL',\n 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'FORM', 'FRAMESET', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6',\n 'HEADER', 'HGROUP', 'HR', 'HTML', 'ISINDEX', 'LI', 'MAIN', 'MENU', 'NAV', 'NOFRAMES', 'NOSCRIPT', 'OL',\n 'OUTPUT', 'P', 'PRE', 'SECTION', 'TABLE', 'TBODY', 'TD', 'TFOOT', 'TH', 'THEAD', 'TR', 'UL'\n];\nexports.defaultIgnoreElements = [\n 'AREA', 'BASE', 'COL', 'COMMAND', 'EMBED', 'HEAD', 'INPUT', 'KEYGEN', 'LINK', 'META', 'PARAM', 'SCRIPT',\n 'SOURCE', 'STYLE', 'TRACK', 'WBR'\n];\nexports.contentlessElements = ['BR', 'HR', 'IMG'];\n// endregion\n/* ****************************************************************************************************************** */\n// region: Options\n/* ****************************************************************************************************************** */\n// noinspection RegExpUnnecessaryNonCapturingGroup\nexports.defaultOptions = Object.freeze({\n preferNativeParser: false,\n codeFence: '```',\n bulletMarker: '*',\n indent: ' ',\n codeBlockStyle: 'fenced',\n emDelimiter: '_',\n strongDelimiter: '**',\n strikeDelimiter: '~~',\n maxConsecutiveNewlines: 3,\n /**\n * Character: Affects: Example:\n *\n * \\ Escaping \\-\n * ` Code `` code ``, ```lang\\n code block \\n```\n * * Bullet & Separators * item, ***\n * _ Bold, Italics, Separator _italic_, __bold__, ^___\n * ~ Strikethrough, Code ~~strike~~, ~~~lang\\n code block \\n~~~\n * [ Url [caption](url)\n * ] Url [caption](url)\n */\n globalEscape: [/[\\\\`*_~\\[\\]]/gm, '\\\\$&'],\n /**\n * Note: The following compiled pattern was selected after perf testing various alternatives.\n * Please be mindful of performance if updating/changing it.\n *\n * Sequence: Affects: Example:\n *\n * +(space) Bullets + item\n * = Heading heading\\n====\n * #{1,6}(space) Heading ## Heading\n * > Blockquote > quote\n * - Bullet, Header, Separator - item, heading\\n---, ---\n * \\d+\\.(space) Numbered list item 1. Item\n */\n lineStartEscape: [\n /^(\\s*?)((?:\\+\\s)|(?:[=>-])|(?:#{1,6}\\s))|(?:(\\d+)(\\.\\s))/gm,\n '$1$3\\\\$2$4'\n ],\n useInlineLinks: true\n});\n// endregion\n/* ****************************************************************************************************************** */\n// region: Translators\n/* ****************************************************************************************************************** */\nexports.defaultTranslators = {\n /* Pre-formatted text */\n 'pre': { noEscape: true, preserveWhitespace: true },\n /* Line break */\n 'br': { content: ` \\n`, recurse: false },\n /* Horizontal Rule*/\n 'hr': { content: '---', recurse: false },\n /* Headings */\n 'h1,h2,h3,h4,h5,h6': ({ node }) => ({\n prefix: '#'.repeat(+node.tagName.charAt(1)) + ' '\n }),\n /* Bold / Strong */\n 'strong,b': {\n spaceIfRepeatingChar: true,\n postprocess: ({ content, options: { strongDelimiter } }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : (0, utilities_1.tagSurround)(content, strongDelimiter)\n },\n /* Strikethrough */\n 'del,s,strike': {\n spaceIfRepeatingChar: true,\n postprocess: ({ content, options: { strikeDelimiter } }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : (0, utilities_1.tagSurround)(content, strikeDelimiter)\n },\n /* Italic / Emphasis */\n 'em,i': {\n spaceIfRepeatingChar: true,\n postprocess: ({ content, options: { emDelimiter } }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : (0, utilities_1.tagSurround)(content, emDelimiter)\n },\n /* Lists (ordered & unordered) */\n 'ol,ul': ({ listKind }) => ({\n surroundingNewlines: listKind ? 1 : 2,\n }),\n /* List Item */\n 'li': ({ options: { bulletMarker }, indentLevel, listKind, listItemNumber }) => {\n const indentationLevel = +(indentLevel || 0);\n return {\n prefix: ' '.repeat(+(indentLevel || 0)) +\n (((listKind === 'OL') && (listItemNumber !== undefined)) ? `${listItemNumber}. ` : `${bulletMarker} `),\n surroundingNewlines: 1,\n postprocess: ({ content }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : content\n .trim()\n .replace(/([^\\r\\n])(?:\\r?\\n)+/g, `$1 \\n${' '.repeat(indentationLevel)}`)\n .replace(/(\\S+?)[^\\S\\r\\n]+$/gm, '$1 ')\n };\n },\n /* Block Quote */\n 'blockquote': {\n postprocess: ({ content }) => (0, utilities_1.trimNewLines)(content).replace(/^(>*)[^\\S\\r\\n]?/gm, `>$1 `)\n },\n /* Code (block / inline) */\n 'code': ({ node, parent, options: { codeFence, codeBlockStyle }, visitor }) => {\n var _a, _b;\n const isCodeBlock = ['PRE', 'WRAPPED-PRE'].includes(parent === null || parent === void 0 ? void 0 : parent.tagName) && parent.childNodes.length < 2;\n /* Handle code (non-block) */\n if (!isCodeBlock)\n return {\n spaceIfRepeatingChar: true,\n noEscape: true,\n postprocess: ({ content }) => {\n var _a, _b;\n // Find longest occurring sequence of running backticks and add one more (so content is escaped)\n const delimiter = '`' + (((_b = (_a = content.match(/`+/g)) === null || _a === void 0 ? void 0 : _a.sort((a, b) => b.length - a.length)) === null || _b === void 0 ? void 0 : _b[0]) || '');\n const padding = delimiter.length > 1 ? ' ' : '';\n return (0, utilities_1.surround)((0, utilities_1.surround)(content, padding), delimiter);\n }\n };\n /* Handle code block */\n if (codeBlockStyle === 'fenced') {\n const language = ((_b = (_a = node.getAttribute('class')) === null || _a === void 0 ? void 0 : _a.match(/language-(\\S+)/)) === null || _b === void 0 ? void 0 : _b[1]) || '';\n return {\n noEscape: true,\n prefix: codeFence + language + '\\n',\n postfix: '\\n' + codeFence,\n childTranslators: visitor.instance.codeBlockTranslators\n };\n }\n else {\n return {\n noEscape: true,\n postprocess: ({ content }) => content.replace(/^/gm, ' '),\n childTranslators: visitor.instance.codeBlockTranslators\n };\n }\n },\n /* Table */\n 'table': ({ visitor }) => ({\n surroundingNewlines: 2,\n childTranslators: visitor.instance.tableTranslators,\n postprocess: ({ content, nodeMetadata, node }) => {\n // Split and trim leading + trailing pipes\n const rawRows = (0, utilities_1.splitSpecial)(content).map(({ text }) => text.replace(/^(?:\\|\\s+)?(.+)\\s*\\|\\s*$/, '$1'));\n /* Get Row Data */\n const rows = [];\n let colWidth = [];\n for (const row of rawRows) {\n if (!row)\n continue;\n /* Track columns */\n const cols = row.split(' |').map((c, i) => {\n c = c.trim();\n if (colWidth.length < i + 1 || colWidth[i] < c.length)\n colWidth[i] = c.length;\n return c;\n });\n rows.push(cols);\n }\n if (rows.length < 1)\n return translator_1.PostProcessResult.RemoveNode;\n /* Compose Table */\n const maxCols = colWidth.length;\n let res = '';\n const caption = nodeMetadata.get(node).tableMeta.caption;\n if (caption)\n res += caption + '\\n';\n rows.forEach((cols, rowNumber) => {\n var _a;\n res += '| ';\n /* Add Columns */\n for (let i = 0; i < maxCols; i++) {\n let c = ((_a = cols[i]) !== null && _a !== void 0 ? _a : '');\n c += ' '.repeat(Math.max(0, (colWidth[i] - c.length))); // Pad to max length\n res += c + ' |' + (i < maxCols - 1 ? ' ' : '');\n }\n res += '\\n';\n // Add separator row\n if (rowNumber === 0)\n res += '|' + colWidth.map(w => ' ' + '-'.repeat(w) + ' |').join('') + '\\n';\n });\n return res;\n }\n }),\n /* Link */\n 'a': ({ node, options, visitor }) => {\n const href = node.getAttribute('href');\n if (!href)\n return {};\n // Encodes symbols that can cause problems in markdown\n let encodedHref = '';\n for (const chr of href) {\n switch (chr) {\n case '(':\n encodedHref += '%28';\n break;\n case ')':\n encodedHref += '%29';\n break;\n case '_':\n encodedHref += '%5F';\n break;\n case '*':\n encodedHref += '%2A';\n break;\n default:\n encodedHref += chr;\n }\n }\n const title = node.getAttribute('title');\n // Inline link, when possible\n // See: https://github.com/crosstype/node-html-markdown/issues/17\n if (node.textContent === href && options.useInlineLinks)\n return { content: `<${encodedHref}>` };\n return {\n postprocess: ({ content }) => content.replace(/(?:\\r?\\n)+/g, ' '),\n childTranslators: visitor.instance.aTagTranslators,\n prefix: '[',\n postfix: ']' + (!options.useLinkReferenceDefinitions\n ? `(${encodedHref}${title ? ` \"${title}\"` : ''})`\n : `[${visitor.addOrGetUrlDefinition(encodedHref)}]`)\n };\n },\n /* Image */\n 'img': ({ node, options }) => {\n const src = node.getAttribute('src') || '';\n if (!src || (!options.keepDataImages && /^data:/i.test(src)))\n return { ignore: true };\n const alt = node.getAttribute('alt') || '';\n const title = node.getAttribute('title') || '';\n return {\n content: ``,\n recurse: false\n };\n },\n};\nexports.tableTranslatorConfig = {\n /* Table Caption */\n 'caption': ({ visitor }) => ({\n surroundingNewlines: false,\n childTranslators: visitor.instance.tableCellTranslators,\n postprocess: ({ content, nodeMetadata, node }) => {\n const caption = content.replace(/(?:\\r?\\n)+/g, ' ').trim();\n if (caption)\n nodeMetadata.get(node).tableMeta.caption = '__' + caption + '__';\n return translator_1.PostProcessResult.RemoveNode;\n },\n }),\n /* Table row */\n 'tr': ({ visitor }) => ({\n surroundingNewlines: false,\n childTranslators: visitor.instance.tableRowTranslators,\n postfix: '\\n',\n prefix: '| ',\n postprocess: ({ content }) => !/ \\|\\s*$/.test(content) ? translator_1.PostProcessResult.RemoveNode : content\n }),\n /* Table cell, (header cell) */\n 'th,td': ({ visitor }) => ({\n surroundingNewlines: false,\n childTranslators: visitor.instance.tableCellTranslators,\n prefix: ' ',\n postfix: ' |',\n postprocess: ({ content }) => (0, utilities_1.trimNewLines)(content)\n .replace('|', '\\\\|')\n .replace(/(?:\\r?\\n)+/g, ' ')\n .trim()\n }),\n};\nexports.tableRowTranslatorConfig = {\n 'th,td': exports.tableTranslatorConfig['th,td']\n};\nexports.tableCellTranslatorConfig = {\n 'a': exports.defaultTranslators['a'],\n 'strong,b': exports.defaultTranslators['strong,b'],\n 'del,s,strike': exports.defaultTranslators['del,s,strike'],\n 'em,i': exports.defaultTranslators['em,i'],\n 'img': exports.defaultTranslators['img']\n};\nexports.defaultCodeBlockTranslators = {\n 'br': { content: `\\n`, recurse: false },\n 'hr': { content: '---', recurse: false },\n 'h1,h2,h3,h4,h5,h6': { prefix: '[', postfix: ']' },\n 'ol,ul': exports.defaultTranslators['ol,ul'],\n 'li': exports.defaultTranslators['li'],\n 'tr': { surroundingNewlines: true },\n 'img': { recurse: false }\n};\nexports.aTagTranslatorConfig = {\n 'br': { content: '\\n', recurse: false },\n 'hr': { content: '\\n', recurse: false },\n 'pre': exports.defaultTranslators['pre'],\n 'strong,b': exports.defaultTranslators['strong,b'],\n 'del,s,strike': exports.defaultTranslators['del,s,strike'],\n 'em,i': exports.defaultTranslators['em,i'],\n 'img': exports.defaultTranslators['img']\n};\n// endregion\n/* ****************************************************************************************************************** */\n// region: General\n/* ****************************************************************************************************************** */\n/**\n * Note: Do not change - values are tuned for performance\n */\nexports.nodeHtmlParserConfig = {\n lowerCaseTagName: false,\n comment: false,\n fixNestedATags: true,\n blockTextElements: {\n script: false,\n noscript: false,\n style: false\n }\n};\n// endregion\n//# sourceMappingURL=config.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isElementNode = exports.isCommentNode = exports.isTextNode = exports.CommentNode = exports.NodeType = void 0;\nconst node_html_parser_1 = require(\"node-html-parser\");\nObject.defineProperty(exports, \"CommentNode\", { enumerable: true, get: function () { return node_html_parser_1.CommentNode; } });\nObject.defineProperty(exports, \"NodeType\", { enumerable: true, get: function () { return node_html_parser_1.NodeType; } });\n// endregion\n/* ****************************************************************************************************************** */\n// region: TypeGuards\n/* ****************************************************************************************************************** */\nconst isTextNode = (node) => node.nodeType === node_html_parser_1.NodeType.TEXT_NODE;\nexports.isTextNode = isTextNode;\nconst isCommentNode = (node) => node.nodeType === node_html_parser_1.NodeType.COMMENT_NODE;\nexports.isCommentNode = isCommentNode;\nconst isElementNode = (node) => node.nodeType === node_html_parser_1.NodeType.ELEMENT_NODE;\nexports.isElementNode = isElementNode;\n// endregion\n//# sourceMappingURL=nodes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMarkdownForHtmlNodes = exports.Visitor = void 0;\nconst nodes_1 = require(\"./nodes\");\nconst utilities_1 = require(\"./utilities\");\nconst translator_1 = require(\"./translator\");\nconst config_1 = require(\"./config\");\n// endregion\n/* ****************************************************************************************************************** */\n// region: Visitor\n/* ****************************************************************************************************************** */\n/**\n * Properties & methods marked public are designated as such due to the fact that we may add middleware / transformer\n * support in the future\n */\nclass Visitor {\n constructor(instance, rootNode, fileName) {\n this.instance = instance;\n this.rootNode = rootNode;\n this.fileName = fileName;\n this.nodeMetadata = new Map();\n this.urlDefinitions = [];\n this.result = {\n text: '',\n trailingNewlineStats: {\n whitespace: 0,\n newLines: 0\n }\n };\n this.options = instance.options;\n this.optimizeTree(rootNode);\n this.visitNode(rootNode);\n }\n /* ********************************************************* */\n // region: Methods\n /* ********************************************************* */\n addOrGetUrlDefinition(url) {\n let id = this.urlDefinitions.findIndex(u => u === url);\n if (id < 0)\n id = this.urlDefinitions.push(url) - 1;\n return id + 1;\n }\n appendResult(s, startPos, spaceIfRepeatingChar) {\n if (!s && startPos === undefined)\n return;\n const { result } = this;\n if (startPos !== undefined)\n result.text = result.text.substr(0, startPos);\n result.text += (spaceIfRepeatingChar && result.text.slice(-1) === s[0] ? ' ' : '') + s;\n result.trailingNewlineStats = (0, utilities_1.getTrailingWhitespaceInfo)(result.text);\n }\n appendNewlines(count) {\n const { newLines } = this.result.trailingNewlineStats;\n this.appendResult('\\n'.repeat(Math.max(0, (+count - newLines))));\n }\n // endregion\n /* ********************************************************* */\n // region: Internal Methods\n /* ********************************************************* */\n /**\n * Optimize tree, flagging nodes that have usable content\n */\n optimizeTree(node) {\n (0, utilities_1.perfStart)('Optimize tree');\n const { translators } = this.instance;\n (function visit(node) {\n let res = false;\n if ((0, nodes_1.isTextNode)(node) || ((0, nodes_1.isElementNode)(node) && config_1.contentlessElements.includes(node.tagName))) {\n res = true;\n }\n else {\n const childNodes = (0, utilities_1.getChildNodes)(node);\n if (!childNodes.length) {\n const translator = translators[node.tagName];\n if ((translator === null || translator === void 0 ? void 0 : translator.preserveIfEmpty) || typeof translator === 'function')\n res = true;\n }\n else\n for (const child of childNodes) {\n if (!res)\n res = visit(child);\n else\n visit(child);\n }\n }\n return node.preserve = res;\n })(node);\n (0, utilities_1.perfStop)('Optimize tree');\n }\n /**\n * Apply escaping and custom replacement rules\n */\n processText(text, metadata) {\n let res = text;\n if (!(metadata === null || metadata === void 0 ? void 0 : metadata.preserveWhitespace))\n res = res.replace(/\\s+/g, ' ');\n if (metadata === null || metadata === void 0 ? void 0 : metadata.noEscape)\n return res;\n const { lineStartEscape, globalEscape, textReplace } = this.options;\n res = res\n .replace(globalEscape[0], globalEscape[1])\n .replace(lineStartEscape[0], lineStartEscape[1]);\n /* If specified, apply custom replacement patterns */\n if (textReplace)\n for (const [pattern, r] of textReplace)\n res = res.replace(pattern, r);\n return res;\n }\n visitNode(node, textOnly, metadata) {\n var _a, _b, _c, _d;\n var _e, _f;\n const { result } = this;\n if (!node.preserve)\n return;\n /* Handle text node */\n if ((0, nodes_1.isTextNode)(node)) {\n if (node.wholeText) {\n (_a = (_e = node).text) !== null && _a !== void 0 ? _a : (_e.text = node.wholeText);\n (_b = (_f = node).trimmedText) !== null && _b !== void 0 ? _b : (_f.trimmedText = (0, utilities_1.trimNewLines)(node.wholeText));\n }\n return node.isWhitespace && !(metadata === null || metadata === void 0 ? void 0 : metadata.preserveWhitespace)\n ? (!result.text.length || result.trailingNewlineStats.whitespace > 0) ? void 0 : this.appendResult(' ')\n : this.appendResult(this.processText((metadata === null || metadata === void 0 ? void 0 : metadata.preserveWhitespace) ? node.text : node.trimmedText, metadata));\n }\n if (textOnly || !(0, nodes_1.isElementNode)(node))\n return;\n /* Handle element node */\n const translatorCfgOrFactory = (metadata === null || metadata === void 0 ? void 0 : metadata.translators) ? metadata.translators[node.tagName] : this.instance.translators[node.tagName];\n /* Update metadata with list detail */\n switch (node.tagName) {\n case 'UL':\n case 'OL':\n metadata = Object.assign(Object.assign({}, metadata), { listItemNumber: 0, listKind: node.tagName, indentLevel: ((_c = metadata === null || metadata === void 0 ? void 0 : metadata.indentLevel) !== null && _c !== void 0 ? _c : -1) + 1 });\n break;\n case 'LI':\n if ((metadata === null || metadata === void 0 ? void 0 : metadata.listKind) === 'OL')\n metadata.listItemNumber = ((_d = metadata.listItemNumber) !== null && _d !== void 0 ? _d : 0) + 1;\n break;\n case 'PRE':\n metadata = Object.assign(Object.assign({}, metadata), { preserveWhitespace: true });\n break;\n case 'TABLE':\n metadata = Object.assign(Object.assign({}, metadata), { tableMeta: {\n node: node\n } });\n }\n if (metadata)\n this.nodeMetadata.set(node, metadata);\n // If no translator for element, visit children\n if (!translatorCfgOrFactory) {\n for (const child of (0, utilities_1.getChildNodes)(node))\n this.visitNode(child, textOnly, metadata);\n return;\n }\n /* Get Translator Config */\n let cfg;\n let ctx;\n if (!(0, translator_1.isTranslatorConfig)(translatorCfgOrFactory)) {\n ctx = (0, translator_1.createTranslatorContext)(this, node, metadata, translatorCfgOrFactory.base);\n cfg = Object.assign(Object.assign({}, translatorCfgOrFactory.base), translatorCfgOrFactory(ctx));\n }\n else\n cfg = translatorCfgOrFactory;\n // Skip and don't check children if ignore flag set\n if (cfg.ignore)\n return;\n /* Update metadata if needed */\n if (cfg.noEscape && !(metadata === null || metadata === void 0 ? void 0 : metadata.noEscape)) {\n metadata = Object.assign(Object.assign({}, metadata), { noEscape: cfg.noEscape });\n this.nodeMetadata.set(node, metadata);\n }\n if (cfg.childTranslators && (cfg.childTranslators !== (metadata === null || metadata === void 0 ? void 0 : metadata.translators))) {\n metadata = Object.assign(Object.assign({}, metadata), { translators: cfg.childTranslators });\n this.nodeMetadata.set(node, metadata);\n }\n const startPosOuter = result.text.length;\n /* Write opening */\n if (cfg.surroundingNewlines)\n this.appendNewlines(+cfg.surroundingNewlines);\n if (cfg.prefix)\n this.appendResult(cfg.prefix);\n /* Write inner content */\n if (typeof cfg.content === 'string')\n this.appendResult(cfg.content, void 0, cfg.spaceIfRepeatingChar);\n else {\n const startPos = result.text.length;\n // Process child nodes\n for (const child of (0, utilities_1.getChildNodes)(node))\n this.visitNode(child, (cfg.recurse === false), metadata);\n /* Apply translator post-processing */\n if (cfg.postprocess) {\n const postRes = cfg.postprocess(Object.assign(Object.assign({}, (ctx || (0, translator_1.createTranslatorContext)(this, node, metadata))), { content: result.text.substr(startPos) }));\n // If remove flag sent, remove / omit everything for this node (prefix, newlines, content, postfix)\n if (postRes === translator_1.PostProcessResult.RemoveNode) {\n if (node.tagName === 'LI' && (metadata === null || metadata === void 0 ? void 0 : metadata.listItemNumber))\n --metadata.listItemNumber;\n return this.appendResult('', startPosOuter);\n }\n if (typeof postRes === 'string')\n this.appendResult(postRes, startPos, cfg.spaceIfRepeatingChar);\n }\n }\n /* Write closing */\n if (cfg.postfix)\n this.appendResult(cfg.postfix);\n if (cfg.surroundingNewlines)\n this.appendNewlines(+cfg.surroundingNewlines);\n }\n}\nexports.Visitor = Visitor;\n// endregion\n/* ****************************************************************************************************************** */\n// region: Utilities\n/* ****************************************************************************************************************** */\nfunction getMarkdownForHtmlNodes(instance, rootNode, fileName) {\n (0, utilities_1.perfStart)('walk');\n const visitor = new Visitor(instance, rootNode, fileName);\n let result = visitor.result.text;\n (0, utilities_1.perfStop)('walk');\n /* Post-processing */\n // Add link references, if set\n if (instance.options.useLinkReferenceDefinitions) {\n if (/[^\\r\\n]/.test(result.slice(-1)))\n result += '\\n';\n visitor.urlDefinitions.forEach((url, idx) => {\n result += `\\n[${idx + 1}]: ${url}`;\n });\n }\n // Fixup repeating newlines\n const { maxConsecutiveNewlines } = instance.options;\n if (maxConsecutiveNewlines)\n result = result.replace(new RegExp(String.raw `(?:\\r?\\n\\s*)+((?:\\r?\\n\\s*){${maxConsecutiveNewlines}})`, 'g'), '$1');\n return (0, utilities_1.trimNewLines)(result);\n}\nexports.getMarkdownForHtmlNodes = getMarkdownForHtmlNodes;\n// endregion\n//# sourceMappingURL=visitor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHtmlMarkdown = void 0;\nconst translator_1 = require(\"./translator\");\nconst config_1 = require(\"./config\");\nconst utilities_1 = require(\"./utilities\");\nconst visitor_1 = require(\"./visitor\");\n// endregion\n/* ****************************************************************************************************************** */\n// region: NodeHtmlMarkdown (class)\n/* ****************************************************************************************************************** */\nclass NodeHtmlMarkdown {\n constructor(options, customTranslators, customCodeBlockTranslators) {\n var _a, _b, _c, _d;\n this.translators = new translator_1.TranslatorCollection();\n this.aTagTranslators = new translator_1.TranslatorCollection();\n this.codeBlockTranslators = new translator_1.TranslatorCollection();\n this.tableTranslators = new translator_1.TranslatorCollection();\n this.tableRowTranslators = new translator_1.TranslatorCollection();\n this.tableCellTranslators = new translator_1.TranslatorCollection();\n /* Setup Options */\n this.options = Object.assign(Object.assign({}, config_1.defaultOptions), options);\n const ignoredElements = (_b = (_a = this.options.ignore) === null || _a === void 0 ? void 0 : _a.concat(config_1.defaultIgnoreElements)) !== null && _b !== void 0 ? _b : config_1.defaultIgnoreElements;\n const blockElements = (_d = (_c = this.options.blockElements) === null || _c === void 0 ? void 0 : _c.concat(config_1.defaultBlockElements)) !== null && _d !== void 0 ? _d : config_1.defaultBlockElements;\n /* Setup Translator Bases */\n ignoredElements === null || ignoredElements === void 0 ? void 0 : ignoredElements.forEach(el => {\n this.translators.set(el, { ignore: true, recurse: false });\n this.codeBlockTranslators.set(el, { ignore: true, recurse: false });\n });\n blockElements === null || blockElements === void 0 ? void 0 : blockElements.forEach(el => {\n this.translators.set(el, { surroundingNewlines: 2 });\n this.codeBlockTranslators.set(el, { surroundingNewlines: 2 });\n });\n /* Add and merge bases with default and custom translator configs */\n for (const [elems, cfg] of Object.entries(Object.assign(Object.assign({}, config_1.defaultTranslators), customTranslators)))\n this.translators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(Object.assign(Object.assign({}, config_1.defaultCodeBlockTranslators), customCodeBlockTranslators)))\n this.codeBlockTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.aTagTranslatorConfig))\n this.aTagTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.tableTranslatorConfig))\n this.tableTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.tableRowTranslatorConfig))\n this.tableRowTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.tableCellTranslatorConfig))\n this.tableCellTranslators.set(elems, cfg, true);\n // TODO - Workaround for upstream issue (may not be fixed) - https://github.com/taoqf/node-html-parser/issues/78\n if (!this.options.textReplace)\n this.options.textReplace = [];\n this.options.textReplace.push([/^<!DOCTYPE.*>/gmi, '']);\n }\n static translate(htmlOrFiles, opt, customTranslators, customCodeBlockTranslators) {\n return NodeHtmlMarkdown.prototype.translateWorker.call(new NodeHtmlMarkdown(opt, customTranslators, customCodeBlockTranslators), htmlOrFiles);\n }\n translate(htmlOrFiles) {\n return this.translateWorker(htmlOrFiles);\n }\n // endregion\n /* ********************************************************* */\n // region: Internal Methods\n /* ********************************************************* */\n translateWorker(htmlOrFiles) {\n const inputIsCollection = typeof htmlOrFiles !== 'string';\n const inputFiles = !inputIsCollection ? { 'default': htmlOrFiles } : htmlOrFiles;\n const outputFiles = {};\n for (const [fileName, html] of Object.entries(inputFiles)) {\n const parsedHtml = (0, utilities_1.parseHTML)(html, this.options);\n outputFiles[fileName] = (0, visitor_1.getMarkdownForHtmlNodes)(this, parsedHtml, fileName !== 'default' ? fileName : void 0);\n }\n return inputIsCollection ? outputFiles : outputFiles['default'];\n }\n}\nexports.NodeHtmlMarkdown = NodeHtmlMarkdown;\n// endregion\n//# sourceMappingURL=main.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PostProcessResult = exports.TranslatorCollection = exports.NodeHtmlMarkdown = void 0;\nvar main_1 = require(\"./main\");\nObject.defineProperty(exports, \"NodeHtmlMarkdown\", { enumerable: true, get: function () { return main_1.NodeHtmlMarkdown; } });\nvar translator_1 = require(\"./translator\");\nObject.defineProperty(exports, \"TranslatorCollection\", { enumerable: true, get: function () { return translator_1.TranslatorCollection; } });\nObject.defineProperty(exports, \"PostProcessResult\", { enumerable: true, get: function () { return translator_1.PostProcessResult; } });\n//# sourceMappingURL=index.js.map","import { promiseFactoryToObservable } from '@sourcegraph/observable'\nimport { NodeHtmlMarkdown } from 'node-html-markdown'\nimport type { ReadWebPageToolDef } from './common'\n\nexport const nodeReadWebPageTool = ({ args }: { args: ReadWebPageToolDef['args'] }) => {\n\treturn promiseFactoryToObservable(async (signal) => {\n\t\ttry {\n\t\t\t// Using built-in fetch API\n\t\t\tconst response = await fetch(args.url, { signal })\n\t\t\tconst htmlText = await response.text()\n\t\t\tconst contentType = response.headers.get('content-type') || ''\n\t\t\tconst isHtml =\n\t\t\t\thtmlText.toLowerCase().includes('<html') || contentType.includes('text/html')\n\n\t\t\t// Process based on content type and raw flag\n\t\t\tlet content: string\n\t\t\tlet prefix = ''\n\n\t\t\t// If it's HTML and not requested as raw, convert to markdown\n\t\t\tif (isHtml && !args.raw) {\n\t\t\t\t// Use NodeHtmlMarkdown to convert HTML to markdown\n\t\t\t\tconst nhm = new NodeHtmlMarkdown({\n\t\t\t\t\tcodeFence: '```',\n\t\t\t\t\tcodeBlockStyle: 'fenced',\n\t\t\t\t})\n\t\t\t\tcontent = nhm.translate(htmlText)\n\t\t\t} else {\n\t\t\t\t// Return raw content with appropriate prefix\n\t\t\t\tcontent = htmlText\n\t\t\t\tprefix = isHtml\n\t\t\t\t\t? `Raw HTML content as requested:\\n`\n\t\t\t\t\t: `Content type ${contentType} cannot be simplified to markdown, returning as-is:\\n`\n\t\t\t}\n\n\t\t\t// Handle pagination with start_index and max_length\n\t\t\tconst startIndex = args.start_index || 0\n\t\t\tconst maxLength = args.max_length || 5000\n\t\t\tconst originalLength = content.length\n\n\t\t\t// No content available if start index is beyond content length\n\t\t\tif (startIndex >= originalLength) {\n\t\t\t\tcontent = '<e>No more content available.</e>'\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'done' as const,\n\t\t\t\t\tresult: `${prefix}Contents of ${args.url}:\\n${content}`,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst truncatedContent = content.substring(startIndex, startIndex + maxLength)\n\t\t\tif (!truncatedContent) {\n\t\t\t\tcontent = '<e>No more content available.</e>'\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'done' as const,\n\t\t\t\t\tresult: `${prefix}Contents of ${args.url}:\\n${content}`,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcontent = truncatedContent\n\t\t\tconst actualContentLength = truncatedContent.length\n\t\t\tconst remainingContent = originalLength - (startIndex + actualContentLength)\n\n\t\t\t// Add prompt to continue fetching if there's more content\n\t\t\tif (actualContentLength === maxLength && remainingContent > 0) {\n\t\t\t\tconst nextStart = startIndex + actualContentLength\n\t\t\t\tcontent += `\\n\\n<e>Content truncated. Call the read_web_page tool with a start_index of ${nextStart} and max_length ${maxLength * 2} to get more content.</e>`\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: 'done' as const,\n\t\t\t\tresult: `${prefix}Contents of ${args.url}:\\n${content}`,\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthrow new Error(`Failed to fetch URL: ${(error as Error).message}`)\n\t\t}\n\t})\n}\n"],"names":["exports","PostProcessResult","TranslatorCollection","keys","config","preserveBase","el","res","base","args","key","isTranslatorConfig","v","createTranslatorContext","visitor","node","metadata","instance","nodeMetadata","root","freeExports","freeModule","module","freeGlobal","global","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","stringFromCharCode","object","hasOwnProperty","has","propertyName","contains","array","value","index","length","merge","options","defaults","result","codePointToSymbol","codePoint","strict","output","parseError","hexEscape","decEscape","message","encode","string","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","escapeBmpSymbol","symbol","$0","high","low","decode","html","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","next","escape","he","this","he_1","require$$0","Node","parentNode","range","_this","children","child","val","type","NodeType","__extends","extendStatics","d","b","p","__","__importDefault","mod","comment","node_1","type_1","CommentNode","_super","rawText","rawTagName","ElementType","isTag","elem","__assign","t","s","i","n","domelementtype_1","parent","prev","recursive","cloneNode","DataNode","data","Text","Comment","ProcessingInstruction","name","NodeWithChildren","_a","CDATA","Document","Element","attribs","_b","isCDATA","isText","isComment","isDirective","isDocument","hasChildren","cloneChildren","clone_1","clone_2","clone_3","instruction","childs","__createBinding","o","m","k","k2","desc","__exportStar","node_js_1","require$$1","defaultOpts","DomHandler","callback","elementCB","parser","error","element","lastNode","text","previousSibling","decodeDataHtml","c","decodeDataXml","replaceCodePoint","decodeCodePoint","__setModuleDefault","__importStar","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","decode_codepoint_js_2","require$$2","CharCodes","TO_LOWER_BIT","BinTrieFlags","isNumber","code","isHexadecimalCharacter","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","errors","decodeMode","str","offset","start","end","digitCount","startIdx","char","lastCp","expectedLength","current","valueLength","determineBranch","consumed","getDecoder","ret","decoder","lastIndex","len","nodeIdx","branchCount","jumpOffset","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","decodeHTML","mode","decodeHTMLAttribute","decodeHTMLStrict","decodeXML","encodeHtml","restoreDiff","arr","xmlCodeMap","encodeXML","lastIdx","match","getEscaper","regex","map","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTML","encodeHTMLTrieRe","encodeNonAsciiHTML","regExp","nextChar","cp","decode_js_1","encode_js_1","EntityLevel","EncodingMode","level","decodeStrict","opts","escape_js_2","encode_js_2","decode_js_2","foreignNames","lib","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","formatAttributes","attributes","singleTag","render","nodes","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","tag","stringify","getOuterHTML","getInnerHTML","getText","textContent","innerText","domhandler_1","dom_serializer_1","traversal","getChildren","getParent","getSiblings","getAttributeValue","hasAttrib","getName","nextElementSibling","prevElementSibling","siblings","manipulation","removeElement","replaceElement","appendChild","append","prependChild","prepend","childsIndex","replacement","sibling","currNext","querying","filter","find","findOneChild","findOne","existsOne","findAll","test","recurse","limit","nodeStack","indexStack","searchedNodes","found","legacy","testElement","getElements","getElementById","getElementsByTagName","getElementsByClassName","getElementsByTagType","querying_js_1","Checks","getAttribCheck","attrib","combineFuncs","a","compileTest","funcs","id","tagName","className","helpers","removeSubsets","compareDocumentPosition","uniqueSort","idx","ancestor","DocumentPosition","nodeA","nodeB","aParents","bParents","maxIdx","sharedParent","aSibling","bSibling","relative","feeds","getFeed","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","feed","item","entry","getMediaElements","addConditionally","href","description","fetch","pubDate","updated","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","media","_i","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","obj","prop","require$$3","require$$4","require$$5","require$$6","require$$7","boolbase","SelectorType","IgnoreCaseMode","AttributeAction","reName","reEscape","actionTypes","unpackPseudos","isTraversal","selector","stripQuotesFromPseudos","funescape","_","escaped","escapedWhitespace","unescapeCSS","isQuote","isWhitespace","parse","subselects","endIndex","parseSelector","selectorIndex","tokens","stripWhitespace","readValueWithParenthesis","counter","isEscaped","pos","slashCount","ensureNotTraversal","addTraversal","addSpecialAttribute","action","finalizeSubselector","loop","firstChar","namespace","possibleAction","ignoreCase","quote","sectionEnd","valueStart","forceIgnore","attributeSelector","quot","attribValChars","pseudoValChars","charsToEscapeInAttributeValue","charsToEscapeInPseudoValue","charsToEscapeInName","token","stringifyToken","getNamespace","getNamespacedName","escapeName","getActionValue","charsToEscape","sort","css_what_1","procedure","sortByProcedure","procs","getProcedure","procNew","j","proc","boolbase_1","reChars","escapeRegex","caseInsensitiveAttributes","shouldIgnoreCase","adapter","attr","regex_1","parse_1","whitespace","ZERO","NINE","formula","sign","readSign","number","readNumber","skipWhitespace","compile_1","compile","parsed","absA","bMod","generate","aPos_1","minValue_1","parse_js_1","compile_js_1","nthCheck","sequence","nth_check_1","getChildFunc","itext","rule","equals","func","currentSibling","_rule","context","dynamicStatePseudo","pseudos","firstChild","elemName","verifyPseudoArgs","subselect","argIndex","aliases","__spreadArray","to","from","pack","l","ar","sort_js_1","ensureIsTag","getNextSiblings","elemIndex","copyOptions","is","compileToken","_context","compiled","hasElement","shouldTestNextSiblings_1","nextElements","filters_js_1","pseudos_js_1","aliases_js_1","subselects_js_1","compilePseudoSelector","userPseudo","stringPseudo","alias","pseudo_1","general","attributes_js_1","index_js_1","getElementParent","compileGeneralSelector","name_1","isFalseCache_1","previous","lastElement","general_js_1","compileUnsafe","includesScopePseudo","DESCENDANT_TOKEN","FLEXIBLE_DESCENDANT_TOKEN","SCOPE_TOKEN","absolutize","hasContext","e","token_1","isArrayContext","finalContext","shouldTestNextSiblings","query","rules","first","second","compileRules","reduceRules","DomUtils","defaultEquals","defaultOptions","convertOptionFormats","_c","_d","wrapCompile","getSelectorFunc","searchFunc","elements","filteredElements","prepareContext","elems","appendNextSiblings","elemsLength","nextSiblings","back","arr_back","matcher","replace","voidTag","VoidTag","addClosingSlash","tags","set","attrs","innerHTML","closingSpace","closingSlash","TextNode","trimText","startPos","endPos","hasLeadingSpace","hasTrailingSpace","css_select_1","back_1","matcher_1","void_tag_1","comment_1","text_1","Htags","Dtags","Ftags","tableTags","htmlTags","kBlockElements","addToKBlockElement","addToSet","args_1","arg","DOMTokenList","valuesInit","afterUpdate","c1","c2","HTMLElement","keyAttrs","rawAttrs","_parseOptions","classList","cls","oldNode","newNode","newname","pre","cur","content","currentBlock","blocks","dfs","block","r","resetParent","pattern","childNode","indention","write","idStr","classStr","upperCasedTagName","re","stack","currentNodeReference","mapChild","old","el_1","ret_attrs","kMarkupPattern","kAttributePattern","kElementsClosedByOpening","kElementsClosedByClosing","frameflag","base_parse","element_names","kBlockTextElements","it","kIgnoreElements","element_should_be_ignore","is_block_text_element","createRange","frameFlagOffset","currentParent","lastTextPos","noNestedTagIndex","lowerCaseTagName","fixNestedATags","dataEndPos","matchText","leadingSlash","matchLength","tagStartPos","tagEndPos","attMatch","isQuoted","parentTagName","tagEndPos_1","tagStartPos_1","closeMarkup","closeIndex","textEndPos","_loop_1","last","oneBefore","html_1","valid_1","valid","dist","utilities","config_1","trimNewLines","surround","source","surroundStr","isWhiteSpaceOnly","splitSpecial","lines","strLen","newLineChar","tagSurround","leadingSpace","trailingSpace","slicedText","getTrailingWhitespaceInfo","minI","truthyStr","tryParseWithNativeDom","ActiveXObject","getNodeHtmlParser","parseHTML","nodeHtmlParse","perfStart","perfStop","getChildNodes","isNodeList","label","utilities_1","translator_1","strongDelimiter","strikeDelimiter","emDelimiter","listKind","bulletMarker","indentLevel","listItemNumber","indentationLevel","codeFence","codeBlockStyle","delimiter","padding","language","rawRows","rows","colWidth","row","cols","maxCols","caption","rowNumber","w","encodedHref","chr","title","src","alt","node_html_parser_1","isTextNode","isCommentNode","isElementNode","nodes_1","Visitor","rootNode","fileName","url","u","spaceIfRepeatingChar","count","newLines","translators","visit","childNodes","translator","lineStartEscape","globalEscape","textReplace","textOnly","_e","_f","translatorCfgOrFactory","cfg","ctx","startPosOuter","postRes","getMarkdownForHtmlNodes","maxConsecutiveNewlines","main","visitor_1","NodeHtmlMarkdown","customTranslators","customCodeBlockTranslators","ignoredElements","blockElements","htmlOrFiles","opt","inputIsCollection","inputFiles","outputFiles","parsedHtml","main_1","nodeReadWebPageTool","promiseFactoryToObservable","signal","response","htmlText","contentType","isHtml","prefix","startIndex","maxLength","originalLength","truncatedContent","actualContentLength","remainingContent","nextStart"],"mappings":"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QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,SAAQ,GAAS,SAAQ,KAAS,SAAQ,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,UAAS,GAAS,UAAS,MAAe,OAAM,MAAe,QAAO,GAAS,OAAM,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,UAAS,GAAS,UAAS,KAAS,UAAS,GAAS,OAAM,GAAS,OAAM,MAAe,QAAO,MAAe,OAAM,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,QAAO,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,SAAQ,GAAO,SAAQ,GAAO,QAAO,GAAO,QAAO,GAAS,UAAS,GAAS,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,QAAO,GAAS,UAAS,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,GAAS,MAAK,GAAS,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,KAAS,MAAK,GAAS,UAAS,GAAS,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,KAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,SAAQ,GAAO,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAO,QAAO,GAAO,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,UAAS,GAAO,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAO,QAAO,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,OAAM,GAAS,QAAO,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAO,SAAQ,GAAO,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,KAAS,SAAQ,GAAS,WAAU,GAAS,UAAS,GAAS,UAAS,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,UAAS,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,UAAS,GAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,GAAS,MAAK,GAAO,SAAQ,GAAS,MAAK,GAAS,MAAK,GAAS,MAAK,GAAS,MAAK,GAAS,MAAK,GAAS,WAAU,GAAS,WAAU,GAAS,MAAK,GAAS,OAAM,GAAS,MAAK,GAAS,OAAM,GAAS,QAAO,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,WAAU,GAAS,QAAO,GAAS,OAAM,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,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,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC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CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,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AAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAG,CAAA,GAAG,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;;;;;ACT/q0B,WAAO,eAAczO,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,aAAqBA,oBAA0BA,EAAqB,aAAAA,EAAA,SAAiBA,cAAoBA,EAAuB,eAAAA,EAAA,cAAsB,QACtJA,EAAA,cAAsB;AACtB,QAAI2O,IAAa,oBAAI,IAAI;AAAA,MACrB,CAAC,IAAI,QAAQ;AAAA,MACb,CAAC,IAAI,OAAO;AAAA,MACZ,CAAC,IAAI,QAAQ;AAAA,MACb,CAAC,IAAI,MAAM;AAAA,MACX,CAAC,IAAI,MAAM;AAAA,IACf,CAAC;AAED,IAAA3O,EAAA;AAAA,IAEA,OAAO,UAAU,eAAe,OAC1B,SAAUwM,GAAKzJ,GAAO;AAAE,aAAOyJ,EAAI,YAAYzJ,CAAK;AAAA,IAAE;AAAA;AAAA,MAEpD,SAAU+H,GAAG/H,GAAO;AAChB,gBAAQ+H,EAAE,WAAW/H,CAAK,IAAI,WAAY,SACnC+H,EAAE,WAAW/H,CAAK,IAAI,SAAU,OAC/B+H,EAAE,WAAW/H,IAAQ,CAAC,IACtB,QACA,QACF+H,EAAE,WAAW/H,CAAK;AAAA,MAC3B;AAAA;AAQT,aAAS6L,EAAUpC,GAAK;AAIpB,eAHIc,IAAM,IACNuB,IAAU,GACVC,IACIA,IAAQ9O,EAAQ,YAAY,KAAKwM,CAAG,OAAO,QAAM;AACrD,YAAI9E,IAAIoH,EAAM,OACVhC,IAAON,EAAI,WAAW9E,CAAC,GACvBpC,IAAOqJ,EAAW,IAAI7B,CAAI;AAC9B,QAAIxH,MAAS,UACTgI,KAAOd,EAAI,UAAUqC,GAASnH,CAAC,IAAIpC,GACnCuJ,IAAUnH,IAAI,MAGd4F,KAAO,GAAG,OAAOd,EAAI,UAAUqC,GAASnH,CAAC,GAAG,KAAK,EAAE,WAAW1H,EAAQ,cAAcwM,GAAK9E,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,GAE7GmH,IAAU7O,EAAQ,YAAY,aAAa,GAAQ8M,IAAO,WAAY;AAAA,MAElF;AACI,aAAOQ,IAAMd,EAAI,OAAOqC,CAAO;AAAA,IACnC;AACA,IAAA7O,EAAA,YAAoB4O,GAUpB5O,EAAA,SAAiB4O;AAWjB,aAASG,EAAWC,GAAOC,GAAK;AAC5B,aAAO,SAAgB/G,GAAM;AAIzB,iBAHI4G,GACAD,IAAU,GACVzL,IAAS,IACL0L,IAAQE,EAAM,KAAK9G,CAAI;AAC3B,UAAI2G,MAAYC,EAAM,UAClB1L,KAAU8E,EAAK,UAAU2G,GAASC,EAAM,KAAK,IAGjD1L,KAAU6L,EAAI,IAAIH,EAAM,CAAC,EAAE,WAAW,CAAC,CAAC,GAExCD,IAAUC,EAAM,QAAQ;AAE5B,eAAO1L,IAAS8E,EAAK,UAAU2G,CAAO;AAAA,MACzC;AAAA,IACL;AAQA,IAAA7O,EAAA,aAAqB+O,EAAW,YAAYJ,CAAU,GAOtD3O,EAAA,kBAA0B+O,EAAW,eAAe,oBAAI,IAAI;AAAA,MACxD,CAAC,IAAI,QAAQ;AAAA,MACb,CAAC,IAAI,OAAO;AAAA,MACZ,CAAC,KAAK,QAAQ;AAAA,IAClB,CAAC,CAAC,GAOF/O,EAAA,aAAqB+O,EAAW,gBAAgB,oBAAI,IAAI;AAAA,MACpD,CAAC,IAAI,OAAO;AAAA,MACZ,CAAC,IAAI,MAAM;AAAA,MACX,CAAC,IAAI,MAAM;AAAA,MACX,CAAC,KAAK,QAAQ;AAAA,IAClB,CAAC,CAAC;AAAA;;;;;;ACvHF,MAAIpI,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAe/C,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,qBAA6BA,GAAA,aAAqB;AAClD,MAAIqL,IAAmBvI,sBAAqD,GACxEwI,IAAoCjF,gBAAAA,GAAA,GACpCkF,IAAe;AAYnB,WAASC,EAAWnH,GAAM;AACtB,WAAOoH,EAAiBF,GAAclH,CAAI;AAAA,EAC9C;AACA,EAAArE,GAAA,aAAqBwL;AASrB,WAASE,EAAmBrH,GAAM;AAC9B,WAAOoH,EAAiBH,EAAY,aAAajH,CAAI;AAAA,EACzD;AACA,EAAArE,GAAA,qBAA6B0L;AAC7B,WAASD,EAAiBE,GAAQhD,GAAK;AAInC,aAHIc,IAAM,IACNuB,IAAU,GACVC,IACIA,IAAQU,EAAO,KAAKhD,CAAG,OAAO,QAAM;AACxC,UAAI9E,IAAIoH,EAAM;AACd,MAAAxB,KAAOd,EAAI,UAAUqC,GAASnH,CAAC;AAC/B,UAAIoF,IAAON,EAAI,WAAW9E,CAAC,GACvBpC,IAAO4J,EAAiB,QAAQ,IAAIpC,CAAI;AAC5C,UAAI,OAAOxH,KAAS,UAAU;AAE1B,YAAIoC,IAAI,IAAI8E,EAAI,QAAQ;AACpB,cAAIiD,IAAWjD,EAAI,WAAW9E,IAAI,CAAC,GAC/B5E,IAAQ,OAAOwC,EAAK,KAAM,WACxBA,EAAK,MAAMmK,IACPnK,EAAK,IACL,SACJA,EAAK,EAAE,IAAImK,CAAQ;AACzB,cAAI3M,MAAU,QAAW;AACrB,YAAAwK,KAAOxK,GACP+L,IAAUW,EAAO,aAAa;AAC9B;AAAA,UACpB;AAAA,QACA;AACY,QAAAlK,IAAOA,EAAK;AAAA,MACxB;AAEQ,UAAIA,MAAS;AACT,QAAAgI,KAAOhI,GACPuJ,IAAUnH,IAAI;AAAA,WAEb;AACD,YAAIgI,QAASP,EAAY,cAAc3C,GAAK9E,CAAC;AAC7C,QAAA4F,KAAO,MAAM,OAAOoC,EAAG,SAAS,EAAE,GAAG,GAAG,GAExCb,IAAUW,EAAO,aAAa,EAAOE,MAAO5C;AAAA,MACxD;AAAA,IACA;AACI,WAAOQ,IAAMd,EAAI,OAAOqC,CAAO;AAAA,EACnC;;;;;;AC1EA,WAAO,eAAc7O,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAA0B,kBAAAA,EAAA,oBAA4BA,EAA4B,oBAAAA,EAAA,cAAsBA,EAAsB,cAAAA,EAAA,sBAA8BA,qBAA2BA,EAAqB,aAAAA,EAAA,YAAoBA,EAAuB,eAAAA,EAAA,gBAAwBA,EAAsB,cAAAA,EAAA,cAAsBA,uBAA6BA,EAAqB,aAAAA,EAAA,aAAqBA,EAA0B,kBAAAA,EAAA,aAAqBA,EAAiB,SAAAA,EAAA,YAAoBA,EAAiB,SAAAA,EAAA,eAAuBA,EAAiB,SAAAA,EAAA,eAAuBA,EAAsB,cAAA;AAC5jB,QAAI2P,IAAoChK,gBAAAA,GAAA,GACpCiK,IAAoC1F,gBAAAA,GAAA,GACpCiF,IAAoC3D,gBAAAA,GAAA,GAEpCqE;AACJ,KAAC,SAAUA,GAAa;AAEpB,MAAAA,EAAYA,EAAY,MAAS,CAAC,IAAI,OAEtCA,EAAYA,EAAY,OAAU,CAAC,IAAI;AAAA,OACxCA,IAAc7P,EAAQ,gBAAgBA,EAAA,cAAsB,CAAA,EAAG;AAClE,QAAI8P;AACJ,KAAC,SAAUA,GAAc;AAKrB,MAAAA,EAAaA,EAAa,OAAU,CAAC,IAAI,QAMzCA,EAAaA,EAAa,QAAW,CAAC,IAAI,SAK1CA,EAAaA,EAAa,YAAe,CAAC,IAAI,aAK9CA,EAAaA,EAAa,YAAe,CAAC,IAAI,aAK9CA,EAAaA,EAAa,OAAU,CAAC,IAAI;AAAA,OAC1CA,IAAe9P,EAAQ,iBAAiBA,EAAA,eAAuB,CAAA,EAAG;AAOrE,aAASwE,EAAO0D,GAAMhF,GAAS;AAC3B,MAAIA,MAAY,WAAUA,IAAU2M,EAAY;AAChD,UAAIE,IAAQ,OAAO7M,KAAY,WAAWA,IAAUA,EAAQ;AAC5D,UAAI6M,MAAUF,EAAY,MAAM;AAC5B,YAAIzB,IAAO,OAAOlL,KAAY,WAAWA,EAAQ,OAAO;AACxD,mBAAWyM,EAAY,YAAYzH,GAAMkG,CAAI;AAAA,MACrD;AACI,iBAAWuB,EAAY,WAAWzH,CAAI;AAAA,IAC1C;AACA,IAAAlI,EAAA,SAAiBwE;AAQjB,aAASwL,EAAa9H,GAAMhF,GAAS;AACjC,UAAIsF;AACJ,MAAItF,MAAY,WAAUA,IAAU2M,EAAY;AAChD,UAAII,IAAO,OAAO/M,KAAY,WAAW,EAAE,OAAOA,EAAO,IAAKA;AAC9D,cAACsF,IAAKyH,EAAK,UAAU,QAAQzH,MAAO,WAAeyH,EAAK,OAAON,EAAY,aAAa,SACjFnL,EAAO0D,GAAM+H,CAAI;AAAA,IAC5B;AACA,IAAAjQ,EAAA,eAAuBgQ;AAOvB,aAASnM,EAAOqE,GAAMhF,GAAS;AAC3B,MAAIA,MAAY,WAAUA,IAAU2M,EAAY;AAChD,UAAII,IAAO,OAAO/M,KAAY,WAAW,EAAE,OAAOA,EAAO,IAAKA;AAE9D,aAAI+M,EAAK,SAASH,EAAa,WAChBX,EAAY,YAAYjH,CAAI,IACvC+H,EAAK,SAASH,EAAa,gBAChBX,EAAY,iBAAiBjH,CAAI,IAC5C+H,EAAK,SAASH,EAAa,WAChBX,EAAY,YAAYjH,CAAI,IACvC+H,EAAK,UAAUJ,EAAY,OACvBI,EAAK,SAASH,EAAa,YAChBF,EAAY,oBAAoB1H,CAAI,QAExC0H,EAAY,YAAY1H,CAAI,QAGhCiH,EAAY,WAAWjH,CAAI;AAAA,IAC1C;AACA,IAAAlI,EAAA,SAAiB6D;AACjB,QAAIqM,IAAoC1E,gBAAAA,GAAA;AACxC,WAAO,eAAexL,GAAS,aAAa,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAY,EAAA,CAAE,GACpH,OAAO,eAAelQ,GAAS,UAAU,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAS,EAAA,CAAE,GAC9G,OAAO,eAAelQ,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACtH,OAAO,eAAelQ,GAAS,mBAAmB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAkB,EAAA,CAAE,GAChI,OAAO,eAAelQ,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAa,EAAA,CAAE;AACtH,QAAIC,IAAoCjG,gBAAAA,GAAA;AACxC,WAAO,eAAelK,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOmQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACtH,OAAO,eAAenQ,GAAS,sBAAsB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOmQ,EAAY;AAAA,IAAqB,EAAA,CAAE,GAEtI,OAAO,eAAenQ,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOmQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACvH,OAAO,eAAenQ,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOmQ,EAAY;AAAA,IAAa,EAAA,CAAE;AACvH,QAAIC,IAAoCzK,gBAAAA,GAAA;AACxC,WAAO,eAAe3F,GAAS,iBAAiB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAgB,EAAA,CAAE,GAC5H,OAAO,eAAepQ,GAAS,gBAAgB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAe,EAAA,CAAE,GAC1H,OAAO,eAAepQ,GAAS,aAAa,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAY,EAAA,CAAE,GACpH,OAAO,eAAepQ,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACtH,OAAO,eAAepQ,GAAS,oBAAoB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAmB,EAAA,CAAE,GAClI,OAAO,eAAepQ,GAAS,uBAAuB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAsB,EAAA,CAAE,GAExI,OAAO,eAAepQ,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACvH,OAAO,eAAepQ,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACvH,OAAO,eAAepQ,GAAS,qBAAqB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAmB,EAAA,CAAE,GACnI,OAAO,eAAepQ,GAAS,qBAAqB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAmB,EAAA,CAAE,GACnI,OAAO,eAAepQ,GAAS,mBAAmB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAY,EAAA,CAAE;AAAA;;;;wBC3H1H,OAAO,eAAeC,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,iBAAyBA,GAAA,eAAuB,QAC5BA,GAAA,eAAG,IAAI,IAAI;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,EAAE,IAAI,SAAUnK,GAAK;AAAE,WAAO,CAACA,EAAI,eAAeA,CAAG;AAAA,EAAE,CAAE,CAAC,GACpCmK,GAAA,iBAAG,IAAI,IAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,EAAE,IAAI,SAAUnK,GAAK;AAAE,WAAO,CAACA,EAAI,eAAeA,CAAG;AAAA,EAAE,CAAE,CAAC;;;;;;ACrG1D,MAAIqB,IAAY9B,MAAQA,GAAK,YAAa,WAAY;AAClD,WAAA8B,IAAW,OAAO,UAAU,SAASC,GAAG;AACpC,eAASC,GAAGC,IAAI,GAAGC,IAAI,UAAU,QAAQD,IAAIC,GAAGD,KAAK;AACjD,QAAAD,IAAI,UAAUC,CAAC;AACf,iBAASjB,KAAKgB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGhB,CAAC,MAC1De,EAAEf,CAAC,IAAIgB,EAAEhB,CAAC;AAAA,MAC1B;AACQ,aAAOe;AAAA,IACV,GACMD,EAAS,MAAM,MAAM,SAAS;AAAA,EACxC,GACGmC,IAAmBjE,MAAQA,GAAK,oBAAqB,OAAO,SAAU,SAASkE,GAAGC,GAAGC,GAAGC,GAAI;AAC5F,IAAIA,MAAO,WAAWA,IAAKD;AAC3B,QAAIE,IAAO,OAAO,yBAAyBH,GAAGC,CAAC;AAC/C,KAAI,CAACE,MAAS,SAASA,IAAO,CAACH,EAAE,aAAaG,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,aAAOH,EAAEC,CAAC;AAAA,MAAM,IAE/D,OAAO,eAAeF,GAAGG,GAAIC,CAAI;AAAA,EACpC,IAAK,SAASJ,GAAGC,GAAGC,GAAGC,GAAI;AACxB,IAAIA,MAAO,WAAWA,IAAKD,IAC3BF,EAAEG,CAAE,IAAIF,EAAEC,CAAC;AAAA,EACf,IACIqB,IAAsBzF,MAAQA,GAAK,uBAAwB,OAAO,SAAU,SAASkE,GAAG/I,GAAG;AAC3F,WAAO,eAAe+I,GAAG,WAAW,EAAE,YAAY,IAAM,OAAO/I,GAAG;AAAA,EACtE,IAAK,SAAS+I,GAAG/I,GAAG;AAChB,IAAA+I,EAAE,UAAa/I;AAAA,EACnB,IACIuK,IAAgB1F,MAAQA,GAAK,gBAAiB,SAAUmB,GAAK;AAC7D,QAAIA,KAAOA,EAAI,WAAY,QAAOA;AAClC,QAAIxD,IAAS,CAAE;AACf,QAAIwD,KAAO,KAAM,UAASiD,KAAKjD,EAAK,CAAIiD,MAAM,aAAa,OAAO,UAAU,eAAe,KAAKjD,GAAKiD,CAAC,KAAGH,EAAgBtG,GAAQwD,GAAKiD,CAAC;AACvI,WAAAqB,EAAmB9H,GAAQwD,CAAG,GACvBxD;AAAA,EACV;AACD,SAAO,eAAekN,IAAS,cAAc,EAAE,OAAO,IAAM,GAC9CA,GAAA,SAAG;AAIjB,MAAIlJ,IAAc+D,sBAAsC,GACpDoF,IAAgCrG,gBAAAA,GAAA,GAOhCsG,IAAgDhF,gBAAAA,GAAA,GAChDiF,IAAoB,oBAAI,IAAI;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,WAASC,EAAc5N,GAAO;AAC1B,WAAOA,EAAM,QAAQ,MAAM,QAAQ;AAAA,EACvC;AAIA,WAAS6N,EAAiBC,GAAYX,GAAM;AACxC,QAAIzH;AACJ,QAAKoI,GAEL;AAAA,UAAI/M,MAAW2E,IAAKyH,EAAK,oBAAoB,QAAQzH,MAAO,SAASA,IAAKyH,EAAK,oBAAoB,KAC7FS,IACAT,EAAK,WAAWA,EAAK,mBAAmB,SACpCM,EAAW,YACXA,EAAW;AACrB,aAAO,OAAO,KAAKK,CAAU,EACxB,IAAI,SAAUlQ,GAAK;AACpB,YAAI8H,GAAIK,GACJ/F,KAAS0F,IAAKoI,EAAWlQ,CAAG,OAAO,QAAQ8H,MAAO,SAASA,IAAK;AAKpE,eAJIyH,EAAK,YAAY,cAEjBvP,KAAOmI,IAAK2H,EAAkB,eAAe,IAAI9P,CAAG,OAAO,QAAQmI,MAAO,SAASA,IAAKnI,IAExF,CAACuP,EAAK,cAAc,CAACA,EAAK,WAAWnN,MAAU,KACxCpC,IAEJ,GAAG,OAAOA,GAAK,IAAK,EAAE,OAAOmD,EAAOf,CAAK,GAAG,GAAI;AAAA,MAC1D,CAAA,EACI,KAAK,GAAG;AAAA;AAAA,EACjB;AAIA,MAAI+N,IAAY,oBAAI,IAAI;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AASD,WAASC,EAAO/P,GAAMmC,GAAS;AAC3B,IAAIA,MAAY,WAAUA,IAAU,CAAA;AAGpC,aAFI6N,KAAQ,YAAYhQ,KAAOA,IAAO,CAACA,CAAI,GACvCyC,IAAS,IACJkE,IAAI,GAAGA,IAAIqJ,EAAM,QAAQrJ;AAC9B,MAAAlE,KAAUwN,EAAWD,EAAMrJ,CAAC,GAAGxE,CAAO;AAE1C,WAAOM;AAAA,EACX;AACA8M,EAAAA,GAAA,SAAiBQ,GACjBR,GAAA,UAAkBQ;AAClB,WAASE,EAAWjQ,GAAMmC,GAAS;AAC/B,YAAQnC,EAAK,MAAI;AAAA,MACb,KAAKqG,EAAY;AACb,eAAO0J,EAAO/P,EAAK,UAAUmC,CAAO;AAAA;AAAA,MAExC,KAAKkE,EAAY;AAAA,MACjB,KAAKA,EAAY;AACb,eAAO6J,EAAgBlQ,CAAI;AAAA,MAC/B,KAAKqG,EAAY;AACb,eAAO8J,EAAcnQ,CAAI;AAAA,MAC7B,KAAKqG,EAAY;AACb,eAAO+J,EAAYpQ,CAAI;AAAA,MAC3B,KAAKqG,EAAY;AAAA,MACjB,KAAKA,EAAY;AAAA,MACjB,KAAKA,EAAY;AACb,eAAOgK,EAAUrQ,GAAMmC,CAAO;AAAA,MAClC,KAAKkE,EAAY;AACb,eAAOiK,EAAWtQ,GAAMmC,CAAO;AAAA,IAC3C;AAAA,EACA;AACA,MAAIoO,IAA+B,oBAAI,IAAI;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC,GACGC,IAAkB,oBAAI,IAAI,CAAC,OAAO,MAAM,CAAC;AAC7C,WAASH,EAAU9J,GAAM2I,GAAM;AAC3B,QAAIzH;AAEJ,IAAIyH,EAAK,YAAY,cAEjB3I,EAAK,QAAQkB,IAAKgI,EAAkB,aAAa,IAAIlJ,EAAK,IAAI,OAAO,QAAQkB,MAAO,SAASA,IAAKlB,EAAK,MAEnGA,EAAK,UACLgK,EAA6B,IAAIhK,EAAK,OAAO,IAAI,MACjD2I,IAAO1I,EAASA,EAAS,CAAE,GAAE0I,CAAI,GAAG,EAAE,SAAS,IAAO,KAG1D,CAACA,EAAK,WAAWsB,EAAgB,IAAIjK,EAAK,IAAI,MAC9C2I,IAAO1I,EAASA,EAAS,CAAE,GAAE0I,CAAI,GAAG,EAAE,SAAS,WAAW;AAE9D,QAAIuB,IAAM,IAAI,OAAOlK,EAAK,IAAI,GAC1BsB,IAAU+H,EAAiBrJ,EAAK,SAAS2I,CAAI;AACjD,WAAIrH,MACA4I,KAAO,IAAI,OAAO5I,CAAO,IAEzBtB,EAAK,SAAS,WAAW,MACxB2I,EAAK;AAAA;AAAA,MAEEA,EAAK,oBAAoB;AAAA;AAAA;AAAA,MAEzBA,EAAK,mBAAmBY,EAAU,IAAIvJ,EAAK,IAAI;AAAA,UAClD2I,EAAK,YACNuB,KAAO,MACXA,KAAO,SAGPA,KAAO,KACHlK,EAAK,SAAS,SAAS,MACvBkK,KAAOV,EAAOxJ,EAAK,UAAU2I,CAAI,KAEjCA,EAAK,WAAW,CAACY,EAAU,IAAIvJ,EAAK,IAAI,OACxCkK,KAAO,KAAK,OAAOlK,EAAK,MAAM,GAAG,KAGlCkK;AAAA,EACX;AACA,WAASP,EAAgB3J,GAAM;AAC3B,WAAO,IAAI,OAAOA,EAAK,MAAM,GAAG;AAAA,EACpC;AACA,WAAS+J,EAAW/J,GAAM2I,GAAM;AAC5B,QAAIzH,GACAN,IAAOZ,EAAK,QAAQ;AAExB,aAAMkB,IAAKyH,EAAK,oBAAoB,QAAQzH,MAAO,SAASA,IAAKyH,EAAK,oBAAoB,MACtF,EAAE,CAACA,EAAK,WACJ3I,EAAK,UACLmJ,EAAkB,IAAInJ,EAAK,OAAO,IAAI,OAC1CY,IACI+H,EAAK,WAAWA,EAAK,mBAAmB,aAC9BM,EAAW,WAAWrI,CAAI,QAC1BqI,EAAW,YAAYrI,CAAI,IAEtCA;AAAA,EACX;AACA,WAASiJ,EAAY7J,GAAM;AACvB,WAAO,YAAY,OAAOA,EAAK,SAAS,CAAC,EAAE,MAAM,KAAK;AAAA,EAC1D;AACA,WAAS4J,EAAc5J,GAAM;AACzB,WAAO,OAAO,OAAOA,EAAK,MAAM,KAAK;AAAA,EACzC;;;;;;;ACnOA,MAAIX,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAe6K,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,eAAuBC,GACvBD,GAAA,eAAuBE,GACvBF,GAAA,UAAkBG,GAClBH,GAAA,cAAsBI,GACtBJ,GAAA,YAAoBK;AACpB,MAAIC,IAAoCpM,gBAAAA,GAAA,GACpCqM,IAAmBrL,sBAAyC,GAC5DiB,IAA4C4D,gBAAAA,GAAA;AAQhD,WAASkG,EAAa3Q,GAAMmC,GAAS;AACjC,eAAW8O,EAAiB,SAASjR,GAAMmC,CAAO;AAAA,EACtD;AAQA,WAASyO,EAAa5Q,GAAMmC,GAAS;AACjC,eAAW6O,EAAa,aAAahR,CAAI,IACnCA,EAAK,SAAS,IAAI,SAAUA,GAAM;AAAE,aAAO2Q,EAAa3Q,GAAMmC,CAAO;AAAA,KAAI,EAAE,KAAK,EAAE,IAClF;AAAA,EACV;AASA,WAAS0O,EAAQ7Q,GAAM;AACnB,WAAI,MAAM,QAAQA,CAAI,IACXA,EAAK,IAAI6Q,CAAO,EAAE,KAAK,EAAE,QAC5BG,EAAa,OAAOhR,CAAI,IACrBA,EAAK,SAAS,OAAO;AAAA,IAAO6Q,EAAQ7Q,EAAK,QAAQ,QACpDgR,EAAa,SAAShR,CAAI,IACvB6Q,EAAQ7Q,EAAK,QAAQ,QACxBgR,EAAa,QAAQhR,CAAI,IACtBA,EAAK,OACT;AAAA,EACX;AASA,WAAS8Q,EAAY9Q,GAAM;AACvB,WAAI,MAAM,QAAQA,CAAI,IACXA,EAAK,IAAI8Q,CAAW,EAAE,KAAK,EAAE,QAChCE,EAAa,aAAahR,CAAI,KAAK,KAAKgR,EAAa,WAAWhR,CAAI,IACjE8Q,EAAY9Q,EAAK,QAAQ,QAE5BgR,EAAa,QAAQhR,CAAI,IACtBA,EAAK,OACT;AAAA,EACX;AASA,WAAS+Q,EAAU/Q,GAAM;AACrB,WAAI,MAAM,QAAQA,CAAI,IACXA,EAAK,IAAI+Q,CAAS,EAAE,KAAK,EAAE,QAC9BC,EAAa,aAAahR,CAAI,MAAMA,EAAK,SAAS6G,EAAiB,YAAY,WAAWmK,EAAa,SAAShR,CAAI,KACjH+Q,EAAU/Q,EAAK,QAAQ,QAE1BgR,EAAa,QAAQhR,CAAI,IACtBA,EAAK,OACT;AAAA,EACX;;;;;;UCxFA,OAAO,eAAekR,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,cAAsBC,GACtBD,GAAA,YAAoBE,GACpBF,GAAA,cAAsBG,GACtBH,GAAA,oBAA4BI,GAC5BJ,GAAA,YAAoBK,GACpBL,GAAA,UAAkBM,GAClBN,GAAA,qBAA6BO,GAC7BP,GAAA,qBAA6BQ;AAC7B,MAAIV,IAAoCpM,gBAAAA,GAAA;AAQxC,WAASuM,EAAY5K,GAAM;AACvB,eAAWyK,EAAa,aAAazK,CAAI,IAAIA,EAAK,WAAW,CAAE;AAAA,EACnE;AAQA,WAAS6K,EAAU7K,GAAM;AACrB,WAAOA,EAAK,UAAU;AAAA,EAC1B;AAYA,WAAS8K,EAAY9K,GAAM;AACvB,QAAIkB,GAAIK,GACJhB,IAASsK,EAAU7K,CAAI;AAC3B,QAAIO,KAAU;AACV,aAAOqK,EAAYrK,CAAM;AAG7B,aAFI6K,IAAW,CAACpL,CAAI,GAChBQ,IAAOR,EAAK,MAAMhC,IAAOgC,EAAK,MAC3BQ,KAAQ;AACX,MAAA4K,EAAS,QAAQ5K,CAAI,GACpBU,IAAKV,GAAMA,IAAOU,EAAG;AAE1B,WAAOlD,KAAQ;AACX,MAAAoN,EAAS,KAAKpN,CAAI,GACjBuD,IAAKvD,GAAMA,IAAOuD,EAAG;AAE1B,WAAO6J;AAAA,EACX;AASA,WAASL,EAAkB/K,GAAMgB,GAAM;AACnC,QAAIE;AACJ,YAAQA,IAAKlB,EAAK,aAAa,QAAQkB,MAAO,SAAS,SAASA,EAAGF,CAAI;AAAA,EAC3E;AASA,WAASgK,EAAUhL,GAAMgB,GAAM;AAC3B,WAAQhB,EAAK,WAAW,QACpB,OAAO,UAAU,eAAe,KAAKA,EAAK,SAASgB,CAAI,KACvDhB,EAAK,QAAQgB,CAAI,KAAK;AAAA,EAC9B;AAQA,WAASiK,EAAQjL,GAAM;AACnB,WAAOA,EAAK;AAAA,EAChB;AASA,WAASkL,EAAmBlL,GAAM;AAG9B,aAFIkB,GACAlD,IAAOgC,EAAK,MACThC,MAAS,QAAQ,KAAKyM,EAAa,OAAOzM,CAAI;AACjD,MAACkD,IAAKlD,GAAMA,IAAOkD,EAAG;AAC1B,WAAOlD;AAAA,EACX;AASA,WAASmN,EAAmBnL,GAAM;AAG9B,aAFIkB,GACAV,IAAOR,EAAK,MACTQ,MAAS,QAAQ,KAAKiK,EAAa,OAAOjK,CAAI;AACjD,MAACU,IAAKV,GAAMA,IAAOU,EAAG;AAC1B,WAAOV;AAAA,EACX;;;;;;UC1HA,OAAO,eAAe6K,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,gBAAwBC,GACxBD,GAAA,iBAAyBE,GACzBF,GAAA,cAAsBG,GACtBH,GAAA,SAAiBI,GACjBJ,GAAA,eAAuBK,GACvBL,GAAA,UAAkBM;AAOlB,WAASL,EAActL,GAAM;AAKzB,QAJIA,EAAK,SACLA,EAAK,KAAK,OAAOA,EAAK,OACtBA,EAAK,SACLA,EAAK,KAAK,OAAOA,EAAK,OACtBA,EAAK,QAAQ;AACb,UAAImC,IAASnC,EAAK,OAAO,UACrB4L,IAAczJ,EAAO,YAAYnC,CAAI;AACzC,MAAI4L,KAAe,KACfzJ,EAAO,OAAOyJ,GAAa,CAAC;AAAA,IAExC;AACI,IAAA5L,EAAK,OAAO,MACZA,EAAK,OAAO,MACZA,EAAK,SAAS;AAAA,EAClB;AAQA,WAASuL,EAAevL,GAAM6L,GAAa;AACvC,QAAIrL,IAAQqL,EAAY,OAAO7L,EAAK;AACpC,IAAIQ,MACAA,EAAK,OAAOqL;AAEhB,QAAI7N,IAAQ6N,EAAY,OAAO7L,EAAK;AACpC,IAAIhC,MACAA,EAAK,OAAO6N;AAEhB,QAAItL,IAAUsL,EAAY,SAAS7L,EAAK;AACxC,QAAIO,GAAQ;AACR,UAAI4B,IAAS5B,EAAO;AACpB,MAAA4B,EAAOA,EAAO,YAAYnC,CAAI,CAAC,IAAI6L,GACnC7L,EAAK,SAAS;AAAA,IACtB;AAAA,EACA;AAQA,WAASwL,EAAYjL,GAAQ5B,GAAO;AAIhC,QAHA2M,EAAc3M,CAAK,GACnBA,EAAM,OAAO,MACbA,EAAM,SAAS4B,GACXA,EAAO,SAAS,KAAK5B,CAAK,IAAI,GAAG;AACjC,UAAImN,IAAUvL,EAAO,SAASA,EAAO,SAAS,SAAS,CAAC;AACxD,MAAAuL,EAAQ,OAAOnN,GACfA,EAAM,OAAOmN;AAAA,IACrB;AAEQ,MAAAnN,EAAM,OAAO;AAAA,EAErB;AAQA,WAAS8M,EAAOzL,GAAMhC,GAAM;AACxB,IAAAsN,EAActN,CAAI;AAClB,QAAIuC,IAASP,EAAK,QACd+L,IAAW/L,EAAK;AAKpB,QAJAhC,EAAK,OAAO+N,GACZ/N,EAAK,OAAOgC,GACZA,EAAK,OAAOhC,GACZA,EAAK,SAASuC,GACVwL;AAEA,UADAA,EAAS,OAAO/N,GACZuC,GAAQ;AACR,YAAI4B,IAAS5B,EAAO;AACpB,QAAA4B,EAAO,OAAOA,EAAO,YAAY4J,CAAQ,GAAG,GAAG/N,CAAI;AAAA,MAC/D;AAAA,UAES,CAAIuC,KACLA,EAAO,SAAS,KAAKvC,CAAI;AAAA,EAEjC;AAQA,WAAS0N,EAAanL,GAAQ5B,GAAO;AAIjC,QAHA2M,EAAc3M,CAAK,GACnBA,EAAM,SAAS4B,GACf5B,EAAM,OAAO,MACT4B,EAAO,SAAS,QAAQ5B,CAAK,MAAM,GAAG;AACtC,UAAImN,IAAUvL,EAAO,SAAS,CAAC;AAC/B,MAAAuL,EAAQ,OAAOnN,GACfA,EAAM,OAAOmN;AAAA,IACrB;AAEQ,MAAAnN,EAAM,OAAO;AAAA,EAErB;AAQA,WAASgN,EAAQ3L,GAAMQ,GAAM;AACzB,IAAA8K,EAAc9K,CAAI;AAClB,QAAID,IAASP,EAAK;AAClB,QAAIO,GAAQ;AACR,UAAI4B,IAAS5B,EAAO;AACpB,MAAA4B,EAAO,OAAOA,EAAO,QAAQnC,CAAI,GAAG,GAAGQ,CAAI;AAAA,IACnD;AACI,IAAIR,EAAK,SACLA,EAAK,KAAK,OAAOQ,IAErBA,EAAK,SAASD,GACdC,EAAK,OAAOR,EAAK,MACjBQ,EAAK,OAAOR,GACZA,EAAK,OAAOQ;AAAA,EAChB;;;;;;UC3IA,OAAO,eAAewL,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,SAAiBC,GACjBD,GAAA,OAAeE,GACfF,GAAA,eAAuBG,GACvBH,GAAA,UAAkBI,GAClBJ,GAAA,YAAoBK,GACpBL,GAAA,UAAkBM;AAClB,MAAI7B,IAAoCpM,gBAAAA,GAAA;AAWxC,WAAS4N,EAAOM,GAAM9S,GAAM+S,GAASC,GAAO;AACxC,WAAID,MAAY,WAAUA,IAAU,KAChCC,MAAU,WAAUA,IAAQ,QACzBP,EAAKK,GAAM,MAAM,QAAQ9S,CAAI,IAAIA,IAAO,CAACA,CAAI,GAAG+S,GAASC,CAAK;AAAA,EACzE;AAWA,WAASP,EAAKK,GAAM9C,GAAO+C,GAASC,GAAO;AAMvC,aALI3Q,IAAS,CAAE,GAEX4Q,IAAY,CAAC,MAAM,QAAQjD,CAAK,IAAIA,IAAQ,CAACA,CAAK,CAAC,GAEnDkD,IAAa,CAAC,CAAC,OACV;AAEL,UAAIA,EAAW,CAAC,KAAKD,EAAU,CAAC,EAAE,QAAQ;AAEtC,YAAIC,EAAW,WAAW;AACtB,iBAAO7Q;AAGX,QAAA4Q,EAAU,MAAO,GACjBC,EAAW,MAAO;AAElB;AAAA,MACZ;AACQ,UAAI3M,IAAO0M,EAAU,CAAC,EAAEC,EAAW,CAAC,GAAG;AACvC,UAAIJ,EAAKvM,CAAI,MACTlE,EAAO,KAAKkE,CAAI,GACZ,EAAEyM,KAAS;AACX,eAAO3Q;AAEf,MAAI0Q,SAAe/B,EAAa,aAAazK,CAAI,KAAKA,EAAK,SAAS,SAAS,MAKzE2M,EAAW,QAAQ,CAAC,GACpBD,EAAU,QAAQ1M,EAAK,QAAQ;AAAA,IAE3C;AAAA,EACA;AAUA,WAASmM,EAAaI,GAAM9C,GAAO;AAC/B,WAAOA,EAAM,KAAK8C,CAAI;AAAA,EAC1B;AAUA,WAASH,EAAQG,GAAM9C,GAAO+C,GAAS;AACnC,IAAIA,MAAY,WAAUA,IAAU;AAEpC,aADII,IAAgB,MAAM,QAAQnD,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAChDrJ,IAAI,GAAGA,IAAIwM,EAAc,QAAQxM,KAAK;AAC3C,UAAI3G,IAAOmT,EAAcxM,CAAC;AAC1B,cAAQqK,EAAa,OAAOhR,CAAI,KAAK8S,EAAK9S,CAAI;AAC1C,eAAOA;AAEX,UAAI+S,SAAe/B,EAAa,aAAahR,CAAI,KAAKA,EAAK,SAAS,SAAS,GAAG;AAC5E,YAAIoT,IAAQT,EAAQG,GAAM9S,EAAK,UAAU,EAAI;AAC7C,YAAIoT;AACA,iBAAOA;AAAA,MACvB;AAAA,IACA;AACI,WAAO;AAAA,EACX;AASA,WAASR,EAAUE,GAAM9C,GAAO;AAC5B,YAAQ,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAAG,KAAK,SAAUhQ,GAAM;AACjE,iBAAYgR,EAAa,OAAOhR,CAAI,KAAK8S,EAAK9S,CAAI,SACzCgR,EAAa,aAAahR,CAAI,KAAK4S,EAAUE,GAAM9S,EAAK,QAAQ;AAAA,IACjF,CAAK;AAAA,EACL;AAWA,WAAS6S,EAAQC,GAAM9C,GAAO;AAI1B,aAHI3N,IAAS,CAAE,GACX4Q,IAAY,CAAC,MAAM,QAAQjD,CAAK,IAAIA,IAAQ,CAACA,CAAK,CAAC,GACnDkD,IAAa,CAAC,CAAC,OACV;AACL,UAAIA,EAAW,CAAC,KAAKD,EAAU,CAAC,EAAE,QAAQ;AACtC,YAAIA,EAAU,WAAW;AACrB,iBAAO5Q;AAGX,QAAA4Q,EAAU,MAAO,GACjBC,EAAW,MAAO;AAElB;AAAA,MACZ;AACQ,UAAI3M,IAAO0M,EAAU,CAAC,EAAEC,EAAW,CAAC,GAAG;AACvC,UAAQlC,EAAa,OAAOzK,CAAI,KAAKuM,EAAKvM,CAAI,KAC1ClE,EAAO,KAAKkE,CAAI,OACZyK,EAAa,aAAazK,CAAI,KAAKA,EAAK,SAAS,SAAS,MAC9D2M,EAAW,QAAQ,CAAC,GACpBD,EAAU,QAAQ1M,EAAK,QAAQ;AAAA,IAE3C;AAAA,EACA;;;;;;UCxJA,OAAO,eAAe8M,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,cAAsBC,GACtBD,GAAA,cAAsBE,GACtBF,GAAA,iBAAyBG,GACzBH,GAAA,uBAA+BI,GAC/BJ,GAAA,yBAAiCK,GACjCL,GAAA,uBAA+BM;AAC/B,MAAI3C,IAAoCpM,gBAAAA,GAAA,GACpCgP,IAAwCzK,gBAAAA,GAAA,GAIxC0K,IAAS;AAAA,IACT,UAAU,SAAUtM,GAAM;AACtB,aAAI,OAAOA,KAAS,aACT,SAAUhB,GAAM;AAAE,mBAAWyK,EAAa,OAAOzK,CAAI,KAAKgB,EAAKhB,EAAK,IAAI;AAAA,MAAI,IAE9EgB,MAAS,MACPyJ,EAAa,QAEjB,SAAUzK,GAAM;AAAE,mBAAWyK,EAAa,OAAOzK,CAAI,KAAKA,EAAK,SAASgB;AAAA,MAAO;AAAA,IACzF;AAAA,IACD,UAAU,SAAUnC,GAAM;AACtB,aAAI,OAAOA,KAAS,aACT,SAAUmB,GAAM;AAAE,eAAOnB,EAAKmB,EAAK,IAAI;AAAA,MAAI,IAE/C,SAAUA,GAAM;AAAE,eAAOA,EAAK,SAASnB;AAAA,MAAO;AAAA,IACxD;AAAA,IACD,cAAc,SAAU+B,GAAM;AAC1B,aAAI,OAAOA,KAAS,aACT,SAAUZ,GAAM;AAAE,mBAAWyK,EAAa,QAAQzK,CAAI,KAAKY,EAAKZ,EAAK,IAAI;AAAA,MAAI,IAEjF,SAAUA,GAAM;AAAE,mBAAWyK,EAAa,QAAQzK,CAAI,KAAKA,EAAK,SAASY;AAAA,MAAO;AAAA,IAC1F;AAAA,EACJ;AAUD,WAAS2M,EAAeC,GAAQhS,GAAO;AACnC,WAAI,OAAOA,KAAU,aACV,SAAUwE,GAAM;AAAE,iBAAWyK,EAAa,OAAOzK,CAAI,KAAKxE,EAAMwE,EAAK,QAAQwN,CAAM,CAAC;AAAA,IAAI,IAE5F,SAAUxN,GAAM;AAAE,iBAAWyK,EAAa,OAAOzK,CAAI,KAAKA,EAAK,QAAQwN,CAAM,MAAMhS;AAAA,IAAQ;AAAA,EACtG;AAUA,WAASiS,EAAaC,GAAGxO,GAAG;AACxB,WAAO,SAAUc,GAAM;AAAE,aAAO0N,EAAE1N,CAAI,KAAKd,EAAEc,CAAI;AAAA,IAAI;AAAA,EACzD;AASA,WAAS2N,EAAY/R,GAAS;AAC1B,QAAIgS,IAAQ,OAAO,KAAKhS,CAAO,EAAE,IAAI,SAAUxC,GAAK;AAChD,UAAIoC,IAAQI,EAAQxC,CAAG;AACvB,aAAO,OAAO,UAAU,eAAe,KAAKkU,GAAQlU,CAAG,IACjDkU,EAAOlU,CAAG,EAAEoC,CAAK,IACjB+R,EAAenU,GAAKoC,CAAK;AAAA,IACvC,CAAK;AACD,WAAOoS,EAAM,WAAW,IAAI,OAAOA,EAAM,OAAOH,CAAY;AAAA,EAChE;AASA,WAASV,EAAYnR,GAASnC,GAAM;AAChC,QAAI8S,IAAOoB,EAAY/R,CAAO;AAC9B,WAAO2Q,IAAOA,EAAK9S,CAAI,IAAI;AAAA,EAC/B;AAWA,WAASuT,EAAYpR,GAAS6N,GAAO+C,GAASC,GAAO;AACjD,IAAIA,MAAU,WAAUA,IAAQ;AAChC,QAAIF,IAAOoB,EAAY/R,CAAO;AAC9B,WAAO2Q,QAAWc,EAAc,QAAQd,GAAM9C,GAAO+C,GAASC,CAAK,IAAI,CAAE;AAAA,EAC7E;AAUA,WAASQ,EAAeY,GAAIpE,GAAO+C,GAAS;AACxC,WAAIA,MAAY,WAAUA,IAAU,KAC/B,MAAM,QAAQ/C,CAAK,MACpBA,IAAQ,CAACA,CAAK,QACP4D,EAAc,SAASE,EAAe,MAAMM,CAAE,GAAGpE,GAAO+C,CAAO;AAAA,EAC9E;AAWA,WAASU,EAAqBY,GAASrE,GAAO+C,GAASC,GAAO;AAC1D,WAAID,MAAY,WAAUA,IAAU,KAChCC,MAAU,WAAUA,IAAQ,YACrBY,EAAc,QAAQC,EAAO,SAAYQ,CAAO,GAAGrE,GAAO+C,GAASC,CAAK;AAAA,EACvF;AAWA,WAASU,EAAuBY,GAAWtE,GAAO+C,GAASC,GAAO;AAC9D,WAAID,MAAY,WAAUA,IAAU,KAChCC,MAAU,WAAUA,IAAQ,YACrBY,EAAc,QAAQE,EAAe,SAASQ,CAAS,GAAGtE,GAAO+C,GAASC,CAAK;AAAA,EAC9F;AAWA,WAASW,EAAqBvO,GAAM4K,GAAO+C,GAASC,GAAO;AACvD,WAAID,MAAY,WAAUA,IAAU,KAChCC,MAAU,WAAUA,IAAQ,YACrBY,EAAc,QAAQC,EAAO,SAAYzO,CAAI,GAAG4K,GAAO+C,GAASC,CAAK;AAAA,EACpF;;;;;;UCrKA,OAAO,eAAeuB,IAAS,cAAc,EAAE,OAAO,IAAM,GACpCA,GAAA,mBAAG,QAC3BA,GAAA,gBAAwBC,GACxBD,GAAA,0BAAkCE,GAClCF,GAAA,aAAqBG;AACrB,MAAI1D,IAAoCpM,gBAAAA,GAAA;AASxC,WAAS4P,EAAcxE,GAAO;AAM1B,aALI2E,IAAM3E,EAAM,QAKT,EAAE2E,KAAO,KAAG;AACf,UAAI3U,IAAOgQ,EAAM2E,CAAG;AAMpB,UAAIA,IAAM,KAAK3E,EAAM,YAAYhQ,GAAM2U,IAAM,CAAC,KAAK,GAAG;AAClD,QAAA3E,EAAM,OAAO2E,GAAK,CAAC;AACnB;AAAA,MACZ;AACQ,eAASC,IAAW5U,EAAK,QAAQ4U,GAAUA,IAAWA,EAAS;AAC3D,YAAI5E,EAAM,SAAS4E,CAAQ,GAAG;AAC1B,UAAA5E,EAAM,OAAO2E,GAAK,CAAC;AACnB;AAAA,QAChB;AAAA,IAEA;AACI,WAAO3E;AAAA,EACX;AAKA,MAAI6E;AACJ,GAAC,SAAUA,GAAkB;AACzB,IAAAA,EAAiBA,EAAiB,eAAkB,CAAC,IAAI,gBACzDA,EAAiBA,EAAiB,YAAe,CAAC,IAAI,aACtDA,EAAiBA,EAAiB,YAAe,CAAC,IAAI,aACtDA,EAAiBA,EAAiB,WAAc,CAAC,IAAI,YACrDA,EAAiBA,EAAiB,eAAkB,EAAE,IAAI;AAAA,EAC7D,GAAEA,MAAqBN,GAAA,mBAA2BM,IAAmB,CAAE,EAAC;AA2BzE,WAASJ,EAAwBK,GAAOC,GAAO;AAC3C,QAAIC,IAAW,CAAE,GACbC,IAAW,CAAE;AACjB,QAAIH,MAAUC;AACV,aAAO;AAGX,aADI7I,QAAc8E,EAAa,aAAa8D,CAAK,IAAIA,IAAQA,EAAM,QAC5D5I;AACH,MAAA8I,EAAS,QAAQ9I,CAAO,GACxBA,IAAUA,EAAQ;AAGtB,SADAA,QAAc8E,EAAa,aAAa+D,CAAK,IAAIA,IAAQA,EAAM,QACxD7I;AACH,MAAA+I,EAAS,QAAQ/I,CAAO,GACxBA,IAAUA,EAAQ;AAItB,aAFIgJ,IAAS,KAAK,IAAIF,EAAS,QAAQC,EAAS,MAAM,GAClDN,IAAM,GACHA,IAAMO,KAAUF,EAASL,CAAG,MAAMM,EAASN,CAAG;AACjD,MAAAA;AAEJ,QAAIA,MAAQ;AACR,aAAOE,EAAiB;AAE5B,QAAIM,IAAeH,EAASL,IAAM,CAAC,GAC/BhD,IAAWwD,EAAa,UACxBC,IAAWJ,EAASL,CAAG,GACvBU,IAAWJ,EAASN,CAAG;AAC3B,WAAIhD,EAAS,QAAQyD,CAAQ,IAAIzD,EAAS,QAAQ0D,CAAQ,IAClDF,MAAiBJ,IACVF,EAAiB,YAAYA,EAAiB,eAElDA,EAAiB,YAExBM,MAAiBL,IACVD,EAAiB,YAAYA,EAAiB,WAElDA,EAAiB;AAAA,EAC5B;AAUA,WAASH,EAAW1E,GAAO;AACvB,WAAAA,IAAQA,EAAM,OAAO,SAAUhQ,GAAM2G,GAAGgH,GAAK;AAAE,aAAO,CAACA,EAAI,SAAS3N,GAAM2G,IAAI,CAAC;AAAA,IAAE,CAAE,GACnFqJ,EAAM,KAAK,SAAU,GAAGvK,GAAG;AACvB,UAAI6P,IAAWb,EAAwB,GAAGhP,CAAC;AAC3C,aAAI6P,IAAWT,EAAiB,YACrB,KAEFS,IAAWT,EAAiB,YAC1B,IAEJ;AAAA,IACf,CAAK,GACM7E;AAAA,EACX;;;;;;UC3IA,OAAO,eAAeuF,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,UAAkBC;AAClB,MAAIC,IAA0C7Q,gBAAAA,GAAA,GAC1C8Q,IAAoCvM,gBAAAA,GAAA;AAQxC,WAASqM,EAAQG,GAAK;AAClB,QAAIC,IAAWC,EAAcC,GAAaH,CAAG;AAC7C,WAAQC,IAEFA,EAAS,SAAS,SACdG,EAAYH,CAAQ,IACpBI,EAAWJ,CAAQ,IAHvB;AAAA,EAIV;AAOA,WAASG,EAAYH,GAAU;AAC3B,QAAInO,GACAiB,IAASkN,EAAS,UAClBK,IAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAWP,EAAY,sBAAsB,SAAShN,CAAM,EAAE,IAAI,SAAUwN,GAAM;AAC9E,YAAIzO,GACAxC,IAAWiR,EAAK,UAChBC,IAAQ,EAAE,OAAOC,EAAiBnR,CAAQ,EAAG;AACjD,QAAAoR,EAAiBF,GAAO,MAAM,MAAMlR,CAAQ,GAC5CoR,EAAiBF,GAAO,SAAS,SAASlR,CAAQ;AAClD,YAAIqR,KAAQ7O,IAAKoO,EAAc,QAAQ5Q,CAAQ,OAAO,QAAQwC,MAAO,SAAS,SAASA,EAAG,QAAQ;AAClG,QAAI6O,MACAH,EAAM,OAAOG;AAEjB,YAAIC,IAAcC,EAAM,WAAWvR,CAAQ,KAAKuR,EAAM,WAAWvR,CAAQ;AACzE,QAAIsR,MACAJ,EAAM,cAAcI;AAExB,YAAIE,IAAUD,EAAM,WAAWvR,CAAQ;AACvC,eAAIwR,MACAN,EAAM,UAAU,IAAI,KAAKM,CAAO,IAE7BN;AAAA,MACnB,CAAS;AAAA,IACJ;AACD,IAAAE,EAAiBJ,GAAM,MAAM,MAAMvN,CAAM,GACzC2N,EAAiBJ,GAAM,SAAS,SAASvN,CAAM;AAC/C,QAAI4N,KAAQ7O,IAAKoO,EAAc,QAAQnN,CAAM,OAAO,QAAQjB,MAAO,SAAS,SAASA,EAAG,QAAQ;AAChG,IAAI6O,MACAL,EAAK,OAAOK,IAEhBD,EAAiBJ,GAAM,eAAe,YAAYvN,CAAM;AACxD,QAAIgO,IAAUF,EAAM,WAAW9N,CAAM;AACrC,WAAIgO,MACAT,EAAK,UAAU,IAAI,KAAKS,CAAO,IAEnCL,EAAiBJ,GAAM,UAAU,SAASvN,GAAQ,EAAI,GAC/CuN;AAAA,EACX;AAOA,WAASD,EAAWJ,GAAU;AAC1B,QAAInO,GAAIK,GACJY,KAAUZ,KAAML,IAAKoO,EAAc,WAAWD,EAAS,QAAQ,OAAO,QAAQnO,MAAO,SAAS,SAASA,EAAG,cAAc,QAAQK,MAAO,SAASA,IAAK,CAAE,GACvJmO,IAAO;AAAA,MACP,MAAML,EAAS,KAAK,OAAO,GAAG,CAAC;AAAA,MAC/B,IAAI;AAAA,MACJ,WAAWF,EAAY,sBAAsB,QAAQE,EAAS,QAAQ,EAAE,IAAI,SAAUM,GAAM;AACxF,YAAIjR,IAAWiR,EAAK,UAChBC,IAAQ,EAAE,OAAOC,EAAiBnR,CAAQ,EAAG;AACjD,QAAAoR,EAAiBF,GAAO,MAAM,QAAQlR,CAAQ,GAC9CoR,EAAiBF,GAAO,SAAS,SAASlR,CAAQ,GAClDoR,EAAiBF,GAAO,QAAQ,QAAQlR,CAAQ,GAChDoR,EAAiBF,GAAO,eAAe,eAAelR,CAAQ;AAC9D,YAAIwR,IAAUD,EAAM,WAAWvR,CAAQ,KAAKuR,EAAM,WAAWvR,CAAQ;AACrE,eAAIwR,MACAN,EAAM,UAAU,IAAI,KAAKM,CAAO,IAC7BN;AAAA,MACnB,CAAS;AAAA,IACJ;AACD,IAAAE,EAAiBJ,GAAM,SAAS,SAASvN,CAAM,GAC/C2N,EAAiBJ,GAAM,QAAQ,QAAQvN,CAAM,GAC7C2N,EAAiBJ,GAAM,eAAe,eAAevN,CAAM;AAC3D,QAAIgO,IAAUF,EAAM,iBAAiB9N,CAAM;AAC3C,WAAIgO,MACAT,EAAK,UAAU,IAAI,KAAKS,CAAO,IAEnCL,EAAiBJ,GAAM,UAAU,kBAAkBvN,GAAQ,EAAI,GACxDuN;AAAA,EACX;AACA,MAAIU,IAAoB,CAAC,OAAO,QAAQ,MAAM,GAC1CC,IAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAOD,WAASR,EAAiBS,GAAO;AAC7B,eAAWnB,EAAY,sBAAsB,iBAAiBmB,CAAK,EAAE,IAAI,SAAUtQ,GAAM;AAMrF,eALIsB,IAAUtB,EAAK,SACfuQ,IAAQ;AAAA,QACR,QAAQjP,EAAQ;AAAA,QAChB,WAAW,CAAC,CAACA,EAAQ;AAAA,MACxB,GACQkP,IAAK,GAAGC,IAAsBL,GAAmBI,IAAKC,EAAoB,QAAQD,KAAM;AAC7F,YAAIhD,IAASiD,EAAoBD,CAAE;AACnC,QAAIlP,EAAQkM,CAAM,MACd+C,EAAM/C,CAAM,IAAIlM,EAAQkM,CAAM;AAAA,MAE9C;AACQ,eAAStM,IAAK,GAAGwP,IAAmBL,GAAgBnP,IAAKwP,EAAiB,QAAQxP,KAAM;AACpF,YAAIsM,IAASkD,EAAiBxP,CAAE;AAChC,QAAII,EAAQkM,CAAM,MACd+C,EAAM/C,CAAM,IAAI,SAASlM,EAAQkM,CAAM,GAAG,EAAE;AAAA,MAE5D;AACQ,aAAIlM,EAAQ,eACRiP,EAAM,aAAajP,EAAQ,aAExBiP;AAAA,IACf,CAAK;AAAA,EACL;AAQA,WAASjB,EAAcxB,GAASrU,GAAM;AAClC,eAAW0V,EAAY,sBAAsBrB,GAASrU,GAAM,IAAM,CAAC,EAAE,CAAC;AAAA,EAC1E;AASA,WAASwW,EAAMnC,GAASwC,GAAO9D,GAAS;AACpC,WAAIA,MAAY,WAAUA,IAAU,SACzB0C,EAAe,iBAAiBC,EAAY,sBAAsBrB,GAASwC,GAAO9D,GAAS,CAAC,CAAC,EAAE,KAAM;AAAA,EACpH;AAUA,WAASsD,EAAiBa,GAAKC,GAAM9C,GAASwC,GAAO9D,GAAS;AAC1D,IAAIA,MAAY,WAAUA,IAAU;AACpC,QAAI5N,IAAMqR,EAAMnC,GAASwC,GAAO9D,CAAO;AACvC,IAAI5N,MACA+R,EAAIC,CAAI,IAAIhS;AAAA,EACpB;AAOA,WAAS2Q,EAAY/T,GAAO;AACxB,WAAOA,MAAU,SAASA,MAAU,UAAUA,MAAU;AAAA,EAC5D;;;;;;AC3LA,QAAI4G,IAAmBjE,MAAQA,GAAK,oBAAqB,OAAO,SAAU,SAASkE,GAAGC,GAAGC,GAAGC,GAAI;AAC5F,MAAIA,MAAO,WAAWA,IAAKD;AAC3B,UAAIE,IAAO,OAAO,yBAAyBH,GAAGC,CAAC;AAC/C,OAAI,CAACE,MAAS,SAASA,IAAO,CAACH,EAAE,aAAaG,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,eAAOH,EAAEC,CAAC;AAAA,QAAM,IAE/D,OAAO,eAAeF,GAAGG,GAAIC,CAAI;AAAA,IACpC,IAAK,SAASJ,GAAGC,GAAGC,GAAGC,GAAI;AACxB,MAAIA,MAAO,WAAWA,IAAKD,IAC3BF,EAAEG,CAAE,IAAIF,EAAEC,CAAC;AAAA,IACf,IACIG,IAAgBvE,MAAQA,GAAK,gBAAiB,SAASmE,GAAG5J,GAAS;AACnE,eAASyG,KAAKmD,EAAG,CAAInD,MAAM,aAAa,CAAC,OAAO,UAAU,eAAe,KAAKzG,GAASyG,CAAC,KAAGiD,EAAgB1J,GAAS4J,GAAGnD,CAAC;AAAA,IAC3H;AACD,WAAO,eAAczG,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,cAAsBA,eAAqBA,EAAoB,YAAAA,EAAA,SAAiBA,EAAkB,UAAAA,EAAA,QAAgB,QAClHgK,EAAarE,gBAAAA,GAAyB,GAAE3F,CAAO,GAC/CgK,EAAaE,gBAAAA,GAAyB,GAAElK,CAAO,GAC/CgK,EAAawB,gBAAAA,GAA4B,GAAExL,CAAO,GAClDgK,EAAamO,gBAAAA,GAAwB,GAAEnY,CAAO,GAC9CgK,EAAaoO,gBAAAA,GAAsB,GAAEpY,CAAO,GAC5CgK,EAAaqO,gBAAAA,GAAuB,GAAErY,CAAO,GAC7CgK,EAAasO,gBAAAA,GAAqB,GAAEtY,CAAO;AAE3C,QAAI+R,IAAoCwG,gBAAAA,GAAA;AACxC,WAAO,eAAevY,GAAS,SAAS,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAQ,EAAA,CAAE,GAC7G,OAAO,eAAe/R,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAU,EAAA,CAAE,GACjH,OAAO,eAAe/R,GAAS,UAAU,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAS,EAAA,CAAE,GAC/G,OAAO,eAAe/R,GAAS,aAAa,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAY,EAAA,CAAE,GACrH,OAAO,eAAe/R,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAa,EAAA,CAAE,GACvH,OAAO,eAAe/R,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAc,EAAA,CAAE;AAAA;;;;wBC/BzHyG,KAAiB;AAAA,IAChB,UAAU,WAAmB;AAC5B,aAAO;AAAA,IACP;AAAA,IACD,WAAW,WAAoB;AAC9B,aAAO;AAAA,IACT;AAAA,EACC;;YCPUC;AAAA,CACV,SAAUA,GAAc;AACrB,EAAAA,EAAa,YAAe,aAC5BA,EAAa,SAAY,UACzBA,EAAa,gBAAmB,kBAChCA,EAAa,MAAS,OACtBA,EAAa,YAAe,aAE5BA,EAAa,WAAc,YAC3BA,EAAa,QAAW,SACxBA,EAAa,aAAgB,cAC7BA,EAAa,SAAY,UACzBA,EAAa,UAAa,WAC1BA,EAAa,mBAAsB;AACvC,GAAGA,MAAiBA,IAAe,CAAA,EAAG;AAQ/B,MAAMC,KAAiB;AAAA,EAC1B,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,eAAe;AACnB;AACO,IAAIC;AAAA,CACV,SAAUA,GAAiB;AACxB,EAAAA,EAAgB,MAAS,OACzBA,EAAgB,UAAa,WAC7BA,EAAgB,MAAS,OACzBA,EAAgB,SAAY,UAC5BA,EAAgB,SAAY,UAC5BA,EAAgB,SAAY,UAC5BA,EAAgB,MAAS,OACzBA,EAAgB,QAAW;AAC/B,GAAGA,MAAoBA,IAAkB,CAAA,EAAG;ACrC5C,MAAMC,KAAS,4DACTC,KAAW,gCACXC,KAAc,oBAAI,IAAI;AAAA,EACxB,CAAC,KAAiBH,EAAgB,OAAO;AAAA,EACzC,CAAC,IAAqBA,EAAgB,KAAK;AAAA,EAC3C,CAAC,IAAiBA,EAAgB,GAAG;AAAA,EACrC,CAAC,IAAmBA,EAAgB,GAAG;AAAA,EACvC,CAAC,IAA0BA,EAAgB,GAAG;AAAA,EAC9C,CAAC,KAAgBA,EAAgB,MAAM;AAC3C,CAAC,GAEKI,KAAgB,oBAAI,IAAI;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;AAQM,SAASC,GAAYC,GAAU;AAClC,UAAQA,EAAS,MAAI;AAAA,IACjB,KAAKR,EAAa;AAAA,IAClB,KAAKA,EAAa;AAAA,IAClB,KAAKA,EAAa;AAAA,IAClB,KAAKA,EAAa;AAAA,IAClB,KAAKA,EAAa;AAAA,IAClB,KAAKA,EAAa;AACd,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACnB;AACA;AACA,MAAMS,KAAyB,oBAAI,IAAI,CAAC,YAAY,WAAW,CAAC;AAEhE,SAASC,GAAUC,GAAGC,GAASC,GAAmB;AAC9C,QAAMhV,IAAO,SAAS+U,GAAS,EAAE,IAAI;AAErC,SAAO/U,MAASA,KAAQgV,IAClBD,IACA/U,IAAO;AAAA;AAAA,IAED,OAAO,aAAaA,IAAO,KAAO;AAAA;AAAA;AAAA,IAElC,OAAO,aAAcA,KAAQ,KAAM,OAASA,IAAO,OAAS,KAAM;AAAA;AAClF;AACA,SAASiV,GAAY/M,GAAK;AACtB,SAAOA,EAAI,QAAQqM,IAAUM,EAAS;AAC1C;AACA,SAASK,GAAQ1O,GAAG;AAChB,SAAOA,MAAM,MAAwBA,MAAM;AAC/C;AACA,SAAS2O,GAAa3O,GAAG;AACrB,SAAQA,MAAM,MACVA,MAAM,KACNA,MAAM,MACNA,MAAM,MACNA,MAAM;AACd;AAUO,SAAS4O,GAAMT,GAAU;AAC5B,QAAMU,IAAa,CAAE,GACfC,IAAWC,GAAcF,GAAY,GAAGV,CAAQ,IAAI,CAAC;AAC3D,MAAIW,IAAWX,EAAS;AACpB,UAAM,IAAI,MAAM,uBAAuBA,EAAS,MAAMW,CAAQ,CAAC,EAAE;AAErE,SAAOD;AACX;AACA,SAASE,GAAcF,GAAYV,GAAUa,GAAe;AACxD,MAAIC,IAAS,CAAE;AACf,WAASxH,EAAQ9F,GAAQ;AACrB,UAAMqC,IAAQmK,EAAS,MAAMa,IAAgBrN,CAAM,EAAE,MAAMmM,EAAM;AACjE,QAAI,CAAC9J;AACD,YAAM,IAAI,MAAM,wBAAwBmK,EAAS,MAAMa,CAAa,CAAC,EAAE;AAE3E,UAAM,CAACxR,CAAI,IAAIwG;AACf,WAAAgL,KAAiBrN,IAASnE,EAAK,QACxBiR,GAAYjR,CAAI;AAAA,EAC/B;AACI,WAAS0R,EAAgBvN,GAAQ;AAE7B,SADAqN,KAAiBrN,GACVqN,IAAgBb,EAAS,UAC5BQ,GAAaR,EAAS,WAAWa,CAAa,CAAC;AAC/C,MAAAA;AAAA,EAEZ;AACI,WAASG,IAA2B;AAChC,IAAAH,KAAiB;AACjB,UAAMpN,IAAQoN;AACd,QAAII,IAAU;AACd,WAAOA,IAAU,KAAKJ,IAAgBb,EAAS,QAAQa;AACnD,MAAIb,EAAS,WAAWa,CAAa,MACjC,MACA,CAACK,EAAUL,CAAa,IACxBI,MAEKjB,EAAS,WAAWa,CAAa,MACtC,MACA,CAACK,EAAUL,CAAa,KACxBI;AAGR,QAAIA;AACA,YAAM,IAAI,MAAM,yBAAyB;AAE7C,WAAOX,GAAYN,EAAS,MAAMvM,GAAOoN,IAAgB,CAAC,CAAC;AAAA,EACnE;AACI,WAASK,EAAUC,GAAK;AACpB,QAAIC,IAAa;AACjB,WAAOpB,EAAS,WAAW,EAAEmB,CAAG,MAAM;AAClC,MAAAC;AACJ,YAAQA,IAAa,OAAO;AAAA,EACpC;AACI,WAASC,IAAqB;AAC1B,QAAIP,EAAO,SAAS,KAAKf,GAAYe,EAAOA,EAAO,SAAS,CAAC,CAAC;AAC1D,YAAM,IAAI,MAAM,uCAAuC;AAAA,EAEnE;AACI,WAASQ,EAAapU,GAAM;AACxB,QAAI4T,EAAO,SAAS,KAChBA,EAAOA,EAAO,SAAS,CAAC,EAAE,SAAStB,EAAa,YAAY;AAC5D,MAAAsB,EAAOA,EAAO,SAAS,CAAC,EAAE,OAAO5T;AACjC;AAAA,IACZ;AACQ,IAAAmU,EAAoB,GACpBP,EAAO,KAAK,EAAE,MAAA5T,GAAM;AAAA,EAC5B;AACI,WAASqU,EAAoBlS,GAAMmS,GAAQ;AACvC,IAAAV,EAAO,KAAK;AAAA,MACR,MAAMtB,EAAa;AAAA,MACnB,MAAAnQ;AAAA,MACA,QAAAmS;AAAA,MACA,OAAOlI,EAAQ,CAAC;AAAA,MAChB,WAAW;AAAA,MACX,YAAY;AAAA,IACxB,CAAS;AAAA,EACT;AAQI,WAASmI,IAAsB;AAK3B,QAJIX,EAAO,UACPA,EAAOA,EAAO,SAAS,CAAC,EAAE,SAAStB,EAAa,cAChDsB,EAAO,IAAK,GAEZA,EAAO,WAAW;AAClB,YAAM,IAAI,MAAM,oBAAoB;AAExC,IAAAJ,EAAW,KAAKI,CAAM;AAAA,EAC9B;AAEI,MADAC,EAAgB,CAAC,GACbf,EAAS,WAAWa;AACpB,WAAOA;AAEX,EAAAa,EAAM,QAAOb,IAAgBb,EAAS,UAAQ;AAC1C,UAAM2B,IAAY3B,EAAS,WAAWa,CAAa;AACnD,YAAQc,GAAS;AAAA;AAAA,MAEb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,IAAyB;AAC1B,SAAIb,EAAO,WAAW,KAClBA,EAAO,CAAC,EAAE,SAAStB,EAAa,gBAChC6B,EAAoB,GACpBP,EAAO,KAAK,EAAE,MAAMtB,EAAa,WAAU,CAAE,IAEjDuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA;AAAA,MAEY,KAAK,IAAsB;AACvB,QAAAO,EAAa9B,EAAa,KAAK,GAC/BuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA,MACY,KAAK,IAAmB;AACpB,QAAAO,EAAa9B,EAAa,MAAM,GAChCuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA,MACY,KAAK,KAAiB;AAClB,QAAAO,EAAa9B,EAAa,OAAO,GACjCuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA,MACY,KAAK,IAAe;AAChB,QAAAO,EAAa9B,EAAa,QAAQ,GAClCuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA;AAAA,MAEY,KAAK,IAAiB;AAClB,QAAAQ,EAAoB,SAAS7B,EAAgB,OAAO;AACpD;AAAA,MAChB;AAAA,MACY,KAAK,IAAe;AAChB,QAAA6B,EAAoB,MAAM7B,EAAgB,MAAM;AAChD;AAAA,MAChB;AAAA,MACY,KAAK,IAA4B;AAC7B,QAAAqB,EAAgB,CAAC;AAEjB,YAAI1R,GACAuS,IAAY;AAChB,QAAI5B,EAAS,WAAWa,CAAa,MAAM,MAEvCxR,IAAOiK,EAAQ,CAAC,IAEX0G,EAAS,WAAW,MAAMa,CAAa,KAC5Ce,IAAY,KACZvS,IAAOiK,EAAQ,CAAC,MAGhBjK,IAAOiK,EAAQ,CAAC,GACZ0G,EAAS,WAAWa,CAAa,MAAM,OACvCb,EAAS,WAAWa,IAAgB,CAAC,MACjC,OACJe,IAAYvS,GACZA,IAAOiK,EAAQ,CAAC,KAGxByH,EAAgB,CAAC;AAEjB,YAAIS,IAAS9B,EAAgB;AAC7B,cAAMmC,IAAiBhC,GAAY,IAAIG,EAAS,WAAWa,CAAa,CAAC;AACzE,YAAIgB,GAAgB;AAEhB,cADAL,IAASK,GACL7B,EAAS,WAAWa,IAAgB,CAAC,MACrC;AACA,kBAAM,IAAI,MAAM,cAAc;AAElC,UAAAE,EAAgB,CAAC;AAAA,QACrC,MACqB,CAAIf,EAAS,WAAWa,CAAa,MAAM,OAC5CW,IAAS9B,EAAgB,QACzBqB,EAAgB,CAAC;AAGrB,YAAIlX,IAAQ,IACRiY,IAAa;AACjB,YAAIN,MAAW,UAAU;AACrB,cAAIjB,GAAQP,EAAS,WAAWa,CAAa,CAAC,GAAG;AAC7C,kBAAMkB,IAAQ/B,EAAS,WAAWa,CAAa;AAC/C,gBAAImB,IAAanB,IAAgB;AACjC,mBAAOmB,IAAahC,EAAS,WACxBA,EAAS,WAAWgC,CAAU,MAAMD,KACjCb,EAAUc,CAAU;AACxB,cAAAA,KAAc;AAElB,gBAAIhC,EAAS,WAAWgC,CAAU,MAAMD;AACpC,oBAAM,IAAI,MAAM,4BAA4B;AAEhD,YAAAlY,IAAQyW,GAAYN,EAAS,MAAMa,IAAgB,GAAGmB,CAAU,CAAC,GACjEnB,IAAgBmB,IAAa;AAAA,UACrD,OACyB;AACD,kBAAMC,IAAapB;AACnB,mBAAOA,IAAgBb,EAAS,WAC1B,CAACQ,GAAaR,EAAS,WAAWa,CAAa,CAAC,KAC9Cb,EAAS,WAAWa,CAAa,MAC7B,MACJK,EAAUL,CAAa;AAC3B,cAAAA,KAAiB;AAErB,YAAAhX,IAAQyW,GAAYN,EAAS,MAAMiC,GAAYpB,CAAa,CAAC;AAAA,UACrF;AACoB,UAAAE,EAAgB,CAAC;AAEjB,gBAAMmB,IAAclC,EAAS,WAAWa,CAAa,IAAI;AAEzD,UAAIqB,MAAgB,OAChBJ,IAAa,IACbf,EAAgB,CAAC,KAEZmB,MAAgB,QACrBJ,IAAa,IACbf,EAAgB,CAAC;AAAA,QAEzC;AACgB,YAAIf,EAAS,WAAWa,CAAa,MACjC;AACA,gBAAM,IAAI,MAAM,qCAAqC;AAEzD,QAAAA,KAAiB;AACjB,cAAMsB,IAAoB;AAAA,UACtB,MAAM3C,EAAa;AAAA,UACnB,MAAAnQ;AAAA,UACA,QAAAmS;AAAA,UACA,OAAA3X;AAAA,UACA,WAAA+X;AAAA,UACA,YAAAE;AAAA,QACH;AACD,QAAAhB,EAAO,KAAKqB,CAAiB;AAC7B;AAAA,MAChB;AAAA,MACY,KAAK,IAAgB;AACjB,YAAInC,EAAS,WAAWa,IAAgB,CAAC,MAAM,IAAgB;AAC3D,UAAAC,EAAO,KAAK;AAAA,YACR,MAAMtB,EAAa;AAAA,YACnB,MAAMlG,EAAQ,CAAC,EAAE,YAAa;AAAA,YAC9B,MAAM0G,EAAS,WAAWa,CAAa,MACnC,KACEG,EAAwB,IACxB;AAAA,UAC9B,CAAqB;AACD;AAAA,QACpB;AACgB,cAAM3R,IAAOiK,EAAQ,CAAC,EAAE,YAAa;AACrC,YAAIrK,IAAO;AACX,YAAI+Q,EAAS,WAAWa,CAAa,MACjC;AACA,cAAIf,GAAc,IAAIzQ,CAAI,GAAG;AACzB,gBAAIkR,GAAQP,EAAS,WAAWa,IAAgB,CAAC,CAAC;AAC9C,oBAAM,IAAI,MAAM,mBAAmBxR,CAAI,mBAAmB;AAI9D,gBAFAJ,IAAO,CAAE,GACT4R,IAAgBD,GAAc3R,GAAM+Q,GAAUa,IAAgB,CAAC,GAC3Db,EAAS,WAAWa,CAAa,MACjC;AACA,oBAAM,IAAI,MAAM,mCAAmCxR,CAAI,KAAK2Q,CAAQ,GAAG;AAE3E,YAAAa,KAAiB;AAAA,UACzC,OACyB;AAED,gBADA5R,IAAO+R,EAA0B,GAC7Bf,GAAuB,IAAI5Q,CAAI,GAAG;AAClC,oBAAM+S,IAAOnT,EAAK,WAAW,CAAC;AAC9B,cAAImT,MAASnT,EAAK,WAAWA,EAAK,SAAS,CAAC,KACxCsR,GAAQ6B,CAAI,MACZnT,IAAOA,EAAK,MAAM,GAAG,EAAE;AAAA,YAEvD;AACwB,YAAAA,IAAOqR,GAAYrR,CAAI;AAAA,UAC/C;AAEgB,QAAA6R,EAAO,KAAK,EAAE,MAAMtB,EAAa,QAAQ,MAAAnQ,GAAM,MAAAJ,GAAM;AACrD;AAAA,MAChB;AAAA,MACY,KAAK,IAAgB;AACjB,QAAAwS,EAAqB,GACrBX,IAAS,CAAE,GACXC,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA,MACY,SAAS;AACL,YAAIf,EAAS,WAAW,MAAMa,CAAa,GAAG;AAC1C,gBAAMF,IAAWX,EAAS,QAAQ,MAAMa,IAAgB,CAAC;AACzD,cAAIF,IAAW;AACX,kBAAM,IAAI,MAAM,4BAA4B;AAEhD,UAAAE,IAAgBF,IAAW,GAEvBG,EAAO,WAAW,KAClBC,EAAgB,CAAC;AAErB;AAAA,QACpB;AACgB,YAAIa,IAAY,MACZvS;AACJ,YAAIsS,MAAc;AACd,UAAAd,KAAiB,GACjBxR,IAAO;AAAA,iBAEFsS,MAAc;AAEnB,cADAtS,IAAO,IACH2Q,EAAS,WAAWa,IAAgB,CAAC,MAAM,KAAgB;AAC3D,YAAAS,EAAa9B,EAAa,gBAAgB,GAC1CuB,EAAgB,CAAC;AACjB;AAAA,UACxB;AAAA,mBAEyBpB,GAAO,KAAKK,EAAS,MAAMa,CAAa,CAAC;AAC9C,UAAAxR,IAAOiK,EAAQ,CAAC;AAAA;AAGhB,gBAAMoI;AAEV,QAAI1B,EAAS,WAAWa,CAAa,MAAM,OACvCb,EAAS,WAAWa,IAAgB,CAAC,MAAM,QAC3Ce,IAAYvS,GACR2Q,EAAS,WAAWa,IAAgB,CAAC,MACrC,MACAxR,IAAO,KACPwR,KAAiB,KAGjBxR,IAAOiK,EAAQ,CAAC,IAGxBwH,EAAO,KAAKzR,MAAS,MACf,EAAE,MAAMmQ,EAAa,WAAW,WAAAoC,EAAS,IACzC,EAAE,MAAMpC,EAAa,KAAK,MAAAnQ,GAAM,WAAAuS,EAAS,CAAE;AAAA,MACjE;AAAA,IACA;AAAA,EACA;AACI,SAAAH,EAAqB,GACdZ;AACX;AClaA,MAAMwB,KAAiB,CAAC,MAAM,GAAG,GAC3BC,KAAiB,CAAC,GAAGD,IAAgB,KAAK,GAAG,GAC7CE,KAAgC,IAAI,IAAIF,GAAe,IAAI,CAACxQ,MAAMA,EAAE,WAAW,CAAC,CAAC,CAAC,GAClF2Q,KAA6B,IAAI,IAAIF,GAAe,IAAI,CAACzQ,MAAMA,EAAE,WAAW,CAAC,CAAC,CAAC,GAC/E4Q,KAAsB,IAAI,IAAI;AAAA,EAChC,GAAGH;AAAA,EACH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,EAAE,IAAI,CAACzQ,MAAMA,EAAE,WAAW,CAAC,CAAC,CAAC;AAMtB,SAAS2G,GAAUwH,GAAU;AAChC,SAAOA,EACF,IAAI,CAAC0C,MAAUA,EAAM,IAAIC,EAAc,EAAE,KAAK,EAAE,CAAC,EACjD,KAAK,IAAI;AAClB;AACA,SAASA,GAAeD,GAAO5Y,GAAO2L,GAAK;AACvC,UAAQiN,EAAM,MAAI;AAAA;AAAA,IAEd,KAAKlD,EAAa;AACd,aAAO1V,MAAU,IAAI,OAAO;AAAA,IAChC,KAAK0V,EAAa;AACd,aAAO1V,MAAU,IAAI,OAAO;AAAA,IAChC,KAAK0V,EAAa;AACd,aAAO1V,MAAU,IAAI,OAAO;AAAA,IAChC,KAAK0V,EAAa;AACd,aAAO1V,MAAU,IAAI,OAAO;AAAA,IAChC,KAAK0V,EAAa;AACd,aAAO;AAAA,IACX,KAAKA,EAAa;AACd,aAAO1V,MAAU,IAAI,QAAQ;AAAA,IACjC,KAAK0V,EAAa;AAEd,aAAOkD,EAAM,cAAc,OACvB5Y,IAAQ,IAAI2L,EAAI,UAChB,UAAUA,EAAI3L,IAAQ,CAAC,IACrB,KACA,GAAG8Y,GAAaF,EAAM,SAAS,CAAC;AAAA,IAC1C,KAAKlD,EAAa;AACd,aAAOqD,GAAkBH,CAAK;AAAA,IAClC,KAAKlD,EAAa;AACd,aAAO,KAAKsD,GAAWJ,EAAM,MAAMD,EAAmB,CAAC,GAAGC,EAAM,SAAS,OACnE,KACA,IAAII,GAAWJ,EAAM,MAAMF,EAA0B,CAAC,GAAG;AAAA,IACnE,KAAKhD,EAAa;AACd,aAAO,IAAIsD,GAAWJ,EAAM,MAAMD,EAAmB,CAAC,GAAGC,EAAM,SAAS,OAClE,KACA,IAAI,OAAOA,EAAM,QAAS,WACtBI,GAAWJ,EAAM,MAAMF,EAA0B,IACjDhK,GAAUkK,EAAM,IAAI,CAAC,GAAG;AAAA,IACtC,KAAKlD,EAAa,WAAW;AACzB,UAAIkD,EAAM,SAAS,QACfA,EAAM,WAAWhD,EAAgB,UACjCgD,EAAM,eAAe,YACrB,CAACA,EAAM;AACP,eAAO,IAAII,GAAWJ,EAAM,OAAOD,EAAmB,CAAC;AAE3D,UAAIC,EAAM,SAAS,WACfA,EAAM,WAAWhD,EAAgB,WACjCgD,EAAM,eAAe,YACrB,CAACA,EAAM;AACP,eAAO,IAAII,GAAWJ,EAAM,OAAOD,EAAmB,CAAC;AAE3D,YAAMpT,IAAOwT,GAAkBH,CAAK;AACpC,aAAIA,EAAM,WAAWhD,EAAgB,SAC1B,IAAIrQ,CAAI,MAEZ,IAAIA,CAAI,GAAG0T,GAAeL,EAAM,MAAM,CAAC,KAAKI,GAAWJ,EAAM,OAAOH,EAA6B,CAAC,IAAIG,EAAM,eAAe,OAAO,KAAKA,EAAM,aAAa,OAAO,IAAI;AAAA,IACxL;AAAA,EACA;AACA;AACA,SAASK,GAAevB,GAAQ;AAC5B,UAAQA,GAAM;AAAA,IACV,KAAK9B,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,YAAM,IAAI,MAAM,mBAAmB;AAAA,EAC/C;AACA;AACA,SAASmD,GAAkBH,GAAO;AAC9B,SAAO,GAAGE,GAAaF,EAAM,SAAS,CAAC,GAAGI,GAAWJ,EAAM,MAAMD,EAAmB,CAAC;AACzF;AACA,SAASG,GAAahB,GAAW;AAC7B,SAAOA,MAAc,OACf,GAAGA,MAAc,MACb,MACAkB,GAAWlB,GAAWa,EAAmB,CAAC,MAC9C;AACV;AACA,SAASK,GAAWvP,GAAKyP,GAAe;AACpC,MAAIpN,IAAU,GACVvB,IAAM;AACV,WAAS5F,IAAI,GAAGA,IAAI8E,EAAI,QAAQ9E;AAC5B,IAAIuU,EAAc,IAAIzP,EAAI,WAAW9E,CAAC,CAAC,MACnC4F,KAAO,GAAGd,EAAI,MAAMqC,GAASnH,CAAC,CAAC,KAAK8E,EAAI,OAAO9E,CAAC,CAAC,IACjDmH,IAAUnH,IAAI;AAGtB,SAAO4F,EAAI,SAAS,IAAIA,IAAMd,EAAI,MAAMqC,CAAO,IAAIrC;AACvD;;;;;;;;;;;;;;;;;UC5HA,OAAO,eAAe0P,IAAS,cAAc,EAAE,OAAO,IAAM,GACzCA,GAAA,cAAG;AACtB,MAAIC,IAAaxW,IACbyW,IAAY,oBAAI,IAAI;AAAA,IACpB,CAACD,EAAW,aAAa,WAAW,EAAE;AAAA,IACtC,CAACA,EAAW,aAAa,KAAK,EAAE;AAAA,IAChC,CAACA,EAAW,aAAa,WAAW,CAAC;AAAA,IACrC,CAACA,EAAW,aAAa,QAAQ,CAAC;AAAA,EACtC,CAAC;AACD,WAASnD,EAAY2C,GAAO;AACxB,WAAO,CAACS,EAAU,IAAIT,EAAM,IAAI;AAAA,EACpC;AACA,EAAAO,GAAA,cAAsBlD;AACtB,MAAIpI,IAAa,oBAAI,IAAI;AAAA,IACrB,CAACuL,EAAW,gBAAgB,QAAQ,EAAE;AAAA,IACtC,CAACA,EAAW,gBAAgB,QAAQ,CAAC;AAAA,IACrC,CAACA,EAAW,gBAAgB,KAAK,CAAC;AAAA,IAClC,CAACA,EAAW,gBAAgB,OAAO,CAAC;AAAA,IACpC,CAACA,EAAW,gBAAgB,KAAK,CAAC;AAAA,IAClC,CAACA,EAAW,gBAAgB,KAAK,CAAC;AAAA,EACtC,CAAC;AAQD,WAASE,EAAgB3N,GAAK;AAE1B,aADI4N,IAAQ5N,EAAI,IAAI6N,CAAY,GACvB7U,IAAI,GAAGA,IAAIgH,EAAI,QAAQhH,KAAK;AACjC,UAAI8U,IAAUF,EAAM5U,CAAC;AACrB,UAAI,EAAA8U,IAAU;AAEd,iBAASC,IAAI/U,IAAI,GAAG+U,KAAK,KAAKD,IAAUF,EAAMG,CAAC,GAAGA,KAAK;AACnD,cAAId,IAAQjN,EAAI+N,IAAI,CAAC;AACrB,UAAA/N,EAAI+N,IAAI,CAAC,IAAI/N,EAAI+N,CAAC,GAClB/N,EAAI+N,CAAC,IAAId,GACTW,EAAMG,IAAI,CAAC,IAAIH,EAAMG,CAAC,GACtBH,EAAMG,CAAC,IAAID;AAAA,QACvB;AAAA,IACA;AAAA,EACA;AACA,EAAAN,GAAA,UAAkBG;AAClB,WAASE,EAAaZ,GAAO;AACzB,QAAInT,GAAIK,GACJ6T,KAAQlU,IAAK4T,EAAU,IAAIT,EAAM,IAAI,OAAO,QAAQnT,MAAO,SAASA,IAAK;AAC7E,WAAImT,EAAM,SAASQ,EAAW,aAAa,aACvCO,KAAQ7T,IAAK+H,EAAW,IAAI+K,EAAM,MAAM,OAAO,QAAQ9S,MAAO,SAASA,IAAK,GACxE8S,EAAM,WAAWQ,EAAW,gBAAgB,UAAUR,EAAM,SAAS,SAErEe,IAAO,IAEPf,EAAM,eAKNe,MAAS,MAGRf,EAAM,SAASQ,EAAW,aAAa,WACvCR,EAAM,OAGFA,EAAM,SAAS,SAASA,EAAM,SAAS,aAC5Ce,IAAO,IAEF,MAAM,QAAQf,EAAM,IAAI,KAE7Be,IAAO,KAAK,IAAI,MAAM,MAAMf,EAAM,KAAK,IAAI,SAAUpV,GAAG;AAAE,aAAO,KAAK,IAAI,MAAM,MAAMA,EAAE,IAAIgW,CAAY,CAAC;AAAA,IAAE,CAAE,CAAC,GAE1GG,IAAO,MACPA,IAAO,MAIXA,IAAO,IAdPA,IAAO,IAiBRA;AAAA,EACX;;;;;;;ACjFA,MAAI/V,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAegK,IAAS,cAAc,EAAE,OAAO,IAAM,GACtCA,GAAA,iBAAG;AACzB,MAAI+L,IAAahW,EAAgBhB,IAAmB,GAOhDiX,IAAU;AACd,WAASC,EAAY/Z,GAAO;AACxB,WAAOA,EAAM,QAAQ8Z,GAAS,MAAM;AAAA,EACxC;AAOA,MAAIE,IAA4B,oBAAI,IAAI;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,WAASC,EAAiB9D,GAAU/V,GAAS;AACzC,WAAO,OAAO+V,EAAS,cAAe,YAChCA,EAAS,aACTA,EAAS,eAAe,WACpB,CAAC,CAAC/V,EAAQ,aACV,CAACA,EAAQ,WAAW4Z,EAA0B,IAAI7D,EAAS,IAAI;AAAA,EAC7E;AAIA,SAAArI,GAAA,iBAAyB;AAAA,IACrB,QAAQ,SAAUtL,GAAM4C,GAAMhF,GAAS;AACnC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK;AACjB,aAAI6U,EAAiB7U,GAAMhF,CAAO,KAC9BJ,IAAQA,EAAM,YAAa,GACpB,SAAUwE,GAAM;AACnB,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,QACZA,EAAK,WAAWna,EAAM,UACtBma,EAAK,YAAW,MAAOna,KACvBwC,EAAKgC,CAAI;AAAA,MAChB,KAEE,SAAUA,GAAM;AACnB,eAAO0V,EAAQ,kBAAkB1V,GAAMgB,CAAI,MAAMxF,KAASwC,EAAKgC,CAAI;AAAA,MACtE;AAAA,IACJ;AAAA,IACD,QAAQ,SAAUhC,GAAM4C,GAAMhF,GAAS;AACnC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK,OACbuF,IAAM3K,EAAM;AAChB,aAAIia,EAAiB7U,GAAMhF,CAAO,KAC9BJ,IAAQA,EAAM,YAAa,GACpB,SAAkBwE,GAAM;AAC3B,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,SACXA,EAAK,WAAWxP,KAAOwP,EAAK,OAAOxP,CAAG,MAAM,QAC7CwP,EAAK,OAAO,GAAGxP,CAAG,EAAE,YAAa,MAAK3K,KACtCwC,EAAKgC,CAAI;AAAA,MAChB,KAEE,SAAgBA,GAAM;AACzB,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,SACXA,EAAK,WAAWxP,KAAOwP,EAAK,OAAOxP,CAAG,MAAM,QAC7CwP,EAAK,OAAO,GAAGxP,CAAG,MAAM3K,KACxBwC,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,SAAS,SAAUhC,GAAM4C,GAAMhF,GAAS;AACpC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MAAMpF,IAAQoF,EAAK;AACnC,UAAI,KAAK,KAAKpF,CAAK;AACf,eAAO6Z,EAAW,QAAQ;AAE9B,UAAI3N,IAAQ,IAAI,OAAO,YAAY,OAAO6N,EAAY/Z,CAAK,GAAG,WAAW,GAAGia,EAAiB7U,GAAMhF,CAAO,IAAI,MAAM,EAAE;AACtH,aAAO,SAAiBoE,GAAM;AAC1B,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,QACZA,EAAK,UAAUna,EAAM,UACrBkM,EAAM,KAAKiO,CAAI,KACf3X,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,QAAQ,SAAUhC,GAAMkD,GAAIK,GAAI;AAC5B,UAAIP,IAAOE,EAAG,MACVwU,IAAUnU,EAAG;AACjB,aAAO,SAAUvB,GAAM;AAAE,eAAO0V,EAAQ,UAAU1V,GAAMgB,CAAI,KAAKhD,EAAKgC,CAAI;AAAA,MAAI;AAAA,IACjF;AAAA,IACD,OAAO,SAAUhC,GAAM4C,GAAMhF,GAAS;AAClC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK,OACbuF,IAAM3K,EAAM;AAChB,aAAI2K,MAAQ,IACDkP,EAAW,QAAQ,YAE1BI,EAAiB7U,GAAMhF,CAAO,KAC9BJ,IAAQA,EAAM,YAAa,GACpB,SAAUwE,GAAM;AACnB,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,QACZA,EAAK,UAAUxP,KACfwP,EAAK,OAAO,GAAGxP,CAAG,EAAE,YAAa,MAAK3K,KACtCwC,EAAKgC,CAAI;AAAA,MAChB,KAEE,SAAUA,GAAM;AACnB,YAAIkB;AACJ,eAAO,CAAC,EAAG,GAAAA,IAAKwU,EAAQ,kBAAkB1V,GAAMgB,CAAI,OAAO,QAAQE,MAAO,WAAkBA,EAAG,WAAW1F,CAAK,MAC3GwC,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,KAAK,SAAUhC,GAAM4C,GAAMhF,GAAS;AAChC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK,OACbuF,IAAM,CAAC3K,EAAM;AACjB,aAAI2K,MAAQ,IACDkP,EAAW,QAAQ,YAE1BI,EAAiB7U,GAAMhF,CAAO,KAC9BJ,IAAQA,EAAM,YAAa,GACpB,SAAUwE,GAAM;AACnB,YAAIkB;AACJ,iBAASA,IAAKwU,EACT,kBAAkB1V,GAAMgB,CAAI,OAAO,QAAQE,MAAO,SAAS,SAASA,EAAG,OAAOiF,CAAG,EAAE,YAAa,OAAM3K,KAASwC,EAAKgC,CAAI;AAAA,MAChI,KAEE,SAAUA,GAAM;AACnB,YAAIkB;AACJ,eAAO,CAAC,EAAG,GAAAA,IAAKwU,EAAQ,kBAAkB1V,GAAMgB,CAAI,OAAO,QAAQE,MAAO,WAAkBA,EAAG,SAAS1F,CAAK,MACzGwC,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,KAAK,SAAUhC,GAAM4C,GAAMhF,GAAS;AAChC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MAAMpF,IAAQoF,EAAK;AACnC,UAAIpF,MAAU;AACV,eAAO6Z,EAAW,QAAQ;AAE9B,UAAII,EAAiB7U,GAAMhF,CAAO,GAAG;AACjC,YAAIga,IAAU,IAAI,OAAOL,EAAY/Z,CAAK,GAAG,GAAG;AAChD,eAAO,SAAewE,GAAM;AACxB,cAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,iBAAQ2U,KAAQ,QACZA,EAAK,UAAUna,EAAM,UACrBoa,EAAQ,KAAKD,CAAI,KACjB3X,EAAKgC,CAAI;AAAA,QAChB;AAAA,MACb;AACQ,aAAO,SAAUA,GAAM;AACnB,YAAIkB;AACJ,eAAO,CAAC,EAAG,GAAAA,IAAKwU,EAAQ,kBAAkB1V,GAAMgB,CAAI,OAAO,QAAQE,MAAO,WAAkBA,EAAG,SAAS1F,CAAK,MACzGwC,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,KAAK,SAAUhC,GAAM4C,GAAMhF,GAAS;AAChC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK;AACjB,aAAIpF,MAAU,KACH,SAAUwE,GAAM;AACnB,eAAO,CAAC,CAAC0V,EAAQ,kBAAkB1V,GAAMgB,CAAI,KAAKhD,EAAKgC,CAAI;AAAA,MAC9D,IAEIyV,EAAiB7U,GAAMhF,CAAO,KACnCJ,IAAQA,EAAM,YAAa,GACpB,SAAUwE,GAAM;AACnB,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,gBAAS2U,KAAQ,QACbA,EAAK,WAAWna,EAAM,UACtBma,EAAK,YAAW,MAAOna,MACvBwC,EAAKgC,CAAI;AAAA,MAChB,KAEE,SAAUA,GAAM;AACnB,eAAO0V,EAAQ,kBAAkB1V,GAAMgB,CAAI,MAAMxF,KAASwC,EAAKgC,CAAI;AAAA,MACtE;AAAA,IACJ;AAAA,EACJ;;;;;UCxOD,OAAO,eAAe6V,IAAS,cAAc,EAAE,OAAO,IAAM,GAC/CA,GAAA,QAAG;AAEhB,MAAIC,IAAa,oBAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,GACxCC,IAAO,IACPC,IAAO;AAQX,WAAS5D,EAAM6D,GAAS;AAEpB,QADAA,IAAUA,EAAQ,KAAM,EAAC,YAAa,GAClCA,MAAY;AACZ,aAAO,CAAC,GAAG,CAAC;AAEX,QAAIA,MAAY;AACjB,aAAO,CAAC,GAAG,CAAC;AAGhB,QAAI7H,IAAM,GACN,IAAI,GACJ8H,IAAOC,EAAU,GACjBC,IAASC,EAAY;AAezB,QAdIjI,IAAM6H,EAAQ,UAAUA,EAAQ,OAAO7H,CAAG,MAAM,QAChDA,KACA,IAAI8H,KAAQE,KAAgD,IAC5DE,EAAgB,GACZlI,IAAM6H,EAAQ,UACdC,IAAOC,EAAU,GACjBG,EAAgB,GAChBF,IAASC,EAAY,KAGrBH,IAAOE,IAAS,IAIpBA,MAAW,QAAQhI,IAAM6H,EAAQ;AACjC,YAAM,IAAI,MAAM,kCAAkC,OAAOA,GAAS,IAAI,CAAC;AAE3E,WAAO,CAAC,GAAGC,IAAOE,CAAM;AACxB,aAASD,IAAW;AAChB,aAAIF,EAAQ,OAAO7H,CAAG,MAAM,OACxBA,KACO,OAEP6H,EAAQ,OAAO7H,CAAG,MAAM,OACxBA,KAEG;AAAA,IACf;AACI,aAASiI,IAAa;AAGlB,eAFIjR,IAAQgJ,GACR5S,IAAQ,GACL4S,IAAM6H,EAAQ,UACjBA,EAAQ,WAAW7H,CAAG,KAAK2H,KAC3BE,EAAQ,WAAW7H,CAAG,KAAK4H;AAC3B,QAAAxa,IAAQA,IAAQ,MAAMya,EAAQ,WAAW7H,CAAG,IAAI2H,IAChD3H;AAGJ,aAAOA,MAAQhJ,IAAQ,OAAO5J;AAAA,IACtC;AACI,aAAS8a,IAAiB;AACtB,aAAOlI,IAAM6H,EAAQ,UACjBH,EAAW,IAAIG,EAAQ,WAAW7H,CAAG,CAAC;AACtC,QAAAA;AAAA,IAEZ;AAAA,EACA;AACAyH,SAAAA,GAAA,QAAgBzD;;;;;;AC1EhB,MAAI/S,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAeiX,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,WAAmBA,GAAA,UAAkB;AACrC,MAAIlB,IAAahW,EAAgBhB,IAAmB;AAqBpD,WAASmY,EAAQC,GAAQ;AACrB,QAAI/I,IAAI+I,EAAO,CAAC,GAEZvX,IAAIuX,EAAO,CAAC,IAAI;AAQpB,QAAIvX,IAAI,KAAKwO,KAAK;AACd,aAAO2H,EAAW,QAAQ;AAE9B,QAAI3H,MAAM;AACN,aAAO,SAAUjS,GAAO;AAAE,eAAOA,KAASyD;AAAA,MAAI;AAClD,QAAIwO,MAAM;AACN,aAAO,SAAUjS,GAAO;AAAE,eAAOA,MAAUyD;AAAA,MAAI;AAEnD,QAAIwO,MAAM;AACN,aAAOxO,IAAI,IAAImW,EAAW,QAAQ,WAAW,SAAU5Z,GAAO;AAAE,eAAOA,KAASyD;AAAA,MAAI;AAMxF,QAAIwX,IAAO,KAAK,IAAIhJ,CAAC,GAEjBiJ,KAASzX,IAAIwX,IAAQA,KAAQA;AACjC,WAAOhJ,IAAI,IACL,SAAUjS,GAAO;AAAE,aAAOA,KAASyD,KAAKzD,IAAQib,MAASC;AAAA,IAAK,IAC9D,SAAUlb,GAAO;AAAE,aAAOA,KAASyD,KAAKzD,IAAQib,MAASC;AAAA,IAAO;AAAA,EAC1E;AACAJ,EAAAA,GAAA,UAAkBC;AAiClB,WAASI,EAASH,GAAQ;AACtB,QAAI/I,IAAI+I,EAAO,CAAC,GAEZvX,IAAIuX,EAAO,CAAC,IAAI,GAChBpW,IAAI;AAER,QAAIqN,IAAI,GAAG;AACP,UAAImJ,IAAS,CAACnJ,GAEVoJ,KAAe5X,IAAI2X,IAAUA,KAAUA;AAC3C,aAAO,WAAY;AACf,YAAIjY,IAAMkY,IAAaD,IAASxW;AAChC,eAAOzB,IAAMM,IAAI,OAAON;AAAA,MAC3B;AAAA,IACT;AACI,WAAI8O,MAAM,IACCxO,IAAI;AAAA;AAAA,MAEH,WAAY;AAAE,eAAO;AAAA,MAAK;AAAA;AAAA;AAAA,MAE1B,WAAY;AAAE,eAAQmB,QAAQ,IAAInB,IAAI;AAAA,MAAQ;AAAA,SACtDA,IAAI,MACJA,KAAKwO,IAAI,KAAK,KAAK,CAACxO,IAAIwO,CAAC,IAEtB,WAAY;AAAE,aAAOA,IAAIrN,MAAMnB;AAAA,IAAI;AAAA,EAC9C;AACAqX,SAAAA,GAAA,WAAmBK;;;;;ACtHnB,WAAO,eAAcle,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,WAAmBA,EAAmB,WAAAA,EAAA,UAAkBA,EAAgB,QAAA;AACxE,QAAIqe,IAAkC1Y,gBAAAA,GAAA;AACtC,WAAO,eAAe3F,GAAS,SAAS,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOqe,EAAW;AAAA,IAAQ,EAAA,CAAE;AAC3G,QAAIC,IAAsCpU,gBAAAA,GAAA;AAC1C,WAAO,eAAelK,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOse,EAAa;AAAA,IAAU,EAAA,CAAE,GACjH,OAAO,eAAete,GAAS,YAAY,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOse,EAAa;AAAA,IAAW,EAAA,CAAE;AAwBnH,aAASC,EAAShB,GAAS;AACvB,iBAAWe,EAAa,aAAaD,EAAW,OAAOd,CAAO,CAAC;AAAA,IACnE;AACA,IAAAvd,EAAA,UAAkBue;AA+BlB,aAASC,EAASjB,GAAS;AACvB,iBAAWe,EAAa,cAAcD,EAAW,OAAOd,CAAO,CAAC;AAAA,IACpE;AACA,IAAAvd,EAAA,WAAmBwe;AAAA;;;;;ACnEnB,QAAI7X,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,aAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,IAC5D;AACD,WAAO,eAAc5G,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,UAAkB;AAClB,QAAIye,IAAc9X,sBAAoC,GAClDgW,IAAahW,EAAgBuD,IAAmB;AACpD,aAASwU,EAAapZ,GAAM0X,GAAS;AACjC,aAAO,SAAU1V,GAAM;AACnB,YAAIO,IAASmV,EAAQ,UAAU1V,CAAI;AACnC,eAAOO,KAAU,QAAQmV,EAAQ,MAAMnV,CAAM,KAAKvC,EAAKgC,CAAI;AAAA,MAC9D;AAAA,IACL;AACA,IAAAtH,EAAkB,UAAA;AAAA,MACd,UAAU,SAAUsF,GAAMqF,GAAMnC,GAAI;AAChC,YAAIwU,IAAUxU,EAAG;AACjB,eAAO,SAAkBlB,GAAM;AAC3B,iBAAOhC,EAAKgC,CAAI,KAAK0V,EAAQ,QAAQ1V,CAAI,EAAE,SAASqD,CAAI;AAAA,QAC3D;AAAA,MACJ;AAAA,MACD,WAAW,SAAUrF,GAAMqF,GAAMnC,GAAI;AACjC,YAAIwU,IAAUxU,EAAG,SACbmW,IAAQhU,EAAK,YAAa;AAC9B,eAAO,SAAmBrD,GAAM;AAC5B,iBAAQhC,EAAKgC,CAAI,KACb0V,EAAQ,QAAQ1V,CAAI,EAAE,YAAa,EAAC,SAASqX,CAAK;AAAA,QACzD;AAAA,MACJ;AAAA;AAAA,MAED,aAAa,SAAUrZ,GAAMsZ,GAAMpW,GAAI;AACnC,YAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCsW,QAAWL,EAAY,SAASG,CAAI;AACxC,eAAIE,MAASnC,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YAC1BmC,MAASnC,EAAW,QAAQ,WACrB+B,EAAapZ,GAAM0X,CAAO,IAC9B,SAAkB1V,GAAM;AAG3B,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC8S,IAAM,GACD1S,IAAI,GAAGA,IAAIgL,EAAS,UACrB,CAAAmM,EAAOvX,GAAMoL,EAAShL,CAAC,CAAC,GADKA;AAGjC,YAAIsV,EAAQ,MAAMtK,EAAShL,CAAC,CAAC,KACzB0S;AAGR,iBAAO0E,EAAK1E,CAAG,KAAK9U,EAAKgC,CAAI;AAAA,QAChC;AAAA,MACJ;AAAA,MACD,kBAAkB,SAAUhC,GAAMsZ,GAAMpW,GAAI;AACxC,YAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCsW,QAAWL,EAAY,SAASG,CAAI;AACxC,eAAIE,MAASnC,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YAC1BmC,MAASnC,EAAW,QAAQ,WACrB+B,EAAapZ,GAAM0X,CAAO,IAC9B,SAAsB1V,GAAM;AAG/B,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC8S,IAAM,GACD1S,IAAIgL,EAAS,SAAS,GAAGhL,KAAK,KAC/B,CAAAmX,EAAOvX,GAAMoL,EAAShL,CAAC,CAAC,GADUA;AAGtC,YAAIsV,EAAQ,MAAMtK,EAAShL,CAAC,CAAC,KACzB0S;AAGR,iBAAO0E,EAAK1E,CAAG,KAAK9U,EAAKgC,CAAI;AAAA,QAChC;AAAA,MACJ;AAAA,MACD,eAAe,SAAUhC,GAAMsZ,GAAMpW,GAAI;AACrC,YAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCsW,QAAWL,EAAY,SAASG,CAAI;AACxC,eAAIE,MAASnC,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YAC1BmC,MAASnC,EAAW,QAAQ,WACrB+B,EAAapZ,GAAM0X,CAAO,IAC9B,SAAmB1V,GAAM;AAG5B,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC8S,IAAM,GACD1S,IAAI,GAAGA,IAAIgL,EAAS,QAAQhL,KAAK;AACtC,gBAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,gBAAImX,EAAOvX,GAAMyX,CAAc;AAC3B;AACJ,YAAI/B,EAAQ,MAAM+B,CAAc,KAC5B/B,EAAQ,QAAQ+B,CAAc,MAAM/B,EAAQ,QAAQ1V,CAAI,KACxD8S;AAAA,UAEpB;AACY,iBAAO0E,EAAK1E,CAAG,KAAK9U,EAAKgC,CAAI;AAAA,QAChC;AAAA,MACJ;AAAA,MACD,oBAAoB,SAAUhC,GAAMsZ,GAAMpW,GAAI;AAC1C,YAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCsW,QAAWL,EAAY,SAASG,CAAI;AACxC,eAAIE,MAASnC,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YAC1BmC,MAASnC,EAAW,QAAQ,WACrB+B,EAAapZ,GAAM0X,CAAO,IAC9B,SAAuB1V,GAAM;AAGhC,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC8S,IAAM,GACD1S,IAAIgL,EAAS,SAAS,GAAGhL,KAAK,GAAGA,KAAK;AAC3C,gBAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,gBAAImX,EAAOvX,GAAMyX,CAAc;AAC3B;AACJ,YAAI/B,EAAQ,MAAM+B,CAAc,KAC5B/B,EAAQ,QAAQ+B,CAAc,MAAM/B,EAAQ,QAAQ1V,CAAI,KACxD8S;AAAA,UAEpB;AACY,iBAAO0E,EAAK1E,CAAG,KAAK9U,EAAKgC,CAAI;AAAA,QAChC;AAAA,MACJ;AAAA;AAAA,MAED,MAAM,SAAUhC,GAAM0Z,GAAOxW,GAAI;AAC7B,YAAIwU,IAAUxU,EAAG;AACjB,eAAO,SAAUlB,GAAM;AACnB,cAAIO,IAASmV,EAAQ,UAAU1V,CAAI;AACnC,kBAAQO,KAAU,QAAQ,CAACmV,EAAQ,MAAMnV,CAAM,MAAMvC,EAAKgC,CAAI;AAAA,QACjE;AAAA,MACJ;AAAA,MACD,OAAO,SAAUhC,GAAMsZ,GAAM1b,GAAS+b,GAAS;AAC3C,YAAIJ,IAAS3b,EAAQ;AACrB,eAAI,CAAC+b,KAAWA,EAAQ,WAAW,IAExBjf,EAAQ,QAAQ,KAAQsF,GAAMsZ,GAAM1b,CAAO,IAElD+b,EAAQ,WAAW,IAEZ,SAAU3X,GAAM;AAAE,iBAAOuX,EAAOI,EAAQ,CAAC,GAAG3X,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,QAAI,IAEtE,SAAUA,GAAM;AAAE,iBAAO2X,EAAQ,SAAS3X,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,QAAI;AAAA,MAC1E;AAAA,MACD,OAAO4X,EAAmB,WAAW;AAAA,MACrC,SAASA,EAAmB,WAAW;AAAA,MACvC,QAAQA,EAAmB,UAAU;AAAA,IACxC;AAOD,aAASA,EAAmB5W,GAAM;AAC9B,aAAO,SAAuBhD,GAAM0Z,GAAOxW,GAAI;AAC3C,YAAIwU,IAAUxU,EAAG,SACbsW,IAAO9B,EAAQ1U,CAAI;AACvB,eAAI,OAAOwW,KAAS,aACTnC,EAAW,QAAQ,YAEvB,SAAgBrV,GAAM;AACzB,iBAAOwX,EAAKxX,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,QACjC;AAAA,MACJ;AAAA,IACL;AAAA;;;;;UC1JA,OAAO,eAAe6X,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,mBAA2BA,GAAA,UAAkB,QAE7CA,GAAA,UAAkB;AAAA,IACd,OAAO,SAAU7X,GAAMkB,GAAI;AACvB,UAAIwU,IAAUxU,EAAG;AACjB,aAAO,CAACwU,EAAQ,YAAY1V,CAAI,EAAE,KAAK,SAAUA,GAAM;AAEnD,eAAO0V,EAAQ,MAAM1V,CAAI,KAAK0V,EAAQ,QAAQ1V,CAAI,MAAM;AAAA,MACpE,CAAS;AAAA,IACJ;AAAA,IACD,eAAe,SAAUA,GAAMkB,GAAI;AAC/B,UAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG;AACtC,UAAIwU,EAAQ;AACR,eAAOA,EAAQ,mBAAmB1V,CAAI,KAAK;AAE/C,UAAI8X,IAAapC,EACZ,YAAY1V,CAAI,EAChB,KAAK,SAAUA,GAAM;AAAE,eAAO0V,EAAQ,MAAM1V,CAAI;AAAA,OAAI;AACzD,aAAO8X,KAAc,QAAQP,EAAOvX,GAAM8X,CAAU;AAAA,IACvD;AAAA,IACD,cAAc,SAAU9X,GAAMkB,GAAI;AAG9B,eAFIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCkK,IAAWsK,EAAQ,YAAY1V,CAAI,GAC9BI,IAAIgL,EAAS,SAAS,GAAGhL,KAAK,GAAGA,KAAK;AAC3C,YAAImX,EAAOvX,GAAMoL,EAAShL,CAAC,CAAC;AACxB,iBAAO;AACX,YAAIsV,EAAQ,MAAMtK,EAAShL,CAAC,CAAC;AACzB;AAAA,MAChB;AACQ,aAAO;AAAA,IACV;AAAA,IACD,iBAAiB,SAAUJ,GAAMkB,GAAI;AAIjC,eAHIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCkK,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC+X,IAAWrC,EAAQ,QAAQ1V,CAAI,GAC1BI,IAAI,GAAGA,IAAIgL,EAAS,QAAQhL,KAAK;AACtC,YAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,YAAImX,EAAOvX,GAAMyX,CAAc;AAC3B,iBAAO;AACX,YAAI/B,EAAQ,MAAM+B,CAAc,KAC5B/B,EAAQ,QAAQ+B,CAAc,MAAMM;AACpC;AAAA,MAEhB;AACQ,aAAO;AAAA,IACV;AAAA,IACD,gBAAgB,SAAU/X,GAAMkB,GAAI;AAIhC,eAHIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCkK,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC+X,IAAWrC,EAAQ,QAAQ1V,CAAI,GAC1BI,IAAIgL,EAAS,SAAS,GAAGhL,KAAK,GAAGA,KAAK;AAC3C,YAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,YAAImX,EAAOvX,GAAMyX,CAAc;AAC3B,iBAAO;AACX,YAAI/B,EAAQ,MAAM+B,CAAc,KAC5B/B,EAAQ,QAAQ+B,CAAc,MAAMM;AACpC;AAAA,MAEhB;AACQ,aAAO;AAAA,IACV;AAAA,IACD,gBAAgB,SAAU/X,GAAMkB,GAAI;AAChC,UAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClC6W,IAAWrC,EAAQ,QAAQ1V,CAAI;AACnC,aAAO0V,EACF,YAAY1V,CAAI,EAChB,MAAM,SAAU8L,GAAS;AAC1B,eAAOyL,EAAOvX,GAAM8L,CAAO,KACvB,CAAC4J,EAAQ,MAAM5J,CAAO,KACtB4J,EAAQ,QAAQ5J,CAAO,MAAMiM;AAAA,MAC7C,CAAS;AAAA,IACJ;AAAA,IACD,cAAc,SAAU/X,GAAMkB,GAAI;AAC9B,UAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG;AACtC,aAAOwU,EACF,YAAY1V,CAAI,EAChB,MAAM,SAAU8L,GAAS;AAAE,eAAOyL,EAAOvX,GAAM8L,CAAO,KAAK,CAAC4J,EAAQ,MAAM5J,CAAO;AAAA,MAAE,CAAE;AAAA,IAC7F;AAAA,EACJ;AACD,WAASkM,EAAiBR,GAAMxW,GAAMiX,GAAWC,GAAU;AACvD,QAAID,MAAc;AACd,UAAIT,EAAK,SAASU;AACd,cAAM,IAAI,MAAM,iBAAiB,OAAOlX,GAAM,uBAAuB,CAAC;AAAA,eAGrEwW,EAAK,WAAWU;AACrB,YAAM,IAAI,MAAM,iBAAiB,OAAOlX,GAAM,6BAA6B,CAAC;AAAA,EAEpF;AACA,SAAA6W,GAAA,mBAA2BG;;;;wBC1F3B,OAAO,eAAeG,IAAS,cAAc,EAAE,OAAO,IAAM,GAC7CA,GAAA,UAAG,QAIlBA,GAAA,UAAkB;AAAA;AAAA,IAEd,YAAY;AAAA,IACZ,MAAM;AAAA;AAAA;AAAA,IAGN,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA;AAAA;AAAA,IAGV,UAAU;AAAA,IACV,UAAU;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,EACT;;;;;AC/BD,QAAIC,IAAiBja,MAAQA,GAAK,iBAAkB,SAAUka,GAAIC,GAAMC,GAAM;AAC1E,UAAIA,KAAQ,UAAU,WAAW,EAAG,UAASnY,IAAI,GAAGoY,IAAIF,EAAK,QAAQG,GAAIrY,IAAIoY,GAAGpY;AAC5E,SAAIqY,KAAM,EAAErY,KAAKkY,QACRG,MAAIA,IAAK,MAAM,UAAU,MAAM,KAAKH,GAAM,GAAGlY,CAAC,IACnDqY,EAAGrY,CAAC,IAAIkY,EAAKlY,CAAC;AAGtB,aAAOiY,EAAG,OAAOI,KAAM,MAAM,UAAU,MAAM,KAAKH,CAAI,CAAC;AAAA,IAC1D,GACGjZ,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,aAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,IAC5D;AACD,WAAO,eAAc5G,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,aAAqBA,EAA0B,kBAAAA,EAAA,cAAsBA,EAA8B,sBAAA;AACnG,QAAI2c,IAAahW,EAAgBhB,IAAmB,GAChDqa,IAAY9V,GAAqB;AAErC,IAAAlK,EAAA,sBAA8B,CAAE;AAChC,aAASigB,EAAY3a,GAAM0X,GAAS;AAChC,aAAI1X,MAASqX,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YACvB,SAAUrV,GAAM;AAAE,eAAO0V,EAAQ,MAAM1V,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,MAAI;AAAA,IACxE;AACA,IAAAtH,EAAA,cAAsBigB;AACtB,aAASC,EAAgB5Y,GAAM0V,GAAS;AACpC,UAAItK,IAAWsK,EAAQ,YAAY1V,CAAI;AACvC,UAAIoL,EAAS,UAAU;AACnB,eAAO,CAAE;AACb,UAAIyN,IAAYzN,EAAS,QAAQpL,CAAI;AACrC,aAAI6Y,IAAY,KAAKA,MAAczN,EAAS,SAAS,IAC1C,CAAE,IACNA,EAAS,MAAMyN,IAAY,CAAC,EAAE,OAAOnD,EAAQ,KAAK;AAAA,IAC7D;AACA,IAAAhd,EAAA,kBAA0BkgB;AAC1B,aAASE,EAAYld,GAAS;AAE1B,aAAO;AAAA,QACH,SAAS,CAAC,CAACA,EAAQ;AAAA,QACnB,yBAAyB,CAAC,CAACA,EAAQ;AAAA,QACnC,eAAe,CAAC,CAACA,EAAQ;AAAA,QACzB,YAAY,CAAC,CAACA,EAAQ;AAAA,QACtB,cAAc,CAAC,CAACA,EAAQ;AAAA,QACxB,SAASA,EAAQ;AAAA,QACjB,SAASA,EAAQ;AAAA,QACjB,QAAQA,EAAQ;AAAA,MACnB;AAAA,IACL;AACA,QAAImd,IAAK,SAAU/a,GAAMqW,GAAOzY,GAAS+b,GAASqB,GAAc;AAC5D,UAAIxB,IAAOwB,EAAa3E,GAAOyE,EAAYld,CAAO,GAAG+b,CAAO;AAC5D,aAAOH,MAASnC,EAAW,QAAQ,WAC7BrX,IACAwZ,MAASnC,EAAW,QAAQ,YACxBA,EAAW,QAAQ,YACnB,SAAUrV,GAAM;AAAE,eAAOwX,EAAKxX,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,MAAI;AAAA,IACjE;AAMD,IAAAtH,EAAqB,aAAA;AAAA,MACjB,IAAIqgB;AAAA;AAAA;AAAA;AAAA,MAIJ,SAASA;AAAA,MACT,OAAOA;AAAA,MACP,KAAK,SAAU/a,GAAMqW,GAAOzY,GAAS+b,GAASqB,GAAc;AACxD,YAAIxB,IAAOwB,EAAa3E,GAAOyE,EAAYld,CAAO,GAAG+b,CAAO;AAC5D,eAAOH,MAASnC,EAAW,QAAQ,YAC7BrX,IACAwZ,MAASnC,EAAW,QAAQ,WACxBA,EAAW,QAAQ,YACnB,SAAUrV,GAAM;AAAE,iBAAO,CAACwX,EAAKxX,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,QAAI;AAAA,MAClE;AAAA,MACD,KAAK,SAAUhC,GAAMia,GAAWrc,GAASqd,GAAUD,GAAc;AAC7D,YAAItD,IAAU9Z,EAAQ,SAClB+M,IAAOmQ,EAAYld,CAAO;AAC9B,QAAA+M,EAAK,mBAAmB;AACxB,YAAIgP,IAAUM,EAAU,KAAK,SAAU9X,GAAG;AAAE,iBAAOA,EAAE,KAAKuY,EAAU,WAAW;AAAA,QAAI,CAAA;AAAA;AAAA,UAE3E,CAAChgB,EAAQ,mBAAmB;AAAA,YAC9B,QACFwgB,IAAWF,EAAaf,GAAWtP,GAAMgP,CAAO;AACpD,YAAIuB,MAAa7D,EAAW,QAAQ;AAChC,iBAAOA,EAAW,QAAQ;AAC9B,YAAI8D,IAAaR,EAAYO,GAAUxD,CAAO;AAE9C,YAAIiC,KAAWuB,MAAa7D,EAAW,QAAQ,UAAU;AAKrD,cAAInU,IAAKgY,EAAS,wBAAwBE,IAA2BlY,MAAO,SAAS,KAAQA;AAC7F,iBAAO,SAAUlB,GAAM;AACnB,gBAAI,CAAChC,EAAKgC,CAAI;AACV,qBAAO;AACX,YAAA2X,EAAQ,CAAC,IAAI3X;AACb,gBAAImC,IAASuT,EAAQ,YAAY1V,CAAI,GACjCqZ,IAAeD,IACbhB,EAAcA,EAAc,IAAIjW,GAAQ,EAAI,GAAGyW,EAAgB5Y,GAAM0V,CAAO,GAAG,EAAI,IAAIvT;AAC7F,mBAAOuT,EAAQ,UAAUyD,GAAYE,CAAY;AAAA,UACpD;AAAA,QACb;AACQ,eAAO,SAAUrZ,GAAM;AACnB,iBAAOhC,EAAKgC,CAAI,KACZ0V,EAAQ,UAAUyD,GAAYzD,EAAQ,YAAY1V,CAAI,CAAC;AAAA,QAC9D;AAAA,MACJ;AAAA,IACJ;AAAA;;;;;AC7GD,WAAO,eAActH,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,wBAAgCA,EAAkB,UAAAA,EAAA,UAAkBA,EAAkB,UAAA;AACtF,QAAImc,IAAaxW,IACbib,IAAe1W,GAAuB;AAC1C,WAAO,eAAelK,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO4gB,EAAa;AAAA,IAAU,EAAA,CAAE;AACjH,QAAIC,IAAerV,GAAuB;AAC1C,WAAO,eAAexL,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO6gB,EAAa;AAAA,IAAU,EAAA,CAAE;AACjH,QAAIC,IAAe3I,GAAuB;AAC1C,WAAO,eAAenY,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO8gB,EAAa;AAAA,IAAU,EAAA,CAAE;AACjH,QAAIC,IAAkB3I,GAA0B;AAChD,aAAS4I,EAAsB1b,GAAM2T,GAAU/V,GAAS+b,GAASqB,GAAc;AAC3E,UAAI9X,GACAF,IAAO2Q,EAAS,MAAM/Q,IAAO+Q,EAAS;AAC1C,UAAI,MAAM,QAAQ/Q,CAAI,GAAG;AACrB,YAAI,EAAEI,KAAQyY,EAAgB;AAC1B,gBAAM,IAAI,MAAM,yBAAyB,OAAOzY,GAAM,GAAG,EAAE,OAAOJ,GAAM,GAAG,CAAC;AAEhF,eAAO6Y,EAAgB,WAAWzY,CAAI,EAAEhD,GAAM4C,GAAMhF,GAAS+b,GAASqB,CAAY;AAAA,MAC1F;AACI,UAAIW,KAAczY,IAAKtF,EAAQ,aAAa,QAAQsF,MAAO,SAAS,SAASA,EAAGF,CAAI,GAChF4Y,IAAe,OAAOD,KAAe,WAAWA,IAAaH,EAAa,QAAQxY,CAAI;AAC1F,UAAI,OAAO4Y,KAAiB,UAAU;AAClC,YAAIhZ,KAAQ;AACR,gBAAM,IAAI,MAAM,UAAU,OAAOI,GAAM,6BAA6B,CAAC;AAGzE,YAAI6Y,QAAYhF,EAAW,OAAO+E,CAAY;AAC9C,eAAOH,EAAgB,WAAW,GAAMzb,GAAM6b,GAAOje,GAAS+b,GAASqB,CAAY;AAAA,MAC3F;AACI,UAAI,OAAOW,KAAe;AACtB,mBAAIJ,EAAa,kBAAkBI,GAAY3Y,GAAMJ,GAAM,CAAC,GACrD,SAAUZ,GAAM;AAAE,iBAAO2Z,EAAW3Z,GAAMY,CAAI,KAAK5C,EAAKgC,CAAI;AAAA,QAAI;AAE3E,UAAIgB,KAAQsY,EAAa;AACrB,eAAOA,EAAa,QAAQtY,CAAI,EAAEhD,GAAM4C,GAAMhF,GAAS+b,CAAO;AAElE,UAAI3W,KAAQuY,EAAa,SAAS;AAC9B,YAAIO,IAAWP,EAAa,QAAQvY,CAAI;AACxC,mBAAIuY,EAAa,kBAAkBO,GAAU9Y,GAAMJ,GAAM,CAAC,GACnD,SAAUZ,GAAM;AAAE,iBAAO8Z,EAAS9Z,GAAMpE,GAASgF,CAAI,KAAK5C,EAAKgC,CAAI;AAAA,QAAI;AAAA,MACtF;AACI,YAAM,IAAI,MAAM,yBAAyB,OAAOgB,CAAI,CAAC;AAAA,IACzD;AACA,IAAAtI,EAAA,wBAAgCghB;AAAA;;;;;UC3ChC,OAAO,eAAeK,IAAS,cAAc,EAAE,OAAO,IAAM,GAC9BA,GAAA,yBAAG;AACjC,MAAIC,IAAkB3b,GAA0B,GAC5C4b,IAAarX,GAAsC,GACnDiS,IAAa3Q;AACjB,WAASgW,EAAiBzgB,GAAMic,GAAS;AACrC,QAAInV,IAASmV,EAAQ,UAAUjc,CAAI;AACnC,WAAI8G,KAAUmV,EAAQ,MAAMnV,CAAM,IACvBA,IAEJ;AAAA,EACX;AAIA,WAAS4Z,EAAuBnc,GAAM2T,GAAU/V,GAAS+b,GAASqB,GAAc;AAC5E,QAAItD,IAAU9Z,EAAQ,SAAS2b,IAAS3b,EAAQ;AAChD,YAAQ+V,EAAS,MAAI;AAAA,MACjB,KAAKkD,EAAW,aAAa;AACzB,cAAM,IAAI,MAAM,iDAAiD;AAAA,MAErE,KAAKA,EAAW,aAAa;AACzB,cAAM,IAAI,MAAM,wDAAwD;AAAA,MAE5E,KAAKA,EAAW,aAAa,WAAW;AACpC,YAAIlD,EAAS,aAAa;AACtB,gBAAM,IAAI,MAAM,2DAA2D;AAE/E,gBAAI,CAAC/V,EAAQ,WAAWA,EAAQ,6BAC5B+V,EAAS,OAAOA,EAAS,KAAK,YAAa,IAExCqI,EAAgB,eAAerI,EAAS,MAAM,EAAE3T,GAAM2T,GAAU/V,CAAO;AAAA,MAC1F;AAAA,MACQ,KAAKiZ,EAAW,aAAa;AACzB,mBAAWoF,EAAW,uBAAuBjc,GAAM2T,GAAU/V,GAAS+b,GAASqB,CAAY;AAAA;AAAA,MAG/F,KAAKnE,EAAW,aAAa,KAAK;AAC9B,YAAIlD,EAAS,aAAa;AACtB,gBAAM,IAAI,MAAM,0DAA0D;AAE9E,YAAIyI,IAASzI,EAAS;AACtB,gBAAI,CAAC/V,EAAQ,WAAWA,EAAQ,mBAC5Bwe,IAASA,EAAO,YAAa,IAE1B,SAAapa,GAAM;AACtB,iBAAO0V,EAAQ,QAAQ1V,CAAI,MAAMoa,KAAUpc,EAAKgC,CAAI;AAAA,QACvD;AAAA,MACb;AAAA;AAAA,MAEQ,KAAK6U,EAAW,aAAa,YAAY;AACrC,YAAIjZ,EAAQ,iBAAiB,MACzB,OAAO,UAAY;AACnB,iBAAO,SAAoBoE,GAAM;AAE7B,qBADI2F,IAAU3F,GACN2F,IAAUuU,EAAiBvU,GAAS+P,CAAO;AAC/C,kBAAI1X,EAAK2H,CAAO;AACZ,uBAAO;AAGf,mBAAO;AAAA,UACV;AAGL,YAAI0U,IAAiB,oBAAI,QAAS;AAClC,eAAO,SAA0Bra,GAAM;AAEnC,mBADI2F,IAAU3F,GACN2F,IAAUuU,EAAiBvU,GAAS+P,CAAO;AAC/C,gBAAI,CAAC2E,EAAe,IAAI1U,CAAO,GAAG;AAC9B,kBAAI+P,EAAQ,MAAM/P,CAAO,KAAK3H,EAAK2H,CAAO;AACtC,uBAAO;AAEX,cAAA0U,EAAe,IAAI1U,CAAO;AAAA,YAClD;AAEgB,iBAAO;AAAA,QACV;AAAA,MACb;AAAA,MACQ,KAAK;AAED,eAAO,SAA4B3F,GAAM;AACrC,cAAI2F,IAAU3F;AACd;AACI,gBAAIhC,EAAK2H,CAAO;AACZ,qBAAO;AAAA,iBACLA,IAAUuU,EAAiBvU,GAAS+P,CAAO;AACrD,iBAAO;AAAA,QACV;AAAA,MAEL,KAAKb,EAAW,aAAa;AACzB,eAAO,SAAgB7U,GAAM;AACzB,iBAAO0V,EACF,YAAY1V,CAAI,EAChB,KAAK,SAAUA,GAAM;AAAE,mBAAO0V,EAAQ,MAAM1V,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,WAAI;AAAA,QAC1E;AAAA,MAEL,KAAK6U,EAAW,aAAa;AACzB,eAAO,SAAe7U,GAAM;AACxB,cAAIO,IAASmV,EAAQ,UAAU1V,CAAI;AACnC,iBAAOO,KAAU,QAAQmV,EAAQ,MAAMnV,CAAM,KAAKvC,EAAKuC,CAAM;AAAA,QAChE;AAAA,MAEL,KAAKsU,EAAW,aAAa;AACzB,eAAO,SAAiB7U,GAAM;AAE1B,mBADIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GAC9BI,IAAI,GAAGA,IAAIgL,EAAS,QAAQhL,KAAK;AACtC,gBAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,gBAAImX,EAAOvX,GAAMyX,CAAc;AAC3B;AACJ,gBAAI/B,EAAQ,MAAM+B,CAAc,KAAKzZ,EAAKyZ,CAAc;AACpD,qBAAO;AAAA,UAE/B;AACgB,iBAAO;AAAA,QACV;AAAA,MAEL,KAAK5C,EAAW,aAAa;AACzB,eAAIa,EAAQ,qBACD,SAAkB1V,GAAM;AAC3B,cAAIsa,IAAW5E,EAAQ,mBAAmB1V,CAAI;AAC9C,iBAAOsa,KAAY,QAAQtc,EAAKsc,CAAQ;AAAA,QAC3C,IAEE,SAAkBta,GAAM;AAG3B,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnCua,GACKna,IAAI,GAAGA,IAAIgL,EAAS,QAAQhL,KAAK;AACtC,gBAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,gBAAImX,EAAOvX,GAAMyX,CAAc;AAC3B;AACJ,YAAI/B,EAAQ,MAAM+B,CAAc,MAC5B8C,IAAc9C;AAAA,UAEtC;AACgB,iBAAO,CAAC,CAAC8C,KAAevc,EAAKuc,CAAW;AAAA,QAC3C;AAAA,MAEL,KAAK1F,EAAW,aAAa,WAAW;AACpC,YAAIlD,EAAS,aAAa,QAAQA,EAAS,cAAc;AACrD,gBAAM,IAAI,MAAM,oEAAoE;AAExF,eAAO3T;AAAA,MACnB;AAAA,IACA;AAAA,EACA;AACA,SAAA+b,GAAA,yBAAiCI;;;;;;ACjJjC,MAAI/X,IAAmBjE,KAAQA,EAAK,oBAAqB,OAAO,SAAU,SAASkE,GAAG,GAAGE,GAAGC,GAAI;AAC5F,IAAIA,MAAO,WAAWA,IAAKD;AAC3B,QAAIE,IAAO,OAAO,yBAAyB,GAAGF,CAAC;AAC/C,KAAI,CAACE,MAAS,SAASA,IAAO,CAAC,EAAE,aAAaA,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,aAAO,EAAEF,CAAC;AAAA,MAAM,IAE/D,OAAO,eAAeF,GAAGG,GAAIC,CAAI;AAAA,EACpC,IAAK,SAASJ,GAAG,GAAGE,GAAGC,GAAI;AACxB,IAAIA,MAAO,WAAWA,IAAKD,IAC3BF,EAAEG,CAAE,IAAI,EAAED,CAAC;AAAA,EACf,IACIqB,IAAsBzF,KAAQA,EAAK,uBAAwB,OAAO,SAAU,SAASkE,GAAG/I,GAAG;AAC3F,WAAO,eAAe+I,GAAG,WAAW,EAAE,YAAY,IAAM,OAAO/I,GAAG;AAAA,EACtE,IAAK,SAAS+I,GAAG/I,GAAG;AAChB,IAAA+I,EAAE,UAAa/I;AAAA,EACnB,IACIuK,IAAgB1F,KAAQA,EAAK,gBAAiB,SAAUmB,GAAK;AAC7D,QAAIA,KAAOA,EAAI,WAAY,QAAOA;AAClC,QAAIxD,IAAS,CAAE;AACf,QAAIwD,KAAO,KAAM,UAASiD,KAAKjD,EAAK,CAAIiD,MAAM,aAAa,OAAO,UAAU,eAAe,KAAKjD,GAAKiD,CAAC,KAAGH,EAAgBtG,GAAQwD,GAAKiD,CAAC;AACvI,WAAAqB,EAAmB9H,GAAQwD,CAAG,GACvBxD;AAAA,EACV,GACGuD,IAAmBlB,KAAQA,EAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAeiX,GAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,eAAuBA,EAAqB,gBAAGA,EAAe,UAAG;AACjE,MAAI1B,IAAaxW,IACbgX,IAAahW,EAAgBuD,IAAmB,GAChD8V,IAAY7U,EAAaK,IAAoB,GAC7CsW,IAAe3J,GAAuB,GACtC4I,IAAkB3I,GAA2C;AAQjE,WAAS0F,EAAQ7E,GAAU/V,GAAS+b,GAAS;AACzC,QAAI3Z,IAAOyc,EAAc9I,GAAU/V,GAAS+b,CAAO;AACnD,eAAW8B,EAAgB,aAAazb,GAAMpC,EAAQ,OAAO;AAAA,EACjE;AACA2a,EAAAA,EAAA,UAAkBC;AAClB,WAASiE,EAAc9I,GAAU/V,GAAS+b,GAAS;AAC/C,QAAItD,IAAQ,OAAO1C,KAAa,eAAekD,EAAW,OAAOlD,CAAQ,IAAIA;AAC7E,WAAOqH,EAAa3E,GAAOzY,GAAS+b,CAAO;AAAA,EAC/C;AACApB,EAAAA,EAAA,gBAAwBkE;AACxB,WAASC,EAAoBxa,GAAG;AAC5B,WAAQA,EAAE,SAAS2U,EAAW,aAAa,WACtC3U,EAAE,SAAS,WACP,MAAM,QAAQA,EAAE,IAAI,KACjBA,EAAE,KAAK,KAAK,SAAUU,GAAM;AAAE,aAAOA,EAAK,KAAK8Z,CAAmB;AAAA,IAAE,CAAE;AAAA,EACtF;AACA,MAAIC,IAAmB,EAAE,MAAM9F,EAAW,aAAa,WAAY,GAC/D+F,IAA4B;AAAA,IAC5B,MAAM;AAAA,EACT,GACGC,IAAc;AAAA,IACd,MAAMhG,EAAW,aAAa;AAAA,IAC9B,MAAM;AAAA,IACN,MAAM;AAAA,EACT;AAKD,WAASiG,EAAWzG,GAAOnT,GAAIyW,GAAS;AAOpC,aANIjC,IAAUxU,EAAG,SAEb6Z,IAAa,CAAC,CAAoDpD,GAAQ,MAAM,SAAUqD,GAAG;AAC7F,UAAIza,IAASmV,EAAQ,MAAMsF,CAAC,KAAKtF,EAAQ,UAAUsF,CAAC;AACpD,aAAOA,MAAMvB,EAAgB,uBAAwBlZ,KAAUmV,EAAQ,MAAMnV,CAAM;AAAA,IAC3F,CAAK,GACQiQ,IAAK,GAAGyK,IAAU5G,GAAO7D,IAAKyK,EAAQ,QAAQzK,KAAM;AACzD,UAAItQ,IAAI+a,EAAQzK,CAAE;AAClB,UAAI,EAAAtQ,EAAE,SAAS,SACPwY,EAAU,aAAaxY,EAAE,CAAC,CAAC,KAC/BA,EAAE,CAAC,EAAE,SAAS2U,EAAW,aAAa,YAGrC,KAAIkG,KAAc,CAAC7a,EAAE,KAAKwa,CAAmB;AAC9C,QAAAxa,EAAE,QAAQya,CAAgB;AAAA;AAG1B;AAEJ,MAAAza,EAAE,QAAQ2a,CAAW;AAAA,IAC7B;AAAA,EACA;AACA,WAAS7B,EAAa3E,GAAOzY,GAAS+b,GAAS;AAC3C,QAAIzW;AACJ,IAAAmT,EAAM,QAAQqE,EAAU,OAAO,GAC/Bf,KAAWzW,IAAKtF,EAAQ,aAAa,QAAQsF,MAAO,SAASA,IAAKyW;AAClE,QAAIuD,IAAiB,MAAM,QAAQvD,CAAO,GACtCwD,IAAexD,MAAY,MAAM,QAAQA,CAAO,IAAIA,IAAU,CAACA,CAAO;AAE1E,QAAI/b,EAAQ,qBAAqB;AAC7B,MAAAkf,EAAWzG,GAAOzY,GAASuf,CAAY;AAAA,aAElC9G,EAAM,KAAK,SAAUnU,GAAG;AAAE,aAAOA,EAAE,SAAS,SAASwY,EAAU,aAAaxY,EAAE,CAAC,CAAC;AAAA,IAAE,CAAE;AACzF,YAAM,IAAI,MAAM,mFAAmF;AAEvG,QAAIkb,IAAyB,IACzBC,IAAQhH,EACP,IAAI,SAAUiH,GAAO;AACtB,UAAIA,EAAM,UAAU,GAAG;AACnB,YAAIC,IAAQD,EAAM,CAAC,GAAGE,IAASF,EAAM,CAAC;AACtC,QAAIC,EAAM,SAAS1G,EAAW,aAAa,UACvC0G,EAAM,SAAS,YAGVL,KACLM,EAAO,SAAS3G,EAAW,aAAa,aACxCyG,EAAM,CAAC,IAAIV,KAENY,EAAO,SAAS3G,EAAW,aAAa,YAC7C2G,EAAO,SAAS3G,EAAW,aAAa,aACxCuG,IAAyB;AAAA,MAEzC;AACQ,aAAOK,EAAaH,GAAO1f,GAASuf,CAAY;AAAA,IACnD,CAAA,EACI,OAAOO,GAAarG,EAAW,QAAQ,SAAS;AACrD,WAAAgG,EAAM,yBAAyBD,GACxBC;AAAA,EACX;AACA9E,EAAAA,EAAA,eAAuByC;AACvB,WAASyC,EAAaH,GAAO1f,GAAS+b,GAAS;AAC3C,QAAIzW;AACJ,WAAOoa,EAAM,OAAO,SAAUhB,GAAUhD,GAAM;AAC1C,aAAOgD,MAAajF,EAAW,QAAQ,YACjCA,EAAW,QAAQ,gBACfmF,EAAa,wBAAwBF,GAAUhD,GAAM1b,GAAS+b,GAASqB,CAAY;AAAA,IAChG,IAAG9X,IAAKtF,EAAQ,cAAc,QAAQsF,MAAO,SAASA,IAAKmU,EAAW,QAAQ,QAAQ;AAAA,EAC3F;AACA,WAASqG,EAAYhO,GAAGxO,GAAG;AACvB,WAAIA,MAAMmW,EAAW,QAAQ,aAAa3H,MAAM2H,EAAW,QAAQ,WACxD3H,IAEPA,MAAM2H,EAAW,QAAQ,aAAanW,MAAMmW,EAAW,QAAQ,WACxDnW,IAEJ,SAAiBc,GAAM;AAC1B,aAAO0N,EAAE1N,CAAI,KAAKd,EAAEc,CAAI;AAAA,IAC3B;AAAA,EACL;;;;;;ACpJA,QAAIoC,IAAmBjE,MAAQA,GAAK,oBAAqB,OAAO,SAAU,SAASkE,GAAGC,GAAGC,GAAGC,GAAI;AAC5F,MAAIA,MAAO,WAAWA,IAAKD;AAC3B,UAAIE,IAAO,OAAO,yBAAyBH,GAAGC,CAAC;AAC/C,OAAI,CAACE,MAAS,SAASA,IAAO,CAACH,EAAE,aAAaG,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,eAAOH,EAAEC,CAAC;AAAA,QAAM,IAE/D,OAAO,eAAeF,GAAGG,GAAIC,CAAI;AAAA,IACpC,IAAK,SAASJ,GAAGC,GAAGC,GAAGC,GAAI;AACxB,MAAIA,MAAO,WAAWA,IAAKD,IAC3BF,EAAEG,CAAE,IAAIF,EAAEC,CAAC;AAAA,IACf,IACIqB,IAAsBzF,MAAQA,GAAK,uBAAwB,OAAO,SAAU,SAASkE,GAAG/I,GAAG;AAC3F,aAAO,eAAe+I,GAAG,WAAW,EAAE,YAAY,IAAM,OAAO/I,GAAG;AAAA,IACtE,IAAK,SAAS+I,GAAG/I,GAAG;AAChB,MAAA+I,EAAE,UAAa/I;AAAA,IACnB,IACIuK,IAAgB1F,MAAQA,GAAK,gBAAiB,SAAUmB,GAAK;AAC7D,UAAIA,KAAOA,EAAI,WAAY,QAAOA;AAClC,UAAIxD,IAAS,CAAE;AACf,UAAIwD,KAAO,KAAM,UAASiD,KAAKjD,EAAK,CAAIiD,MAAM,aAAa,OAAO,UAAU,eAAe,KAAKjD,GAAKiD,CAAC,KAAGH,EAAgBtG,GAAQwD,GAAKiD,CAAC;AACvI,aAAAqB,EAAmB9H,GAAQwD,CAAG,GACvBxD;AAAA,IACV,GACGuD,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,aAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,IAC5D;AACD,WAAO,eAAc5G,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAkB,UAAAA,EAAA,UAAkBA,EAAkB,UAAAA,EAAA,KAAaA,EAAoB,YAAAA,EAAA,YAAoBA,mBAAyBA,EAAwB,gBAAAA,EAAA,iBAAyBA,EAAkB,UAAA;AACvM,QAAIijB,IAAW9X,sBAAgC,GAC3CwR,IAAahW,EAAgBuD,IAAmB,GAChDoU,IAAe9S,GAAuB,GACtCuV,IAAkB5I,GAA2C,GAC7D+K,IAAgB,SAAUlO,GAAGxO,GAAG;AAAE,aAAOwO,MAAMxO;AAAA,IAAI,GACnD2c,IAAiB;AAAA,MACjB,SAASF;AAAA,MACT,QAAQC;AAAA,IACX;AACD,aAASE,EAAqBlgB,GAAS;AACnC,UAAIsF,GAAIK,GAAIwa,GAAIC,GAKZrT,IAAO/M,KAAmDigB;AAE9D,cAAC3a,IAAKyH,EAAK,aAAa,QAAQzH,MAAO,WAAeyH,EAAK,UAAUgT,KAEpEpa,IAAKoH,EAAK,YAAY,QAAQpH,MAAO,WAAeoH,EAAK,UAAUqT,KAAMD,IAAKpT,EAAK,aAAa,QAAQoT,MAAO,SAAS,SAASA,EAAG,YAAY,QAAQC,MAAO,SAASA,IAAKJ,IACvKjT;AAAA,IACX;AACA,aAASsT,EAAYzE,GAAM;AACvB,aAAO,SAAoB7F,GAAU/V,GAAS+b,GAAS;AACnD,YAAIhP,IAAOmT,EAAqBlgB,CAAO;AACvC,eAAO4b,EAAK7F,GAAUhJ,GAAMgP,CAAO;AAAA,MACtC;AAAA,IACL;AAIA,IAAAjf,EAAA,UAAkBujB,EAAYjF,EAAa,OAAO,GAClDte,EAAA,iBAAyBujB,EAAYjF,EAAa,aAAa,GAC/Dte,EAAA,gBAAwBujB,EAAYjF,EAAa,YAAY;AAC7D,aAASkF,EAAgBC,GAAY;AACjC,aAAO,SAAgBd,GAAOe,GAAUxgB,GAAS;AAC7C,YAAI+M,IAAOmT,EAAqBlgB,CAAO;AACvC,QAAI,OAAOyf,KAAU,eACjBA,QAAYrE,EAAa,eAAeqE,GAAO1S,GAAMyT,CAAQ;AAEjE,YAAIC,IAAmBC,EAAeF,GAAUzT,EAAK,SAAS0S,EAAM,sBAAsB;AAC1F,eAAOc,EAAWd,GAAOgB,GAAkB1T,CAAI;AAAA,MAClD;AAAA,IACL;AACA,aAAS2T,EAAeC,GAAO7G,GAAS0F,GAAwB;AAC5D,aAAIA,MAA2B,WAAUA,IAAyB,KAK9DA,MACAmB,IAAQC,EAAmBD,GAAO7G,CAAO,IAEtC,MAAM,QAAQ6G,CAAK,IACpB7G,EAAQ,cAAc6G,CAAK,IAC3B7G,EAAQ,YAAY6G,CAAK;AAAA,IACnC;AACA,IAAA7jB,EAAA,iBAAyB4jB;AACzB,aAASE,EAAmBxc,GAAM0V,GAAS;AAIvC,eAFI6G,IAAQ,MAAM,QAAQvc,CAAI,IAAIA,EAAK,MAAM,CAAC,IAAI,CAACA,CAAI,GACnDyc,IAAcF,EAAM,QACfnc,IAAI,GAAGA,IAAIqc,GAAarc,KAAK;AAClC,YAAIsc,QAAmBjD,EAAgB,iBAAiB8C,EAAMnc,CAAC,GAAGsV,CAAO;AACzE,QAAA6G,EAAM,KAAK,MAAMA,GAAOG,CAAY;AAAA,MAC5C;AACI,aAAOH;AAAA,IACX;AAWA,IAAA7jB,EAAoB,YAAAwjB,EAAgB,SAAUb,GAAOkB,GAAO3gB,GAAS;AACjE,aAAOyf,MAAUhG,EAAW,QAAQ,aAAa,CAACkH,KAASA,EAAM,WAAW,IACtE,CAAA,IACA3gB,EAAQ,QAAQ,QAAQyf,GAAOkB,CAAK;AAAA,IAC9C,CAAC,GAUD7jB,EAAoB,YAAAwjB,EAAgB,SAAUb,GAAOkB,GAAO3gB,GAAS;AACjE,aAAOyf,MAAUhG,EAAW,QAAQ,aAAa,CAACkH,KAASA,EAAM,WAAW,IACtE,OACA3gB,EAAQ,QAAQ,QAAQyf,GAAOkB,CAAK;AAAA,IAC9C,CAAC;AAYD,aAASxD,EAAG/Y,GAAMqb,GAAOzf,GAAS;AAC9B,UAAI+M,IAAOmT,EAAqBlgB,CAAO;AACvC,cAAQ,OAAOyf,KAAU,aAAaA,QAAYrE,EAAa,SAASqE,GAAO1S,CAAI,GAAG3I,CAAI;AAAA,IAC9F;AACA,IAAAtH,EAAA,KAAaqgB,GAKbrgB,EAAkB,UAAAA,EAAQ;AAG1B,QAAIuhB,IAAanJ,GAAsC;AACvD,WAAO,eAAepY,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOuhB,EAAW;AAAA,IAAU,EAAA,CAAE,GAC/G,OAAO,eAAevhB,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOuhB,EAAW;AAAA,IAAU,EAAA,CAAE,GAC/G,OAAO,eAAevhB,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOuhB,EAAW;AAAA,IAAU,EAAA,CAAE;AAAA;;;;;UCvJ/G,OAAO,eAAe0C,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,WAASC,EAASxV,GAAK;AACnB,WAAOA,EAAIA,EAAI,SAAS,CAAC;AAAA,EAC7B;AACA,SAAAuV,GAAA,UAAkBC;;;;;;ACJlB,MAAIvd,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAeud,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,MAAIpd,IAASJ,sBAAuC;AACpD,WAASU,EAAMtG,GAAM;AACjB,WAAOA,KAAQA,EAAK,aAAagG,EAAO,QAAQ;AAAA,EACpD;AACA,WAASsL,EAAkB/K,GAAMgB,GAAM;AACnC,WAAOjB,EAAMC,CAAI,IAAIA,EAAK,aAAagB,CAAI,IAAI;AAAA,EACnD;AACA,WAASiK,EAAQjL,GAAM;AACnB,YAASA,KAAQA,EAAK,cAAe,IAAI,YAAa;AAAA,EAC1D;AACA,WAAS4K,EAAYnR,GAAM;AACvB,WAAOA,KAAQA,EAAK;AAAA,EACxB;AACA,WAASoR,EAAUpR,GAAM;AACrB,WAAOA,IAAOA,EAAK,aAAa;AAAA,EACpC;AACA,WAAS6Q,EAAQ7Q,GAAM;AACnB,WAAOA,EAAK;AAAA,EAChB;AACA,WAASwU,EAAcxE,GAAO;AAO1B,aANI2E,IAAM3E,EAAM,QACZhQ,GACA4U,GACAyO,GAGG,EAAE1O,IAAM,MAAI;AAKf,WAJA3U,IAAO4U,IAAW5E,EAAM2E,CAAG,GAE3B3E,EAAM2E,CAAG,IAAI,MACb0O,IAAU,IACHzO,KAAU;AACb,YAAI5E,EAAM,QAAQ4E,CAAQ,IAAI,IAAI;AAC9B,UAAAyO,IAAU,IACVrT,EAAM,OAAO2E,GAAK,CAAC;AACnB;AAAA,QAChB;AACY,QAAAC,IAAWxD,EAAUwD,CAAQ;AAAA,MACzC;AAEQ,MAAIyO,MACArT,EAAM2E,CAAG,IAAI3U;AAAA,IAEzB;AACI,WAAOgQ;AAAA,EACX;AACA,WAAS4C,EAAUE,GAAMgQ,GAAO;AAC5B,WAAOA,EAAM,KAAK,SAAUvc,GAAM;AAC9B,aAAOD,EAAMC,CAAI,IAAIuM,EAAKvM,CAAI,KAAKqM,EAAUE,GAAM3B,EAAY5K,CAAI,CAAC,IAAI;AAAA,IAChF,CAAK;AAAA,EACL;AACA,WAAS8K,EAAYrR,GAAM;AACvB,QAAI8G,IAASsK,EAAUpR,CAAI;AAC3B,WAAO8G,IAASqK,EAAYrK,CAAM,IAAI,CAAE;AAAA,EAC5C;AACA,WAASyK,EAAUhL,GAAMgB,GAAM;AAC3B,WAAO+J,EAAkB/K,GAAMgB,CAAI,MAAM;AAAA,EAC7C;AACA,WAASoL,EAAQG,GAAMgQ,GAAO;AAE1B,aADIvc,IAAO,MACFI,IAAI,GAAGoY,IAAkD+D,GAAM,QAAQnc,IAAIoY,KAAK,CAACxY,GAAMI,KAAK;AACjG,UAAIpH,IAAKujB,EAAMnc,CAAC;AAChB,UAAImM,EAAKvT,CAAE;AACP,QAAAgH,IAAOhH;AAAA,WAEN;AACD,YAAImJ,IAASyI,EAAY5R,CAAE;AAC3B,QAAImJ,KAAUA,EAAO,SAAS,MAC1BnC,IAAOoM,EAAQG,GAAMpK,CAAM;AAAA,MAE3C;AAAA,IACA;AACI,WAAOnC;AAAA,EACX;AACA,WAASsM,EAAQC,GAAM9C,GAAO;AAE1B,aADI3N,IAAS,CAAE,GACNsE,IAAI,GAAG+U,IAAI1L,EAAM,QAAQrJ,IAAI+U,GAAG/U;AACrC,UAAKL,EAAM0J,EAAMrJ,CAAC,CAAC,GAEnB;AAAA,QAAImM,EAAK9C,EAAMrJ,CAAC,CAAC,KACbtE,EAAO,KAAK2N,EAAMrJ,CAAC,CAAC;AACxB,YAAI+B,IAASyI,EAAYnB,EAAMrJ,CAAC,CAAC;AACjC,QAAI+B,MACArG,IAASA,EAAO,OAAOwQ,EAAQC,GAAMpK,CAAM,CAAC;AAAA;AAEpD,WAAOrG;AAAA,EACX;AACA,SAAA+gB,GAAA,UAAkB;AAAA,IACd,OAAO9c;AAAA,IACP,mBAAmBgL;AAAA,IACnB,SAASE;AAAA,IACT,aAAaL;AAAA,IACb,WAAWC;AAAA,IACX,SAASP;AAAA,IACT,eAAe2D;AAAA,IACf,WAAW5B;AAAA,IACX,aAAavB;AAAA,IACb,WAAWE;AAAA,IACX,SAASoB;AAAA,IACT,SAASE;AAAA,EACZ;;;;;UCxGD,OAAO,eAAeyQ,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,MAAIC;AAAA;AAAA,IAAyB,WAAY;AACrC,eAASA,EAAQC,GAAiBC,GAAM;AACpC,QAAID,MAAoB,WAAUA,IAAkB,KACpD,KAAK,kBAAkBA,GACnB,MAAM,QAAQC,CAAI,IAClB,KAAK,WAAWA,EAAK,OAAO,SAAUC,GAAKjT,GAAK;AAC5C,iBAAOiT,EAAI,IAAIjT,EAAI,YAAW,CAAE,EAAE,IAAIA,EAAI,YAAW,CAAE,EAAE,IAAIA,CAAG;AAAA,QAChF,GAAe,oBAAI,IAAG,CAAE,IAGZ,KAAK,WAAW,CAAC,QAAQ,QAAQ,MAAM,OAAO,SAAS,MAAM,OAAO,SAAS,QAAQ,QAAQ,SAAS,UAAU,SAAS,KAAK,EAAE,OAAO,SAAUiT,GAAKjT,GAAK;AACvJ,iBAAOiT,EAAI,IAAIjT,EAAI,YAAW,CAAE,EAAE,IAAIA,EAAI,YAAW,CAAE,EAAE,IAAIA,CAAG;AAAA,QAChF,GAAe,oBAAI,IAAG,CAAE;AAAA,MAExB;AACI,aAAA8S,EAAQ,UAAU,aAAa,SAAU9S,GAAKkT,GAAOC,GAAW;AAC5D,YAAIJ,IAAkB,KAAK,iBACvBK,IAAgBL,KAAmBG,KAAS,CAACA,EAAM,SAAS,GAAG,IAAK,MAAM,IAC1EG,IAAeN,IAAkB,GAAG,OAAOK,GAAc,GAAG,IAAI;AACpE,eAAO,KAAK,cAAcpT,EAAI,YAAW,CAAE,IAAI,IAAI,OAAOA,CAAG,EAAE,OAAOkT,CAAK,EAAE,OAAOG,GAAc,GAAG,IAAI,IAAI,OAAOrT,CAAG,EAAE,OAAOkT,GAAO,GAAG,EAAE,OAAOC,GAAW,IAAI,EAAE,OAAOnT,GAAK,GAAG;AAAA,MACtL,GACD8S,EAAQ,UAAU,gBAAgB,SAAU9S,GAAK;AAC7C,eAAO,KAAK,SAAS,IAAIA,CAAG;AAAA,MAC/B,GACM8S;AAAA,IACX;;AACA,SAAAD,GAAA,UAAkBC;;;;;;AC3BlB,MAAIje,IAAaZ,MAAQA,GAAK,aAAe,2BAAY;AACrD,QAAIa,IAAgB,SAAUC,GAAGC,GAAG;AAChC,aAAAF,IAAgB,OAAO,kBAClB,EAAE,WAAW,CAAA,eAAgB,SAAS,SAAUC,GAAGC,GAAG;AAAE,QAAAD,EAAE,YAAYC;AAAA,MAAE,KACzE,SAAUD,GAAGC,GAAG;AAAE,iBAASC,KAAKD,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGC,CAAC,MAAGF,EAAEE,CAAC,IAAID,EAAEC,CAAC;AAAA,MAAI,GAC9FH,EAAcC,GAAGC,CAAC;AAAA,IAC5B;AACD,WAAO,SAAUD,GAAGC,GAAG;AACnB,UAAI,OAAOA,KAAM,cAAcA,MAAM;AACjC,cAAM,IAAI,UAAU,yBAAyB,OAAOA,CAAC,IAAI,+BAA+B;AAC5F,MAAAF,EAAcC,GAAGC,CAAC;AAClB,eAASE,IAAK;AAAE,aAAK,cAAcH;AAAA,MAAE;AACrC,MAAAA,EAAE,YAAYC,MAAM,OAAO,OAAO,OAAOA,CAAC,KAAKE,EAAG,YAAYF,EAAE,WAAW,IAAIE,EAAE;AAAA,IACpF;AAAA,EACL,EAAI,GACAC,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAe+D,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,MAAIjF,IAAOC,GAAa,GACpBmB,IAASH,sBAAiC,GAC1CI,IAASJ,sBAAiC,GAK1Cme;AAAA;AAAA,IAA0B,SAAU7d,GAAQ;AAC5C,MAAAZ,EAAUye,GAAU7d,CAAM;AAC1B,eAAS6d,EAAS5d,GAASrB,GAAYC,GAAO;AAC1C,QAAID,MAAe,WAAUA,IAAa;AAC1C,YAAIE,IAAQkB,EAAO,KAAK,MAAMpB,GAAYC,CAAK,KAAK;AAKpD,eAAAC,EAAM,WAAWgB,EAAO,QAAQ,WAChChB,EAAM,aAAa,IACnBA,EAAM,WAAWmB,GACVnB;AAAA,MACf;AACI,aAAA+e,EAAS,UAAU,QAAQ,WAAY;AACnC,eAAO,IAAIA,EAAS,KAAK,UAAU,IAAI;AAAA,MAC1C,GACD,OAAO,eAAeA,EAAS,WAAW,WAAW;AAAA,QACjD,KAAK,WAAY;AACb,iBAAO,KAAK;AAAA,QACf;AAAA;AAAA;AAAA;AAAA,QAID,KAAK,SAAUna,GAAM;AACjB,eAAK,WAAWA,GAChB,KAAK,kBAAkB,QACvB,KAAK,eAAe;AAAA,QACvB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAema,EAAS,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA,QAIxD,KAAK,WAAY;AACb,iBAAI,KAAK,oBAAoB,SAClB,KAAK,mBAChB,KAAK,kBAAkBC,EAAS,KAAK,OAAO,GACrC,KAAK;AAAA,QACf;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeD,EAAS,WAAW,eAAe;AAAA;AAAA;AAAA;AAAA,QAIrD,KAAK,WAAY;AACb,iBAAI,KAAK,iBAAiB,SACf,KAAK,gBAChB,KAAK,eAAeC,EAAS,KAAK,IAAI,GAC/B,KAAK;AAAA,QACf;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeD,EAAS,WAAW,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAK9C,KAAK,WAAY;AACb,qBAAWpf,EAAK,QAAQ,KAAK,OAAO;AAAA,QACvC;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeof,EAAS,WAAW,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,QAKtD,KAAK,WAAY;AACb,iBAAO,iBAAiB,KAAK,KAAK,OAAO;AAAA,QAC5C;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACDA,EAAS,UAAU,WAAW,WAAY;AACtC,eAAO,KAAK;AAAA,MACf,GACMA;AAAA,IACX,EAAEhe,EAAO,OAAO;AAAA;AAChB,EAAA6D,GAAA,UAAkBma;AAIlB,WAASC,EAASpa,GAAM;AAIpB,aAHIjD,IAAI,GACJsd,GACAC,GACGvd,KAAK,KAAKA,IAAIiD,EAAK;AACtB,MAAI,KAAK,KAAKA,EAAKjD,CAAC,CAAC,MACbsd,MAAa,UACbA,IAAWtd,GACXA,IAAIiD,EAAK,WAGTsa,IAASvd,GACTA,IAAI,UAGRsd,MAAa,SACbtd,MAEAA;AAER,IAAIsd,MAAa,WACbA,IAAW,IACXC,MAAW,WACXA,IAASta,EAAK,SAAS;AAC3B,QAAIua,IAAkBF,IAAW,KAAK,YAAY,KAAKra,EAAKqa,IAAW,CAAC,CAAC,GACrEG,IAAmBF,IAAUta,EAAK,SAAS,KAAM,YAAY,KAAKA,EAAKsa,IAAS,CAAC,CAAC;AACtF,YAAQC,IAAkB,MAAM,MAAMva,EAAK,MAAMqa,GAAUC,IAAS,CAAC,KAAKE,IAAmB,MAAM;AAAA,EACvG;;;;;;;AC9IA,MAAI9e,IAAaZ,KAAQA,EAAK,aAAe,2BAAY;AACrD,QAAIa,IAAgB,SAAUC,GAAGC,GAAG;AAChC,aAAAF,IAAgB,OAAO,kBAClB,EAAE,WAAW,CAAA,eAAgB,SAAS,SAAUC,GAAGC,GAAG;AAAE,QAAAD,EAAE,YAAYC;AAAA,MAAE,KACzE,SAAUD,GAAGC,GAAG;AAAE,iBAASC,KAAKD,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGC,CAAC,MAAGF,EAAEE,CAAC,IAAID,EAAEC,CAAC;AAAA,MAAI,GAC9FH,EAAcC,GAAGC,CAAC;AAAA,IAC5B;AACD,WAAO,SAAUD,GAAGC,GAAG;AACnB,UAAI,OAAOA,KAAM,cAAcA,MAAM;AACjC,cAAM,IAAI,UAAU,yBAAyB,OAAOA,CAAC,IAAI,+BAA+B;AAC5F,MAAAF,EAAcC,GAAGC,CAAC;AAClB,eAASE,IAAK;AAAE,aAAK,cAAcH;AAAA,MAAE;AACrC,MAAAA,EAAE,YAAYC,MAAM,OAAO,OAAO,OAAOA,CAAC,KAAKE,EAAG,YAAYF,EAAE,WAAW,IAAIE,EAAE;AAAA,IACpF;AAAA,EACL,EAAI,GACAa,IAAY9B,KAAQA,EAAK,YAAa,WAAY;AAClD,WAAA8B,IAAW,OAAO,UAAU,SAASC,GAAG;AACpC,eAASC,GAAGC,IAAI,GAAGC,IAAI,UAAU,QAAQD,IAAIC,GAAGD,KAAK;AACjD,QAAAD,IAAI,UAAUC,CAAC;AACf,iBAASjB,KAAKgB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGhB,CAAC,MAC1De,EAAEf,CAAC,IAAIgB,EAAEhB,CAAC;AAAA,MAC1B;AACQ,aAAOe;AAAA,IACV,GACMD,EAAS,MAAM,MAAM,SAAS;AAAA,EACxC,GACGmY,IAAiBja,KAAQA,EAAK,iBAAkB,SAAUka,GAAIC,GAAMC,GAAM;AAC1E,QAAIA,KAAQ,UAAU,WAAW,EAAG,UAASnY,IAAI,GAAGoY,IAAIF,EAAK,QAAQG,GAAIrY,IAAIoY,GAAGpY;AAC5E,OAAIqY,KAAM,EAAErY,KAAKkY,QACRG,MAAIA,IAAK,MAAM,UAAU,MAAM,KAAKH,GAAM,GAAGlY,CAAC,IACnDqY,EAAGrY,CAAC,IAAIkY,EAAKlY,CAAC;AAGtB,WAAOiY,EAAG,OAAOI,KAAM,MAAM,UAAU,MAAM,KAAKH,CAAI,CAAC;AAAA,EAC1D,GACGjZ,IAAmBlB,KAAQA,EAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAenC,GAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,QAAgBA,EAAA,aAAqB;AACrC,MAAI2gB,IAAezf,GAAqB,GACpCD,IAAOiB,EAAgBuD,IAAa,GACpCmb,IAAS1e,sBAAkC,GAC3C2e,IAAY3e,sBAAqC,GACjD4e,IAAa5e,sBAAsC,GACnD6e,IAAY7e,sBAAoC,GAChDG,IAASH,sBAAiC,GAC1C8e,IAAS9e,sBAAiC,GAC1CI,IAASJ,sBAAiC;AAC9C,WAASnC,EAAO0B,GAAK;AAEjB,WAAO,KAAK,MAAM,KAAK,UAAUR,EAAK,QAAQ,OAAOQ,CAAG,CAAC,CAAC;AAAA,EAC9D;AAEA,MAAIwf,IAAQ,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,UAAU,QAAQ,GAC/DC,IAAQ,CAAC,WAAW,UAAU,MAAM,OAAO,IAAI,GAC/CC,IAAQ,CAAC,YAAY,cAAc,UAAU,UAAU,MAAM,GAC7DC,IAAY,CAAC,SAAS,MAAM,IAAI,GAChCC,IAAW,CAAC,WAAW,WAAW,SAAS,cAAc,MAAM,MAAM,MAAM,QAAQ,OAAO,MAAM,KAAK,OAAO,WAAW,IAAI,GAC3HC,IAAiB,oBAAI,IAAK;AAC9B,WAASC,IAAqB;AAE1B,aADIvlB,IAAO,CAAE,GACJqX,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,MAAArX,EAAKqX,CAAE,IAAI,UAAUA,CAAE;AAS3B,aAPImO,IAAW,SAAUpjB,GAAO;AAC5B,eAASE,IAAQ,GAAGA,IAAQF,EAAM,QAAQE,KAAS;AAC/C,YAAI0H,IAAU5H,EAAME,CAAK;AACzB,QAAAgjB,EAAe,IAAItb,CAAO,GAC1Bsb,EAAe,IAAItb,EAAQ,aAAa;AAAA,MACpD;AAAA,IACK,GACQjC,IAAK,GAAG0d,IAASzlB,GAAM+H,IAAK0d,EAAO,QAAQ1d,KAAM;AACtD,UAAI2d,IAAMD,EAAO1d,CAAE;AACnB,MAAAyd,EAASE,CAAG;AAAA,IACpB;AAAA,EACA;AACA,EAAAH,EAAmBN,GAAOC,GAAOC,GAAOC,GAAWC,CAAQ;AAC3D,MAAIM;AAAA;AAAA,IAA8B,WAAY;AAC1C,eAASA,EAAaC,GAAYC,GAAa;AAC3C,QAAID,MAAe,WAAUA,IAAa,CAAA,IACtCC,MAAgB,WAAUA,IAAc,WAAY;AAAE,iBAAO;AAAA,YACjE,KAAK,OAAO,IAAI,IAAID,CAAU,GAC9B,KAAK,eAAeC;AAAA,MAC5B;AACI,aAAAF,EAAa,UAAU,YAAY,SAAUtb,GAAG;AAC5C,YAAI,KAAK,KAAKA,CAAC;AACX,gBAAM,IAAI,MAAM,gDAAgD,OAAOA,GAAG,kEAAkE,CAAC;AAAA,MAEpJ,GACDsb,EAAa,UAAU,MAAM,SAAUtb,GAAG;AACtC,aAAK,UAAUA,CAAC,GAChB,KAAK,KAAK,IAAIA,CAAC,GACf,KAAK,aAAa,IAAI;AAAA,MACzB,GACDsb,EAAa,UAAU,UAAU,SAAUG,GAAIC,GAAI;AAC/C,aAAK,UAAUA,CAAE,GACjB,KAAK,KAAK,OAAOD,CAAE,GACnB,KAAK,KAAK,IAAIC,CAAE,GAChB,KAAK,aAAa,IAAI;AAAA,MACzB,GACDJ,EAAa,UAAU,SAAS,SAAUtb,GAAG;AACzC,aAAK,KAAK,OAAOA,CAAC,KAAK,KAAK,aAAa,IAAI;AAAA,MAChD,GACDsb,EAAa,UAAU,SAAS,SAAUtb,GAAG;AACzC,aAAK,UAAUA,CAAC,GACZ,KAAK,KAAK,IAAIA,CAAC,IACf,KAAK,KAAK,OAAOA,CAAC,IAElB,KAAK,KAAK,IAAIA,CAAC,GACnB,KAAK,aAAa,IAAI;AAAA,MACzB,GACDsb,EAAa,UAAU,WAAW,SAAUtb,GAAG;AAC3C,eAAO,KAAK,KAAK,IAAIA,CAAC;AAAA,MACzB,GACD,OAAO,eAAesb,EAAa,WAAW,UAAU;AAAA,QACpD,KAAK,WAAY;AACb,iBAAO,KAAK,KAAK;AAAA,QACpB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACDA,EAAa,UAAU,SAAS,WAAY;AACxC,eAAO,KAAK,KAAK,OAAQ;AAAA,MAC5B,GACD,OAAO,eAAeA,EAAa,WAAW,SAAS;AAAA,QACnD,KAAK,WAAY;AACb,iBAAO,MAAM,KAAK,KAAK,KAAK,OAAM,CAAE;AAAA,QACvC;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACDA,EAAa,UAAU,WAAW,WAAY;AAC1C,eAAO,MAAM,KAAK,KAAK,KAAK,QAAQ,EAAE,KAAK,GAAG;AAAA,MACjD,GACMA;AAAA,IACX;KAUIK;AAAA;AAAA,IAA6B,SAAUxf,GAAQ;AAC/C,MAAAZ,EAAUogB,GAAaxf,CAAM;AAQ7B,eAASwf,EAAYrR,GAASsR,GAAUC,GAAU9gB,GAAYC,GAAOue,GAASuC,GAAe;AACzF,QAAID,MAAa,WAAUA,IAAW,KAClC9gB,MAAe,WAAUA,IAAa,OACtCwe,MAAY,WAAUA,IAAU,IAAIkB,EAAW,YAC/CqB,MAAkB,WAAUA,IAAgB,CAAA;AAChD,YAAI7gB,IAAQkB,EAAO,KAAK,MAAMpB,GAAYC,CAAK,KAAK;AAmBpD,YAlBAC,EAAM,WAAW4gB,GACjB5gB,EAAM,UAAUse,GAIhBte,EAAM,WAAWgB,EAAO,QAAQ,cAChChB,EAAM,aAAaqP,GACnBrP,EAAM,WAAW4gB,KAAY,IAC7B5gB,EAAM,KAAK2gB,EAAS,MAAM,IAC1B3gB,EAAM,aAAa,CAAE,GACrBA,EAAM,gBAAgB6gB,GACtB7gB,EAAM,YAAY,IAAIqgB;AAAA,UAAaM,EAAS,QAAQA,EAAS,MAAM,MAAM,KAAK,IAAI,CAAA;AAAA,UAAI,SAAUG,GAAW;AAAE,mBAAO9gB,EAAM,aAAa,SAAS8gB,EAAU,SAAU,CAAA;AAAA,UAAI;AAAA;AAAA,QACvK,GACGH,EAAS,OACJC,MACD5gB,EAAM,WAAW,OAAQ,OAAO2gB,EAAS,IAAI,GAAI,KAGrDA,EAAS,SACL,CAACC,GAAU;AACX,cAAIG,IAAM,UAAW,OAAO/gB,EAAM,UAAU,SAAU,GAAE,GAAI;AAC5D,UAAIA,EAAM,WACNA,EAAM,YAAY,IAAI,OAAO+gB,CAAG,IAGhC/gB,EAAM,WAAW+gB;AAAA,QAErC;AAEQ,eAAO/gB;AAAA,MACf;AAMI,aAAA0gB,EAAY,UAAU,iBAAiB,SAAUxJ,GAAM;AACnD,eAAIA,KAAQ,OACD,SAEJ,KAAK,UAAUA,EAAK,QAAQ,MAAM,QAAQ,CAAC,EAAE,QAAQ,QAAQ,GAAI,EAAE,QAAQ,QAAQ;AAAA,CAAI,EAAE,QAAQ,QAAQ,IAAI,EAAE,QAAQ,OAAO,EAAE;AAAA,MAC1I,GAKDwJ,EAAY,UAAU,cAAc,SAAU1lB,GAAM;AAChD,oBAAK,aAAa,KAAK,WAAW,OAAO,SAAUkF,GAAO;AACtD,iBAAOA,MAAUlF;AAAA,QAC7B,CAAS,GACM;AAAA,MACV,GAMD0lB,EAAY,UAAU,gBAAgB,SAAUM,GAASC,GAAS;AAC9D,YAAIhhB,IAAW,KAAK;AACpB,oBAAK,aAAaA,EAAS,IAAI,SAAUC,GAAO;AAC5C,iBAAIA,MAAU8gB,IACHC,IAEJ/gB;AAAA,QACnB,CAAS,GACM;AAAA,MACV,GACD,OAAO,eAAewgB,EAAY,WAAW,WAAW;AAAA,QACpD,KAAK,WAAY;AACb,iBAAO,KAAK,aAAa,KAAK,WAAW,YAAW,IAAK,KAAK;AAAA,QACjE;AAAA,QACD,KAAK,SAAUQ,GAAS;AACpB,eAAK,aAAaA,EAAQ,YAAa;AAAA,QAC1C;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeR,EAAY,WAAW,aAAa;AAAA,QACtD,KAAK,WAAY;AACb,iBAAO,KAAK,WAAW,YAAa;AAAA,QACvC;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeA,EAAY,WAAW,iBAAiB;AAAA,QAC1D,KAAK,WAAY;AACb,iBAAO,KAAK,QAAQ,cAAc,KAAK,SAAS;AAAA,QACnD;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeA,EAAY,WAAW,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,QAKpD,KAAK,WAAY;AAEb,iBAAI,QAAQ,KAAK,KAAK,UAAU,IACrB;AAAA,IAEJ,KAAK,WAAW,OAAO,SAAUS,GAAKC,GAAK;AAC9C,mBAAQD,KAAOC,EAAI;AAAA,UACtB,GAAE,EAAE;AAAA,QACR;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeV,EAAY,WAAW,eAAe;AAAA,QACxD,KAAK,WAAY;AACb,iBAAOjiB,EAAO,KAAK,OAAO;AAAA,QAC7B;AAAA,QACD,KAAK,SAAU0B,GAAK;AAChB,cAAIkhB,IAAU,CAAC,IAAI3B,EAAO,QAAQvf,GAAK,IAAI,CAAC;AAC5C,eAAK,aAAakhB;AAAA,QACrB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeX,EAAY,WAAW,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAKjD,KAAK,WAAY;AACb,iBAAOjiB,EAAO,KAAK,OAAO;AAAA,QAC7B;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeiiB,EAAY,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,QAK3D,KAAK,WAAY;AACb,cAAIY,IAAe,CAAE,GACjBC,IAAS,CAACD,CAAY;AAC1B,mBAASE,EAAIxmB,GAAM;AACf,gBAAIA,EAAK,aAAagG,EAAO,QAAQ;AACjC,cAAIgf,EAAe,IAAIhlB,EAAK,UAAU,KAC9BsmB,EAAa,SAAS,KACtBC,EAAO,KAAMD,IAAe,EAAI,GAEpCtmB,EAAK,WAAW,QAAQwmB,CAAG,GACvBF,EAAa,SAAS,KACtBC,EAAO,KAAMD,IAAe,EAAI,KAIpCtmB,EAAK,WAAW,QAAQwmB,CAAG;AAAA,qBAG1BxmB,EAAK,aAAagG,EAAO,QAAQ;AACtC,kBAAIhG,EAAK;AAEL,gBAAAsmB,EAAa,oBAAoB;AAAA,mBAEhC;AACD,oBAAI1c,IAAO5J,EAAK;AAChB,gBAAIsmB,EAAa,sBACb1c,IAAO,IAAI,OAAOA,CAAI,GACtB0c,EAAa,oBAAoB,KAErCA,EAAa,KAAK1c,CAAI;AAAA,cAC9C;AAAA,UAEA;AACY,iBAAA4c,EAAI,IAAI,GACDD,EACF,IAAI,SAAUE,GAAO;AACtB,mBAAOA,EAAM,KAAK,EAAE,EAAE,QAAQ,WAAW,GAAG;AAAA,UAC/C,CAAA,EACI,KAAK;AAAA,CAAI,EACT,QAAQ,QAAQ,EAAE;AAAA,QAC1B;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACDf,EAAY,UAAU,WAAW,WAAY;AACzC,YAAIjV,IAAM,KAAK;AACf,YAAIA,GAAK;AACL,cAAIkT,IAAQ,KAAK,WAAW,IAAI,OAAO,KAAK,QAAQ,IAAI;AACxD,iBAAO,KAAK,QAAQ,WAAWlT,GAAKkT,GAAO,KAAK,SAAS;AAAA,QACrE;AACQ,eAAO,KAAK;AAAA,MACf,GACD,OAAO,eAAe+B,EAAY,WAAW,aAAa;AAAA,QACtD,KAAK,WAAY;AACb,iBAAO,KAAK,WACP,IAAI,SAAUxgB,GAAO;AACtB,mBAAOA,EAAM,SAAU;AAAA,UAC1B,CAAA,EACI,KAAK,EAAE;AAAA,QACf;AAAA,QACD,KAAK,SAAUmhB,GAAS;AACpB,cAAIK,IAAI/N,EAAM0N,GAAS,KAAK,aAAa,GACrCrW,IAAQ0W,EAAE,WAAW,SAASA,EAAE,aAAa,CAAC,IAAIhC,EAAO,QAAQ2B,GAAS,IAAI,CAAC;AACnF,UAAAM,EAAY3W,GAAO,IAAI,GACvB2W,EAAY,KAAK,YAAY,IAAI,GACjC,KAAK,aAAa3W;AAAA,QACrB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD0V,EAAY,UAAU,cAAc,SAAUW,GAASlkB,GAAS;AAE5D,YADIA,MAAY,WAAUA,IAAU,CAAA,IAChCkkB,aAAmBtgB,EAAO;AAC1B,UAAAsgB,IAAU,CAACA,CAAO;AAAA,iBAEb,OAAOA,KAAW,UAAU;AACjC,UAAAlkB,IAAUqE,EAASA,EAAS,CAAA,GAAI,KAAK,aAAa,GAAGrE,CAAO;AAC5D,cAAIukB,IAAI/N,EAAM0N,GAASlkB,CAAO;AAC9B,UAAAkkB,IAAUK,EAAE,WAAW,SAASA,EAAE,aAAa,CAAC,IAAIhC,EAAO,QAAQgC,EAAE,WAAW,IAAI,CAAC;AAAA,QACjG;AACQ,eAAAC,EAAY,KAAK,YAAY,IAAI,GACjCA,EAAYN,GAAS,IAAI,GACzB,KAAK,aAAaA,GACX;AAAA,MACV,GACDX,EAAY,UAAU,cAAc,WAAY;AAG5C,iBAFI1gB,IAAQ,MACRgL,IAAQ,CAAE,GACL+G,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,UAAA/G,EAAM+G,CAAE,IAAI,UAAUA,CAAE;AAE5B,YAAIjQ,IAAS,KAAK,YACduf,IAAUrW,EACT,IAAI,SAAUhQ,GAAM;AACrB,cAAIA,aAAgB+F,EAAO;AACvB,mBAAO,CAAC/F,CAAI;AAEX,cAAI,OAAOA,KAAQ,UAAU;AAC9B,gBAAI0mB,IAAI/N,EAAM3Y,GAAMgF,EAAM,aAAa;AACvC,mBAAO0hB,EAAE,WAAW,SAASA,EAAE,aAAa,CAAC,IAAIhC,EAAO,QAAQ1kB,GAAMgF,CAAK,CAAC;AAAA,UAC5F;AACY,iBAAO,CAAE;AAAA,QACZ,CAAA,EACI,KAAM,GACP2P,IAAM7N,EAAO,WAAW,UAAU,SAAU5B,GAAO;AACnD,iBAAOA,MAAUF;AAAA,QAC7B,CAAS;AACD,eAAA2hB,EAAY,CAAC,IAAI,GAAG,IAAI,GACxB7f,EAAO,aAAa6X,EAAcA,EAAcA,EAAc,CAAA,GAAI7X,EAAO,WAAW,MAAM,GAAG6N,CAAG,GAAG,EAAI,GAAGgS,EAAYN,GAASvf,CAAM,GAAG,EAAI,GAAGA,EAAO,WAAW,MAAM6N,IAAM,CAAC,GAAG,EAAI,GAC9K;AAAA,MACV,GACD,OAAO,eAAe+Q,EAAY,WAAW,aAAa;AAAA,QACtD,KAAK,WAAY;AACb,iBAAO,KAAK,SAAU;AAAA,QACzB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GAMDA,EAAY,UAAU,YAAY,SAAUkB,GAAS;AACjD,iBAASjgB,IAAI,GAAGA,IAAI,KAAK,WAAW,QAAQA,KAAK;AAC7C,cAAIkgB,IAAY,KAAK,WAAWlgB,CAAC;AACjC,cAAIkgB,EAAU,aAAa7gB,EAAO,QAAQ;AACtC,YAAA6gB,EAAU,UAAUD,CAAO;AAAA,eAE1B;AACD,gBAAI5kB,IAAQ6kB,EAAU,QAAQ,OAAOD,CAAO;AAC5C,YAAI5kB,IAAQ,OACR6kB,EAAU,UAAUA,EAAU,QAAQ,OAAO,GAAG7kB,CAAK,GAErD,KAAK,WAAW,SAAS2E,IAAI;AAAA,UAEjD;AAAA,QACA;AACQ,eAAO;AAAA,MACV,GACD,OAAO,eAAe+e,EAAY,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,QAKtD,KAAK,WAAY;AACb,cAAIlmB,IAAM,CAAE,GACRsnB,IAAY;AAChB,mBAASC,EAAMtb,GAAK;AAChB,YAAAjM,EAAI,KAAK,KAAK,OAAOsnB,CAAS,IAAIrb,CAAG;AAAA,UACrD;AACY,mBAAS+a,EAAIxmB,GAAM;AACf,gBAAIgnB,IAAQhnB,EAAK,KAAK,IAAI,OAAOA,EAAK,EAAE,IAAI,IACxCinB,IAAWjnB,EAAK,UAAU,SAAS,IAAI,OAAOA,EAAK,UAAU,MAAM,KAAK,GAAG,CAAC,IAAI;AACpF,YAAA+mB,EAAM,GAAG,OAAO/mB,EAAK,UAAU,EAAE,OAAOgnB,CAAK,EAAE,OAAOC,CAAQ,CAAC,GAC/DH,KACA9mB,EAAK,WAAW,QAAQ,SAAU6mB,GAAW;AACzC,cAAIA,EAAU,aAAa7gB,EAAO,QAAQ,eACtCwgB,EAAIK,CAAS,IAERA,EAAU,aAAa7gB,EAAO,QAAQ,cACtC6gB,EAAU,gBACXE,EAAM,OAAO;AAAA,YAGzC,CAAiB,GACDD;AAAA,UAChB;AACY,iBAAAN,EAAI,IAAI,GACDhnB,EAAI,KAAK;AAAA,CAAI;AAAA,QACvB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GAKDkmB,EAAY,UAAU,mBAAmB,WAAY;AACjD,YAAI1gB,IAAQ,MACR4D,IAAI;AACR,oBAAK,WAAW,QAAQ,SAAU5I,GAAM;AACpC,cAAIA,EAAK,aAAagG,EAAO,QAAQ,WAAW;AAC5C,gBAAIhG,EAAK;AACL;AAEJ,YAAAA,EAAK,UAAUA,EAAK;AAAA,UACpC,MACiB,CAAIA,EAAK,aAAagG,EAAO,QAAQ,gBACtChG,EAAK,iBAAkB;AAE3B,UAAAgF,EAAM,WAAW4D,GAAG,IAAI5I;AAAA,QACpC,CAAS,GACD,KAAK,WAAW,SAAS4I,GAClB;AAAA,MACV,GAMD8c,EAAY,UAAU,mBAAmB,SAAUxN,GAAU;AACzD,mBAAWmM,EAAa,WAAWnM,GAAU,MAAM;AAAA,UAC/C,SAAS;AAAA,UACT,SAASqM,EAAU;AAAA,QAC/B,CAAS;AAAA,MACJ,GAMDmB,EAAY,UAAU,gBAAgB,SAAUxN,GAAU;AACtD,mBAAWmM,EAAa,WAAWnM,GAAU,MAAM;AAAA,UAC/C,SAAS;AAAA,UACT,SAASqM,EAAU;AAAA,QAC/B,CAAS;AAAA,MACJ,GAKDmB,EAAY,UAAU,uBAAuB,SAAUrR,GAAS;AAQ5D,iBAPI6S,IAAoB7S,EAAQ,YAAa,GACzC8S,IAAK,CAAE,GACPC,IAAQ,CAAE,GACVC,IAAuB,MACvBrlB,IAAQ,GAGLA,MAAU,UAAW;AACxB,cAAIkD,IAAQ;AAEZ;AACI,YAAAA,IAAQmiB,EAAqB,WAAWrlB,GAAO;AAAA,iBAC1CA,IAAQqlB,EAAqB,WAAW,UAAUniB,MAAU;AAErE,cAAIA,MAAU,QAAW;AACrB,YAAAmiB,IAAuBA,EAAqB,YAC5CrlB,IAAQolB,EAAM,IAAK;AACnB;AAAA,UAChB;AACY,UAAIliB,EAAM,aAAac,EAAO,QAAQ,kBAE9BqO,MAAY,OAAOnP,EAAM,YAAYgiB,MACrCC,EAAG,KAAKjiB,CAAK,GAEbA,EAAM,WAAW,SAAS,MAC1BkiB,EAAM,KAAKplB,CAAK,GAChBqlB,IAAuBniB,GACvBlD,IAAQ;AAAA,QAG5B;AACQ,eAAOmlB;AAAA,MACV,GAMDzB,EAAY,UAAU,iBAAiB,SAAUtR,GAAI;AAMjD,iBALIgT,IAAQ,CAAE,GACVC,IAAuB,MACvBrlB,IAAQ,GAGLA,MAAU,UAAW;AACxB,cAAIkD,IAAQ;AAEZ;AACI,YAAAA,IAAQmiB,EAAqB,WAAWrlB,GAAO;AAAA,iBAC1CA,IAAQqlB,EAAqB,WAAW,UAAUniB,MAAU;AAErE,cAAIA,MAAU,QAAW;AACrB,YAAAmiB,IAAuBA,EAAqB,YAC5CrlB,IAAQolB,EAAM,IAAK;AACnB;AAAA,UAChB;AACY,cAAIliB,EAAM,aAAac,EAAO,QAAQ,cAAc;AAChD,gBAAId,EAAM,OAAOkP;AACb,qBAAOlP;AAIX,YAAIA,EAAM,WAAW,SAAS,MAC1BkiB,EAAM,KAAKplB,CAAK,GAChBqlB,IAAuBniB,GACvBlD,IAAQ;AAAA,UAE5B;AAAA,QACA;AACQ,eAAO;AAAA,MACV,GAMD0jB,EAAY,UAAU,UAAU,SAAUxN,GAAU;AAChD,YAAIoP,IAAW,oBAAI,IAAK,GACpB/nB,IAAK,MACLgoB,IAAM;AACV,iBAAS5U,EAAQG,GAAMgQ,GAAO;AAE1B,mBADIvc,IAAO,MACFI,IAAI,GAAGoY,IAAI+D,EAAM,QAAQnc,IAAIoY,KAAK,CAACxY,GAAMI,KAAK;AACnD,gBAAI6gB,IAAO1E,EAAMnc,CAAC;AAClB,gBAAImM,EAAK0U,CAAI;AACT,cAAAjhB,IAAOihB;AAAA,iBAEN;AACD,kBAAItiB,IAAQoiB,EAAS,IAAIE,CAAI;AAC7B,cAAItiB,MACAqB,IAAOoM,EAAQG,GAAM,CAAC5N,CAAK,CAAC;AAAA,YAEpD;AAAA,UACA;AACY,iBAAOqB;AAAA,QACnB;AACQ,eAAOhH;AACH,UAAA+nB,EAAS,IAAI/nB,GAAIgoB,CAAG,GACpBA,IAAMhoB,GACNA,IAAKA,EAAG;AAGZ,aADAA,IAAK,MACEA,KAAI;AACP,cAAIgiB,QAAQ8C,EAAa,WAAWnM,GAAU3Y,GAAI;AAAA,YAC9C,SAAS;AAAA,YACT,SAASiH,EAASA,EAAS,IAAI+d,EAAU,OAAO,GAAG,EAAE,aAAa,SAAUvkB,GAAM;AAC1E,kBAAIkF,IAAQoiB,EAAS,IAAItnB,CAAI;AAC7B,qBAAOkF,KAAS,CAACA,CAAK;AAAA,YAC9C,GAAuB,aAAa,SAAUlF,GAAM;AAC5B,qBAAO,CAACA,CAAI;AAAA,YACpC,GAAuB,SAAS2S,GAAS,SAAS,WAAY;AACtC,qBAAO,CAAE;AAAA,YACjC,GAAuB;AAAA,UACvB,CAAa;AACD,cAAI4O;AACA,mBAAOA;AAEX,UAAAhiB,IAAKA,EAAG;AAAA,QACpB;AACQ,eAAO;AAAA,MACV,GAMDmmB,EAAY,UAAU,cAAc,SAAU1lB,GAAM;AAEhD,eAAAA,EAAK,OAAQ,GACb,KAAK,WAAW,KAAKA,CAAI,GACzBA,EAAK,aAAa,MACXA;AAAA,MACV,GACD,OAAO,eAAe0lB,EAAY,WAAW,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,QAKvD,KAAK,WAAY;AACb,iBAAO,KAAK,WAAW,CAAC;AAAA,QAC3B;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeA,EAAY,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,QAKtD,KAAK,WAAY;AACb,qBAAWpB,EAAO,SAAS,KAAK,UAAU;AAAA,QAC7C;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeoB,EAAY,WAAW,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMlD,KAAK,WAAY;AACb,cAAI,KAAK;AACL,mBAAO,KAAK;AAEhB,eAAK,SAAS,CAAE;AAChB,cAAI/B,IAAQ,KAAK;AACjB,mBAAShkB,KAAOgkB,GAAO;AACnB,gBAAIxe,IAAMwe,EAAMhkB,CAAG,KAAK;AACxB,iBAAK,OAAOA,EAAI,YAAW,CAAE,IAAI8D,EAAO0B,CAAG;AAAA,UAC3D;AACY,iBAAO,KAAK;AAAA,QACf;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeugB,EAAY,WAAW,cAAc;AAAA,QACvD,KAAK,WAAY;AACb,cAAI+B,IAAY,CAAE,GACd9D,IAAQ,KAAK;AACjB,mBAAShkB,KAAOgkB,GAAO;AACnB,gBAAIxe,IAAMwe,EAAMhkB,CAAG,KAAK;AACxB,YAAA8nB,EAAU9nB,CAAG,IAAI8D,EAAO0B,CAAG;AAAA,UAC3C;AACY,iBAAOsiB;AAAA,QACV;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAe/B,EAAY,WAAW,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,QAK1D,KAAK,WAAY;AACb,cAAI,KAAK;AACL,mBAAO,KAAK;AAEhB,cAAI/B,IAAQ,CAAE;AACd,cAAI,KAAK;AAGL,qBAFIwD,IAAK,wFACLpZ,IAAQ,QACJA,IAAQoZ,EAAG,KAAK,KAAK,QAAQ,KAAI;AACrC,kBAAIxnB,IAAMoO,EAAM,CAAC,GACb5I,IAAM4I,EAAM,CAAC,KAAK;AACtB,cAAI5I,MAAQA,EAAI,CAAC,MAAM,OAAOA,EAAI,CAAC,MAAM,SACrCA,IAAMA,EAAI,MAAM,GAAGA,EAAI,SAAS,CAAC,IACrCwe,EAAMhkB,CAAG,IAAIgkB,EAAMhkB,CAAG,KAAKwF;AAAA,YAC/C;AAEY,sBAAK,YAAYwe,GACVA;AAAA,QACV;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD+B,EAAY,UAAU,kBAAkB,SAAU/lB,GAAK;AACnD,YAAIqF,IAAQ,MACR2e,IAAQ,KAAK;AACjB,sBAAOA,EAAMhkB,CAAG,GAEZ,KAAK,UACL,OAAO,KAAK,OAAOA,CAAG,GAG1B,KAAK,WAAW,OAAO,KAAKgkB,CAAK,EAC5B,IAAI,SAAUpc,GAAM;AACrB,cAAIpC,IAAMH,EAAM,eAAe2e,EAAMpc,CAAI,CAAC;AAC1C,iBAAIpC,MAAQ,UAAUA,MAAQ,OACnBoC,IACJ,GAAG,OAAOA,GAAM,GAAG,EAAE,OAAOpC,CAAG;AAAA,QACzC,CAAA,EACI,KAAK,GAAG,GAETxF,MAAQ,SACR,KAAK,KAAK,KAEP;AAAA,MACV,GACD+lB,EAAY,UAAU,eAAe,SAAU/lB,GAAK;AAChD,eAAOA,EAAI,iBAAiB,KAAK;AAAA,MACpC,GAKD+lB,EAAY,UAAU,eAAe,SAAU/lB,GAAK;AAChD,eAAO,KAAK,MAAMA,EAAI,YAAW,CAAE;AAAA,MACtC,GAMD+lB,EAAY,UAAU,eAAe,SAAU/lB,GAAKoC,GAAO;AACvD,YAAIiD,IAAQ;AACZ,YAAI,UAAU,SAAS;AACnB,gBAAM,IAAI,MAAM,+CAA+C;AAEnE,YAAI+D,IAAKpJ,EAAI,YAAa,GACtBgkB,IAAQ,KAAK;AACjB,iBAAS7a,KAAK6a;AACV,cAAI7a,EAAE,YAAa,MAAKC,GAAI;AACxB,YAAApJ,IAAMmJ;AACN;AAAA,UAChB;AAEQ,eAAA6a,EAAMhkB,CAAG,IAAI,OAAOoC,CAAK,GAErB,KAAK,WACL,KAAK,OAAOgH,CAAE,IAAItF,EAAOkgB,EAAMhkB,CAAG,CAAC,IAGvC,KAAK,WAAW,OAAO,KAAKgkB,CAAK,EAC5B,IAAI,SAAUpc,GAAM;AACrB,cAAIpC,IAAMH,EAAM,eAAe2e,EAAMpc,CAAI,CAAC;AAC1C,iBAAIpC,MAAQ,UAAUA,MAAQ,OACnBoC,IACJ,GAAG,OAAOA,GAAM,GAAG,EAAE,OAAOpC,CAAG;AAAA,QACzC,CAAA,EACI,KAAK,GAAG,GAETxF,MAAQ,SACR,KAAK,KAAKoC,IAEP;AAAA,MACV,GAKD2jB,EAAY,UAAU,gBAAgB,SAAU7V,GAAY;AACxD,YAAI7K,IAAQ;AAEZ,eAAI,KAAK,UACL,OAAO,KAAK,QAGZ,KAAK,aACL,OAAO,KAAK,WAGhB,KAAK,WAAW,OAAO,KAAK6K,CAAU,EACjC,IAAI,SAAUtI,GAAM;AACrB,cAAIpC,IAAM0K,EAAWtI,CAAI;AACzB,iBAAIpC,MAAQ,UAAUA,MAAQ,OACnBoC,IACJ,GAAG,OAAOA,GAAM,GAAG,EAAE,OAAOvC,EAAM,eAAe,OAAOG,CAAG,CAAC,CAAC;AAAA,QACvE,CAAA,EACI,KAAK,GAAG,GACN;AAAA,MACV,GACDugB,EAAY,UAAU,qBAAqB,SAAU7O,GAAOnT,GAAM;AAC9D,YAAI+D,GAAIK,GAAIwa,GACRtd,IAAQ;AACZ,YAAI,UAAU,SAAS;AACnB,gBAAM,IAAI,MAAM,sBAAsB;AAE1C,YAAIU,IAAIiT,EAAMjV,GAAM,KAAK,aAAa;AACtC,YAAImT,MAAU,YAAY;AACtB,cAAIlC,IAAM,KAAK,WAAW,WAAW,UAAU,SAAUzP,GAAO;AAC5D,mBAAOA,MAAUF;AAAA,UACjC,CAAa;AACD,UAAA2hB,EAAYjhB,EAAE,YAAY,KAAK,UAAU,IACxC+B,IAAK,KAAK,WAAW,YAAY,OAAO,MAAMA,GAAIkX,EAAc,CAAChK,IAAM,GAAG,CAAC,GAAGjP,EAAE,YAAY,EAAK,CAAC;AAAA,QAC/G,WACiBmR,MAAU;AACf,UAAA8P,EAAYjhB,EAAE,YAAY,IAAI,IAC7BoC,IAAK,KAAK,YAAY,QAAQ,MAAMA,GAAIpC,EAAE,UAAU;AAAA,iBAEhDmR,MAAU;AACf,UAAAnR,EAAE,WAAW,QAAQ,SAAUkB,GAAG;AAC9B,YAAA5B,EAAM,YAAY4B,CAAC;AAAA,UACnC,CAAa;AAAA,iBAEIiQ,MAAU,eAAe;AAC9B,cAAIlC,IAAM,KAAK,WAAW,WAAW,UAAU,SAAUzP,GAAO;AAC5D,mBAAOA,MAAUF;AAAA,UACjC,CAAa;AACD,UAAA2hB,EAAYjhB,EAAE,YAAY,KAAK,UAAU,IACxC4c,IAAK,KAAK,WAAW,YAAY,OAAO,MAAMA,GAAI3D,EAAc,CAAChK,GAAK,CAAC,GAAGjP,EAAE,YAAY,EAAK,CAAC;AAAA,QAC3G;AAEY,gBAAM,IAAI,MAAM,wBAAwB,OAAOmR,GAAO,0EAA0E,CAAC;AAErI,eAAO;AAAA,MAIV,GACD,OAAO,eAAe6O,EAAY,WAAW,eAAe;AAAA,QACxD,KAAK,WAAY;AACb,cAAI,KAAK,YAAY;AAGjB,qBAFIzgB,IAAW,KAAK,WAAW,YAC3B0B,IAAI,GACDA,IAAI1B,EAAS,UAAQ;AACxB,kBAAIC,IAAQD,EAAS0B,GAAG;AACxB,kBAAI,SAASzB;AACT,uBAAOD,EAAS0B,CAAC,KAAK;AAAA,YAC9C;AACgB,mBAAO;AAAA,UACvB;AAAA,QACS;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAe+e,EAAY,WAAW,sBAAsB;AAAA,QAC/D,KAAK,WAAY;AACb,cAAI,KAAK,YAAY;AAIjB,qBAHIzgB,IAAW,KAAK,WAAW,YAC3B0B,IAAI,GACJ8L,IAAO,IACJ9L,IAAI1B,EAAS,UAAQ;AACxB,kBAAIC,IAAQD,EAAS0B,GAAG;AACxB,kBAAI8L;AACA,oBAAIvN,aAAiBwgB;AACjB,yBAAOxgB,KAAS;AAAA,oBAGnB,CAAI,SAASA,MACduN,IAAO;AAAA,YAE/B;AACgB,mBAAO;AAAA,UACvB;AAAA,QACS;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeiT,EAAY,WAAW,mBAAmB;AAAA,QAC5D,KAAK,WAAY;AACb,cAAI,KAAK,YAAY;AAGjB,qBAFIzgB,IAAW,KAAK,WAAW,YAC3B0B,IAAI1B,EAAS,QACV0B,IAAI,KAAG;AACV,kBAAIzB,IAAQD,EAAS,EAAE0B,CAAC;AACxB,kBAAI,SAASzB;AACT,uBAAOD,EAAS0B,IAAI,CAAC,KAAK;AAAA,YAClD;AACgB,mBAAO;AAAA,UACvB;AAAA,QACS;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAe+e,EAAY,WAAW,0BAA0B;AAAA,QACnE,KAAK,WAAY;AACb,cAAI,KAAK,YAAY;AAIjB,qBAHIzgB,IAAW,KAAK,WAAW,YAC3B0B,IAAI1B,EAAS,QACbwN,IAAO,IACJ9L,IAAI,KAAG;AACV,kBAAIzB,IAAQD,EAAS,EAAE0B,CAAC;AACxB,kBAAI8L;AACA,oBAAIvN,aAAiBwgB;AACjB,yBAAOxgB,KAAS;AAAA,oBAGnB,CAAI,SAASA,MACduN,IAAO;AAAA,YAE/B;AACgB,mBAAO;AAAA,UACvB;AAAA,QACS;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeiT,EAAY,WAAW,cAAc;AAAA,QACvD,KAAK,WAAY;AACb,iBAAO,KAAK,UAAU,SAAU;AAAA,QACnC;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GAIDA,EAAY,UAAU,QAAQ,WAAY;AACtC,eAAO/M,EAAM,KAAK,SAAU,GAAE,KAAK,aAAa,EAAE;AAAA,MACrD,GACM+M;AAAA,IACX,EAAE3f,EAAO,OAAO;AAAA;AAChB,EAAArC,EAAA,UAAkBgiB;AAElB,MAAIgC,IAAiB,0GACjBC,IAAoB,4DACpBC,IAA2B;AAAA,IAC3B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,GAAG,EAAE,GAAG,IAAM,KAAK,IAAM,GAAG,IAAM,KAAK,GAAM;AAAA,IAC7C,GAAG,EAAE,GAAG,IAAM,KAAK,IAAM,GAAG,IAAM,KAAK,GAAM;AAAA,IAC7C,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,EAC7B,GACGC,IAA2B;AAAA,IAC3B,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,IAAI,EAAE,IAAI,IAAM,OAAO,IAAM,IAAI,IAAM,OAAO,GAAM;AAAA,IACpD,IAAI,EAAE,IAAI,IAAM,OAAO,IAAM,IAAI,IAAM,OAAO,GAAM;AAAA,IACpD,IAAI,EAAE,IAAI,IAAM,OAAO,IAAM,IAAI,IAAM,OAAO,GAAM;AAAA,IACpD,IAAI,EAAE,IAAI,IAAM,OAAO,IAAM,IAAI,IAAM,OAAO,GAAM;AAAA,EACvD,GACGC,IAAY;AAOhB,WAASC,EAAW5gB,GAAMhF,GAAS;AAC/B,QAAIsF,GAAIK;AACR,IAAI3F,MAAY,WAAUA,IAAU,CAAA;AACpC,QAAImhB,IAAU,IAAIkB,EAAW,SAAS/c,IAAuDtF,GAAQ,aAAa,QAAQsF,MAAO,SAAS,SAASA,EAAG,eAAeK,IAAuD3F,GAAQ,aAAa,QAAQ2F,MAAO,SAAS,SAASA,EAAG,IAAI,GACrR6a,IAAWxgB,EAAQ,qBAAqB;AAAA,MACxC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,OAAO;AAAA,MACP,KAAK;AAAA,IACR,GACG6lB,IAAgB,OAAO,KAAKrF,CAAQ,GACpCsF,IAAqBD,EAAc,IAAI,SAAUE,IAAI;AAAE,aAAO,IAAI,OAAO,IAAI,OAAOA,IAAI,GAAG,GAAG,GAAG;AAAA,IAAE,CAAE,GACrGC,IAAkBH,EAAc,OAAO,SAAUE,IAAI;AAAE,aAAO,EAAQvF,EAASuF,EAAE;AAAA,IAAG,CAAE,EAAE,IAAI,SAAUA,IAAI;AAAE,aAAO,IAAI,OAAO,IAAI,OAAOA,IAAI,GAAG,GAAG,GAAG;AAAA,IAAE,CAAE;AAC9J,aAASE,EAAyB3X,IAAK;AACnC,aAAO0X,EAAgB,KAAK,SAAUD,IAAI;AAAE,eAAOA,GAAG,KAAKzX,EAAG;AAAA,OAAI;AAAA,IAC1E;AACI,aAAS4X,EAAsB5X,IAAK;AAChC,aAAOwX,EAAmB,KAAK,SAAUC,IAAI;AAAE,eAAOA,GAAG,KAAKzX,EAAG;AAAA,OAAI;AAAA,IAC7E;AACI,QAAI6X,IAAc,SAAUrE,IAAUC,IAAQ;AAAE,aAAO,CAACD,KAAWsE,IAAiBrE,KAASqE,EAAe;AAAA,IAAI,GAC5GnoB,IAAO,IAAIslB,EAAY,MAAM,CAAE,GAAE,IAAI,MAAM,CAAC,GAAGve,EAAK,MAAM,GAAGmc,GAASnhB,CAAO,GAC7EqmB,IAAgBpoB,GAChBgnB,IAAQ,CAAChnB,CAAI,GACbqoB,KAAc,IACdC,KAAmB,QACnB3a;AAEJ,IAAA5G,IAAO,IAAI,OAAO2gB,GAAW,GAAG,EAAE,OAAO3gB,GAAM,IAAI,EAAE,OAAO2gB,GAAW,GAAG;AAI1E,aAHIa,KAAmBxmB,EAAQ,kBAAkBymB,KAAiBzmB,EAAQ,gBACtE0mB,KAAa1hB,EAAK,UAAU2gB,EAAU,SAAS,IAC/CS,KAAkBT,EAAU,SAAS,GACjC/Z,KAAQ2Z,EAAe,KAAKvgB,CAAI,KAAI;AAGxC,UAAI2hB,KAAY/a,GAAM,CAAC,GAAGgb,KAAehb,GAAM,CAAC,GAAGsG,IAAUtG,GAAM,CAAC,GAAG8B,KAAa9B,GAAM,CAAC,GAAG+V,KAAe/V,GAAM,CAAC,GAChHib,KAAcF,GAAU,QACxBG,KAAcvB,EAAe,YAAYsB,IACzCE,KAAYxB,EAAe;AAE/B,UAAIe,KAAc,MACVA,KAAcO,KAAcE,IAAW;AACvC,YAAItf,KAAOzC,EAAK,UAAUshB,IAAaQ,EAAW;AAClD,QAAAT,EAAc,YAAY,IAAI9D,EAAO,QAAQ9a,IAAM4e,GAAeF,EAAYG,IAAaQ,EAAW,CAAC,CAAC;AAAA,MACxH;AAKQ,UAHAR,KAAcf,EAAe,WAGzBrT,MAAYyT,GAGhB;AAAA,YAAIgB,GAAU,CAAC,MAAM,KAAK;AACtB,cAAI3mB,EAAQ,SAAS;AAEjB,gBAAIyH,KAAOzC,EAAK,UAAU8hB,KAAc,GAAGC,KAAY,CAAC;AACxD,YAAAV,EAAc,YAAY,IAAI/D,EAAU,QAAQ7a,IAAM4e,GAAeF,EAAYW,IAAaC,EAAS,CAAC,CAAC;AAAA,UACzH;AACY;AAAA,QACZ;AAMQ,YAHIP,OACAtU,IAAUA,EAAQ,YAAa,IAE/B,CAAC0U,IAAc;AAGf,mBADIpF,KAAQ,CAAE,GACLwF,KAAW,QAASA,KAAWxB,EAAkB,KAAK9X,EAAU,KAAK;AAC1E,gBAAIlQ,KAAMwpB,GAAS,CAAC,GAAGhkB,KAAMgkB,GAAS,CAAC,GACnCC,KAAWjkB,GAAI,CAAC,MAAM,OAAOA,GAAI,CAAC,MAAM;AAC5C,YAAAwe,GAAMhkB,GAAI,YAAa,CAAA,IAAIypB,KAAWjkB,GAAI,MAAM,GAAGA,GAAI,SAAS,CAAC,IAAIA;AAAA,UACrF;AACY,cAAIkkB,KAAgBb,EAAc;AAClC,UAAI,CAAC1E,MAAgB8D,EAAyByB,EAAa,KACnDzB,EAAyByB,EAAa,EAAEhV,CAAO,MAC/C+S,EAAM,IAAK,GACXoB,QAAoBlE,EAAO,SAAS8C,CAAK,IAI7CwB,OAAmBvU,MAAY,OAAOA,MAAY,SAC9CqU,OAAqB,WACrBtB,EAAM,OAAOsB,EAAgB,GAC7BF,QAAoBlE,EAAO,SAAS8C,CAAK,IAE7CsB,KAAmBtB,EAAM;AAE7B,cAAIkC,KAAc5B,EAAe,WAC7B6B,KAAgBD,KAAcN;AAKlC,cAJAR,IAAgBA,EAAc;AAAA;AAAA,YAE9B,IAAI9C,EAAYrR,GAASsP,IAAO9T,GAAW,MAAM,CAAC,GAAG,MAAMyY,EAAYiB,IAAeD,EAAW,GAAGhG,GAASnhB,CAAO;AAAA,UAAC,GACrHilB,EAAM,KAAKoB,CAAa,GACpBH,EAAsBhU,CAAO,GAAG;AAEhC,gBAAImV,KAAc,KAAK,OAAOnV,GAAS,GAAG,GACtCoV,KAAad,KACXxhB,EAAK,kBAAmB,EAAC,QAAQqiB,IAAa9B,EAAe,SAAS,IACtEvgB,EAAK,QAAQqiB,IAAa9B,EAAe,SAAS,GACpDgC,KAAaD,OAAe,KAAKZ,KAAaY;AAClD,gBAAIrB,EAAyB/T,CAAO,GAAG;AACnC,kBAAIzK,KAAOzC,EAAK,UAAUmiB,IAAaI,EAAU;AACjD,cAAI9f,GAAK,SAAS,KAAK,KAAK,KAAKA,EAAI,KACjC4e,EAAc,YAAY,IAAI9D,EAAO,QAAQ9a,IAAM4e,GAAeF,EAAYgB,IAAaI,EAAU,CAAC,CAAC;AAAA,YAE/H;AACgB,YAAID,OAAe,KACfhB,KAAcf,EAAe,YAAYvgB,EAAK,SAAS,KAGvDshB,KAAcf,EAAe,YAAY+B,KAAaD,GAAY,QAElET,KAAe;AAAA,UAEnC;AAAA,QACA;AAEQ,YAAIA,MAAgBjF,MAAgBR,EAAQ,cAAcjP,CAAO;AAC7D;AAGI,gBAFIqU,MAAoB,SAASrU,MAAY,OAAOA,MAAY,SAC5DqU,KAAmB,SACnBF,EAAc,eAAenU,GAAS;AAEtC,cAAAmU,EAAc,MAAM,CAAC,IAAIF,EAAY,IAAI,KAAK,IAAIG,IAAaS,EAAS,CAAC,EAAE,CAAC,GAC5E9B,EAAM,IAAK,GACXoB,QAAoBlE,EAAO,SAAS8C,CAAK;AACzC;AAAA,YACpB,OACqB;AACD,kBAAIiC,KAAgBb,EAAc;AAElC,kBAAIX,EAAyBwB,EAAa,KAClCxB,EAAyBwB,EAAa,EAAEhV,CAAO,GAAG;AAClD,gBAAA+S,EAAM,IAAK,GACXoB,QAAoBlE,EAAO,SAAS8C,CAAK;AACzC;AAAA,cAC5B;AAGoB;AAAA,YACpB;AAAA;AAAA,IAGA;AACI,WAAOA;AAAA,EACX;AACA,EAAA1jB,EAAA,aAAqBqkB;AAKrB,WAASpP,EAAMxR,GAAMhF,GAAS;AAC1B,IAAIA,MAAY,WAAUA,IAAU,CAAA;AAmCpC,aAlCIilB,IAAQW,EAAW5gB,GAAMhF,CAAO,GAChC/B,IAAOgnB,EAAM,CAAC,GACduC,IAAU,WAAY;AAEtB,UAAIC,IAAOxC,EAAM,IAAK,GAClByC,QAAgBvF,EAAO,SAAS8C,CAAK;AACzC,MAAIwC,EAAK,cAAcA,EAAK,WAAW,eAC/BA,EAAK,eAAeC,KAAaD,EAAK,YAAYC,EAAU,UAGxD1nB,EAAQ,wBAAwB,OAChC0nB,EAAU,YAAYD,CAAI,GAC1BA,EAAK,WAAW,QAAQ,SAAU1kB,GAAO;AACrC,QAAA2kB,EAAU,WAAW,YAAY3kB,CAAK;AAAA,MAC9D,CAAqB,GACDkiB,EAAM,IAAK,KAOXjlB,EAAQ,wBAAwB,OAChC0nB,EAAU,YAAYD,CAAI,GAC1BA,EAAK,WAAW,QAAQ,SAAU1kB,GAAO;AACrC,QAAA2kB,EAAU,YAAY3kB,CAAK;AAAA,MACnD,CAAqB;AAAA,IAOhB,GACMkiB,EAAM,SAAS;AAClB,MAAAuC,EAAS;AAOb,WAAOvpB;AAAA,EACX;AACA,EAAAsD,EAAA,QAAgBiV;AAChB,WAASgO,EAAY3W,GAAOlJ,GAAQ;AAChC,WAAOkJ,EAAM,IAAI,SAAUhQ,GAAM;AAC7B,aAAAA,EAAK,aAAa8G,GACX9G;AAAA,IACf,CAAK;AAAA,EACL;;;;;;AChsCA,WAAO,eAAcf,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,UAAkB;AAClB,QAAI6qB,IAAgCllB,gBAAAA,GAAA;AACpC,WAAO,eAAe3F,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO6qB,EAAO;AAAA,IAAM,EAAI,CAAA;AAAA;;;;;UCHzG,OAAO,eAAeC,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,MAAID,IAAgCllB,gBAAAA,GAAA;AAKpC,WAASolB,EAAM7iB,GAAMhF,GAAS;AAC1B,IAAIA,MAAY,WAAUA,IAAU,CAAA;AACpC,QAAIilB,QAAY0C,EAAO,YAAY3iB,GAAMhF,CAAO;AAChD,WAAeilB,EAAM,WAAW;AAAA,EACpC;AACA2C,SAAAA,GAAA,UAAkBC;;;;;;ACXlB,MAAIpkB,IAAmBlB,KAAQA,EAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAeokB,GAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,WAAmBA,EAAA,WAAmBA,EAAA,OAAeA,EAAa,QAAGA,EAAmB,cAAGA,EAAmB,cAAGA,EAAa,QAAG;AACjI,MAAIxF,IAAY7e,sBAA0C;AACvC,EAAAqkB,EAAA,cAAGxF,EAAU;AAChC,MAAIqF,IAASlkB,sBAAuC;AACjC,EAAAqkB,EAAA,cAAGH,EAAO;AAC7B,MAAI/jB,IAASH,sBAAuC;AACxC,EAAAqkB,EAAA,OAAGlkB,EAAO;AACtB,MAAI2e,IAAS9e,sBAAuC;AACpC,EAAAqkB,EAAA,WAAGvF,EAAO;AAC1B,MAAI1e,IAASJ,sBAAuC;AACpC,EAAAqkB,EAAA,WAAGjkB,EAAO;AAC1B,MAAIoW,IAAUxW,sBAAkC,GAC5CmkB,IAAUnkB,sBAAkC;AACnC,EAAAqkB,EAAA,QAAGF,EAAQ;AACxB,WAASpR,EAAMxR,GAAMhF,GAAS;AAC1B,WAAIA,MAAY,WAAUA,IAAU,CAAA,QACzBia,EAAQ,SAASjV,GAAMhF,CAAO;AAAA,EAC7C;AACA,SAAA8nB,EAAA,UAAkBtR,GAClBsR,EAAA,QAAgBtR,GAChBA,EAAM,QAAQyD,EAAQ,SACtBzD,EAAM,cAAcmR,EAAO,SAC3BnR,EAAM,cAAc8L,EAAU,SAC9B9L,EAAM,QAAQoR,EAAQ,SACtBpR,EAAM,OAAO5S,EAAO,SACpB4S,EAAM,WAAW+L,EAAO,SACxB/L,EAAM,WAAW3S,EAAO;;;;;UC9BxB,OAAO,eAAekkB,GAAS,cAAc,EAAE,OAAO,IAAM,GAC5CA,EAAA,WAAGA,cAAoBA,EAAA,gBAAwBA,EAAiB,YAAGA,EAAiB,YAAGA,EAAiC,4BAAGA,gBAAsBA,EAAA,eAAuBA,EAAwB,mBAAGA,aAAmBA,EAAA,eAAuB;AAC7P,QAAMC,IAAWvlB,GAAmB,GAI9BwlB,IAAe,CAAC1jB,MAAMA,EAAE,QAAQ,cAAc,EAAE;AACtD,EAAAwjB,EAAA,eAAuBE;AACvB,QAAMC,IAAW,CAACC,GAAQC,MAAgB,GAAGA,CAAW,GAAGD,CAAM,GAAGC,CAAW;AAC/E,EAAAL,EAAA,WAAmBG;AACnB,QAAMG,IAAmB,CAAC9jB,MAAM,CAAC,KAAK,KAAKA,CAAC;AAC5C,EAAAwjB,EAAA,mBAA2BM;AAI3B,WAASC,EAAa/jB,GAAG;AACrB,UAAMgkB,IAAQ,CAAE,GACVC,IAASjkB,EAAE;AACjB,aAASC,IAAI,GAAGsd,IAAW,GAAGtd,IAAIgkB,GAAQ,EAAEhkB,GAAG;AAC3C,UAAIoF,IAAOrF,EAAE,OAAOC,CAAC,GACjBikB,IAAc;AAClB,MAAI7e,MAAS,OACT6e,IAAelkB,EAAE,OAAOC,IAAI,CAAC,MAAM;AAAA,IAAQ;AAAA,IAASoF,IAC/CA,MAAS;AAAA,MACd6e,IAAc7e;AAClB,YAAMmY,IAAS0G,IAAcjkB,IACzBA,MAAOgkB,IAAS,IAAKhkB,IAAI,IACrB;AACR,MAAIud,MAAW,WAEfwG,EAAM,KAAK;AAAA,QACP,MAAMhkB,EAAE,MAAMud,GAAUC,CAAM;AAAA,QAC9B,aAAA0G;AAAA,MACZ,CAAS,GACD3G,IAAWC,IAAS0G,EAAY,QAC5BA,EAAY,SAAS,KACrB,EAAEjkB;AAAA,IACd;AACI,WAAO+jB;AAAA,EACX;AACA,EAAAR,EAAA,eAAuBO;AAIvB,WAASI,EAAYxE,GAASkE,GAAa;AAIvC,IAD+BlE,EAAQ,QAAQkE,CAAW,KAC5B,MAC1BlE,IAAUA,EAAQ,QAAQ,IAAI,OAAO,cAAckE,EAAY,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI;AACtG,UAAMG,IAAQD,EAAapE,CAAO;AAClC,QAAI7mB,IAAM;AACV,eAAW,EAAE,MAAAoK,GAAM,aAAAghB,EAAW,KAAMF,GAAO;AACvC,UAAI/jB,IAAI,GACJsd,GACAC;AACJ,aAAOvd,KAAK,KAAKA,IAAIiD,EAAK;AACtB,QAAI,OAAO,KAAKA,EAAKjD,CAAC,CAAC,MACfsd,MAAa,UACbA,IAAWtd,GACXA,IAAIiD,EAAK,WAGTsa,IAASvd,GACTA,IAAI,OAGRsd,MAAa,SACb,EAAEtd,IAEF,EAAEA;AAGV,UAAIsd,MAAa,QAAW;AACxB,QAAAzkB,KAAOoK,IAAOghB;AACd;AAAA,MACZ;AACQ,MAAI1G,MAAW,WACXA,IAASta,EAAK,SAAS;AAC3B,YAAMkhB,IAAe7G,IAAW,IAAIra,EAAKqa,IAAW,CAAC,IAAI,IACnD8G,IAAgB7G,IAAUta,EAAK,SAAS,IAAKA,EAAKsa,IAAS,CAAC,IAAI,IAChE8G,IAAaphB,EAAK,MAAMqa,GAAUC,IAAS,CAAC;AAClD,MAAA1kB,KAAOsrB,IAAeP,IAAcS,IAAaT,IAAcQ,IAAgBH;AAAA,IACvF;AACI,WAAOprB;AAAA,EACX;AACA,EAAA0qB,EAAA,cAAsBW;AACtB,QAAMI,IAA4B,CAACvkB,MAAM;AACrC,UAAMlH,IAAM,EAAE,YAAY,GAAG,UAAU,EAAG,GACpC0rB,IAAO,KAAK,IAAIxkB,EAAE,SAAS,IAAI,CAAC;AACtC,aAASC,IAAID,EAAE,SAAS,GAAGC,KAAKukB,GAAM,EAAEvkB,GAAG;AACvC,YAAMiU,IAAQlU,EAAE,MAAMC,GAAGA,IAAI,CAAC;AAC9B,UAAI,CAAC,KAAK,KAAKiU,CAAK;AAChB;AACJ,QAAEpb,EAAI,YACF,CAAC,MAAM;AAAA,CAAI,EAAE,SAASob,CAAK,KAC3B,EAAEpb,EAAI;AAAA,IAClB;AACI,WAAOA;AAAA,EACV;AACD,EAAA0qB,EAAA,4BAAoCe;AAMpC,QAAME,IAAY,CAACtrB,GAAGkC,MAAUlC,IAAMkC,MAAU,SAAaA,IAAQ,OAAOlC,CAAC,IAAK;AAClF,EAAAqqB,EAAA,YAAoBiB;AAKpB,WAASC,EAAsB1nB,GAAM;AACjC,QAAI;AACA,UAAI,EAAmD,QAAO,aAAe,IAAI,OAAO,UAAS,EAAI,gBAAgB,IAAI,WAAW;AAChI;AAAA,IACZ,QACe;AACP;AAAA,IACR;AAEI,QAAIiS;AACJ,QAAI;AACA,MAAAA,IAAM,SAAS,eAAe,mBAAmB,EAAE,EAAE,KAAM;AAAA,IACnE,SACW4L,GAAG;AACN,YAAM,EAAE,eAAA8J,EAAa,IAAK;AAC1B,UAAIA,GAAe;AACf,cAAM1V,IAAM0V,EAAc,UAAU;AACpC,eAAA1V,EAAI,aAAa,MACVA,EAAI,KAAM;AAAA,MAC7B;AACQ,YAAM4L;AAAA,IACd;AAEI,WAAA5L,EAAI,MAAM,yBAAyBjS,IAAO,uBAAuB,GACjEiS,EAAI,MAAO,GACJA,EAAI;AAAA,EACf;AACA,QAAM2V,IAAoB,MAAM;AAC5B,QAAI;AACA,aAAkCniB,GAAA,EAAC;AAAA,IAC3C,QACe;AACP;AAAA,IACR;AAAA,EACC;AAID,WAASoiB,EAAU7nB,GAAMvB,GAAS;AAC9B,QAAIqpB;AAEJ,IAAAC,EAAU,OAAO;AACjB,QAAIlsB;AACJ,QAAI4C,EAAQ;AACR,UAAI;AACA,QAAA5C,IAAK6rB,EAAsB1nB,CAAI;AAAA,MAC3C,SACe6d,GAAG;AAEN,YADAiK,IAAgBF,EAAmB,GAC/BE;AACA,kBAAQ,KAAK,uDAAuDjK,CAAC;AAAA;AAErE,gBAAMA;AAAA,MACtB;AAAA;AAGQ,MAAAiK,IAAgBF,EAAmB;AACvC,WAAK/rB,MACDA,IAAKisB,EAAc9nB,GAAMymB,EAAS,oBAAoB,IAC1DuB,EAAS,OAAO,GACTnsB;AAAA,EACX;AACA,EAAA2qB,EAAA,YAAoBqB;AACpB,WAASI,EAAc3rB,GAAM;AACzB,QAAI,CAAC4rB,EAAW5rB,EAAK,UAAU;AAC3B,aAAOA,EAAK;AAChB,UAAMR,IAAM,CAAE;AACd,WAAAQ,EAAK,WAAW,QAAQ,CAAA4G,MAAKpH,EAAI,KAAKoH,CAAC,CAAC,GACjCpH;AACP,aAASosB,EAAW/rB,GAAG;AACnB,aAAQA,KAAK,QAAU,OAAOA,EAAE,OAAO,QAAQ,KAAM;AAAA,IAC7D;AAAA,EACA;AACA,EAAAqqB,EAAA,gBAAwByB;AACxB,WAASF,EAAUI,GAAO;AACtB,IAAI,QAAQ,IAAI,YACZ,QAAQ,KAAKA,CAAK;AAAA,EAC1B;AACA,EAAA3B,EAAA,YAAoBuB;AACpB,WAASC,EAASG,GAAO;AACrB,IAAI,QAAQ,IAAI,YACZ,QAAQ,QAAQA,CAAK;AAAA,EAC7B;AACA,SAAA3B,EAAA,WAAmBwB;;;;;ACnMnB,WAAO,eAAczsB,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAA+B,uBAAAA,EAAA,uBAA+BA,EAAsC,8BAAAA,EAAA,4BAAoCA,EAAmC,2BAAAA,EAAA,wBAAgCA,EAA6B,qBAAAA,EAAA,iBAAyBA,EAA8B,sBAAAA,EAAA,wBAAgCA,EAA+B,uBAAA;AAC9V,UAAM6sB,IAAclnB,GAAsB,GACpCmnB,IAAe5iB,GAAuB;AAI5C,IAAAlK,EAA+B,uBAAA;AAAA,MAC3B;AAAA,MAAW;AAAA,MAAW;AAAA,MAAS;AAAA,MAAS;AAAA,MAAc;AAAA,MAAQ;AAAA,MAAU;AAAA,MAAU;AAAA,MAAM;AAAA,MAAO;AAAA,MAAO;AAAA,MACtG;AAAA,MAAM;AAAA,MAAY;AAAA,MAAc;AAAA,MAAU;AAAA,MAAU;AAAA,MAAQ;AAAA,MAAY;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MACtG;AAAA,MAAU;AAAA,MAAU;AAAA,MAAM;AAAA,MAAQ;AAAA,MAAW;AAAA,MAAM;AAAA,MAAQ;AAAA,MAAQ;AAAA,MAAO;AAAA,MAAY;AAAA,MAAY;AAAA,MAClG;AAAA,MAAU;AAAA,MAAK;AAAA,MAAO;AAAA,MAAW;AAAA,MAAS;AAAA,MAAS;AAAA,MAAM;AAAA,MAAS;AAAA,MAAM;AAAA,MAAS;AAAA,MAAM;AAAA,IAC1F,GACDA,EAAgC,wBAAA;AAAA,MAC5B;AAAA,MAAQ;AAAA,MAAQ;AAAA,MAAO;AAAA,MAAW;AAAA,MAAS;AAAA,MAAQ;AAAA,MAAS;AAAA,MAAU;AAAA,MAAQ;AAAA,MAAQ;AAAA,MAAS;AAAA,MAC/F;AAAA,MAAU;AAAA,MAAS;AAAA,MAAS;AAAA,IAC/B,GACDA,EAAA,sBAA8B,CAAC,MAAM,MAAM,KAAK,GAMhDA,EAAyB,iBAAA,OAAO,OAAO;AAAA,MACnC,oBAAoB;AAAA,MACpB,WAAW;AAAA,MACX,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYxB,cAAc,CAAC,kBAAkB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcvC,iBAAiB;AAAA,QACb;AAAA,QACA;AAAA,MACH;AAAA,MACD,gBAAgB;AAAA,IACpB,CAAC,GAKDA,EAA6B,qBAAA;AAAA;AAAA,MAEzB,KAAO,EAAE,UAAU,IAAM,oBAAoB,GAAM;AAAA;AAAA,MAEnD,IAAM,EAAE,SAAS;AAAA,GAAQ,SAAS,GAAO;AAAA;AAAA,MAEzC,IAAM,EAAE,SAAS,OAAO,SAAS,GAAO;AAAA;AAAA,MAExC,qBAAqB,CAAC,EAAE,MAAAe,SAAY;AAAA,QAChC,QAAQ,IAAI,OAAO,CAACA,EAAK,QAAQ,OAAO,CAAC,CAAC,IAAI;AAAA,MACtD;AAAA;AAAA,MAEI,YAAY;AAAA,QACR,sBAAsB;AAAA,QACtB,aAAa,CAAC,EAAE,SAAAqmB,GAAS,SAAS,EAAE,iBAAA2F,EAAe,YAAaF,EAAY,kBAAkBzF,CAAO,IAC/F0F,EAAa,kBAAkB,iBAC3BD,EAAY,aAAazF,GAAS2F,CAAe;AAAA,MAC9D;AAAA;AAAA,MAED,gBAAgB;AAAA,QACZ,sBAAsB;AAAA,QACtB,aAAa,CAAC,EAAE,SAAA3F,GAAS,SAAS,EAAE,iBAAA4F,EAAe,YAAaH,EAAY,kBAAkBzF,CAAO,IAC/F0F,EAAa,kBAAkB,iBAC3BD,EAAY,aAAazF,GAAS4F,CAAe;AAAA,MAC9D;AAAA;AAAA,MAED,QAAQ;AAAA,QACJ,sBAAsB;AAAA,QACtB,aAAa,CAAC,EAAE,SAAA5F,GAAS,SAAS,EAAE,aAAA6F,EAAW,YAAaJ,EAAY,kBAAkBzF,CAAO,IAC3F0F,EAAa,kBAAkB,iBAC3BD,EAAY,aAAazF,GAAS6F,CAAW;AAAA,MAC1D;AAAA;AAAA,MAED,SAAS,CAAC,EAAE,UAAAC,SAAgB;AAAA,QACxB,qBAAqBA,IAAW,IAAI;AAAA,MAC5C;AAAA;AAAA,MAEI,IAAM,CAAC,EAAE,SAAS,EAAE,cAAAC,EAAc,GAAE,aAAAC,GAAa,UAAAF,GAAU,gBAAAG,QAAqB;AAC5E,cAAMC,IAAmB,EAAEF,KAAe;AAC1C,eAAO;AAAA,UACH,QAAQ,MAAM,OAAO,EAAEA,KAAe,EAAE,KACjCF,MAAa,QAAUG,MAAmB,SAAc,GAAGA,CAAc,OAAO,GAAGF,CAAY;AAAA,UACtG,qBAAqB;AAAA,UACrB,aAAa,CAAC,EAAE,SAAA/F,EAAO,UAAWyF,EAAY,kBAAkBzF,CAAO,IACjE0F,EAAa,kBAAkB,aAC/B1F,EACG,KAAI,EACJ,QAAQ,wBAAwB;AAAA,EAAS,MAAM,OAAOkG,CAAgB,CAAC,EAAE,EACzE,QAAQ,uBAAuB,MAAM;AAAA,QACjD;AAAA,MACJ;AAAA;AAAA,MAED,YAAc;AAAA,QACV,aAAa,CAAC,EAAE,SAAAlG,EAAS,UAASyF,EAAY,cAAczF,CAAO,EAAE,QAAQ,qBAAqB,MAAM;AAAA,MAC3G;AAAA;AAAA,MAED,MAAQ,CAAC,EAAE,MAAArmB,GAAM,QAAA8G,GAAQ,SAAS,EAAE,WAAA0lB,GAAW,gBAAAC,KAAkB,SAAA1sB,QAAc;AAC3E,YAAI0H,GAAIK;AAGR,YAAI,EAFgB,CAAC,OAAO,aAAa,EAAE,SAAyDhB,GAAO,OAAO,KAAKA,EAAO,WAAW,SAAS;AAG9I,iBAAO;AAAA,YACH,sBAAsB;AAAA,YACtB,UAAU;AAAA,YACV,aAAa,CAAC,EAAE,SAAAuf,QAAc;AAC1B,kBAAI5e,GAAIK;AAER,oBAAM4kB,IAAY,SAAS5kB,KAAML,IAAK4e,EAAQ,MAAM,KAAK,OAAO,QAAQ5e,MAAO,SAAS,SAASA,EAAG,KAAK,CAACwM,GAAGxO,MAAMA,EAAE,SAASwO,EAAE,MAAM,OAAO,QAAQnM,MAAO,SAAS,SAASA,EAAG,CAAC,MAAM,KAClL6kB,IAAUD,EAAU,SAAS,IAAI,MAAM;AAC7C,yBAAWZ,EAAY,cAAcA,EAAY,UAAUzF,GAASsG,CAAO,GAAGD,CAAS;AAAA,YAC3G;AAAA,UACa;AAEL,YAAID,MAAmB,UAAU;AAC7B,gBAAMG,MAAa9kB,KAAML,IAAKzH,EAAK,aAAa,OAAO,OAAO,QAAQyH,MAAO,SAAS,SAASA,EAAG,MAAM,gBAAgB,OAAO,QAAQK,MAAO,SAAS,SAASA,EAAG,CAAC,MAAM;AAC1K,iBAAO;AAAA,YACH,UAAU;AAAA,YACV,QAAQ0kB,IAAYI,IAAW;AAAA;AAAA,YAC/B,SAAS;AAAA,IAAOJ;AAAA,YAChB,kBAAkBzsB,EAAQ,SAAS;AAAA,UACtC;AAAA,QACb;AAEY,iBAAO;AAAA,YACH,UAAU;AAAA,YACV,aAAa,CAAC,EAAE,SAAAsmB,EAAS,MAAKA,EAAQ,QAAQ,OAAO,MAAM;AAAA,YAC3D,kBAAkBtmB,EAAQ,SAAS;AAAA,UACtC;AAAA,MAER;AAAA;AAAA,MAED,OAAS,CAAC,EAAE,SAAAA,SAAe;AAAA,QACvB,qBAAqB;AAAA,QACrB,kBAAkBA,EAAQ,SAAS;AAAA,QACnC,aAAa,CAAC,EAAE,SAAAsmB,GAAS,cAAAlmB,GAAc,MAAAH,EAAI,MAAO;AAE9C,gBAAM6sB,QAAcf,EAAY,cAAczF,CAAO,EAAE,IAAI,CAAC,EAAE,MAAAzc,EAAM,MAAKA,EAAK,QAAQ,4BAA4B,IAAI,CAAC,GAEjHkjB,IAAO,CAAE;AACf,cAAIC,IAAW,CAAE;AACjB,qBAAWC,KAAOH,GAAS;AACvB,gBAAI,CAACG;AACD;AAEJ,kBAAMC,IAAOD,EAAI,MAAM,IAAI,EAAE,IAAI,CAACjjB,GAAGpD,OACjCoD,IAAIA,EAAE,KAAM,IACRgjB,EAAS,SAASpmB,IAAI,KAAKomB,EAASpmB,CAAC,IAAIoD,EAAE,YAC3CgjB,EAASpmB,CAAC,IAAIoD,EAAE,SACbA,EACV;AACD,YAAA+iB,EAAK,KAAKG,CAAI;AAAA,UAC9B;AACY,cAAIH,EAAK,SAAS;AACd,mBAAOf,EAAa,kBAAkB;AAE1C,gBAAMmB,IAAUH,EAAS;AACzB,cAAIvtB,IAAM;AACV,gBAAM2tB,IAAUhtB,EAAa,IAAIH,CAAI,EAAE,UAAU;AACjD,iBAAImtB,MACA3tB,KAAO2tB,IAAU;AAAA,IACrBL,EAAK,QAAQ,CAACG,GAAMG,MAAc;AAC9B,gBAAI3lB;AACJ,YAAAjI,KAAO;AAEP,qBAASmH,IAAI,GAAGA,IAAIumB,GAASvmB,KAAK;AAC9B,kBAAIoD,KAAMtC,IAAKwlB,EAAKtmB,CAAC,OAAO,QAAQc,MAAO,SAASA,IAAK;AACzD,cAAAsC,KAAK,IAAI,OAAO,KAAK,IAAI,GAAIgjB,EAASpmB,CAAC,IAAIoD,EAAE,MAAQ,CAAA,GACrDvK,KAAOuK,IAAI,QAAQpD,IAAIumB,IAAU,IAAI,MAAM;AAAA,YAC/D;AACgB,YAAA1tB,KAAO;AAAA,GAEH4tB,MAAc,MACd5tB,KAAO,MAAMutB,EAAS,IAAI,CAAAM,MAAK,MAAM,IAAI,OAAOA,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI;AAAA;AAAA,UAC1F,CAAa,GACM7tB;AAAA,QACnB;AAAA,MACA;AAAA;AAAA,MAEI,GAAK,CAAC,EAAE,MAAAQ,GAAM,SAAAmC,GAAS,SAAApC,EAAO,MAAO;AACjC,cAAMuW,IAAOtW,EAAK,aAAa,MAAM;AACrC,YAAI,CAACsW;AACD,iBAAO,CAAE;AAEb,YAAIgX,IAAc;AAClB,mBAAWC,KAAOjX;AACd,kBAAQiX,GAAG;AAAA,YACP,KAAK;AACD,cAAAD,KAAe;AACf;AAAA,YACJ,KAAK;AACD,cAAAA,KAAe;AACf;AAAA,YACJ,KAAK;AACD,cAAAA,KAAe;AACf;AAAA,YACJ,KAAK;AACD,cAAAA,KAAe;AACf;AAAA,YACJ;AACI,cAAAA,KAAeC;AAAA,UACnC;AAEQ,cAAMC,IAAQxtB,EAAK,aAAa,OAAO;AAGvC,eAAIA,EAAK,gBAAgBsW,KAAQnU,EAAQ,iBAC9B,EAAE,SAAS,IAAImrB,CAAW,IAAK,IACnC;AAAA,UACH,aAAa,CAAC,EAAE,SAAAjH,EAAS,MAAKA,EAAQ,QAAQ,eAAe,GAAG;AAAA,UAChE,kBAAkBtmB,EAAQ,SAAS;AAAA,UACnC,QAAQ;AAAA,UACR,SAAS,OAAQoC,EAAQ,8BAEnB,IAAIpC,EAAQ,sBAAsButB,CAAW,CAAC,MAD9C,IAAIA,CAAW,GAAGE,IAAQ,KAAKA,CAAK,MAAM,EAAE;AAAA,QAErD;AAAA,MACJ;AAAA;AAAA,MAED,KAAO,CAAC,EAAE,MAAAxtB,GAAM,SAAAmC,QAAc;AAC1B,cAAMsrB,IAAMztB,EAAK,aAAa,KAAK,KAAK;AACxC,YAAI,CAACytB,KAAQ,CAACtrB,EAAQ,kBAAkB,UAAU,KAAKsrB,CAAG;AACtD,iBAAO,EAAE,QAAQ,GAAM;AAC3B,cAAMC,IAAM1tB,EAAK,aAAa,KAAK,KAAK,IAClCwtB,IAAQxtB,EAAK,aAAa,OAAO,KAAK;AAC5C,eAAO;AAAA,UACH,SAAS,KAAK0tB,CAAG,KAAKD,CAAG,GAAGD,KAAS,KAAKA,CAAK,GAAG;AAAA,UAClD,SAAS;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ,GACDvuB,EAAgC,wBAAA;AAAA;AAAA,MAE5B,SAAW,CAAC,EAAE,SAAAc,SAAe;AAAA,QACzB,qBAAqB;AAAA,QACrB,kBAAkBA,EAAQ,SAAS;AAAA,QACnC,aAAa,CAAC,EAAE,SAAAsmB,GAAS,cAAAlmB,GAAc,MAAAH,EAAI,MAAO;AAC9C,gBAAMmtB,IAAU9G,EAAQ,QAAQ,eAAe,GAAG,EAAE,KAAM;AAC1D,iBAAI8G,MACAhtB,EAAa,IAAIH,CAAI,EAAE,UAAU,UAAU,OAAOmtB,IAAU,OACzDpB,EAAa,kBAAkB;AAAA,QACzC;AAAA,MACT;AAAA;AAAA,MAEI,IAAM,CAAC,EAAE,SAAAhsB,SAAe;AAAA,QACpB,qBAAqB;AAAA,QACrB,kBAAkBA,EAAQ,SAAS;AAAA,QACnC,SAAS;AAAA;AAAA,QACT,QAAQ;AAAA,QACR,aAAa,CAAC,EAAE,SAAAsmB,EAAS,MAAM,UAAU,KAAKA,CAAO,IAAgDA,IAA5C0F,EAAa,kBAAkB;AAAA,MAChG;AAAA;AAAA,MAEI,SAAS,CAAC,EAAE,SAAAhsB,SAAe;AAAA,QACvB,qBAAqB;AAAA,QACrB,kBAAkBA,EAAQ,SAAS;AAAA,QACnC,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,aAAa,CAAC,EAAE,SAAAsmB,EAAO,UAAWyF,EAAY,cAAczF,CAAO,EAC9D,QAAQ,KAAK,KAAK,EAClB,QAAQ,eAAe,GAAG,EAC1B,KAAI;AAAA,MACjB;AAAA,IACC,GACDpnB,EAAmC,2BAAA;AAAA,MAC/B,SAASA,EAAQ,sBAAsB,OAAO;AAAA,IACjD,GACDA,EAAoC,4BAAA;AAAA,MAChC,GAAKA,EAAQ,mBAAmB;AAAA,MAChC,YAAYA,EAAQ,mBAAmB,UAAU;AAAA,MACjD,gBAAgBA,EAAQ,mBAAmB,cAAc;AAAA,MACzD,QAAQA,EAAQ,mBAAmB,MAAM;AAAA,MACzC,KAAOA,EAAQ,mBAAmB;AAAA,IACrC,GACDA,EAAsC,8BAAA;AAAA,MAClC,IAAM,EAAE,SAAS;AAAA,GAAM,SAAS,GAAO;AAAA,MACvC,IAAM,EAAE,SAAS,OAAO,SAAS,GAAO;AAAA,MACxC,qBAAqB,EAAE,QAAQ,KAAK,SAAS,IAAK;AAAA,MAClD,SAASA,EAAQ,mBAAmB,OAAO;AAAA,MAC3C,IAAMA,EAAQ,mBAAmB;AAAA,MACjC,IAAM,EAAE,qBAAqB,GAAM;AAAA,MACnC,KAAO,EAAE,SAAS,GAAK;AAAA,IAC1B,GACDA,EAA+B,uBAAA;AAAA,MAC3B,IAAM,EAAE,SAAS;AAAA,GAAM,SAAS,GAAO;AAAA,MACvC,IAAM,EAAE,SAAS;AAAA,GAAM,SAAS,GAAO;AAAA,MACvC,KAAOA,EAAQ,mBAAmB;AAAA,MAClC,YAAYA,EAAQ,mBAAmB,UAAU;AAAA,MACjD,gBAAgBA,EAAQ,mBAAmB,cAAc;AAAA,MACzD,QAAQA,EAAQ,mBAAmB,MAAM;AAAA,MACzC,KAAOA,EAAQ,mBAAmB;AAAA,IACrC,GAQDA,EAA+B,uBAAA;AAAA,MAC3B,kBAAkB;AAAA,MAClB,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,QACf,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,OAAO;AAAA,MACf;AAAA,IACC;AAAA;;;;;AC7UD,WAAO,eAAcA,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,gBAAwBA,EAAwB,gBAAAA,EAAA,aAAqBA,EAAsB,cAAAA,EAAA,WAAmB;AAC9G,UAAM0uB,IAAgD/oB,gBAAAA,GAAA;AACtD,WAAO,eAAe3F,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO0uB,EAAmB;AAAA,IAAc,EAAA,CAAE,GAC/H,OAAO,eAAe1uB,GAAS,YAAY,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO0uB,EAAmB;AAAA,IAAW,EAAA,CAAE;AAKzH,UAAMC,IAAa,CAAC5tB,MAASA,EAAK,aAAa2tB,EAAmB,SAAS;AAC3E,IAAA1uB,EAAA,aAAqB2uB;AACrB,UAAMC,IAAgB,CAAC7tB,MAASA,EAAK,aAAa2tB,EAAmB,SAAS;AAC9E,IAAA1uB,EAAA,gBAAwB4uB;AACxB,UAAMC,IAAgB,CAAC9tB,MAASA,EAAK,aAAa2tB,EAAmB,SAAS;AAC9E,IAAA1uB,EAAA,gBAAwB6uB;AAAA;;;;;UCdxB,OAAO,eAAe/tB,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,0BAAkCA,GAAA,UAAkB;AACpD,QAAMguB,IAAUnpB,GAAkB,GAC5BknB,IAAc3iB,GAAsB,GACpC4iB,IAAethB,GAAuB,GACtC0f,IAAW/S,GAAmB;AAAA,EASpC,MAAM4W,EAAQ;AAAA,IACV,YAAY9tB,GAAU+tB,GAAUC,GAAU;AACtC,WAAK,WAAWhuB,GAChB,KAAK,WAAW+tB,GAChB,KAAK,WAAWC,GAChB,KAAK,eAAe,oBAAI,IAAK,GAC7B,KAAK,iBAAiB,CAAE,GACxB,KAAK,SAAS;AAAA,QACV,MAAM;AAAA,QACN,sBAAsB;AAAA,UAClB,YAAY;AAAA,UACZ,UAAU;AAAA,QAC1B;AAAA,MACS,GACD,KAAK,UAAUhuB,EAAS,SACxB,KAAK,aAAa+tB,CAAQ,GAC1B,KAAK,UAAUA,CAAQ;AAAA,IAC/B;AAAA;AAAA;AAAA;AAAA,IAII,sBAAsBE,GAAK;AACvB,UAAI/Z,IAAK,KAAK,eAAe,UAAU,CAAAga,MAAKA,MAAMD,CAAG;AACrD,aAAI/Z,IAAK,MACLA,IAAK,KAAK,eAAe,KAAK+Z,CAAG,IAAI,IAClC/Z,IAAK;AAAA,IACpB;AAAA,IACI,aAAa1N,GAAGud,GAAUoK,GAAsB;AAC5C,UAAI,CAAC3nB,KAAKud,MAAa;AACnB;AACJ,YAAM,EAAE,QAAA5hB,EAAM,IAAK;AACnB,MAAI4hB,MAAa,WACb5hB,EAAO,OAAOA,EAAO,KAAK,OAAO,GAAG4hB,CAAQ,IAChD5hB,EAAO,SAASgsB,KAAwBhsB,EAAO,KAAK,MAAM,EAAE,MAAMqE,EAAE,CAAC,IAAI,MAAM,MAAMA,GACrFrE,EAAO,2BAA2BypB,EAAY,2BAA2BzpB,EAAO,IAAI;AAAA,IAC5F;AAAA,IACI,eAAeisB,GAAO;AAClB,YAAM,EAAE,UAAAC,EAAQ,IAAK,KAAK,OAAO;AACjC,WAAK,aAAa;AAAA,EAAK,OAAO,KAAK,IAAI,GAAI,CAACD,IAAQC,CAAQ,CAAE,CAAC;AAAA,IACvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQI,aAAavuB,GAAM;AACf,UAAI8rB,EAAY,WAAW,eAAe;AAC1C,YAAM,EAAE,aAAA0C,MAAgB,KAAK;AAC7B,OAAC,SAASC,EAAMzuB,GAAM;AAClB,YAAIR,IAAM;AACV,gBAAQuuB,EAAQ,YAAY/tB,CAAI,SAAU+tB,EAAQ,eAAe/tB,CAAI,KAAKmqB,EAAS,oBAAoB,SAASnqB,EAAK,OAAO;AACxH,UAAAR,IAAM;AAAA,aAEL;AACD,gBAAMkvB,QAAiB5C,EAAY,eAAe9rB,CAAI;AACtD,cAAK0uB,EAAW;AAMZ,uBAAWxpB,KAASwpB;AAChB,cAAKlvB,IAGDivB,EAAMvpB,CAAK,IAFX1F,IAAMivB,EAAMvpB,CAAK;AAAA,eARL;AACpB,kBAAMypB,IAAaH,EAAYxuB,EAAK,OAAO;AAC3C,aAA6D2uB,GAAW,mBAAoB,OAAOA,KAAe,gBAC9GnvB,IAAM;AAAA,UAC9B;AAAA,QAQA;AACY,eAAOQ,EAAK,WAAWR;AAAA,MAC1B,GAAEQ,CAAI,OACH8rB,EAAY,UAAU,eAAe;AAAA,IACjD;AAAA;AAAA;AAAA;AAAA,IAII,YAAYliB,GAAM3J,GAAU;AACxB,UAAIT,IAAMoK;AAGV,UAF0D3J,GAAS,uBAC/DT,IAAMA,EAAI,QAAQ,QAAQ,GAAG,IACuBS,GAAS;AAC7D,eAAOT;AACX,YAAM,EAAE,iBAAAovB,GAAiB,cAAAC,GAAc,aAAAC,EAAa,IAAG,KAAK;AAK5D,UAJAtvB,IAAMA,EACD,QAAQqvB,EAAa,CAAC,GAAGA,EAAa,CAAC,CAAC,EACxC,QAAQD,EAAgB,CAAC,GAAGA,EAAgB,CAAC,CAAC,GAE/CE;AACA,mBAAW,CAAClI,GAASF,CAAC,KAAKoI;AACvB,UAAAtvB,IAAMA,EAAI,QAAQonB,GAASF,CAAC;AACpC,aAAOlnB;AAAA,IACf;AAAA,IACI,UAAUQ,GAAM+uB,GAAU9uB,GAAU;AAChC,UAAIwH,GAAIK,GAAIwa,GAAIC,GACZyM,GAAIC;AACR,YAAM,EAAE,QAAA5sB,EAAM,IAAK;AACnB,UAAI,CAACrC,EAAK;AACN;AAEJ,cAAQ+tB,EAAQ,YAAY/tB,CAAI;AAC5B,eAAIA,EAAK,eACJyH,KAAMunB,IAAKhvB,GAAM,UAAU,QAAQyH,MAAO,WAAeunB,EAAG,OAAOhvB,EAAK,aACxE8H,KAAMmnB,IAAKjvB,GAAM,iBAAiB,QAAQ8H,MAAO,WAAemnB,EAAG,kBAAkBnD,EAAY,cAAc9rB,EAAK,SAAS,KAE3HA,EAAK,gBAAgB,CAAsDC,GAAS,qBACpF,CAACoC,EAAO,KAAK,UAAUA,EAAO,qBAAqB,aAAa,IAAK,SAAS,KAAK,aAAa,GAAG,IACpG,KAAK,aAAa,KAAK,YAAiEpC,GAAS,qBAAsBD,EAAK,OAAOA,EAAK,aAAaC,CAAQ,CAAC;AAExK,UAAI8uB,KAAY,KAAKhB,EAAQ,eAAe/tB,CAAI;AAC5C;AAEJ,YAAMkvB,IAA8EjvB,GAAS,cAAeA,EAAS,YAAYD,EAAK,OAAO,IAAI,KAAK,SAAS,YAAYA,EAAK,OAAO;AAEvL,cAAQA,EAAK,SAAO;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AACD,UAAAC,IAAW,OAAO,OAAO,OAAO,OAAO,CAAA,GAAIA,CAAQ,GAAG,EAAE,gBAAgB,GAAG,UAAUD,EAAK,SAAS,eAAesiB,IAAyDriB,GAAS,iBAAiB,QAAQqiB,MAAO,SAASA,IAAK,MAAM,EAAC,CAAE;AAC3O;AAAA,QACJ,KAAK;AACD,UAAyDriB,GAAS,aAAc,SAC5EA,EAAS,mBAAmBsiB,IAAKtiB,EAAS,oBAAoB,QAAQsiB,MAAO,SAASA,IAAK,KAAK;AACpG;AAAA,QACJ,KAAK;AACD,UAAAtiB,IAAW,OAAO,OAAO,OAAO,OAAO,IAAIA,CAAQ,GAAG,EAAE,oBAAoB,IAAM;AAClF;AAAA,QACJ,KAAK;AACD,UAAAA,IAAW,OAAO,OAAO,OAAO,OAAO,IAAIA,CAAQ,GAAG,EAAE,WAAW;AAAA,YAC3D,MAAMD;AAAA,UAC9B,GAAuB;AAAA,MACvB;AAIQ,UAHIC,KACA,KAAK,aAAa,IAAID,GAAMC,CAAQ,GAEpC,CAACivB,GAAwB;AACzB,mBAAWhqB,SAAa4mB,EAAY,eAAe9rB,CAAI;AACnD,eAAK,UAAUkF,GAAO6pB,GAAU9uB,CAAQ;AAC5C;AAAA,MACZ;AAEQ,UAAIkvB,GACAC;AAQJ,cAPSrD,EAAa,oBAAoBmD,CAAsB,IAK5DC,IAAMD,KAJNE,QAAUrD,EAAa,yBAAyB,MAAM/rB,GAAMC,GAAUivB,EAAuB,IAAI,GACjGC,IAAM,OAAO,OAAO,OAAO,OAAO,IAAID,EAAuB,IAAI,GAAGA,EAAuBE,CAAG,CAAC,IAK/FD,EAAI;AACJ;AAEJ,MAAIA,EAAI,YAAY,CAAsDlvB,GAAS,aAC/EA,IAAW,OAAO,OAAO,OAAO,OAAO,CAAA,GAAIA,CAAQ,GAAG,EAAE,UAAUkvB,EAAI,SAAQ,CAAE,GAChF,KAAK,aAAa,IAAInvB,GAAMC,CAAQ,IAEpCkvB,EAAI,oBAAqBA,EAAI,qBAA0ElvB,GAAS,gBAChHA,IAAW,OAAO,OAAO,OAAO,OAAO,CAAA,GAAIA,CAAQ,GAAG,EAAE,aAAakvB,EAAI,iBAAgB,CAAE,GAC3F,KAAK,aAAa,IAAInvB,GAAMC,CAAQ;AAExC,YAAMovB,IAAgBhtB,EAAO,KAAK;AAOlC,UALI8sB,EAAI,uBACJ,KAAK,eAAe,CAACA,EAAI,mBAAmB,GAC5CA,EAAI,UACJ,KAAK,aAAaA,EAAI,MAAM,GAE5B,OAAOA,EAAI,WAAY;AACvB,aAAK,aAAaA,EAAI,SAAS,QAAQA,EAAI,oBAAoB;AAAA,WAC9D;AACD,cAAMlL,IAAW5hB,EAAO,KAAK;AAE7B,mBAAW6C,SAAa4mB,EAAY,eAAe9rB,CAAI;AACnD,eAAK,UAAUkF,GAAQiqB,EAAI,YAAY,IAAQlvB,CAAQ;AAE3D,YAAIkvB,EAAI,aAAa;AACjB,gBAAMG,IAAUH,EAAI,YAAY,OAAO,OAAO,OAAO,OAAO,CAAA,GAAKC,SAAWrD,EAAa,yBAAyB,MAAM/rB,GAAMC,CAAQ,CAAC,GAAI,EAAE,SAASoC,EAAO,KAAK,OAAO4hB,CAAQ,EAAG,CAAA,CAAC;AAErL,cAAIqL,MAAYvD,EAAa,kBAAkB;AAC3C,mBAAI/rB,EAAK,YAAY,QAA6DC,GAAS,kBACvF,EAAEA,EAAS,gBACR,KAAK,aAAa,IAAIovB,CAAa;AAE9C,UAAI,OAAOC,KAAY,YACnB,KAAK,aAAaA,GAASrL,GAAUkL,EAAI,oBAAoB;AAAA,QACjF;AAAA,MACA;AAEQ,MAAIA,EAAI,WACJ,KAAK,aAAaA,EAAI,OAAO,GAC7BA,EAAI,uBACJ,KAAK,eAAe,CAACA,EAAI,mBAAmB;AAAA,IACxD;AAAA,EACA;AACA,EAAApvB,GAAA,UAAkBiuB;AAKlB,WAASuB,EAAwBrvB,GAAU+tB,GAAUC,GAAU;AAC3D,QAAIpC,EAAY,WAAW,MAAM;AACjC,UAAM/rB,IAAU,IAAIiuB,EAAQ9tB,GAAU+tB,GAAUC,CAAQ;AACxD,QAAI7rB,IAAStC,EAAQ,OAAO;AAC5B,QAAI+rB,EAAY,UAAU,MAAM,GAG5B5rB,EAAS,QAAQ,gCACb,UAAU,KAAKmC,EAAO,MAAM,EAAE,CAAC,MAC/BA,KAAU;AAAA,IACdtC,EAAQ,eAAe,QAAQ,CAACouB,GAAKxZ,MAAQ;AACzC,MAAAtS,KAAU;AAAA,GAAMsS,IAAM,CAAC,MAAMwZ,CAAG;AAAA,IAC5C,CAAS;AAGL,UAAM,EAAE,wBAAAqB,MAA2BtvB,EAAS;AAC5C,WAAIsvB,MACAntB,IAASA,EAAO,QAAQ,IAAI,OAAO,OAAO,iCAAkCmtB,CAAsB,MAAM,GAAG,GAAG,IAAI,QAC3G1D,EAAY,cAAczpB,CAAM;AAAA,EAC/C;AACA,SAAAtC,GAAA,0BAAkCwvB;;;;;UCzOlC,OAAO,eAAeE,IAAS,cAAc,EAAE,OAAO,IAAM,GACpCA,GAAA,mBAAG;AAC3B,QAAM1D,IAAennB,GAAuB,GACtCulB,IAAWhhB,GAAmB,GAC9B2iB,IAAcrhB,GAAsB,GACpCilB,IAAYtY,GAAoB;AAAA,EAKtC,MAAMuY,EAAiB;AAAA,IACnB,YAAYxtB,GAASytB,GAAmBC,GAA4B;AAChE,UAAIpoB,GAAIK,GAAIwa,GAAIC;AAChB,WAAK,cAAc,IAAIwJ,EAAa,qBAAsB,GAC1D,KAAK,kBAAkB,IAAIA,EAAa,qBAAsB,GAC9D,KAAK,uBAAuB,IAAIA,EAAa,qBAAsB,GACnE,KAAK,mBAAmB,IAAIA,EAAa,qBAAsB,GAC/D,KAAK,sBAAsB,IAAIA,EAAa,qBAAsB,GAClE,KAAK,uBAAuB,IAAIA,EAAa,qBAAsB,GAEnE,KAAK,UAAU,OAAO,OAAO,OAAO,OAAO,CAAA,GAAI5B,EAAS,cAAc,GAAGhoB,CAAO;AAChF,YAAM2tB,KAAmBhoB,KAAML,IAAK,KAAK,QAAQ,YAAY,QAAQA,MAAO,SAAS,SAASA,EAAG,OAAO0iB,EAAS,qBAAqB,OAAO,QAAQriB,MAAO,SAASA,IAAKqiB,EAAS,uBAC7K4F,KAAiBxN,KAAMD,IAAK,KAAK,QAAQ,mBAAmB,QAAQA,MAAO,SAAS,SAASA,EAAG,OAAO6H,EAAS,oBAAoB,OAAO,QAAQ5H,MAAO,SAASA,IAAK4H,EAAS;AAEvL,MAAkE2F,GAAgB,QAAQ,CAAAvwB,MAAM;AAC5F,aAAK,YAAY,IAAIA,GAAI,EAAE,QAAQ,IAAM,SAAS,IAAO,GACzD,KAAK,qBAAqB,IAAIA,GAAI,EAAE,QAAQ,IAAM,SAAS,IAAO;AAAA,MAC9E,CAAS,GAC6DwwB,GAAc,QAAQ,CAAAxwB,MAAM;AACtF,aAAK,YAAY,IAAIA,GAAI,EAAE,qBAAqB,GAAG,GACnD,KAAK,qBAAqB,IAAIA,GAAI,EAAE,qBAAqB,GAAG;AAAA,MACxE,CAAS;AAED,iBAAW,CAACujB,GAAOqM,CAAG,KAAK,OAAO,QAAQ,OAAO,OAAO,OAAO,OAAO,CAAE,GAAEhF,EAAS,kBAAkB,GAAGyF,CAAiB,CAAC;AACtH,aAAK,YAAY,IAAI9M,GAAOqM,GAAK,EAAI;AACzC,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQ,OAAO,OAAO,OAAO,OAAO,CAAE,GAAEhF,EAAS,2BAA2B,GAAG0F,CAA0B,CAAC;AACxI,aAAK,qBAAqB,IAAI/M,GAAOqM,GAAK,EAAI;AAClD,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQhF,EAAS,oBAAoB;AACnE,aAAK,gBAAgB,IAAIrH,GAAOqM,GAAK,EAAI;AAC7C,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQhF,EAAS,qBAAqB;AACpE,aAAK,iBAAiB,IAAIrH,GAAOqM,GAAK,EAAI;AAC9C,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQhF,EAAS,wBAAwB;AACvE,aAAK,oBAAoB,IAAIrH,GAAOqM,GAAK,EAAI;AACjD,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQhF,EAAS,yBAAyB;AACxE,aAAK,qBAAqB,IAAIrH,GAAOqM,GAAK,EAAI;AAElD,MAAK,KAAK,QAAQ,gBACd,KAAK,QAAQ,cAAc,CAAE,IACjC,KAAK,QAAQ,YAAY,KAAK,CAAC,oBAAoB,EAAE,CAAC;AAAA,IAC9D;AAAA,IACI,OAAO,UAAUa,GAAaC,GAAKL,GAAmBC,GAA4B;AAC9E,aAAOF,EAAiB,UAAU,gBAAgB,KAAK,IAAIA,EAAiBM,GAAKL,GAAmBC,CAA0B,GAAGG,CAAW;AAAA,IACpJ;AAAA,IACI,UAAUA,GAAa;AACnB,aAAO,KAAK,gBAAgBA,CAAW;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,IAKI,gBAAgBA,GAAa;AACzB,YAAME,IAAoB,OAAOF,KAAgB,UAC3CG,IAAcD,IAAiDF,IAA7B,EAAE,SAAWA,EAAa,GAC5DI,IAAc,CAAE;AACtB,iBAAW,CAAClC,GAAUxqB,CAAI,KAAK,OAAO,QAAQysB,CAAU,GAAG;AACvD,cAAME,QAAiBvE,EAAY,WAAWpoB,GAAM,KAAK,OAAO;AAChE,QAAA0sB,EAAYlC,CAAQ,QAAQwB,EAAU,yBAAyB,MAAMW,GAAYnC,MAAa,YAAYA,IAAW,MAAM;AAAA,MACvI;AACQ,aAAOgC,IAAoBE,IAAcA,EAAY;AAAA,IAC7D;AAAA,EACA;AACA,SAAAX,GAAA,mBAA2BE;;;;;ACvE3B,WAAO,eAAc1wB,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAA4B,oBAAAA,EAAA,uBAA+BA,EAA2B,mBAAA;AACtF,QAAIqxB,IAAS1rB,GAAiB;AAC9B,WAAO,eAAe3F,GAAS,oBAAoB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOqxB,EAAO;AAAA,IAAmB,EAAA,CAAE;AAC7H,QAAIvE,IAAe5iB,GAAuB;AAC1C,WAAO,eAAelK,GAAS,wBAAwB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO8sB,EAAa;AAAA,IAAuB,EAAA,CAAE,GAC3I,OAAO,eAAe9sB,GAAS,qBAAqB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO8sB,EAAa;AAAA,IAAoB,EAAA,CAAE;AAAA;;;ACH9H,MAAMwE,KAAsB,CAAC,EAAE,MAAA7wB,QAC9B8wB,GAA2B,OAAOC,MAAW;AAC/C,MAAA;AAEH,UAAMC,IAAW,MAAM,MAAMhxB,EAAK,KAAK,EAAE,QAAA+wB,GAAQ,GAC3CE,IAAW,MAAMD,EAAS,KAAK,GAC/BE,IAAcF,EAAS,QAAQ,IAAI,cAAc,KAAK,IACtDG,IACLF,EAAS,cAAc,SAAS,OAAO,KAAKC,EAAY,SAAS,WAAW;AAGzE,QAAAvK,GACAyK,IAAS;AAGT,IAAAD,KAAU,CAACnxB,EAAK,MAMT2mB,IAJE,IAAIsJ,oBAAiB;AAAA,MAChC,WAAW;AAAA,MACX,gBAAgB;AAAA,IAAA,CAChB,EACa,UAAUgB,CAAQ,KAGtBtK,IAAAsK,GACVG,IAASD,IACN;AAAA,IACA,gBAAgBD,CAAW;AAAA;AAIzB,UAAAG,IAAarxB,EAAK,eAAe,GACjCsxB,IAAYtxB,EAAK,cAAc,KAC/BuxB,IAAiB5K,EAAQ;AAG/B,QAAI0K,KAAcE;AACP,aAAA5K,IAAA,qCACH;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ,GAAGyK,CAAM,eAAepxB,EAAK,GAAG;AAAA,EAAM2mB,CAAO;AAAA,MACtD;AAGD,UAAM6K,IAAmB7K,EAAQ,UAAU0K,GAAYA,IAAaC,CAAS;AAC7E,QAAI,CAACE;AACM,aAAA7K,IAAA,qCACH;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ,GAAGyK,CAAM,eAAepxB,EAAK,GAAG;AAAA,EAAM2mB,CAAO;AAAA,MACtD;AAGS,IAAAA,IAAA6K;AACV,UAAMC,IAAsBD,EAAiB,QACvCE,IAAmBH,KAAkBF,IAAaI;AAGpD,QAAAA,MAAwBH,KAAaI,IAAmB,GAAG;AAC9D,YAAMC,IAAYN,IAAaI;AACpB,MAAA9K,KAAA;AAAA;AAAA,0EAA+EgL,CAAS,mBAAmBL,IAAY,CAAC;AAAA,IAAA;AAG7H,WAAA;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ,GAAGF,CAAM,eAAepxB,EAAK,GAAG;AAAA,EAAM2mB,CAAO;AAAA,IACtD;AAAA,WACQ5c,GAAO;AACf,UAAM,IAAI,MAAM,wBAAyBA,EAAgB,OAAO,EAAE;AAAA,EAAA;AACnE,CACA;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]}
|