@hpcc-js/observablehq-compiler 3.7.0 → 3.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dot-DS0nDHkc.js.map +1 -1
- package/dist/duckdb-ZQnOaRxt.js.map +1 -1
- package/dist/highlight-DMD1f-AU.js +3 -0
- package/dist/highlight-DMD1f-AU.js.map +1 -0
- package/dist/{index-dua00tZO.js → index-BEJybQP2.js} +2 -2
- package/dist/{index-dua00tZO.js.map → index-BEJybQP2.js.map} +1 -1
- package/dist/{index-Cc5s-So_.js → index-B_MA3pnO.js} +2 -2
- package/dist/{index-Cc5s-So_.js.map → index-B_MA3pnO.js.map} +1 -1
- package/dist/index-Bx3I5Hd1.js +2 -0
- package/dist/index-Bx3I5Hd1.js.map +1 -0
- package/dist/{index-CslOpeoU.js → index-DX-wW7fi.js} +2 -2
- package/dist/{index-CslOpeoU.js.map → index-DX-wW7fi.js.map} +1 -1
- package/dist/{index-BBvGdYa0.js → index-DXoy8fy6.js} +2 -2
- package/dist/{index-BBvGdYa0.js.map → index-DXoy8fy6.js.map} +1 -1
- package/dist/index-DzAd7RhG.js +2 -0
- package/dist/index-DzAd7RhG.js.map +1 -0
- package/dist/leaflet-JfyiggwS.js.map +1 -1
- package/dist/mapboxgl-DqywFqPd.js.map +1 -1
- package/dist/{md-C6Ow-w1v.js → md-DCq6DMWq.js} +2 -2
- package/dist/md-DCq6DMWq.js.map +1 -0
- package/dist/mermaid-0kvRJ9Mp.js +2 -0
- package/dist/mermaid-0kvRJ9Mp.js.map +1 -0
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/tex-BV6RAcNQ.js.map +1 -1
- package/dist/vega-lite-Phlb3i_g.js.map +1 -1
- package/package.json +4 -4
- package/dist/highlight-LE-BkJRm.js +0 -3
- package/dist/highlight-LE-BkJRm.js.map +0 -1
- package/dist/index-B-QesaRi.js +0 -2
- package/dist/index-B-QesaRi.js.map +0 -1
- package/dist/index-Cbl-BNqq.js +0 -2
- package/dist/index-Cbl-BNqq.js.map +0 -1
- package/dist/md-C6Ow-w1v.js.map +0 -1
- package/dist/mermaid-DqafRzAu.js +0 -2
- package/dist/mermaid-DqafRzAu.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Bx3I5Hd1.js","sources":["../../../node_modules/@lezer/markdown/dist/index.js"],"sourcesContent":["import { NodeType, NodeProp, NodeSet, Tree, Parser, parseMixed } from '@lezer/common';\nimport { styleTags, tags, Tag } from '@lezer/highlight';\n\nclass CompositeBlock {\n static create(type, value, from, parentHash, end) {\n let hash = (parentHash + (parentHash << 8) + type + (value << 4)) | 0;\n return new CompositeBlock(type, value, from, hash, end, [], []);\n }\n constructor(type, \n // Used for indentation in list items, markup character in lists\n value, from, hash, end, children, positions) {\n this.type = type;\n this.value = value;\n this.from = from;\n this.hash = hash;\n this.end = end;\n this.children = children;\n this.positions = positions;\n this.hashProp = [[NodeProp.contextHash, hash]];\n }\n addChild(child, pos) {\n if (child.prop(NodeProp.contextHash) != this.hash)\n child = new Tree(child.type, child.children, child.positions, child.length, this.hashProp);\n this.children.push(child);\n this.positions.push(pos);\n }\n toTree(nodeSet, end = this.end) {\n let last = this.children.length - 1;\n if (last >= 0)\n end = Math.max(end, this.positions[last] + this.children[last].length + this.from);\n return new Tree(nodeSet.types[this.type], this.children, this.positions, end - this.from).balance({\n makeTree: (children, positions, length) => new Tree(NodeType.none, children, positions, length, this.hashProp)\n });\n }\n}\nvar Type;\n(function (Type) {\n Type[Type[\"Document\"] = 1] = \"Document\";\n Type[Type[\"CodeBlock\"] = 2] = \"CodeBlock\";\n Type[Type[\"FencedCode\"] = 3] = \"FencedCode\";\n Type[Type[\"Blockquote\"] = 4] = \"Blockquote\";\n Type[Type[\"HorizontalRule\"] = 5] = \"HorizontalRule\";\n Type[Type[\"BulletList\"] = 6] = \"BulletList\";\n Type[Type[\"OrderedList\"] = 7] = \"OrderedList\";\n Type[Type[\"ListItem\"] = 8] = \"ListItem\";\n Type[Type[\"ATXHeading1\"] = 9] = \"ATXHeading1\";\n Type[Type[\"ATXHeading2\"] = 10] = \"ATXHeading2\";\n Type[Type[\"ATXHeading3\"] = 11] = \"ATXHeading3\";\n Type[Type[\"ATXHeading4\"] = 12] = \"ATXHeading4\";\n Type[Type[\"ATXHeading5\"] = 13] = \"ATXHeading5\";\n Type[Type[\"ATXHeading6\"] = 14] = \"ATXHeading6\";\n Type[Type[\"SetextHeading1\"] = 15] = \"SetextHeading1\";\n Type[Type[\"SetextHeading2\"] = 16] = \"SetextHeading2\";\n Type[Type[\"HTMLBlock\"] = 17] = \"HTMLBlock\";\n Type[Type[\"LinkReference\"] = 18] = \"LinkReference\";\n Type[Type[\"Paragraph\"] = 19] = \"Paragraph\";\n Type[Type[\"CommentBlock\"] = 20] = \"CommentBlock\";\n Type[Type[\"ProcessingInstructionBlock\"] = 21] = \"ProcessingInstructionBlock\";\n // Inline\n Type[Type[\"Escape\"] = 22] = \"Escape\";\n Type[Type[\"Entity\"] = 23] = \"Entity\";\n Type[Type[\"HardBreak\"] = 24] = \"HardBreak\";\n Type[Type[\"Emphasis\"] = 25] = \"Emphasis\";\n Type[Type[\"StrongEmphasis\"] = 26] = \"StrongEmphasis\";\n Type[Type[\"Link\"] = 27] = \"Link\";\n Type[Type[\"Image\"] = 28] = \"Image\";\n Type[Type[\"InlineCode\"] = 29] = \"InlineCode\";\n Type[Type[\"HTMLTag\"] = 30] = \"HTMLTag\";\n Type[Type[\"Comment\"] = 31] = \"Comment\";\n Type[Type[\"ProcessingInstruction\"] = 32] = \"ProcessingInstruction\";\n Type[Type[\"Autolink\"] = 33] = \"Autolink\";\n // Smaller tokens\n Type[Type[\"HeaderMark\"] = 34] = \"HeaderMark\";\n Type[Type[\"QuoteMark\"] = 35] = \"QuoteMark\";\n Type[Type[\"ListMark\"] = 36] = \"ListMark\";\n Type[Type[\"LinkMark\"] = 37] = \"LinkMark\";\n Type[Type[\"EmphasisMark\"] = 38] = \"EmphasisMark\";\n Type[Type[\"CodeMark\"] = 39] = \"CodeMark\";\n Type[Type[\"CodeText\"] = 40] = \"CodeText\";\n Type[Type[\"CodeInfo\"] = 41] = \"CodeInfo\";\n Type[Type[\"LinkTitle\"] = 42] = \"LinkTitle\";\n Type[Type[\"LinkLabel\"] = 43] = \"LinkLabel\";\n Type[Type[\"URL\"] = 44] = \"URL\";\n})(Type || (Type = {}));\n/**\nData structure used to accumulate a block's content during [leaf\nblock parsing](#BlockParser.leaf).\n*/\nclass LeafBlock {\n /**\n @internal\n */\n constructor(\n /**\n The start position of the block.\n */\n start, \n /**\n The block's text content.\n */\n content) {\n this.start = start;\n this.content = content;\n /**\n @internal\n */\n this.marks = [];\n /**\n The block parsers active for this block.\n */\n this.parsers = [];\n }\n}\n/**\nData structure used during block-level per-line parsing.\n*/\nclass Line {\n constructor() {\n /**\n The line's full text.\n */\n this.text = \"\";\n /**\n The base indent provided by the composite contexts (that have\n been handled so far).\n */\n this.baseIndent = 0;\n /**\n The string position corresponding to the base indent.\n */\n this.basePos = 0;\n /**\n The number of contexts handled @internal\n */\n this.depth = 0;\n /**\n Any markers (i.e. block quote markers) parsed for the contexts. @internal\n */\n this.markers = [];\n /**\n The position of the next non-whitespace character beyond any\n list, blockquote, or other composite block markers.\n */\n this.pos = 0;\n /**\n The column of the next non-whitespace character.\n */\n this.indent = 0;\n /**\n The character code of the character after `pos`.\n */\n this.next = -1;\n }\n /**\n @internal\n */\n forward() {\n if (this.basePos > this.pos)\n this.forwardInner();\n }\n /**\n @internal\n */\n forwardInner() {\n let newPos = this.skipSpace(this.basePos);\n this.indent = this.countIndent(newPos, this.pos, this.indent);\n this.pos = newPos;\n this.next = newPos == this.text.length ? -1 : this.text.charCodeAt(newPos);\n }\n /**\n Skip whitespace after the given position, return the position of\n the next non-space character or the end of the line if there's\n only space after `from`.\n */\n skipSpace(from) { return skipSpace(this.text, from); }\n /**\n @internal\n */\n reset(text) {\n this.text = text;\n this.baseIndent = this.basePos = this.pos = this.indent = 0;\n this.forwardInner();\n this.depth = 1;\n while (this.markers.length)\n this.markers.pop();\n }\n /**\n Move the line's base position forward to the given position.\n This should only be called by composite [block\n parsers](#BlockParser.parse) or [markup skipping\n functions](#NodeSpec.composite).\n */\n moveBase(to) {\n this.basePos = to;\n this.baseIndent = this.countIndent(to, this.pos, this.indent);\n }\n /**\n Move the line's base position forward to the given _column_.\n */\n moveBaseColumn(indent) {\n this.baseIndent = indent;\n this.basePos = this.findColumn(indent);\n }\n /**\n Store a composite-block-level marker. Should be called from\n [markup skipping functions](#NodeSpec.composite) when they\n consume any non-whitespace characters.\n */\n addMarker(elt) {\n this.markers.push(elt);\n }\n /**\n Find the column position at `to`, optionally starting at a given\n position and column.\n */\n countIndent(to, from = 0, indent = 0) {\n for (let i = from; i < to; i++)\n indent += this.text.charCodeAt(i) == 9 ? 4 - indent % 4 : 1;\n return indent;\n }\n /**\n Find the position corresponding to the given column.\n */\n findColumn(goal) {\n let i = 0;\n for (let indent = 0; i < this.text.length && indent < goal; i++)\n indent += this.text.charCodeAt(i) == 9 ? 4 - indent % 4 : 1;\n return i;\n }\n /**\n @internal\n */\n scrub() {\n if (!this.baseIndent)\n return this.text;\n let result = \"\";\n for (let i = 0; i < this.basePos; i++)\n result += \" \";\n return result + this.text.slice(this.basePos);\n }\n}\nfunction skipForList(bl, cx, line) {\n if (line.pos == line.text.length ||\n (bl != cx.block && line.indent >= cx.stack[line.depth + 1].value + line.baseIndent))\n return true;\n if (line.indent >= line.baseIndent + 4)\n return false;\n let size = (bl.type == Type.OrderedList ? isOrderedList : isBulletList)(line, cx, false);\n return size > 0 &&\n (bl.type != Type.BulletList || isHorizontalRule(line, cx, false) < 0) &&\n line.text.charCodeAt(line.pos + size - 1) == bl.value;\n}\nconst DefaultSkipMarkup = {\n [Type.Blockquote](bl, cx, line) {\n if (line.next != 62 /* '>' */)\n return false;\n line.markers.push(elt(Type.QuoteMark, cx.lineStart + line.pos, cx.lineStart + line.pos + 1));\n line.moveBase(line.pos + (space(line.text.charCodeAt(line.pos + 1)) ? 2 : 1));\n bl.end = cx.lineStart + line.text.length;\n return true;\n },\n [Type.ListItem](bl, _cx, line) {\n if (line.indent < line.baseIndent + bl.value && line.next > -1)\n return false;\n line.moveBaseColumn(line.baseIndent + bl.value);\n return true;\n },\n [Type.OrderedList]: skipForList,\n [Type.BulletList]: skipForList,\n [Type.Document]() { return true; }\n};\nfunction space(ch) { return ch == 32 || ch == 9 || ch == 10 || ch == 13; }\nfunction skipSpace(line, i = 0) {\n while (i < line.length && space(line.charCodeAt(i)))\n i++;\n return i;\n}\nfunction skipSpaceBack(line, i, to) {\n while (i > to && space(line.charCodeAt(i - 1)))\n i--;\n return i;\n}\nfunction isFencedCode(line) {\n if (line.next != 96 && line.next != 126 /* '`~' */)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == line.next)\n pos++;\n if (pos < line.pos + 3)\n return -1;\n if (line.next == 96)\n for (let i = pos; i < line.text.length; i++)\n if (line.text.charCodeAt(i) == 96)\n return -1;\n return pos;\n}\nfunction isBlockquote(line) {\n return line.next != 62 /* '>' */ ? -1 : line.text.charCodeAt(line.pos + 1) == 32 ? 2 : 1;\n}\nfunction isHorizontalRule(line, cx, breaking) {\n if (line.next != 42 && line.next != 45 && line.next != 95 /* '_-*' */)\n return -1;\n let count = 1;\n for (let pos = line.pos + 1; pos < line.text.length; pos++) {\n let ch = line.text.charCodeAt(pos);\n if (ch == line.next)\n count++;\n else if (!space(ch))\n return -1;\n }\n // Setext headers take precedence\n if (breaking && line.next == 45 && isSetextUnderline(line) > -1 && line.depth == cx.stack.length &&\n cx.parser.leafBlockParsers.indexOf(DefaultLeafBlocks.SetextHeading) > -1)\n return -1;\n return count < 3 ? -1 : 1;\n}\nfunction inList(cx, type) {\n for (let i = cx.stack.length - 1; i >= 0; i--)\n if (cx.stack[i].type == type)\n return true;\n return false;\n}\nfunction isBulletList(line, cx, breaking) {\n return (line.next == 45 || line.next == 43 || line.next == 42 /* '-+*' */) &&\n (line.pos == line.text.length - 1 || space(line.text.charCodeAt(line.pos + 1))) &&\n (!breaking || inList(cx, Type.BulletList) || line.skipSpace(line.pos + 2) < line.text.length) ? 1 : -1;\n}\nfunction isOrderedList(line, cx, breaking) {\n let pos = line.pos, next = line.next;\n for (;;) {\n if (next >= 48 && next <= 57 /* '0-9' */)\n pos++;\n else\n break;\n if (pos == line.text.length)\n return -1;\n next = line.text.charCodeAt(pos);\n }\n if (pos == line.pos || pos > line.pos + 9 ||\n (next != 46 && next != 41 /* '.)' */) ||\n (pos < line.text.length - 1 && !space(line.text.charCodeAt(pos + 1))) ||\n breaking && !inList(cx, Type.OrderedList) &&\n (line.skipSpace(pos + 1) == line.text.length || pos > line.pos + 1 || line.next != 49 /* '1' */))\n return -1;\n return pos + 1 - line.pos;\n}\nfunction isAtxHeading(line) {\n if (line.next != 35 /* '#' */)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == 35)\n pos++;\n if (pos < line.text.length && line.text.charCodeAt(pos) != 32)\n return -1;\n let size = pos - line.pos;\n return size > 6 ? -1 : size;\n}\nfunction isSetextUnderline(line) {\n if (line.next != 45 && line.next != 61 /* '-=' */ || line.indent >= line.baseIndent + 4)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == line.next)\n pos++;\n let end = pos;\n while (pos < line.text.length && space(line.text.charCodeAt(pos)))\n pos++;\n return pos == line.text.length ? end : -1;\n}\nconst EmptyLine = /^[ \\t]*$/, CommentEnd = /-->/, ProcessingEnd = /\\?>/;\nconst HTMLBlockStyle = [\n [/^<(?:script|pre|style)(?:\\s|>|$)/i, /<\\/(?:script|pre|style)>/i],\n [/^\\s*<!--/, CommentEnd],\n [/^\\s*<\\?/, ProcessingEnd],\n [/^\\s*<![A-Z]/, />/],\n [/^\\s*<!\\[CDATA\\[/, /\\]\\]>/],\n [/^\\s*<\\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\\s|\\/?>|$)/i, EmptyLine],\n [/^\\s*(?:<\\/[a-z][\\w-]*\\s*>|<[a-z][\\w-]*(\\s+[a-z:_][\\w-.]*(?:\\s*=\\s*(?:[^\\s\"'=<>`]+|'[^']*'|\"[^\"]*\"))?)*\\s*>)\\s*$/i, EmptyLine]\n];\nfunction isHTMLBlock(line, _cx, breaking) {\n if (line.next != 60 /* '<' */)\n return -1;\n let rest = line.text.slice(line.pos);\n for (let i = 0, e = HTMLBlockStyle.length - (breaking ? 1 : 0); i < e; i++)\n if (HTMLBlockStyle[i][0].test(rest))\n return i;\n return -1;\n}\nfunction getListIndent(line, pos) {\n let indentAfter = line.countIndent(pos, line.pos, line.indent);\n let indented = line.countIndent(line.skipSpace(pos), pos, indentAfter);\n return indented >= indentAfter + 5 ? indentAfter + 1 : indented;\n}\nfunction addCodeText(marks, from, to) {\n let last = marks.length - 1;\n if (last >= 0 && marks[last].to == from && marks[last].type == Type.CodeText)\n marks[last].to = to;\n else\n marks.push(elt(Type.CodeText, from, to));\n}\n// Rules for parsing blocks. A return value of false means the rule\n// doesn't apply here, true means it does. When true is returned and\n// `p.line` has been updated, the rule is assumed to have consumed a\n// leaf block. Otherwise, it is assumed to have opened a context.\nconst DefaultBlockParsers = {\n LinkReference: undefined,\n IndentedCode(cx, line) {\n let base = line.baseIndent + 4;\n if (line.indent < base)\n return false;\n let start = line.findColumn(base);\n let from = cx.lineStart + start, to = cx.lineStart + line.text.length;\n let marks = [], pendingMarks = [];\n addCodeText(marks, from, to);\n while (cx.nextLine() && line.depth >= cx.stack.length) {\n if (line.pos == line.text.length) { // Empty\n addCodeText(pendingMarks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n pendingMarks.push(m);\n }\n else if (line.indent < base) {\n break;\n }\n else {\n if (pendingMarks.length) {\n for (let m of pendingMarks) {\n if (m.type == Type.CodeText)\n addCodeText(marks, m.from, m.to);\n else\n marks.push(m);\n }\n pendingMarks = [];\n }\n addCodeText(marks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n marks.push(m);\n to = cx.lineStart + line.text.length;\n let codeStart = cx.lineStart + line.findColumn(line.baseIndent + 4);\n if (codeStart < to)\n addCodeText(marks, codeStart, to);\n }\n }\n if (pendingMarks.length) {\n pendingMarks = pendingMarks.filter(m => m.type != Type.CodeText);\n if (pendingMarks.length)\n line.markers = pendingMarks.concat(line.markers);\n }\n cx.addNode(cx.buffer.writeElements(marks, -from).finish(Type.CodeBlock, to - from), from);\n return true;\n },\n FencedCode(cx, line) {\n let fenceEnd = isFencedCode(line);\n if (fenceEnd < 0)\n return false;\n let from = cx.lineStart + line.pos, ch = line.next, len = fenceEnd - line.pos;\n let infoFrom = line.skipSpace(fenceEnd), infoTo = skipSpaceBack(line.text, line.text.length, infoFrom);\n let marks = [elt(Type.CodeMark, from, from + len)];\n if (infoFrom < infoTo)\n marks.push(elt(Type.CodeInfo, cx.lineStart + infoFrom, cx.lineStart + infoTo));\n for (let first = true, empty = true, hasLine = false; cx.nextLine() && line.depth >= cx.stack.length; first = false) {\n let i = line.pos;\n if (line.indent - line.baseIndent < 4)\n while (i < line.text.length && line.text.charCodeAt(i) == ch)\n i++;\n if (i - line.pos >= len && line.skipSpace(i) == line.text.length) {\n for (let m of line.markers)\n marks.push(m);\n if (empty && hasLine)\n addCodeText(marks, cx.lineStart - 1, cx.lineStart);\n marks.push(elt(Type.CodeMark, cx.lineStart + line.pos, cx.lineStart + i));\n cx.nextLine();\n break;\n }\n else {\n hasLine = true;\n if (!first) {\n addCodeText(marks, cx.lineStart - 1, cx.lineStart);\n empty = false;\n }\n for (let m of line.markers)\n marks.push(m);\n let textStart = cx.lineStart + line.basePos, textEnd = cx.lineStart + line.text.length;\n if (textStart < textEnd) {\n addCodeText(marks, textStart, textEnd);\n empty = false;\n }\n }\n }\n cx.addNode(cx.buffer.writeElements(marks, -from)\n .finish(Type.FencedCode, cx.prevLineEnd() - from), from);\n return true;\n },\n Blockquote(cx, line) {\n let size = isBlockquote(line);\n if (size < 0)\n return false;\n cx.startContext(Type.Blockquote, line.pos);\n cx.addNode(Type.QuoteMark, cx.lineStart + line.pos, cx.lineStart + line.pos + 1);\n line.moveBase(line.pos + size);\n return null;\n },\n HorizontalRule(cx, line) {\n if (isHorizontalRule(line, cx, false) < 0)\n return false;\n let from = cx.lineStart + line.pos;\n cx.nextLine();\n cx.addNode(Type.HorizontalRule, from);\n return true;\n },\n BulletList(cx, line) {\n let size = isBulletList(line, cx, false);\n if (size < 0)\n return false;\n if (cx.block.type != Type.BulletList)\n cx.startContext(Type.BulletList, line.basePos, line.next);\n let newBase = getListIndent(line, line.pos + 1);\n cx.startContext(Type.ListItem, line.basePos, newBase - line.baseIndent);\n cx.addNode(Type.ListMark, cx.lineStart + line.pos, cx.lineStart + line.pos + size);\n line.moveBaseColumn(newBase);\n return null;\n },\n OrderedList(cx, line) {\n let size = isOrderedList(line, cx, false);\n if (size < 0)\n return false;\n if (cx.block.type != Type.OrderedList)\n cx.startContext(Type.OrderedList, line.basePos, line.text.charCodeAt(line.pos + size - 1));\n let newBase = getListIndent(line, line.pos + size);\n cx.startContext(Type.ListItem, line.basePos, newBase - line.baseIndent);\n cx.addNode(Type.ListMark, cx.lineStart + line.pos, cx.lineStart + line.pos + size);\n line.moveBaseColumn(newBase);\n return null;\n },\n ATXHeading(cx, line) {\n let size = isAtxHeading(line);\n if (size < 0)\n return false;\n let off = line.pos, from = cx.lineStart + off;\n let endOfSpace = skipSpaceBack(line.text, line.text.length, off), after = endOfSpace;\n while (after > off && line.text.charCodeAt(after - 1) == line.next)\n after--;\n if (after == endOfSpace || after == off || !space(line.text.charCodeAt(after - 1)))\n after = line.text.length;\n let buf = cx.buffer\n .write(Type.HeaderMark, 0, size)\n .writeElements(cx.parser.parseInline(line.text.slice(off + size + 1, after), from + size + 1), -from);\n if (after < line.text.length)\n buf.write(Type.HeaderMark, after - off, endOfSpace - off);\n let node = buf.finish(Type.ATXHeading1 - 1 + size, line.text.length - off);\n cx.nextLine();\n cx.addNode(node, from);\n return true;\n },\n HTMLBlock(cx, line) {\n let type = isHTMLBlock(line, cx, false);\n if (type < 0)\n return false;\n let from = cx.lineStart + line.pos, end = HTMLBlockStyle[type][1];\n let marks = [], trailing = end != EmptyLine;\n while (!end.test(line.text) && cx.nextLine()) {\n if (line.depth < cx.stack.length) {\n trailing = false;\n break;\n }\n for (let m of line.markers)\n marks.push(m);\n }\n if (trailing)\n cx.nextLine();\n let nodeType = end == CommentEnd ? Type.CommentBlock : end == ProcessingEnd ? Type.ProcessingInstructionBlock : Type.HTMLBlock;\n let to = cx.prevLineEnd();\n cx.addNode(cx.buffer.writeElements(marks, -from).finish(nodeType, to - from), from);\n return true;\n },\n SetextHeading: undefined // Specifies relative precedence for block-continue function\n};\n// This implements a state machine that incrementally parses link references. At each\n// next line, it looks ahead to see if the line continues the reference or not. If it\n// doesn't and a valid link is available ending before that line, it finishes that.\n// Similarly, on `finish` (when the leaf is terminated by external circumstances), it\n// creates a link reference if there's a valid reference up to the current point.\nclass LinkReferenceParser {\n constructor(leaf) {\n this.stage = 0 /* RefStage.Start */;\n this.elts = [];\n this.pos = 0;\n this.start = leaf.start;\n this.advance(leaf.content);\n }\n nextLine(cx, line, leaf) {\n if (this.stage == -1 /* RefStage.Failed */)\n return false;\n let content = leaf.content + \"\\n\" + line.scrub();\n let finish = this.advance(content);\n if (finish > -1 && finish < content.length)\n return this.complete(cx, leaf, finish);\n return false;\n }\n finish(cx, leaf) {\n if ((this.stage == 2 /* RefStage.Link */ || this.stage == 3 /* RefStage.Title */) && skipSpace(leaf.content, this.pos) == leaf.content.length)\n return this.complete(cx, leaf, leaf.content.length);\n return false;\n }\n complete(cx, leaf, len) {\n cx.addLeafElement(leaf, elt(Type.LinkReference, this.start, this.start + len, this.elts));\n return true;\n }\n nextStage(elt) {\n if (elt) {\n this.pos = elt.to - this.start;\n this.elts.push(elt);\n this.stage++;\n return true;\n }\n if (elt === false)\n this.stage = -1 /* RefStage.Failed */;\n return false;\n }\n advance(content) {\n for (;;) {\n if (this.stage == -1 /* RefStage.Failed */) {\n return -1;\n }\n else if (this.stage == 0 /* RefStage.Start */) {\n if (!this.nextStage(parseLinkLabel(content, this.pos, this.start, true)))\n return -1;\n if (content.charCodeAt(this.pos) != 58 /* ':' */)\n return this.stage = -1 /* RefStage.Failed */;\n this.elts.push(elt(Type.LinkMark, this.pos + this.start, this.pos + this.start + 1));\n this.pos++;\n }\n else if (this.stage == 1 /* RefStage.Label */) {\n if (!this.nextStage(parseURL(content, skipSpace(content, this.pos), this.start)))\n return -1;\n }\n else if (this.stage == 2 /* RefStage.Link */) {\n let skip = skipSpace(content, this.pos), end = 0;\n if (skip > this.pos) {\n let title = parseLinkTitle(content, skip, this.start);\n if (title) {\n let titleEnd = lineEnd(content, title.to - this.start);\n if (titleEnd > 0) {\n this.nextStage(title);\n end = titleEnd;\n }\n }\n }\n if (!end)\n end = lineEnd(content, this.pos);\n return end > 0 && end < content.length ? end : -1;\n }\n else { // RefStage.Title\n return lineEnd(content, this.pos);\n }\n }\n }\n}\nfunction lineEnd(text, pos) {\n for (; pos < text.length; pos++) {\n let next = text.charCodeAt(pos);\n if (next == 10)\n break;\n if (!space(next))\n return -1;\n }\n return pos;\n}\nclass SetextHeadingParser {\n nextLine(cx, line, leaf) {\n let underline = line.depth < cx.stack.length ? -1 : isSetextUnderline(line);\n let next = line.next;\n if (underline < 0)\n return false;\n let underlineMark = elt(Type.HeaderMark, cx.lineStart + line.pos, cx.lineStart + underline);\n cx.nextLine();\n cx.addLeafElement(leaf, elt(next == 61 ? Type.SetextHeading1 : Type.SetextHeading2, leaf.start, cx.prevLineEnd(), [\n ...cx.parser.parseInline(leaf.content, leaf.start),\n underlineMark\n ]));\n return true;\n }\n finish() {\n return false;\n }\n}\nconst DefaultLeafBlocks = {\n LinkReference(_, leaf) { return leaf.content.charCodeAt(0) == 91 /* '[' */ ? new LinkReferenceParser(leaf) : null; },\n SetextHeading() { return new SetextHeadingParser; }\n};\nconst DefaultEndLeaf = [\n (_, line) => isAtxHeading(line) >= 0,\n (_, line) => isFencedCode(line) >= 0,\n (_, line) => isBlockquote(line) >= 0,\n (p, line) => isBulletList(line, p, true) >= 0,\n (p, line) => isOrderedList(line, p, true) >= 0,\n (p, line) => isHorizontalRule(line, p, true) >= 0,\n (p, line) => isHTMLBlock(line, p, true) >= 0\n];\nconst scanLineResult = { text: \"\", end: 0 };\n/**\nBlock-level parsing functions get access to this context object.\n*/\nclass BlockContext {\n /**\n @internal\n */\n constructor(\n /**\n The parser configuration used.\n */\n parser, \n /**\n @internal\n */\n input, fragments, \n /**\n @internal\n */\n ranges) {\n this.parser = parser;\n this.input = input;\n this.ranges = ranges;\n this.line = new Line();\n this.atEnd = false;\n /**\n For reused nodes on gaps, we can't directly put the original\n node into the tree, since that may be bigger than its parent.\n When this happens, we create a dummy tree that is replaced by\n the proper node in `injectGaps` @internal\n */\n this.reusePlaceholders = new Map;\n this.stoppedAt = null;\n /**\n The range index that absoluteLineStart points into @internal\n */\n this.rangeI = 0;\n this.to = ranges[ranges.length - 1].to;\n this.lineStart = this.absoluteLineStart = this.absoluteLineEnd = ranges[0].from;\n this.block = CompositeBlock.create(Type.Document, 0, this.lineStart, 0, 0);\n this.stack = [this.block];\n this.fragments = fragments.length ? new FragmentCursor(fragments, input) : null;\n this.readLine();\n }\n get parsedPos() {\n return this.absoluteLineStart;\n }\n advance() {\n if (this.stoppedAt != null && this.absoluteLineStart > this.stoppedAt)\n return this.finish();\n let { line } = this;\n for (;;) {\n for (let markI = 0;;) {\n let next = line.depth < this.stack.length ? this.stack[this.stack.length - 1] : null;\n while (markI < line.markers.length && (!next || line.markers[markI].from < next.end)) {\n let mark = line.markers[markI++];\n this.addNode(mark.type, mark.from, mark.to);\n }\n if (!next)\n break;\n this.finishContext();\n }\n if (line.pos < line.text.length)\n break;\n // Empty line\n if (!this.nextLine())\n return this.finish();\n }\n if (this.fragments && this.reuseFragment(line.basePos))\n return null;\n start: for (;;) {\n for (let type of this.parser.blockParsers)\n if (type) {\n let result = type(this, line);\n if (result != false) {\n if (result == true)\n return null;\n line.forward();\n continue start;\n }\n }\n break;\n }\n let leaf = new LeafBlock(this.lineStart + line.pos, line.text.slice(line.pos));\n for (let parse of this.parser.leafBlockParsers)\n if (parse) {\n let parser = parse(this, leaf);\n if (parser)\n leaf.parsers.push(parser);\n }\n lines: while (this.nextLine()) {\n if (line.pos == line.text.length)\n break;\n if (line.indent < line.baseIndent + 4) {\n for (let stop of this.parser.endLeafBlock)\n if (stop(this, line, leaf))\n break lines;\n }\n for (let parser of leaf.parsers)\n if (parser.nextLine(this, line, leaf))\n return null;\n leaf.content += \"\\n\" + line.scrub();\n for (let m of line.markers)\n leaf.marks.push(m);\n }\n this.finishLeaf(leaf);\n return null;\n }\n stopAt(pos) {\n if (this.stoppedAt != null && this.stoppedAt < pos)\n throw new RangeError(\"Can't move stoppedAt forward\");\n this.stoppedAt = pos;\n }\n reuseFragment(start) {\n if (!this.fragments.moveTo(this.absoluteLineStart + start, this.absoluteLineStart) ||\n !this.fragments.matches(this.block.hash))\n return false;\n let taken = this.fragments.takeNodes(this);\n if (!taken)\n return false;\n this.absoluteLineStart += taken;\n this.lineStart = toRelative(this.absoluteLineStart, this.ranges);\n this.moveRangeI();\n if (this.absoluteLineStart < this.to) {\n this.lineStart++;\n this.absoluteLineStart++;\n this.readLine();\n }\n else {\n this.atEnd = true;\n this.readLine();\n }\n return true;\n }\n /**\n The number of parent blocks surrounding the current block.\n */\n get depth() {\n return this.stack.length;\n }\n /**\n Get the type of the parent block at the given depth. When no\n depth is passed, return the type of the innermost parent.\n */\n parentType(depth = this.depth - 1) {\n return this.parser.nodeSet.types[this.stack[depth].type];\n }\n /**\n Move to the next input line. This should only be called by\n (non-composite) [block parsers](#BlockParser.parse) that consume\n the line directly, or leaf block parser\n [`nextLine`](#LeafBlockParser.nextLine) methods when they\n consume the current line (and return true).\n */\n nextLine() {\n this.lineStart += this.line.text.length;\n if (this.absoluteLineEnd >= this.to) {\n this.absoluteLineStart = this.absoluteLineEnd;\n this.atEnd = true;\n this.readLine();\n return false;\n }\n else {\n this.lineStart++;\n this.absoluteLineStart = this.absoluteLineEnd + 1;\n this.moveRangeI();\n this.readLine();\n return true;\n }\n }\n /**\n Retrieve the text of the line after the current one, without\n actually moving the context's current line forward.\n */\n peekLine() {\n return this.scanLine(this.absoluteLineEnd + 1).text;\n }\n moveRangeI() {\n while (this.rangeI < this.ranges.length - 1 && this.absoluteLineStart >= this.ranges[this.rangeI].to) {\n this.rangeI++;\n this.absoluteLineStart = Math.max(this.absoluteLineStart, this.ranges[this.rangeI].from);\n }\n }\n /**\n @internal\n Collect the text for the next line.\n */\n scanLine(start) {\n let r = scanLineResult;\n r.end = start;\n if (start >= this.to) {\n r.text = \"\";\n }\n else {\n r.text = this.lineChunkAt(start);\n r.end += r.text.length;\n if (this.ranges.length > 1) {\n let textOffset = this.absoluteLineStart, rangeI = this.rangeI;\n while (this.ranges[rangeI].to < r.end) {\n rangeI++;\n let nextFrom = this.ranges[rangeI].from;\n let after = this.lineChunkAt(nextFrom);\n r.end = nextFrom + after.length;\n r.text = r.text.slice(0, this.ranges[rangeI - 1].to - textOffset) + after;\n textOffset = r.end - r.text.length;\n }\n }\n }\n return r;\n }\n /**\n @internal\n Populate this.line with the content of the next line. Skip\n leading characters covered by composite blocks.\n */\n readLine() {\n let { line } = this, { text, end } = this.scanLine(this.absoluteLineStart);\n this.absoluteLineEnd = end;\n line.reset(text);\n for (; line.depth < this.stack.length; line.depth++) {\n let cx = this.stack[line.depth], handler = this.parser.skipContextMarkup[cx.type];\n if (!handler)\n throw new Error(\"Unhandled block context \" + Type[cx.type]);\n let marks = this.line.markers.length;\n if (!handler(cx, this, line)) {\n if (this.line.markers.length > marks)\n cx.end = this.line.markers[this.line.markers.length - 1].to;\n line.forward();\n break;\n }\n line.forward();\n }\n }\n lineChunkAt(pos) {\n let next = this.input.chunk(pos), text;\n if (!this.input.lineChunks) {\n let eol = next.indexOf(\"\\n\");\n text = eol < 0 ? next : next.slice(0, eol);\n }\n else {\n text = next == \"\\n\" ? \"\" : next;\n }\n return pos + text.length > this.to ? text.slice(0, this.to - pos) : text;\n }\n /**\n The end position of the previous line.\n */\n prevLineEnd() { return this.atEnd ? this.lineStart : this.lineStart - 1; }\n /**\n @internal\n */\n startContext(type, start, value = 0) {\n this.block = CompositeBlock.create(type, value, this.lineStart + start, this.block.hash, this.lineStart + this.line.text.length);\n this.stack.push(this.block);\n }\n /**\n Start a composite block. Should only be called from [block\n parser functions](#BlockParser.parse) that return null.\n */\n startComposite(type, start, value = 0) {\n this.startContext(this.parser.getNodeType(type), start, value);\n }\n /**\n @internal\n */\n addNode(block, from, to) {\n if (typeof block == \"number\")\n block = new Tree(this.parser.nodeSet.types[block], none, none, (to !== null && to !== void 0 ? to : this.prevLineEnd()) - from);\n this.block.addChild(block, from - this.block.from);\n }\n /**\n Add a block element. Can be called by [block\n parsers](#BlockParser.parse).\n */\n addElement(elt) {\n this.block.addChild(elt.toTree(this.parser.nodeSet), elt.from - this.block.from);\n }\n /**\n Add a block element from a [leaf parser](#LeafBlockParser). This\n makes sure any extra composite block markup (such as blockquote\n markers) inside the block are also added to the syntax tree.\n */\n addLeafElement(leaf, elt) {\n this.addNode(this.buffer\n .writeElements(injectMarks(elt.children, leaf.marks), -elt.from)\n .finish(elt.type, elt.to - elt.from), elt.from);\n }\n /**\n @internal\n */\n finishContext() {\n let cx = this.stack.pop();\n let top = this.stack[this.stack.length - 1];\n top.addChild(cx.toTree(this.parser.nodeSet), cx.from - top.from);\n this.block = top;\n }\n finish() {\n while (this.stack.length > 1)\n this.finishContext();\n return this.addGaps(this.block.toTree(this.parser.nodeSet, this.lineStart));\n }\n addGaps(tree) {\n return this.ranges.length > 1 ?\n injectGaps(this.ranges, 0, tree.topNode, this.ranges[0].from, this.reusePlaceholders) : tree;\n }\n /**\n @internal\n */\n finishLeaf(leaf) {\n for (let parser of leaf.parsers)\n if (parser.finish(this, leaf))\n return;\n let inline = injectMarks(this.parser.parseInline(leaf.content, leaf.start), leaf.marks);\n this.addNode(this.buffer\n .writeElements(inline, -leaf.start)\n .finish(Type.Paragraph, leaf.content.length), leaf.start);\n }\n elt(type, from, to, children) {\n if (typeof type == \"string\")\n return elt(this.parser.getNodeType(type), from, to, children);\n return new TreeElement(type, from);\n }\n /**\n @internal\n */\n get buffer() { return new Buffer(this.parser.nodeSet); }\n}\nfunction injectGaps(ranges, rangeI, tree, offset, dummies) {\n let rangeEnd = ranges[rangeI].to;\n let children = [], positions = [], start = tree.from + offset;\n function movePastNext(upto, inclusive) {\n while (inclusive ? upto >= rangeEnd : upto > rangeEnd) {\n let size = ranges[rangeI + 1].from - rangeEnd;\n offset += size;\n upto += size;\n rangeI++;\n rangeEnd = ranges[rangeI].to;\n }\n }\n for (let ch = tree.firstChild; ch; ch = ch.nextSibling) {\n movePastNext(ch.from + offset, true);\n let from = ch.from + offset, node, reuse = dummies.get(ch.tree);\n if (reuse) {\n node = reuse;\n }\n else if (ch.to + offset > rangeEnd) {\n node = injectGaps(ranges, rangeI, ch, offset, dummies);\n movePastNext(ch.to + offset, false);\n }\n else {\n node = ch.toTree();\n }\n children.push(node);\n positions.push(from - start);\n }\n movePastNext(tree.to + offset, false);\n return new Tree(tree.type, children, positions, tree.to + offset - start, tree.tree ? tree.tree.propValues : undefined);\n}\n/**\nA Markdown parser configuration.\n*/\nclass MarkdownParser extends Parser {\n /**\n @internal\n */\n constructor(\n /**\n The parser's syntax [node\n types](https://lezer.codemirror.net/docs/ref/#common.NodeSet).\n */\n nodeSet, \n /**\n @internal\n */\n blockParsers, \n /**\n @internal\n */\n leafBlockParsers, \n /**\n @internal\n */\n blockNames, \n /**\n @internal\n */\n endLeafBlock, \n /**\n @internal\n */\n skipContextMarkup, \n /**\n @internal\n */\n inlineParsers, \n /**\n @internal\n */\n inlineNames, \n /**\n @internal\n */\n wrappers) {\n super();\n this.nodeSet = nodeSet;\n this.blockParsers = blockParsers;\n this.leafBlockParsers = leafBlockParsers;\n this.blockNames = blockNames;\n this.endLeafBlock = endLeafBlock;\n this.skipContextMarkup = skipContextMarkup;\n this.inlineParsers = inlineParsers;\n this.inlineNames = inlineNames;\n this.wrappers = wrappers;\n /**\n @internal\n */\n this.nodeTypes = Object.create(null);\n for (let t of nodeSet.types)\n this.nodeTypes[t.name] = t.id;\n }\n createParse(input, fragments, ranges) {\n let parse = new BlockContext(this, input, fragments, ranges);\n for (let w of this.wrappers)\n parse = w(parse, input, fragments, ranges);\n return parse;\n }\n /**\n Reconfigure the parser.\n */\n configure(spec) {\n let config = resolveConfig(spec);\n if (!config)\n return this;\n let { nodeSet, skipContextMarkup } = this;\n let blockParsers = this.blockParsers.slice(), leafBlockParsers = this.leafBlockParsers.slice(), blockNames = this.blockNames.slice(), inlineParsers = this.inlineParsers.slice(), inlineNames = this.inlineNames.slice(), endLeafBlock = this.endLeafBlock.slice(), wrappers = this.wrappers;\n if (nonEmpty(config.defineNodes)) {\n skipContextMarkup = Object.assign({}, skipContextMarkup);\n let nodeTypes = nodeSet.types.slice(), styles;\n for (let s of config.defineNodes) {\n let { name, block, composite, style } = typeof s == \"string\" ? { name: s } : s;\n if (nodeTypes.some(t => t.name == name))\n continue;\n if (composite)\n skipContextMarkup[nodeTypes.length] =\n (bl, cx, line) => composite(cx, line, bl.value);\n let id = nodeTypes.length;\n let group = composite ? [\"Block\", \"BlockContext\"] : !block ? undefined\n : id >= Type.ATXHeading1 && id <= Type.SetextHeading2 ? [\"Block\", \"LeafBlock\", \"Heading\"] : [\"Block\", \"LeafBlock\"];\n nodeTypes.push(NodeType.define({\n id,\n name,\n props: group && [[NodeProp.group, group]]\n }));\n if (style) {\n if (!styles)\n styles = {};\n if (Array.isArray(style) || style instanceof Tag)\n styles[name] = style;\n else\n Object.assign(styles, style);\n }\n }\n nodeSet = new NodeSet(nodeTypes);\n if (styles)\n nodeSet = nodeSet.extend(styleTags(styles));\n }\n if (nonEmpty(config.props))\n nodeSet = nodeSet.extend(...config.props);\n if (nonEmpty(config.remove)) {\n for (let rm of config.remove) {\n let block = this.blockNames.indexOf(rm), inline = this.inlineNames.indexOf(rm);\n if (block > -1)\n blockParsers[block] = leafBlockParsers[block] = undefined;\n if (inline > -1)\n inlineParsers[inline] = undefined;\n }\n }\n if (nonEmpty(config.parseBlock)) {\n for (let spec of config.parseBlock) {\n let found = blockNames.indexOf(spec.name);\n if (found > -1) {\n blockParsers[found] = spec.parse;\n leafBlockParsers[found] = spec.leaf;\n }\n else {\n let pos = spec.before ? findName(blockNames, spec.before)\n : spec.after ? findName(blockNames, spec.after) + 1 : blockNames.length - 1;\n blockParsers.splice(pos, 0, spec.parse);\n leafBlockParsers.splice(pos, 0, spec.leaf);\n blockNames.splice(pos, 0, spec.name);\n }\n if (spec.endLeaf)\n endLeafBlock.push(spec.endLeaf);\n }\n }\n if (nonEmpty(config.parseInline)) {\n for (let spec of config.parseInline) {\n let found = inlineNames.indexOf(spec.name);\n if (found > -1) {\n inlineParsers[found] = spec.parse;\n }\n else {\n let pos = spec.before ? findName(inlineNames, spec.before)\n : spec.after ? findName(inlineNames, spec.after) + 1 : inlineNames.length - 1;\n inlineParsers.splice(pos, 0, spec.parse);\n inlineNames.splice(pos, 0, spec.name);\n }\n }\n }\n if (config.wrap)\n wrappers = wrappers.concat(config.wrap);\n return new MarkdownParser(nodeSet, blockParsers, leafBlockParsers, blockNames, endLeafBlock, skipContextMarkup, inlineParsers, inlineNames, wrappers);\n }\n /**\n @internal\n */\n getNodeType(name) {\n let found = this.nodeTypes[name];\n if (found == null)\n throw new RangeError(`Unknown node type '${name}'`);\n return found;\n }\n /**\n Parse the given piece of inline text at the given offset,\n returning an array of [`Element`](#Element) objects representing\n the inline content.\n */\n parseInline(text, offset) {\n let cx = new InlineContext(this, text, offset);\n outer: for (let pos = offset; pos < cx.end;) {\n let next = cx.char(pos);\n for (let token of this.inlineParsers)\n if (token) {\n let result = token(cx, next, pos);\n if (result >= 0) {\n pos = result;\n continue outer;\n }\n }\n pos++;\n }\n return cx.resolveMarkers(0);\n }\n}\nfunction nonEmpty(a) {\n return a != null && a.length > 0;\n}\nfunction resolveConfig(spec) {\n if (!Array.isArray(spec))\n return spec;\n if (spec.length == 0)\n return null;\n let conf = resolveConfig(spec[0]);\n if (spec.length == 1)\n return conf;\n let rest = resolveConfig(spec.slice(1));\n if (!rest || !conf)\n return conf || rest;\n let conc = (a, b) => (a || none).concat(b || none);\n let wrapA = conf.wrap, wrapB = rest.wrap;\n return {\n props: conc(conf.props, rest.props),\n defineNodes: conc(conf.defineNodes, rest.defineNodes),\n parseBlock: conc(conf.parseBlock, rest.parseBlock),\n parseInline: conc(conf.parseInline, rest.parseInline),\n remove: conc(conf.remove, rest.remove),\n wrap: !wrapA ? wrapB : !wrapB ? wrapA :\n (inner, input, fragments, ranges) => wrapA(wrapB(inner, input, fragments, ranges), input, fragments, ranges)\n };\n}\nfunction findName(names, name) {\n let found = names.indexOf(name);\n if (found < 0)\n throw new RangeError(`Position specified relative to unknown parser ${name}`);\n return found;\n}\nlet nodeTypes = [NodeType.none];\nfor (let i = 1, name; name = Type[i]; i++) {\n nodeTypes[i] = NodeType.define({\n id: i,\n name,\n props: i >= Type.Escape ? [] : [[NodeProp.group, i in DefaultSkipMarkup ? [\"Block\", \"BlockContext\"] : [\"Block\", \"LeafBlock\"]]],\n top: name == \"Document\"\n });\n}\nconst none = [];\nclass Buffer {\n constructor(nodeSet) {\n this.nodeSet = nodeSet;\n this.content = [];\n this.nodes = [];\n }\n write(type, from, to, children = 0) {\n this.content.push(type, from, to, 4 + children * 4);\n return this;\n }\n writeElements(elts, offset = 0) {\n for (let e of elts)\n e.writeTo(this, offset);\n return this;\n }\n finish(type, length) {\n return Tree.build({\n buffer: this.content,\n nodeSet: this.nodeSet,\n reused: this.nodes,\n topID: type,\n length\n });\n }\n}\n/**\nElements are used to compose syntax nodes during parsing.\n*/\nclass Element {\n /**\n @internal\n */\n constructor(\n /**\n The node's\n [id](https://lezer.codemirror.net/docs/ref/#common.NodeType.id).\n */\n type, \n /**\n The start of the node, as an offset from the start of the document.\n */\n from, \n /**\n The end of the node.\n */\n to, \n /**\n The node's child nodes @internal\n */\n children = none) {\n this.type = type;\n this.from = from;\n this.to = to;\n this.children = children;\n }\n /**\n @internal\n */\n writeTo(buf, offset) {\n let startOff = buf.content.length;\n buf.writeElements(this.children, offset);\n buf.content.push(this.type, this.from + offset, this.to + offset, buf.content.length + 4 - startOff);\n }\n /**\n @internal\n */\n toTree(nodeSet) {\n return new Buffer(nodeSet).writeElements(this.children, -this.from).finish(this.type, this.to - this.from);\n }\n}\nclass TreeElement {\n constructor(tree, from) {\n this.tree = tree;\n this.from = from;\n }\n get to() { return this.from + this.tree.length; }\n get type() { return this.tree.type.id; }\n get children() { return none; }\n writeTo(buf, offset) {\n buf.nodes.push(this.tree);\n buf.content.push(buf.nodes.length - 1, this.from + offset, this.to + offset, -1);\n }\n toTree() { return this.tree; }\n}\nfunction elt(type, from, to, children) {\n return new Element(type, from, to, children);\n}\nconst EmphasisUnderscore = { resolve: \"Emphasis\", mark: \"EmphasisMark\" };\nconst EmphasisAsterisk = { resolve: \"Emphasis\", mark: \"EmphasisMark\" };\nconst LinkStart = {}, ImageStart = {};\nclass InlineDelimiter {\n constructor(type, from, to, side) {\n this.type = type;\n this.from = from;\n this.to = to;\n this.side = side;\n }\n}\nconst Escapable = \"!\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~\";\nlet Punctuation = /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~\\xA1\\u2010-\\u2027]/;\ntry {\n Punctuation = new RegExp(\"[\\\\p{S}|\\\\p{P}]\", \"u\");\n}\ncatch (_) { }\nconst DefaultInline = {\n Escape(cx, next, start) {\n if (next != 92 /* '\\\\' */ || start == cx.end - 1)\n return -1;\n let escaped = cx.char(start + 1);\n for (let i = 0; i < Escapable.length; i++)\n if (Escapable.charCodeAt(i) == escaped)\n return cx.append(elt(Type.Escape, start, start + 2));\n return -1;\n },\n Entity(cx, next, start) {\n if (next != 38 /* '&' */)\n return -1;\n let m = /^(?:#\\d+|#x[a-f\\d]+|\\w+);/i.exec(cx.slice(start + 1, start + 31));\n return m ? cx.append(elt(Type.Entity, start, start + 1 + m[0].length)) : -1;\n },\n InlineCode(cx, next, start) {\n if (next != 96 /* '`' */ || start && cx.char(start - 1) == 96)\n return -1;\n let pos = start + 1;\n while (pos < cx.end && cx.char(pos) == 96)\n pos++;\n let size = pos - start, curSize = 0;\n for (; pos < cx.end; pos++) {\n if (cx.char(pos) == 96) {\n curSize++;\n if (curSize == size && cx.char(pos + 1) != 96)\n return cx.append(elt(Type.InlineCode, start, pos + 1, [\n elt(Type.CodeMark, start, start + size),\n elt(Type.CodeMark, pos + 1 - size, pos + 1)\n ]));\n }\n else {\n curSize = 0;\n }\n }\n return -1;\n },\n HTMLTag(cx, next, start) {\n if (next != 60 /* '<' */ || start == cx.end - 1)\n return -1;\n let after = cx.slice(start + 1, cx.end);\n let url = /^(?:[a-z][-\\w+.]+:[^\\s>]+|[a-z\\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?(?:\\.[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?)*)>/i.exec(after);\n if (url) {\n return cx.append(elt(Type.Autolink, start, start + 1 + url[0].length, [\n elt(Type.LinkMark, start, start + 1),\n // url[0] includes the closing bracket, so exclude it from this slice\n elt(Type.URL, start + 1, start + url[0].length),\n elt(Type.LinkMark, start + url[0].length, start + 1 + url[0].length)\n ]));\n }\n let comment = /^!--[^>](?:-[^-]|[^-])*?-->/i.exec(after);\n if (comment)\n return cx.append(elt(Type.Comment, start, start + 1 + comment[0].length));\n let procInst = /^\\?[^]*?\\?>/.exec(after);\n if (procInst)\n return cx.append(elt(Type.ProcessingInstruction, start, start + 1 + procInst[0].length));\n let m = /^(?:![A-Z][^]*?>|!\\[CDATA\\[[^]*?\\]\\]>|\\/\\s*[a-zA-Z][\\w-]*\\s*>|\\s*[a-zA-Z][\\w-]*(\\s+[a-zA-Z:_][\\w-.:]*(?:\\s*=\\s*(?:[^\\s\"'=<>`]+|'[^']*'|\"[^\"]*\"))?)*\\s*(\\/\\s*)?>)/.exec(after);\n if (!m)\n return -1;\n return cx.append(elt(Type.HTMLTag, start, start + 1 + m[0].length));\n },\n Emphasis(cx, next, start) {\n if (next != 95 && next != 42)\n return -1;\n let pos = start + 1;\n while (cx.char(pos) == next)\n pos++;\n let before = cx.slice(start - 1, start), after = cx.slice(pos, pos + 1);\n let pBefore = Punctuation.test(before), pAfter = Punctuation.test(after);\n let sBefore = /\\s|^$/.test(before), sAfter = /\\s|^$/.test(after);\n let leftFlanking = !sAfter && (!pAfter || sBefore || pBefore);\n let rightFlanking = !sBefore && (!pBefore || sAfter || pAfter);\n let canOpen = leftFlanking && (next == 42 || !rightFlanking || pBefore);\n let canClose = rightFlanking && (next == 42 || !leftFlanking || pAfter);\n return cx.append(new InlineDelimiter(next == 95 ? EmphasisUnderscore : EmphasisAsterisk, start, pos, (canOpen ? 1 /* Mark.Open */ : 0 /* Mark.None */) | (canClose ? 2 /* Mark.Close */ : 0 /* Mark.None */)));\n },\n HardBreak(cx, next, start) {\n if (next == 92 /* '\\\\' */ && cx.char(start + 1) == 10 /* '\\n' */)\n return cx.append(elt(Type.HardBreak, start, start + 2));\n if (next == 32) {\n let pos = start + 1;\n while (cx.char(pos) == 32)\n pos++;\n if (cx.char(pos) == 10 && pos >= start + 2)\n return cx.append(elt(Type.HardBreak, start, pos + 1));\n }\n return -1;\n },\n Link(cx, next, start) {\n return next == 91 /* '[' */ ? cx.append(new InlineDelimiter(LinkStart, start, start + 1, 1 /* Mark.Open */)) : -1;\n },\n Image(cx, next, start) {\n return next == 33 /* '!' */ && cx.char(start + 1) == 91 /* '[' */\n ? cx.append(new InlineDelimiter(ImageStart, start, start + 2, 1 /* Mark.Open */)) : -1;\n },\n LinkEnd(cx, next, start) {\n if (next != 93 /* ']' */)\n return -1;\n // Scanning back to the next link/image start marker\n for (let i = cx.parts.length - 1; i >= 0; i--) {\n let part = cx.parts[i];\n if (part instanceof InlineDelimiter && (part.type == LinkStart || part.type == ImageStart)) {\n // If this one has been set invalid (because it would produce\n // a nested link) or there's no valid link here ignore both.\n if (!part.side || cx.skipSpace(part.to) == start && !/[(\\[]/.test(cx.slice(start + 1, start + 2))) {\n cx.parts[i] = null;\n return -1;\n }\n // Finish the content and replace the entire range in\n // this.parts with the link/image node.\n let content = cx.takeContent(i);\n let link = cx.parts[i] = finishLink(cx, content, part.type == LinkStart ? Type.Link : Type.Image, part.from, start + 1);\n // Set any open-link markers before this link to invalid.\n if (part.type == LinkStart)\n for (let j = 0; j < i; j++) {\n let p = cx.parts[j];\n if (p instanceof InlineDelimiter && p.type == LinkStart)\n p.side = 0 /* Mark.None */;\n }\n return link.to;\n }\n }\n return -1;\n }\n};\nfunction finishLink(cx, content, type, start, startPos) {\n let { text } = cx, next = cx.char(startPos), endPos = startPos;\n content.unshift(elt(Type.LinkMark, start, start + (type == Type.Image ? 2 : 1)));\n content.push(elt(Type.LinkMark, startPos - 1, startPos));\n if (next == 40 /* '(' */) {\n let pos = cx.skipSpace(startPos + 1);\n let dest = parseURL(text, pos - cx.offset, cx.offset), title;\n if (dest) {\n pos = cx.skipSpace(dest.to);\n // The destination and title must be separated by whitespace\n if (pos != dest.to) {\n title = parseLinkTitle(text, pos - cx.offset, cx.offset);\n if (title)\n pos = cx.skipSpace(title.to);\n }\n }\n if (cx.char(pos) == 41 /* ')' */) {\n content.push(elt(Type.LinkMark, startPos, startPos + 1));\n endPos = pos + 1;\n if (dest)\n content.push(dest);\n if (title)\n content.push(title);\n content.push(elt(Type.LinkMark, pos, endPos));\n }\n }\n else if (next == 91 /* '[' */) {\n let label = parseLinkLabel(text, startPos - cx.offset, cx.offset, false);\n if (label) {\n content.push(label);\n endPos = label.to;\n }\n }\n return elt(type, start, endPos, content);\n}\n// These return `null` when falling off the end of the input, `false`\n// when parsing fails otherwise (for use in the incremental link\n// reference parser).\nfunction parseURL(text, start, offset) {\n let next = text.charCodeAt(start);\n if (next == 60 /* '<' */) {\n for (let pos = start + 1; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (ch == 62 /* '>' */)\n return elt(Type.URL, start + offset, pos + 1 + offset);\n if (ch == 60 || ch == 10 /* '<\\n' */)\n return false;\n }\n return null;\n }\n else {\n let depth = 0, pos = start;\n for (let escaped = false; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (space(ch)) {\n break;\n }\n else if (escaped) {\n escaped = false;\n }\n else if (ch == 40 /* '(' */) {\n depth++;\n }\n else if (ch == 41 /* ')' */) {\n if (!depth)\n break;\n depth--;\n }\n else if (ch == 92 /* '\\\\' */) {\n escaped = true;\n }\n }\n return pos > start ? elt(Type.URL, start + offset, pos + offset) : pos == text.length ? null : false;\n }\n}\nfunction parseLinkTitle(text, start, offset) {\n let next = text.charCodeAt(start);\n if (next != 39 && next != 34 && next != 40 /* '\"\\'(' */)\n return false;\n let end = next == 40 ? 41 : next;\n for (let pos = start + 1, escaped = false; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (escaped)\n escaped = false;\n else if (ch == end)\n return elt(Type.LinkTitle, start + offset, pos + 1 + offset);\n else if (ch == 92 /* '\\\\' */)\n escaped = true;\n }\n return null;\n}\nfunction parseLinkLabel(text, start, offset, requireNonWS) {\n for (let escaped = false, pos = start + 1, end = Math.min(text.length, pos + 999); pos < end; pos++) {\n let ch = text.charCodeAt(pos);\n if (escaped)\n escaped = false;\n else if (ch == 93 /* ']' */)\n return requireNonWS ? false : elt(Type.LinkLabel, start + offset, pos + 1 + offset);\n else {\n if (requireNonWS && !space(ch))\n requireNonWS = false;\n if (ch == 91 /* '[' */)\n return false;\n else if (ch == 92 /* '\\\\' */)\n escaped = true;\n }\n }\n return null;\n}\n/**\nInline parsing functions get access to this context, and use it to\nread the content and emit syntax nodes.\n*/\nclass InlineContext {\n /**\n @internal\n */\n constructor(\n /**\n The parser that is being used.\n */\n parser, \n /**\n The text of this inline section.\n */\n text, \n /**\n The starting offset of the section in the document.\n */\n offset) {\n this.parser = parser;\n this.text = text;\n this.offset = offset;\n /**\n @internal\n */\n this.parts = [];\n }\n /**\n Get the character code at the given (document-relative)\n position.\n */\n char(pos) { return pos >= this.end ? -1 : this.text.charCodeAt(pos - this.offset); }\n /**\n The position of the end of this inline section.\n */\n get end() { return this.offset + this.text.length; }\n /**\n Get a substring of this inline section. Again uses\n document-relative positions.\n */\n slice(from, to) { return this.text.slice(from - this.offset, to - this.offset); }\n /**\n @internal\n */\n append(elt) {\n this.parts.push(elt);\n return elt.to;\n }\n /**\n Add a [delimiter](#DelimiterType) at this given position. `open`\n and `close` indicate whether this delimiter is opening, closing,\n or both. Returns the end of the delimiter, for convenient\n returning from [parse functions](#InlineParser.parse).\n */\n addDelimiter(type, from, to, open, close) {\n return this.append(new InlineDelimiter(type, from, to, (open ? 1 /* Mark.Open */ : 0 /* Mark.None */) | (close ? 2 /* Mark.Close */ : 0 /* Mark.None */)));\n }\n /**\n Returns true when there is an unmatched link or image opening\n token before the current position.\n */\n get hasOpenLink() {\n for (let i = this.parts.length - 1; i >= 0; i--) {\n let part = this.parts[i];\n if (part instanceof InlineDelimiter && (part.type == LinkStart || part.type == ImageStart))\n return true;\n }\n return false;\n }\n /**\n Add an inline element. Returns the end of the element.\n */\n addElement(elt) {\n return this.append(elt);\n }\n /**\n Resolve markers between this.parts.length and from, wrapping matched markers in the\n appropriate node and updating the content of this.parts. @internal\n */\n resolveMarkers(from) {\n // Scan forward, looking for closing tokens\n for (let i = from; i < this.parts.length; i++) {\n let close = this.parts[i];\n if (!(close instanceof InlineDelimiter && close.type.resolve && (close.side & 2 /* Mark.Close */)))\n continue;\n let emp = close.type == EmphasisUnderscore || close.type == EmphasisAsterisk;\n let closeSize = close.to - close.from;\n let open, j = i - 1;\n // Continue scanning for a matching opening token\n for (; j >= from; j--) {\n let part = this.parts[j];\n if (part instanceof InlineDelimiter && (part.side & 1 /* Mark.Open */) && part.type == close.type &&\n // Ignore emphasis delimiters where the character count doesn't match\n !(emp && ((close.side & 1 /* Mark.Open */) || (part.side & 2 /* Mark.Close */)) &&\n (part.to - part.from + closeSize) % 3 == 0 && ((part.to - part.from) % 3 || closeSize % 3))) {\n open = part;\n break;\n }\n }\n if (!open)\n continue;\n let type = close.type.resolve, content = [];\n let start = open.from, end = close.to;\n // Emphasis marker effect depends on the character count. Size consumed is minimum of the two\n // markers.\n if (emp) {\n let size = Math.min(2, open.to - open.from, closeSize);\n start = open.to - size;\n end = close.from + size;\n type = size == 1 ? \"Emphasis\" : \"StrongEmphasis\";\n }\n // Move the covered region into content, optionally adding marker nodes\n if (open.type.mark)\n content.push(this.elt(open.type.mark, start, open.to));\n for (let k = j + 1; k < i; k++) {\n if (this.parts[k] instanceof Element)\n content.push(this.parts[k]);\n this.parts[k] = null;\n }\n if (close.type.mark)\n content.push(this.elt(close.type.mark, close.from, end));\n let element = this.elt(type, start, end, content);\n // If there are leftover emphasis marker characters, shrink the close/open markers. Otherwise, clear them.\n this.parts[j] = emp && open.from != start ? new InlineDelimiter(open.type, open.from, start, open.side) : null;\n let keep = this.parts[i] = emp && close.to != end ? new InlineDelimiter(close.type, end, close.to, close.side) : null;\n // Insert the new element in this.parts\n if (keep)\n this.parts.splice(i, 0, element);\n else\n this.parts[i] = element;\n }\n // Collect the elements remaining in this.parts into an array.\n let result = [];\n for (let i = from; i < this.parts.length; i++) {\n let part = this.parts[i];\n if (part instanceof Element)\n result.push(part);\n }\n return result;\n }\n /**\n Find an opening delimiter of the given type. Returns `null` if\n no delimiter is found, or an index that can be passed to\n [`takeContent`](#InlineContext.takeContent) otherwise.\n */\n findOpeningDelimiter(type) {\n for (let i = this.parts.length - 1; i >= 0; i--) {\n let part = this.parts[i];\n if (part instanceof InlineDelimiter && part.type == type && (part.side & 1 /* Mark.Open */))\n return i;\n }\n return null;\n }\n /**\n Remove all inline elements and delimiters starting from the\n given index (which you should get from\n [`findOpeningDelimiter`](#InlineContext.findOpeningDelimiter),\n resolve delimiters inside of them, and return them as an array\n of elements.\n */\n takeContent(startIndex) {\n let content = this.resolveMarkers(startIndex);\n this.parts.length = startIndex;\n return content;\n }\n /**\n Return the delimiter at the given index. Mostly useful to get\n additional info out of a delimiter index returned by\n [`findOpeningDelimiter`](#InlineContext.findOpeningDelimiter).\n Returns null if there is no delimiter at this index.\n */\n getDelimiterAt(index) {\n let part = this.parts[index];\n return part instanceof InlineDelimiter ? part : null;\n }\n /**\n Skip space after the given (document) position, returning either\n the position of the next non-space character or the end of the\n section.\n */\n skipSpace(from) { return skipSpace(this.text, from - this.offset) + this.offset; }\n elt(type, from, to, children) {\n if (typeof type == \"string\")\n return elt(this.parser.getNodeType(type), from, to, children);\n return new TreeElement(type, from);\n }\n}\n/**\nThe opening delimiter type used by the standard link parser.\n*/\nInlineContext.linkStart = LinkStart;\n/**\nOpening delimiter type used for standard images.\n*/\nInlineContext.imageStart = ImageStart;\nfunction injectMarks(elements, marks) {\n if (!marks.length)\n return elements;\n if (!elements.length)\n return marks;\n let elts = elements.slice(), eI = 0;\n for (let mark of marks) {\n while (eI < elts.length && elts[eI].to < mark.to)\n eI++;\n if (eI < elts.length && elts[eI].from < mark.from) {\n let e = elts[eI];\n if (e instanceof Element)\n elts[eI] = new Element(e.type, e.from, e.to, injectMarks(e.children, [mark]));\n }\n else {\n elts.splice(eI++, 0, mark);\n }\n }\n return elts;\n}\n// These are blocks that can span blank lines, and should thus only be\n// reused if their next sibling is also being reused.\nconst NotLast = [Type.CodeBlock, Type.ListItem, Type.OrderedList, Type.BulletList];\nclass FragmentCursor {\n constructor(fragments, input) {\n this.fragments = fragments;\n this.input = input;\n // Index into fragment array\n this.i = 0;\n // Active fragment\n this.fragment = null;\n this.fragmentEnd = -1;\n // Cursor into the current fragment, if any. When `moveTo` returns\n // true, this points at the first block after `pos`.\n this.cursor = null;\n if (fragments.length)\n this.fragment = fragments[this.i++];\n }\n nextFragment() {\n this.fragment = this.i < this.fragments.length ? this.fragments[this.i++] : null;\n this.cursor = null;\n this.fragmentEnd = -1;\n }\n moveTo(pos, lineStart) {\n while (this.fragment && this.fragment.to <= pos)\n this.nextFragment();\n if (!this.fragment || this.fragment.from > (pos ? pos - 1 : 0))\n return false;\n if (this.fragmentEnd < 0) {\n let end = this.fragment.to;\n while (end > 0 && this.input.read(end - 1, end) != \"\\n\")\n end--;\n this.fragmentEnd = end ? end - 1 : 0;\n }\n let c = this.cursor;\n if (!c) {\n c = this.cursor = this.fragment.tree.cursor();\n c.firstChild();\n }\n let rPos = pos + this.fragment.offset;\n while (c.to <= rPos)\n if (!c.parent())\n return false;\n for (;;) {\n if (c.from >= rPos)\n return this.fragment.from <= lineStart;\n if (!c.childAfter(rPos))\n return false;\n }\n }\n matches(hash) {\n let tree = this.cursor.tree;\n return tree && tree.prop(NodeProp.contextHash) == hash;\n }\n takeNodes(cx) {\n let cur = this.cursor, off = this.fragment.offset, fragEnd = this.fragmentEnd - (this.fragment.openEnd ? 1 : 0);\n let start = cx.absoluteLineStart, end = start, blockI = cx.block.children.length;\n let prevEnd = end, prevI = blockI;\n for (;;) {\n if (cur.to - off > fragEnd) {\n if (cur.type.isAnonymous && cur.firstChild())\n continue;\n break;\n }\n let pos = toRelative(cur.from - off, cx.ranges);\n if (cur.to - off <= cx.ranges[cx.rangeI].to) { // Fits in current range\n cx.addNode(cur.tree, pos);\n }\n else {\n let dummy = new Tree(cx.parser.nodeSet.types[Type.Paragraph], [], [], 0, cx.block.hashProp);\n cx.reusePlaceholders.set(dummy, cur.tree);\n cx.addNode(dummy, pos);\n }\n // Taken content must always end in a block, because incremental\n // parsing happens on block boundaries. Never stop directly\n // after an indented code block, since those can continue after\n // any number of blank lines.\n if (cur.type.is(\"Block\")) {\n if (NotLast.indexOf(cur.type.id) < 0) {\n end = cur.to - off;\n blockI = cx.block.children.length;\n }\n else {\n end = prevEnd;\n blockI = prevI;\n }\n prevEnd = cur.to - off;\n prevI = cx.block.children.length;\n }\n if (!cur.nextSibling())\n break;\n }\n while (cx.block.children.length > blockI) {\n cx.block.children.pop();\n cx.block.positions.pop();\n }\n return end - start;\n }\n}\n// Convert an input-stream-relative position to a\n// Markdown-doc-relative position by subtracting the size of all input\n// gaps before `abs`.\nfunction toRelative(abs, ranges) {\n let pos = abs;\n for (let i = 1; i < ranges.length; i++) {\n let gapFrom = ranges[i - 1].to, gapTo = ranges[i].from;\n if (gapFrom < abs)\n pos -= gapTo - gapFrom;\n }\n return pos;\n}\nconst markdownHighlighting = styleTags({\n \"Blockquote/...\": tags.quote,\n HorizontalRule: tags.contentSeparator,\n \"ATXHeading1/... SetextHeading1/...\": tags.heading1,\n \"ATXHeading2/... SetextHeading2/...\": tags.heading2,\n \"ATXHeading3/...\": tags.heading3,\n \"ATXHeading4/...\": tags.heading4,\n \"ATXHeading5/...\": tags.heading5,\n \"ATXHeading6/...\": tags.heading6,\n \"Comment CommentBlock\": tags.comment,\n Escape: tags.escape,\n Entity: tags.character,\n \"Emphasis/...\": tags.emphasis,\n \"StrongEmphasis/...\": tags.strong,\n \"Link/... Image/...\": tags.link,\n \"OrderedList/... BulletList/...\": tags.list,\n \"BlockQuote/...\": tags.quote,\n \"InlineCode CodeText\": tags.monospace,\n \"URL Autolink\": tags.url,\n \"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark\": tags.processingInstruction,\n \"CodeInfo LinkLabel\": tags.labelName,\n LinkTitle: tags.string,\n Paragraph: tags.content\n});\n/**\nThe default CommonMark parser.\n*/\nconst parser = new MarkdownParser(new NodeSet(nodeTypes).extend(markdownHighlighting), Object.keys(DefaultBlockParsers).map(n => DefaultBlockParsers[n]), Object.keys(DefaultBlockParsers).map(n => DefaultLeafBlocks[n]), Object.keys(DefaultBlockParsers), DefaultEndLeaf, DefaultSkipMarkup, Object.keys(DefaultInline).map(n => DefaultInline[n]), Object.keys(DefaultInline), []);\n\nfunction leftOverSpace(node, from, to) {\n let ranges = [];\n for (let n = node.firstChild, pos = from;; n = n.nextSibling) {\n let nextPos = n ? n.from : to;\n if (nextPos > pos)\n ranges.push({ from: pos, to: nextPos });\n if (!n)\n break;\n pos = n.to;\n }\n return ranges;\n}\n/**\nCreate a Markdown extension to enable nested parsing on code\nblocks and/or embedded HTML.\n*/\nfunction parseCode(config) {\n let { codeParser, htmlParser } = config;\n let wrap = parseMixed((node, input) => {\n let id = node.type.id;\n if (codeParser && (id == Type.CodeBlock || id == Type.FencedCode)) {\n let info = \"\";\n if (id == Type.FencedCode) {\n let infoNode = node.node.getChild(Type.CodeInfo);\n if (infoNode)\n info = input.read(infoNode.from, infoNode.to);\n }\n let parser = codeParser(info);\n if (parser)\n return { parser, overlay: node => node.type.id == Type.CodeText, bracketed: id == Type.FencedCode };\n }\n else if (htmlParser && (id == Type.HTMLBlock || id == Type.HTMLTag || id == Type.CommentBlock)) {\n return { parser: htmlParser, overlay: leftOverSpace(node.node, node.from, node.to) };\n }\n return null;\n });\n return { wrap };\n}\n\nconst StrikethroughDelim = { resolve: \"Strikethrough\", mark: \"StrikethroughMark\" };\n/**\nAn extension that implements\n[GFM-style](https://github.github.com/gfm/#strikethrough-extension-)\nStrikethrough syntax using `~~` delimiters.\n*/\nconst Strikethrough = {\n defineNodes: [{\n name: \"Strikethrough\",\n style: { \"Strikethrough/...\": tags.strikethrough }\n }, {\n name: \"StrikethroughMark\",\n style: tags.processingInstruction\n }],\n parseInline: [{\n name: \"Strikethrough\",\n parse(cx, next, pos) {\n if (next != 126 /* '~' */ || cx.char(pos + 1) != 126 || cx.char(pos + 2) == 126)\n return -1;\n let before = cx.slice(pos - 1, pos), after = cx.slice(pos + 2, pos + 3);\n let sBefore = /\\s|^$/.test(before), sAfter = /\\s|^$/.test(after);\n let pBefore = Punctuation.test(before), pAfter = Punctuation.test(after);\n return cx.addDelimiter(StrikethroughDelim, pos, pos + 2, !sAfter && (!pAfter || sBefore || pBefore), !sBefore && (!pBefore || sAfter || pAfter));\n },\n after: \"Emphasis\"\n }]\n};\n// Parse a line as a table row and return the row count. When `elts`\n// is given, push syntax elements for the content onto it.\nfunction parseRow(cx, line, startI = 0, elts, offset = 0) {\n let count = 0, first = true, cellStart = -1, cellEnd = -1, esc = false;\n let parseCell = () => {\n elts.push(cx.elt(\"TableCell\", offset + cellStart, offset + cellEnd, cx.parser.parseInline(line.slice(cellStart, cellEnd), offset + cellStart)));\n };\n for (let i = startI; i < line.length; i++) {\n let next = line.charCodeAt(i);\n if (next == 124 /* '|' */ && !esc) {\n if (!first || cellStart > -1)\n count++;\n first = false;\n if (elts) {\n if (cellStart > -1)\n parseCell();\n elts.push(cx.elt(\"TableDelimiter\", i + offset, i + offset + 1));\n }\n cellStart = cellEnd = -1;\n }\n else if (esc || next != 32 && next != 9) {\n if (cellStart < 0)\n cellStart = i;\n cellEnd = i + 1;\n }\n esc = !esc && next == 92;\n }\n if (cellStart > -1) {\n count++;\n if (elts)\n parseCell();\n }\n return count;\n}\nfunction hasPipe(str, start) {\n for (let i = start; i < str.length; i++) {\n let next = str.charCodeAt(i);\n if (next == 124 /* '|' */)\n return true;\n if (next == 92 /* '\\\\' */)\n i++;\n }\n return false;\n}\nconst delimiterLine = /^\\|?(\\s*:?-+:?\\s*\\|)+(\\s*:?-+:?\\s*)?$/;\nclass TableParser {\n constructor() {\n // Null means we haven't seen the second line yet, false means this\n // isn't a table, and an array means this is a table and we've\n // parsed the given rows so far.\n this.rows = null;\n }\n nextLine(cx, line, leaf) {\n if (this.rows == null) { // Second line\n this.rows = false;\n let lineText;\n if ((line.next == 45 || line.next == 58 || line.next == 124 /* '-:|' */) &&\n delimiterLine.test(lineText = line.text.slice(line.pos))) {\n let firstRow = [], firstCount = parseRow(cx, leaf.content, 0, firstRow, leaf.start);\n if (firstCount == parseRow(cx, lineText, line.pos))\n this.rows = [cx.elt(\"TableHeader\", leaf.start, leaf.start + leaf.content.length, firstRow),\n cx.elt(\"TableDelimiter\", cx.lineStart + line.pos, cx.lineStart + line.text.length)];\n }\n }\n else if (this.rows) { // Line after the second\n let content = [];\n parseRow(cx, line.text, line.pos, content, cx.lineStart);\n this.rows.push(cx.elt(\"TableRow\", cx.lineStart + line.pos, cx.lineStart + line.text.length, content));\n }\n return false;\n }\n finish(cx, leaf) {\n if (!this.rows)\n return false;\n cx.addLeafElement(leaf, cx.elt(\"Table\", leaf.start, leaf.start + leaf.content.length, this.rows));\n return true;\n }\n}\n/**\nThis extension provides\n[GFM-style](https://github.github.com/gfm/#tables-extension-)\ntables, using syntax like this:\n\n```\n| head 1 | head 2 |\n| --- | --- |\n| cell 1 | cell 2 |\n```\n*/\nconst Table = {\n defineNodes: [\n { name: \"Table\", block: true },\n { name: \"TableHeader\", style: { \"TableHeader/...\": tags.heading } },\n \"TableRow\",\n { name: \"TableCell\", style: tags.content },\n { name: \"TableDelimiter\", style: tags.processingInstruction },\n ],\n parseBlock: [{\n name: \"Table\",\n leaf(_, leaf) { return hasPipe(leaf.content, 0) ? new TableParser : null; },\n endLeaf(cx, line, leaf) {\n if (leaf.parsers.some(p => p instanceof TableParser) || !hasPipe(line.text, line.basePos))\n return false;\n let next = cx.peekLine();\n return delimiterLine.test(next) && parseRow(cx, line.text, line.basePos) == parseRow(cx, next, line.basePos);\n },\n before: \"SetextHeading\"\n }]\n};\nclass TaskParser {\n nextLine() { return false; }\n finish(cx, leaf) {\n cx.addLeafElement(leaf, cx.elt(\"Task\", leaf.start, leaf.start + leaf.content.length, [\n cx.elt(\"TaskMarker\", leaf.start, leaf.start + 3),\n ...cx.parser.parseInline(leaf.content.slice(3), leaf.start + 3)\n ]));\n return true;\n }\n}\n/**\nExtension providing\n[GFM-style](https://github.github.com/gfm/#task-list-items-extension-)\ntask list items, where list items can be prefixed with `[ ]` or\n`[x]` to add a checkbox.\n*/\nconst TaskList = {\n defineNodes: [\n { name: \"Task\", block: true, style: tags.list },\n { name: \"TaskMarker\", style: tags.atom }\n ],\n parseBlock: [{\n name: \"TaskList\",\n leaf(cx, leaf) {\n return /^\\[[ xX]\\][ \\t]/.test(leaf.content) && cx.parentType().name == \"ListItem\" ? new TaskParser : null;\n },\n after: \"SetextHeading\"\n }]\n};\nconst autolinkRE = /(www\\.)|(https?:\\/\\/)|([\\w.+-]{1,100}@)|(mailto:|xmpp:)/gy;\nconst urlRE = /[\\w-]+(\\.[\\w-]+)+(\\/[^\\s<]*)?/gy;\nconst lastTwoDomainWords = /[\\w-]+\\.[\\w-]+($|\\/)/;\nconst emailRE = /[\\w.+-]+@[\\w-]+(\\.[\\w.-]+)+/gy;\nconst xmppResourceRE = /\\/[a-zA-Z\\d@.]+/gy;\nfunction count(str, from, to, ch) {\n let result = 0;\n for (let i = from; i < to; i++)\n if (str[i] == ch)\n result++;\n return result;\n}\nfunction autolinkURLEnd(text, from) {\n urlRE.lastIndex = from;\n let m = urlRE.exec(text);\n if (!m || lastTwoDomainWords.exec(m[0])[0].indexOf(\"_\") > -1)\n return -1;\n let end = from + m[0].length;\n for (;;) {\n let last = text[end - 1], m;\n if (/[?!.,:*_~]/.test(last) ||\n last == \")\" && count(text, from, end, \")\") > count(text, from, end, \"(\"))\n end--;\n else if (last == \";\" && (m = /&(?:#\\d+|#x[a-f\\d]+|\\w+);$/.exec(text.slice(from, end))))\n end = from + m.index;\n else\n break;\n }\n return end;\n}\nfunction autolinkEmailEnd(text, from) {\n emailRE.lastIndex = from;\n let m = emailRE.exec(text);\n if (!m)\n return -1;\n let last = m[0][m[0].length - 1];\n return last == \"_\" || last == \"-\" ? -1 : from + m[0].length - (last == \".\" ? 1 : 0);\n}\n/**\nExtension that implements autolinking for\n`www.`/`http://`/`https://`/`mailto:`/`xmpp:` URLs and email\naddresses.\n*/\nconst Autolink = {\n parseInline: [{\n name: \"Autolink\",\n parse(cx, next, absPos) {\n let pos = absPos - cx.offset;\n if (pos && /\\w/.test(cx.text[pos - 1]))\n return -1;\n autolinkRE.lastIndex = pos;\n let m = autolinkRE.exec(cx.text), end = -1;\n if (!m)\n return -1;\n if (m[1] || m[2]) { // www., http://\n end = autolinkURLEnd(cx.text, pos + m[0].length);\n if (end > -1 && cx.hasOpenLink) {\n let noBracket = /([^\\[\\]]|\\[[^\\]]*\\])*/.exec(cx.text.slice(pos, end));\n end = pos + noBracket[0].length;\n }\n }\n else if (m[3]) { // email address\n end = autolinkEmailEnd(cx.text, pos);\n }\n else { // mailto:/xmpp:\n end = autolinkEmailEnd(cx.text, pos + m[0].length);\n if (end > -1 && m[0] == \"xmpp:\") {\n xmppResourceRE.lastIndex = end;\n m = xmppResourceRE.exec(cx.text);\n if (m)\n end = m.index + m[0].length;\n }\n }\n if (end < 0)\n return -1;\n cx.addElement(cx.elt(\"URL\", absPos, end + cx.offset));\n return end + cx.offset;\n }\n }]\n};\n/**\nExtension bundle containing [`Table`](#Table),\n[`TaskList`](#TaskList), [`Strikethrough`](#Strikethrough), and\n[`Autolink`](#Autolink).\n*/\nconst GFM = [Table, TaskList, Strikethrough, Autolink];\nfunction parseSubSuper(ch, node, mark) {\n return (cx, next, pos) => {\n if (next != ch || cx.char(pos + 1) == ch)\n return -1;\n let elts = [cx.elt(mark, pos, pos + 1)];\n for (let i = pos + 1; i < cx.end; i++) {\n let next = cx.char(i);\n if (next == ch)\n return cx.addElement(cx.elt(node, pos, i + 1, elts.concat(cx.elt(mark, i, i + 1))));\n if (next == 92 /* '\\\\' */)\n elts.push(cx.elt(\"Escape\", i, i++ + 2));\n if (space(next))\n break;\n }\n return -1;\n };\n}\n/**\nExtension providing\n[Pandoc-style](https://pandoc.org/MANUAL.html#superscripts-and-subscripts)\nsuperscript using `^` markers.\n*/\nconst Superscript = {\n defineNodes: [\n { name: \"Superscript\", style: tags.special(tags.content) },\n { name: \"SuperscriptMark\", style: tags.processingInstruction }\n ],\n parseInline: [{\n name: \"Superscript\",\n parse: parseSubSuper(94 /* '^' */, \"Superscript\", \"SuperscriptMark\")\n }]\n};\n/**\nExtension providing\n[Pandoc-style](https://pandoc.org/MANUAL.html#superscripts-and-subscripts)\nsubscript using `~` markers.\n*/\nconst Subscript = {\n defineNodes: [\n { name: \"Subscript\", style: tags.special(tags.content) },\n { name: \"SubscriptMark\", style: tags.processingInstruction }\n ],\n parseInline: [{\n name: \"Subscript\",\n parse: parseSubSuper(126 /* '~' */, \"Subscript\", \"SubscriptMark\")\n }]\n};\n/**\nExtension that parses two colons with only letters, underscores,\nand numbers between them as `Emoji` nodes.\n*/\nconst Emoji = {\n defineNodes: [{ name: \"Emoji\", style: tags.character }],\n parseInline: [{\n name: \"Emoji\",\n parse(cx, next, pos) {\n let match;\n if (next != 58 /* ':' */ || !(match = /^[a-zA-Z_0-9]+:/.exec(cx.slice(pos + 1, cx.end))))\n return -1;\n return cx.addElement(cx.elt(\"Emoji\", pos, pos + 1 + match[0].length));\n }\n }]\n};\n\nexport { Autolink, BlockContext, Element, Emoji, GFM, InlineContext, LeafBlock, Line, MarkdownParser, Strikethrough, Subscript, Superscript, Table, TaskList, parseCode, parser };\n"],"names":["_CompositeBlock","create","type","value","from","parentHash","end","constructor","hash","children","positions","this","hashProp","NodeProp","contextHash","addChild","child","pos","prop","Tree","length","push","toTree","nodeSet","last","Math","max","types","balance","makeTree","__name","NodeType","none","CompositeBlock","Type","_LeafBlock","start","content","marks","parsers","LeafBlock","_Line","text","baseIndent","basePos","depth","markers","indent","next","forward","forwardInner","newPos","skipSpace","countIndent","charCodeAt","reset","pop","moveBase","to","moveBaseColumn","findColumn","addMarker","elt","i","goal","scrub","result","slice","Line","skipForList","bl","cx","line","block","stack","size","OrderedList","isOrderedList","isBulletList","BulletList","isHorizontalRule","DefaultSkipMarkup","Blockquote","QuoteMark","lineStart","space","ListItem","_cx","Document","ch","skipSpaceBack","isFencedCode","isBlockquote","breaking","count","isSetextUnderline","parser","leafBlockParsers","indexOf","DefaultLeafBlocks","SetextHeading","inList","isAtxHeading","EmptyLine","CommentEnd","ProcessingEnd","HTMLBlockStyle","isHTMLBlock","rest","e","test","getListIndent","indentAfter","indented","addCodeText","CodeText","DefaultBlockParsers","LinkReference","IndentedCode","base","pendingMarks","nextLine","m","codeStart","filter","concat","addNode","buffer","writeElements","finish","CodeBlock","FencedCode","fenceEnd","len","infoFrom","infoTo","CodeMark","CodeInfo","first","empty","hasLine","textStart","textEnd","prevLineEnd","startContext","HorizontalRule","newBase","ListMark","ATXHeading","off","endOfSpace","after","buf","write","HeaderMark","parseInline","node","ATXHeading1","HTMLBlock","trailing","nodeType","CommentBlock","ProcessingInstructionBlock","_LinkReferenceParser","leaf","stage","elts","advance","complete","addLeafElement","nextStage","parseLinkLabel","LinkMark","skip","title","parseLinkTitle","titleEnd","lineEnd","parseURL","LinkReferenceParser","_SetextHeadingParser","underline","underlineMark","SetextHeading1","SetextHeading2","SetextHeadingParser","_","DefaultEndLeaf","p","scanLineResult","_BlockContext","input","fragments","ranges","atEnd","reusePlaceholders","Map","stoppedAt","rangeI","absoluteLineStart","absoluteLineEnd","FragmentCursor","readLine","parsedPos","markI","mark","finishContext","reuseFragment","blockParsers","parse","lines","stop","endLeafBlock","finishLeaf","stopAt","RangeError","moveTo","matches","taken","takeNodes","toRelative","moveRangeI","parentType","peekLine","scanLine","r","lineChunkAt","textOffset","nextFrom","handler","skipContextMarkup","Error","chunk","lineChunks","eol","startComposite","getNodeType","addElement","injectMarks","top","addGaps","tree","injectGaps","topNode","inline","Paragraph","TreeElement","Buffer","BlockContext","offset","dummies","rangeEnd","movePastNext","upto","inclusive","firstChild","nextSibling","reuse","get","propValues","_MarkdownParser","Parser","blockNames","inlineParsers","inlineNames","wrappers","super","nodeTypes","Object","t","name","id","createParse","w","configure","spec","config","resolveConfig","nonEmpty","defineNodes","assign","styles","s","composite","style","some","group","define","props","Array","isArray","Tag","NodeSet","extend","styleTags","remove","rm","parseBlock","found","before","findName","splice","endLeaf","wrap","InlineContext","outer","char","token","resolveMarkers","MarkdownParser","a","conf","conc","b","wrapA","wrapB","inner","names","Escape","_Buffer","nodes","writeTo","build","reused","topID","_Element","startOff","Element","_TreeElement","EmphasisUnderscore","resolve","EmphasisAsterisk","LinkStart","ImageStart","_InlineDelimiter","side","InlineDelimiter","Escapable","Punctuation","RegExp","DefaultInline","escaped","append","Entity","exec","InlineCode","curSize","HTMLTag","url","Autolink","URL","comment","Comment","procInst","ProcessingInstruction","Emphasis","pBefore","pAfter","sBefore","sAfter","leftFlanking","rightFlanking","canOpen","canClose","HardBreak","Link","Image","LinkEnd","parts","part","takeContent","link","finishLink","j","startPos","endPos","unshift","dest","label","LinkTitle","requireNonWS","min","LinkLabel","_InlineContext","addDelimiter","open","close","hasOpenLink","emp","closeSize","k","element","findOpeningDelimiter","startIndex","getDelimiterAt","index","elements","eI","linkStart","imageStart","NotLast","_FragmentCursor","fragment","fragmentEnd","cursor","nextFragment","read","c","rPos","parent","childAfter","cur","fragEnd","openEnd","blockI","prevEnd","prevI","isAnonymous","dummy","set","is","abs","gapFrom","gapTo","markdownHighlighting","tags","quote","contentSeparator","heading1","heading2","heading3","heading4","heading5","heading6","escape","character","emphasis","strong","list","monospace","processingInstruction","labelName","string","keys","map","n","special"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var O=Object.defineProperty,Q=(Q,i)=>O(Q,"name",{value:i,configurable:!0});import{L as i,E as a,C as n}from"./index-Cbl-BNqq.js";import{s as d,t as T}from"./highlight-LE-BkJRm.js";const e=10,t=/* @__PURE__ */new Set([25,49,50,263,65,130,56,57,238,62,63,72,73,77,60,61,151,152,155,112]);function r(O){return O==e||13==O}function S(O){return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102}Q(r,"isLineBreak"),Q(S,"isHex");const o=new a((O,Q)=>{let i;if(O.next<0)O.acceptToken(199);else if(Q.context.flags&P)r(O.next)&&O.acceptToken(198,1);else if(((i=O.peek(-1))<0||r(i))&&Q.canShift(197)){let Q=0;for(;32==O.next||9==O.next;)O.advance(),Q++;O.next!=e&&13!=O.next&&35!=O.next||O.acceptToken(197,-Q)}else r(O.next)&&O.acceptToken(196,1)},{contextual:!0}),q=new a((O,Q)=>{let i=Q.context;if(i.flags)return;let a=O.peek(-1);if(a==e||13==a){let Q=0,a=0;for(;;){if(32==O.next)Q++;else{if(9!=O.next)break;Q+=8-Q%8}O.advance(),a++}Q!=i.indent&&O.next!=e&&13!=O.next&&35!=O.next&&(Q<i.indent?O.acceptToken(195,-a):O.acceptToken(194))}}),P=1,$=4,p=8,s=16,h=32;function g(O,Q,i){this.parent=O,this.indent=Q,this.flags=i,this.hash=(O?O.hash+O.hash<<8:0)+Q+(Q<<4)+i+(i<<6)}Q(g,"Context");const l=new g(null,0,0);function X(O){let Q=0;for(let i=0;i<O.length;i++)Q+=9==O.charCodeAt(i)?8-Q%8:1;return Q}Q(X,"countIndent");const m=new Map([[241,0],[242,$],[243,p],[244,p|$],[245,s],[246,s|$],[247,s|p],[248,s|p|$],[249,h],[250,h|$],[251,h|p],[252,h|p|$],[253,h|s],[254,h|s|$],[255,h|s|p],[256,h|s|p|$]].map(([O,Q])=>[O,2|Q])),z=new n({start:l,reduce:(O,Q,i,a)=>O.flags&P&&t.has(Q)||(71==Q||72==Q)&&2&O.flags?O.parent:O,shift:(O,Q,i,a)=>194==Q?new g(O,X(a.read(a.pos,i.pos)),0):195==Q?O.parent:24==Q||55==Q||59==Q||3==Q?new g(O,0,P):m.has(Q)?new g(O,0,m.get(Q)|O.flags&P):O,hash:O=>O.hash}),W=new a(O=>{for(let Q=0;Q<5;Q++){if(O.next!="print".charCodeAt(Q))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let Q=0;;Q++){let i=O.peek(Q);if(32!=i&&9!=i)return void(40!=i&&46!=i&&i!=e&&13!=i&&35!=i&&O.acceptToken(1))}}),c=new a((O,Q)=>{let{flags:i}=Q.context,a=i&$?34:39,n=(i&p)>0,d=!(i&s),T=(i&h)>0,t=O.pos;for(;!(O.next<0);)if(T&&123==O.next){if(123!=O.peek(1)){if(O.pos==t)return void O.acceptToken(3,1);break}O.advance(2)}else{if(d&&92==O.next){if(O.pos==t){O.advance();let Q=O.next;return Q>=0&&(O.advance(),v(O,Q)),void O.acceptToken(2)}break}if(92==O.next&&!d&&O.peek(1)>-1)O.advance(2);else{if(O.next==a&&(!n||O.peek(1)==a&&O.peek(2)==a)){if(O.pos==t)return void O.acceptToken(201,n?3:1);break}if(O.next==e){if(n)O.advance();else if(O.pos==t)return void O.acceptToken(201);break}O.advance()}}O.pos>t&&O.acceptToken(200)});function v(O,Q){if(111==Q)for(let i=0;i<2&&O.next>=48&&O.next<=55;i++)O.advance();else if(120==Q)for(let i=0;i<2&&S(O.next);i++)O.advance();else if(117==Q)for(let i=0;i<4&&S(O.next);i++)O.advance();else if(85==Q)for(let i=0;i<8&&S(O.next);i++)O.advance();else if(78==Q&&123==O.next){for(O.advance();O.next>=0&&125!=O.next&&39!=O.next&&34!=O.next&&O.next!=e;)O.advance();125==O.next&&O.advance()}}Q(v,"skipEscape");const R=d({'async "*" "**" FormatConversion FormatSpec':T.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":T.controlKeyword,"in not and or is del":T.operatorKeyword,"from def class global nonlocal lambda":T.definitionKeyword,import:T.moduleKeyword,"with as print":T.keyword,Boolean:T.bool,None:T.null,VariableName:T.variableName,"CallExpression/VariableName":T.function(T.variableName),"FunctionDefinition/VariableName":T.function(T.definition(T.variableName)),"ClassDefinition/VariableName":T.definition(T.className),PropertyName:T.propertyName,"CallExpression/MemberExpression/PropertyName":T.function(T.propertyName),Comment:T.lineComment,Number:T.number,String:T.string,FormatString:T.special(T.string),Escape:T.escape,UpdateOp:T.updateOperator,"ArithOp!":T.arithmeticOperator,BitOp:T.bitwiseOperator,CompareOp:T.compareOperator,AssignOp:T.definitionOperator,Ellipsis:T.punctuation,At:T.meta,"( )":T.paren,"[ ]":T.squareBracket,"{ }":T.brace,".":T.derefOperator,", ;":T.separator}),k={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},y=i.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:z,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[R],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[W,q,o,c,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:/* @__PURE__ */Q(O=>k[O]||-1,"get")}],tokenPrec:7668});export{y as parser};
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
var O=Object.defineProperty,Q=(Q,i)=>O(Q,"name",{value:i,configurable:!0});import{L as i,E as a,C as n}from"./index-DzAd7RhG.js";import{s as d,t as T}from"./highlight-DMD1f-AU.js";const e=10,t=/* @__PURE__ */new Set([25,49,50,263,65,130,56,57,238,62,63,72,73,77,60,61,151,152,155,112]);function r(O){return O==e||13==O}function S(O){return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102}Q(r,"isLineBreak"),Q(S,"isHex");const o=new a((O,Q)=>{let i;if(O.next<0)O.acceptToken(199);else if(Q.context.flags&P)r(O.next)&&O.acceptToken(198,1);else if(((i=O.peek(-1))<0||r(i))&&Q.canShift(197)){let Q=0;for(;32==O.next||9==O.next;)O.advance(),Q++;O.next!=e&&13!=O.next&&35!=O.next||O.acceptToken(197,-Q)}else r(O.next)&&O.acceptToken(196,1)},{contextual:!0}),q=new a((O,Q)=>{let i=Q.context;if(i.flags)return;let a=O.peek(-1);if(a==e||13==a){let Q=0,a=0;for(;;){if(32==O.next)Q++;else{if(9!=O.next)break;Q+=8-Q%8}O.advance(),a++}Q!=i.indent&&O.next!=e&&13!=O.next&&35!=O.next&&(Q<i.indent?O.acceptToken(195,-a):O.acceptToken(194))}}),P=1,$=4,p=8,s=16,h=32;function g(O,Q,i){this.parent=O,this.indent=Q,this.flags=i,this.hash=(O?O.hash+O.hash<<8:0)+Q+(Q<<4)+i+(i<<6)}Q(g,"Context");const l=new g(null,0,0);function X(O){let Q=0;for(let i=0;i<O.length;i++)Q+=9==O.charCodeAt(i)?8-Q%8:1;return Q}Q(X,"countIndent");const m=new Map([[241,0],[242,$],[243,p],[244,p|$],[245,s],[246,s|$],[247,s|p],[248,s|p|$],[249,h],[250,h|$],[251,h|p],[252,h|p|$],[253,h|s],[254,h|s|$],[255,h|s|p],[256,h|s|p|$]].map(([O,Q])=>[O,2|Q])),z=new n({start:l,reduce:(O,Q,i,a)=>O.flags&P&&t.has(Q)||(71==Q||72==Q)&&2&O.flags?O.parent:O,shift:(O,Q,i,a)=>194==Q?new g(O,X(a.read(a.pos,i.pos)),0):195==Q?O.parent:24==Q||55==Q||59==Q||3==Q?new g(O,0,P):m.has(Q)?new g(O,0,m.get(Q)|O.flags&P):O,hash:O=>O.hash}),W=new a(O=>{for(let Q=0;Q<5;Q++){if(O.next!="print".charCodeAt(Q))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let Q=0;;Q++){let i=O.peek(Q);if(32!=i&&9!=i)return void(40!=i&&46!=i&&i!=e&&13!=i&&35!=i&&O.acceptToken(1))}}),c=new a((O,Q)=>{let{flags:i}=Q.context,a=i&$?34:39,n=(i&p)>0,d=!(i&s),T=(i&h)>0,t=O.pos;for(;!(O.next<0);)if(T&&123==O.next){if(123!=O.peek(1)){if(O.pos==t)return void O.acceptToken(3,1);break}O.advance(2)}else{if(d&&92==O.next){if(O.pos==t){O.advance();let Q=O.next;return Q>=0&&(O.advance(),v(O,Q)),void O.acceptToken(2)}break}if(92==O.next&&!d&&O.peek(1)>-1)O.advance(2);else{if(O.next==a&&(!n||O.peek(1)==a&&O.peek(2)==a)){if(O.pos==t)return void O.acceptToken(201,n?3:1);break}if(O.next==e){if(n)O.advance();else if(O.pos==t)return void O.acceptToken(201);break}O.advance()}}O.pos>t&&O.acceptToken(200)});function v(O,Q){if(111==Q)for(let i=0;i<2&&O.next>=48&&O.next<=55;i++)O.advance();else if(120==Q)for(let i=0;i<2&&S(O.next);i++)O.advance();else if(117==Q)for(let i=0;i<4&&S(O.next);i++)O.advance();else if(85==Q)for(let i=0;i<8&&S(O.next);i++)O.advance();else if(78==Q&&123==O.next){for(O.advance();O.next>=0&&125!=O.next&&39!=O.next&&34!=O.next&&O.next!=e;)O.advance();125==O.next&&O.advance()}}Q(v,"skipEscape");const R=d({'async "*" "**" FormatConversion FormatSpec':T.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":T.controlKeyword,"in not and or is del":T.operatorKeyword,"from def class global nonlocal lambda":T.definitionKeyword,import:T.moduleKeyword,"with as print":T.keyword,Boolean:T.bool,None:T.null,VariableName:T.variableName,"CallExpression/VariableName":T.function(T.variableName),"FunctionDefinition/VariableName":T.function(T.definition(T.variableName)),"ClassDefinition/VariableName":T.definition(T.className),PropertyName:T.propertyName,"CallExpression/MemberExpression/PropertyName":T.function(T.propertyName),Comment:T.lineComment,Number:T.number,String:T.string,FormatString:T.special(T.string),Escape:T.escape,UpdateOp:T.updateOperator,"ArithOp!":T.arithmeticOperator,BitOp:T.bitwiseOperator,CompareOp:T.compareOperator,AssignOp:T.definitionOperator,Ellipsis:T.punctuation,At:T.meta,"( )":T.paren,"[ ]":T.squareBracket,"{ }":T.brace,".":T.derefOperator,", ;":T.separator}),k={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},y=i.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:z,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[R],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[W,q,o,c,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:/* @__PURE__ */Q(O=>k[O]||-1,"get")}],tokenPrec:7668});export{y as parser};
|
|
2
|
+
//# sourceMappingURL=index-DX-wW7fi.js.map
|