@kingsimba/nc-ui 0.1.39 → 0.1.41
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/README.md +1 -1
- package/dist/index.cjs +7 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +840 -819
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/yaml.cjs +147 -47
- package/dist/yaml.cjs.map +1 -1
- package/dist/yaml.d.ts +8 -1
- package/dist/yaml.js +5221 -2053
- package/dist/yaml.js.map +1 -1
- package/package.json +3 -4
package/dist/yaml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.js","sources":["../node_modules/.pnpm/react-simple-code-editor@0.14.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-simple-code-editor/lib/index.js","../node_modules/.pnpm/prism-react-renderer@2.4.1_react@18.3.1/node_modules/prism-react-renderer/dist/index.mjs","../node_modules/.pnpm/js-yaml@4.1.1/node_modules/js-yaml/dist/js-yaml.mjs","../src/components/YamlTextArea.tsx"],"sourcesContent":["\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\nvar KEYCODE_M = 77;\nvar KEYCODE_PARENS = 57;\nvar KEYCODE_BRACKETS = 219;\nvar KEYCODE_QUOTE = 222;\nvar KEYCODE_BACK_QUOTE = 192;\nvar HISTORY_LIMIT = 100;\nvar HISTORY_TIME_GAP = 3000;\nvar isWindows = typeof window !== 'undefined' &&\n 'navigator' in window &&\n /Win/i.test(navigator.platform);\nvar isMacLike = typeof window !== 'undefined' &&\n 'navigator' in window &&\n /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\nvar className = 'npm__react-simple-code-editor__textarea';\nvar cssText = /* CSS */ \"\\n/**\\n * Reset the text fill color so that placeholder is visible\\n */\\n.\".concat(className, \":empty {\\n -webkit-text-fill-color: inherit !important;\\n}\\n\\n/**\\n * Hack to apply on some CSS on IE10 and IE11\\n */\\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\\n /**\\n * IE doesn't support '-webkit-text-fill-color'\\n * So we use 'color: transparent' to make the text transparent on IE\\n * Unlike other browsers, it doesn't affect caret color in IE\\n */\\n .\").concat(className, \" {\\n color: transparent !important;\\n }\\n\\n .\").concat(className, \"::selection {\\n background-color: #accef7 !important;\\n color: transparent !important;\\n }\\n}\\n\");\nvar Editor = React.forwardRef(function Editor(props, ref) {\n var autoFocus = props.autoFocus, disabled = props.disabled, form = props.form, highlight = props.highlight, _a = props.ignoreTabKey, ignoreTabKey = _a === void 0 ? false : _a, _b = props.insertSpaces, insertSpaces = _b === void 0 ? true : _b, maxLength = props.maxLength, minLength = props.minLength, name = props.name, onBlur = props.onBlur, onClick = props.onClick, onFocus = props.onFocus, onKeyDown = props.onKeyDown, onKeyUp = props.onKeyUp, onValueChange = props.onValueChange, _c = props.padding, padding = _c === void 0 ? 0 : _c, placeholder = props.placeholder, preClassName = props.preClassName, readOnly = props.readOnly, required = props.required, style = props.style, _d = props.tabSize, tabSize = _d === void 0 ? 2 : _d, textareaClassName = props.textareaClassName, textareaId = props.textareaId, value = props.value, rest = __rest(props, [\"autoFocus\", \"disabled\", \"form\", \"highlight\", \"ignoreTabKey\", \"insertSpaces\", \"maxLength\", \"minLength\", \"name\", \"onBlur\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"onValueChange\", \"padding\", \"placeholder\", \"preClassName\", \"readOnly\", \"required\", \"style\", \"tabSize\", \"textareaClassName\", \"textareaId\", \"value\"]);\n var historyRef = React.useRef({\n stack: [],\n offset: -1,\n });\n var inputRef = React.useRef(null);\n var _e = React.useState(true), capture = _e[0], setCapture = _e[1];\n var contentStyle = {\n paddingTop: typeof padding === 'object' ? padding.top : padding,\n paddingRight: typeof padding === 'object' ? padding.right : padding,\n paddingBottom: typeof padding === 'object' ? padding.bottom : padding,\n paddingLeft: typeof padding === 'object' ? padding.left : padding,\n };\n var highlighted = highlight(value);\n var getLines = function (text, position) {\n return text.substring(0, position).split('\\n');\n };\n var recordChange = React.useCallback(function (record, overwrite) {\n var _a, _b, _c;\n if (overwrite === void 0) { overwrite = false; }\n var _d = historyRef.current, stack = _d.stack, offset = _d.offset;\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n historyRef.current.stack = stack.slice(0, offset + 1);\n // Limit the number of operations to 100\n var count = historyRef.current.stack.length;\n if (count > HISTORY_LIMIT) {\n var extras = count - HISTORY_LIMIT;\n historyRef.current.stack = stack.slice(extras, count);\n historyRef.current.offset = Math.max(historyRef.current.offset - extras, 0);\n }\n }\n var timestamp = Date.now();\n if (overwrite) {\n var last = historyRef.current.stack[historyRef.current.offset];\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n // A previous entry exists and was in short interval\n // Match the last word in the line\n var re = /[^a-z0-9]([a-z0-9]+)$/i;\n // Get the previous line\n var previous = (_a = getLines(last.value, last.selectionStart)\n .pop()) === null || _a === void 0 ? void 0 : _a.match(re);\n // Get the current line\n var current = (_b = getLines(record.value, record.selectionStart)\n .pop()) === null || _b === void 0 ? void 0 : _b.match(re);\n if ((previous === null || previous === void 0 ? void 0 : previous[1]) && ((_c = current === null || current === void 0 ? void 0 : current[1]) === null || _c === void 0 ? void 0 : _c.startsWith(previous[1]))) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n historyRef.current.stack[historyRef.current.offset] = __assign(__assign({}, record), { timestamp: timestamp });\n return;\n }\n }\n }\n // Add the new operation to the stack\n historyRef.current.stack.push(__assign(__assign({}, record), { timestamp: timestamp }));\n historyRef.current.offset++;\n }, []);\n var recordCurrentState = React.useCallback(function () {\n var input = inputRef.current;\n if (!input)\n return;\n // Save current state of the input\n var value = input.value, selectionStart = input.selectionStart, selectionEnd = input.selectionEnd;\n recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n });\n }, [recordChange]);\n var updateInput = function (record) {\n var input = inputRef.current;\n if (!input)\n return;\n // Update values and selection state\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(record.value);\n };\n var applyEdits = function (record) {\n // Save last selection state\n var input = inputRef.current;\n var last = historyRef.current.stack[historyRef.current.offset];\n if (last && input) {\n historyRef.current.stack[historyRef.current.offset] = __assign(__assign({}, last), { selectionStart: input.selectionStart, selectionEnd: input.selectionEnd });\n }\n // Save the changes\n recordChange(record);\n updateInput(record);\n };\n var undoEdit = function () {\n var _a = historyRef.current, stack = _a.stack, offset = _a.offset;\n // Get the previous edit\n var record = stack[offset - 1];\n if (record) {\n // Apply the changes and update the offset\n updateInput(record);\n historyRef.current.offset = Math.max(offset - 1, 0);\n }\n };\n var redoEdit = function () {\n var _a = historyRef.current, stack = _a.stack, offset = _a.offset;\n // Get the next edit\n var record = stack[offset + 1];\n if (record) {\n // Apply the changes and update the offset\n updateInput(record);\n historyRef.current.offset = Math.min(offset + 1, stack.length - 1);\n }\n };\n var handleKeyDown = function (e) {\n if (onKeyDown) {\n onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n if (e.key === 'Escape') {\n e.currentTarget.blur();\n }\n var _a = e.currentTarget, value = _a.value, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n var tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n if (e.key === 'Tab' && !ignoreTabKey && capture) {\n // Prevent focus change\n e.preventDefault();\n if (e.shiftKey) {\n // Unindent selected lines\n var linesBeforeCaret = getLines(value, selectionStart);\n var startLine_1 = linesBeforeCaret.length - 1;\n var endLine_1 = getLines(value, selectionEnd).length - 1;\n var nextValue = value\n .split('\\n')\n .map(function (line, i) {\n if (i >= startLine_1 &&\n i <= endLine_1 &&\n line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n return line;\n })\n .join('\\n');\n if (value !== nextValue) {\n var startLineText = linesBeforeCaret[startLine_1];\n applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: (startLineText === null || startLineText === void 0 ? void 0 : startLineText.startsWith(tabCharacter))\n ? selectionStart - tabCharacter.length\n : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length),\n });\n }\n }\n else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n var linesBeforeCaret = getLines(value, selectionStart);\n var startLine_2 = linesBeforeCaret.length - 1;\n var endLine_2 = getLines(value, selectionEnd).length - 1;\n var startLineText = linesBeforeCaret[startLine_2];\n applyEdits({\n value: value\n .split('\\n')\n .map(function (line, i) {\n if (i >= startLine_2 && i <= endLine_2) {\n return tabCharacter + line;\n }\n return line;\n })\n .join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: startLineText && /\\S/.test(startLineText)\n ? selectionStart + tabCharacter.length\n : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (endLine_2 - startLine_2 + 1),\n });\n }\n else {\n var updatedSelection = selectionStart + tabCharacter.length;\n applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) +\n tabCharacter +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n else if (e.key === 'Backspace') {\n var hasSelection = selectionStart !== selectionEnd;\n var textBeforeCaret = value.substring(0, selectionStart);\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n var updatedSelection = selectionStart - tabCharacter.length;\n applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n else if (e.key === 'Enter') {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n var line = getLines(value, selectionStart).pop();\n var matches = line === null || line === void 0 ? void 0 : line.match(/^\\s+/);\n if (matches === null || matches === void 0 ? void 0 : matches[0]) {\n e.preventDefault();\n // Preserve indentation on inserting a new line\n var indent = '\\n' + matches[0];\n var updatedSelection = selectionStart + indent.length;\n applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) +\n indent +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n }\n else if (e.keyCode === KEYCODE_PARENS ||\n e.keyCode === KEYCODE_BRACKETS ||\n e.keyCode === KEYCODE_QUOTE ||\n e.keyCode === KEYCODE_BACK_QUOTE) {\n var chars = void 0;\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n }\n else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n }\n else {\n chars = ['[', ']'];\n }\n }\n else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n }\n else {\n chars = [\"'\", \"'\"];\n }\n }\n else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n }\n // If text is selected, wrap them in the characters\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n applyEdits({\n value: value.substring(0, selectionStart) +\n chars[0] +\n value.substring(selectionStart, selectionEnd) +\n chars[1] +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: selectionStart,\n selectionEnd: selectionEnd + 2,\n });\n }\n }\n else if ((isMacLike\n ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z\n : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) &&\n !e.shiftKey &&\n !e.altKey) {\n e.preventDefault();\n undoEdit();\n }\n else if ((isMacLike\n ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey\n : isWindows\n ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y\n : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) &&\n !e.altKey) {\n e.preventDefault();\n redoEdit();\n }\n else if (e.keyCode === KEYCODE_M &&\n e.ctrlKey &&\n (isMacLike ? e.shiftKey : true)) {\n e.preventDefault();\n // Toggle capturing tab key so users can focus away\n setCapture(function (prev) { return !prev; });\n }\n };\n var handleChange = function (e) {\n var _a = e.currentTarget, value = _a.value, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n }, true);\n onValueChange(value);\n };\n React.useEffect(function () {\n recordCurrentState();\n }, [recordCurrentState]);\n React.useImperativeHandle(ref, function () {\n return {\n get session() {\n return {\n history: historyRef.current,\n };\n },\n set session(session) {\n historyRef.current = session.history;\n },\n };\n }, []);\n return (React.createElement(\"div\", __assign({}, rest, { style: __assign(__assign({}, styles.container), style) }),\n React.createElement(\"pre\", __assign({ className: preClassName, \"aria-hidden\": \"true\", style: __assign(__assign(__assign({}, styles.editor), styles.highlight), contentStyle) }, (typeof highlighted === 'string'\n ? { dangerouslySetInnerHTML: { __html: highlighted + '<br />' } }\n : { children: highlighted }))),\n React.createElement(\"textarea\", { ref: function (c) { return (inputRef.current = c); }, style: __assign(__assign(__assign({}, styles.editor), styles.textarea), contentStyle), className: className + (textareaClassName ? \" \".concat(textareaClassName) : ''), id: textareaId, value: value, onChange: handleChange, onKeyDown: handleKeyDown, onClick: onClick, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, disabled: disabled, form: form, maxLength: maxLength, minLength: minLength, name: name, placeholder: placeholder, readOnly: readOnly, required: required, autoFocus: autoFocus, autoCapitalize: \"off\", autoComplete: \"off\", autoCorrect: \"off\", spellCheck: false, \"data-gramm\": false }),\n React.createElement(\"style\", { dangerouslySetInnerHTML: { __html: cssText } })));\n});\nvar styles = {\n container: {\n position: 'relative',\n textAlign: 'left',\n boxSizing: 'border-box',\n padding: 0,\n overflow: 'hidden',\n },\n textarea: {\n position: 'absolute',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%',\n resize: 'none',\n color: 'inherit',\n overflow: 'hidden',\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n WebkitTextFillColor: 'transparent',\n },\n highlight: {\n position: 'relative',\n pointerEvents: 'none',\n },\n editor: {\n margin: 0,\n border: 0,\n background: 'none',\n boxSizing: 'inherit',\n display: 'inherit',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n fontStyle: 'inherit',\n fontVariantLigatures: 'inherit',\n fontWeight: 'inherit',\n letterSpacing: 'inherit',\n lineHeight: 'inherit',\n tabSize: 'inherit',\n textIndent: 'inherit',\n textRendering: 'inherit',\n textTransform: 'inherit',\n whiteSpace: 'pre-wrap',\n wordBreak: 'keep-all',\n overflowWrap: 'break-word',\n },\n};\nexports.default = Editor;\n//# sourceMappingURL=index.js.map","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\nvar require_prism = __commonJS({\n \"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\"(exports, module) {\n var Prism2 = function() {\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0;\n var plainTextGrammar = {};\n var _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/\\u00a0/g, \" \");\n }\n },\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function(o) {\n return Object.prototype.toString.call(o).slice(8, -1);\n },\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function(obj) {\n if (!obj[\"__id\"]) {\n Object.defineProperty(obj, \"__id\", { value: ++uniqueId });\n }\n return obj[\"__id\"];\n },\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n switch (_.util.type(o)) {\n case \"Object\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = /** @type {Record<string, any>} */\n {};\n visited[id] = clone;\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n return (\n /** @type {any} */\n clone\n );\n case \"Array\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = [];\n visited[id] = clone;\n /** @type {Array} */\n /** @type {any} */\n o.forEach(function(v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n default:\n return o;\n }\n },\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function(element) {\n while (element) {\n var m = lang.exec(element.className);\n if (m) {\n return m[1].toLowerCase();\n }\n element = element.parentElement;\n }\n return \"none\";\n },\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function(element, language) {\n element.className = element.className.replace(RegExp(lang, \"gi\"), \"\");\n element.classList.add(\"language-\" + language);\n },\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function(element, className, defaultActivation) {\n var no = \"no-\" + className;\n while (element) {\n var classList = element.classList;\n if (classList.contains(className)) {\n return true;\n }\n if (classList.contains(no)) {\n return false;\n }\n element = element.parentElement;\n }\n return !!defaultActivation;\n }\n },\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function(id, redef) {\n var lang2 = _.util.clone(_.languages[id]);\n for (var key in redef) {\n lang2[key] = redef[key];\n }\n return lang2;\n },\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function(inside, before, insert, root) {\n root = root || /** @type {any} */\n _.languages;\n var grammar = root[inside];\n var ret = {};\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken];\n }\n }\n }\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token];\n }\n }\n }\n var old = root[inside];\n root[inside] = ret;\n _.languages.DFS(_.languages, function(key, value) {\n if (value === old && key != inside) {\n this[key] = ret;\n }\n });\n return ret;\n },\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {};\n var objId = _.util.objId;\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i);\n var property = o[i];\n var propertyType = _.util.type(property);\n if (propertyType === \"Object\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, null, visited);\n } else if (propertyType === \"Array\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, i, visited);\n }\n }\n }\n }\n },\n plugins: {},\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function(text, grammar, language) {\n var env = {\n code: text,\n grammar,\n language\n };\n _.hooks.run(\"before-tokenize\", env);\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.');\n }\n env.tokens = _.tokenize(env.code, env.grammar);\n _.hooks.run(\"after-tokenize\", env);\n return Token.stringify(_.util.encode(env.tokens), env.language);\n },\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function(text, grammar) {\n var rest = grammar.rest;\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token];\n }\n delete grammar.rest;\n }\n var tokenList = new LinkedList();\n addAfter(tokenList, tokenList.head, text);\n matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n return toArray(tokenList);\n },\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function(name, callback) {\n var hooks2 = _.hooks.all;\n hooks2[name] = hooks2[name] || [];\n hooks2[name].push(callback);\n },\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function(name, env) {\n var callbacks = _.hooks.all[name];\n if (!callbacks || !callbacks.length) {\n return;\n }\n for (var i = 0, callback; callback = callbacks[i++]; ) {\n callback(env);\n }\n }\n },\n Token\n };\n function Token(type, content, alias, matchedStr) {\n this.type = type;\n this.content = content;\n this.alias = alias;\n this.length = (matchedStr || \"\").length | 0;\n }\n Token.stringify = function stringify(o, language) {\n if (typeof o == \"string\") {\n return o;\n }\n if (Array.isArray(o)) {\n var s = \"\";\n o.forEach(function(e) {\n s += stringify(e, language);\n });\n return s;\n }\n var env = {\n type: o.type,\n content: stringify(o.content, language),\n tag: \"span\",\n classes: [\"token\", o.type],\n attributes: {},\n language\n };\n var aliases = o.alias;\n if (aliases) {\n if (Array.isArray(aliases)) {\n Array.prototype.push.apply(env.classes, aliases);\n } else {\n env.classes.push(aliases);\n }\n }\n _.hooks.run(\"wrap\", env);\n var attributes = \"\";\n for (var name in env.attributes) {\n attributes += \" \" + name + '=\"' + (env.attributes[name] || \"\").replace(/\"/g, \""\") + '\"';\n }\n return \"<\" + env.tag + ' class=\"' + env.classes.join(\" \") + '\"' + attributes + \">\" + env.content + \"</\" + env.tag + \">\";\n };\n function matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos;\n var match = pattern.exec(text);\n if (match && lookbehind && match[1]) {\n var lookbehindLength = match[1].length;\n match.index += lookbehindLength;\n match[0] = match[0].slice(lookbehindLength);\n }\n return match;\n }\n function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue;\n }\n var patterns = grammar[token];\n patterns = Array.isArray(patterns) ? patterns : [patterns];\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + \",\" + j) {\n return;\n }\n var patternObj = patterns[j];\n var inside = patternObj.inside;\n var lookbehind = !!patternObj.lookbehind;\n var greedy = !!patternObj.greedy;\n var alias = patternObj.alias;\n if (greedy && !patternObj.pattern.global) {\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + \"g\");\n }\n var pattern = patternObj.pattern || patternObj;\n for (var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n if (rematch && pos >= rematch.reach) {\n break;\n }\n var str = currentNode.value;\n if (tokenList.length > text.length) {\n return;\n }\n if (str instanceof Token) {\n continue;\n }\n var removeCount = 1;\n var match;\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind);\n if (!match || match.index >= text.length) {\n break;\n }\n var from = match.index;\n var to = match.index + match[0].length;\n var p = pos;\n p += currentNode.value.length;\n while (from >= p) {\n currentNode = currentNode.next;\n p += currentNode.value.length;\n }\n p -= currentNode.value.length;\n pos = p;\n if (currentNode.value instanceof Token) {\n continue;\n }\n for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === \"string\"); k = k.next) {\n removeCount++;\n p += k.value.length;\n }\n removeCount--;\n str = text.slice(pos, p);\n match.index -= pos;\n } else {\n match = matchPattern(pattern, 0, str, lookbehind);\n if (!match) {\n continue;\n }\n }\n var from = match.index;\n var matchStr = match[0];\n var before = str.slice(0, from);\n var after = str.slice(from + matchStr.length);\n var reach = pos + str.length;\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach;\n }\n var removeFrom = currentNode.prev;\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before);\n pos += before.length;\n }\n removeRange(tokenList, removeFrom, removeCount);\n var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n currentNode = addAfter(tokenList, removeFrom, wrapped);\n if (after) {\n addAfter(tokenList, currentNode, after);\n }\n if (removeCount > 1) {\n var nestedRematch = {\n cause: token + \",\" + j,\n reach\n };\n matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach;\n }\n }\n }\n }\n }\n }\n function LinkedList() {\n var head = { value: null, prev: null, next: null };\n var tail = { value: null, prev: head, next: null };\n head.next = tail;\n this.head = head;\n this.tail = tail;\n this.length = 0;\n }\n function addAfter(list, node, value) {\n var next = node.next;\n var newNode = { value, prev: node, next };\n node.next = newNode;\n next.prev = newNode;\n list.length++;\n return newNode;\n }\n function removeRange(list, node, count) {\n var next = node.next;\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next;\n }\n node.next = next;\n next.prev = node;\n list.length -= i;\n }\n function toArray(list) {\n var array = [];\n var node = list.head.next;\n while (node !== list.tail) {\n array.push(node.value);\n node = node.next;\n }\n return array;\n }\n return _;\n }();\n module.exports = Prism2;\n Prism2.default = Prism2;\n }\n});\n\n// src/prism-langs.ts\nvar Prism = __toESM(require_prism());\nPrism.languages.markup = { comment: { pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/, greedy: true }, prolog: { pattern: /<\\?[\\s\\S]+?\\?>/, greedy: true }, doctype: { pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i, greedy: true, inside: { \"internal-subset\": { pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/, lookbehind: true, greedy: true, inside: null }, string: { pattern: /\"[^\"]*\"|'[^']*'/, greedy: true }, punctuation: /^<!|>$|[[\\]]/, \"doctype-tag\": /^DOCTYPE/i, name: /[^\\s<>'\"]+/ } }, cdata: { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, greedy: true }, tag: { pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/, greedy: true, inside: { tag: { pattern: /^<\\/?[^\\s>\\/]+/, inside: { punctuation: /^<\\/?/, namespace: /^[^\\s>\\/:]+:/ } }, \"special-attr\": [], \"attr-value\": { pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/, inside: { punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, { pattern: /^(\\s*)[\"']|[\"']$/, lookbehind: true }] } }, punctuation: /\\/?>/, \"attr-name\": { pattern: /[^\\s>\\/]+/, inside: { namespace: /^[^\\s>\\/:]+:/ } } } }, entity: [{ pattern: /&[\\da-z]{1,8};/i, alias: \"named-entity\" }, /&#x?[\\da-f]{1,8};/i] }, Prism.languages.markup.tag.inside[\"attr-value\"].inside.entity = Prism.languages.markup.entity, Prism.languages.markup.doctype.inside[\"internal-subset\"].inside = Prism.languages.markup, Prism.hooks.add(\"wrap\", function(e) {\n \"entity\" === e.type && (e.attributes.title = e.content.replace(/&/, \"&\"));\n}), Object.defineProperty(Prism.languages.markup.tag, \"addInlined\", { value: function(e, n) {\n var t = {}, t = (t[\"language-\" + n] = { pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i, lookbehind: true, inside: Prism.languages[n] }, t.cdata = /^<!\\[CDATA\\[|\\]\\]>$/i, { \"included-cdata\": { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, inside: t } }), n = (t[\"language-\" + n] = { pattern: /[\\s\\S]+/, inside: Prism.languages[n] }, {});\n n[e] = { pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function() {\n return e;\n }), \"i\"), lookbehind: true, greedy: true, inside: t }, Prism.languages.insertBefore(\"markup\", \"cdata\", n);\n} }), Object.defineProperty(Prism.languages.markup.tag, \"addAttribute\", { value: function(e, n) {\n Prism.languages.markup.tag.inside[\"special-attr\"].push({ pattern: RegExp(/(^|[\"'\\s])/.source + \"(?:\" + e + \")\" + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source, \"i\"), lookbehind: true, inside: { \"attr-name\": /^[^\\s=]+/, \"attr-value\": { pattern: /=[\\s\\S]+/, inside: { value: { pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/, lookbehind: true, alias: [n, \"language-\" + n], inside: Prism.languages[n] }, punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, /\"|'/] } } } });\n} }), Prism.languages.html = Prism.languages.markup, Prism.languages.mathml = Prism.languages.markup, Prism.languages.svg = Prism.languages.markup, Prism.languages.xml = Prism.languages.extend(\"markup\", {}), Prism.languages.ssml = Prism.languages.xml, Prism.languages.atom = Prism.languages.xml, Prism.languages.rss = Prism.languages.xml, function(e) {\n var n = { pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/, alias: \"escape\" }, t = /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/, a = \"(?:[^\\\\\\\\-]|\" + t.source + \")\", a = RegExp(a + \"-\" + a), r = { pattern: /(<|')[^<>']+(?=[>']$)/, lookbehind: true, alias: \"variable\" };\n e.languages.regex = { \"char-class\": { pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/, lookbehind: true, inside: { \"char-class-negation\": { pattern: /(^\\[)\\^/, lookbehind: true, alias: \"operator\" }, \"char-class-punctuation\": { pattern: /^\\[|\\]$/, alias: \"punctuation\" }, range: { pattern: a, inside: { escape: t, \"range-punctuation\": { pattern: /-/, alias: \"operator\" } } }, \"special-escape\": n, \"char-set\": { pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, escape: t } }, \"special-escape\": n, \"char-set\": { pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, backreference: [{ pattern: /\\\\(?![123][0-7]{2})[1-9]/, alias: \"keyword\" }, { pattern: /\\\\k<[^<>']+>/, alias: \"keyword\", inside: { \"group-name\": r } }], anchor: { pattern: /[$^]|\\\\[ABbGZz]/, alias: \"function\" }, escape: t, group: [{ pattern: /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/, alias: \"punctuation\", inside: { \"group-name\": r } }, { pattern: /\\)/, alias: \"punctuation\" }], quantifier: { pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/, alias: \"number\" }, alternation: { pattern: /\\|/, alias: \"keyword\" } };\n}(Prism), Prism.languages.clike = { comment: [{ pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, greedy: true }, \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i, lookbehind: true, inside: { punctuation: /[.\\\\]/ } }, keyword: /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/, boolean: /\\b(?:false|true)\\b/, function: /\\b\\w+(?=\\()/, number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i, operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.javascript = Prism.languages.extend(\"clike\", { \"class-name\": [Prism.languages.clike[\"class-name\"], { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/, lookbehind: true }], keyword: [{ pattern: /((?:^|\\})\\s*)catch\\b/, lookbehind: true }, { pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/, lookbehind: true }], function: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/, number: { pattern: RegExp(/(^|[^\\w$])/.source + \"(?:\" + /NaN|Infinity/.source + \"|\" + /0[bB][01]+(?:_[01]+)*n?/.source + \"|\" + /0[oO][0-7]+(?:_[0-7]+)*n?/.source + \"|\" + /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source + \"|\" + /\\d+(?:_\\d+)*n/.source + \"|\" + /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source + \")\" + /(?![\\w$])/.source), lookbehind: true }, operator: /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/ }), Prism.languages.javascript[\"class-name\"][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/, Prism.languages.insertBefore(\"javascript\", \"keyword\", { regex: { pattern: RegExp(/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source + /\\//.source + \"(?:\" + /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source + \"|\" + /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + \")\" + /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source), lookbehind: true, greedy: true, inside: { \"regex-source\": { pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/, lookbehind: true, alias: \"language-regex\", inside: Prism.languages.regex }, \"regex-delimiter\": /^\\/|\\/$/, \"regex-flags\": /^[a-z]+$/ } }, \"function-variable\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/, alias: \"function\" }, parameter: [{ pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/, lookbehind: true, inside: Prism.languages.javascript }], constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/ }), Prism.languages.insertBefore(\"javascript\", \"string\", { hashbang: { pattern: /^#!.*/, greedy: true, alias: \"comment\" }, \"template-string\": { pattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/, lookbehind: true, inside: { \"interpolation-punctuation\": { pattern: /^\\$\\{|\\}$/, alias: \"punctuation\" }, rest: Prism.languages.javascript } }, string: /[\\s\\S]+/ } }, \"string-property\": { pattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m, lookbehind: true, greedy: true, alias: \"property\" } }), Prism.languages.insertBefore(\"javascript\", \"operator\", { \"literal-property\": { pattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m, lookbehind: true, alias: \"property\" } }), Prism.languages.markup && (Prism.languages.markup.tag.addInlined(\"script\", \"javascript\"), Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, \"javascript\")), Prism.languages.js = Prism.languages.javascript, Prism.languages.actionscript = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/, operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/ }), Prism.languages.actionscript[\"class-name\"].alias = \"function\", delete Prism.languages.actionscript.parameter, delete Prism.languages.actionscript[\"literal-property\"], Prism.languages.markup && Prism.languages.insertBefore(\"actionscript\", \"string\", { xml: { pattern: /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/, lookbehind: true, inside: Prism.languages.markup } }), function(e) {\n var n = /#(?!\\{).+/, t = { pattern: /#\\{[^}]+\\}/, alias: \"variable\" };\n e.languages.coffeescript = e.languages.extend(\"javascript\", { comment: n, string: [{ pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/, greedy: true }, { pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/, greedy: true, inside: { interpolation: t } }], keyword: /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/, \"class-member\": { pattern: /@(?!\\d)\\w+/, alias: \"variable\" } }), e.languages.insertBefore(\"coffeescript\", \"comment\", { \"multiline-comment\": { pattern: /###[\\s\\S]+?###/, alias: \"comment\" }, \"block-regex\": { pattern: /\\/{3}[\\s\\S]*?\\/{3}/, alias: \"regex\", inside: { comment: n, interpolation: t } } }), e.languages.insertBefore(\"coffeescript\", \"string\", { \"inline-javascript\": { pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/, inside: { delimiter: { pattern: /^`|`$/, alias: \"punctuation\" }, script: { pattern: /[\\s\\S]+/, alias: \"language-javascript\", inside: e.languages.javascript } } }, \"multiline-string\": [{ pattern: /'''[\\s\\S]*?'''/, greedy: true, alias: \"string\" }, { pattern: /\"\"\"[\\s\\S]*?\"\"\"/, greedy: true, alias: \"string\", inside: { interpolation: t } }] }), e.languages.insertBefore(\"coffeescript\", \"keyword\", { property: /(?!\\d)\\w+(?=\\s*:(?!:))/ }), delete e.languages.coffeescript[\"template-string\"], e.languages.coffee = e.languages.coffeescript;\n}(Prism), function(l) {\n var e = l.languages.javadoclike = { parameter: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m, lookbehind: true }, keyword: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m, lookbehind: true }, punctuation: /[{}]/ };\n Object.defineProperty(e, \"addSupport\", { value: function(e2, o) {\n (e2 = \"string\" == typeof e2 ? [e2] : e2).forEach(function(e3) {\n var n = function(e4) {\n e4.inside || (e4.inside = {}), e4.inside.rest = o;\n }, t = \"doc-comment\";\n if (a = l.languages[e3]) {\n var a, r = a[t];\n if ((r = r ? r : (a = l.languages.insertBefore(e3, \"comment\", { \"doc-comment\": { pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, alias: \"comment\" } }))[t]) instanceof RegExp && (r = a[t] = { pattern: r }), Array.isArray(r))\n for (var s = 0, i = r.length; s < i; s++)\n r[s] instanceof RegExp && (r[s] = { pattern: r[s] }), n(r[s]);\n else\n n(r);\n }\n });\n } }), e.addSupport([\"java\", \"javascript\", \"php\"], e);\n}(Prism), function(e) {\n var n = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/, n = (e.languages.css = { comment: /\\/\\*[\\s\\S]*?\\*\\//, atrule: { pattern: RegExp(\"@[\\\\w-](?:\" + /[^;{\\s\"']|\\s+(?!\\s)/.source + \"|\" + n.source + \")*?\" + /(?:;|(?=\\s*\\{))/.source), inside: { rule: /^@[\\w-]+/, \"selector-function-argument\": { pattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/, lookbehind: true, alias: \"selector\" }, keyword: { pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/, lookbehind: true } } }, url: { pattern: RegExp(\"\\\\burl\\\\((?:\" + n.source + \"|\" + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + \")\\\\)\", \"i\"), greedy: true, inside: { function: /^url/i, punctuation: /^\\(|\\)$/, string: { pattern: RegExp(\"^\" + n.source + \"$\"), alias: \"url\" } } }, selector: { pattern: RegExp(`(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"'\\\\s]|\\\\s+(?![\\\\s{])|` + n.source + \")*(?=\\\\s*\\\\{)\"), lookbehind: true }, string: { pattern: n, greedy: true }, property: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i, lookbehind: true }, important: /!important\\b/i, function: { pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i, lookbehind: true }, punctuation: /[(){};:,]/ }, e.languages.css.atrule.inside.rest = e.languages.css, e.languages.markup);\n n && (n.tag.addInlined(\"style\", \"css\"), n.tag.addAttribute(\"style\", \"css\"));\n}(Prism), function(e) {\n var n = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, n = (e.languages.css.selector = { pattern: e.languages.css.selector.pattern, lookbehind: true, inside: n = { \"pseudo-element\": /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/, \"pseudo-class\": /:[-\\w]+/, class: /\\.[-\\w]+/, id: /#[-\\w]+/, attribute: { pattern: RegExp(`\\\\[(?:[^[\\\\]\"']|` + n.source + \")*\\\\]\"), greedy: true, inside: { punctuation: /^\\[|\\]$/, \"case-sensitivity\": { pattern: /(\\s)[si]$/i, lookbehind: true, alias: \"keyword\" }, namespace: { pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/, lookbehind: true, inside: { punctuation: /\\|$/ } }, \"attr-name\": { pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/, lookbehind: true }, \"attr-value\": [n, { pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/, lookbehind: true }], operator: /[|~*^$]?=/ } }, \"n-th\": [{ pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/, lookbehind: true, inside: { number: /[\\dn]+/, operator: /[+-]/ } }, { pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i, lookbehind: true }], combinator: />|\\+|~|\\|\\|/, punctuation: /[(),]/ } }, e.languages.css.atrule.inside[\"selector-function-argument\"].inside = n, e.languages.insertBefore(\"css\", \"property\", { variable: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i, lookbehind: true } }), { pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/, lookbehind: true }), t = { pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/, lookbehind: true };\n e.languages.insertBefore(\"css\", \"function\", { operator: { pattern: /(\\s)[+\\-*\\/](?=\\s)/, lookbehind: true }, hexcode: { pattern: /\\B#[\\da-f]{3,8}\\b/i, alias: \"color\" }, color: [{ pattern: /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i, lookbehind: true }, { pattern: /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i, inside: { unit: n, number: t, function: /[\\w-]+(?=\\()/, punctuation: /[(),]/ } }], entity: /\\\\[\\da-f]{1,8}/i, unit: n, number: t });\n}(Prism), function(e) {\n var n = /[*&][^\\s[\\]{},]+/, t = /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/, a = \"(?:\" + t.source + \"(?:[ \t]+\" + n.source + \")?|\" + n.source + \"(?:[ \t]+\" + t.source + \")?)\", r = /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g, function() {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/.source;\n }), s = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source;\n function i(e2, n2) {\n n2 = (n2 || \"\").replace(/m/g, \"\") + \"m\";\n var t2 = /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<value>>/g, function() {\n return e2;\n });\n return RegExp(t2, n2);\n }\n e.languages.yaml = { scalar: { pattern: RegExp(/([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(/<<prop>>/g, function() {\n return a;\n })), lookbehind: true, alias: \"string\" }, comment: /#.*/, key: { pattern: RegExp(/((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<key>>/g, function() {\n return \"(?:\" + r + \"|\" + s + \")\";\n })), lookbehind: true, greedy: true, alias: \"atrule\" }, directive: { pattern: /(^[ \\t]*)%.+/m, lookbehind: true, alias: \"important\" }, datetime: { pattern: i(/\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/.source), lookbehind: true, alias: \"number\" }, boolean: { pattern: i(/false|true/.source, \"i\"), lookbehind: true, alias: \"important\" }, null: { pattern: i(/null|~/.source, \"i\"), lookbehind: true, alias: \"important\" }, string: { pattern: i(s), lookbehind: true, greedy: true }, number: { pattern: i(/[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/.source, \"i\"), lookbehind: true }, tag: t, important: n, punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./ }, e.languages.yml = e.languages.yaml;\n}(Prism), function(o) {\n var n = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source;\n function e(e2) {\n return e2 = e2.replace(/<inner>/g, function() {\n return n;\n }), RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + \"(?:\" + e2 + \")\");\n }\n var t = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source, a = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function() {\n return t;\n }), r = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source, l = (o.languages.markdown = o.languages.extend(\"markup\", {}), o.languages.insertBefore(\"markdown\", \"prolog\", { \"front-matter-block\": { pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/, lookbehind: true, greedy: true, inside: { punctuation: /^---|---$/, \"front-matter\": { pattern: /\\S+(?:\\s+\\S+)*/, alias: [\"yaml\", \"language-yaml\"], inside: o.languages.yaml } } }, blockquote: { pattern: /^>(?:[\\t ]*>)*/m, alias: \"punctuation\" }, table: { pattern: RegExp(\"^\" + a + r + \"(?:\" + a + \")*\", \"m\"), inside: { \"table-data-rows\": { pattern: RegExp(\"^(\" + a + r + \")(?:\" + a + \")*$\"), lookbehind: true, inside: { \"table-data\": { pattern: RegExp(t), inside: o.languages.markdown }, punctuation: /\\|/ } }, \"table-line\": { pattern: RegExp(\"^(\" + a + \")\" + r + \"$\"), lookbehind: true, inside: { punctuation: /\\||:?-{3,}:?/ } }, \"table-header-row\": { pattern: RegExp(\"^\" + a + \"$\"), inside: { \"table-header\": { pattern: RegExp(t), alias: \"important\", inside: o.languages.markdown }, punctuation: /\\|/ } } } }, code: [{ pattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/, lookbehind: true, alias: \"keyword\" }, { pattern: /^```[\\s\\S]*?^```$/m, greedy: true, inside: { \"code-block\": { pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m, lookbehind: true }, \"code-language\": { pattern: /^(```).+/, lookbehind: true }, punctuation: /```/ } }], title: [{ pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m, alias: \"important\", inside: { punctuation: /==+$|--+$/ } }, { pattern: /(^\\s*)#.+/m, lookbehind: true, alias: \"important\", inside: { punctuation: /^#+|#+$/ } }], hr: { pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m, lookbehind: true, alias: \"punctuation\" }, list: { pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m, lookbehind: true, alias: \"punctuation\" }, \"url-reference\": { pattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/, inside: { variable: { pattern: /^(!?\\[)[^\\]]+/, lookbehind: true }, string: /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/, punctuation: /^[\\[\\]!:]|[<>]/ }, alias: \"url\" }, bold: { pattern: e(/\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^..)[\\s\\S]+(?=..$)/, lookbehind: true, inside: {} }, punctuation: /\\*\\*|__/ } }, italic: { pattern: e(/\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^.)[\\s\\S]+(?=.$)/, lookbehind: true, inside: {} }, punctuation: /[*_]/ } }, strike: { pattern: e(/(~~?)(?:(?!~)<inner>)+\\2/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^~~?)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: {} }, punctuation: /~~?/ } }, \"code-snippet\": { pattern: /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/, lookbehind: true, greedy: true, alias: [\"code\", \"keyword\"] }, url: { pattern: e(/!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/.source), lookbehind: true, greedy: true, inside: { operator: /^!/, content: { pattern: /(^\\[)[^\\]]+(?=\\])/, lookbehind: true, inside: {} }, variable: { pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/, lookbehind: true }, url: { pattern: /(^\\]\\()[^\\s)]+/, lookbehind: true }, string: { pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/, lookbehind: true } } } }), [\"url\", \"bold\", \"italic\", \"strike\"].forEach(function(n2) {\n [\"url\", \"bold\", \"italic\", \"strike\", \"code-snippet\"].forEach(function(e2) {\n n2 !== e2 && (o.languages.markdown[n2].inside.content.inside[e2] = o.languages.markdown[e2]);\n });\n }), o.hooks.add(\"after-tokenize\", function(e2) {\n \"markdown\" !== e2.language && \"md\" !== e2.language || !function e3(n2) {\n if (n2 && \"string\" != typeof n2)\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r2, s = n2[t2];\n \"code\" !== s.type ? e3(s.content) : (r2 = s.content[1], s = s.content[3], r2 && s && \"code-language\" === r2.type && \"code-block\" === s.type && \"string\" == typeof r2.content && (r2 = r2.content.replace(/\\b#/g, \"sharp\").replace(/\\b\\+\\+/g, \"pp\"), r2 = \"language-\" + (r2 = (/[a-z][\\w-]*/i.exec(r2) || [\"\"])[0].toLowerCase()), s.alias ? \"string\" == typeof s.alias ? s.alias = [s.alias, r2] : s.alias.push(r2) : s.alias = [r2]));\n }\n }(e2.tokens);\n }), o.hooks.add(\"wrap\", function(e2) {\n if (\"code-block\" === e2.type) {\n for (var n2 = \"\", t2 = 0, a2 = e2.classes.length; t2 < a2; t2++) {\n var r2 = e2.classes[t2], r2 = /language-(.+)/.exec(r2);\n if (r2) {\n n2 = r2[1];\n break;\n }\n }\n var s, i = o.languages[n2];\n i ? e2.content = o.highlight(function(e3) {\n e3 = e3.replace(l, \"\");\n return e3 = e3.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function(e4, n3) {\n var t3;\n return \"#\" === (n3 = n3.toLowerCase())[0] ? (t3 = \"x\" === n3[1] ? parseInt(n3.slice(2), 16) : Number(n3.slice(1)), c(t3)) : u[n3] || e4;\n });\n }(e2.content), i, n2) : n2 && \"none\" !== n2 && o.plugins.autoloader && (s = \"md-\" + (/* @__PURE__ */ new Date()).valueOf() + \"-\" + Math.floor(1e16 * Math.random()), e2.attributes.id = s, o.plugins.autoloader.loadLanguages(n2, function() {\n var e3 = document.getElementById(s);\n e3 && (e3.innerHTML = o.highlight(e3.textContent, o.languages[n2], n2));\n }));\n }\n }), RegExp(o.languages.markup.tag.pattern.source, \"gi\")), u = { amp: \"&\", lt: \"<\", gt: \">\", quot: '\"' }, c = String.fromCodePoint || String.fromCharCode;\n o.languages.md = o.languages.markdown;\n}(Prism), Prism.languages.graphql = { comment: /#.*/, description: { pattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i, greedy: true, alias: \"string\", inside: { \"language-markdown\": { pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: Prism.languages.markdown } } }, string: { pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/, greedy: true }, number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i, boolean: /\\b(?:false|true)\\b/, variable: /\\$[a-z_]\\w*/i, directive: { pattern: /@[a-z_]\\w*/i, alias: \"function\" }, \"attr-name\": { pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i, greedy: true }, \"atom-input\": { pattern: /\\b[A-Z]\\w*Input\\b/, alias: \"class-name\" }, scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/, constant: /\\b[A-Z][A-Z_\\d]*\\b/, \"class-name\": { pattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/, lookbehind: true }, fragment: { pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-mutation\": { pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-query\": { pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, keyword: /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/, operator: /[!=|&]|\\.{3}/, \"property-query\": /\\w+(?=\\s*\\()/, object: /\\w+(?=\\s*\\{)/, punctuation: /[!(){}\\[\\]:=,]/, property: /\\w+/ }, Prism.hooks.add(\"after-tokenize\", function(e) {\n if (\"graphql\" === e.language)\n for (var i = e.tokens.filter(function(e2) {\n return \"string\" != typeof e2 && \"comment\" !== e2.type && \"scalar\" !== e2.type;\n }), o = 0; o < i.length; ) {\n var n = i[o++];\n if (\"keyword\" === n.type && \"mutation\" === n.content) {\n var t = [];\n if (p([\"definition-mutation\", \"punctuation\"]) && \"(\" === c(1).content) {\n o += 2;\n var a = d(/^\\($/, /^\\)$/);\n if (-1 === a)\n continue;\n for (; o < a; o++) {\n var r = c(0);\n \"variable\" === r.type && (g(r, \"variable-input\"), t.push(r.content));\n }\n o = a + 1;\n }\n if (p([\"punctuation\", \"property-query\"]) && \"{\" === c(0).content && (o++, g(c(0), \"property-mutation\"), 0 < t.length)) {\n var s = d(/^\\{$/, /^\\}$/);\n if (-1 !== s)\n for (var l = o; l < s; l++) {\n var u = i[l];\n \"variable\" === u.type && 0 <= t.indexOf(u.content) && g(u, \"variable-input\");\n }\n }\n }\n }\n function c(e2) {\n return i[o + e2];\n }\n function p(e2, n2) {\n n2 = n2 || 0;\n for (var t2 = 0; t2 < e2.length; t2++) {\n var a2 = c(t2 + n2);\n if (!a2 || a2.type !== e2[t2])\n return;\n }\n return 1;\n }\n function d(e2, n2) {\n for (var t2 = 1, a2 = o; a2 < i.length; a2++) {\n var r2 = i[a2], s2 = r2.content;\n if (\"punctuation\" === r2.type && \"string\" == typeof s2) {\n if (e2.test(s2))\n t2++;\n else if (n2.test(s2) && 0 === --t2)\n return a2;\n }\n }\n return -1;\n }\n function g(e2, n2) {\n var t2 = e2.alias;\n t2 ? Array.isArray(t2) || (e2.alias = t2 = [t2]) : e2.alias = t2 = [], t2.push(n2);\n }\n}), Prism.languages.sql = { comment: { pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/, lookbehind: true }, variable: [{ pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/, greedy: true }, /@[\\w.$]+/], string: { pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/, greedy: true, lookbehind: true }, identifier: { pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/, greedy: true, lookbehind: true, inside: { punctuation: /^`|`$/ } }, function: /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i, keyword: /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i, boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i, number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i, operator: /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i, punctuation: /[;[\\]()`,.]/ }, function(b) {\n var e = b.languages.javascript[\"template-string\"], t = e.pattern.source, m = e.inside.interpolation, f = m.inside[\"interpolation-punctuation\"], s = m.pattern.source;\n function n(e2, n2) {\n if (b.languages[e2])\n return { pattern: RegExp(\"((?:\" + n2 + \")\\\\s*)\" + t), lookbehind: true, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, \"embedded-code\": { pattern: /[\\s\\S]+/, alias: e2 } } };\n }\n function h(e2, n2, t2) {\n e2 = { code: e2, grammar: n2, language: t2 };\n return b.hooks.run(\"before-tokenize\", e2), e2.tokens = b.tokenize(e2.code, e2.grammar), b.hooks.run(\"after-tokenize\", e2), e2.tokens;\n }\n function l(a2, e2, r) {\n var n2 = b.tokenize(a2, { interpolation: { pattern: RegExp(s), lookbehind: true } }), p = 0, d = {}, n2 = h(n2.map(function(e3) {\n if (\"string\" == typeof e3)\n return e3;\n for (var n3, t2, e3 = e3.content; -1 !== a2.indexOf((t2 = p++, n3 = \"___\" + r.toUpperCase() + \"_\" + t2 + \"___\")); )\n ;\n return d[n3] = e3, n3;\n }).join(\"\"), e2, r), g = Object.keys(d);\n return p = 0, function e3(n3) {\n for (var t2 = 0; t2 < n3.length; t2++) {\n if (p >= g.length)\n return;\n var a3, r2, s2, i, o, l2, u2, c = n3[t2];\n \"string\" == typeof c || \"string\" == typeof c.content ? (a3 = g[p], -1 !== (u2 = (l2 = \"string\" == typeof c ? c : c.content).indexOf(a3)) && (++p, r2 = l2.substring(0, u2), o = d[a3], s2 = void 0, (i = {})[\"interpolation-punctuation\"] = f, 3 === (i = b.tokenize(o, i)).length && ((s2 = [1, 1]).push.apply(s2, h(i[1], b.languages.javascript, \"javascript\")), i.splice.apply(i, s2)), s2 = new b.Token(\"interpolation\", i, m.alias, o), i = l2.substring(u2 + a3.length), o = [], r2 && o.push(r2), o.push(s2), i && (e3(l2 = [i]), o.push.apply(o, l2)), \"string\" == typeof c ? (n3.splice.apply(n3, [t2, 1].concat(o)), t2 += o.length - 1) : c.content = o)) : (u2 = c.content, Array.isArray(u2) ? e3(u2) : e3([u2]));\n }\n }(n2), new b.Token(r, n2, \"language-\" + r, a2);\n }\n b.languages.javascript[\"template-string\"] = [n(\"css\", /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source), n(\"html\", /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), n(\"svg\", /\\bsvg/.source), n(\"markdown\", /\\b(?:markdown|md)/.source), n(\"graphql\", /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source), n(\"sql\", /\\bsql/.source), e].filter(Boolean);\n var a = { javascript: true, js: true, typescript: true, ts: true, jsx: true, tsx: true };\n function u(e2) {\n return \"string\" == typeof e2 ? e2 : Array.isArray(e2) ? e2.map(u).join(\"\") : u(e2.content);\n }\n b.hooks.add(\"after-tokenize\", function(e2) {\n e2.language in a && !function e3(n2) {\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r, s2, i, o = n2[t2];\n \"string\" != typeof o && (r = o.content, Array.isArray(r) ? \"template-string\" === o.type ? (o = r[1], 3 === r.length && \"string\" != typeof o && \"embedded-code\" === o.type && (s2 = u(o), o = o.alias, o = Array.isArray(o) ? o[0] : o, i = b.languages[o]) && (r[1] = l(s2, i, o))) : e3(r) : \"string\" != typeof r && e3([r]));\n }\n }(e2.tokens);\n });\n}(Prism), function(e) {\n e.languages.typescript = e.languages.extend(\"javascript\", { \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/, lookbehind: true, greedy: true, inside: null }, builtin: /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/ }), e.languages.typescript.keyword.push(/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, /\\btype\\b(?=\\s*(?:[\\{*]|$))/), delete e.languages.typescript.parameter, delete e.languages.typescript[\"literal-property\"];\n var n = e.languages.extend(\"typescript\", {});\n delete n[\"class-name\"], e.languages.typescript[\"class-name\"].inside = n, e.languages.insertBefore(\"typescript\", \"function\", { decorator: { pattern: /@[$\\w\\xA0-\\uFFFF]+/, inside: { at: { pattern: /^@/, alias: \"operator\" }, function: /^[\\s\\S]+/ } }, \"generic-function\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/, greedy: true, inside: { function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: n } } } }), e.languages.ts = e.languages.typescript;\n}(Prism), function(e) {\n var n = e.languages.javascript, t = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source, a = \"(@(?:arg|argument|param|property)\\\\s+(?:\" + t + \"\\\\s+)?)\";\n e.languages.jsdoc = e.languages.extend(\"javadoclike\", { parameter: { pattern: RegExp(a + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source), lookbehind: true, inside: { punctuation: /\\./ } } }), e.languages.insertBefore(\"jsdoc\", \"keyword\", { \"optional-parameter\": { pattern: RegExp(a + /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source), lookbehind: true, inside: { parameter: { pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/, lookbehind: true, inside: { punctuation: /\\./ } }, code: { pattern: /(=)[\\s\\S]*(?=\\]$)/, lookbehind: true, inside: n, alias: \"language-javascript\" }, punctuation: /[=[\\]]/ } }, \"class-name\": [{ pattern: RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(/<TYPE>/g, function() {\n return t;\n })), lookbehind: true, inside: { punctuation: /\\./ } }, { pattern: RegExp(\"(@[a-z]+\\\\s+)\" + t), lookbehind: true, inside: { string: n.string, number: n.number, boolean: n.boolean, keyword: e.languages.typescript.keyword, operator: /=>|\\.\\.\\.|[&|?:*]/, punctuation: /[.,;=<>{}()[\\]]/ } }], example: { pattern: /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/, lookbehind: true, inside: { code: { pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m, lookbehind: true, inside: n, alias: \"language-javascript\" } } } }), e.languages.javadoclike.addSupport(\"javascript\", e.languages.jsdoc);\n}(Prism), function(e) {\n e.languages.flow = e.languages.extend(\"javascript\", {}), e.languages.insertBefore(\"flow\", \"keyword\", { type: [{ pattern: /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\\b/, alias: \"class-name\" }] }), e.languages.flow[\"function-variable\"].pattern = /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i, delete e.languages.flow.parameter, e.languages.insertBefore(\"flow\", \"operator\", { \"flow-punctuation\": { pattern: /\\{\\||\\|\\}/, alias: \"punctuation\" } }), Array.isArray(e.languages.flow.keyword) || (e.languages.flow.keyword = [e.languages.flow.keyword]), e.languages.flow.keyword.unshift({ pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/, lookbehind: true }, { pattern: /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/, lookbehind: true });\n}(Prism), Prism.languages.n4js = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/ }), Prism.languages.insertBefore(\"n4js\", \"constant\", { annotation: { pattern: /@+\\w+/, alias: \"operator\" } }), Prism.languages.n4jsd = Prism.languages.n4js, function(e) {\n function n(e2, n2) {\n return RegExp(e2.replace(/<ID>/g, function() {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source;\n }), n2);\n }\n e.languages.insertBefore(\"javascript\", \"function-variable\", { \"method-variable\": { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript[\"function-variable\"].pattern.source), lookbehind: true, alias: [\"function-variable\", \"method\", \"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"function\", { method: { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript.function.source), lookbehind: true, alias: [\"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"constant\", { \"known-class-name\": [{ pattern: /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/, alias: \"class-name\" }, { pattern: /\\b(?:[A-Z]\\w*)Error\\b/, alias: \"class-name\" }] }), e.languages.insertBefore(\"javascript\", \"keyword\", { imports: { pattern: n(/(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/.source), lookbehind: true, inside: e.languages.javascript }, exports: { pattern: n(/(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/.source), lookbehind: true, inside: e.languages.javascript } }), e.languages.javascript.keyword.unshift({ pattern: /\\b(?:as|default|export|from|import)\\b/, alias: \"module\" }, { pattern: /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/, alias: \"control-flow\" }, { pattern: /\\bnull\\b/, alias: [\"null\", \"nil\"] }, { pattern: /\\bundefined\\b/, alias: \"nil\" }), e.languages.insertBefore(\"javascript\", \"operator\", { spread: { pattern: /\\.{3}/, alias: \"operator\" }, arrow: { pattern: /=>/, alias: \"operator\" } }), e.languages.insertBefore(\"javascript\", \"punctuation\", { \"property-access\": { pattern: n(/(\\.\\s*)#?<ID>/.source), lookbehind: true }, \"maybe-class-name\": { pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/, lookbehind: true }, dom: { pattern: /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/, alias: \"variable\" }, console: { pattern: /\\bconsole(?=\\s*\\.)/, alias: \"class-name\" } });\n for (var t = [\"function\", \"function-variable\", \"method\", \"method-variable\", \"property-access\"], a = 0; a < t.length; a++) {\n var r = t[a], s = e.languages.javascript[r], r = (s = \"RegExp\" === e.util.type(s) ? e.languages.javascript[r] = { pattern: s } : s).inside || {};\n (s.inside = r)[\"maybe-class-name\"] = /^[A-Z][\\s\\S]*/;\n }\n}(Prism), function(s) {\n var e = s.util.clone(s.languages.javascript), t = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source, a = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source, r = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source;\n function n(e2, n2) {\n return e2 = e2.replace(/<S>/g, function() {\n return t;\n }).replace(/<BRACES>/g, function() {\n return a;\n }).replace(/<SPREAD>/g, function() {\n return r;\n }), RegExp(e2, n2);\n }\n r = n(r).source, s.languages.jsx = s.languages.extend(\"markup\", e), s.languages.jsx.tag.pattern = n(/<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/.source), s.languages.jsx.tag.inside.tag.pattern = /^<\\/?[^\\s>\\/]*/, s.languages.jsx.tag.inside[\"attr-value\"].pattern = /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/, s.languages.jsx.tag.inside.tag.inside[\"class-name\"] = /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/, s.languages.jsx.tag.inside.comment = e.comment, s.languages.insertBefore(\"inside\", \"attr-name\", { spread: { pattern: n(/<SPREAD>/.source), inside: s.languages.jsx } }, s.languages.jsx.tag), s.languages.insertBefore(\"inside\", \"special-attr\", { script: { pattern: n(/=<BRACES>/.source), alias: \"language-javascript\", inside: { \"script-punctuation\": { pattern: /^=(?=\\{)/, alias: \"punctuation\" }, rest: s.languages.jsx } } }, s.languages.jsx.tag);\n function i(e2) {\n for (var n2 = [], t2 = 0; t2 < e2.length; t2++) {\n var a2 = e2[t2], r2 = false;\n \"string\" != typeof a2 && (\"tag\" === a2.type && a2.content[0] && \"tag\" === a2.content[0].type ? \"</\" === a2.content[0].content[0].content ? 0 < n2.length && n2[n2.length - 1].tagName === o(a2.content[0].content[1]) && n2.pop() : \"/>\" !== a2.content[a2.content.length - 1].content && n2.push({ tagName: o(a2.content[0].content[1]), openedBraces: 0 }) : 0 < n2.length && \"punctuation\" === a2.type && \"{\" === a2.content ? n2[n2.length - 1].openedBraces++ : 0 < n2.length && 0 < n2[n2.length - 1].openedBraces && \"punctuation\" === a2.type && \"}\" === a2.content ? n2[n2.length - 1].openedBraces-- : r2 = true), (r2 || \"string\" == typeof a2) && 0 < n2.length && 0 === n2[n2.length - 1].openedBraces && (r2 = o(a2), t2 < e2.length - 1 && (\"string\" == typeof e2[t2 + 1] || \"plain-text\" === e2[t2 + 1].type) && (r2 += o(e2[t2 + 1]), e2.splice(t2 + 1, 1)), 0 < t2 && (\"string\" == typeof e2[t2 - 1] || \"plain-text\" === e2[t2 - 1].type) && (r2 = o(e2[t2 - 1]) + r2, e2.splice(t2 - 1, 1), t2--), e2[t2] = new s.Token(\"plain-text\", r2, null, r2)), a2.content && \"string\" != typeof a2.content && i(a2.content);\n }\n }\n var o = function(e2) {\n return e2 ? \"string\" == typeof e2 ? e2 : \"string\" == typeof e2.content ? e2.content : e2.content.map(o).join(\"\") : \"\";\n };\n s.hooks.add(\"after-tokenize\", function(e2) {\n \"jsx\" !== e2.language && \"tsx\" !== e2.language || i(e2.tokens);\n });\n}(Prism), function(e) {\n var n = e.util.clone(e.languages.typescript), n = (e.languages.tsx = e.languages.extend(\"jsx\", n), delete e.languages.tsx.parameter, delete e.languages.tsx[\"literal-property\"], e.languages.tsx.tag);\n n.pattern = RegExp(/(^|[^\\w$]|(?=<\\/))/.source + \"(?:\" + n.pattern.source + \")\", n.pattern.flags), n.lookbehind = true;\n}(Prism), Prism.languages.swift = { comment: { pattern: /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/, lookbehind: true, greedy: true }, \"string-literal\": [{ pattern: RegExp(/(^|[^\"#])/.source + \"(?:\" + /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/.source + \"|\" + /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/.source + \")\" + /(?![\"#])/.source), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\\\($/, alias: \"punctuation\" }, punctuation: /\\\\(?=[\\r\\n])/, string: /[\\s\\S]+/ } }, { pattern: RegExp(/(^|[^\"#])(#+)/.source + \"(?:\" + /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/.source + \"|\" + /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source + \")\\\\2\"), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\#+\\($/, alias: \"punctuation\" }, string: /[\\s\\S]+/ } }], directive: { pattern: RegExp(/#/.source + \"(?:\" + /(?:elseif|if)\\b/.source + \"(?:[ \t]*\" + /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/.source + \")+|\" + /(?:else|endif)\\b/.source + \")\"), alias: \"property\", inside: { \"directive-name\": /^#\\w+/, boolean: /\\b(?:false|true)\\b/, number: /\\b\\d+(?:\\.\\d+)*\\b/, operator: /!|&&|\\|\\||[<>]=?/, punctuation: /[(),]/ } }, literal: { pattern: /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/, alias: \"constant\" }, \"other-directive\": { pattern: /#\\w+\\b/, alias: \"property\" }, attribute: { pattern: /@\\w+/, alias: \"atrule\" }, \"function-definition\": { pattern: /(\\bfunc\\s+)\\w+/, lookbehind: true, alias: \"function\" }, label: { pattern: /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/, lookbehind: true, alias: \"important\" }, keyword: /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/, boolean: /\\b(?:false|true)\\b/, nil: { pattern: /\\bnil\\b/, alias: \"constant\" }, \"short-argument\": /\\$\\d+\\b/, omit: { pattern: /\\b_\\b/, alias: \"keyword\" }, number: /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i, \"class-name\": /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/, operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/, punctuation: /[{}[\\]();,.:\\\\]/ }, Prism.languages.swift[\"string-literal\"].forEach(function(e) {\n e.inside.interpolation.inside = Prism.languages.swift;\n}), function(e) {\n e.languages.kotlin = e.languages.extend(\"clike\", { keyword: { pattern: /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/, lookbehind: true }, function: [{ pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/, greedy: true }, { pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/, lookbehind: true, greedy: true }], number: /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/, operator: /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/ }), delete e.languages.kotlin[\"class-name\"];\n var n = { \"interpolation-punctuation\": { pattern: /^\\$\\{?|\\}$/, alias: \"punctuation\" }, expression: { pattern: /[\\s\\S]+/, inside: e.languages.kotlin } };\n e.languages.insertBefore(\"kotlin\", \"string\", { \"string-literal\": [{ pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/, alias: \"multiline\", inside: { interpolation: { pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, inside: n }, string: /[\\s\\S]+/ } }, { pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/, alias: \"singleline\", inside: { interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, lookbehind: true, inside: n }, string: /[\\s\\S]+/ } }], char: { pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/, greedy: true } }), delete e.languages.kotlin.string, e.languages.insertBefore(\"kotlin\", \"keyword\", { annotation: { pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/, alias: \"builtin\" } }), e.languages.insertBefore(\"kotlin\", \"function\", { label: { pattern: /\\b\\w+@|@\\w+\\b/, alias: \"symbol\" } }), e.languages.kt = e.languages.kotlin, e.languages.kts = e.languages.kotlin;\n}(Prism), Prism.languages.c = Prism.languages.extend(\"clike\", { comment: { pattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, greedy: true }, string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, \"class-name\": { pattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/, lookbehind: true }, keyword: /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, number: /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i, operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/ }), Prism.languages.insertBefore(\"c\", \"string\", { char: { pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/, greedy: true } }), Prism.languages.insertBefore(\"c\", \"string\", { macro: { pattern: /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im, lookbehind: true, greedy: true, alias: \"property\", inside: { string: [{ pattern: /^(#\\s*include\\s*)<[^>]+>/, lookbehind: true }, Prism.languages.c.string], char: Prism.languages.c.char, comment: Prism.languages.c.comment, \"macro-name\": [{ pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i, lookbehind: true }, { pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i, lookbehind: true, alias: \"function\" }], directive: { pattern: /^(#\\s*)[a-z]+/, lookbehind: true, alias: \"keyword\" }, \"directive-hash\": /^#/, punctuation: /##|\\\\(?=[\\r\\n])/, expression: { pattern: /\\S[\\s\\S]*/, inside: Prism.languages.c } } } }), Prism.languages.insertBefore(\"c\", \"function\", { constant: /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/ }), delete Prism.languages.c.boolean, Prism.languages.objectivec = Prism.languages.extend(\"c\", { string: { pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, keyword: /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/, operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/ }), delete Prism.languages.objectivec[\"class-name\"], Prism.languages.objc = Prism.languages.objectivec, Prism.languages.reason = Prism.languages.extend(\"clike\", { string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/, greedy: true }, \"class-name\": /\\b[A-Z]\\w*/, keyword: /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/, operator: /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/ }), Prism.languages.insertBefore(\"reason\", \"class-name\", { char: { pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/, greedy: true }, constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/, label: { pattern: /\\b[a-z]\\w*(?=::)/, alias: \"symbol\" } }), delete Prism.languages.reason.function, function(e) {\n for (var n = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source, t = 0; t < 2; t++)\n n = n.replace(/<self>/g, function() {\n return n;\n });\n n = n.replace(/<self>/g, function() {\n return /[^\\s\\S]/.source;\n }), e.languages.rust = { comment: [{ pattern: RegExp(/(^|[^\\\\])/.source + n), lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/, greedy: true }, char: { pattern: /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/, greedy: true }, attribute: { pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/, greedy: true, alias: \"attr-name\", inside: { string: null } }, \"closure-params\": { pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/, lookbehind: true, greedy: true, inside: { \"closure-punctuation\": { pattern: /^\\||\\|$/, alias: \"punctuation\" }, rest: null } }, \"lifetime-annotation\": { pattern: /'\\w+/, alias: \"symbol\" }, \"fragment-specifier\": { pattern: /(\\$\\w+:)[a-z]+/, lookbehind: true, alias: \"punctuation\" }, variable: /\\$\\w+/, \"function-definition\": { pattern: /(\\bfn\\s+)\\w+/, lookbehind: true, alias: \"function\" }, \"type-definition\": { pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/, lookbehind: true, alias: \"class-name\" }, \"module-declaration\": [{ pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/, lookbehind: true, alias: \"namespace\" }, { pattern: /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/, lookbehind: true, alias: \"namespace\", inside: { punctuation: /::/ } }], keyword: [/\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/], function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/, macro: { pattern: /\\b\\w+!/, alias: \"property\" }, constant: /\\b[A-Z_][A-Z_\\d]+\\b/, \"class-name\": /\\b[A-Z]\\w*\\b/, namespace: { pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/, inside: { punctuation: /::/ } }, number: /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/, boolean: /\\b(?:false|true)\\b/, punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/, operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/ }, e.languages.rust[\"closure-params\"].inside.rest = e.languages.rust, e.languages.rust.attribute.inside.string = e.languages.rust.string;\n}(Prism), Prism.languages.go = Prism.languages.extend(\"clike\", { string: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/, lookbehind: true, greedy: true }, keyword: /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/, boolean: /\\b(?:_|false|iota|nil|true)\\b/, number: [/\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i], operator: /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./, builtin: /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/ }), Prism.languages.insertBefore(\"go\", \"string\", { char: { pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/, greedy: true } }), delete Prism.languages.go[\"class-name\"], function(e) {\n var n = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/, t = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(/<keyword>/g, function() {\n return n.source;\n });\n e.languages.cpp = e.languages.extend(\"c\", { \"class-name\": [{ pattern: RegExp(/(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(/<keyword>/g, function() {\n return n.source;\n })), lookbehind: true }, /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/], keyword: n, number: { pattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i, greedy: true }, operator: />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/, boolean: /\\b(?:false|true)\\b/ }), e.languages.insertBefore(\"cpp\", \"string\", { module: { pattern: RegExp(/(\\b(?:import|module)\\s+)/.source + \"(?:\" + /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source + \"|\" + /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(/<mod-name>/g, function() {\n return t;\n }) + \")\"), lookbehind: true, greedy: true, inside: { string: /^[<\"][\\s\\S]+/, operator: /:/, punctuation: /\\./ } }, \"raw-string\": { pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/, alias: \"string\", greedy: true } }), e.languages.insertBefore(\"cpp\", \"keyword\", { \"generic-function\": { pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i, inside: { function: /^\\w+/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: e.languages.cpp } } } }), e.languages.insertBefore(\"cpp\", \"operator\", { \"double-colon\": { pattern: /::/, alias: \"punctuation\" } }), e.languages.insertBefore(\"cpp\", \"class-name\", { \"base-clause\": { pattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/, lookbehind: true, greedy: true, inside: e.languages.extend(\"cpp\", {}) } }), e.languages.insertBefore(\"inside\", \"double-colon\", { \"class-name\": /\\b[a-z_]\\w*\\b(?!\\s*::)/i }, e.languages.cpp[\"base-clause\"]);\n}(Prism), Prism.languages.python = { comment: { pattern: /(^|[^\\\\])#.*/, lookbehind: true, greedy: true }, \"string-interpolation\": { pattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i, greedy: true, inside: { interpolation: { pattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/, lookbehind: true, inside: { \"format-spec\": { pattern: /(:)[^:(){}]+(?=\\}$)/, lookbehind: true }, \"conversion-option\": { pattern: //, alias: \"punctuation\" }, rest: null } }, string: /[\\s\\S]+/ } }, \"triple-quoted-string\": { pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i, greedy: true, alias: \"string\" }, string: { pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i, greedy: true }, function: { pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g, lookbehind: true }, \"class-name\": { pattern: /(\\bclass\\s+)\\w+/i, lookbehind: true }, decorator: { pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m, lookbehind: true, alias: [\"annotation\", \"punctuation\"], inside: { punctuation: /\\./ } }, keyword: /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/, builtin: /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/, boolean: /\\b(?:False|None|True)\\b/, number: /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i, operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.python[\"string-interpolation\"].inside.interpolation.inside.rest = Prism.languages.python, Prism.languages.py = Prism.languages.python, Prism.languages.json = { property: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/, lookbehind: true, greedy: true }, string: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/, lookbehind: true, greedy: true }, comment: { pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, greedy: true }, number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i, punctuation: /[{}[\\],]/, operator: /:/, boolean: /\\b(?:false|true)\\b/, null: { pattern: /\\bnull\\b/, alias: \"keyword\" } }, Prism.languages.webmanifest = Prism.languages.json;\n\n// src/themes/index.ts\nvar themes_exports = {};\n__export(themes_exports, {\n dracula: () => dracula_default,\n duotoneDark: () => duotoneDark_default,\n duotoneLight: () => duotoneLight_default,\n github: () => github_default,\n gruvboxMaterialDark: () => gruvboxMaterialDark_default,\n gruvboxMaterialLight: () => gruvboxMaterialLight_default,\n jettwaveDark: () => jettwaveDark_default,\n jettwaveLight: () => jettwaveLight_default,\n nightOwl: () => nightOwl_default,\n nightOwlLight: () => nightOwlLight_default,\n oceanicNext: () => oceanicNext_default,\n okaidia: () => okaidia_default,\n oneDark: () => oneDark_default,\n oneLight: () => oneLight_default,\n palenight: () => palenight_default,\n shadesOfPurple: () => shadesOfPurple_default,\n synthwave84: () => synthwave84_default,\n ultramin: () => ultramin_default,\n vsDark: () => vsDark_default,\n vsLight: () => vsLight_default\n});\n\n// src/themes/dracula.ts\nvar theme = {\n plain: {\n color: \"#F8F8F2\",\n backgroundColor: \"#282A36\"\n },\n styles: [\n {\n types: [\"prolog\", \"constant\", \"builtin\"],\n style: {\n color: \"rgb(189, 147, 249)\"\n }\n },\n {\n types: [\"inserted\", \"function\"],\n style: {\n color: \"rgb(80, 250, 123)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgb(255, 85, 85)\"\n }\n },\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 184, 108)\"\n }\n },\n {\n types: [\"punctuation\", \"symbol\"],\n style: {\n color: \"rgb(248, 248, 242)\"\n }\n },\n {\n types: [\"string\", \"char\", \"tag\", \"selector\"],\n style: {\n color: \"rgb(255, 121, 198)\"\n }\n },\n {\n types: [\"keyword\", \"variable\"],\n style: {\n color: \"rgb(189, 147, 249)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(98, 114, 164)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(241, 250, 140)\"\n }\n }\n ]\n};\nvar dracula_default = theme;\n\n// src/themes/duotoneDark.ts\nvar theme2 = {\n plain: {\n backgroundColor: \"#2a2734\",\n color: \"#9a86fd\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#6c6783\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#e09142\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#9a86fd\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#eeebff\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#c4b9fe\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\",\n \"placeholder\",\n \"variable\"\n ],\n style: {\n color: \"#ffcc99\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#c4b9fe\"\n }\n }\n ]\n};\nvar duotoneDark_default = theme2;\n\n// src/themes/duotoneLight.ts\nvar theme3 = {\n plain: {\n backgroundColor: \"#faf8f5\",\n color: \"#728fcb\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#b6ad9a\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#063289\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#b29762\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#2d2006\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#896724\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\"\n ],\n style: {\n color: \"#728fcb\"\n }\n },\n {\n types: [\"placeholder\", \"variable\"],\n style: {\n color: \"#93abdc\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#896724\"\n }\n }\n ]\n};\nvar duotoneLight_default = theme3;\n\n// src/themes/github.ts\nvar theme4 = {\n plain: {\n color: \"#393A34\",\n backgroundColor: \"#f6f8fa\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#999988\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"string\", \"attr-value\"],\n style: {\n color: \"#e3116c\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#393A34\"\n }\n },\n {\n types: [\n \"entity\",\n \"url\",\n \"symbol\",\n \"number\",\n \"boolean\",\n \"variable\",\n \"constant\",\n \"property\",\n \"regex\",\n \"inserted\"\n ],\n style: {\n color: \"#36acaa\"\n }\n },\n {\n types: [\"atrule\", \"keyword\", \"attr-name\", \"selector\"],\n style: {\n color: \"#00a4db\"\n }\n },\n {\n types: [\"function\", \"deleted\", \"tag\"],\n style: {\n color: \"#d73a49\"\n }\n },\n {\n types: [\"function-variable\"],\n style: {\n color: \"#6f42c1\"\n }\n },\n {\n types: [\"tag\", \"selector\", \"keyword\"],\n style: {\n color: \"#00009f\"\n }\n }\n ]\n};\nvar github_default = theme4;\n\n// src/themes/nightOwl.ts\nvar theme5 = {\n plain: {\n color: \"#d6deeb\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(99, 119, 119)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(214, 222, 235)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(255, 203, 139)\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"rgb(127, 219, 202)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"property\"],\n style: {\n color: \"rgb(128, 203, 196)\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n }\n ]\n};\nvar nightOwl_default = theme5;\n\n// src/themes/nightOwlLight.ts\nvar theme6 = {\n plain: {\n color: \"#403f53\",\n backgroundColor: \"#FBFBFB\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(72, 118, 214)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(152, 159, 177)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"builtin\", \"char\", \"constant\", \"url\"],\n style: {\n color: \"rgb(72, 118, 214)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(201, 103, 101)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(170, 9, 130)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"function\", \"selector\", \"doctype\"],\n style: {\n color: \"rgb(153, 76, 195)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(17, 17, 17)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"operator\", \"property\", \"keyword\", \"namespace\"],\n style: {\n color: \"rgb(12, 150, 155)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(188, 84, 84)\"\n }\n }\n ]\n};\nvar nightOwlLight_default = theme6;\n\n// src/themes/oceanicNext.ts\nvar colors = {\n char: \"#D8DEE9\",\n comment: \"#999999\",\n keyword: \"#c5a5c5\",\n primitive: \"#5a9bcf\",\n string: \"#8dc891\",\n variable: \"#d7deea\",\n boolean: \"#ff8b50\",\n punctuation: \"#5FB3B3\",\n tag: \"#fc929e\",\n function: \"#79b6f2\",\n className: \"#FAC863\",\n method: \"#6699CC\",\n operator: \"#fc929e\"\n};\nvar theme7 = {\n plain: {\n backgroundColor: \"#282c34\",\n color: \"#ffffff\"\n },\n styles: [\n {\n types: [\"attr-name\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"attr-value\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\n \"comment\",\n \"block-comment\",\n \"prolog\",\n \"doctype\",\n \"cdata\",\n \"shebang\"\n ],\n style: {\n color: colors.comment\n }\n },\n {\n types: [\n \"property\",\n \"number\",\n \"function-name\",\n \"constant\",\n \"symbol\",\n \"deleted\"\n ],\n style: {\n color: colors.primitive\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: colors.boolean\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: colors.tag\n }\n },\n {\n types: [\"string\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"selector\", \"char\", \"builtin\", \"inserted\"],\n style: {\n color: colors.char\n }\n },\n {\n types: [\"function\"],\n style: {\n color: colors.function\n }\n },\n {\n types: [\"operator\", \"entity\", \"url\", \"variable\"],\n style: {\n color: colors.variable\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"atrule\", \"class-name\"],\n style: {\n color: colors.className\n }\n },\n {\n types: [\"important\"],\n style: {\n fontWeight: \"400\"\n }\n },\n {\n types: [\"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n }\n ]\n};\nvar oceanicNext_default = theme7;\n\n// src/themes/okaidia.ts\nvar theme8 = {\n plain: {\n color: \"#f8f8f2\",\n backgroundColor: \"#272822\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"#f92672\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#8292a2\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"#a6e22e\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"#e6db74\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"#a6e22e\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"#66d9ef\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\",\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"property\"],\n style: {\n color: \"#f92672\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#a6e22e !important\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"#8292a2\"\n }\n },\n {\n types: [\"rule\"],\n style: {\n color: \"#e6db74\"\n }\n }\n ]\n};\nvar okaidia_default = theme8;\n\n// src/themes/palenight.ts\nvar theme9 = {\n plain: {\n color: \"#bfc7d5\",\n backgroundColor: \"#292d3e\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(105, 112, 152)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"inserted\"],\n style: {\n color: \"rgb(195, 232, 141)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n types: [\"punctuation\", \"selector\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(191, 199, 213)\"\n }\n },\n {\n types: [\"class-name\", \"attr-name\"],\n style: {\n color: \"rgb(255, 203, 107)\"\n }\n },\n {\n types: [\"tag\", \"deleted\"],\n style: {\n color: \"rgb(255, 85, 114)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(137, 221, 255)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"rgb(221, 221, 221)\"\n }\n }\n ]\n};\nvar palenight_default = theme9;\n\n// src/themes/shadesOfPurple.ts\nvar theme10 = {\n plain: {\n color: \"#9EFEFF\",\n backgroundColor: \"#2D2A55\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(179, 98, 255)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"rgb(255, 255, 255)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(165, 255, 144)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"number\", \"boolean\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 180, 84)\"\n }\n },\n {\n types: [\n \"keyword\",\n \"operator\",\n \"property\",\n \"namespace\",\n \"tag\",\n \"selector\",\n \"doctype\"\n ],\n style: {\n color: \"rgb(255, 157, 0)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"rgb(250, 208, 0)\"\n }\n }\n ]\n};\nvar shadesOfPurple_default = theme10;\n\n// src/themes/synthwave84.ts\nvar theme11 = {\n plain: {\n backgroundColor: \"linear-gradient(to bottom, #2a2139 75%, #34294f)\",\n backgroundImage: \"#34294f\",\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n },\n styles: [\n {\n types: [\"comment\", \"block-comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#495495\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#ccc\"\n }\n },\n {\n types: [\n \"tag\",\n \"attr-name\",\n \"namespace\",\n \"number\",\n \"unit\",\n \"hexcode\",\n \"deleted\"\n ],\n style: {\n color: \"#e2777a\"\n }\n },\n {\n types: [\"property\", \"selector\"],\n style: {\n color: \"#72f1b8\",\n textShadow: \"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475\"\n }\n },\n {\n types: [\"function-name\"],\n style: {\n color: \"#6196cc\"\n }\n },\n {\n types: [\"boolean\", \"selector-id\", \"function\"],\n style: {\n color: \"#fdfdfd\",\n textShadow: \"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975\"\n }\n },\n {\n types: [\"class-name\", \"maybe-class-name\", \"builtin\"],\n style: {\n color: \"#fff5f6\",\n textShadow: \"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75\"\n }\n },\n {\n types: [\"constant\", \"symbol\"],\n style: {\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n }\n },\n {\n types: [\"important\", \"atrule\", \"keyword\", \"selector-class\"],\n style: {\n color: \"#f4eee4\",\n textShadow: \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\"\n }\n },\n {\n types: [\"string\", \"char\", \"attr-value\", \"regex\", \"variable\"],\n style: {\n color: \"#f87c32\"\n }\n },\n {\n types: [\"parameter\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\", \"url\"],\n style: {\n color: \"#67cdcc\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"ffffffee\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\"],\n style: {\n cursor: \"help\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"green\"\n }\n }\n ]\n};\nvar synthwave84_default = theme11;\n\n// src/themes/ultramin.ts\nvar theme12 = {\n plain: {\n color: \"#282a2e\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(197, 200, 198)\"\n }\n },\n {\n types: [\"string\", \"number\", \"builtin\", \"variable\"],\n style: {\n color: \"rgb(150, 152, 150)\"\n }\n },\n {\n types: [\"class-name\", \"function\", \"tag\", \"attr-name\"],\n style: {\n color: \"rgb(40, 42, 46)\"\n }\n }\n ]\n};\nvar ultramin_default = theme12;\n\n// src/themes/vsDark.ts\nvar theme13 = {\n plain: {\n color: \"#9CDCFE\",\n backgroundColor: \"#1E1E1E\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"rgb(0, 0, 128)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(106, 153, 85)\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"rgb(181, 206, 168)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(100, 102, 149)\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"rgb(156, 220, 254)\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"rgb(206, 145, 120)\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"rgb(215, 186, 125)\"\n }\n },\n {\n // Fix tag color\n types: [\"tag\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n // Fix tag color for HTML\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"rgb(212, 212, 212)\"\n }\n },\n {\n // Fix punctuation color for HTML\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"rgb(220, 220, 170)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"rgb(209, 105, 105)\"\n }\n }\n ]\n};\nvar vsDark_default = theme13;\n\n// src/themes/vsLight.ts\nvar theme14 = {\n plain: {\n color: \"#000000\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(0, 128, 0)\"\n }\n },\n {\n types: [\"builtin\"],\n style: {\n color: \"rgb(0, 112, 193)\"\n }\n },\n {\n types: [\"number\", \"variable\", \"inserted\"],\n style: {\n color: \"rgb(9, 134, 88)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(0, 0, 0)\"\n }\n },\n {\n types: [\"constant\", \"char\"],\n style: {\n color: \"rgb(129, 31, 63)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(128, 0, 0)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 0, 0)\"\n }\n },\n {\n types: [\"deleted\", \"string\"],\n style: {\n color: \"rgb(163, 21, 21)\"\n }\n },\n {\n types: [\"changed\", \"punctuation\"],\n style: {\n color: \"rgb(4, 81, 165)\"\n }\n },\n {\n types: [\"function\", \"keyword\"],\n style: {\n color: \"rgb(0, 0, 255)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(38, 127, 153)\"\n }\n }\n ]\n};\nvar vsLight_default = theme14;\n\n// src/themes/jettwaveDark.ts\nvar theme15 = {\n plain: {\n color: \"#f8fafc\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#569CD6\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#f8fafc\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#9CDCFE\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#cbd5e1\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#D4D4D4\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#7dd3fc\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveDark_default = theme15;\n\n// src/themes/jettwaveLight.ts\nvar theme16 = {\n plain: {\n color: \"#0f172a\",\n backgroundColor: \"#f1f5f9\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#0f172a\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#64748b\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#475569\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#0e7490\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveLight_default = theme16;\n\n// src/themes/oneDark.ts\nvar theme17 = {\n plain: {\n backgroundColor: \"hsl(220, 13%, 18%)\",\n color: \"hsl(220, 14%, 71%)\",\n textShadow: \"0 1px rgba(0, 0, 0, 0.3)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(220, 10%, 40%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"maybe-class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: { color: \"hsl(29, 54%, 61%)\" }\n },\n {\n types: [\"keyword\"],\n style: { color: \"hsl(286, 60%, 67%)\" }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(355, 65%, 65%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\"\n ],\n style: {\n color: \"hsl(95, 38%, 62%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(207, 82%, 66%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(187, 47%, 55%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n }\n ]\n};\nvar oneDark_default = theme17;\n\n// src/themes/oneLight.ts\nvar theme18 = {\n plain: {\n backgroundColor: \"hsl(230, 1%, 98%)\",\n color: \"hsl(230, 8%, 24%)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(230, 4%, 64%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: {\n color: \"hsl(35, 99%, 36%)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: \"hsl(301, 63%, 40%)\"\n }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(5, 74%, 59%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\",\n \"punctuation\"\n ],\n style: {\n color: \"hsl(119, 34%, 47%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(221, 87%, 60%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(198, 99%, 37%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n }\n ]\n};\nvar oneLight_default = theme18;\n\n// src/themes/gruvboxMaterialDark.ts\nvar theme19 = {\n plain: {\n color: \"#ebdbb2\",\n backgroundColor: \"#292828\"\n },\n styles: [\n {\n types: [\n \"imports\",\n \"class-name\",\n \"maybe-class-name\",\n \"constant\",\n \"doctype\",\n \"builtin\",\n \"function\"\n ],\n style: {\n color: \"#d8a657\"\n }\n },\n {\n types: [\"property-access\"],\n style: {\n color: \"#7daea3\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#e78a4e\"\n }\n },\n {\n types: [\"attr-name\", \"char\", \"url\", \"regex\"],\n style: {\n color: \"#a9b665\"\n }\n },\n {\n types: [\"attr-value\", \"string\"],\n style: {\n color: \"#89b482\"\n }\n },\n {\n types: [\"comment\", \"prolog\", \"cdata\", \"operator\", \"inserted\"],\n style: {\n color: \"#a89984\"\n }\n },\n {\n types: [\n \"delimiter\",\n \"boolean\",\n \"keyword\",\n \"selector\",\n \"important\",\n \"atrule\",\n \"property\",\n \"variable\",\n \"deleted\"\n ],\n style: {\n color: \"#ea6962\"\n }\n },\n {\n types: [\"entity\", \"number\", \"symbol\"],\n style: {\n color: \"#d3869b\"\n }\n }\n ]\n};\nvar gruvboxMaterialDark_default = theme19;\n\n// src/themes/gruvboxMaterialLight.ts\nvar theme20 = {\n plain: {\n color: \"#654735\",\n backgroundColor: \"#f9f5d7\"\n },\n styles: [\n {\n types: [\n \"delimiter\",\n \"boolean\",\n \"keyword\",\n \"selector\",\n \"important\",\n \"atrule\",\n \"property\",\n \"variable\",\n \"deleted\"\n ],\n style: {\n color: \"#af2528\"\n }\n },\n {\n types: [\n \"imports\",\n \"class-name\",\n \"maybe-class-name\",\n \"constant\",\n \"doctype\",\n \"builtin\"\n ],\n style: {\n color: \"#b4730e\"\n }\n },\n {\n types: [\"string\", \"attr-value\"],\n style: {\n color: \"#477a5b\"\n }\n },\n {\n types: [\"property-access\"],\n style: {\n color: \"#266b79\"\n }\n },\n {\n types: [\"function\", \"attr-name\", \"char\", \"url\"],\n style: {\n color: \"#72761e\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#b94c07\"\n }\n },\n {\n types: [\"comment\", \"prolog\", \"cdata\", \"operator\", \"inserted\"],\n style: {\n color: \"#a89984\"\n }\n },\n {\n types: [\"entity\", \"number\", \"symbol\"],\n style: {\n color: \"#924f79\"\n }\n }\n ]\n};\nvar gruvboxMaterialLight_default = theme20;\n\n// src/index.ts\nimport { createElement } from \"react\";\n\n// src/components/useGetLineProps.ts\nimport { useCallback } from \"react\";\nimport clsx from \"clsx\";\nvar useGetLineProps = (themeDictionary) => useCallback(\n (_a) => {\n var _b = _a, { className, style, line } = _b, rest = __objRest(_b, [\"className\", \"style\", \"line\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx(\"token-line\", className)\n });\n if (typeof themeDictionary === \"object\" && \"plain\" in themeDictionary)\n output.style = themeDictionary.plain;\n if (typeof style === \"object\")\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n return output;\n },\n [themeDictionary]\n);\n\n// src/components/useGetTokenProps.ts\nimport { useCallback as useCallback2 } from \"react\";\nimport clsx2 from \"clsx\";\nvar useGetTokenProps = (themeDictionary) => {\n const styleForToken = useCallback2(\n ({ types, empty }) => {\n if (themeDictionary == null)\n return void 0;\n else if (types.length === 1 && types[0] === \"plain\") {\n return empty != null ? { display: \"inline-block\" } : void 0;\n } else if (types.length === 1 && empty != null) {\n return themeDictionary[types[0]];\n }\n return Object.assign(\n empty != null ? { display: \"inline-block\" } : {},\n ...types.map((type) => themeDictionary[type])\n );\n },\n [themeDictionary]\n );\n return useCallback2(\n (_a) => {\n var _b = _a, { token, className, style } = _b, rest = __objRest(_b, [\"token\", \"className\", \"style\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx2(\"token\", ...token.types, className),\n children: token.content,\n style: styleForToken(token)\n });\n if (style != null) {\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n }\n return output;\n },\n [styleForToken]\n );\n};\n\n// src/utils/normalizeTokens.ts\nvar newlineRe = /\\r\\n|\\r|\\n/;\nvar normalizeEmptyLines = (line) => {\n if (line.length === 0) {\n line.push({\n types: [\"plain\"],\n content: \"\\n\",\n empty: true\n });\n } else if (line.length === 1 && line[0].content === \"\") {\n line[0].content = \"\\n\";\n line[0].empty = true;\n }\n};\nvar appendTypes = (types, add) => {\n const typesSize = types.length;\n if (typesSize > 0 && types[typesSize - 1] === add) {\n return types;\n }\n return types.concat(add);\n};\nvar normalizeTokens = (tokens) => {\n const typeArrStack = [[]];\n const tokenArrStack = [tokens];\n const tokenArrIndexStack = [0];\n const tokenArrSizeStack = [tokens.length];\n let i = 0;\n let stackIndex = 0;\n let currentLine = [];\n const acc = [currentLine];\n while (stackIndex > -1) {\n while ((i = tokenArrIndexStack[stackIndex]++) < tokenArrSizeStack[stackIndex]) {\n let content;\n let types = typeArrStack[stackIndex];\n const tokenArr = tokenArrStack[stackIndex];\n const token = tokenArr[i];\n if (typeof token === \"string\") {\n types = stackIndex > 0 ? types : [\"plain\"];\n content = token;\n } else {\n types = appendTypes(types, token.type);\n if (token.alias) {\n types = appendTypes(types, token.alias);\n }\n content = token.content;\n }\n if (typeof content !== \"string\") {\n stackIndex++;\n typeArrStack.push(types);\n tokenArrStack.push(content);\n tokenArrIndexStack.push(0);\n tokenArrSizeStack.push(content.length);\n continue;\n }\n const splitByNewlines = content.split(newlineRe);\n const newlineCount = splitByNewlines.length;\n currentLine.push({\n types,\n content: splitByNewlines[0]\n });\n for (let i2 = 1; i2 < newlineCount; i2++) {\n normalizeEmptyLines(currentLine);\n acc.push(currentLine = []);\n currentLine.push({\n types,\n content: splitByNewlines[i2]\n });\n }\n }\n stackIndex--;\n typeArrStack.pop();\n tokenArrStack.pop();\n tokenArrIndexStack.pop();\n tokenArrSizeStack.pop();\n }\n normalizeEmptyLines(currentLine);\n return acc;\n};\nvar normalizeTokens_default = normalizeTokens;\n\n// src/components/useTokenize.ts\nimport { useMemo } from \"react\";\nvar useTokenize = ({ prism, code, grammar, language }) => {\n return useMemo(() => {\n if (grammar == null)\n return normalizeTokens_default([code]);\n const prismConfig = {\n code,\n grammar,\n language,\n tokens: []\n };\n prism.hooks.run(\"before-tokenize\", prismConfig);\n prismConfig.tokens = prism.tokenize(code, grammar);\n prism.hooks.run(\"after-tokenize\", prismConfig);\n return normalizeTokens_default(prismConfig.tokens);\n }, [\n code,\n grammar,\n language,\n // prism is a stable import\n prism\n ]);\n};\n\n// src/utils/themeToDict.ts\nvar themeToDict = (theme21, language) => {\n const { plain } = theme21;\n const themeDict = theme21.styles.reduce((acc, themeEntry) => {\n const { languages: languages2, style } = themeEntry;\n if (languages2 && !languages2.includes(language)) {\n return acc;\n }\n themeEntry.types.forEach((type) => {\n const accStyle = __spreadValues(__spreadValues({}, acc[type]), style);\n acc[type] = accStyle;\n });\n return acc;\n }, {});\n themeDict.root = plain;\n themeDict.plain = __spreadProps(__spreadValues({}, plain), { backgroundColor: void 0 });\n return themeDict;\n};\nvar themeToDict_default = themeToDict;\n\n// src/components/highlight.ts\nvar Highlight = ({\n children,\n language: _language,\n code,\n theme: theme21,\n prism\n}) => {\n const language = _language.toLowerCase();\n const themeDictionary = themeToDict_default(theme21, language);\n const getLineProps = useGetLineProps(themeDictionary);\n const getTokenProps = useGetTokenProps(themeDictionary);\n const grammar = prism.languages[language];\n const tokens = useTokenize({ prism, language, code, grammar });\n return children({\n tokens,\n className: `prism-code language-${language}`,\n style: themeDictionary != null ? themeDictionary.root : {},\n getLineProps,\n getTokenProps\n });\n};\n\n// src/index.ts\nvar Highlight2 = (props) => createElement(Highlight, __spreadProps(__spreadValues({}, props), {\n prism: props.prism || Prism,\n theme: props.theme || vsDark_default,\n code: props.code,\n language: props.language\n}));\nexport {\n Highlight2 as Highlight,\n Prism,\n normalizeTokens_default as normalizeTokens,\n themes_exports as themes,\n useTokenize\n};\n/*! Bundled license information:\n\nprismjs/prism.js:\n (**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n *)\n*/\n//# sourceMappingURL=index.mjs.map","\n/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\n// set a property of a literal object, while protecting against prototype pollution,\n// see https://github.com/nodeca/js-yaml/issues/164 for more details\nfunction setProperty(object, key, value) {\n // used for this specific key only because Object.defineProperty is slow\n if (key === '__proto__') {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[key] = value;\n }\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n setProperty(destination, key, source[key]);\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n setProperty(_result, keyNode, valueNode);\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n typeList,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, jsYaml as default, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","import React, { useCallback, useEffect, useRef, useState, useMemo } from 'react';\nimport Editor from 'react-simple-code-editor';\nimport { Highlight, themes, Prism } from 'prism-react-renderer';\nimport yaml from 'js-yaml';\n\n// Add YAML language support to Prism\n// Define YAML grammar directly to avoid global Prism dependency issues\nif (!Prism.languages.yaml) {\n Prism.languages.yaml = {\n scalar: {\n pattern:\n /([\\-:]\\s*(?:![^\\s]+)?[ \\t]*[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/,\n lookbehind: true,\n alias: 'string',\n },\n comment: /#.*/,\n key: {\n pattern:\n /(\\s*(?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:![^\\s]+)?[ \\t]*)[^\\r\\n{[\\]},#\\s]+?(?=\\s*:\\s)/,\n lookbehind: true,\n alias: 'atrule',\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'tag',\n },\n datetime: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?)(?=[ \\t]*(?:$|,|\\]|\\}))/m,\n lookbehind: true,\n alias: 'number',\n },\n boolean: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:false|true)(?=[ \\t]*(?:$|,|\\]|\\}|[\\r\\n]))/im,\n lookbehind: true,\n alias: 'boolean',\n },\n null: {\n pattern: /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:null|~)(?=[ \\t]*(?:$|,|\\]|\\}|[\\r\\n]))/im,\n lookbehind: true,\n alias: 'constant',\n },\n string: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(\"|')(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/m,\n lookbehind: true,\n greedy: true,\n },\n number: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)(?=[ \\t]*(?:$|,|\\]|\\}|[\\r\\n]))/im,\n lookbehind: true,\n },\n tag: /![^\\s]+/,\n anchor: /[&*][\\w]+/,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./,\n };\n}\n\ninterface YamlTextAreaProps {\n value: string;\n onChange: (value: string) => void;\n onValidationChange?: (isValid: boolean, error?: string) => void;\n readOnly?: boolean;\n minHeight?: number;\n maxHeight?: number;\n debounceMs?: number;\n className?: string;\n style?: React.CSSProperties;\n /** Language for syntax highlighting and validation. Default: 'yaml'. */\n language?: 'yaml' | 'json';\n}\n\ninterface YamlError {\n line: number;\n message: string;\n}\n\nfunction YamlTextArea({\n value,\n onChange,\n onValidationChange,\n readOnly = false,\n minHeight = 100,\n maxHeight,\n debounceMs = 500,\n className = '',\n style = {},\n language = 'yaml',\n}: YamlTextAreaProps) {\n const [error, setError] = useState<YamlError | null>(null);\n const validationTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const onValidationChangeRef = useRef(onValidationChange);\n const isUserInputRef = useRef(false);\n\n // Keep callback ref up to date\n onValidationChangeRef.current = onValidationChange;\n\n // Validate content and extract error line based on language\n const validateYaml = useCallback((text: string): YamlError | null => {\n if (!text.trim()) return null;\n if (language === 'json') {\n try {\n JSON.parse(text);\n return null;\n } catch (e: any) {\n const message: string = e?.message || 'Invalid JSON';\n const posMatch = /position\\s+(\\d+)/i.exec(message);\n let line = 1;\n if (posMatch) {\n const pos = Math.min(parseInt(posMatch[1], 10), text.length);\n line = 1;\n for (let index = 0; index < pos; index++) {\n if (text.charCodeAt(index) === 10) line++;\n }\n } else {\n const lineMatch = /line\\s+(\\d+)/i.exec(message);\n if (lineMatch) line = parseInt(lineMatch[1], 10) || 1;\n }\n return { line, message };\n }\n }\n try {\n yaml.load(text);\n return null;\n } catch (e: any) {\n const mark = e.mark;\n return {\n line: mark?.line !== undefined ? mark.line + 1 : 1,\n message: e.message || 'Invalid YAML',\n };\n }\n }, [language]);\n\n // Set error state and notify parent\n const setValidationState = useCallback((err: YamlError | null) => {\n setError(err);\n onValidationChangeRef.current?.(!err, err?.message);\n }, []);\n\n // Handle input change\n const handleChange = useCallback(\n (newValue: string) => {\n if (readOnly) return;\n\n isUserInputRef.current = true;\n\n // Clear existing timeout and start new debounced validation\n if (validationTimeoutRef.current) {\n clearTimeout(validationTimeoutRef.current);\n }\n validationTimeoutRef.current = setTimeout(() => {\n setValidationState(validateYaml(newValue));\n validationTimeoutRef.current = null;\n }, debounceMs);\n\n onChange(newValue);\n },\n [onChange, validateYaml, setValidationState, debounceMs, readOnly]\n );\n\n // Cleanup timeout on unmount\n useEffect(() => {\n return () => {\n if (validationTimeoutRef.current) {\n clearTimeout(validationTimeoutRef.current);\n }\n };\n }, []);\n\n // Re-validate when value prop changes from parent (not user input)\n useEffect(() => {\n if (isUserInputRef.current) {\n isUserInputRef.current = false;\n return;\n }\n\n // Prop changed from parent - validate immediately\n if (validationTimeoutRef.current) {\n clearTimeout(validationTimeoutRef.current);\n validationTimeoutRef.current = null;\n }\n setValidationState(validateYaml(value));\n }, [value, validateYaml, setValidationState]);\n\n // Count lines for line numbers\n const lineCount = useMemo(() => {\n return value.split('\\n').length;\n }, [value]);\n\n // Generate line numbers\n const lineNumbers = useMemo(() => {\n return Array.from({ length: lineCount }, (_, i) => i + 1).join('\\n');\n }, [lineCount]);\n\n // Determine if we're in dark mode by checking CSS variable\n const [isDark, setIsDark] = useState(false);\n useEffect(() => {\n const checkDark = () => {\n const bg = getComputedStyle(document.documentElement).getPropertyValue('--nc-bg').trim();\n // Simple heuristic: if background is dark, we're in dark mode\n setIsDark(bg.startsWith('#0') || bg.startsWith('#1') || bg.startsWith('#2') || bg.startsWith('#3'));\n };\n checkDark();\n // Listen for theme changes\n const observer = new MutationObserver(checkDark);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme'] });\n return () => observer.disconnect();\n }, []);\n\n const theme = isDark ? themes.vsDark : themes.vsLight;\n\n const getCustomStyle = useCallback(\n (tokenTypes: string[]): React.CSSProperties => {\n const type = tokenTypes[0];\n if (type === 'boolean') {\n return { color: isDark ? '#569cd6' : '#0000ff' };\n }\n if (type === 'constant' || type === 'null') {\n return { color: isDark ? '#569cd6' : '#0000ff' };\n }\n return {};\n },\n [isDark]\n );\n\n // Re-create highlight function when theme or language changes\n const highlightWithTheme = useCallback(\n (code: string) => (\n <Highlight theme={theme} code={code} language={language}>\n {({ tokens, getLineProps, getTokenProps }) => (\n <>\n {tokens.map((line, i) => {\n const lineNumber = i + 1;\n const isErrorLine = error?.line === lineNumber;\n return (\n <div\n key={i}\n {...getLineProps({ line })}\n style={{\n background: isErrorLine ? 'color-mix(in srgb, var(--nc-danger) 15%, transparent)' : undefined,\n textDecoration: isErrorLine ? 'underline wavy var(--nc-danger)' : undefined,\n }}\n >\n {line.map((token, key) => {\n const props = getTokenProps({ token });\n const customStyle = getCustomStyle(token.types);\n return (\n <span\n key={key}\n {...props}\n style={{\n ...props.style,\n ...customStyle,\n opacity: readOnly ? 0.7 : undefined,\n }}\n />\n );\n })}\n </div>\n );\n })}\n </>\n )}\n </Highlight>\n ),\n [error, theme, getCustomStyle, language, readOnly]\n );\n\n const editorContainerRef = useRef<HTMLDivElement>(null);\n const lineNumbersRef = useRef<HTMLDivElement>(null);\n\n const handleEditorScroll = () => {\n if (editorContainerRef.current && lineNumbersRef.current) {\n lineNumbersRef.current.scrollTop = editorContainerRef.current.scrollTop;\n }\n };\n\n return (\n <div\n className={`nc-yaml-textarea ${className}`.trim()}\n style={{ display: 'flex', flexDirection: 'column', gap: 4, ...style }}\n >\n {/* CSS to prevent wrapping in editor */}\n <style>{`\n .yaml-editor-container,\n .yaml-editor-container * {\n white-space: pre !important;\n overflow-wrap: normal !important;\n word-wrap: normal !important;\n word-break: keep-all !important;\n }\n .yaml-editor-container textarea,\n .yaml-editor-container pre {\n white-space: pre !important;\n overflow-wrap: normal !important;\n word-wrap: normal !important;\n word-break: keep-all !important;\n overflow-x: visible !important;\n resize: none !important;\n }\n .yaml-editor-container.read-only textarea {\n caret-color: transparent !important;\n color: var(--nc-text-weak) !important;\n }\n `}</style>\n <div\n className={`nc-yaml-textarea-container${error ? ' error' : ''}`}\n style={{\n border: `1px solid ${error ? 'var(--nc-danger)' : 'var(--nc-border)'}`,\n background: readOnly ? 'var(--nc-bg-secondary)' : 'var(--nc-bg-tertiary)',\n minHeight,\n maxHeight,\n }}\n >\n {/* Line numbers gutter */}\n <div\n ref={lineNumbersRef}\n style={{\n padding: '10px 8px',\n paddingRight: 12,\n background: 'var(--nc-bg-tertiary)',\n borderRight: '1px solid var(--nc-border)',\n color: 'var(--nc-text-weak)',\n fontFamily: 'Consolas, Monaco, \"Courier New\", monospace',\n fontSize: 13,\n lineHeight: '1.5',\n textAlign: 'right',\n userSelect: 'none',\n whiteSpace: 'pre',\n minWidth: 40,\n overflow: 'hidden',\n }}\n >\n {lineNumbers}\n </div>\n\n {/* Editor */}\n <div\n ref={editorContainerRef}\n className={`yaml-editor-container${readOnly ? ' read-only' : ''}`}\n style={{\n flex: 1,\n overflowX: 'auto',\n overflowY: 'auto',\n color: 'var(--nc-text)',\n }}\n onScroll={handleEditorScroll}\n >\n <Editor\n value={value}\n onValueChange={handleChange}\n highlight={highlightWithTheme}\n padding={10}\n readOnly={readOnly}\n style={{\n fontFamily: 'Consolas, Monaco, \"Courier New\", monospace',\n fontSize: 13,\n lineHeight: '1.5',\n minHeight: Math.max(minHeight - 2, 0),\n background: 'transparent',\n color: 'var(--nc-text)',\n whiteSpace: 'pre',\n minWidth: 'max-content',\n }}\n textareaClassName=\"yaml-editor-textarea\"\n />\n </div>\n </div>\n\n {/* Error message */}\n {error && (\n <div\n style={{\n color: 'var(--nc-danger)',\n fontSize: 12,\n padding: '4px 8px',\n background: 'color-mix(in srgb, var(--nc-danger) 10%, transparent)',\n borderRadius: 4,\n }}\n >\n Line {error.line}: {error.message}\n </div>\n )}\n </div>\n );\n}\n\nexport { YamlTextArea };\nexport type { YamlTextAreaProps };\nexport default YamlTextArea;\n"],"names":["__assign","this","t","s","i","n","p","__createBinding","o","m","k","k2","desc","__setModuleDefault","v","__importStar","mod","result","__rest","e","lib","React","require$$0","KEYCODE_Y","KEYCODE_Z","KEYCODE_M","KEYCODE_PARENS","KEYCODE_BRACKETS","KEYCODE_QUOTE","KEYCODE_BACK_QUOTE","HISTORY_LIMIT","HISTORY_TIME_GAP","isWindows","isMacLike","className","cssText","Editor","props","ref","autoFocus","disabled","form","highlight","_a","ignoreTabKey","_b","insertSpaces","maxLength","minLength","name","onBlur","onClick","onFocus","onKeyDown","onKeyUp","onValueChange","_c","padding","placeholder","preClassName","readOnly","required","style","_d","tabSize","textareaClassName","textareaId","value","rest","historyRef","inputRef","_e","capture","setCapture","contentStyle","highlighted","getLines","text","position","recordChange","record","overwrite","stack","offset","count","extras","timestamp","last","re","previous","current","recordCurrentState","input","selectionStart","selectionEnd","updateInput","applyEdits","undoEdit","redoEdit","handleKeyDown","tabCharacter","linesBeforeCaret","startLine_1","endLine_1","nextValue","line","startLineText","startLine_2","endLine_2","updatedSelection","hasSelection","textBeforeCaret","matches","indent","chars","prev","handleChange","session","styles","c","_default","__create","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropNames","__getOwnPropSymbols","__getProtoOf","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","__spreadValues","a","b","prop","__spreadProps","__objRest","source","exclude","target","__commonJS","cb","__export","all","__copyProps","to","from","except","__toESM","isNodeMode","require_prism","exports","module","Prism2","lang","uniqueId","plainTextGrammar","_","encode","tokens","Token","deepClone","visited","clone","id","element","language","defaultActivation","no","classList","redef","lang2","inside","before","insert","root","grammar","ret","token","newToken","old","DFS","callback","type","objId","property","propertyType","env","tokenList","LinkedList","addAfter","matchGrammar","toArray","hooks2","callbacks","content","alias","matchedStr","stringify","aliases","attributes","matchPattern","pattern","pos","lookbehind","match","lookbehindLength","startNode","startPos","rematch","patterns","j","patternObj","greedy","flags","currentNode","str","removeCount","matchStr","after","reach","removeFrom","removeRange","wrapped","nestedRematch","head","tail","list","node","next","newNode","array","Prism","l","e2","e3","e4","r","n2","t2","a2","r2","n3","t3","u","d","g","s2","f","h","a3","l2","u2","themes_exports","dracula_default","duotoneDark_default","duotoneLight_default","github_default","gruvboxMaterialDark_default","gruvboxMaterialLight_default","jettwaveDark_default","jettwaveLight_default","nightOwl_default","nightOwlLight_default","oceanicNext_default","okaidia_default","oneDark_default","oneLight_default","palenight_default","shadesOfPurple_default","synthwave84_default","ultramin_default","vsDark_default","vsLight_default","theme","theme2","theme3","theme4","theme5","theme6","colors","theme7","theme8","theme9","theme10","theme11","theme12","theme13","theme14","theme15","theme16","theme17","theme18","theme19","theme20","useGetLineProps","themeDictionary","useCallback","output","clsx","useGetTokenProps","styleForToken","useCallback2","types","empty","clsx2","newlineRe","normalizeEmptyLines","appendTypes","add","typesSize","normalizeTokens","typeArrStack","tokenArrStack","tokenArrIndexStack","tokenArrSizeStack","stackIndex","currentLine","acc","splitByNewlines","newlineCount","i2","normalizeTokens_default","useTokenize","prism","code","useMemo","prismConfig","themeToDict","theme21","plain","themeDict","themeEntry","languages2","accStyle","themeToDict_default","Highlight","children","_language","getLineProps","getTokenProps","Highlight2","createElement","isNothing","subject","isObject","sequence","extend","index","length","sourceKeys","repeat","string","cycle","isNegativeZero","number","isNothing_1","isObject_1","toArray_1","repeat_1","isNegativeZero_1","extend_1","common","formatError","exception","compact","where","message","YAMLException$1","reason","mark","getLine","buffer","lineStart","lineEnd","maxLineLength","maxHalfLength","padStart","max","makeSnippet","options","lineStarts","lineEnds","foundLineNo","lineNoLength","snippet","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map","Type$1","tag","data","compileList","schema","currentType","newIndex","previousType","previousIndex","compileMap","collectType","Schema$1","definition","implicit","explicit","type$1","seq","failsafe","resolveYamlNull","constructYamlNull","isNull","object","_null","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","hasDigits","ch","constructYamlInteger","sign","isInteger","int","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","res","isFloat","float","json","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","year","month","day","hour","minute","second","fraction","delta","tz_hour","tz_minute","date","representYamlTimestamp","resolveYamlMerge","merge","BASE64_MAP","resolveYamlBinary","idx","bitlen","constructYamlBinary","tailbits","bits","representYamlBinary","isBinary","binary","_hasOwnProperty$3","_toString$2","resolveYamlOmap","objectKeys","pair","pairKey","pairHasKey","constructYamlOmap","omap","_toString$1","resolveYamlPairs","keys","constructYamlPairs","pairs","_hasOwnProperty$2","resolveYamlSet","constructYamlSet","set","_hasOwnProperty$1","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","CONTEXT_BLOCK_IN","CONTEXT_BLOCK_OUT","CHOMPING_CLIP","CHOMPING_STRIP","CHOMPING_KEEP","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","setProperty","simpleEscapeCheck","simpleEscapeMap","State$1","generateError","state","throwError","throwWarning","directiveHandlers","args","major","minor","handle","prefix","captureSegment","start","end","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","preceding","following","captureStart","captureEnd","hasPendingContent","_line","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","tmp","readFlowCollection","readNext","_pos","_tag","_anchor","terminator","isPair","isExplicitPair","isMapping","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readTagProperty","isVerbatim","isNamed","tagHandle","tagName","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","indentStatus","atNewLine","hasContent","typeIndex","typeQuantity","typeList","blockIndent","readDocument","documentStart","directiveName","directiveArgs","hasDirectives","loadDocuments","nullpos","loadAll$1","iterator","documents","load$1","loadAll_1","load_1","loader","_toString","_hasOwnProperty","CHAR_BOM","CHAR_TAB","CHAR_LINE_FEED","CHAR_CARRIAGE_RETURN","CHAR_SPACE","CHAR_EXCLAMATION","CHAR_DOUBLE_QUOTE","CHAR_SHARP","CHAR_PERCENT","CHAR_AMPERSAND","CHAR_SINGLE_QUOTE","CHAR_ASTERISK","CHAR_COMMA","CHAR_MINUS","CHAR_COLON","CHAR_EQUALS","CHAR_GREATER_THAN","CHAR_QUESTION","CHAR_COMMERCIAL_AT","CHAR_LEFT_SQUARE_BRACKET","CHAR_RIGHT_SQUARE_BRACKET","CHAR_GRAVE_ACCENT","CHAR_LEFT_CURLY_BRACKET","CHAR_VERTICAL_LINE","CHAR_RIGHT_CURLY_BRACKET","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","compileStyleMap","encodeHex","character","QUOTING_TYPE_SINGLE","QUOTING_TYPE_DOUBLE","State","indentString","spaces","ind","generateNextLine","level","testImplicitResolving","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","inblock","cIsNsCharOrWhitespace","cIsNsChar","isPlainSafeFirst","isPlainSafeLast","codePointAt","first","needIndentIndicator","leadingSpaceRe","STYLE_PLAIN","STYLE_SINGLE","STYLE_LITERAL","STYLE_FOLDED","STYLE_DOUBLE","chooseScalarStyle","singleLineOnly","indentPerLevel","lineWidth","testAmbiguousType","quotingType","forceQuotes","char","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","writeScalar","iskey","testAmbiguity","blockHeader","dropEndingNewline","foldString","escapeString","indentIndicator","clip","keep","chomp","width","lineRe","nextLF","foldLine","prevMoreIndented","moreIndented","breakRe","curr","escapeSeq","writeFlowSequence","writeNode","writeBlockSequence","writeFlowMapping","objectKeyList","objectKey","objectValue","pairBuffer","writeBlockMapping","explicitPair","detectType","block","isblockseq","tagStr","objectOrArray","duplicateIndex","duplicate","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","dump$1","dump_1","dumper","renamed","Type","Schema","FAILSAFE_SCHEMA","JSON_SCHEMA","CORE_SCHEMA","DEFAULT_SCHEMA","load","loadAll","dump","YAMLException","safeLoad","safeLoadAll","safeDump","jsYaml","YamlTextArea","onChange","onValidationChange","minHeight","maxHeight","debounceMs","error","setError","useState","validationTimeoutRef","useRef","onValidationChangeRef","isUserInputRef","validateYaml","posMatch","lineMatch","yaml","setValidationState","err","newValue","useEffect","lineCount","lineNumbers","isDark","setIsDark","checkDark","bg","observer","themes","getCustomStyle","tokenTypes","highlightWithTheme","jsx","Fragment","lineNumber","isErrorLine","customStyle","editorContainerRef","lineNumbersRef","handleEditorScroll","jsxs"],"mappings":";;;sJACIA,IAAYC,MAAQA,GAAK,YAAa,WAAY;AAClD,SAAAD,IAAW,OAAO,UAAU,SAASE,GAAG;AACpC,aAASC,GAAGC,IAAI,GAAGC,IAAI,UAAU,QAAQD,IAAIC,GAAGD,KAAK;AACjD,MAAAD,IAAI,UAAUC,CAAC;AACf,eAASE,KAAKH,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGG,CAAC,MAC1DJ,EAAEI,CAAC,IAAIH,EAAEG,CAAC;AAAA,IAC1B;AACQ,WAAOJ;AAAA,EACf,GACWF,EAAS,MAAM,MAAM,SAAS;AACzC,GACIO,KAAmBN,MAAQA,GAAK,oBAAqB,OAAO,SAAU,SAASO,GAAGC,GAAGC,GAAGC,GAAI;AAC5F,EAAIA,MAAO,WAAWA,IAAKD;AAC3B,MAAIE,IAAO,OAAO,yBAAyBH,GAAGC,CAAC;AAC/C,GAAI,CAACE,MAAS,SAASA,IAAO,CAACH,EAAE,aAAaG,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,WAAOH,EAAEC,CAAC;AAAA,EAAE,EAAE,IAE7D,OAAO,eAAeF,GAAGG,GAAIC,CAAI;AACrC,IAAM,SAASJ,GAAGC,GAAGC,GAAGC,GAAI;AACxB,EAAIA,MAAO,WAAWA,IAAKD,IAC3BF,EAAEG,CAAE,IAAIF,EAAEC,CAAC;AACf,IACIG,KAAsBZ,MAAQA,GAAK,uBAAwB,OAAO,SAAU,SAASO,GAAGM,GAAG;AAC3F,SAAO,eAAeN,GAAG,WAAW,EAAE,YAAY,IAAM,OAAOM,GAAG;AACtE,IAAK,SAASN,GAAGM,GAAG;AAChB,EAAAN,EAAE,UAAaM;AACnB,IACIC,KAAgBd,MAAQA,GAAK,gBAAiB,SAAUe,GAAK;AAC7D,MAAIA,KAAOA,EAAI,WAAY,QAAOA;AAClC,MAAIC,IAAS,CAAA;AACb,MAAID,KAAO,KAAM,UAASN,KAAKM,EAAK,CAAIN,MAAM,aAAa,OAAO,UAAU,eAAe,KAAKM,GAAKN,CAAC,KAAGH,GAAgBU,GAAQD,GAAKN,CAAC;AACvI,SAAAG,GAAmBI,GAAQD,CAAG,GACvBC;AACX,GACIC,KAAUjB,MAAQA,GAAK,UAAW,SAAUE,GAAGgB,GAAG;AAClD,MAAI,IAAI,CAAA;AACR,WAASb,KAAKH,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGG,CAAC,KAAKa,EAAE,QAAQb,CAAC,IAAI,MAC9E,EAAEA,CAAC,IAAIH,EAAEG,CAAC;AACd,MAAIH,KAAK,QAAQ,OAAO,OAAO,yBAA0B;AACrD,aAASC,IAAI,GAAGE,IAAI,OAAO,sBAAsBH,CAAC,GAAGC,IAAIE,EAAE,QAAQF;AAC/D,MAAIe,EAAE,QAAQb,EAAEF,CAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAKD,GAAGG,EAAEF,CAAC,CAAC,MACzE,EAAEE,EAAEF,CAAC,CAAC,IAAID,EAAEG,EAAEF,CAAC,CAAC;AAE5B,SAAO;AACX;AACA,OAAO,eAAegB,IAAS,cAAc,EAAE,OAAO,GAAI,CAAE;AAC5D,IAAIC,IAAQN,GAAaO,EAAgB,GACrCC,KAAY,IACZC,KAAY,IACZC,KAAY,IACZC,KAAiB,IACjBC,KAAmB,KACnBC,KAAgB,KAChBC,KAAqB,KACrBC,KAAgB,KAChBC,KAAmB,KACnBC,KAAY,OAAO,SAAW,OAC9B,eAAe,UACf,OAAO,KAAK,UAAU,QAAQ,GAC9BC,KAAY,OAAO,SAAW,OAC9B,eAAe,UACf,0BAA0B,KAAK,UAAU,QAAQ,GACjDC,KAAY,2CACZC;AAAA;AAAA,EAAoB;AAAA;AAAA;AAAA;AAAA,GAA6E,OAAOD,IAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAoZ,EAAE,OAAOA,IAAW;AAAA;AAAA;AAAA;AAAA,IAAoD,EAAE,OAAOA,IAAW;AAAA;AAAA;AAAA;AAAA;AAAA,CAAwG;AAAA,GAC3sBE,KAASf,EAAM,WAAW,SAAgBgB,GAAOC,GAAK;AACtD,MAAIC,IAAYF,EAAM,WAAWG,IAAWH,EAAM,UAAUI,IAAOJ,EAAM,MAAMK,IAAYL,EAAM,WAAWM,IAAKN,EAAM,cAAcO,IAAeD,MAAO,SAAS,KAAQA,GAAIE,IAAKR,EAAM,cAAcS,IAAeD,MAAO,SAAS,KAAOA,GAAIE,IAAYV,EAAM,WAAWW,IAAYX,EAAM,WAAWY,IAAOZ,EAAM,MAAMa,IAASb,EAAM,QAAQc,IAAUd,EAAM,SAASe,IAAUf,EAAM,SAASgB,IAAYhB,EAAM,WAAWiB,IAAUjB,EAAM,SAASkB,IAAgBlB,EAAM,eAAemB,IAAKnB,EAAM,SAASoB,IAAUD,MAAO,SAAS,IAAIA,GAAIE,IAAcrB,EAAM,aAAasB,IAAetB,EAAM,cAAcuB,IAAWvB,EAAM,UAAUwB,IAAWxB,EAAM,UAAUyB,IAAQzB,EAAM,OAAO0B,IAAK1B,EAAM,SAAS2B,IAAUD,MAAO,SAAS,IAAIA,GAAIE,IAAoB5B,EAAM,mBAAmB6B,IAAa7B,EAAM,YAAY8B,IAAQ9B,EAAM,OAAO+B,IAAOlD,GAAOmB,GAAO,CAAC,aAAa,YAAY,QAAQ,aAAa,gBAAgB,gBAAgB,aAAa,aAAa,QAAQ,UAAU,WAAW,WAAW,aAAa,WAAW,iBAAiB,WAAW,eAAe,gBAAgB,YAAY,YAAY,SAAS,WAAW,qBAAqB,cAAc,OAAO,CAAC,GAC5oCgC,IAAahD,EAAM,OAAO;AAAA,IAC1B,OAAO,CAAA;AAAA,IACP,QAAQ;AAAA,EAChB,CAAK,GACGiD,IAAWjD,EAAM,OAAO,IAAI,GAC5BkD,KAAKlD,EAAM,SAAS,EAAI,GAAGmD,IAAUD,GAAG,CAAC,GAAGE,KAAaF,GAAG,CAAC,GAC7DG,KAAe;AAAA,IACf,YAAY,OAAOjB,KAAY,WAAWA,EAAQ,MAAMA;AAAA,IACxD,cAAc,OAAOA,KAAY,WAAWA,EAAQ,QAAQA;AAAA,IAC5D,eAAe,OAAOA,KAAY,WAAWA,EAAQ,SAASA;AAAA,IAC9D,aAAa,OAAOA,KAAY,WAAWA,EAAQ,OAAOA;AAAA,EAClE,GACQkB,KAAcjC,EAAUyB,CAAK,GAC7BS,KAAW,SAAUC,GAAMC,GAAU;AACrC,WAAOD,EAAK,UAAU,GAAGC,CAAQ,EAAE,MAAM;AAAA,CAAI;AAAA,EACrD,GACQC,KAAe1D,EAAM,YAAY,SAAU2D,GAAQC,GAAW;AAC9D,QAAItC,GAAIE,GAAIW;AACZ,IAAIyB,MAAc,WAAUA,IAAY;AACxC,QAAIlB,IAAKM,EAAW,SAASa,KAAQnB,EAAG,OAAOoB,KAASpB,EAAG;AAC3D,QAAImB,GAAM,UAAUC,KAAS,IAAI;AAE7B,MAAAd,EAAW,QAAQ,QAAQa,GAAM,MAAM,GAAGC,KAAS,CAAC;AAEpD,UAAIC,KAAQf,EAAW,QAAQ,MAAM;AACrC,UAAIe,KAAQtD,IAAe;AACvB,YAAIuD,KAASD,KAAQtD;AACrB,QAAAuC,EAAW,QAAQ,QAAQa,GAAM,MAAMG,IAAQD,EAAK,GACpDf,EAAW,QAAQ,SAAS,KAAK,IAAIA,EAAW,QAAQ,SAASgB,IAAQ,CAAC;AAAA,MAC1F;AAAA,IACA;AACQ,QAAIC,KAAY,KAAK,IAAG;AACxB,QAAIL,GAAW;AACX,UAAIM,KAAOlB,EAAW,QAAQ,MAAMA,EAAW,QAAQ,MAAM;AAC7D,UAAIkB,MAAQD,KAAYC,GAAK,YAAYxD,IAAkB;AAGvD,YAAIyD,KAAK,0BAELC,KAAY9C,IAAKiC,GAASW,GAAK,OAAOA,GAAK,cAAc,EACxD,IAAG,OAAQ,QAAQ5C,MAAO,SAAS,SAASA,EAAG,MAAM6C,EAAE,GAExDE,MAAW7C,IAAK+B,GAASI,EAAO,OAAOA,EAAO,cAAc,EAC3D,IAAG,OAAQ,QAAQnC,MAAO,SAAS,SAASA,EAAG,MAAM2C,EAAE;AAC5D,YAAKC,KAAa,QAAuCA,EAAS,CAAC,MAAQ,GAAAjC,IAAKkC,MAAY,OAA6B,SAASA,GAAQ,CAAC,OAAO,QAAQlC,MAAO,WAAkBA,EAAG,WAAWiC,EAAS,CAAC,CAAC,IAAI;AAG5M,UAAApB,EAAW,QAAQ,MAAMA,EAAW,QAAQ,MAAM,IAAIrE,EAASA,EAAS,CAAA,GAAIgF,CAAM,GAAG,EAAE,WAAWM,GAAS,CAAE;AAC7G;AAAA,QACpB;AAAA,MACA;AAAA,IACA;AAEQ,IAAAjB,EAAW,QAAQ,MAAM,KAAKrE,EAASA,EAAS,CAAA,GAAIgF,CAAM,GAAG,EAAE,WAAWM,GAAS,CAAE,CAAC,GACtFjB,EAAW,QAAQ;AAAA,EAC3B,GAAO,CAAA,CAAE,GACDsB,KAAqBtE,EAAM,YAAY,WAAY;AACnD,QAAIuE,IAAQtB,EAAS;AACrB,QAAKsB,GAGL;AAAA,UAAIzB,IAAQyB,EAAM,OAAOC,IAAiBD,EAAM,gBAAgBE,IAAeF,EAAM;AACrF,MAAAb,GAAa;AAAA,QACT,OAAOZ;AAAA,QACP,gBAAgB0B;AAAA,QAChB,cAAcC;AAAA,MAC1B,CAAS;AAAA;AAAA,EACT,GAAO,CAACf,EAAY,CAAC,GACbgB,KAAc,SAAUf,GAAQ;AAChC,QAAIY,IAAQtB,EAAS;AACrB,IAAKsB,MAGLA,EAAM,QAAQZ,EAAO,OACrBY,EAAM,iBAAiBZ,EAAO,gBAC9BY,EAAM,eAAeZ,EAAO,cAC5BzB,KAAkB,QAA4CA,EAAcyB,EAAO,KAAK;AAAA,EAChG,GACQgB,KAAa,SAAUhB,GAAQ;AAE/B,QAAIY,IAAQtB,EAAS,SACjBiB,IAAOlB,EAAW,QAAQ,MAAMA,EAAW,QAAQ,MAAM;AAC7D,IAAIkB,KAAQK,MACRvB,EAAW,QAAQ,MAAMA,EAAW,QAAQ,MAAM,IAAIrE,EAASA,EAAS,CAAA,GAAIuF,CAAI,GAAG,EAAE,gBAAgBK,EAAM,gBAAgB,cAAcA,EAAM,cAAc,IAGjKb,GAAaC,CAAM,GACnBe,GAAYf,CAAM;AAAA,EAC1B,GACQiB,KAAW,WAAY;AACvB,QAAItD,IAAK0B,EAAW,SAASa,IAAQvC,EAAG,OAAOwC,IAASxC,EAAG,QAEvDqC,IAASE,EAAMC,IAAS,CAAC;AAC7B,IAAIH,MAEAe,GAAYf,CAAM,GAClBX,EAAW,QAAQ,SAAS,KAAK,IAAIc,IAAS,GAAG,CAAC;AAAA,EAE9D,GACQe,KAAW,WAAY;AACvB,QAAIvD,IAAK0B,EAAW,SAASa,IAAQvC,EAAG,OAAOwC,IAASxC,EAAG,QAEvDqC,IAASE,EAAMC,IAAS,CAAC;AAC7B,IAAIH,MAEAe,GAAYf,CAAM,GAClBX,EAAW,QAAQ,SAAS,KAAK,IAAIc,IAAS,GAAGD,EAAM,SAAS,CAAC;AAAA,EAE7E,GACQiB,KAAgB,SAAUhF,GAAG;AAC7B,QAAI,EAAAkC,MACAA,EAAUlC,CAAC,GACPA,EAAE,oBAIV;AAAA,MAAIA,EAAE,QAAQ,YACVA,EAAE,cAAc,KAAI;AAExB,UAAIwB,IAAKxB,EAAE,eAAegD,IAAQxB,EAAG,OAAOkD,IAAiBlD,EAAG,gBAAgBmD,IAAenD,EAAG,cAC9FyD,KAAgBtD,IAAe,MAAM,KAAM,OAAOkB,CAAO;AAC7D,UAAI7C,EAAE,QAAQ,SAAS,CAACyB,KAAgB4B;AAGpC,YADArD,EAAE,eAAc,GACZA,EAAE,UAAU;AAEZ,cAAIkF,KAAmBzB,GAAST,GAAO0B,CAAc,GACjDS,KAAcD,GAAiB,SAAS,GACxCE,KAAY3B,GAAST,GAAO2B,CAAY,EAAE,SAAS,GACnDU,KAAYrC,EACX,MAAM;AAAA,CAAI,EACV,IAAI,SAAUsC,IAAMrG,IAAG;AACxB,mBAAIA,MAAKkG,MACLlG,MAAKmG,MACLE,GAAK,WAAWL,CAAY,IACrBK,GAAK,UAAUL,EAAa,MAAM,IAEtCK;AAAA,UAC3B,CAAiB,EACI,KAAK;AAAA,CAAI;AACd,cAAItC,MAAUqC,IAAW;AACrB,gBAAIE,KAAgBL,GAAiBC,EAAW;AAChD,YAAAN,GAAW;AAAA,cACP,OAAOQ;AAAA;AAAA;AAAA,cAGP,gBAAiBE,MAAkB,QAA4CA,GAAc,WAAWN,CAAY,IAC9GP,IAAiBO,EAAa,SAC9BP;AAAA;AAAA,cAEN,cAAcC,KAAgB3B,EAAM,SAASqC,GAAU;AAAA,YAC/E,CAAqB;AAAA,UACrB;AAAA,QACA,WACqBX,MAAmBC,GAAc;AAEtC,cAAIO,KAAmBzB,GAAST,GAAO0B,CAAc,GACjDc,KAAcN,GAAiB,SAAS,GACxCO,KAAYhC,GAAST,GAAO2B,CAAY,EAAE,SAAS,GACnDY,KAAgBL,GAAiBM,EAAW;AAChD,UAAAX,GAAW;AAAA,YACP,OAAO7B,EACF,MAAM;AAAA,CAAI,EACV,IAAI,SAAUsC,IAAMrG,IAAG;AACxB,qBAAIA,MAAKuG,MAAevG,MAAKwG,KAClBR,IAAeK,KAEnBA;AAAA,YAC/B,CAAqB,EACI,KAAK;AAAA,CAAI;AAAA;AAAA;AAAA,YAGd,gBAAgBC,MAAiB,KAAK,KAAKA,EAAa,IAClDb,IAAiBO,EAAa,SAC9BP;AAAA;AAAA,YAEN,cAAcC,IAAeM,EAAa,UAAUQ,KAAYD,KAAc;AAAA,UAClG,CAAiB;AAAA,QACjB,OACiB;AACD,cAAIE,IAAmBhB,IAAiBO,EAAa;AACrD,UAAAJ,GAAW;AAAA;AAAA,YAEP,OAAO7B,EAAM,UAAU,GAAG0B,CAAc,IACpCO,IACAjC,EAAM,UAAU2B,CAAY;AAAA;AAAA,YAEhC,gBAAgBe;AAAA,YAChB,cAAcA;AAAA,UAClC,CAAiB;AAAA,QACjB;AAAA,eAEiB1F,EAAE,QAAQ,aAAa;AAC5B,YAAI2F,KAAejB,MAAmBC,GAClCiB,KAAkB5C,EAAM,UAAU,GAAG0B,CAAc;AACvD,YAAIkB,GAAgB,SAASX,CAAY,KAAK,CAACU,IAAc;AAEzD,UAAA3F,EAAE,eAAc;AAChB,cAAI0F,IAAmBhB,IAAiBO,EAAa;AACrD,UAAAJ,GAAW;AAAA;AAAA,YAEP,OAAO7B,EAAM,UAAU,GAAG0B,IAAiBO,EAAa,MAAM,IAC1DjC,EAAM,UAAU2B,CAAY;AAAA;AAAA,YAEhC,gBAAgBe;AAAA,YAChB,cAAcA;AAAA,UAClC,CAAiB;AAAA,QACjB;AAAA,MACA,WACiB1F,EAAE,QAAQ;AAEf,YAAI0E,MAAmBC,GAAc;AAEjC,cAAIW,KAAO7B,GAAST,GAAO0B,CAAc,EAAE,IAAG,GAC1CmB,KAAUP,MAAS,OAA0B,SAASA,GAAK,MAAM,MAAM;AAC3E,cAAIO,MAAY,QAAsCA,GAAQ,CAAC,GAAG;AAC9D,YAAA7F,EAAE,eAAc;AAEhB,gBAAI8F,KAAS;AAAA,IAAOD,GAAQ,CAAC,GACzBH,IAAmBhB,IAAiBoB,GAAO;AAC/C,YAAAjB,GAAW;AAAA;AAAA,cAEP,OAAO7B,EAAM,UAAU,GAAG0B,CAAc,IACpCoB,KACA9C,EAAM,UAAU2B,CAAY;AAAA;AAAA,cAEhC,gBAAgBe;AAAA,cAChB,cAAcA;AAAA,YACtC,CAAqB;AAAA,UACrB;AAAA,QACA;AAAA,iBAEiB1F,EAAE,YAAYO,MACnBP,EAAE,YAAYQ,MACdR,EAAE,YAAYS,MACdT,EAAE,YAAYU,IAAoB;AAClC,YAAIqF,KAAQ;AACZ,QAAI/F,EAAE,YAAYO,MAAkBP,EAAE,WAClC+F,KAAQ,CAAC,KAAK,GAAG,IAEZ/F,EAAE,YAAYQ,KACfR,EAAE,WACF+F,KAAQ,CAAC,KAAK,GAAG,IAGjBA,KAAQ,CAAC,KAAK,GAAG,IAGhB/F,EAAE,YAAYS,KACfT,EAAE,WACF+F,KAAQ,CAAC,KAAK,GAAG,IAGjBA,KAAQ,CAAC,KAAK,GAAG,IAGhB/F,EAAE,YAAYU,MAAsB,CAACV,EAAE,aAC5C+F,KAAQ,CAAC,KAAK,GAAG,IAGjBrB,MAAmBC,KAAgBoB,OACnC/F,EAAE,eAAc,GAChB6E,GAAW;AAAA,UACP,OAAO7B,EAAM,UAAU,GAAG0B,CAAc,IACpCqB,GAAM,CAAC,IACP/C,EAAM,UAAU0B,GAAgBC,CAAY,IAC5CoB,GAAM,CAAC,IACP/C,EAAM,UAAU2B,CAAY;AAAA;AAAA,UAEhC,gBAAgBD;AAAA,UAChB,cAAcC,IAAe;AAAA,QACjD,CAAiB;AAAA,MAEjB,MACa,EAAK7D;AAAA;AAAA,QAEFd,EAAE,WAAWA,EAAE,YAAYK;AAAA;AAAA;AAAA,QAE3BL,EAAE,WAAWA,EAAE,YAAYK;AAAA,YAC/B,CAACL,EAAE,YACH,CAACA,EAAE,UACHA,EAAE,eAAc,GAChB8E,GAAQ,MAEFhE;AAAA;AAAA,QAEFd,EAAE,WAAWA,EAAE,YAAYK,MAAaL,EAAE;AAAA,UAC5Ca;AAAA;AAAA,QAEMb,EAAE,WAAWA,EAAE,YAAYI;AAAA;AAAA;AAAA,QAE3BJ,EAAE,WAAWA,EAAE,YAAYK,MAAaL,EAAE;AAAA,YAClD,CAACA,EAAE,UACHA,EAAE,eAAc,GAChB+E,GAAQ,KAEH/E,EAAE,YAAYM,MACnBN,EAAE,YACD,CAAAc,MAAYd,EAAE,cACfA,EAAE,eAAc,GAEhBsD,GAAW,SAAU0C,IAAM;AAAE,eAAO,CAACA;AAAA,MAAK,CAAE;AAAA;AAAA,EAExD,GACQC,KAAe,SAAUjG,GAAG;AAC5B,QAAIwB,IAAKxB,EAAE,eAAegD,IAAQxB,EAAG,OAAOkD,IAAiBlD,EAAG,gBAAgBmD,IAAenD,EAAG;AAClG,IAAAoC,GAAa;AAAA,MACT,OAAOZ;AAAA,MACP,gBAAgB0B;AAAA,MAChB,cAAcC;AAAA,IAC1B,GAAW,EAAI,GACPvC,EAAcY,CAAK;AAAA,EAC3B;AACI,SAAA9C,EAAM,UAAU,WAAY;AACxB,IAAAsE,GAAkB;AAAA,EAC1B,GAAO,CAACA,EAAkB,CAAC,GACvBtE,EAAM,oBAAoBiB,GAAK,WAAY;AACvC,WAAO;AAAA,MACH,IAAI,UAAU;AACV,eAAO;AAAA,UACH,SAAS+B,EAAW;AAAA,QACxC;AAAA,MACA;AAAA,MACY,IAAI,QAAQgD,GAAS;AACjB,QAAAhD,EAAW,UAAUgD,EAAQ;AAAA,MAC7C;AAAA,IACA;AAAA,EACA,GAAO,CAAA,CAAE,GACGhG,EAAM;AAAA,IAAc;AAAA,IAAOrB,EAAS,CAAA,GAAIoE,GAAM,EAAE,OAAOpE,EAASA,EAAS,CAAA,GAAIsH,GAAO,SAAS,GAAGxD,CAAK,GAAG;AAAA,IAC5GzC,EAAM,cAAc,OAAOrB,EAAS,EAAE,WAAW2D,GAAc,eAAe,QAAQ,OAAO3D,EAASA,EAASA,EAAS,CAAA,GAAIsH,GAAO,MAAM,GAAGA,GAAO,SAAS,GAAG5C,EAAY,KAAM,OAAOC,MAAgB,WAClM,EAAE,yBAAyB,EAAE,QAAQA,KAAc,SAAQ,EAAE,IAC7D,EAAE,UAAUA,GAAW,EAAI;AAAA,IACjCtD,EAAM,cAAc,YAAY,EAAE,KAAK,SAAUkG,GAAG;AAAE,aAAQjD,EAAS,UAAUiD;AAAA,IAAG,GAAI,OAAOvH,EAASA,EAASA,EAAS,CAAA,GAAIsH,GAAO,MAAM,GAAGA,GAAO,QAAQ,GAAG5C,EAAY,GAAG,WAAWxC,MAAa+B,IAAoB,IAAI,OAAOA,CAAiB,IAAI,KAAK,IAAIC,GAAY,OAAOC,GAAO,UAAUiD,IAAc,WAAWjB,IAAe,SAAShD,GAAS,SAASG,GAAS,SAASF,GAAS,QAAQF,GAAQ,UAAUV,GAAU,MAAMC,GAAM,WAAWM,GAAW,WAAWC,GAAW,MAAMC,GAAM,aAAaS,GAAa,UAAUE,GAAU,UAAUC,GAAU,WAAWtB,GAAW,gBAAgB,OAAO,cAAc,OAAO,aAAa,OAAO,YAAY,IAAO,cAAc,IAAO;AAAA,IAC9qBlB,EAAM,cAAc,SAAS,EAAE,yBAAyB,EAAE,QAAQc,GAAO,EAAE,CAAE;AAAA,EAAC;AACtF,CAAC,GACGmF,KAAS;AAAA,EACT,WAAW;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW;AAAA,IACX,SAAS;AAAA,IACT,UAAU;AAAA,EAClB;AAAA,EACI,UAAU;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,IACV,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EAC7B;AAAA,EACI,WAAW;AAAA,IACP,UAAU;AAAA,IACV,eAAe;AAAA,EACvB;AAAA,EACI,QAAQ;AAAA,IACJ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,sBAAsB;AAAA,IACtB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,cAAc;AAAA,EACtB;AACA,GACAE,KAAApG,GAAA,UAAkBgB,ICjcdqF,KAAW,OAAO,QAClBC,KAAY,OAAO,gBACnBC,KAAa,OAAO,kBACpBC,KAAmB,OAAO,0BAC1BC,KAAoB,OAAO,2BAC3BC,KAAoB,OAAO,qBAC3BC,KAAsB,OAAO,uBAC7BC,KAAe,OAAO,gBACtBC,KAAe,OAAO,UAAU,gBAChCC,KAAe,OAAO,UAAU,sBAChCC,KAAkB,CAACC,GAAKC,GAAKlE,MAAUkE,KAAOD,IAAMV,GAAUU,GAAKC,GAAK,EAAE,YAAY,IAAM,cAAc,IAAM,UAAU,IAAM,OAAAlE,EAAK,CAAE,IAAIiE,EAAIC,CAAG,IAAIlE,GACtJmE,KAAiB,CAACC,GAAGC,MAAM;AAC7B,WAASC,KAAQD,MAAMA,IAAI,CAAA;AACzB,IAAIP,GAAa,KAAKO,GAAGC,CAAI,KAC3BN,GAAgBI,GAAGE,GAAMD,EAAEC,CAAI,CAAC;AACpC,MAAIV;AACF,aAASU,KAAQV,GAAoBS,CAAC;AACpC,MAAIN,GAAa,KAAKM,GAAGC,CAAI,KAC3BN,GAAgBI,GAAGE,GAAMD,EAAEC,CAAI,CAAC;AAEtC,SAAOF;AACT,GACIG,KAAgB,CAACH,GAAGC,MAAMb,GAAWY,GAAGV,GAAkBW,CAAC,CAAC,GAC5DG,KAAY,CAACC,GAAQC,MAAY;AACnC,MAAIC,IAAS,CAAA;AACb,WAASL,KAAQG;AACf,IAAIX,GAAa,KAAKW,GAAQH,CAAI,KAAKI,EAAQ,QAAQJ,CAAI,IAAI,MAC7DK,EAAOL,CAAI,IAAIG,EAAOH,CAAI;AAC9B,MAAIG,KAAU,QAAQb;AACpB,aAASU,KAAQV,GAAoBa,CAAM;AACzC,MAAIC,EAAQ,QAAQJ,CAAI,IAAI,KAAKP,GAAa,KAAKU,GAAQH,CAAI,MAC7DK,EAAOL,CAAI,IAAIG,EAAOH,CAAI;AAEhC,SAAOK;AACT,GACIC,KAAa,CAACC,GAAIhI,MAAQ,WAAqB;AACjD,SAAOA,SAAWgI,EAAGlB,GAAkBkB,CAAE,EAAE,CAAC,CAAC,IAAIhI,IAAM,EAAE,SAAS,GAAE,GAAI,SAASA,CAAG,GAAGA,EAAI;AAC7F,GACIiI,KAAW,CAACH,GAAQI,MAAQ;AAC9B,WAASjG,KAAQiG;AACf,IAAAxB,GAAUoB,GAAQ7F,GAAM,EAAE,KAAKiG,EAAIjG,CAAI,GAAG,YAAY,IAAM;AAChE,GACIkG,KAAc,CAACC,GAAIC,GAAMC,GAAQ1I,MAAS;AAC5C,MAAIyI,KAAQ,OAAOA,KAAS,YAAY,OAAOA,KAAS;AACtD,aAAShB,KAAOP,GAAkBuB,CAAI;AACpC,MAAI,CAACpB,GAAa,KAAKmB,GAAIf,CAAG,KAAKA,MAAQiB,KACzC5B,GAAU0B,GAAIf,GAAK,EAAE,KAAK,MAAMgB,EAAKhB,CAAG,GAAG,YAAY,EAAEzH,IAAOgH,GAAiByB,GAAMhB,CAAG,MAAMzH,EAAK,YAAY;AAEvH,SAAOwI;AACT,GACIG,KAAU,CAACvI,GAAKwI,GAAYV,OAAYA,IAAS9H,KAAO,OAAOyG,GAASO,GAAahH,CAAG,CAAC,IAAI,CAAA,GAAImI;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrF,CAACnI,KAAO,CAACA,EAAI,aAAa0G,GAAUoB,GAAQ,WAAW,EAAE,OAAO9H,GAAK,YAAY,GAAI,CAAE,IAAI8H;AAAA,EACzG9H;AACF,IAGIyI,KAAgBV,GAAW;AAAA,EAC7B,8GAA8GW,GAASC,GAAQ;AAC7H,QAAIC,IAAS,WAAW;AACtB,UAAIC,IAAO,2CACPC,IAAW,GACXC,IAAmB,CAAA,GACnBC,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAUN,MAAM;AAAA,UACJ,QAAQ,SAASC,EAAOC,GAAQ;AAC9B,mBAAIA,aAAkBC,IACb,IAAIA,EAAMD,EAAO,MAAMD,EAAOC,EAAO,OAAO,GAAGA,EAAO,KAAK,IACzD,MAAM,QAAQA,CAAM,IACtBA,EAAO,IAAID,CAAM,IAEjBC,EAAO,QAAQ,MAAM,OAAO,EAAE,QAAQ,MAAM,MAAM,EAAE,QAAQ,WAAW,GAAG;AAAA,UAErF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAiBA,MAAM,SAAS1J,GAAG;AAChB,mBAAO,OAAO,UAAU,SAAS,KAAKA,CAAC,EAAE,MAAM,GAAG,EAAE;AAAA,UACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAOA,OAAO,SAAS4H,GAAK;AACnB,mBAAKA,EAAI,QACP,OAAO,eAAeA,GAAK,QAAQ,EAAE,OAAO,EAAE0B,GAAU,GAEnD1B,EAAI;AAAA,UACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWA,OAAO,SAASgC,EAAU5J,GAAG6J,GAAS;AACpC,YAAAA,IAAUA,KAAW,CAAA;AACrB,gBAAIC,GACAC;AACJ,oBAAQP,EAAE,KAAK,KAAKxJ,CAAC,GAAC;AAAA,cACpB,KAAK;AAEH,oBADA+J,IAAKP,EAAE,KAAK,MAAMxJ,CAAC,GACf6J,EAAQE,CAAE;AACZ,yBAAOF,EAAQE,CAAE;AAEnB,gBAAAD;AAAA,gBACA,CAAA,GACAD,EAAQE,CAAE,IAAID;AACd,yBAASjC,KAAO7H;AACd,kBAAIA,EAAE,eAAe6H,CAAG,MACtBiC,EAAMjC,CAAG,IAAI+B,EAAU5J,EAAE6H,CAAG,GAAGgC,CAAO;AAG1C;AAAA;AAAA,kBAEEC;AAAA;AAAA,cAEJ,KAAK;AAEH,uBADAC,IAAKP,EAAE,KAAK,MAAMxJ,CAAC,GACf6J,EAAQE,CAAE,IACLF,EAAQE,CAAE,KAEnBD,IAAQ,CAAA,GACRD,EAAQE,CAAE,IAAID,GAGd9J,EAAE,QAAQ,SAASM,GAAGV,GAAG;AACvB,kBAAAkK,EAAMlK,CAAC,IAAIgK,EAAUtJ,GAAGuJ,CAAO;AAAA,gBACjC,CAAC;AAAA,gBAGCC;AAAA,cAEJ;AACE,uBAAO9J;AAAA,YACvB;AAAA,UACU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UASA,aAAa,SAASgK,GAAS;AAC7B,mBAAOA,KAAS;AACd,kBAAI/J,IAAIoJ,EAAK,KAAKW,EAAQ,SAAS;AACnC,kBAAI/J;AACF,uBAAOA,EAAE,CAAC,EAAE,YAAW;AAEzB,cAAA+J,IAAUA,EAAQ;AAAA,YACpB;AACA,mBAAO;AAAA,UACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAQA,aAAa,SAASA,GAASC,GAAU;AACvC,YAAAD,EAAQ,YAAYA,EAAQ,UAAU,QAAQ,OAAOX,GAAM,IAAI,GAAG,EAAE,GACpEW,EAAQ,UAAU,IAAI,cAAcC,CAAQ;AAAA,UAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAoBA,UAAU,SAASD,GAAStI,GAAWwI,GAAmB;AAExD,qBADIC,IAAK,QAAQzI,GACVsI,KAAS;AACd,kBAAII,IAAYJ,EAAQ;AACxB,kBAAII,EAAU,SAAS1I,CAAS;AAC9B,uBAAO;AAET,kBAAI0I,EAAU,SAASD,CAAE;AACvB,uBAAO;AAET,cAAAH,IAAUA,EAAQ;AAAA,YACpB;AACA,mBAAO,CAAC,CAACE;AAAA,UACX;AAAA,QACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAQQ,WAAW;AAAA;AAAA;AAAA;AAAA,UAIT,OAAOX;AAAA,UACP,WAAWA;AAAA,UACX,MAAMA;AAAA,UACN,KAAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UA6BL,QAAQ,SAASQ,GAAIM,GAAO;AAC1B,gBAAIC,IAAQd,EAAE,KAAK,MAAMA,EAAE,UAAUO,CAAE,CAAC;AACxC,qBAASlC,KAAOwC;AACd,cAAAC,EAAMzC,CAAG,IAAIwC,EAAMxC,CAAG;AAExB,mBAAOyC;AAAA,UACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UA4EA,cAAc,SAASC,GAAQC,GAAQC,GAAQC,GAAM;AACnD,YAAAA,IAAOA;AAAA,YACPlB,EAAE;AACF,gBAAImB,IAAUD,EAAKH,CAAM,GACrBK,IAAM,CAAA;AACV,qBAASC,KAASF;AAChB,kBAAIA,EAAQ,eAAeE,CAAK,GAAG;AACjC,oBAAIA,KAASL;AACX,2BAASM,KAAYL;AACnB,oBAAIA,EAAO,eAAeK,CAAQ,MAChCF,EAAIE,CAAQ,IAAIL,EAAOK,CAAQ;AAIrC,gBAAKL,EAAO,eAAeI,CAAK,MAC9BD,EAAIC,CAAK,IAAIF,EAAQE,CAAK;AAAA,cAE9B;AAEF,gBAAIE,IAAML,EAAKH,CAAM;AACrB,mBAAAG,EAAKH,CAAM,IAAIK,GACfpB,EAAE,UAAU,IAAIA,EAAE,WAAW,SAAS3B,GAAKlE,GAAO;AAChD,cAAIA,MAAUoH,KAAOlD,KAAO0C,MAC1B,KAAK1C,CAAG,IAAI+C;AAAA,YAEhB,CAAC,GACMA;AAAA,UACT;AAAA;AAAA,UAEA,KAAK,SAASI,EAAIhL,GAAGiL,GAAUC,GAAMrB,GAAS;AAC5C,YAAAA,IAAUA,KAAW,CAAA;AACrB,gBAAIsB,IAAQ3B,EAAE,KAAK;AACnB,qBAAS5J,KAAKI;AACZ,kBAAIA,EAAE,eAAeJ,CAAC,GAAG;AACvB,gBAAAqL,EAAS,KAAKjL,GAAGJ,GAAGI,EAAEJ,CAAC,GAAGsL,KAAQtL,CAAC;AACnC,oBAAIwL,IAAWpL,EAAEJ,CAAC,GACdyL,IAAe7B,EAAE,KAAK,KAAK4B,CAAQ;AACvC,gBAAIC,MAAiB,YAAY,CAACxB,EAAQsB,EAAMC,CAAQ,CAAC,KACvDvB,EAAQsB,EAAMC,CAAQ,CAAC,IAAI,IAC3BJ,EAAII,GAAUH,GAAU,MAAMpB,CAAO,KAC5BwB,MAAiB,WAAW,CAACxB,EAAQsB,EAAMC,CAAQ,CAAC,MAC7DvB,EAAQsB,EAAMC,CAAQ,CAAC,IAAI,IAC3BJ,EAAII,GAAUH,GAAUrL,GAAGiK,CAAO;AAAA,cAEtC;AAAA,UAEJ;AAAA,QACV;AAAA,QACQ,SAAS,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAqBT,WAAW,SAASxF,GAAMsG,GAASV,GAAU;AAC3C,cAAIqB,IAAM;AAAA,YACR,MAAMjH;AAAA,YACN,SAAAsG;AAAA,YACA,UAAAV;AAAA,UACZ;AAEU,cADAT,EAAE,MAAM,IAAI,mBAAmB8B,CAAG,GAC9B,CAACA,EAAI;AACP,kBAAM,IAAI,MAAM,mBAAmBA,EAAI,WAAW,mBAAmB;AAEvE,iBAAAA,EAAI,SAAS9B,EAAE,SAAS8B,EAAI,MAAMA,EAAI,OAAO,GAC7C9B,EAAE,MAAM,IAAI,kBAAkB8B,CAAG,GAC1B3B,EAAM,UAAUH,EAAE,KAAK,OAAO8B,EAAI,MAAM,GAAGA,EAAI,QAAQ;AAAA,QAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAyBA,UAAU,SAASjH,GAAMsG,GAAS;AAChC,cAAI/G,IAAO+G,EAAQ;AACnB,cAAI/G,GAAM;AACR,qBAASiH,KAASjH;AAChB,cAAA+G,EAAQE,CAAK,IAAIjH,EAAKiH,CAAK;AAE7B,mBAAOF,EAAQ;AAAA,UACjB;AACA,cAAIY,IAAY,IAAIC,EAAU;AAC9B,iBAAAC,EAASF,GAAWA,EAAU,MAAMlH,CAAI,GACxCqH,EAAarH,GAAMkH,GAAWZ,GAASY,EAAU,MAAM,CAAC,GACjDI,EAAQJ,CAAS;AAAA,QAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMA,OAAO;AAAA,UACL,KAAK,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAaL,KAAK,SAAS9I,GAAMwI,GAAU;AAC5B,gBAAIW,IAASpC,EAAE,MAAM;AACrB,YAAAoC,EAAOnJ,CAAI,IAAImJ,EAAOnJ,CAAI,KAAK,CAAA,GAC/BmJ,EAAOnJ,CAAI,EAAE,KAAKwI,CAAQ;AAAA,UAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAUA,KAAK,SAASxI,GAAM6I,GAAK;AACvB,gBAAIO,IAAYrC,EAAE,MAAM,IAAI/G,CAAI;AAChC,gBAAI,GAACoJ,KAAa,CAACA,EAAU;AAG7B,uBAASjM,IAAI,GAAGqL,GAAUA,IAAWY,EAAUjM,GAAG;AAChD,gBAAAqL,EAASK,CAAG;AAAA,UAEhB;AAAA,QACV;AAAA,QACQ,OAAA3B;AAAA,MACR;AACM,eAASA,EAAMuB,GAAMY,GAASC,GAAOC,GAAY;AAC/C,aAAK,OAAOd,GACZ,KAAK,UAAUY,GACf,KAAK,QAAQC,GACb,KAAK,UAAUC,KAAc,IAAI,SAAS;AAAA,MAC5C;AACA,MAAArC,EAAM,YAAY,SAASsC,EAAUjM,GAAGiK,GAAU;AAChD,YAAI,OAAOjK,KAAK;AACd,iBAAOA;AAET,YAAI,MAAM,QAAQA,CAAC,GAAG;AACpB,cAAIL,IAAI;AACR,iBAAAK,EAAE,QAAQ,SAASW,GAAG;AACpB,YAAAhB,KAAKsM,EAAUtL,GAAGsJ,CAAQ;AAAA,UAC5B,CAAC,GACMtK;AAAA,QACT;AACA,YAAI2L,IAAM;AAAA,UACR,MAAMtL,EAAE;AAAA,UACR,SAASiM,EAAUjM,EAAE,SAASiK,CAAQ;AAAA,UACtC,KAAK;AAAA,UACL,SAAS,CAAC,SAASjK,EAAE,IAAI;AAAA,UACzB,YAAY,CAAA;AAAA,UACZ,UAAAiK;AAAA,QACV,GACYiC,IAAUlM,EAAE;AAChB,QAAIkM,MACE,MAAM,QAAQA,CAAO,IACvB,MAAM,UAAU,KAAK,MAAMZ,EAAI,SAASY,CAAO,IAE/CZ,EAAI,QAAQ,KAAKY,CAAO,IAG5B1C,EAAE,MAAM,IAAI,QAAQ8B,CAAG;AACvB,YAAIa,IAAa;AACjB,iBAAS1J,KAAQ6I,EAAI;AACnB,UAAAa,KAAc,MAAM1J,IAAO,QAAQ6I,EAAI,WAAW7I,CAAI,KAAK,IAAI,QAAQ,MAAM,QAAQ,IAAI;AAE3F,eAAO,MAAM6I,EAAI,MAAM,aAAaA,EAAI,QAAQ,KAAK,GAAG,IAAI,MAAMa,IAAa,MAAMb,EAAI,UAAU,OAAOA,EAAI,MAAM;AAAA,MACtH;AACA,eAASc,EAAaC,GAASC,GAAKjI,GAAMkI,GAAY;AACpD,QAAAF,EAAQ,YAAYC;AACpB,YAAIE,IAAQH,EAAQ,KAAKhI,CAAI;AAC7B,YAAImI,KAASD,KAAcC,EAAM,CAAC,GAAG;AACnC,cAAIC,IAAmBD,EAAM,CAAC,EAAE;AAChC,UAAAA,EAAM,SAASC,GACfD,EAAM,CAAC,IAAIA,EAAM,CAAC,EAAE,MAAMC,CAAgB;AAAA,QAC5C;AACA,eAAOD;AAAA,MACT;AACA,eAASd,EAAarH,GAAMkH,GAAWZ,GAAS+B,GAAWC,GAAUC,GAAS;AAC5E,iBAAS/B,KAASF;AAChB,cAAI,GAACA,EAAQ,eAAeE,CAAK,KAAK,CAACF,EAAQE,CAAK,IAGpD;AAAA,gBAAIgC,IAAWlC,EAAQE,CAAK;AAC5B,YAAAgC,IAAW,MAAM,QAAQA,CAAQ,IAAIA,IAAW,CAACA,CAAQ;AACzD,qBAASC,IAAI,GAAGA,IAAID,EAAS,QAAQ,EAAEC,GAAG;AACxC,kBAAIF,KAAWA,EAAQ,SAAS/B,IAAQ,MAAMiC;AAC5C;AAEF,kBAAIC,IAAaF,EAASC,CAAC,GACvBvC,IAASwC,EAAW,QACpBR,IAAa,CAAC,CAACQ,EAAW,YAC1BC,IAAS,CAAC,CAACD,EAAW,QACtBhB,IAAQgB,EAAW;AACvB,kBAAIC,KAAU,CAACD,EAAW,QAAQ,QAAQ;AACxC,oBAAIE,IAAQF,EAAW,QAAQ,SAAQ,EAAG,MAAM,WAAW,EAAE,CAAC;AAC9D,gBAAAA,EAAW,UAAU,OAAOA,EAAW,QAAQ,QAAQE,IAAQ,GAAG;AAAA,cACpE;AAEA,uBADIZ,IAAUU,EAAW,WAAWA,GAC3BG,IAAcR,EAAU,MAAMJ,IAAMK,GAAUO,MAAgB3B,EAAU,QAC3E,EAAAqB,KAAWN,KAAOM,EAAQ,QADuDN,KAAOY,EAAY,MAAM,QAAQA,IAAcA,EAAY,MAAM;AAItJ,oBAAIC,IAAMD,EAAY;AACtB,oBAAI3B,EAAU,SAASlH,EAAK;AAC1B;AAEF,oBAAI,EAAA8I,aAAexD,IAGnB;AAAA,sBAAIyD,IAAc,GACdZ;AACJ,sBAAIQ,GAAQ;AAEV,wBADAR,IAAQJ,EAAaC,GAASC,GAAKjI,GAAMkI,CAAU,GAC/C,CAACC,KAASA,EAAM,SAASnI,EAAK;AAChC;AAEF,wBAAIwE,KAAO2D,EAAM,OACb5D,KAAK4D,EAAM,QAAQA,EAAM,CAAC,EAAE,QAC5B1M,IAAIwM;AAER,yBADAxM,KAAKoN,EAAY,MAAM,QAChBrE,MAAQ/I;AACb,sBAAAoN,IAAcA,EAAY,MAC1BpN,KAAKoN,EAAY,MAAM;AAIzB,wBAFApN,KAAKoN,EAAY,MAAM,QACvBZ,IAAMxM,GACFoN,EAAY,iBAAiBvD;AAC/B;AAEF,6BAASzJ,KAAIgN,GAAahN,OAAMqL,EAAU,SAASzL,IAAI8I,MAAM,OAAO1I,GAAE,SAAU,WAAWA,KAAIA,GAAE;AAC/F,sBAAAkN,KACAtN,KAAKI,GAAE,MAAM;AAEf,oBAAAkN,KACAD,IAAM9I,EAAK,MAAMiI,GAAKxM,CAAC,GACvB0M,EAAM,SAASF;AAAA,kBACjB,WACEE,IAAQJ,EAAaC,GAAS,GAAGc,GAAKZ,CAAU,GAC5C,CAACC;AACH;AAGJ,sBAAI3D,KAAO2D,EAAM,OACba,KAAWb,EAAM,CAAC,GAClBhC,KAAS2C,EAAI,MAAM,GAAGtE,EAAI,GAC1ByE,KAAQH,EAAI,MAAMtE,KAAOwE,GAAS,MAAM,GACxCE,KAAQjB,IAAMa,EAAI;AACtB,kBAAIP,KAAWW,KAAQX,EAAQ,UAC7BA,EAAQ,QAAQW;AAElB,sBAAIC,KAAaN,EAAY;AAC7B,kBAAI1C,OACFgD,KAAa/B,EAASF,GAAWiC,IAAYhD,EAAM,GACnD8B,KAAO9B,GAAO,SAEhBiD,EAAYlC,GAAWiC,IAAYJ,CAAW;AAC9C,sBAAIM,KAAU,IAAI/D,EAAMkB,GAAON,IAASf,EAAE,SAAS6D,IAAU9C,CAAM,IAAI8C,IAAUtB,GAAOsB,EAAQ;AAKhG,sBAJAH,IAAczB,EAASF,GAAWiC,IAAYE,EAAO,GACjDJ,MACF7B,EAASF,GAAW2B,GAAaI,EAAK,GAEpCF,IAAc,GAAG;AACnB,wBAAIO,KAAgB;AAAA,sBAClB,OAAO9C,IAAQ,MAAMiC;AAAA,sBACrB,OAAAS;AAAA,oBAClB;AACgB,oBAAA7B,EAAarH,GAAMkH,GAAWZ,GAASuC,EAAY,MAAMZ,GAAKqB,EAAa,GACvEf,KAAWe,GAAc,QAAQf,EAAQ,UAC3CA,EAAQ,QAAQe,GAAc;AAAA,kBAElC;AAAA;AAAA,cACF;AAAA,YACF;AAAA;AAAA,MAEJ;AACA,eAASnC,IAAa;AACpB,YAAIoC,IAAO,EAAE,OAAO,MAAM,MAAM,MAAM,MAAM,KAAI,GAC5CC,IAAO,EAAE,OAAO,MAAM,MAAMD,GAAM,MAAM,KAAI;AAChD,QAAAA,EAAK,OAAOC,GACZ,KAAK,OAAOD,GACZ,KAAK,OAAOC,GACZ,KAAK,SAAS;AAAA,MAChB;AACA,eAASpC,EAASqC,GAAMC,GAAMpK,GAAO;AACnC,YAAIqK,IAAOD,EAAK,MACZE,IAAU,EAAE,OAAAtK,GAAO,MAAMoK,GAAM,MAAAC,EAAI;AACvC,eAAAD,EAAK,OAAOE,GACZD,EAAK,OAAOC,GACZH,EAAK,UACEG;AAAA,MACT;AACA,eAASR,EAAYK,GAAMC,GAAMnJ,GAAO;AAEtC,iBADIoJ,IAAOD,EAAK,MACPnO,IAAI,GAAGA,IAAIgF,KAASoJ,MAASF,EAAK,MAAMlO;AAC/C,UAAAoO,IAAOA,EAAK;AAEd,QAAAD,EAAK,OAAOC,GACZA,EAAK,OAAOD,GACZD,EAAK,UAAUlO;AAAA,MACjB;AACA,eAAS+L,EAAQmC,GAAM;AAGrB,iBAFII,IAAQ,CAAA,GACRH,IAAOD,EAAK,KAAK,MACdC,MAASD,EAAK;AACnB,UAAAI,EAAM,KAAKH,EAAK,KAAK,GACrBA,IAAOA,EAAK;AAEd,eAAOG;AAAA,MACT;AACA,aAAO1E;AAAA,IACT,EAAC;AACD,IAAAL,EAAO,UAAUC,GACjBA,EAAO,UAAUA;AAAA,EACnB;AACF,CAAC,GAGG+E,IAAQpF,GAAQE,IAAe;AACnCkF,EAAM,UAAU,SAAS,EAAE,SAAS,EAAE,SAAS,+BAA+B,QAAQ,GAAI,GAAI,QAAQ,EAAE,SAAS,kBAAkB,QAAQ,GAAI,GAAI,SAAS,EAAE,SAAS,wHAAwH,QAAQ,IAAM,QAAQ,EAAE,mBAAmB,EAAE,SAAS,8BAA8B,YAAY,IAAM,QAAQ,IAAM,QAAQ,KAAI,GAAI,QAAQ,EAAE,SAAS,mBAAmB,QAAQ,GAAI,GAAI,aAAa,gBAAgB,eAAe,aAAa,MAAM,aAAY,EAAE,GAAI,OAAO,EAAE,SAAS,6BAA6B,QAAQ,GAAI,GAAI,KAAK,EAAE,SAAS,wHAAwH,QAAQ,IAAM,QAAQ,EAAE,KAAK,EAAE,SAAS,kBAAkB,QAAQ,EAAE,aAAa,SAAS,WAAW,eAAc,EAAE,GAAI,gBAAgB,CAAA,GAAI,cAAc,EAAE,SAAS,sCAAsC,QAAQ,EAAE,aAAa,CAAC,EAAE,SAAS,MAAM,OAAO,cAAa,GAAI,EAAE,SAAS,oBAAoB,YAAY,GAAI,CAAE,EAAC,EAAE,GAAI,aAAa,QAAQ,aAAa,EAAE,SAAS,aAAa,QAAQ,EAAE,WAAW,eAAc,EAAE,EAAE,EAAE,GAAI,QAAQ,CAAC,EAAE,SAAS,mBAAmB,OAAO,eAAc,GAAI,oBAAoB,EAAC,GAAIA,EAAM,UAAU,OAAO,IAAI,OAAO,YAAY,EAAE,OAAO,SAASA,EAAM,UAAU,OAAO,QAAQA,EAAM,UAAU,OAAO,QAAQ,OAAO,iBAAiB,EAAE,SAASA,EAAM,UAAU,QAAQA,EAAM,MAAM,IAAI,QAAQ,SAAS,GAAG;AACj9C,EAAa,EAAE,SAAf,aAAwB,EAAE,WAAW,QAAQ,EAAE,QAAQ,QAAQ,SAAS,GAAG;AAC7E,CAAC,GAAG,OAAO,eAAeA,EAAM,UAAU,OAAO,KAAK,cAAc,EAAE,OAAO,SAAS,GAAGtO,GAAG;AAC1F,MAAI,IAAI,CAAA,GAAI,KAAK,EAAE,cAAcA,CAAC,IAAI,EAAE,SAAS,qCAAqC,YAAY,IAAM,QAAQsO,EAAM,UAAUtO,CAAC,EAAC,GAAI,EAAE,QAAQ,wBAAwB,EAAE,kBAAkB,EAAE,SAAS,6BAA6B,QAAQ,EAAC,MAAOA,KAAK,EAAE,cAAcA,CAAC,IAAI,EAAE,SAAS,WAAW,QAAQsO,EAAM,UAAUtO,CAAC,EAAC,GAAI;AAClU,EAAAA,EAAE,CAAC,IAAI,EAAE,SAAS,OAAO,wFAAwF,OAAO,QAAQ,OAAO,WAAW;AAChJ,WAAO;AAAA,EACT,CAAC,GAAG,GAAG,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAC,GAAIsO,EAAM,UAAU,aAAa,UAAU,SAAStO,CAAC;AAC1G,EAAC,CAAE,GAAG,OAAO,eAAesO,EAAM,UAAU,OAAO,KAAK,gBAAgB,EAAE,OAAO,SAAS,GAAG,GAAG;AAC9F,EAAAA,EAAM,UAAU,OAAO,IAAI,OAAO,cAAc,EAAE,KAAK,EAAE,SAAS,OAAO,aAAa,SAAS,QAAQ,IAAI,MAAM,iDAAiD,QAAQ,GAAG,GAAG,YAAY,IAAM,QAAQ,EAAE,aAAa,YAAY,cAAc,EAAE,SAAS,YAAY,QAAQ,EAAE,OAAO,EAAE,SAAS,0CAA0C,YAAY,IAAM,OAAO,CAAC,GAAG,cAAc,CAAC,GAAG,QAAQA,EAAM,UAAU,CAAC,EAAC,GAAI,aAAa,CAAC,EAAE,SAAS,MAAM,OAAO,cAAa,GAAI,KAAK,EAAC,EAAE,EAAE,EAAE,CAAE;AACpe,EAAC,CAAE,GAAGA,EAAM,UAAU,OAAOA,EAAM,UAAU,QAAQA,EAAM,UAAU,SAASA,EAAM,UAAU,QAAQA,EAAM,UAAU,MAAMA,EAAM,UAAU,QAAQA,EAAM,UAAU,MAAMA,EAAM,UAAU,OAAO,UAAU,EAAE,GAAGA,EAAM,UAAU,OAAOA,EAAM,UAAU,KAAKA,EAAM,UAAU,OAAOA,EAAM,UAAU,KAAKA,EAAM,UAAU,MAAMA,EAAM,UAAU,KAAK,SAAS,GAAG;AAC7V,MAAI,IAAI,EAAE,SAAS,wBAAwB,OAAO,SAAQ,GAAI,IAAI,8FAA8F,IAAI,iBAAiB,EAAE,SAAS,KAAK,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,SAAS,yBAAyB,YAAY,IAAM,OAAO,WAAU;AACzS,IAAE,UAAU,QAAQ,EAAE,cAAc,EAAE,SAAS,mDAAmD,YAAY,IAAM,QAAQ,EAAE,uBAAuB,EAAE,SAAS,WAAW,YAAY,IAAM,OAAO,WAAU,GAAI,0BAA0B,EAAE,SAAS,WAAW,OAAO,cAAa,GAAI,OAAO,EAAE,SAAS,GAAG,QAAQ,EAAE,QAAQ,GAAG,qBAAqB,EAAE,SAAS,KAAK,OAAO,WAAU,IAAI,GAAI,kBAAkB,GAAG,YAAY,EAAE,SAAS,0BAA0B,OAAO,aAAY,GAAI,QAAQ,EAAC,EAAE,GAAI,kBAAkB,GAAG,YAAY,EAAE,SAAS,6BAA6B,OAAO,aAAY,GAAI,eAAe,CAAC,EAAE,SAAS,4BAA4B,OAAO,UAAS,GAAI,EAAE,SAAS,gBAAgB,OAAO,WAAW,QAAQ,EAAE,cAAc,IAAG,CAAE,GAAG,QAAQ,EAAE,SAAS,mBAAmB,OAAO,cAAc,QAAQ,GAAG,OAAO,CAAC,EAAE,SAAS,+EAA+E,OAAO,eAAe,QAAQ,EAAE,cAAc,EAAC,EAAE,GAAI,EAAE,SAAS,MAAM,OAAO,eAAe,GAAG,YAAY,EAAE,SAAS,mCAAmC,OAAO,SAAQ,GAAI,aAAa,EAAE,SAAS,MAAM,OAAO,UAAS,EAAE;AAC5mC,EAAEA,CAAK,GAAGA,EAAM,UAAU,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,mCAAmC,YAAY,IAAM,QAAQ,GAAI,GAAI,EAAE,SAAS,oBAAoB,YAAY,IAAM,QAAQ,IAAM,GAAG,QAAQ,EAAE,SAAS,kDAAkD,QAAQ,GAAI,GAAI,cAAc,EAAE,SAAS,4FAA4F,YAAY,IAAM,QAAQ,EAAE,aAAa,QAAO,EAAE,GAAI,SAAS,8GAA8G,SAAS,sBAAsB,UAAU,eAAe,QAAQ,6DAA6D,UAAU,gDAAgD,aAAa,gBAAe,GAAIA,EAAM,UAAU,aAAaA,EAAM,UAAU,OAAO,SAAS,EAAE,cAAc,CAACA,EAAM,UAAU,MAAM,YAAY,GAAG,EAAE,SAAS,2GAA2G,YAAY,GAAI,CAAE,GAAG,SAAS,CAAC,EAAE,SAAS,wBAAwB,YAAY,GAAI,GAAI,EAAE,SAAS,odAAod,YAAY,IAAM,GAAG,UAAU,qGAAqG,QAAQ,EAAE,SAAS,OAAO,aAAa,SAAS,QAAQ,eAAe,SAAS,MAAM,0BAA0B,SAAS,MAAM,4BAA4B,SAAS,MAAM,sCAAsC,SAAS,MAAM,gBAAgB,SAAS,MAAM,oFAAoF,SAAS,MAAM,YAAY,MAAM,GAAG,YAAY,GAAI,GAAI,UAAU,4FAA2F,CAAE,GAAGA,EAAM,UAAU,WAAW,YAAY,EAAE,CAAC,EAAE,UAAU,wEAAwEA,EAAM,UAAU,aAAa,cAAc,WAAW,EAAE,OAAO,EAAE,SAAS,OAAO,0DAA0D,SAAS,KAAK,SAAS,QAAQ,iEAAiE,SAAS,MAAM,qIAAqI,SAAS,MAAM,kEAAkE,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,gBAAgB,EAAE,SAAS,6BAA6B,YAAY,IAAM,OAAO,kBAAkB,QAAQA,EAAM,UAAU,SAAS,mBAAmB,WAAW,eAAe,aAAY,GAAI,qBAAqB,EAAE,SAAS,iMAAiM,OAAO,WAAU,GAAI,WAAW,CAAC,EAAE,SAAS,uIAAuI,YAAY,IAAM,QAAQA,EAAM,UAAU,cAAc,EAAE,SAAS,sFAAsF,YAAY,IAAM,QAAQA,EAAM,UAAU,WAAU,GAAI,EAAE,SAAS,mEAAmE,YAAY,IAAM,QAAQA,EAAM,UAAU,WAAU,GAAI,EAAE,SAAS,+eAA+e,YAAY,IAAM,QAAQA,EAAM,UAAU,YAAY,GAAG,UAAU,6BAA6B,GAAGA,EAAM,UAAU,aAAa,cAAc,UAAU,EAAE,UAAU,EAAE,SAAS,SAAS,QAAQ,IAAM,OAAO,aAAa,mBAAmB,EAAE,SAAS,4EAA4E,QAAQ,IAAM,QAAQ,EAAE,wBAAwB,EAAE,SAAS,SAAS,OAAO,SAAQ,GAAI,eAAe,EAAE,SAAS,oEAAoE,YAAY,IAAM,QAAQ,EAAE,6BAA6B,EAAE,SAAS,aAAa,OAAO,cAAa,GAAI,MAAMA,EAAM,UAAU,WAAU,EAAE,GAAI,QAAQ,UAAS,KAAM,mBAAmB,EAAE,SAAS,6EAA6E,YAAY,IAAM,QAAQ,IAAM,OAAO,WAAU,EAAE,CAAE,GAAGA,EAAM,UAAU,aAAa,cAAc,YAAY,EAAE,oBAAoB,EAAE,SAAS,qFAAqF,YAAY,IAAM,OAAO,WAAU,EAAE,CAAE,GAAGA,EAAM,UAAU,WAAWA,EAAM,UAAU,OAAO,IAAI,WAAW,UAAU,YAAY,GAAGA,EAAM,UAAU,OAAO,IAAI,aAAa,yNAAyN,QAAQ,YAAY,IAAIA,EAAM,UAAU,KAAKA,EAAM,UAAU,YAAYA,EAAM,UAAU,eAAeA,EAAM,UAAU,OAAO,cAAc,EAAE,SAAS,wUAAwU,UAAU,6DAA6D,GAAGA,EAAM,UAAU,aAAa,YAAY,EAAE,QAAQ,YAAY,OAAOA,EAAM,UAAU,aAAa,WAAW,OAAOA,EAAM,UAAU,aAAa,kBAAkB,GAAGA,EAAM,UAAU,UAAUA,EAAM,UAAU,aAAa,gBAAgB,UAAU,EAAE,KAAK,EAAE,SAAS,6EAA6E,YAAY,IAAM,QAAQA,EAAM,UAAU,OAAM,EAAE,CAAE,GAAG,SAAS,GAAG;AACjgN,MAAI,IAAI,aAAa,IAAI,EAAE,SAAS,cAAc,OAAO,WAAU;AACnE,IAAE,UAAU,eAAe,EAAE,UAAU,OAAO,cAAc,EAAE,SAAS,GAAG,QAAQ,CAAC,EAAE,SAAS,0BAA0B,QAAQ,GAAI,GAAI,EAAE,SAAS,0BAA0B,QAAQ,IAAM,QAAQ,EAAE,eAAe,EAAC,EAAE,CAAE,GAAG,SAAS,oSAAoS,gBAAgB,EAAE,SAAS,cAAc,OAAO,WAAU,EAAE,CAAE,GAAG,EAAE,UAAU,aAAa,gBAAgB,WAAW,EAAE,qBAAqB,EAAE,SAAS,kBAAkB,OAAO,UAAS,GAAI,eAAe,EAAE,SAAS,sBAAsB,OAAO,SAAS,QAAQ,EAAE,SAAS,GAAG,eAAe,EAAC,EAAE,EAAE,CAAE,GAAG,EAAE,UAAU,aAAa,gBAAgB,UAAU,EAAE,qBAAqB,EAAE,SAAS,0BAA0B,QAAQ,EAAE,WAAW,EAAE,SAAS,SAAS,OAAO,cAAa,GAAI,QAAQ,EAAE,SAAS,WAAW,OAAO,uBAAuB,QAAQ,EAAE,UAAU,WAAU,EAAE,EAAE,GAAI,oBAAoB,CAAC,EAAE,SAAS,kBAAkB,QAAQ,IAAM,OAAO,SAAQ,GAAI,EAAE,SAAS,kBAAkB,QAAQ,IAAM,OAAO,UAAU,QAAQ,EAAE,eAAe,EAAC,EAAE,CAAE,EAAC,CAAE,GAAG,EAAE,UAAU,aAAa,gBAAgB,WAAW,EAAE,UAAU,yBAAwB,CAAE,GAAG,OAAO,EAAE,UAAU,aAAa,iBAAiB,GAAG,EAAE,UAAU,SAAS,EAAE,UAAU;AAC96C,EAAEA,CAAK,GAAG,SAASC,GAAG;AACpB,MAAIzN,IAAIyN,EAAE,UAAU,cAAc,EAAE,WAAW,EAAE,SAAS,kEAAkE,YAAY,MAAQ,SAAS,EAAE,SAAS,yDAAyD,YAAY,GAAI,GAAI,aAAa,OAAM;AACpQ,SAAO,eAAezN,GAAG,cAAc,EAAE,OAAO,SAAS0N,GAAIrO,GAAG;AAC9D,KAACqO,IAAiB,OAAOA,KAAnB,WAAwB,CAACA,CAAE,IAAIA,GAAI,QAAQ,SAASC,GAAI;AAC5D,UAAIzO,IAAI,SAAS0O,GAAI;AACnB,QAAAA,EAAG,WAAWA,EAAG,SAAS,CAAA,IAAKA,EAAG,OAAO,OAAOvO;AAAA,MAClD,GAAGN,IAAI;AACP,UAAIqI,IAAIqG,EAAE,UAAUE,CAAE,GAAG;AACvB,YAAIvG,GAAGyG,IAAIzG,EAAErI,CAAC;AACd,aAAK8O,IAAIA,MAASzG,IAAIqG,EAAE,UAAU,aAAaE,GAAI,WAAW,EAAE,eAAe,EAAE,SAAS,yCAAyC,YAAY,IAAM,OAAO,UAAS,EAAE,CAAE,GAAG5O,CAAC,cAAc,WAAW8O,IAAIzG,EAAErI,CAAC,IAAI,EAAE,SAAS8O,EAAC,IAAK,MAAM,QAAQA,CAAC;AAC/O,mBAAS7O,IAAI,GAAGC,IAAI4O,EAAE,QAAQ7O,IAAIC,GAAGD;AACnC,YAAA6O,EAAE7O,CAAC,aAAa,WAAW6O,EAAE7O,CAAC,IAAI,EAAE,SAAS6O,EAAE7O,CAAC,EAAC,IAAKE,EAAE2O,EAAE7O,CAAC,CAAC;AAAA;AAE9D,UAAAE,EAAE2O,CAAC;AAAA,MACP;AAAA,IACF,CAAC;AAAA,EACH,EAAC,CAAE,GAAG7N,EAAE,WAAW,CAAC,QAAQ,cAAc,KAAK,GAAGA,CAAC;AACrD,EAAEwN,CAAK,GAAG,SAAS,GAAG;AACpB,MAAI,IAAI,+EAA+E,KAAK,EAAE,UAAU,MAAM,EAAE,SAAS,oBAAoB,QAAQ,EAAE,SAAS,OAAO,eAAe,sBAAsB,SAAS,MAAM,EAAE,SAAS,QAAQ,kBAAkB,MAAM,GAAG,QAAQ,EAAE,MAAM,YAAY,8BAA8B,EAAE,SAAS,6FAA6F,YAAY,IAAM,OAAO,WAAU,GAAI,SAAS,EAAE,SAAS,0CAA0C,YAAY,GAAI,EAAE,EAAE,GAAI,KAAK,EAAE,SAAS,OAAO,iBAAiB,EAAE,SAAS,MAAM,8BAA8B,SAAS,QAAQ,GAAG,GAAG,QAAQ,IAAM,QAAQ,EAAE,UAAU,SAAS,aAAa,WAAW,QAAQ,EAAE,SAAS,OAAO,MAAM,EAAE,SAAS,GAAG,GAAG,OAAO,MAAK,EAAE,EAAE,GAAI,UAAU,EAAE,SAAS,OAAO,sDAAsD,EAAE,SAAS,eAAe,GAAG,YAAY,GAAI,GAAI,QAAQ,EAAE,SAAS,GAAG,QAAQ,MAAQ,UAAU,EAAE,SAAS,qFAAqF,YAAY,GAAI,GAAI,WAAW,iBAAiB,UAAU,EAAE,SAAS,mCAAmC,YAAY,GAAI,GAAI,aAAa,YAAW,GAAI,EAAE,UAAU,IAAI,OAAO,OAAO,OAAO,EAAE,UAAU,KAAK,EAAE,UAAU;AAC3wC,QAAM,EAAE,IAAI,WAAW,SAAS,KAAK,GAAG,EAAE,IAAI,aAAa,SAAS,KAAK;AAC3E,EAAEA,CAAK,GAAG,SAAS,GAAG;AACpB,MAAI,IAAI,iDAAiD,KAAK,EAAE,UAAU,IAAI,WAAW,EAAE,SAAS,EAAE,UAAU,IAAI,SAAS,SAAS,YAAY,IAAM,QAAQ,IAAI,EAAE,kBAAkB,gEAAgE,gBAAgB,WAAW,OAAO,YAAY,IAAI,WAAW,WAAW,EAAE,SAAS,OAAO,qBAAqB,EAAE,SAAS,OAAO,GAAG,QAAQ,IAAM,QAAQ,EAAE,aAAa,WAAW,oBAAoB,EAAE,SAAS,cAAc,YAAY,IAAM,OAAO,UAAS,GAAI,WAAW,EAAE,SAAS,6CAA6C,YAAY,IAAM,QAAQ,EAAE,aAAa,MAAK,EAAE,GAAI,aAAa,EAAE,SAAS,qCAAqC,YAAY,GAAI,GAAI,cAAc,CAAC,GAAG,EAAE,SAAS,6CAA6C,YAAY,GAAI,CAAE,GAAG,UAAU,YAAW,EAAE,GAAI,QAAQ,CAAC,EAAE,SAAS,mDAAmD,YAAY,IAAM,QAAQ,EAAE,QAAQ,UAAU,UAAU,OAAM,EAAE,GAAI,EAAE,SAAS,iCAAiC,YAAY,GAAI,CAAE,GAAG,YAAY,eAAe,aAAa,QAAO,EAAE,GAAI,EAAE,UAAU,IAAI,OAAO,OAAO,4BAA4B,EAAE,SAAS,GAAG,EAAE,UAAU,aAAa,OAAO,YAAY,EAAE,UAAU,EAAE,SAAS,+EAA+E,YAAY,GAAI,EAAE,CAAE,GAAG,EAAE,SAAS,gCAAgC,YAAY,GAAI,IAAK,IAAI,EAAE,SAAS,wCAAwC,YAAY,GAAI;AAC17C,IAAE,UAAU,aAAa,OAAO,YAAY,EAAE,UAAU,EAAE,SAAS,sBAAsB,YAAY,GAAI,GAAI,SAAS,EAAE,SAAS,sBAAsB,OAAO,QAAO,GAAI,OAAO,CAAC,EAAE,SAAS,m7CAAm7C,YAAY,GAAI,GAAI,EAAE,SAAS,6JAA6J,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,gBAAgB,aAAa,UAAS,CAAE,GAAG,QAAQ,mBAAmB,MAAM,GAAG,QAAQ,GAAG;AAC/6D,EAAEA,CAAK,GAAG,SAAS,GAAG;AACpB,MAAI,IAAI,oBAAoB,IAAI,oFAAoF,IAAI,QAAQ,EAAE,SAAS,aAAa,EAAE,SAAS,QAAQ,EAAE,SAAS,aAAa,EAAE,SAAS,OAAO,IAAI,kJAAkJ,OAAO,QAAQ,YAAY,WAAW;AAC/Y,WAAO,2EAA2E;AAAA,EACpF,CAAC,GAAGxO,IAAI,8CAA8C;AACtD,WAAS,EAAE0O,GAAII,GAAI;AACjB,IAAAA,KAAMA,KAAM,IAAI,QAAQ,MAAM,EAAE,IAAI;AACpC,QAAIC,IAAK,yFAAyF,OAAO,QAAQ,aAAa,WAAW;AACvI,aAAO;AAAA,IACT,CAAC,EAAE,QAAQ,cAAc,WAAW;AAClC,aAAOL;AAAA,IACT,CAAC;AACD,WAAO,OAAOK,GAAID,CAAE;AAAA,EACtB;AACA,IAAE,UAAU,OAAO,EAAE,QAAQ,EAAE,SAAS,OAAO,6FAA6F,OAAO,QAAQ,aAAa,WAAW;AACjL,WAAO;AAAA,EACT,CAAC,CAAC,GAAG,YAAY,IAAM,OAAO,SAAQ,GAAI,SAAS,OAAO,KAAK,EAAE,SAAS,OAAO,kEAAkE,OAAO,QAAQ,aAAa,WAAW;AACxL,WAAO;AAAA,EACT,CAAC,EAAE,QAAQ,YAAY,WAAW;AAChC,WAAO,QAAQ,IAAI,MAAM9O,IAAI;AAAA,EAC/B,CAAC,CAAC,GAAG,YAAY,IAAM,QAAQ,IAAM,OAAO,YAAY,WAAW,EAAE,SAAS,iBAAiB,YAAY,IAAM,OAAO,YAAW,GAAI,UAAU,EAAE,SAAS,EAAE,sJAAsJ,MAAM,GAAG,YAAY,IAAM,OAAO,SAAQ,GAAI,SAAS,EAAE,SAAS,EAAE,aAAa,QAAQ,GAAG,GAAG,YAAY,IAAM,OAAO,YAAW,GAAI,MAAM,EAAE,SAAS,EAAE,SAAS,QAAQ,GAAG,GAAG,YAAY,IAAM,OAAO,YAAW,GAAI,QAAQ,EAAE,SAAS,EAAEA,CAAC,GAAG,YAAY,IAAM,QAAQ,GAAI,GAAI,QAAQ,EAAE,SAAS,EAAE,iFAAiF,QAAQ,GAAG,GAAG,YAAY,MAAQ,KAAK,GAAG,WAAW,GAAG,aAAa,+BAA+B,EAAE,UAAU,MAAM,EAAE,UAAU;AAClzB,EAAEwO,CAAK,GAAG,SAASnO,GAAG;AACpB,MAAI,IAAI,2CAA2C;AACnD,WAASW,EAAE0N,GAAI;AACb,WAAOA,IAAKA,EAAG,QAAQ,YAAY,WAAW;AAC5C,aAAO;AAAA,IACT,CAAC,GAAG,OAAO,0BAA0B,SAAS,QAAQA,IAAK,GAAG;AAAA,EAChE;AACA,MAAI3O,IAAI,4DAA4D,QAAQqI,IAAI,+CAA+C,OAAO,QAAQ,OAAO,WAAW;AAC9J,WAAOrI;AAAA,EACT,CAAC,GAAG8O,IAAI,sEAAsE,QAAQJ,KAAKpO,EAAE,UAAU,WAAWA,EAAE,UAAU,OAAO,UAAU,CAAA,CAAE,GAAGA,EAAE,UAAU,aAAa,YAAY,UAAU,EAAE,sBAAsB,EAAE,SAAS,mDAAmD,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,aAAa,aAAa,gBAAgB,EAAE,SAAS,kBAAkB,OAAO,CAAC,QAAQ,eAAe,GAAG,QAAQA,EAAE,UAAU,KAAI,EAAE,KAAM,YAAY,EAAE,SAAS,mBAAmB,OAAO,cAAa,GAAI,OAAO,EAAE,SAAS,OAAO,MAAM+H,IAAIyG,IAAI,QAAQzG,IAAI,MAAM,GAAG,GAAG,QAAQ,EAAE,mBAAmB,EAAE,SAAS,OAAO,OAAOA,IAAIyG,IAAI,SAASzG,IAAI,KAAK,GAAG,YAAY,IAAM,QAAQ,EAAE,cAAc,EAAE,SAAS,OAAOrI,CAAC,GAAG,QAAQM,EAAE,UAAU,SAAQ,GAAI,aAAa,KAAI,EAAE,GAAI,cAAc,EAAE,SAAS,OAAO,OAAO+H,IAAI,MAAMyG,IAAI,GAAG,GAAG,YAAY,IAAM,QAAQ,EAAE,aAAa,eAAc,EAAE,GAAI,oBAAoB,EAAE,SAAS,OAAO,MAAMzG,IAAI,GAAG,GAAG,QAAQ,EAAE,gBAAgB,EAAE,SAAS,OAAOrI,CAAC,GAAG,OAAO,aAAa,QAAQM,EAAE,UAAU,SAAQ,GAAI,aAAa,KAAI,EAAE,IAAI,GAAI,MAAM,CAAC,EAAE,SAAS,wFAAwF,YAAY,IAAM,OAAO,aAAa,EAAE,SAAS,sBAAsB,QAAQ,IAAM,QAAQ,EAAE,cAAc,EAAE,SAAS,sDAAsD,YAAY,GAAI,GAAI,iBAAiB,EAAE,SAAS,YAAY,YAAY,GAAI,GAAI,aAAa,MAAK,EAAE,CAAE,GAAG,OAAO,CAAC,EAAE,SAAS,2CAA2C,OAAO,aAAa,QAAQ,EAAE,aAAa,YAAW,EAAE,GAAI,EAAE,SAAS,cAAc,YAAY,IAAM,OAAO,aAAa,QAAQ,EAAE,aAAa,UAAS,GAAI,GAAG,IAAI,EAAE,SAAS,yCAAyC,YAAY,IAAM,OAAO,cAAa,GAAI,MAAM,EAAE,SAAS,oCAAoC,YAAY,IAAM,OAAO,cAAa,GAAI,iBAAiB,EAAE,SAAS,sHAAsH,QAAQ,EAAE,UAAU,EAAE,SAAS,iBAAiB,YAAY,GAAI,GAAI,QAAQ,gEAAgE,aAAa,iBAAgB,GAAI,OAAO,MAAK,GAAI,MAAM,EAAE,SAASW,EAAE,kGAAkG,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,SAAS,EAAE,SAAS,uBAAuB,YAAY,IAAM,QAAQ,CAAA,KAAM,aAAa,UAAS,EAAE,GAAI,QAAQ,EAAE,SAASA,EAAE,kGAAkG,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,SAAS,EAAE,SAAS,qBAAqB,YAAY,IAAM,QAAQ,CAAA,EAAE,GAAI,aAAa,OAAM,KAAM,QAAQ,EAAE,SAASA,EAAE,2BAA2B,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,SAAS,EAAE,SAAS,wBAAwB,YAAY,IAAM,QAAQ,GAAE,GAAI,aAAa,MAAK,EAAE,GAAI,gBAAgB,EAAE,SAAS,oEAAoE,YAAY,IAAM,QAAQ,IAAM,OAAO,CAAC,QAAQ,SAAS,EAAC,GAAI,KAAK,EAAE,SAASA,EAAE,mGAAmG,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,UAAU,MAAM,SAAS,EAAE,SAAS,qBAAqB,YAAY,IAAM,QAAQ,CAAA,EAAE,GAAI,UAAU,EAAE,SAAS,8BAA8B,YAAY,MAAQ,KAAK,EAAE,SAAS,kBAAkB,YAAY,GAAI,GAAI,QAAQ,EAAE,SAAS,qCAAqC,YAAY,GAAI,EAAE,IAAI,CAAE,GAAG,CAAC,OAAO,QAAQ,UAAU,QAAQ,EAAE,QAAQ,SAAS8N,GAAI;AAC5jH,KAAC,OAAO,QAAQ,UAAU,UAAU,cAAc,EAAE,QAAQ,SAASJ,GAAI;AACvE,MAAAI,MAAOJ,MAAOrO,EAAE,UAAU,SAASyO,CAAE,EAAE,OAAO,QAAQ,OAAOJ,CAAE,IAAIrO,EAAE,UAAU,SAASqO,CAAE;AAAA,IAC5F,CAAC;AAAA,EACH,CAAC,GAAGrO,EAAE,MAAM,IAAI,kBAAkB,SAASqO,GAAI;AAC7C,IAAeA,EAAG,aAAlB,cAAuCA,EAAG,aAAZ,QAAyB,SAASC,EAAGG,GAAI;AACrE,UAAIA,KAAkB,OAAOA,KAAnB;AACR,iBAASC,IAAK,GAAGC,IAAKF,EAAG,QAAQC,IAAKC,GAAID,KAAM;AAC9C,cAAIE,GAAIjP,IAAI8O,EAAGC,CAAE;AACjB,UAAW/O,EAAE,SAAb,SAAoB2O,EAAG3O,EAAE,OAAO,KAAKiP,IAAKjP,EAAE,QAAQ,CAAC,GAAGA,IAAIA,EAAE,QAAQ,CAAC,GAAGiP,KAAMjP,KAAyBiP,EAAG,SAAvB,mBAAgDjP,EAAE,SAAnB,gBAAuC,OAAOiP,EAAG,WAAtB,aAAkCA,IAAKA,EAAG,QAAQ,QAAQ,QAAQ,OAAO,EAAE,QAAQ,WAAW,IAAI,GAAGA,IAAK,eAAeA,KAAM,eAAe,KAAKA,CAAE,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,YAAW,IAAKjP,EAAE,QAAoB,OAAOA,EAAE,SAArB,WAA6BA,EAAE,QAAQ,CAACA,EAAE,OAAOiP,CAAE,IAAIjP,EAAE,MAAM,KAAKiP,CAAE,IAAIjP,EAAE,QAAQ,CAACiP,CAAE;AAAA,QACra;AAAA,IACJ,EAAEP,EAAG,MAAM;AAAA,EACb,CAAC,GAAGrO,EAAE,MAAM,IAAI,QAAQ,SAASqO,GAAI;AACnC,QAAqBA,EAAG,SAApB,cAA0B;AAC5B,eAASI,IAAK,IAAIC,IAAK,GAAGC,IAAKN,EAAG,QAAQ,QAAQK,IAAKC,GAAID,KAAM;AAC/D,YAAIE,IAAKP,EAAG,QAAQK,CAAE,GAAGE,IAAK,gBAAgB,KAAKA,CAAE;AACrD,YAAIA,GAAI;AACN,UAAAH,IAAKG,EAAG,CAAC;AACT;AAAA,QACF;AAAA,MACF;AACA,UAAIjP,GAAGC,IAAII,EAAE,UAAUyO,CAAE;AACzB,MAAA7O,IAAIyO,EAAG,UAAUrO,EAAE,UAAU,SAASsO,GAAI;AACxC,eAAAA,IAAKA,EAAG,QAAQF,GAAG,EAAE,GACdE,IAAKA,EAAG,QAAQ,iCAAiC,SAASC,GAAIM,GAAI;AACvE,cAAIC;AACJ,kBAAgBD,IAAKA,EAAG,YAAW,GAAI,CAAC,MAAjC,OAAsCC,IAAaD,EAAG,CAAC,MAAZ,MAAgB,SAASA,EAAG,MAAM,CAAC,GAAG,EAAE,IAAI,OAAOA,EAAG,MAAM,CAAC,CAAC,GAAG9H,EAAE+H,CAAE,KAAKC,EAAEF,CAAE,KAAKN;AAAA,QACvI,CAAC;AAAA,MACH,EAAEF,EAAG,OAAO,GAAGzO,GAAG6O,CAAE,IAAIA,KAAiBA,MAAX,UAAiBzO,EAAE,QAAQ,eAAeL,IAAI,SAAyB,oBAAI,QAAQ,QAAO,IAAK,MAAM,KAAK,MAAM,OAAO,KAAK,OAAM,CAAE,GAAG0O,EAAG,WAAW,KAAK1O,GAAGK,EAAE,QAAQ,WAAW,cAAcyO,GAAI,WAAW;AAC3O,YAAIH,IAAK,SAAS,eAAe3O,CAAC;AAClC,QAAA2O,MAAOA,EAAG,YAAYtO,EAAE,UAAUsO,EAAG,aAAatO,EAAE,UAAUyO,CAAE,GAAGA,CAAE;AAAA,MACvE,CAAC;AAAA,IACH;AAAA,EACF,CAAC,GAAG,OAAOzO,EAAE,UAAU,OAAO,IAAI,QAAQ,QAAQ,IAAI,IAAI+O,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,IAAG,GAAIhI,IAAI,OAAO,iBAAiB,OAAO;AAC5I,EAAA/G,EAAE,UAAU,KAAKA,EAAE,UAAU;AAC/B,EAAEmO,CAAK,GAAGA,EAAM,UAAU,UAAU,EAAE,SAAS,OAAO,aAAa,EAAE,SAAS,oEAAoE,QAAQ,IAAM,OAAO,UAAU,QAAQ,EAAE,qBAAqB,EAAE,SAAS,mCAAmC,YAAY,IAAM,QAAQA,EAAM,UAAU,SAAQ,EAAE,KAAM,QAAQ,EAAE,SAAS,kDAAkD,QAAQ,GAAI,GAAI,QAAQ,4CAA4C,SAAS,sBAAsB,UAAU,gBAAgB,WAAW,EAAE,SAAS,eAAe,OAAO,WAAU,GAAI,aAAa,EAAE,SAAS,kEAAkE,QAAQ,GAAI,GAAI,cAAc,EAAE,SAAS,qBAAqB,OAAO,aAAY,GAAI,QAAQ,uCAAuC,UAAU,sBAAsB,cAAc,EAAE,SAAS,mFAAmF,YAAY,GAAI,GAAI,UAAU,EAAE,SAAS,gDAAgD,YAAY,IAAM,OAAO,WAAU,GAAI,uBAAuB,EAAE,SAAS,+BAA+B,YAAY,IAAM,OAAO,WAAU,GAAI,oBAAoB,EAAE,SAAS,4BAA4B,YAAY,IAAM,OAAO,WAAU,GAAI,SAAS,wIAAwI,UAAU,gBAAgB,kBAAkB,gBAAgB,QAAQ,gBAAgB,aAAa,kBAAkB,UAAU,SAASA,EAAM,MAAM,IAAI,kBAAkB,SAAS,GAAG;AAC3iD,MAAkB,EAAE,aAAhB;AACF,aAASvO,IAAI,EAAE,OAAO,OAAO,SAASyO,GAAI;AACxC,aAAmB,OAAOA,KAAnB,YAAuCA,EAAG,SAAjB,aAAsCA,EAAG,SAAhB;AAAA,IAC3D,CAAC,GAAGrO,IAAI,GAAGA,IAAIJ,EAAE,UAAU;AACzB,UAAIC,IAAID,EAAEI,GAAG;AACb,UAAkBH,EAAE,SAAhB,aAAuCA,EAAE,YAAjB,YAA0B;AACpD,YAAIH,IAAI,CAAA;AACR,YAAII,EAAE,CAAC,uBAAuB,aAAa,CAAC,KAAaiH,EAAE,CAAC,EAAE,YAAb,KAAsB;AACrE,UAAA/G,KAAK;AACL,cAAI+H,IAAIiH,EAAE,QAAQ,MAAM;AACxB,cAAWjH,MAAP;AACF;AACF,iBAAO/H,IAAI+H,GAAG/H,KAAK;AACjB,gBAAIwO,IAAIzH,EAAE,CAAC;AACX,YAAeyH,EAAE,SAAjB,eAA0BS,EAAET,GAAG,gBAAgB,GAAG9O,EAAE,KAAK8O,EAAE,OAAO;AAAA,UACpE;AACA,UAAAxO,IAAI+H,IAAI;AAAA,QACV;AACA,YAAIjI,EAAE,CAAC,eAAe,gBAAgB,CAAC,KAAaiH,EAAE,CAAC,EAAE,YAAb,QAAyB/G,KAAKiP,EAAElI,EAAE,CAAC,GAAG,mBAAmB,GAAG,IAAIrH,EAAE,SAAS;AACrH,cAAIC,IAAIqP,EAAE,QAAQ,MAAM;AACxB,cAAWrP,MAAP;AACF,qBAASyO,IAAIpO,GAAGoO,IAAIzO,GAAGyO,KAAK;AAC1B,kBAAI,IAAIxO,EAAEwO,CAAC;AACX,cAAe,EAAE,SAAjB,cAAyB,KAAK1O,EAAE,QAAQ,EAAE,OAAO,KAAKuP,EAAE,GAAG,gBAAgB;AAAA,YAC7E;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AACF,WAASlI,EAAEsH,GAAI;AACb,WAAOzO,EAAEI,IAAIqO,CAAE;AAAA,EACjB;AACA,WAASvO,EAAEuO,GAAII,GAAI;AACjB,IAAAA,IAAKA,KAAM;AACX,aAASC,IAAK,GAAGA,IAAKL,EAAG,QAAQK,KAAM;AACrC,UAAIC,IAAK5H,EAAE2H,IAAKD,CAAE;AAClB,UAAI,CAACE,KAAMA,EAAG,SAASN,EAAGK,CAAE;AAC1B;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AACA,WAASM,EAAEX,GAAII,GAAI;AACjB,aAASC,IAAK,GAAGC,IAAK3O,GAAG2O,IAAK/O,EAAE,QAAQ+O,KAAM;AAC5C,UAAIC,IAAKhP,EAAE+O,CAAE,GAAGO,IAAKN,EAAG;AACxB,UAAsBA,EAAG,SAArB,iBAAyC,OAAOM,KAAnB;AAC/B,YAAIb,EAAG,KAAKa,CAAE;AACZ,UAAAR;AAAA,iBACOD,EAAG,KAAKS,CAAE,KAAW,EAAER,MAAR;AACtB,iBAAOC;AAAA;AAAA,IAEb;AACA,WAAO;AAAA,EACT;AACA,WAASM,EAAEZ,GAAII,GAAI;AACjB,QAAIC,IAAKL,EAAG;AACZ,IAAAK,IAAK,MAAM,QAAQA,CAAE,MAAML,EAAG,QAAQK,IAAK,CAACA,CAAE,KAAKL,EAAG,QAAQK,IAAK,CAAA,GAAIA,EAAG,KAAKD,CAAE;AAAA,EACnF;AACF,CAAC,GAAGN,EAAM,UAAU,MAAM,EAAE,SAAS,EAAE,SAAS,iDAAiD,YAAY,GAAI,GAAI,UAAU,CAAC,EAAE,SAAS,uCAAuC,QAAQ,GAAI,GAAI,UAAU,GAAG,QAAQ,EAAE,SAAS,mDAAmD,QAAQ,IAAM,YAAY,GAAI,GAAI,YAAY,EAAE,SAAS,uCAAuC,QAAQ,IAAM,YAAY,IAAM,QAAQ,EAAE,aAAa,QAAO,EAAE,GAAI,UAAU,6FAA6F,SAAS,w9EAAw9E,SAAS,4BAA4B,QAAQ,6CAA6C,UAAU,gIAAgI,aAAa,cAAa,GAAI,SAASnG,GAAG;AAC7wG,MAAIrH,IAAIqH,EAAE,UAAU,WAAW,iBAAiB,GAAG,IAAIrH,EAAE,QAAQ,QAAQV,IAAIU,EAAE,OAAO,eAAewO,IAAIlP,EAAE,OAAO,2BAA2B,GAAGN,IAAIM,EAAE,QAAQ;AAC9J,WAASJ,EAAEwO,GAAII,GAAI;AACjB,QAAIzG,EAAE,UAAUqG,CAAE;AAChB,aAAO,EAAE,SAAS,OAAO,SAASI,IAAK,WAAW,CAAC,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,wBAAwB,EAAE,SAAS,SAAS,OAAO,SAAQ,GAAI,iBAAiB,EAAE,SAAS,WAAW,OAAOJ,EAAE,EAAE,EAAE;AAAA,EACvN;AACA,WAASe,EAAEf,GAAII,GAAIC,GAAI;AACrB,WAAAL,IAAK,EAAE,MAAMA,GAAI,SAASI,GAAI,UAAUC,EAAE,GACnC1G,EAAE,MAAM,IAAI,mBAAmBqG,CAAE,GAAGA,EAAG,SAASrG,EAAE,SAASqG,EAAG,MAAMA,EAAG,OAAO,GAAGrG,EAAE,MAAM,IAAI,kBAAkBqG,CAAE,GAAGA,EAAG;AAAA,EAChI;AACA,WAASD,EAAEO,GAAIN,GAAIG,GAAG;AACpB,QAAIC,IAAKzG,EAAE,SAAS2G,GAAI,EAAE,eAAe,EAAE,SAAS,OAAOhP,CAAC,GAAG,YAAY,GAAI,EAAE,CAAE,GAAGG,IAAI,GAAGkP,IAAI,CAAA,GAAIP,IAAKW,EAAEX,EAAG,IAAI,SAASH,GAAI;AAC9H,UAAgB,OAAOA,KAAnB;AACF,eAAOA;AACT,eAASO,GAAIH,GAAIJ,IAAKA,EAAG,SAAgBK,EAAG,SAASD,IAAK5O,KAAK+O,IAAK,QAAQL,EAAE,gBAAgB,MAAME,IAAK,MAAK,MAA5E;AAChC;AACF,aAAOM,EAAEH,CAAE,IAAIP,GAAIO;AAAA,IACrB,CAAC,EAAE,KAAK,EAAE,GAAGR,GAAIG,CAAC,GAAGS,IAAI,OAAO,KAAKD,CAAC;AACtC,WAAOlP,IAAI,GAAG,SAASwO,EAAGO,GAAI;AAC5B,eAASH,IAAK,GAAGA,IAAKG,EAAG,QAAQH,KAAM;AACrC,YAAI5O,KAAKmP,EAAE;AACT;AACF,YAAII,GAAIT,GAAIM,GAAItP,GAAGI,GAAGsP,GAAIC,GAAIxI,IAAI8H,EAAGH,CAAE;AACvC,QAAY,OAAO3H,KAAnB,YAAoC,OAAOA,EAAE,WAArB,YAAgCsI,IAAKJ,EAAEnP,CAAC,IAAWyP,KAAMD,IAAiB,OAAOvI,KAAnB,WAAuBA,IAAIA,EAAE,SAAS,QAAQsI,CAAE,OAAnE,OAA0E,EAAEvP,GAAG8O,IAAKU,EAAG,UAAU,GAAGC,CAAE,GAAGvP,IAAIgP,EAAEK,CAAE,GAAGH,IAAK,SAAStP,IAAI,CAAA,GAAI,2BAA2B,IAAIuP,IAAUvP,IAAIoI,EAAE,SAAShI,GAAGJ,CAAC,GAAG,WAA7B,OAAyCsP,IAAK,CAAC,GAAG,CAAC,GAAG,KAAK,MAAMA,GAAIE,EAAExP,EAAE,CAAC,GAAGoI,EAAE,UAAU,YAAY,YAAY,CAAC,GAAGpI,EAAE,OAAO,MAAMA,GAAGsP,CAAE,IAAIA,IAAK,IAAIlH,EAAE,MAAM,iBAAiBpI,GAAGK,EAAE,OAAOD,CAAC,GAAGJ,IAAI0P,EAAG,UAAUC,IAAKF,EAAG,MAAM,GAAGrP,IAAI,CAAA,GAAI4O,KAAM5O,EAAE,KAAK4O,CAAE,GAAG5O,EAAE,KAAKkP,CAAE,GAAGtP,MAAM0O,EAAGgB,IAAK,CAAC1P,CAAC,CAAC,GAAGI,EAAE,KAAK,MAAMA,GAAGsP,CAAE,IAAgB,OAAOvI,KAAnB,YAAwB8H,EAAG,OAAO,MAAMA,GAAI,CAACH,GAAI,CAAC,EAAE,OAAO1O,CAAC,CAAC,GAAG0O,KAAM1O,EAAE,SAAS,KAAK+G,EAAE,UAAU/G,OAAOuP,IAAKxI,EAAE,SAAS,MAAM,QAAQwI,CAAE,IAAIjB,EAAGiB,CAAE,IAAIjB,EAAG,CAACiB,CAAE,CAAC;AAAA,MAC/rB;AAAA,IACF,EAAEd,CAAE,GAAG,IAAIzG,EAAE,MAAMwG,GAAGC,GAAI,cAAcD,GAAGG,CAAE;AAAA,EAC/C;AACA,EAAA3G,EAAE,UAAU,WAAW,iBAAiB,IAAI,CAACnI,EAAE,OAAO,0HAA0H,MAAM,GAAGA,EAAE,QAAQ,yCAAyC,MAAM,GAAGA,EAAE,OAAO,QAAQ,MAAM,GAAGA,EAAE,YAAY,oBAAoB,MAAM,GAAGA,EAAE,WAAW,6CAA6C,MAAM,GAAGA,EAAE,OAAO,QAAQ,MAAM,GAAGc,CAAC,EAAE,OAAO,OAAO;AACxa,MAAIoH,IAAI,EAAE,YAAY,IAAM,IAAI,IAAM,YAAY,IAAM,IAAI,IAAM,KAAK,IAAM,KAAK,GAAI;AACtF,WAASgH,EAAEV,GAAI;AACb,WAAmB,OAAOA,KAAnB,WAAwBA,IAAK,MAAM,QAAQA,CAAE,IAAIA,EAAG,IAAIU,CAAC,EAAE,KAAK,EAAE,IAAIA,EAAEV,EAAG,OAAO;AAAA,EAC3F;AACA,EAAArG,EAAE,MAAM,IAAI,kBAAkB,SAASqG,GAAI;AACzC,IAAAA,EAAG,YAAYtG,KAAM,SAASuG,EAAGG,GAAI;AACnC,eAASC,IAAK,GAAGC,IAAKF,EAAG,QAAQC,IAAKC,GAAID,KAAM;AAC9C,YAAIF,GAAGU,GAAItP,GAAGI,IAAIyO,EAAGC,CAAE;AACvB,QAAY,OAAO1O,KAAnB,aAAyBwO,IAAIxO,EAAE,SAAS,MAAM,QAAQwO,CAAC,IAA0BxO,EAAE,SAAxB,qBAAgCA,IAAIwO,EAAE,CAAC,GAASA,EAAE,WAAR,KAA8B,OAAOxO,KAAnB,YAA4CA,EAAE,SAAtB,oBAA+BkP,IAAKH,EAAE/O,CAAC,GAAGA,IAAIA,EAAE,OAAOA,IAAI,MAAM,QAAQA,CAAC,IAAIA,EAAE,CAAC,IAAIA,GAAGJ,IAAIoI,EAAE,UAAUhI,CAAC,OAAOwO,EAAE,CAAC,IAAIJ,EAAEc,GAAItP,GAAGI,CAAC,MAAMsO,EAAGE,CAAC,IAAgB,OAAOA,KAAnB,YAAwBF,EAAG,CAACE,CAAC,CAAC;AAAA,MAC9T;AAAA,IACF,EAAEH,EAAG,MAAM;AAAA,EACb,CAAC;AACH,EAAEF,CAAK,GAAG,SAAS,GAAG;AACpB,IAAE,UAAU,aAAa,EAAE,UAAU,OAAO,cAAc,EAAE,cAAc,EAAE,SAAS,gLAAgL,YAAY,IAAM,QAAQ,IAAM,QAAQ,KAAI,GAAI,SAAS,wFAAuF,CAAE,GAAG,EAAE,UAAU,WAAW,QAAQ,KAAK,sDAAsD,4FAA4F,4BAA4B,GAAG,OAAO,EAAE,UAAU,WAAW,WAAW,OAAO,EAAE,UAAU,WAAW,kBAAkB;AACxsB,MAAI,IAAI,EAAE,UAAU,OAAO,cAAc,CAAA,CAAE;AAC3C,SAAO,EAAE,YAAY,GAAG,EAAE,UAAU,WAAW,YAAY,EAAE,SAAS,GAAG,EAAE,UAAU,aAAa,cAAc,YAAY,EAAE,WAAW,EAAE,SAAS,sBAAsB,QAAQ,EAAE,IAAI,EAAE,SAAS,MAAM,OAAO,WAAU,GAAI,UAAU,WAAU,KAAM,oBAAoB,EAAE,SAAS,0GAA0G,QAAQ,IAAM,QAAQ,EAAE,UAAU,6DAA6D,SAAS,EAAE,SAAS,YAAY,OAAO,cAAc,QAAQ,EAAC,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,UAAU,KAAK,EAAE,UAAU;AACxkB,EAAEA,CAAK,GAAG,SAAS,GAAG;AACpB,MAAI,IAAI,EAAE,UAAU,YAAY,IAAI,2CAA2C,QAAQ,IAAI,6CAA6C,IAAI;AAC5I,IAAE,UAAU,QAAQ,EAAE,UAAU,OAAO,eAAe,EAAE,WAAW,EAAE,SAAS,OAAO,IAAI,uCAAuC,MAAM,GAAG,YAAY,IAAM,QAAQ,EAAE,aAAa,OAAM,EAAE,CAAE,GAAG,EAAE,UAAU,aAAa,SAAS,WAAW,EAAE,sBAAsB,EAAE,SAAS,OAAO,IAAI,wDAAwD,MAAM,GAAG,YAAY,IAAM,QAAQ,EAAE,WAAW,EAAE,SAAS,4BAA4B,YAAY,IAAM,QAAQ,EAAE,aAAa,KAAI,EAAE,GAAI,MAAM,EAAE,SAAS,qBAAqB,YAAY,IAAM,QAAQ,GAAG,OAAO,sBAAqB,GAAI,aAAa,WAAU,GAAI,cAAc,CAAC,EAAE,SAAS,OAAO,mHAAmH,OAAO,QAAQ,WAAW,WAAW;AACjxB,WAAO;AAAA,EACT,CAAC,CAAC,GAAG,YAAY,IAAM,QAAQ,EAAE,aAAa,KAAI,EAAE,GAAI,EAAE,SAAS,OAAO,kBAAkB,CAAC,GAAG,YAAY,IAAM,QAAQ,EAAE,QAAQ,EAAE,QAAQ,QAAQ,EAAE,QAAQ,SAAS,EAAE,SAAS,SAAS,EAAE,UAAU,WAAW,SAAS,UAAU,qBAAqB,aAAa,kBAAiB,EAAE,CAAE,GAAG,SAAS,EAAE,SAAS,0EAA0E,YAAY,IAAM,QAAQ,EAAE,MAAM,EAAE,SAAS,6BAA6B,YAAY,IAAM,QAAQ,GAAG,OAAO,sBAAqB,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,UAAU,YAAY,WAAW,cAAc,EAAE,UAAU,KAAK;AACjlB,EAAEA,CAAK,GAAG,SAAS,GAAG;AACpB,IAAE,UAAU,OAAO,EAAE,UAAU,OAAO,cAAc,EAAE,GAAG,EAAE,UAAU,aAAa,QAAQ,WAAW,EAAE,MAAM,CAAC,EAAE,SAAS,iFAAiF,OAAO,aAAY,CAAE,EAAC,CAAE,GAAG,EAAE,UAAU,KAAK,mBAAmB,EAAE,UAAU,wKAAwK,OAAO,EAAE,UAAU,KAAK,WAAW,EAAE,UAAU,aAAa,QAAQ,YAAY,EAAE,oBAAoB,EAAE,SAAS,aAAa,OAAO,gBAAe,CAAE,GAAG,MAAM,QAAQ,EAAE,UAAU,KAAK,OAAO,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,EAAE,UAAU,KAAK,OAAO,IAAI,EAAE,UAAU,KAAK,QAAQ,QAAQ,EAAE,SAAS,mDAAmD,YAAY,MAAQ,EAAE,SAAS,yGAAyG,YAAY,IAAM;AACr7B,EAAEA,CAAK,GAAGA,EAAM,UAAU,OAAOA,EAAM,UAAU,OAAO,cAAc,EAAE,SAAS,kXAAiX,CAAE,GAAGA,EAAM,UAAU,aAAa,QAAQ,YAAY,EAAE,YAAY,EAAE,SAAS,SAAS,OAAO,aAAY,CAAE,GAAGA,EAAM,UAAU,QAAQA,EAAM,UAAU,MAAM,SAAS,GAAG;AAC1mB,WAAS,EAAEE,GAAII,GAAI;AACjB,WAAO,OAAOJ,EAAG,QAAQ,SAAS,WAAW;AAC3C,aAAO,yDAAyD;AAAA,IAClE,CAAC,GAAGI,CAAE;AAAA,EACR;AACA,IAAE,UAAU,aAAa,cAAc,qBAAqB,EAAE,mBAAmB,EAAE,SAAS,OAAO,cAAc,EAAE,UAAU,WAAW,mBAAmB,EAAE,QAAQ,MAAM,GAAG,YAAY,IAAM,OAAO,CAAC,qBAAqB,UAAU,YAAY,iBAAiB,EAAC,GAAI,GAAG,EAAE,UAAU,aAAa,cAAc,YAAY,EAAE,QAAQ,EAAE,SAAS,OAAO,cAAc,EAAE,UAAU,WAAW,SAAS,MAAM,GAAG,YAAY,IAAM,OAAO,CAAC,YAAY,iBAAiB,IAAG,CAAE,GAAG,EAAE,UAAU,aAAa,cAAc,YAAY,EAAE,oBAAoB,CAAC,EAAE,SAAS,0OAA0O,OAAO,aAAY,GAAI,EAAE,SAAS,yBAAyB,OAAO,aAAY,CAAE,EAAC,CAAE,GAAG,EAAE,UAAU,aAAa,cAAc,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,4GAA4G,MAAM,GAAG,YAAY,IAAM,QAAQ,EAAE,UAAU,WAAU,GAAI,SAAS,EAAE,SAAS,EAAE,mEAAmE,MAAM,GAAG,YAAY,IAAM,QAAQ,EAAE,UAAU,WAAU,GAAI,GAAG,EAAE,UAAU,WAAW,QAAQ,QAAQ,EAAE,SAAS,yCAAyC,OAAO,SAAQ,GAAI,EAAE,SAAS,iGAAiG,OAAO,kBAAkB,EAAE,SAAS,YAAY,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,SAAS,iBAAiB,OAAO,MAAK,CAAE,GAAG,EAAE,UAAU,aAAa,cAAc,YAAY,EAAE,QAAQ,EAAE,SAAS,SAAS,OAAO,cAAc,OAAO,EAAE,SAAS,MAAM,OAAO,WAAU,EAAE,CAAE,GAAG,EAAE,UAAU,aAAa,cAAc,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,MAAM,GAAG,YAAY,MAAQ,oBAAoB,EAAE,SAAS,+CAA+C,YAAY,GAAI,GAAI,KAAK,EAAE,SAAS,mFAAmF,OAAO,WAAU,GAAI,SAAS,EAAE,SAAS,sBAAsB,OAAO,aAAY,GAAI;AACznE,WAAS,IAAI,CAAC,YAAY,qBAAqB,UAAU,mBAAmB,iBAAiB,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;AACxH,QAAID,IAAI,EAAE,CAAC,GAAG7O,IAAI,EAAE,UAAU,WAAW6O,CAAC,GAAGA,KAAK7O,IAAiB,EAAE,KAAK,KAAKA,CAAC,MAA1B,WAA8B,EAAE,UAAU,WAAW6O,CAAC,IAAI,EAAE,SAAS7O,EAAC,IAAKA,GAAG,UAAU,CAAA;AAC9I,KAACA,EAAE,SAAS6O,GAAG,kBAAkB,IAAI;AAAA,EACvC;AACF,EAAEL,CAAK,GAAG,SAASxO,GAAG;AACpB,MAAIgB,IAAIhB,EAAE,KAAK,MAAMA,EAAE,UAAU,UAAU,GAAG,IAAI,+CAA+C,QAAQ,IAAI,+CAA+C,QAAQ,IAAI,uCAAuC;AAC/M,WAASE,EAAEwO,GAAII,GAAI;AACjB,WAAOJ,IAAKA,EAAG,QAAQ,QAAQ,WAAW;AACxC,aAAO;AAAA,IACT,CAAC,EAAE,QAAQ,aAAa,WAAW;AACjC,aAAO;AAAA,IACT,CAAC,EAAE,QAAQ,aAAa,WAAW;AACjC,aAAO;AAAA,IACT,CAAC,GAAG,OAAOA,GAAII,CAAE;AAAA,EACnB;AACA,MAAI5O,EAAE,CAAC,EAAE,QAAQF,EAAE,UAAU,MAAMA,EAAE,UAAU,OAAO,UAAUgB,CAAC,GAAGhB,EAAE,UAAU,IAAI,IAAI,UAAUE,EAAE,wIAAwI,MAAM,GAAGF,EAAE,UAAU,IAAI,IAAI,OAAO,IAAI,UAAU,kBAAkBA,EAAE,UAAU,IAAI,IAAI,OAAO,YAAY,EAAE,UAAU,sEAAsEA,EAAE,UAAU,IAAI,IAAI,OAAO,IAAI,OAAO,YAAY,IAAI,6BAA6BA,EAAE,UAAU,IAAI,IAAI,OAAO,UAAUgB,EAAE,SAAShB,EAAE,UAAU,aAAa,UAAU,aAAa,EAAE,QAAQ,EAAE,SAASE,EAAE,WAAW,MAAM,GAAG,QAAQF,EAAE,UAAU,IAAG,EAAE,GAAIA,EAAE,UAAU,IAAI,GAAG,GAAGA,EAAE,UAAU,aAAa,UAAU,gBAAgB,EAAE,QAAQ,EAAE,SAASE,EAAE,YAAY,MAAM,GAAG,OAAO,uBAAuB,QAAQ,EAAE,sBAAsB,EAAE,SAAS,YAAY,OAAO,cAAa,GAAI,MAAMF,EAAE,UAAU,IAAG,EAAE,EAAE,GAAIA,EAAE,UAAU,IAAI,GAAG;AACt7B,WAAS,EAAE0O,GAAI;AACb,aAASI,IAAK,CAAA,GAAIC,IAAK,GAAGA,IAAKL,EAAG,QAAQK,KAAM;AAC9C,UAAIC,IAAKN,EAAGK,CAAE,GAAGE,IAAK;AACtB,MAAY,OAAOD,KAAnB,aAAoCA,EAAG,SAAb,SAAqBA,EAAG,QAAQ,CAAC,KAAeA,EAAG,QAAQ,CAAC,EAAE,SAAxB,QAAwCA,EAAG,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAlC,OAA4C,IAAIF,EAAG,UAAUA,EAAGA,EAAG,SAAS,CAAC,EAAE,YAAYzO,EAAE2O,EAAG,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAKF,EAAG,IAAG,IAAcE,EAAG,QAAQA,EAAG,QAAQ,SAAS,CAAC,EAAE,YAA3C,QAAsDF,EAAG,KAAK,EAAE,SAASzO,EAAE2O,EAAG,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,cAAc,EAAC,CAAE,IAAI,IAAIF,EAAG,UAA4BE,EAAG,SAArB,iBAAqCA,EAAG,YAAX,MAAqBF,EAAGA,EAAG,SAAS,CAAC,EAAE,iBAAiB,IAAIA,EAAG,UAAU,IAAIA,EAAGA,EAAG,SAAS,CAAC,EAAE,gBAAkCE,EAAG,SAArB,iBAAqCA,EAAG,YAAX,MAAqBF,EAAGA,EAAG,SAAS,CAAC,EAAE,iBAAiBG,IAAK,MAAQA,KAAkB,OAAOD,KAAnB,aAA0B,IAAIF,EAAG,UAAgBA,EAAGA,EAAG,SAAS,CAAC,EAAE,iBAAxB,MAAyCG,IAAK5O,EAAE2O,CAAE,GAAGD,IAAKL,EAAG,SAAS,MAAkB,OAAOA,EAAGK,IAAK,CAAC,KAA5B,YAAkDL,EAAGK,IAAK,CAAC,EAAE,SAA5B,kBAAsCE,KAAM5O,EAAEqO,EAAGK,IAAK,CAAC,CAAC,GAAGL,EAAG,OAAOK,IAAK,GAAG,CAAC,IAAI,IAAIA,MAAmB,OAAOL,EAAGK,IAAK,CAAC,KAA5B,YAAkDL,EAAGK,IAAK,CAAC,EAAE,SAA5B,kBAAsCE,IAAK5O,EAAEqO,EAAGK,IAAK,CAAC,CAAC,IAAIE,GAAIP,EAAG,OAAOK,IAAK,GAAG,CAAC,GAAGA,MAAOL,EAAGK,CAAE,IAAI,IAAI/O,EAAE,MAAM,cAAciP,GAAI,MAAMA,CAAE,IAAID,EAAG,WAAuB,OAAOA,EAAG,WAAtB,YAAiC,EAAEA,EAAG,OAAO;AAAA,IACtkC;AAAA,EACF;AACA,MAAI3O,IAAI,SAASqO,GAAI;AACnB,WAAOA,IAAiB,OAAOA,KAAnB,WAAwBA,IAAiB,OAAOA,EAAG,WAAtB,WAAgCA,EAAG,UAAUA,EAAG,QAAQ,IAAIrO,CAAC,EAAE,KAAK,EAAE,IAAI;AAAA,EACrH;AACA,EAAAL,EAAE,MAAM,IAAI,kBAAkB,SAAS0O,GAAI;AACzC,IAAUA,EAAG,aAAb,SAAmCA,EAAG,aAAb,SAAyB,EAAEA,EAAG,MAAM;AAAA,EAC/D,CAAC;AACH,EAAEF,CAAK,GAAG,SAAS,GAAG;AACpB,MAAI,IAAI,EAAE,KAAK,MAAM,EAAE,UAAU,UAAU,GAAG,KAAK,EAAE,UAAU,MAAM,EAAE,UAAU,OAAO,OAAO,CAAC,GAAG,OAAO,EAAE,UAAU,IAAI,WAAW,OAAO,EAAE,UAAU,IAAI,kBAAkB,GAAG,EAAE,UAAU,IAAI;AACjM,IAAE,UAAU,OAAO,qBAAqB,SAAS,QAAQ,EAAE,QAAQ,SAAS,KAAK,EAAE,QAAQ,KAAK,GAAG,EAAE,aAAa;AACpH,EAAEA,CAAK,GAAGA,EAAM,UAAU,QAAQ,EAAE,SAAS,EAAE,SAAS,wFAAwF,YAAY,IAAM,QAAQ,MAAQ,kBAAkB,CAAC,EAAE,SAAS,OAAO,YAAY,SAAS,QAAQ,8DAA8D,SAAS,MAAM,iEAAiE,SAAS,MAAM,WAAW,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,eAAe,EAAE,SAAS,qCAAqC,YAAY,IAAM,QAAQ,KAAI,GAAI,6BAA6B,EAAE,SAAS,aAAa,OAAO,cAAa,GAAI,aAAa,gBAAgB,QAAQ,UAAS,EAAE,GAAI,EAAE,SAAS,OAAO,gBAAgB,SAAS,QAAQ,gEAAgE,SAAS,MAAM,2DAA2D,SAAS,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,eAAe,EAAE,SAAS,uCAAuC,YAAY,IAAM,QAAQ,KAAI,GAAI,6BAA6B,EAAE,SAAS,eAAe,OAAO,cAAa,GAAI,QAAQ,UAAS,EAAE,CAAE,GAAG,WAAW,EAAE,SAAS,OAAO,IAAI,SAAS,QAAQ,kBAAkB,SAAS,aAAa,8GAA8G,SAAS,QAAQ,mBAAmB,SAAS,GAAG,GAAG,OAAO,YAAY,QAAQ,EAAE,kBAAkB,SAAS,SAAS,sBAAsB,QAAQ,qBAAqB,UAAU,oBAAoB,aAAa,UAAS,GAAI,SAAS,EAAE,SAAS,4FAA4F,OAAO,WAAU,GAAI,mBAAmB,EAAE,SAAS,UAAU,OAAO,WAAU,GAAI,WAAW,EAAE,SAAS,QAAQ,OAAO,SAAQ,GAAI,uBAAuB,EAAE,SAAS,kBAAkB,YAAY,IAAM,OAAO,WAAU,GAAI,OAAO,EAAE,SAAS,4EAA4E,YAAY,IAAM,OAAO,eAAe,SAAS,wnBAAwnB,SAAS,sBAAsB,KAAK,EAAE,SAAS,WAAW,OAAO,WAAU,GAAI,kBAAkB,WAAW,MAAM,EAAE,SAAS,SAAS,OAAO,aAAa,QAAQ,mFAAmF,cAAc,mCAAmC,UAAU,yBAAyB,UAAU,uCAAuC,UAAU,2CAA2C,aAAa,kBAAiB,GAAIA,EAAM,UAAU,MAAM,gBAAgB,EAAE,QAAQ,SAAS,GAAG;AAC3nG,IAAE,OAAO,cAAc,SAASA,EAAM,UAAU;AAClD,CAAC,GAAG,SAAS,GAAG;AACd,IAAE,UAAU,SAAS,EAAE,UAAU,OAAO,SAAS,EAAE,SAAS,EAAE,SAAS,4bAA4b,YAAY,GAAI,GAAI,UAAU,CAAC,EAAE,SAAS,kCAAkC,QAAQ,GAAI,GAAI,EAAE,SAAS,oCAAoC,YAAY,IAAM,QAAQ,IAAM,GAAG,QAAQ,mIAAmI,UAAU,wGAAwG,GAAG,OAAO,EAAE,UAAU,OAAO,YAAY;AACv9B,MAAI,IAAI,EAAE,6BAA6B,EAAE,SAAS,cAAc,OAAO,cAAa,GAAI,YAAY,EAAE,SAAS,WAAW,QAAQ,EAAE,UAAU,SAAQ;AACtJ,IAAE,UAAU,aAAa,UAAU,UAAU,EAAE,kBAAkB,CAAC,EAAE,SAAS,4CAA4C,OAAO,aAAa,QAAQ,EAAE,eAAe,EAAE,SAAS,+BAA+B,QAAQ,KAAK,QAAQ,UAAS,EAAE,GAAI,EAAE,SAAS,kDAAkD,OAAO,cAAc,QAAQ,EAAE,eAAe,EAAE,SAAS,sDAAsD,YAAY,IAAM,QAAQ,EAAC,GAAI,QAAQ,YAAW,CAAE,GAAG,MAAM,EAAE,SAAS,8CAA8C,QAAQ,KAAM,CAAE,GAAG,OAAO,EAAE,UAAU,OAAO,QAAQ,EAAE,UAAU,aAAa,UAAU,WAAW,EAAE,YAAY,EAAE,SAAS,uCAAuC,OAAO,UAAS,EAAE,CAAE,GAAG,EAAE,UAAU,aAAa,UAAU,YAAY,EAAE,OAAO,EAAE,SAAS,iBAAiB,OAAO,SAAQ,EAAE,CAAE,GAAG,EAAE,UAAU,KAAK,EAAE,UAAU,QAAQ,EAAE,UAAU,MAAM,EAAE,UAAU;AAC/3B,EAAEA,CAAK,GAAGA,EAAM,UAAU,IAAIA,EAAM,UAAU,OAAO,SAAS,EAAE,SAAS,EAAE,SAAS,uEAAuE,QAAQ,GAAI,GAAI,QAAQ,EAAE,SAAS,uCAAuC,QAAQ,GAAI,GAAI,cAAc,EAAE,SAAS,oFAAoF,YAAY,GAAI,GAAI,SAAS,qVAAqV,UAAU,yBAAyB,QAAQ,qHAAqH,UAAU,mDAAmD,GAAGA,EAAM,UAAU,aAAa,KAAK,UAAU,EAAE,MAAM,EAAE,SAAS,4CAA4C,QAAQ,GAAI,EAAE,CAAE,GAAGA,EAAM,UAAU,aAAa,KAAK,UAAU,EAAE,OAAO,EAAE,SAAS,6FAA6F,YAAY,IAAM,QAAQ,IAAM,OAAO,YAAY,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,4BAA4B,YAAY,GAAI,GAAIA,EAAM,UAAU,EAAE,MAAM,GAAG,MAAMA,EAAM,UAAU,EAAE,MAAM,SAASA,EAAM,UAAU,EAAE,SAAS,cAAc,CAAC,EAAE,SAAS,gCAAgC,YAAY,MAAQ,EAAE,SAAS,gCAAgC,YAAY,IAAM,OAAO,WAAU,CAAE,GAAG,WAAW,EAAE,SAAS,iBAAiB,YAAY,IAAM,OAAO,UAAS,GAAI,kBAAkB,MAAM,aAAa,mBAAmB,YAAY,EAAE,SAAS,aAAa,QAAQA,EAAM,UAAU,EAAC,IAAI,EAAE,CAAE,GAAGA,EAAM,UAAU,aAAa,KAAK,YAAY,EAAE,UAAU,6HAA4H,CAAE,GAAG,OAAOA,EAAM,UAAU,EAAE,SAASA,EAAM,UAAU,aAAaA,EAAM,UAAU,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,yCAAyC,QAAQ,GAAI,GAAI,SAAS,yYAAyY,UAAU,wDAAuD,CAAE,GAAG,OAAOA,EAAM,UAAU,WAAW,YAAY,GAAGA,EAAM,UAAU,OAAOA,EAAM,UAAU,YAAYA,EAAM,UAAU,SAASA,EAAM,UAAU,OAAO,SAAS,EAAE,QAAQ,EAAE,SAAS,uCAAuC,QAAQ,GAAI,GAAI,cAAc,cAAc,SAAS,6RAA6R,UAAU,sGAAqG,CAAE,GAAGA,EAAM,UAAU,aAAa,UAAU,cAAc,EAAE,MAAM,EAAE,SAAS,iEAAiE,QAAQ,GAAI,GAAI,aAAa,yBAAyB,OAAO,EAAE,SAAS,oBAAoB,OAAO,SAAQ,EAAE,CAAE,GAAG,OAAOA,EAAM,UAAU,OAAO,UAAU,SAAS,GAAG;AACniH,WAAS,IAAI,8CAA8C,QAAQ,IAAI,GAAG,IAAI,GAAG;AAC/E,QAAI,EAAE,QAAQ,WAAW,WAAW;AAClC,aAAO;AAAA,IACT,CAAC;AACH,MAAI,EAAE,QAAQ,WAAW,WAAW;AAClC,WAAO,UAAU;AAAA,EACnB,CAAC,GAAG,EAAE,UAAU,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,OAAO,YAAY,SAAS,CAAC,GAAG,YAAY,IAAM,QAAQ,GAAI,GAAI,EAAE,SAAS,oBAAoB,YAAY,IAAM,QAAQ,GAAI,CAAE,GAAG,QAAQ,EAAE,SAAS,yDAAyD,QAAQ,GAAI,GAAI,MAAM,EAAE,SAAS,4EAA4E,QAAQ,GAAI,GAAI,WAAW,EAAE,SAAS,+CAA+C,QAAQ,IAAM,OAAO,aAAa,QAAQ,EAAE,QAAQ,KAAI,KAAM,kBAAkB,EAAE,SAAS,4DAA4D,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,uBAAuB,EAAE,SAAS,WAAW,OAAO,cAAa,GAAI,MAAM,KAAI,EAAE,GAAI,uBAAuB,EAAE,SAAS,QAAQ,OAAO,SAAQ,GAAI,sBAAsB,EAAE,SAAS,kBAAkB,YAAY,IAAM,OAAO,cAAa,GAAI,UAAU,SAAS,uBAAuB,EAAE,SAAS,gBAAgB,YAAY,IAAM,OAAO,WAAU,GAAI,mBAAmB,EAAE,SAAS,8CAA8C,YAAY,IAAM,OAAO,gBAAgB,sBAAsB,CAAC,EAAE,SAAS,sCAAsC,YAAY,IAAM,OAAO,YAAW,GAAI,EAAE,SAAS,yFAAyF,YAAY,IAAM,OAAO,aAAa,QAAQ,EAAE,aAAa,KAAI,EAAE,CAAE,GAAG,SAAS,CAAC,+RAA+R,8DAA8D,GAAG,UAAU,mCAAmC,OAAO,EAAE,SAAS,UAAU,OAAO,WAAU,GAAI,UAAU,uBAAuB,cAAc,gBAAgB,WAAW,EAAE,SAAS,8DAA8D,QAAQ,EAAE,aAAa,KAAI,EAAE,GAAI,QAAQ,8KAA8K,SAAS,sBAAsB,aAAa,oCAAoC,UAAU,yDAAyD,EAAE,UAAU,KAAK,gBAAgB,EAAE,OAAO,OAAO,EAAE,UAAU,MAAM,EAAE,UAAU,KAAK,UAAU,OAAO,SAAS,EAAE,UAAU,KAAK;AACn7E,EAAEA,CAAK,GAAGA,EAAM,UAAU,KAAKA,EAAM,UAAU,OAAO,SAAS,EAAE,QAAQ,EAAE,SAAS,0CAA0C,YAAY,IAAM,QAAQ,GAAI,GAAI,SAAS,uKAAuK,SAAS,iCAAiC,QAAQ,CAAC,gCAAgC,iFAAiF,oEAAoE,GAAG,UAAU,yFAAyF,SAAS,2LAA0L,CAAE,GAAGA,EAAM,UAAU,aAAa,MAAM,UAAU,EAAE,MAAM,EAAE,SAAS,8BAA8B,QAAQ,GAAI,EAAE,CAAE,GAAG,OAAOA,EAAM,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG;AAC1gC,MAAI,IAAI,qsBAAqsB,IAAI,uCAAuC,OAAO,QAAQ,cAAc,WAAW;AAC9xB,WAAO,EAAE;AAAA,EACX,CAAC;AACD,IAAE,UAAU,MAAM,EAAE,UAAU,OAAO,KAAK,EAAE,cAAc,CAAC,EAAE,SAAS,OAAO,gEAAgE,OAAO,QAAQ,cAAc,WAAW;AACnL,WAAO,EAAE;AAAA,EACX,CAAC,CAAC,GAAG,YAAY,GAAI,GAAI,kCAAkC,qCAAqC,gEAAgE,GAAG,SAAS,GAAG,QAAQ,EAAE,SAAS,kJAAkJ,QAAQ,GAAI,GAAI,UAAU,0HAA0H,SAAS,qBAAoB,CAAE,GAAG,EAAE,UAAU,aAAa,OAAO,UAAU,EAAE,QAAQ,EAAE,SAAS,OAAO,2BAA2B,SAAS,QAAQ,mDAAmD,SAAS,MAAM,kDAAkD,OAAO,QAAQ,eAAe,WAAW;AACvxB,WAAO;AAAA,EACT,CAAC,IAAI,GAAG,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,QAAQ,gBAAgB,UAAU,KAAK,aAAa,OAAM,GAAI,cAAc,EAAE,SAAS,qCAAqC,OAAO,UAAU,QAAQ,GAAI,GAAI,GAAG,EAAE,UAAU,aAAa,OAAO,WAAW,EAAE,oBAAoB,EAAE,SAAS,+DAA+D,QAAQ,EAAE,UAAU,QAAQ,SAAS,EAAE,SAAS,YAAY,OAAO,cAAc,QAAQ,EAAE,UAAU,IAAG,EAAE,IAAI,CAAE,GAAG,EAAE,UAAU,aAAa,OAAO,YAAY,EAAE,gBAAgB,EAAE,SAAS,MAAM,OAAO,cAAa,EAAE,CAAE,GAAG,EAAE,UAAU,aAAa,OAAO,cAAc,EAAE,eAAe,EAAE,SAAS,8EAA8E,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,UAAU,OAAO,OAAO,CAAA,CAAE,EAAC,EAAE,CAAE,GAAG,EAAE,UAAU,aAAa,UAAU,gBAAgB,EAAE,cAAc,0BAAyB,GAAI,EAAE,UAAU,IAAI,aAAa,CAAC;AACj6B,EAAEA,CAAK,GAAGA,EAAM,UAAU,SAAS,EAAE,SAAS,EAAE,SAAS,gBAAgB,YAAY,IAAM,QAAQ,MAAQ,wBAAwB,EAAE,SAAS,uEAAuE,QAAQ,IAAM,QAAQ,EAAE,eAAe,EAAE,SAAS,uFAAuF,YAAY,IAAM,QAAQ,EAAE,eAAe,EAAE,SAAS,uBAAuB,YAAY,MAAQ,qBAAqB,EAAE,SAAS,mBAAmB,OAAO,cAAa,GAAI,MAAM,KAAI,EAAE,GAAI,QAAQ,UAAS,EAAE,GAAI,wBAAwB,EAAE,SAAS,wCAAwC,QAAQ,IAAM,OAAO,SAAQ,GAAI,QAAQ,EAAE,SAAS,oDAAoD,QAAQ,GAAI,GAAI,UAAU,EAAE,SAAS,6CAA6C,YAAY,GAAI,GAAI,cAAc,EAAE,SAAS,oBAAoB,YAAY,MAAQ,WAAW,EAAE,SAAS,4BAA4B,YAAY,IAAM,OAAO,CAAC,cAAc,aAAa,GAAG,QAAQ,EAAE,aAAa,KAAI,EAAE,GAAI,SAAS,yNAAyN,SAAS,uhBAAuhB,SAAS,2BAA2B,QAAQ,oJAAoJ,UAAU,wDAAwD,aAAa,gBAAe,GAAIA,EAAM,UAAU,OAAO,sBAAsB,EAAE,OAAO,cAAc,OAAO,OAAOA,EAAM,UAAU,QAAQA,EAAM,UAAU,KAAKA,EAAM,UAAU,QAAQA,EAAM,UAAU,OAAO,EAAE,UAAU,EAAE,SAAS,0CAA0C,YAAY,IAAM,QAAQ,GAAI,GAAI,QAAQ,EAAE,SAAS,0CAA0C,YAAY,IAAM,QAAQ,MAAQ,SAAS,EAAE,SAAS,iCAAiC,QAAQ,GAAI,GAAI,QAAQ,sCAAsC,aAAa,YAAY,UAAU,KAAK,SAAS,sBAAsB,MAAM,EAAE,SAAS,YAAY,OAAO,UAAS,KAAMA,EAAM,UAAU,cAAcA,EAAM,UAAU;AAGrsF,IAAIqB,KAAiB,CAAA;AACrB/G,GAAS+G,IAAgB;AAAA,EACvB,SAAS,MAAMC;AAAA,EACf,aAAa,MAAMC;AAAA,EACnB,cAAc,MAAMC;AAAA,EACpB,QAAQ,MAAMC;AAAA,EACd,qBAAqB,MAAMC;AAAA,EAC3B,sBAAsB,MAAMC;AAAA,EAC5B,cAAc,MAAMC;AAAA,EACpB,eAAe,MAAMC;AAAA,EACrB,UAAU,MAAMC;AAAA,EAChB,eAAe,MAAMC;AAAA,EACrB,aAAa,MAAMC;AAAA,EACnB,SAAS,MAAMC;AAAA,EACf,SAAS,MAAMC;AAAA,EACf,UAAU,MAAMC;AAAA,EAChB,WAAW,MAAMC;AAAA,EACjB,gBAAgB,MAAMC;AAAA,EACtB,aAAa,MAAMC;AAAA,EACnB,UAAU,MAAMC;AAAA,EAChB,QAAQ,MAAMC;AAAA,EACd,SAAS,MAAMC;AACjB,CAAC;AAGD,IAAIC,KAAQ;AAAA,EACV,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,UAAU,YAAY,SAAS;AAAA,MACvC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,UAAU;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,eAAe,QAAQ;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,QAAQ,OAAO,UAAU;AAAA,MAC3C,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,UAAU;AAAA,MAC7B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIpB,KAAkBoB,IAGlBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACX;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,WAAW,SAAS,aAAa;AAAA,MAC9D,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,SAAS;AAAA,MACjB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,QAAQ;AAAA,MACnC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,UAAU;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,YAAY,WAAW;AAAA,MACzC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,oBAAoB;AAAA,MAC5B;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,oBAAoB;AAAA,MAC5B;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIpB,KAAsBoB,IAGtBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACX;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,WAAW,SAAS,aAAa;AAAA,MAC9D,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,SAAS;AAAA,MACjB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,QAAQ;AAAA,MACnC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,UAAU;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,YAAY,WAAW;AAAA,MACzC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,oBAAoB;AAAA,MAC5B;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,oBAAoB;AAAA,MAC5B;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIpB,KAAuBoB,IAGvBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,WAAW,OAAO;AAAA,MAC/C,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,SAAS;AAAA,MACjB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,YAAY;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,WAAW,aAAa,UAAU;AAAA,MACpD,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,WAAW,KAAK;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,mBAAmB;AAAA,MAC3B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,SAAS;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIpB,KAAiBoB,IAGjBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,WAAW;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,KAAK;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ,YAAY,UAAU;AAAA,MACjD,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA;AAAA;AAAA,MAGE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,SAAS;AAAA,MAC7B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,SAAS;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIhB,KAAmBgB,IAGnBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,WAAW;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,WAAW,QAAQ,YAAY,KAAK;AAAA,MACtD,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA;AAAA;AAAA,MAGE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,YAAY,SAAS;AAAA,MACzC,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,YAAY,WAAW,WAAW;AAAA,MACtD,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIhB,KAAwBgB,IAGxBC,IAAS;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EAET,KAAK;AAAA,EACL,UAAU;AAAA,EACV,WAAW;AAGb,GACIC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACX;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAOD,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,QAAQ,WAAW,UAAU;AAAA,MACjD,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,UAAU,OAAO,UAAU;AAAA,MAC/C,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,YAAY;AAAA,MAC9B,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,SAAS;AAAA,MACjB;AAAA,IACA;AAAA,EACA;AACA,GACIhB,KAAsBiB,IAGtBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,KAAK;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ,YAAY,YAAY,YAAY;AAAA,MAC/D,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,SAAS;AAAA,MAC7B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,SAAS;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,MACjB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,OAAO,UAAU;AAAA,MACzB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIjB,KAAkBiB,IAGlBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,UAAU;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ,YAAY,UAAU;AAAA,MACjD,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,cAAc,WAAW;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,OAAO,SAAS;AAAA,MACxB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIf,KAAoBe,IAGpBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,KAAK;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,SAAS;AAAA,MAC3B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ,YAAY,YAAY,YAAY;AAAA,MAC/D,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIf,KAAyBe,IAGzBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,EAChB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,iBAAiB,UAAU,WAAW,OAAO;AAAA,MAChE,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,UAAU;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,eAAe;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,eAAe,UAAU;AAAA,MAC5C,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,cAAc,oBAAoB,SAAS;AAAA,MACnD,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,QAAQ;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,UAAU,WAAW,gBAAgB;AAAA,MAC1D,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,QAAQ,cAAc,SAAS,UAAU;AAAA,MAC3D,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,KAAK;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,QAAQ;AAAA,MAChB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIf,KAAsBe,IAGtBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,UAAU,WAAW,UAAU;AAAA,MACjD,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,cAAc,YAAY,OAAO,WAAW;AAAA,MACpD,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIf,KAAmBe,IAGnBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,WAAW,WAAW,2BAA2B;AAAA,MACpE,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,UAAU;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,UAAU;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,cAAc,sBAAsB;AAAA,MACjE,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA;AAAA,MAEE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA;AAAA,MAEE,OAAO,CAAC,KAAK;AAAA,MACb,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA;AAAA,MAEE,OAAO,CAAC,aAAa;AAAA,MACrB,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIf,KAAiBe,IAGjBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,YAAY,UAAU;AAAA,MACxC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,MAAM;AAAA,MAC1B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ;AAAA,MAC3B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,aAAa;AAAA,MAChC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,SAAS;AAAA,MAC7B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIf,KAAkBe,IAGlBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,WAAW,WAAW,2BAA2B;AAAA,MACpE,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,UAAU;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,UAAU;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,cAAc,sBAAsB;AAAA,MACjE,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACI7B,KAAuB6B,IAGvBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,WAAW,WAAW,2BAA2B;AAAA,MACpE,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,UAAU;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,UAAU;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,cAAc,sBAAsB;AAAA,MACjE,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACI7B,KAAwB6B,IAGxBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,EAChB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,OAAO;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,eAAe,QAAQ;AAAA,MAC1C,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO,EAAE,OAAO,oBAAmB;AAAA,IACzC;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO,EAAE,OAAO,qBAAoB;AAAA,IAC1C;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,OAAO,UAAU,WAAW,WAAW;AAAA,MAC3D,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,YAAY,UAAU;AAAA,MAC1C,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,oBAAoB;AAAA,MAC5B;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,oBAAoB;AAAA,MAC5B;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIzB,KAAkByB,IAGlBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACX;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,OAAO;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,eAAe,QAAQ;AAAA,MAC1C,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,OAAO,UAAU,WAAW,WAAW;AAAA,MAC3D,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,YAAY,UAAU;AAAA,MAC1C,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,oBAAoB;AAAA,MAC5B;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,oBAAoB;AAAA,MAC5B;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACpB;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACIzB,KAAmByB,IAGnBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,iBAAiB;AAAA,MACzB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,aAAa,QAAQ,OAAO,OAAO;AAAA,MAC3C,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,cAAc,QAAQ;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,SAAS,YAAY,UAAU;AAAA,MAC5D,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,UAAU,QAAQ;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACInC,KAA8BmC,IAG9BC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACE,QAAQ;AAAA,IACN;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,MACM,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,YAAY;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,iBAAiB;AAAA,MACzB,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,YAAY,aAAa,QAAQ,KAAK;AAAA,MAC9C,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,SAAS,YAAY,UAAU;AAAA,MAC5D,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,OAAO,CAAC,UAAU,UAAU,QAAQ;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,GACInC,KAA+BmC,IAQ/BC,KAAkB,CAACC,MAAoBC;AAAA,EACzC,CAACjQ,MAAO;AACN,QAAIE,IAAKF,GAAI,EAAE,WAAAT,GAAW,OAAA4B,GAAO,MAAA2C,EAAI,IAAK5D,GAAIuB,IAAOuE,GAAU9F,GAAI,CAAC,aAAa,SAAS,MAAM,CAAC;AACjG,UAAMgQ,IAASnK,GAAcJ,GAAe,CAAA,GAAIlE,CAAI,GAAG;AAAA,MACrD,WAAW0O,GAAK,cAAc5Q,CAAS;AAAA,IAC7C,CAAK;AACD,WAAI,OAAOyQ,KAAoB,YAAY,WAAWA,MACpDE,EAAO,QAAQF,EAAgB,QAC7B,OAAO7O,KAAU,aACnB+O,EAAO,QAAQvK,GAAeA,GAAe,CAAA,GAAIuK,EAAO,SAAS,EAAE,GAAG/O,CAAK,IACtE+O;AAAA,EACT;AAAA,EACA,CAACF,CAAe;AAClB,GAKII,KAAmB,CAACJ,MAAoB;AAC1C,QAAMK,IAAgBC;AAAAA,IACpB,CAAC,EAAE,OAAAC,GAAO,OAAAC,QAAY;AACpB,UAAIR,KAAmB,MAElB;AAAA;AAAA,cAAIO,EAAM,WAAW,KAAKA,EAAM,CAAC,MAAM;AAC1C,mBAAOC,KAAS,OAAO,EAAE,SAAS,eAAc,IAAK;AAChD,cAAID,EAAM,WAAW,KAAKC,KAAS;AACxC,mBAAOR,EAAgBO,EAAM,CAAC,CAAC;AAAA;AAEjC,eAAO,OAAO;AAAA,UACZC,KAAS,OAAO,EAAE,SAAS,eAAc,IAAK,CAAA;AAAA,UAC9C,GAAGD,EAAM,IAAI,CAACxH,MAASiH,EAAgBjH,CAAI,CAAC;AAAA,QACpD;AAAA;AAAA,IACI;AAAA,IACA,CAACiH,CAAe;AAAA,EACpB;AACE,SAAOM;AAAAA,IACL,CAACtQ,MAAO;AACN,UAAIE,IAAKF,GAAI,EAAE,OAAA0I,GAAO,WAAAnJ,GAAW,OAAA4B,EAAK,IAAKjB,GAAIuB,IAAOuE,GAAU9F,GAAI,CAAC,SAAS,aAAa,OAAO,CAAC;AACnG,YAAMgQ,IAASnK,GAAcJ,GAAe,CAAA,GAAIlE,CAAI,GAAG;AAAA,QACrD,WAAWgP,GAAM,SAAS,GAAG/H,EAAM,OAAOnJ,CAAS;AAAA,QACnD,UAAUmJ,EAAM;AAAA,QAChB,OAAO2H,EAAc3H,CAAK;AAAA,MAClC,CAAO;AACD,aAAIvH,KAAS,SACX+O,EAAO,QAAQvK,GAAeA,GAAe,CAAA,GAAIuK,EAAO,SAAS,EAAE,GAAG/O,CAAK,IAEtE+O;AAAA,IACT;AAAA,IACA,CAACG,CAAa;AAAA,EAClB;AACA,GAGIK,KAAY,cACZC,KAAsB,CAAC7M,MAAS;AAClC,EAAIA,EAAK,WAAW,IAClBA,EAAK,KAAK;AAAA,IACR,OAAO,CAAC,OAAO;AAAA,IACf,SAAS;AAAA;AAAA,IACT,OAAO;AAAA,EACb,CAAK,IACQA,EAAK,WAAW,KAAKA,EAAK,CAAC,EAAE,YAAY,OAClDA,EAAK,CAAC,EAAE,UAAU;AAAA,GAClBA,EAAK,CAAC,EAAE,QAAQ;AAEpB,GACI8M,KAAc,CAACL,GAAOM,MAAQ;AAChC,QAAMC,IAAYP,EAAM;AACxB,SAAIO,IAAY,KAAKP,EAAMO,IAAY,CAAC,MAAMD,IACrCN,IAEFA,EAAM,OAAOM,CAAG;AACzB,GACIE,KAAkB,CAACxJ,MAAW;AAChC,QAAMyJ,IAAe,CAAC,EAAE,GAClBC,IAAgB,CAAC1J,CAAM,GACvB2J,IAAqB,CAAC,CAAC,GACvBC,IAAoB,CAAC5J,EAAO,MAAM;AACxC,MAAI9J,IAAI,GACJ2T,IAAa,GACbC,IAAc,CAAA;AAClB,QAAMC,IAAM,CAACD,CAAW;AACxB,SAAOD,IAAa,MAAI;AACtB,YAAQ3T,IAAIyT,EAAmBE,CAAU,OAAOD,EAAkBC,CAAU,KAAG;AAC7E,UAAIzH,GACA4G,IAAQS,EAAaI,CAAU;AAEnC,YAAM1I,IADWuI,EAAcG,CAAU,EAClB3T,CAAC;AAWxB,UAVI,OAAOiL,KAAU,YACnB6H,IAAQa,IAAa,IAAIb,IAAQ,CAAC,OAAO,GACzC5G,IAAUjB,MAEV6H,IAAQK,GAAYL,GAAO7H,EAAM,IAAI,GACjCA,EAAM,UACR6H,IAAQK,GAAYL,GAAO7H,EAAM,KAAK,IAExCiB,IAAUjB,EAAM,UAEd,OAAOiB,KAAY,UAAU;AAC/B,QAAAyH,KACAJ,EAAa,KAAKT,CAAK,GACvBU,EAAc,KAAKtH,CAAO,GAC1BuH,EAAmB,KAAK,CAAC,GACzBC,EAAkB,KAAKxH,EAAQ,MAAM;AACrC;AAAA,MACF;AACA,YAAM4H,IAAkB5H,EAAQ,MAAM+G,EAAS,GACzCc,IAAeD,EAAgB;AACrC,MAAAF,EAAY,KAAK;AAAA,QACf,OAAAd;AAAA,QACA,SAASgB,EAAgB,CAAC;AAAA,MAClC,CAAO;AACD,eAASE,IAAK,GAAGA,IAAKD,GAAcC;AAClC,QAAAd,GAAoBU,CAAW,GAC/BC,EAAI,KAAKD,IAAc,EAAE,GACzBA,EAAY,KAAK;AAAA,UACf,OAAAd;AAAA,UACA,SAASgB,EAAgBE,CAAE;AAAA,QACrC,CAAS;AAAA,IAEL;AACA,IAAAL,KACAJ,EAAa,IAAG,GAChBC,EAAc,IAAG,GACjBC,EAAmB,IAAG,GACtBC,EAAkB,IAAG;AAAA,EACvB;AACA,SAAAR,GAAoBU,CAAW,GACxBC;AACT,GACII,KAA0BX,IAI1BY,KAAc,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,SAAArJ,GAAS,UAAAV,EAAQ,MAC1CgK,GAAQ,MAAM;AACnB,MAAItJ,KAAW;AACb,WAAOkJ,GAAwB,CAACG,CAAI,CAAC;AACvC,QAAME,IAAc;AAAA,IAClB,MAAAF;AAAA,IACA,SAAArJ;AAAA,IACA,UAAAV;AAAA,IACA,QAAQ,CAAA;AAAA,EACd;AACI,SAAA8J,EAAM,MAAM,IAAI,mBAAmBG,CAAW,GAC9CA,EAAY,SAASH,EAAM,SAASC,GAAMrJ,CAAO,GACjDoJ,EAAM,MAAM,IAAI,kBAAkBG,CAAW,GACtCL,GAAwBK,EAAY,MAAM;AACnD,GAAG;AAAA,EACDF;AAAA,EACArJ;AAAA,EACAV;AAAA;AAAA,EAEA8J;AACJ,CAAG,GAICI,KAAc,CAACC,GAASnK,MAAa;AACvC,QAAM,EAAE,OAAAoK,EAAK,IAAKD,GACZE,IAAYF,EAAQ,OAAO,OAAO,CAACX,GAAKc,MAAe;AAC3D,UAAM,EAAE,WAAWC,GAAY,OAAAlR,EAAK,IAAKiR;AACzC,WAAIC,KAAc,CAACA,EAAW,SAASvK,CAAQ,KAG/CsK,EAAW,MAAM,QAAQ,CAACrJ,MAAS;AACjC,YAAMuJ,IAAW3M,GAAeA,GAAe,CAAA,GAAI2L,EAAIvI,CAAI,CAAC,GAAG5H,CAAK;AACpE,MAAAmQ,EAAIvI,CAAI,IAAIuJ;AAAA,IACd,CAAC,GACMhB;AAAA,EACT,GAAG,CAAA,CAAE;AACL,SAAAa,EAAU,OAAOD,GACjBC,EAAU,QAAQpM,GAAcJ,GAAe,CAAA,GAAIuM,CAAK,GAAG,EAAE,iBAAiB,QAAQ,GAC/EC;AACT,GACII,KAAsBP,IAGtBQ,KAAY,CAAC;AAAA,EACf,UAAAC;AAAA,EACA,UAAUC;AAAA,EACV,MAAAb;AAAA,EACA,OAAOI;AAAA,EACP,OAAAL;AACF,MAAM;AACJ,QAAM9J,IAAW4K,EAAU,YAAW,GAChC1C,IAAkBuC,GAAoBN,GAASnK,CAAQ,GACvD6K,IAAe5C,GAAgBC,CAAe,GAC9C4C,IAAgBxC,GAAiBJ,CAAe,GAChDxH,IAAUoJ,EAAM,UAAU9J,CAAQ,GAClCP,IAASoK,GAAY,EAAE,OAAAC,GAAO,UAAA9J,GAAU,MAAA+J,GAAM,SAAArJ,GAAS;AAC7D,SAAOiK,EAAS;AAAA,IACd,QAAAlL;AAAA,IACA,WAAW,uBAAuBO,CAAQ;AAAA,IAC1C,OAAOkI,KAAmB,OAAOA,EAAgB,OAAO,CAAA;AAAA,IACxD,cAAA2C;AAAA,IACA,eAAAC;AAAA,EACJ,CAAG;AACH,GAGIC,KAAa,CAACnT,MAAUoT,GAAcN,IAAWzM,GAAcJ,GAAe,IAAIjG,CAAK,GAAG;AAAA,EAC5F,OAAOA,EAAM,SAASsM;AAAA,EACtB,OAAOtM,EAAM,SAAS8O;AAAA,EACtB,MAAM9O,EAAM;AAAA,EACZ,UAAUA,EAAM;AAClB,CAAC,CAAC;AAQF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AC9jGA;AACA,SAASqT,GAAUC,GAAS;AAC1B,SAAQ,OAAOA,IAAY,OAAiBA,MAAY;AAC1D;AAGA,SAASC,GAASD,GAAS;AACzB,SAAQ,OAAOA,KAAY,YAAcA,MAAY;AACvD;AAGA,SAASxJ,GAAQ0J,GAAU;AACzB,SAAI,MAAM,QAAQA,CAAQ,IAAUA,IAC3BH,GAAUG,CAAQ,IAAU,CAAA,IAE9B,CAAEA,CAAQ;AACnB;AAGA,SAASC,GAAOhN,GAAQF,GAAQ;AAC9B,MAAImN,GAAOC,GAAQ3N,GAAK4N;AAExB,MAAIrN;AAGF,SAFAqN,IAAa,OAAO,KAAKrN,CAAM,GAE1BmN,IAAQ,GAAGC,IAASC,EAAW,QAAQF,IAAQC,GAAQD,KAAS;AACnE,MAAA1N,IAAM4N,EAAWF,CAAK,GACtBjN,EAAOT,CAAG,IAAIO,EAAOP,CAAG;AAI5B,SAAOS;AACT;AAGA,SAASoN,GAAOC,GAAQ/Q,GAAO;AAC7B,MAAInE,IAAS,IAAImV;AAEjB,OAAKA,IAAQ,GAAGA,IAAQhR,GAAOgR,KAAS;AACtC,IAAAnV,KAAUkV;AAGZ,SAAOlV;AACT;AAGA,SAASoV,GAAeC,GAAQ;AAC9B,SAAQA,MAAW,KAAO,OAAO,sBAAsB,IAAIA;AAC7D;AAGA,IAAIC,KAAmBb,IACnBc,KAAmBZ,IACnBa,KAAmBtK,IACnBuK,KAAmBR,IACnBS,KAAmBN,IACnBO,KAAmBd,IAEnBe,IAAS;AAAA,EACZ,WAAWN;AAAA,EACX,UAAUC;AAAA,EACV,SAASC;AAAA,EACT,QAAQC;AAAA,EACR,gBAAgBC;AAAA,EAChB,QAAQC;AACT;AAKA,SAASE,GAAYC,GAAWC,GAAS;AACvC,MAAIC,IAAQ,IAAIC,IAAUH,EAAU,UAAU;AAE9C,SAAKA,EAAU,QAEXA,EAAU,KAAK,SACjBE,KAAS,SAASF,EAAU,KAAK,OAAO,OAG1CE,KAAS,OAAOF,EAAU,KAAK,OAAO,KAAK,OAAOA,EAAU,KAAK,SAAS,KAAK,KAE3E,CAACC,KAAWD,EAAU,KAAK,YAC7BE,KAAS;AAAA;AAAA,IAASF,EAAU,KAAK,UAG5BG,IAAU,MAAMD,KAZKC;AAa9B;AAGA,SAASC,GAAgBC,GAAQC,GAAM;AAErC,QAAM,KAAK,IAAI,GAEf,KAAK,OAAO,iBACZ,KAAK,SAASD,GACd,KAAK,OAAOC,GACZ,KAAK,UAAUP,GAAY,MAAM,EAAK,GAGlC,MAAM,oBAER,MAAM,kBAAkB,MAAM,KAAK,WAAW,IAG9C,KAAK,QAAS,IAAI,MAAK,EAAI,SAAS;AAExC;AAIAK,GAAgB,YAAY,OAAO,OAAO,MAAM,SAAS;AACzDA,GAAgB,UAAU,cAAcA;AAGxCA,GAAgB,UAAU,WAAW,SAAkBH,GAAS;AAC9D,SAAO,KAAK,OAAO,OAAOF,GAAY,MAAME,CAAO;AACrD;AAGA,IAAID,IAAYI;AAGhB,SAASG,GAAQC,GAAQC,GAAWC,GAAS3S,GAAU4S,GAAe;AACpE,MAAItJ,IAAO,IACPC,IAAO,IACPsJ,IAAgB,KAAK,MAAMD,IAAgB,CAAC,IAAI;AAEpD,SAAI5S,IAAW0S,IAAYG,MACzBvJ,IAAO,SACPoJ,IAAY1S,IAAW6S,IAAgBvJ,EAAK,SAG1CqJ,IAAU3S,IAAW6S,MACvBtJ,IAAO,QACPoJ,IAAU3S,IAAW6S,IAAgBtJ,EAAK,SAGrC;AAAA,IACL,KAAKD,IAAOmJ,EAAO,MAAMC,GAAWC,CAAO,EAAE,QAAQ,OAAO,GAAG,IAAIpJ;AAAA,IACnE,KAAKvJ,IAAW0S,IAAYpJ,EAAK;AAAA;AAAA,EACrC;AACA;AAGA,SAASwJ,GAASzB,GAAQ0B,GAAK;AAC7B,SAAOhB,EAAO,OAAO,KAAKgB,IAAM1B,EAAO,MAAM,IAAIA;AACnD;AAGA,SAAS2B,GAAYT,GAAMU,GAAS;AAGlC,MAFAA,IAAU,OAAO,OAAOA,KAAW,IAAI,GAEnC,CAACV,EAAK,OAAQ,QAAO;AAEzB,EAAKU,EAAQ,cAAWA,EAAQ,YAAY,KACxC,OAAOA,EAAQ,UAAgB,aAAUA,EAAQ,SAAc,IAC/D,OAAOA,EAAQ,eAAgB,aAAUA,EAAQ,cAAc,IAC/D,OAAOA,EAAQ,cAAgB,aAAUA,EAAQ,aAAc;AAQnE,WANIvS,IAAK,gBACLwS,IAAa,CAAE,CAAC,GAChBC,IAAW,CAAA,GACXjL,GACAkL,IAAc,IAEVlL,IAAQxH,EAAG,KAAK6R,EAAK,MAAM;AACjC,IAAAY,EAAS,KAAKjL,EAAM,KAAK,GACzBgL,EAAW,KAAKhL,EAAM,QAAQA,EAAM,CAAC,EAAE,MAAM,GAEzCqK,EAAK,YAAYrK,EAAM,SAASkL,IAAc,MAChDA,IAAcF,EAAW,SAAS;AAItC,EAAIE,IAAc,MAAGA,IAAcF,EAAW,SAAS;AAEvD,MAAI/W,IAAS,IAAIb,GAAGqG,GAChB0R,IAAe,KAAK,IAAId,EAAK,OAAOU,EAAQ,YAAYE,EAAS,MAAM,EAAE,SAAQ,EAAG,QACpFP,IAAgBK,EAAQ,aAAaA,EAAQ,SAASI,IAAe;AAEzE,OAAK/X,IAAI,GAAGA,KAAK2X,EAAQ,eACnB,EAAAG,IAAc9X,IAAI,IADcA;AAEpC,IAAAqG,IAAO6Q;AAAA,MACLD,EAAK;AAAA,MACLW,EAAWE,IAAc9X,CAAC;AAAA,MAC1B6X,EAASC,IAAc9X,CAAC;AAAA,MACxBiX,EAAK,YAAYW,EAAWE,CAAW,IAAIF,EAAWE,IAAc9X,CAAC;AAAA,MACrEsX;AAAA,IACN,GACIzW,IAAS4V,EAAO,OAAO,KAAKkB,EAAQ,MAAM,IAAIH,IAAUP,EAAK,OAAOjX,IAAI,GAAG,SAAQ,GAAI+X,CAAY,IACjG,QAAQ1R,EAAK,MAAM;AAAA,IAAOxF;AAQ9B,OALAwF,IAAO6Q,GAAQD,EAAK,QAAQW,EAAWE,CAAW,GAAGD,EAASC,CAAW,GAAGb,EAAK,UAAUK,CAAa,GACxGzW,KAAU4V,EAAO,OAAO,KAAKkB,EAAQ,MAAM,IAAIH,IAAUP,EAAK,OAAO,GAAG,SAAQ,GAAIc,CAAY,IAC9F,QAAQ1R,EAAK,MAAM;AAAA,GACrBxF,KAAU4V,EAAO,OAAO,KAAKkB,EAAQ,SAASI,IAAe,IAAI1R,EAAK,GAAG,IAAI;AAAA,GAExErG,IAAI,GAAGA,KAAK2X,EAAQ,cACnB,EAAAG,IAAc9X,KAAK6X,EAAS,SADG7X;AAEnC,IAAAqG,IAAO6Q;AAAA,MACLD,EAAK;AAAA,MACLW,EAAWE,IAAc9X,CAAC;AAAA,MAC1B6X,EAASC,IAAc9X,CAAC;AAAA,MACxBiX,EAAK,YAAYW,EAAWE,CAAW,IAAIF,EAAWE,IAAc9X,CAAC;AAAA,MACrEsX;AAAA,IACN,GACIzW,KAAU4V,EAAO,OAAO,KAAKkB,EAAQ,MAAM,IAAIH,IAAUP,EAAK,OAAOjX,IAAI,GAAG,SAAQ,GAAI+X,CAAY,IAClG,QAAQ1R,EAAK,MAAM;AAAA;AAGvB,SAAOxF,EAAO,QAAQ,OAAO,EAAE;AACjC;AAGA,IAAImX,KAAUN,IAEVO,KAA2B;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEIC,KAAkB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAASC,GAAoBC,GAAK;AAChC,MAAIvX,IAAS,CAAA;AAEb,SAAIuX,MAAQ,QACV,OAAO,KAAKA,CAAG,EAAE,QAAQ,SAAU1U,GAAO;AACxC,IAAA0U,EAAI1U,CAAK,EAAE,QAAQ,SAAUyI,GAAO;AAClC,MAAAtL,EAAO,OAAOsL,CAAK,CAAC,IAAIzI;AAAA,IAC1B,CAAC;AAAA,EACH,CAAC,GAGI7C;AACT;AAEA,SAASwX,GAAOC,GAAKX,GAAS;AAuB5B,MAtBAA,IAAUA,KAAW,CAAA,GAErB,OAAO,KAAKA,CAAO,EAAE,QAAQ,SAAU9U,GAAM;AAC3C,QAAIoV,GAAyB,QAAQpV,CAAI,MAAM;AAC7C,YAAM,IAAI8T,EAAU,qBAAqB9T,IAAO,gCAAgCyV,IAAM,cAAc;AAAA,EAExG,CAAC,GAGD,KAAK,UAAgBX,GACrB,KAAK,MAAgBW,GACrB,KAAK,OAAgBX,EAAQ,QAAoB,MACjD,KAAK,UAAgBA,EAAQ,WAAoB,WAAY;AAAE,WAAO;AAAA,EAAM,GAC5E,KAAK,YAAgBA,EAAQ,aAAoB,SAAUY,GAAM;AAAE,WAAOA;AAAA,EAAM,GAChF,KAAK,aAAgBZ,EAAQ,cAAoB,MACjD,KAAK,YAAgBA,EAAQ,aAAoB,MACjD,KAAK,YAAgBA,EAAQ,aAAoB,MACjD,KAAK,gBAAgBA,EAAQ,iBAAoB,MACjD,KAAK,eAAgBA,EAAQ,gBAAoB,MACjD,KAAK,QAAgBA,EAAQ,SAAoB,IACjD,KAAK,eAAgBQ,GAAoBR,EAAQ,gBAAmB,IAAI,GAEpEO,GAAgB,QAAQ,KAAK,IAAI,MAAM;AACzC,UAAM,IAAIvB,EAAU,mBAAmB,KAAK,OAAO,yBAAyB2B,IAAM,cAAc;AAEpG;AAEA,IAAIhN,IAAO+M;AAQX,SAASG,GAAYC,GAAQ5V,GAAM;AACjC,MAAIhC,IAAS,CAAA;AAEb,SAAA4X,EAAO5V,CAAI,EAAE,QAAQ,SAAU6V,GAAa;AAC1C,QAAIC,IAAW9X,EAAO;AAEtB,IAAAA,EAAO,QAAQ,SAAU+X,GAAcC,GAAe;AACpD,MAAID,EAAa,QAAQF,EAAY,OACjCE,EAAa,SAASF,EAAY,QAClCE,EAAa,UAAUF,EAAY,UAErCC,IAAWE;AAAA,IAEf,CAAC,GAEDhY,EAAO8X,CAAQ,IAAID;AAAA,EACrB,CAAC,GAEM7X;AACT;AAGA,SAASiY,KAA2B;AAClC,MAAIjY,IAAS;AAAA,IACP,QAAQ,CAAA;AAAA,IACR,UAAU,CAAA;AAAA,IACV,SAAS,CAAA;AAAA,IACT,UAAU,CAAA;AAAA,IACV,OAAO;AAAA,MACL,QAAQ,CAAA;AAAA,MACR,UAAU,CAAA;AAAA,MACV,SAAS,CAAA;AAAA,MACT,UAAU,CAAA;AAAA,IACpB;AAAA,EACA,GAAS8U,GAAOC;AAEd,WAASmD,EAAYzN,GAAM;AACzB,IAAIA,EAAK,SACPzK,EAAO,MAAMyK,EAAK,IAAI,EAAE,KAAKA,CAAI,GACjCzK,EAAO,MAAM,SAAY,KAAKyK,CAAI,KAElCzK,EAAOyK,EAAK,IAAI,EAAEA,EAAK,GAAG,IAAIzK,EAAO,SAAYyK,EAAK,GAAG,IAAIA;AAAA,EAEjE;AAEA,OAAKqK,IAAQ,GAAGC,IAAS,UAAU,QAAQD,IAAQC,GAAQD,KAAS;AAClE,cAAUA,CAAK,EAAE,QAAQoD,CAAW;AAEtC,SAAOlY;AACT;AAGA,SAASmY,GAASC,GAAY;AAC5B,SAAO,KAAK,OAAOA,CAAU;AAC/B;AAGAD,GAAS,UAAU,SAAS,SAAgBC,GAAY;AACtD,MAAIC,IAAW,CAAA,GACXC,IAAW,CAAA;AAEf,MAAIF,aAAsB3N;AAExB,IAAA6N,EAAS,KAAKF,CAAU;AAAA,WAEf,MAAM,QAAQA,CAAU;AAEjC,IAAAE,IAAWA,EAAS,OAAOF,CAAU;AAAA,WAE5BA,MAAe,MAAM,QAAQA,EAAW,QAAQ,KAAK,MAAM,QAAQA,EAAW,QAAQ;AAE/F,IAAIA,EAAW,aAAUC,IAAWA,EAAS,OAAOD,EAAW,QAAQ,IACnEA,EAAW,aAAUE,IAAWA,EAAS,OAAOF,EAAW,QAAQ;AAAA;AAGvE,UAAM,IAAItC,EAAU,kHAC6C;AAGnE,EAAAuC,EAAS,QAAQ,SAAUE,GAAQ;AACjC,QAAI,EAAEA,aAAkB9N;AACtB,YAAM,IAAIqL,EAAU,oFAAoF;AAG1G,QAAIyC,EAAO,YAAYA,EAAO,aAAa;AACzC,YAAM,IAAIzC,EAAU,iHAAiH;AAGvI,QAAIyC,EAAO;AACT,YAAM,IAAIzC,EAAU,oGAAoG;AAAA,EAE5H,CAAC,GAEDwC,EAAS,QAAQ,SAAUC,GAAQ;AACjC,QAAI,EAAEA,aAAkB9N;AACtB,YAAM,IAAIqL,EAAU,oFAAoF;AAAA,EAE5G,CAAC;AAED,MAAI9V,IAAS,OAAO,OAAOmY,GAAS,SAAS;AAE7C,SAAAnY,EAAO,YAAY,KAAK,YAAY,CAAA,GAAI,OAAOqY,CAAQ,GACvDrY,EAAO,YAAY,KAAK,YAAY,CAAA,GAAI,OAAOsY,CAAQ,GAEvDtY,EAAO,mBAAmB2X,GAAY3X,GAAQ,UAAU,GACxDA,EAAO,mBAAmB2X,GAAY3X,GAAQ,UAAU,GACxDA,EAAO,kBAAmBiY,GAAWjY,EAAO,kBAAkBA,EAAO,gBAAgB,GAE9EA;AACT;AAGA,IAAI4X,KAASO,IAETzL,KAAM,IAAIjC,EAAK,yBAAyB;AAAA,EAC1C,MAAM;AAAA,EACN,WAAW,SAAUiN,GAAM;AAAE,WAAOA,MAAS,OAAOA,IAAO;AAAA,EAAI;AACjE,CAAC,GAEGc,KAAM,IAAI/N,EAAK,yBAAyB;AAAA,EAC1C,MAAM;AAAA,EACN,WAAW,SAAUiN,GAAM;AAAE,WAAOA,MAAS,OAAOA,IAAO,CAAA;AAAA,EAAI;AACjE,CAAC,GAEGH,KAAM,IAAI9M,EAAK,yBAAyB;AAAA,EAC1C,MAAM;AAAA,EACN,WAAW,SAAUiN,GAAM;AAAE,WAAOA,MAAS,OAAOA,IAAO,CAAA;AAAA,EAAI;AACjE,CAAC,GAEGe,KAAW,IAAIb,GAAO;AAAA,EACxB,UAAU;AAAA,IACRlL;AAAA,IACA8L;AAAA,IACAjB;AAAA,EACJ;AACA,CAAC;AAED,SAASmB,GAAgBhB,GAAM;AAC7B,MAAIA,MAAS,KAAM,QAAO;AAE1B,MAAId,IAAMc,EAAK;AAEf,SAAQd,MAAQ,KAAKc,MAAS,OACtBd,MAAQ,MAAMc,MAAS,UAAUA,MAAS,UAAUA,MAAS;AACvE;AAEA,SAASiB,KAAoB;AAC3B,SAAO;AACT;AAEA,SAASC,GAAOC,GAAQ;AACtB,SAAOA,MAAW;AACpB;AAEA,IAAIC,KAAQ,IAAIrO,EAAK,0BAA0B;AAAA,EAC7C,MAAM;AAAA,EACN,SAASiO;AAAA,EACT,WAAWC;AAAA,EACX,WAAWC;AAAA,EACX,WAAW;AAAA,IACT,WAAW,WAAY;AAAE,aAAO;AAAA,IAAQ;AAAA,IACxC,WAAW,WAAY;AAAE,aAAO;AAAA,IAAQ;AAAA,IACxC,WAAW,WAAY;AAAE,aAAO;AAAA,IAAQ;AAAA,IACxC,WAAW,WAAY;AAAE,aAAO;AAAA,IAAQ;AAAA,IACxC,OAAW,WAAY;AAAE,aAAO;AAAA,IAAQ;AAAA,EAC5C;AAAA,EACE,cAAc;AAChB,CAAC;AAED,SAASG,GAAmBrB,GAAM;AAChC,MAAIA,MAAS,KAAM,QAAO;AAE1B,MAAId,IAAMc,EAAK;AAEf,SAAQd,MAAQ,MAAMc,MAAS,UAAUA,MAAS,UAAUA,MAAS,WAC7Dd,MAAQ,MAAMc,MAAS,WAAWA,MAAS,WAAWA,MAAS;AACzE;AAEA,SAASsB,GAAqBtB,GAAM;AAClC,SAAOA,MAAS,UACTA,MAAS,UACTA,MAAS;AAClB;AAEA,SAASuB,GAAUJ,GAAQ;AACzB,SAAO,OAAO,UAAU,SAAS,KAAKA,CAAM,MAAM;AACpD;AAEA,IAAIK,KAAO,IAAIzO,EAAK,0BAA0B;AAAA,EAC5C,MAAM;AAAA,EACN,SAASsO;AAAA,EACT,WAAWC;AAAA,EACX,WAAWC;AAAA,EACX,WAAW;AAAA,IACT,WAAW,SAAUJ,GAAQ;AAAE,aAAOA,IAAS,SAAS;AAAA,IAAS;AAAA,IACjE,WAAW,SAAUA,GAAQ;AAAE,aAAOA,IAAS,SAAS;AAAA,IAAS;AAAA,IACjE,WAAW,SAAUA,GAAQ;AAAE,aAAOA,IAAS,SAAS;AAAA,IAAS;AAAA,EACrE;AAAA,EACE,cAAc;AAChB,CAAC;AAED,SAASM,GAAU7S,GAAG;AACpB,SAAS,MAAeA,KAAOA,KAAK,MAC3B,MAAeA,KAAOA,KAAK,MAC3B,MAAeA,KAAOA,KAAK;AACtC;AAEA,SAAS8S,GAAU9S,GAAG;AACpB,SAAS,MAAeA,KAAOA,KAAK;AACtC;AAEA,SAAS+S,GAAU/S,GAAG;AACpB,SAAS,MAAeA,KAAOA,KAAK;AACtC;AAEA,SAASgT,GAAmB5B,GAAM;AAChC,MAAIA,MAAS,KAAM,QAAO;AAE1B,MAAId,IAAMc,EAAK,QACX5C,IAAQ,GACRyE,IAAY,IACZC;AAEJ,MAAI,CAAC5C,EAAK,QAAO;AASjB,MAPA4C,IAAK9B,EAAK5C,CAAK,IAGX0E,MAAO,OAAOA,MAAO,SACvBA,IAAK9B,EAAK,EAAE5C,CAAK,IAGf0E,MAAO,KAAK;AAEd,QAAI1E,IAAQ,MAAM8B,EAAK,QAAO;AAK9B,QAJA4C,IAAK9B,EAAK,EAAE5C,CAAK,GAIb0E,MAAO,KAAK;AAId,WAFA1E,KAEOA,IAAQ8B,GAAK9B;AAElB,YADA0E,IAAK9B,EAAK5C,CAAK,GACX0E,MAAO,KACX;AAAA,cAAIA,MAAO,OAAOA,MAAO,IAAK,QAAO;AACrC,UAAAD,IAAY;AAAA;AAEd,aAAOA,KAAaC,MAAO;AAAA,IAC7B;AAGA,QAAIA,MAAO,KAAK;AAId,WAFA1E,KAEOA,IAAQ8B,GAAK9B;AAElB,YADA0E,IAAK9B,EAAK5C,CAAK,GACX0E,MAAO,KACX;AAAA,cAAI,CAACL,GAAUzB,EAAK,WAAW5C,CAAK,CAAC,EAAG,QAAO;AAC/C,UAAAyE,IAAY;AAAA;AAEd,aAAOA,KAAaC,MAAO;AAAA,IAC7B;AAGA,QAAIA,MAAO,KAAK;AAId,WAFA1E,KAEOA,IAAQ8B,GAAK9B;AAElB,YADA0E,IAAK9B,EAAK5C,CAAK,GACX0E,MAAO,KACX;AAAA,cAAI,CAACJ,GAAU1B,EAAK,WAAW5C,CAAK,CAAC,EAAG,QAAO;AAC/C,UAAAyE,IAAY;AAAA;AAEd,aAAOA,KAAaC,MAAO;AAAA,IAC7B;AAAA,EACF;AAKA,MAAIA,MAAO,IAAK,QAAO;AAEvB,SAAO1E,IAAQ8B,GAAK9B;AAElB,QADA0E,IAAK9B,EAAK5C,CAAK,GACX0E,MAAO,KACX;AAAA,UAAI,CAACH,GAAU3B,EAAK,WAAW5C,CAAK,CAAC;AACnC,eAAO;AAET,MAAAyE,IAAY;AAAA;AAId,SAAI,GAACA,KAAaC,MAAO;AAG3B;AAEA,SAASC,GAAqB/B,GAAM;AAClC,MAAIxU,IAAQwU,GAAMgC,IAAO,GAAGF;AAc5B,MAZItW,EAAM,QAAQ,GAAG,MAAM,OACzBA,IAAQA,EAAM,QAAQ,MAAM,EAAE,IAGhCsW,IAAKtW,EAAM,CAAC,IAERsW,MAAO,OAAOA,MAAO,SACnBA,MAAO,QAAKE,IAAO,KACvBxW,IAAQA,EAAM,MAAM,CAAC,GACrBsW,IAAKtW,EAAM,CAAC,IAGVA,MAAU,IAAK,QAAO;AAE1B,MAAIsW,MAAO,KAAK;AACd,QAAItW,EAAM,CAAC,MAAM,IAAK,QAAOwW,IAAO,SAASxW,EAAM,MAAM,CAAC,GAAG,CAAC;AAC9D,QAAIA,EAAM,CAAC,MAAM,IAAK,QAAOwW,IAAO,SAASxW,EAAM,MAAM,CAAC,GAAG,EAAE;AAC/D,QAAIA,EAAM,CAAC,MAAM,IAAK,QAAOwW,IAAO,SAASxW,EAAM,MAAM,CAAC,GAAG,CAAC;AAAA,EAChE;AAEA,SAAOwW,IAAO,SAASxW,GAAO,EAAE;AAClC;AAEA,SAASyW,GAAUd,GAAQ;AACzB,SAAQ,OAAO,UAAU,SAAS,KAAKA,CAAM,MAAO,qBAC5CA,IAAS,MAAM,KAAK,CAACjD,EAAO,eAAeiD,CAAM;AAC3D;AAEA,IAAIe,KAAM,IAAInP,EAAK,yBAAyB;AAAA,EAC1C,MAAM;AAAA,EACN,SAAS6O;AAAA,EACT,WAAWG;AAAA,EACX,WAAWE;AAAA,EACX,WAAW;AAAA,IACT,QAAa,SAAUxS,GAAK;AAAE,aAAOA,KAAO,IAAI,OAAOA,EAAI,SAAS,CAAC,IAAI,QAAQA,EAAI,SAAS,CAAC,EAAE,MAAM,CAAC;AAAA,IAAG;AAAA,IAC3G,OAAa,SAAUA,GAAK;AAAE,aAAOA,KAAO,IAAI,OAAQA,EAAI,SAAS,CAAC,IAAI,QAASA,EAAI,SAAS,CAAC,EAAE,MAAM,CAAC;AAAA,IAAG;AAAA,IAC7G,SAAa,SAAUA,GAAK;AAAE,aAAOA,EAAI,SAAS,EAAE;AAAA,IAAG;AAAA;AAAA,IAEvD,aAAa,SAAUA,GAAK;AAAE,aAAOA,KAAO,IAAI,OAAOA,EAAI,SAAS,EAAE,EAAE,YAAW,IAAM,QAAQA,EAAI,SAAS,EAAE,EAAE,cAAc,MAAM,CAAC;AAAA,IAAG;AAAA,EAC9I;AAAA,EACE,cAAc;AAAA,EACd,cAAc;AAAA,IACZ,QAAa,CAAE,GAAI,KAAK;AAAA,IACxB,OAAa,CAAE,GAAI,KAAK;AAAA,IACxB,SAAa,CAAE,IAAI,KAAK;AAAA,IACxB,aAAa,CAAE,IAAI,KAAK;AAAA,EAC5B;AACA,CAAC,GAEG0S,KAAqB,IAAI;AAAA;AAAA,EAE3B;AAOuB;AAEzB,SAASC,GAAiBpC,GAAM;AAG9B,SAFI,EAAAA,MAAS,QAET,CAACmC,GAAmB,KAAKnC,CAAI;AAAA;AAAA,EAG7BA,EAAKA,EAAK,SAAS,CAAC,MAAM;AAKhC;AAEA,SAASqC,GAAmBrC,GAAM;AAChC,MAAIxU,GAAOwW;AASX,SAPAxW,IAASwU,EAAK,QAAQ,MAAM,EAAE,EAAE,YAAW,GAC3CgC,IAASxW,EAAM,CAAC,MAAM,MAAM,KAAK,GAE7B,KAAK,QAAQA,EAAM,CAAC,CAAC,KAAK,MAC5BA,IAAQA,EAAM,MAAM,CAAC,IAGnBA,MAAU,SACJwW,MAAS,IAAK,OAAO,oBAAoB,OAAO,oBAE/CxW,MAAU,SACZ,MAEFwW,IAAO,WAAWxW,GAAO,EAAE;AACpC;AAGA,IAAI8W,KAAyB;AAE7B,SAASC,GAAmBpB,GAAQhW,GAAO;AACzC,MAAIqX;AAEJ,MAAI,MAAMrB,CAAM;AACd,YAAQhW,GAAK;AAAA,MACX,KAAK;AAAa,eAAO;AAAA,MACzB,KAAK;AAAa,eAAO;AAAA,MACzB,KAAK;AAAa,eAAO;AAAA,IAC/B;AAAA,WACa,OAAO,sBAAsBgW;AACtC,YAAQhW,GAAK;AAAA,MACX,KAAK;AAAa,eAAO;AAAA,MACzB,KAAK;AAAa,eAAO;AAAA,MACzB,KAAK;AAAa,eAAO;AAAA,IAC/B;AAAA,WACa,OAAO,sBAAsBgW;AACtC,YAAQhW,GAAK;AAAA,MACX,KAAK;AAAa,eAAO;AAAA,MACzB,KAAK;AAAa,eAAO;AAAA,MACzB,KAAK;AAAa,eAAO;AAAA,IAC/B;AAAA,WACa+S,EAAO,eAAeiD,CAAM;AACrC,WAAO;AAGT,SAAAqB,IAAMrB,EAAO,SAAS,EAAE,GAKjBmB,GAAuB,KAAKE,CAAG,IAAIA,EAAI,QAAQ,KAAK,IAAI,IAAIA;AACrE;AAEA,SAASC,GAAQtB,GAAQ;AACvB,SAAQ,OAAO,UAAU,SAAS,KAAKA,CAAM,MAAM,sBAC3CA,IAAS,MAAM,KAAKjD,EAAO,eAAeiD,CAAM;AAC1D;AAEA,IAAIuB,KAAQ,IAAI3P,EAAK,2BAA2B;AAAA,EAC9C,MAAM;AAAA,EACN,SAASqP;AAAA,EACT,WAAWC;AAAA,EACX,WAAWI;AAAA,EACX,WAAWF;AAAA,EACX,cAAc;AAChB,CAAC,GAEGI,KAAO5B,GAAS,OAAO;AAAA,EACzB,UAAU;AAAA,IACRK;AAAA,IACAI;AAAA,IACAU;AAAA,IACAQ;AAAA,EACJ;AACA,CAAC,GAEGE,KAAOD,IAEPE,KAAmB,IAAI;AAAA,EACzB;AAEgB,GAEdC,KAAwB,IAAI;AAAA,EAC9B;AASwB;AAE1B,SAASC,GAAqB/C,GAAM;AAClC,SAAIA,MAAS,OAAa,KACtB6C,GAAiB,KAAK7C,CAAI,MAAM,QAChC8C,GAAsB,KAAK9C,CAAI,MAAM;AAE3C;AAEA,SAASgD,GAAuBhD,GAAM;AACpC,MAAI3L,GAAO4O,GAAMC,GAAOC,GAAKC,GAAMC,GAAQC,GAAQC,IAAW,GAC1DC,IAAQ,MAAMC,GAASC,GAAWC;AAKtC,MAHAtP,IAAQwO,GAAiB,KAAK7C,CAAI,GAC9B3L,MAAU,SAAMA,IAAQyO,GAAsB,KAAK9C,CAAI,IAEvD3L,MAAU,KAAM,OAAM,IAAI,MAAM,oBAAoB;AAQxD,MAJA4O,IAAO,CAAE5O,EAAM,CAAC,GAChB6O,IAAQ,CAAE7O,EAAM,CAAC,IAAK,GACtB8O,IAAM,CAAE9O,EAAM,CAAC,GAEX,CAACA,EAAM,CAAC;AACV,WAAO,IAAI,KAAK,KAAK,IAAI4O,GAAMC,GAAOC,CAAG,CAAC;AAS5C,MAJAC,IAAO,CAAE/O,EAAM,CAAC,GAChBgP,IAAS,CAAEhP,EAAM,CAAC,GAClBiP,IAAS,CAAEjP,EAAM,CAAC,GAEdA,EAAM,CAAC,GAAG;AAEZ,SADAkP,IAAWlP,EAAM,CAAC,EAAE,MAAM,GAAG,CAAC,GACvBkP,EAAS,SAAS;AACvB,MAAAA,KAAY;AAEd,IAAAA,IAAW,CAACA;AAAA,EACd;AAIA,SAAIlP,EAAM,CAAC,MACToP,IAAU,CAAEpP,EAAM,EAAE,GACpBqP,IAAY,EAAErP,EAAM,EAAE,KAAK,IAC3BmP,KAASC,IAAU,KAAKC,KAAa,KACjCrP,EAAM,CAAC,MAAM,QAAKmP,IAAQ,CAACA,KAGjCG,IAAO,IAAI,KAAK,KAAK,IAAIV,GAAMC,GAAOC,GAAKC,GAAMC,GAAQC,GAAQC,CAAQ,CAAC,GAEtEC,KAAOG,EAAK,QAAQA,EAAK,QAAO,IAAKH,CAAK,GAEvCG;AACT;AAEA,SAASC,GAAuBzC,GAAoB;AAClD,SAAOA,EAAO,YAAW;AAC3B;AAEA,IAAIxU,KAAY,IAAIoG,EAAK,+BAA+B;AAAA,EACtD,MAAM;AAAA,EACN,SAASgQ;AAAA,EACT,WAAWC;AAAA,EACX,YAAY;AAAA,EACZ,WAAWY;AACb,CAAC;AAED,SAASC,GAAiB7D,GAAM;AAC9B,SAAOA,MAAS,QAAQA,MAAS;AACnC;AAEA,IAAI8D,KAAQ,IAAI/Q,EAAK,2BAA2B;AAAA,EAC9C,MAAM;AAAA,EACN,SAAS8Q;AACX,CAAC,GASGE,KAAa;AAAA;AAGjB,SAASC,GAAkBhE,GAAM;AAC/B,MAAIA,MAAS,KAAM,QAAO;AAE1B,MAAInE,GAAMoI,GAAKC,IAAS,GAAGhF,IAAMc,EAAK,QAAQH,IAAMkE;AAGpD,OAAKE,IAAM,GAAGA,IAAM/E,GAAK+E;AAIvB,QAHApI,IAAOgE,EAAI,QAAQG,EAAK,OAAOiE,CAAG,CAAC,GAG/B,EAAApI,IAAO,KAGX;AAAA,UAAIA,IAAO,EAAG,QAAO;AAErB,MAAAqI,KAAU;AAAA;AAIZ,SAAQA,IAAS,MAAO;AAC1B;AAEA,SAASC,GAAoBnE,GAAM;AACjC,MAAIiE,GAAKG,GACLnX,IAAQ+S,EAAK,QAAQ,YAAY,EAAE,GACnCd,IAAMjS,EAAM,QACZ4S,IAAMkE,IACNM,IAAO,GACP/b,IAAS,CAAA;AAIb,OAAK2b,IAAM,GAAGA,IAAM/E,GAAK+E;AACvB,IAAKA,IAAM,MAAM,KAAMA,MACrB3b,EAAO,KAAM+b,KAAQ,KAAM,GAAI,GAC/B/b,EAAO,KAAM+b,KAAQ,IAAK,GAAI,GAC9B/b,EAAO,KAAK+b,IAAO,GAAI,IAGzBA,IAAQA,KAAQ,IAAKxE,EAAI,QAAQ5S,EAAM,OAAOgX,CAAG,CAAC;AAKpD,SAAAG,IAAYlF,IAAM,IAAK,GAEnBkF,MAAa,KACf9b,EAAO,KAAM+b,KAAQ,KAAM,GAAI,GAC/B/b,EAAO,KAAM+b,KAAQ,IAAK,GAAI,GAC9B/b,EAAO,KAAK+b,IAAO,GAAI,KACdD,MAAa,MACtB9b,EAAO,KAAM+b,KAAQ,KAAM,GAAI,GAC/B/b,EAAO,KAAM+b,KAAQ,IAAK,GAAI,KACrBD,MAAa,MACtB9b,EAAO,KAAM+b,KAAQ,IAAK,GAAI,GAGzB,IAAI,WAAW/b,CAAM;AAC9B;AAEA,SAASgc,GAAoBnD,GAAoB;AAC/C,MAAI7Y,IAAS,IAAI+b,IAAO,GAAGJ,GAAKvO,GAC5BwJ,IAAMiC,EAAO,QACbtB,IAAMkE;AAIV,OAAKE,IAAM,GAAGA,IAAM/E,GAAK+E;AACvB,IAAKA,IAAM,MAAM,KAAMA,MACrB3b,KAAUuX,EAAKwE,KAAQ,KAAM,EAAI,GACjC/b,KAAUuX,EAAKwE,KAAQ,KAAM,EAAI,GACjC/b,KAAUuX,EAAKwE,KAAQ,IAAK,EAAI,GAChC/b,KAAUuX,EAAIwE,IAAO,EAAI,IAG3BA,KAAQA,KAAQ,KAAKlD,EAAO8C,CAAG;AAKjC,SAAAvO,IAAOwJ,IAAM,GAETxJ,MAAS,KACXpN,KAAUuX,EAAKwE,KAAQ,KAAM,EAAI,GACjC/b,KAAUuX,EAAKwE,KAAQ,KAAM,EAAI,GACjC/b,KAAUuX,EAAKwE,KAAQ,IAAK,EAAI,GAChC/b,KAAUuX,EAAIwE,IAAO,EAAI,KAChB3O,MAAS,KAClBpN,KAAUuX,EAAKwE,KAAQ,KAAM,EAAI,GACjC/b,KAAUuX,EAAKwE,KAAQ,IAAK,EAAI,GAChC/b,KAAUuX,EAAKwE,KAAQ,IAAK,EAAI,GAChC/b,KAAUuX,EAAI,EAAE,KACPnK,MAAS,MAClBpN,KAAUuX,EAAKwE,KAAQ,IAAK,EAAI,GAChC/b,KAAUuX,EAAKwE,KAAQ,IAAK,EAAI,GAChC/b,KAAUuX,EAAI,EAAE,GAChBvX,KAAUuX,EAAI,EAAE,IAGXvX;AACT;AAEA,SAASic,GAAS9U,GAAK;AACrB,SAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,MAAO;AAClD;AAEA,IAAI+U,KAAS,IAAIzR,EAAK,4BAA4B;AAAA,EAChD,MAAM;AAAA,EACN,SAASiR;AAAA,EACT,WAAWG;AAAA,EACX,WAAWI;AAAA,EACX,WAAWD;AACb,CAAC,GAEGG,KAAoB,OAAO,UAAU,gBACrCC,KAAoB,OAAO,UAAU;AAEzC,SAASC,GAAgB3E,GAAM;AAC7B,MAAIA,MAAS,KAAM,QAAO;AAE1B,MAAI4E,IAAa,CAAA,GAAIxH,GAAOC,GAAQwH,GAAMC,GAASC,GAC/C5D,IAASnB;AAEb,OAAK5C,IAAQ,GAAGC,IAAS8D,EAAO,QAAQ/D,IAAQC,GAAQD,KAAS,GAAG;AAIlE,QAHAyH,IAAO1D,EAAO/D,CAAK,GACnB2H,IAAa,IAETL,GAAY,KAAKG,CAAI,MAAM,kBAAmB,QAAO;AAEzD,SAAKC,KAAWD;AACd,UAAIJ,GAAkB,KAAKI,GAAMC,CAAO;AACtC,YAAI,CAACC,EAAY,CAAAA,IAAa;AAAA,YACzB,QAAO;AAIhB,QAAI,CAACA,EAAY,QAAO;AAExB,QAAIH,EAAW,QAAQE,CAAO,MAAM,GAAI,CAAAF,EAAW,KAAKE,CAAO;AAAA,QAC1D,QAAO;AAAA,EACd;AAEA,SAAO;AACT;AAEA,SAASE,GAAkBhF,GAAM;AAC/B,SAAOA,MAAS,OAAOA,IAAO,CAAA;AAChC;AAEA,IAAIiF,KAAO,IAAIlS,EAAK,0BAA0B;AAAA,EAC5C,MAAM;AAAA,EACN,SAAS4R;AAAA,EACT,WAAWK;AACb,CAAC,GAEGE,KAAc,OAAO,UAAU;AAEnC,SAASC,GAAiBnF,GAAM;AAC9B,MAAIA,MAAS,KAAM,QAAO;AAE1B,MAAI5C,GAAOC,GAAQwH,GAAMO,GAAM9c,GAC3B6Y,IAASnB;AAIb,OAFA1X,IAAS,IAAI,MAAM6Y,EAAO,MAAM,GAE3B/D,IAAQ,GAAGC,IAAS8D,EAAO,QAAQ/D,IAAQC,GAAQD,KAAS,GAAG;AAOlE,QANAyH,IAAO1D,EAAO/D,CAAK,GAEf8H,GAAY,KAAKL,CAAI,MAAM,sBAE/BO,IAAO,OAAO,KAAKP,CAAI,GAEnBO,EAAK,WAAW,GAAG,QAAO;AAE9B,IAAA9c,EAAO8U,CAAK,IAAI,CAAEgI,EAAK,CAAC,GAAGP,EAAKO,EAAK,CAAC,CAAC,CAAC;AAAA,EAC1C;AAEA,SAAO;AACT;AAEA,SAASC,GAAmBrF,GAAM;AAChC,MAAIA,MAAS,KAAM,QAAO,CAAA;AAE1B,MAAI5C,GAAOC,GAAQwH,GAAMO,GAAM9c,GAC3B6Y,IAASnB;AAIb,OAFA1X,IAAS,IAAI,MAAM6Y,EAAO,MAAM,GAE3B/D,IAAQ,GAAGC,IAAS8D,EAAO,QAAQ/D,IAAQC,GAAQD,KAAS;AAC/D,IAAAyH,IAAO1D,EAAO/D,CAAK,GAEnBgI,IAAO,OAAO,KAAKP,CAAI,GAEvBvc,EAAO8U,CAAK,IAAI,CAAEgI,EAAK,CAAC,GAAGP,EAAKO,EAAK,CAAC,CAAC,CAAC;AAG1C,SAAO9c;AACT;AAEA,IAAIgd,KAAQ,IAAIvS,EAAK,2BAA2B;AAAA,EAC9C,MAAM;AAAA,EACN,SAASoS;AAAA,EACT,WAAWE;AACb,CAAC,GAEGE,KAAoB,OAAO,UAAU;AAEzC,SAASC,GAAexF,GAAM;AAC5B,MAAIA,MAAS,KAAM,QAAO;AAE1B,MAAItQ,GAAKyR,IAASnB;AAElB,OAAKtQ,KAAOyR;AACV,QAAIoE,GAAkB,KAAKpE,GAAQzR,CAAG,KAChCyR,EAAOzR,CAAG,MAAM;AAAM,aAAO;AAIrC,SAAO;AACT;AAEA,SAAS+V,GAAiBzF,GAAM;AAC9B,SAAOA,MAAS,OAAOA,IAAO,CAAA;AAChC;AAEA,IAAI0F,KAAM,IAAI3S,EAAK,yBAAyB;AAAA,EAC1C,MAAM;AAAA,EACN,SAASyS;AAAA,EACT,WAAWC;AACb,CAAC,GAEG5W,KAAW+T,GAAK,OAAO;AAAA,EACzB,UAAU;AAAA,IACRjW;AAAA,IACAmX;AAAA,EACJ;AAAA,EACE,UAAU;AAAA,IACRU;AAAA,IACAS;AAAA,IACAK;AAAA,IACAI;AAAA,EACJ;AACA,CAAC,GAUGC,KAAoB,OAAO,UAAU,gBAGrCC,KAAoB,GACpBC,KAAoB,GACpBC,KAAoB,GACpBC,KAAoB,GAGpBC,KAAiB,GACjBC,KAAiB,GACjBC,KAAiB,GAGjBC,KAAgC,uIAChCC,KAAgC,sBAChCC,KAAgC,eAChCC,KAAgC,0BAChCC,KAAgC;AAGpC,SAASC,GAAO/W,GAAK;AAAE,SAAO,OAAO,UAAU,SAAS,KAAKA,CAAG;AAAG;AAEnE,SAASgX,GAAO7X,GAAG;AACjB,SAAQA,MAAM,MAAkBA,MAAM;AACxC;AAEA,SAAS8X,GAAe9X,GAAG;AACzB,SAAQA,MAAM,KAAmBA,MAAM;AACzC;AAEA,SAAS+X,EAAa/X,GAAG;AACvB,SAAQA,MAAM,KACNA,MAAM,MACNA,MAAM,MACNA,MAAM;AAChB;AAEA,SAASgY,GAAkBhY,GAAG;AAC5B,SAAOA,MAAM,MACNA,MAAM,MACNA,MAAM,MACNA,MAAM,OACNA,MAAM;AACf;AAEA,SAASiY,GAAYjY,GAAG;AACtB,MAAIkY;AAEJ,SAAK,MAAelY,KAAOA,KAAK,KACvBA,IAAI,MAIbkY,IAAKlY,IAAI,IAEJ,MAAekY,KAAQA,KAAM,MACzBA,IAAK,KAAO,KAGd;AACT;AAEA,SAASC,GAAcnY,GAAG;AACxB,SAAIA,MAAM,MAAsB,IAC5BA,MAAM,MAAsB,IAC5BA,MAAM,KAAsB,IACzB;AACT;AAEA,SAASoY,GAAgBpY,GAAG;AAC1B,SAAK,MAAeA,KAAOA,KAAK,KACvBA,IAAI,KAGN;AACT;AAEA,SAASqY,GAAqBrY,GAAG;AAE/B,SAAQA,MAAM,KAAe,OACtBA,MAAM,KAAe,SACrBA,MAAM,KAAe,OACrBA,MAAM,OACNA,MAAM,IADe,MAErBA,MAAM,MAAe;AAAA,IACrBA,MAAM,MAAe,OACrBA,MAAM,MAAe,OACrBA,MAAM,MAAe,OACrBA,MAAM,MAAe,SACrBA,MAAM,KAAmB,MACzBA,MAAM,KAAe,MACrBA,MAAM,KAAe,MACrBA,MAAM,KAAe,OACrBA,MAAM,KAAe,MACrBA,MAAM,KAAe,MACrBA,MAAM,KAAe,WACrBA,MAAM,KAAe,WAAW;AACzC;AAEA,SAASsY,GAAkBtY,GAAG;AAC5B,SAAIA,KAAK,QACA,OAAO,aAAaA,CAAC,IAIvB,OAAO;AAAA,KACVA,IAAI,SAAa,MAAM;AAAA,KACvBA,IAAI,QAAY,QAAU;AAAA,EAChC;AACA;AAIA,SAASuY,GAAYhG,GAAQzR,GAAKlE,GAAO;AAEvC,EAAIkE,MAAQ,cACV,OAAO,eAAeyR,GAAQzR,GAAK;AAAA,IACjC,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,OAAOlE;AAAA,EACb,CAAK,IAED2V,EAAOzR,CAAG,IAAIlE;AAElB;AAEA,IAAI4b,KAAoB,IAAI,MAAM,GAAG,GACjCC,KAAkB,IAAI,MAAM,GAAG;AACnC,SAAS5f,KAAI,GAAGA,KAAI,KAAKA;AACvB,EAAA2f,GAAkB3f,EAAC,IAAIwf,GAAqBxf,EAAC,IAAI,IAAI,GACrD4f,GAAgB5f,EAAC,IAAIwf,GAAqBxf,EAAC;AAI7C,SAAS6f,GAAQra,GAAOmS,GAAS;AAC/B,OAAK,QAAQnS,GAEb,KAAK,WAAYmS,EAAQ,YAAgB,MACzC,KAAK,SAAYA,EAAQ,UAAgBvQ,IACzC,KAAK,YAAYuQ,EAAQ,aAAgB,MAGzC,KAAK,SAAYA,EAAQ,UAAgB,IAEzC,KAAK,OAAYA,EAAQ,QAAgB,IACzC,KAAK,WAAYA,EAAQ,YAAgB,MAEzC,KAAK,gBAAgB,KAAK,OAAO,kBACjC,KAAK,UAAgB,KAAK,OAAO,iBAEjC,KAAK,SAAanS,EAAM,QACxB,KAAK,WAAa,GAClB,KAAK,OAAa,GAClB,KAAK,YAAa,GAClB,KAAK,aAAa,GAIlB,KAAK,iBAAiB,IAEtB,KAAK,YAAY,CAAA;AAYnB;AAGA,SAASsa,GAAcC,GAAOjJ,GAAS;AACrC,MAAIG,IAAO;AAAA,IACT,MAAU8I,EAAM;AAAA,IAChB,QAAUA,EAAM,MAAM,MAAM,GAAG,EAAE;AAAA;AAAA,IACjC,UAAUA,EAAM;AAAA,IAChB,MAAUA,EAAM;AAAA,IAChB,QAAUA,EAAM,WAAWA,EAAM;AAAA,EACrC;AAEE,SAAA9I,EAAK,UAAUe,GAAQf,CAAI,GAEpB,IAAIN,EAAUG,GAASG,CAAI;AACpC;AAEA,SAAS+I,EAAWD,GAAOjJ,GAAS;AAClC,QAAMgJ,GAAcC,GAAOjJ,CAAO;AACpC;AAEA,SAASmJ,GAAaF,GAAOjJ,GAAS;AACpC,EAAIiJ,EAAM,aACRA,EAAM,UAAU,KAAK,MAAMD,GAAcC,GAAOjJ,CAAO,CAAC;AAE5D;AAGA,IAAIoJ,KAAoB;AAAA,EAEtB,MAAM,SAA6BH,GAAOld,GAAMsd,GAAM;AAEpD,QAAIvT,GAAOwT,GAAOC;AAElB,IAAIN,EAAM,YAAY,QACpBC,EAAWD,GAAO,gCAAgC,GAGhDI,EAAK,WAAW,KAClBH,EAAWD,GAAO,6CAA6C,GAGjEnT,IAAQ,uBAAuB,KAAKuT,EAAK,CAAC,CAAC,GAEvCvT,MAAU,QACZoT,EAAWD,GAAO,2CAA2C,GAG/DK,IAAQ,SAASxT,EAAM,CAAC,GAAG,EAAE,GAC7ByT,IAAQ,SAASzT,EAAM,CAAC,GAAG,EAAE,GAEzBwT,MAAU,KACZJ,EAAWD,GAAO,2CAA2C,GAG/DA,EAAM,UAAUI,EAAK,CAAC,GACtBJ,EAAM,kBAAmBM,IAAQ,GAE7BA,MAAU,KAAKA,MAAU,KAC3BJ,GAAaF,GAAO,0CAA0C;AAAA,EAElE;AAAA,EAEA,KAAK,SAA4BA,GAAOld,GAAMsd,GAAM;AAElD,QAAIG,GAAQC;AAEZ,IAAIJ,EAAK,WAAW,KAClBH,EAAWD,GAAO,6CAA6C,GAGjEO,IAASH,EAAK,CAAC,GACfI,IAASJ,EAAK,CAAC,GAEVtB,GAAmB,KAAKyB,CAAM,KACjCN,EAAWD,GAAO,6DAA6D,GAG7E7B,GAAkB,KAAK6B,EAAM,QAAQO,CAAM,KAC7CN,EAAWD,GAAO,gDAAgDO,IAAS,cAAc,GAGtFxB,GAAgB,KAAKyB,CAAM,KAC9BP,EAAWD,GAAO,8DAA8D;AAGlF,QAAI;AACF,MAAAQ,IAAS,mBAAmBA,CAAM;AAAA,IACpC,QAAc;AACZ,MAAAP,EAAWD,GAAO,8BAA8BQ,CAAM;AAAA,IACxD;AAEA,IAAAR,EAAM,OAAOO,CAAM,IAAIC;AAAA,EACzB;AACF;AAGA,SAASC,GAAeT,GAAOU,GAAOC,GAAKC,GAAW;AACpD,MAAIC,GAAWC,GAASC,GAAYC;AAEpC,MAAIN,IAAQC,GAAK;AAGf,QAFAK,IAAUhB,EAAM,MAAM,MAAMU,GAAOC,CAAG,GAElCC;AACF,WAAKC,IAAY,GAAGC,IAAUE,EAAQ,QAAQH,IAAYC,GAASD,KAAa;AAC9E,QAAAE,IAAaC,EAAQ,WAAWH,CAAS,GACnCE,MAAe,KACd,MAAQA,KAAcA,KAAc,WACzCd,EAAWD,GAAO,+BAA+B;AAAA,QAGhD,CAAIrB,GAAsB,KAAKqC,CAAO,KAC3Cf,EAAWD,GAAO,8CAA8C;AAGlE,IAAAA,EAAM,UAAUgB;AAAA,EAClB;AACF;AAEA,SAASC,GAAcjB,GAAOkB,GAAazY,GAAQ0Y,GAAiB;AAClE,MAAIrL,GAAY5N,GAAK0N,GAAOwL;AAQ5B,OANK1K,EAAO,SAASjO,CAAM,KACzBwX,EAAWD,GAAO,mEAAmE,GAGvFlK,IAAa,OAAO,KAAKrN,CAAM,GAE1BmN,IAAQ,GAAGwL,IAAWtL,EAAW,QAAQF,IAAQwL,GAAUxL,KAAS;AACvE,IAAA1N,IAAM4N,EAAWF,CAAK,GAEjBuI,GAAkB,KAAK+C,GAAahZ,CAAG,MAC1CyX,GAAYuB,GAAahZ,GAAKO,EAAOP,CAAG,CAAC,GACzCiZ,EAAgBjZ,CAAG,IAAI;AAG7B;AAEA,SAASmZ,GAAiBrB,GAAOgB,GAASG,GAAiBG,GAAQC,GAASC,GAC1EC,GAAWC,GAAgB1U,GAAU;AAErC,MAAI4I,GAAOwL;AAKX,MAAI,MAAM,QAAQG,CAAO;AAGvB,SAFAA,IAAU,MAAM,UAAU,MAAM,KAAKA,CAAO,GAEvC3L,IAAQ,GAAGwL,IAAWG,EAAQ,QAAQ3L,IAAQwL,GAAUxL,KAAS;AACpE,MAAI,MAAM,QAAQ2L,EAAQ3L,CAAK,CAAC,KAC9BqK,EAAWD,GAAO,6CAA6C,GAG7D,OAAOuB,KAAY,YAAYvC,GAAOuC,EAAQ3L,CAAK,CAAC,MAAM,sBAC5D2L,EAAQ3L,CAAK,IAAI;AAmBvB,MAXI,OAAO2L,KAAY,YAAYvC,GAAOuC,CAAO,MAAM,sBACrDA,IAAU,oBAIZA,IAAU,OAAOA,CAAO,GAEpBP,MAAY,SACdA,IAAU,CAAA,IAGRM,MAAW;AACb,QAAI,MAAM,QAAQE,CAAS;AACzB,WAAK5L,IAAQ,GAAGwL,IAAWI,EAAU,QAAQ5L,IAAQwL,GAAUxL,KAAS;AACtE,QAAAqL,GAAcjB,GAAOgB,GAASQ,EAAU5L,CAAK,GAAGuL,CAAe;AAAA;AAGjE,MAAAF,GAAcjB,GAAOgB,GAASQ,GAAWL,CAAe;AAAA;AAG1D,IAAI,CAACnB,EAAM,QACP,CAAC7B,GAAkB,KAAKgD,GAAiBI,CAAO,KAChDpD,GAAkB,KAAK6C,GAASO,CAAO,MACzCvB,EAAM,OAAOyB,KAAazB,EAAM,MAChCA,EAAM,YAAY0B,KAAkB1B,EAAM,WAC1CA,EAAM,WAAWhT,KAAYgT,EAAM,UACnCC,EAAWD,GAAO,wBAAwB,IAG5CL,GAAYqB,GAASO,GAASC,CAAS,GACvC,OAAOL,EAAgBI,CAAO;AAGhC,SAAOP;AACT;AAEA,SAASW,GAAc3B,GAAO;AAC5B,MAAI1F;AAEJ,EAAAA,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAO,KACT0F,EAAM,aACG1F,MAAO,MAChB0F,EAAM,YACFA,EAAM,MAAM,WAAWA,EAAM,QAAQ,MAAM,MAC7CA,EAAM,cAGRC,EAAWD,GAAO,0BAA0B,GAG9CA,EAAM,QAAQ,GACdA,EAAM,YAAYA,EAAM,UACxBA,EAAM,iBAAiB;AACzB;AAEA,SAAS4B,EAAoB5B,GAAO6B,GAAeC,GAAa;AAI9D,WAHIC,IAAa,GACbzH,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEvC1F,MAAO,KAAG;AACf,WAAO4E,GAAe5E,CAAE;AACtB,MAAIA,MAAO,KAAiB0F,EAAM,mBAAmB,OACnDA,EAAM,iBAAiBA,EAAM,WAE/B1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAG9C,QAAI6B,KAAiBvH,MAAO;AAC1B;AACE,QAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAAA,aACrC1F,MAAO,MAAgBA,MAAO,MAAgBA,MAAO;AAGhE,QAAI2E,GAAO3E,CAAE;AAOX,WANAqH,GAAc3B,CAAK,GAEnB1F,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAC1C+B,KACA/B,EAAM,aAAa,GAEZ1F,MAAO;AACZ,QAAA0F,EAAM,cACN1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAAA;AAG9C;AAAA,EAEJ;AAEA,SAAI8B,MAAgB,MAAMC,MAAe,KAAK/B,EAAM,aAAa8B,KAC/D5B,GAAaF,GAAO,uBAAuB,GAGtC+B;AACT;AAEA,SAASC,GAAsBhC,GAAO;AACpC,MAAIa,IAAYb,EAAM,UAClB1F;AAMJ,SAJAA,IAAK0F,EAAM,MAAM,WAAWa,CAAS,GAIhC,IAAAvG,MAAO,MAAeA,MAAO,OAC9BA,MAAO0F,EAAM,MAAM,WAAWa,IAAY,CAAC,KAC3CvG,MAAO0F,EAAM,MAAM,WAAWa,IAAY,CAAC,MAE7CA,KAAa,GAEbvG,IAAK0F,EAAM,MAAM,WAAWa,CAAS,GAEjCvG,MAAO,KAAK6E,EAAa7E,CAAE;AAMnC;AAEA,SAAS2H,GAAiBjC,GAAO/a,GAAO;AACtC,EAAIA,MAAU,IACZ+a,EAAM,UAAU,MACP/a,IAAQ,MACjB+a,EAAM,UAAUtJ,EAAO,OAAO;AAAA,GAAMzR,IAAQ,CAAC;AAEjD;AAGA,SAASid,GAAgBlC,GAAOmC,GAAYC,GAAsB;AAChE,MAAIC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IAAQ7C,EAAM,MACdgB,IAAUhB,EAAM,QAChB1F;AAoBJ,MAlBAA,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtCb,EAAa7E,CAAE,KACf8E,GAAkB9E,CAAE,KACpBA,MAAO,MACPA,MAAO,MACPA,MAAO,MACPA,MAAO,MACPA,MAAO,OACPA,MAAO,MACPA,MAAO,MACPA,MAAO,MACPA,MAAO,MACPA,MAAO,MACPA,MAAO,OAIPA,MAAO,MAAeA,MAAO,QAC/BgI,IAAYtC,EAAM,MAAM,WAAWA,EAAM,WAAW,CAAC,GAEjDb,EAAamD,CAAS,KACtBF,KAAwBhD,GAAkBkD,CAAS;AACrD,WAAO;AASX,OALAtC,EAAM,OAAO,UACbA,EAAM,SAAS,IACfuC,IAAeC,IAAaxC,EAAM,UAClCyC,IAAoB,IAEbnI,MAAO,KAAG;AACf,QAAIA,MAAO;AAGT,UAFAgI,IAAYtC,EAAM,MAAM,WAAWA,EAAM,WAAW,CAAC,GAEjDb,EAAamD,CAAS,KACtBF,KAAwBhD,GAAkBkD,CAAS;AACrD;AAAA,eAGOhI,MAAO;AAGhB,UAFA+H,IAAYrC,EAAM,MAAM,WAAWA,EAAM,WAAW,CAAC,GAEjDb,EAAakD,CAAS;AACxB;AAAA,WAGG;AAAA,UAAKrC,EAAM,aAAaA,EAAM,aAAagC,GAAsBhC,CAAK,KAClEoC,KAAwBhD,GAAkB9E,CAAE;AACrD;AAEK,UAAI2E,GAAO3E,CAAE;AAMlB,YALAoI,IAAQ1C,EAAM,MACd2C,IAAa3C,EAAM,WACnB4C,IAAc5C,EAAM,YACpB4B,EAAoB5B,GAAO,IAAO,EAAE,GAEhCA,EAAM,cAAcmC,GAAY;AAClC,UAAAM,IAAoB,IACpBnI,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ;AAC1C;AAAA,QACF,OAAO;AACL,UAAAA,EAAM,WAAWwC,GACjBxC,EAAM,OAAO0C,GACb1C,EAAM,YAAY2C,GAClB3C,EAAM,aAAa4C;AACnB;AAAA,QACF;AAAA;AAGF,IAAIH,MACFhC,GAAeT,GAAOuC,GAAcC,GAAY,EAAK,GACrDP,GAAiBjC,GAAOA,EAAM,OAAO0C,CAAK,GAC1CH,IAAeC,IAAaxC,EAAM,UAClCyC,IAAoB,KAGjBvD,GAAe5E,CAAE,MACpBkI,IAAaxC,EAAM,WAAW,IAGhC1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAAA,EAC9C;AAIA,SAFAS,GAAeT,GAAOuC,GAAcC,GAAY,EAAK,GAEjDxC,EAAM,SACD,MAGTA,EAAM,OAAO6C,GACb7C,EAAM,SAASgB,GACR;AACT;AAEA,SAAS8B,GAAuB9C,GAAOmC,GAAY;AACjD,MAAI7H,GACAiI,GAAcC;AAIlB,MAFAlI,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAO;AACT,WAAO;AAQT,OALA0F,EAAM,OAAO,UACbA,EAAM,SAAS,IACfA,EAAM,YACNuC,IAAeC,IAAaxC,EAAM,WAE1B1F,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,OAAO;AACvD,QAAI1F,MAAO;AAIT,UAHAmG,GAAeT,GAAOuC,GAAcvC,EAAM,UAAU,EAAI,GACxD1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAExC1F,MAAO;AACT,QAAAiI,IAAevC,EAAM,UACrBA,EAAM,YACNwC,IAAaxC,EAAM;AAAA;AAEnB,eAAO;AAAA,QAGJ,CAAIf,GAAO3E,CAAE,KAClBmG,GAAeT,GAAOuC,GAAcC,GAAY,EAAI,GACpDP,GAAiBjC,GAAO4B,EAAoB5B,GAAO,IAAOmC,CAAU,CAAC,GACrEI,IAAeC,IAAaxC,EAAM,YAEzBA,EAAM,aAAaA,EAAM,aAAagC,GAAsBhC,CAAK,IAC1EC,EAAWD,GAAO,8DAA8D,KAGhFA,EAAM,YACNwC,IAAaxC,EAAM;AAIvB,EAAAC,EAAWD,GAAO,4DAA4D;AAChF;AAEA,SAAS+C,GAAuB/C,GAAOmC,GAAY;AACjD,MAAII,GACAC,GACAQ,GACAC,GACAC,GACA5I;AAIJ,MAFAA,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAO;AACT,WAAO;AAQT,OALA0F,EAAM,OAAO,UACbA,EAAM,SAAS,IACfA,EAAM,YACNuC,IAAeC,IAAaxC,EAAM,WAE1B1F,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,OAAO,KAAG;AAC1D,QAAI1F,MAAO;AACT,aAAAmG,GAAeT,GAAOuC,GAAcvC,EAAM,UAAU,EAAI,GACxDA,EAAM,YACC;AAEF,QAAI1F,MAAO,IAAa;AAI7B,UAHAmG,GAAeT,GAAOuC,GAAcvC,EAAM,UAAU,EAAI,GACxD1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAExCf,GAAO3E,CAAE;AACX,QAAAsH,EAAoB5B,GAAO,IAAOmC,CAAU;AAAA,eAGnC7H,IAAK,OAAOsF,GAAkBtF,CAAE;AACzC,QAAA0F,EAAM,UAAUH,GAAgBvF,CAAE,GAClC0F,EAAM;AAAA,gBAEIkD,IAAM3D,GAAcjF,CAAE,KAAK,GAAG;AAIxC,aAHA0I,IAAYE,GACZD,IAAY,GAELD,IAAY,GAAGA;AACpB,UAAA1I,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,IAEvCkD,IAAM7D,GAAY/E,CAAE,MAAM,IAC7B2I,KAAaA,KAAa,KAAKC,IAG/BjD,EAAWD,GAAO,gCAAgC;AAItD,QAAAA,EAAM,UAAUN,GAAkBuD,CAAS,GAE3CjD,EAAM;AAAA,MAER;AACE,QAAAC,EAAWD,GAAO,yBAAyB;AAG7C,MAAAuC,IAAeC,IAAaxC,EAAM;AAAA,IAEpC,MAAO,CAAIf,GAAO3E,CAAE,KAClBmG,GAAeT,GAAOuC,GAAcC,GAAY,EAAI,GACpDP,GAAiBjC,GAAO4B,EAAoB5B,GAAO,IAAOmC,CAAU,CAAC,GACrEI,IAAeC,IAAaxC,EAAM,YAEzBA,EAAM,aAAaA,EAAM,aAAagC,GAAsBhC,CAAK,IAC1EC,EAAWD,GAAO,8DAA8D,KAGhFA,EAAM,YACNwC,IAAaxC,EAAM;AAAA,EAEvB;AAEA,EAAAC,EAAWD,GAAO,4DAA4D;AAChF;AAEA,SAASmD,GAAmBnD,GAAOmC,GAAY;AAC7C,MAAIiB,IAAW,IACXV,GACAC,GACAU,GACAC,IAAWtD,EAAM,KACjBgB,GACAuC,IAAWvD,EAAM,QACjBsC,GACAkB,GACAC,GACAC,GACAC,GACAxC,IAAkB,uBAAO,OAAO,IAAI,GACpCI,GACAD,GACAE,GACAlH;AAIJ,MAFAA,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAO;AACT,IAAAkJ,IAAa,IACbG,IAAY,IACZ3C,IAAU,CAAA;AAAA,WACD1G,MAAO;AAChB,IAAAkJ,IAAa,KACbG,IAAY,IACZ3C,IAAU,CAAA;AAAA;AAEV,WAAO;AAST,OANIhB,EAAM,WAAW,SACnBA,EAAM,UAAUA,EAAM,MAAM,IAAIgB,IAGlC1G,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAErC1F,MAAO,KAAG;AAKf,QAJAsH,EAAoB5B,GAAO,IAAMmC,CAAU,GAE3C7H,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAOkJ;AACT,aAAAxD,EAAM,YACNA,EAAM,MAAMsD,GACZtD,EAAM,SAASuD,GACfvD,EAAM,OAAO2D,IAAY,YAAY,YACrC3D,EAAM,SAASgB,GACR;AACF,IAAKoC,IAED9I,MAAO,MAEhB2F,EAAWD,GAAO,0CAA0C,IAH5DC,EAAWD,GAAO,8CAA8C,GAMlEsB,IAASC,IAAUC,IAAY,MAC/BiC,IAASC,IAAiB,IAEtBpJ,MAAO,OACTgI,IAAYtC,EAAM,MAAM,WAAWA,EAAM,WAAW,CAAC,GAEjDb,EAAamD,CAAS,MACxBmB,IAASC,IAAiB,IAC1B1D,EAAM,YACN4B,EAAoB5B,GAAO,IAAMmC,CAAU,KAI/CO,IAAQ1C,EAAM,MACd2C,IAAa3C,EAAM,WACnBqD,IAAOrD,EAAM,UACb4D,GAAY5D,GAAOmC,GAAY/D,IAAiB,IAAO,EAAI,GAC3DkD,IAAStB,EAAM,KACfuB,IAAUvB,EAAM,QAChB4B,EAAoB5B,GAAO,IAAMmC,CAAU,GAE3C7H,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,IAErC0D,KAAkB1D,EAAM,SAAS0C,MAAUpI,MAAO,OACrDmJ,IAAS,IACTnJ,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAC5C4B,EAAoB5B,GAAO,IAAMmC,CAAU,GAC3CyB,GAAY5D,GAAOmC,GAAY/D,IAAiB,IAAO,EAAI,GAC3DoD,IAAYxB,EAAM,SAGhB2D,IACFtC,GAAiBrB,GAAOgB,GAASG,GAAiBG,GAAQC,GAASC,GAAWkB,GAAOC,GAAYU,CAAI,IAC5FI,IACTzC,EAAQ,KAAKK,GAAiBrB,GAAO,MAAMmB,GAAiBG,GAAQC,GAASC,GAAWkB,GAAOC,GAAYU,CAAI,CAAC,IAEhHrC,EAAQ,KAAKO,CAAO,GAGtBK,EAAoB5B,GAAO,IAAMmC,CAAU,GAE3C7H,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAO,MACT8I,IAAW,IACX9I,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,KAE5CoD,IAAW;AAAA,EAEf;AAEA,EAAAnD,EAAWD,GAAO,uDAAuD;AAC3E;AAEA,SAAS6D,GAAgB7D,GAAOmC,GAAY;AAC1C,MAAII,GACAuB,GACAC,IAAiBvF,IACjBwF,IAAiB,IACjBC,IAAiB,IACjBC,IAAiB/B,GACjBgC,IAAiB,GACjBC,IAAiB,IACjBlB,GACA5I;AAIJ,MAFAA,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAO;AACT,IAAAwJ,IAAU;AAAA,WACDxJ,MAAO;AAChB,IAAAwJ,IAAU;AAAA;AAEV,WAAO;AAMT,OAHA9D,EAAM,OAAO,UACbA,EAAM,SAAS,IAER1F,MAAO;AAGZ,QAFAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAExC1F,MAAO,MAAeA,MAAO;AAC/B,MAAIkE,OAAkBuF,IACpBA,IAAYzJ,MAAO,KAAeoE,KAAgBD,KAElDwB,EAAWD,GAAO,sCAAsC;AAAA,cAGhDkD,IAAM1D,GAAgBlF,CAAE,MAAM;AACxC,MAAI4I,MAAQ,IACVjD,EAAWD,GAAO,8EAA8E,IACtFiE,IAIVhE,EAAWD,GAAO,2CAA2C,KAH7DkE,IAAa/B,IAAae,IAAM,GAChCe,IAAiB;AAAA;AAMnB;AAIJ,MAAI/E,GAAe5E,CAAE,GAAG;AACtB;AAAK,MAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAAA,WAC1Cd,GAAe5E,CAAE;AAExB,QAAIA,MAAO;AACT;AAAK,QAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAAA,aAC1C,CAACf,GAAO3E,CAAE,KAAMA,MAAO;AAAA,EAElC;AAEA,SAAOA,MAAO,KAAG;AAMf,SALAqH,GAAc3B,CAAK,GACnBA,EAAM,aAAa,GAEnB1F,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,IAElC,CAACiE,KAAkBjE,EAAM,aAAakE,MACtC5J,MAAO;AACb,MAAA0F,EAAM,cACN1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAO9C,QAJI,CAACiE,KAAkBjE,EAAM,aAAakE,MACxCA,IAAalE,EAAM,aAGjBf,GAAO3E,CAAE,GAAG;AACd,MAAA6J;AACA;AAAA,IACF;AAGA,QAAInE,EAAM,aAAakE,GAAY;AAGjC,MAAIH,MAAarF,KACfsB,EAAM,UAAUtJ,EAAO,OAAO;AAAA,GAAMsN,IAAiB,IAAIG,IAAaA,CAAU,IACvEJ,MAAavF,MAClBwF,MACFhE,EAAM,UAAU;AAAA;AAKpB;AAAA,IACF;AAsCA,SAnCI8D,IAGE5E,GAAe5E,CAAE,KACnB8J,IAAiB,IAEjBpE,EAAM,UAAUtJ,EAAO,OAAO;AAAA,GAAMsN,IAAiB,IAAIG,IAAaA,CAAU,KAGvEC,KACTA,IAAiB,IACjBpE,EAAM,UAAUtJ,EAAO,OAAO;AAAA,GAAMyN,IAAa,CAAC,KAGzCA,MAAe,IACpBH,MACFhE,EAAM,UAAU,OAKlBA,EAAM,UAAUtJ,EAAO,OAAO;AAAA,GAAMyN,CAAU,IAMhDnE,EAAM,UAAUtJ,EAAO,OAAO;AAAA,GAAMsN,IAAiB,IAAIG,IAAaA,CAAU,GAGlFH,IAAiB,IACjBC,IAAiB,IACjBE,IAAa,GACb5B,IAAevC,EAAM,UAEd,CAACf,GAAO3E,CAAE,KAAMA,MAAO;AAC5B,MAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAG9C,IAAAS,GAAeT,GAAOuC,GAAcvC,EAAM,UAAU,EAAK;AAAA,EAC3D;AAEA,SAAO;AACT;AAEA,SAASqE,GAAkBrE,GAAOmC,GAAY;AAC5C,MAAIO,GACAY,IAAYtD,EAAM,KAClBuD,IAAYvD,EAAM,QAClBgB,IAAY,CAAA,GACZsB,GACAgC,IAAY,IACZhK;AAIJ,MAAI0F,EAAM,mBAAmB,GAAI,QAAO;AAQxC,OANIA,EAAM,WAAW,SACnBA,EAAM,UAAUA,EAAM,MAAM,IAAIgB,IAGlC1G,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEnC1F,MAAO,MACR0F,EAAM,mBAAmB,OAC3BA,EAAM,WAAWA,EAAM,gBACvBC,EAAWD,GAAO,gDAAgD,IAGhE,EAAA1F,MAAO,OAIXgI,IAAYtC,EAAM,MAAM,WAAWA,EAAM,WAAW,CAAC,GAEjD,CAACb,EAAamD,CAAS,QAZZ;AAmBf,QAHAgC,IAAW,IACXtE,EAAM,YAEF4B,EAAoB5B,GAAO,IAAM,EAAE,KACjCA,EAAM,cAAcmC,GAAY;AAClC,MAAAnB,EAAQ,KAAK,IAAI,GACjB1G,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ;AAC1C;AAAA,IACF;AAUF,QAPA0C,IAAQ1C,EAAM,MACd4D,GAAY5D,GAAOmC,GAAY7D,IAAkB,IAAO,EAAI,GAC5D0C,EAAQ,KAAKhB,EAAM,MAAM,GACzB4B,EAAoB5B,GAAO,IAAM,EAAE,GAEnC1F,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,IAErCA,EAAM,SAAS0C,KAAS1C,EAAM,aAAamC,MAAgB7H,MAAO;AACrE,MAAA2F,EAAWD,GAAO,qCAAqC;AAAA,aAC9CA,EAAM,aAAamC;AAC5B;AAAA,EAEJ;AAEA,SAAImC,KACFtE,EAAM,MAAMsD,GACZtD,EAAM,SAASuD,GACfvD,EAAM,OAAO,YACbA,EAAM,SAASgB,GACR,MAEF;AACT;AAEA,SAASuD,GAAiBvE,GAAOmC,GAAYqC,GAAY;AACvD,MAAIlC,GACAmC,GACA/B,GACAgC,GACAC,GACAC,GACAtB,IAAgBtD,EAAM,KACtBuD,IAAgBvD,EAAM,QACtBgB,IAAgB,CAAA,GAChBG,IAAkB,uBAAO,OAAO,IAAI,GACpCG,IAAgB,MAChBC,IAAgB,MAChBC,IAAgB,MAChBqD,IAAgB,IAChBP,IAAgB,IAChBhK;AAIJ,MAAI0F,EAAM,mBAAmB,GAAI,QAAO;AAQxC,OANIA,EAAM,WAAW,SACnBA,EAAM,UAAUA,EAAM,MAAM,IAAIgB,IAGlC1G,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEnC1F,MAAO,KAAG;AAaf,QAZI,CAACuK,KAAiB7E,EAAM,mBAAmB,OAC7CA,EAAM,WAAWA,EAAM,gBACvBC,EAAWD,GAAO,gDAAgD,IAGpEsC,IAAYtC,EAAM,MAAM,WAAWA,EAAM,WAAW,CAAC,GACrD0C,IAAQ1C,EAAM,OAMT1F,MAAO,MAAeA,MAAO,OAAgB6E,EAAamD,CAAS;AAEtE,MAAIhI,MAAO,MACLuK,MACFxD,GAAiBrB,GAAOgB,GAASG,GAAiBG,GAAQC,GAAS,MAAMmD,GAAUC,GAAeC,CAAO,GACzGtD,IAASC,IAAUC,IAAY,OAGjC8C,IAAW,IACXO,IAAgB,IAChBJ,IAAe,MAENI,KAETA,IAAgB,IAChBJ,IAAe,MAGfxE,EAAWD,GAAO,mGAAmG,GAGvHA,EAAM,YAAY,GAClB1F,IAAKgI;AAAA,SAKA;AAKL,UAJAoC,IAAW1E,EAAM,MACjB2E,IAAgB3E,EAAM,WACtB4E,IAAU5E,EAAM,UAEZ,CAAC4D,GAAY5D,GAAOwE,GAAYnG,IAAkB,IAAO,EAAI;AAG/D;AAGF,UAAI2B,EAAM,SAAS0C,GAAO;AAGxB,aAFApI,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEnCd,GAAe5E,CAAE;AACtB,UAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAG9C,YAAI1F,MAAO;AACT,UAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAEvCb,EAAa7E,CAAE,KAClB2F,EAAWD,GAAO,yFAAyF,GAGzG6E,MACFxD,GAAiBrB,GAAOgB,GAASG,GAAiBG,GAAQC,GAAS,MAAMmD,GAAUC,GAAeC,CAAO,GACzGtD,IAASC,IAAUC,IAAY,OAGjC8C,IAAW,IACXO,IAAgB,IAChBJ,IAAe,IACfnD,IAAStB,EAAM,KACfuB,IAAUvB,EAAM;AAAA,iBAEPsE;AACT,UAAArE,EAAWD,GAAO,0DAA0D;AAAA;AAG5E,iBAAAA,EAAM,MAAMsD,GACZtD,EAAM,SAASuD,GACR;AAAA,MAGX,WAAWe;AACT,QAAArE,EAAWD,GAAO,gFAAgF;AAAA;AAGlG,eAAAA,EAAM,MAAMsD,GACZtD,EAAM,SAASuD,GACR;AAAA,IAEX;AA6BA,SAxBIvD,EAAM,SAAS0C,KAAS1C,EAAM,aAAamC,OACzC0C,MACFH,IAAW1E,EAAM,MACjB2E,IAAgB3E,EAAM,WACtB4E,IAAU5E,EAAM,WAGd4D,GAAY5D,GAAOmC,GAAY5D,IAAmB,IAAMkG,CAAY,MAClEI,IACFtD,IAAUvB,EAAM,SAEhBwB,IAAYxB,EAAM,SAIjB6E,MACHxD,GAAiBrB,GAAOgB,GAASG,GAAiBG,GAAQC,GAASC,GAAWkD,GAAUC,GAAeC,CAAO,GAC9GtD,IAASC,IAAUC,IAAY,OAGjCI,EAAoB5B,GAAO,IAAM,EAAE,GACnC1F,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,KAGvCA,EAAM,SAAS0C,KAAS1C,EAAM,aAAamC,MAAgB7H,MAAO;AACrE,MAAA2F,EAAWD,GAAO,oCAAoC;AAAA,aAC7CA,EAAM,aAAamC;AAC5B;AAAA,EAEJ;AAOA,SAAI0C,KACFxD,GAAiBrB,GAAOgB,GAASG,GAAiBG,GAAQC,GAAS,MAAMmD,GAAUC,GAAeC,CAAO,GAIvGN,MACFtE,EAAM,MAAMsD,GACZtD,EAAM,SAASuD,GACfvD,EAAM,OAAO,WACbA,EAAM,SAASgB,IAGVsD;AACT;AAEA,SAASQ,GAAgB9E,GAAO;AAC9B,MAAIa,GACAkE,IAAa,IACbC,IAAa,IACbC,GACAC,GACA5K;AAIJ,MAFAA,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAO,GAAa,QAAO;AAuB/B,MArBI0F,EAAM,QAAQ,QAChBC,EAAWD,GAAO,+BAA+B,GAGnD1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAExC1F,MAAO,MACTyK,IAAa,IACbzK,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,KAEnC1F,MAAO,MAChB0K,IAAU,IACVC,IAAY,MACZ3K,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,KAG5CiF,IAAY,KAGdpE,IAAYb,EAAM,UAEd+E,GAAY;AACd;AAAK,MAAAzK,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAAA,WAC1C1F,MAAO,KAAKA,MAAO;AAE1B,IAAI0F,EAAM,WAAWA,EAAM,UACzBkF,IAAUlF,EAAM,MAAM,MAAMa,GAAWb,EAAM,QAAQ,GACrD1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,KAE5CC,EAAWD,GAAO,oDAAoD;AAAA,EAE1E,OAAO;AACL,WAAO1F,MAAO,KAAK,CAAC6E,EAAa7E,CAAE;AAEjC,MAAIA,MAAO,OACJ0K,IAUH/E,EAAWD,GAAO,6CAA6C,KAT/DiF,IAAYjF,EAAM,MAAM,MAAMa,IAAY,GAAGb,EAAM,WAAW,CAAC,GAE1DlB,GAAmB,KAAKmG,CAAS,KACpChF,EAAWD,GAAO,iDAAiD,GAGrEgF,IAAU,IACVnE,IAAYb,EAAM,WAAW,KAMjC1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAG9C,IAAAkF,IAAUlF,EAAM,MAAM,MAAMa,GAAWb,EAAM,QAAQ,GAEjDnB,GAAwB,KAAKqG,CAAO,KACtCjF,EAAWD,GAAO,qDAAqD;AAAA,EAE3E;AAEA,EAAIkF,KAAW,CAACnG,GAAgB,KAAKmG,CAAO,KAC1CjF,EAAWD,GAAO,8CAA8CkF,CAAO;AAGzE,MAAI;AACF,IAAAA,IAAU,mBAAmBA,CAAO;AAAA,EACtC,QAAc;AACZ,IAAAjF,EAAWD,GAAO,4BAA4BkF,CAAO;AAAA,EACvD;AAEA,SAAIH,IACF/E,EAAM,MAAMkF,IAEH/G,GAAkB,KAAK6B,EAAM,QAAQiF,CAAS,IACvDjF,EAAM,MAAMA,EAAM,OAAOiF,CAAS,IAAIC,IAE7BD,MAAc,MACvBjF,EAAM,MAAM,MAAMkF,IAETD,MAAc,OACvBjF,EAAM,MAAM,uBAAuBkF,IAGnCjF,EAAWD,GAAO,4BAA4BiF,IAAY,GAAG,GAGxD;AACT;AAEA,SAASE,GAAmBnF,GAAO;AACjC,MAAIa,GACAvG;AAIJ,MAFAA,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAO,GAAa,QAAO;AAS/B,OAPI0F,EAAM,WAAW,QACnBC,EAAWD,GAAO,mCAAmC,GAGvD1F,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAC5Ca,IAAYb,EAAM,UAEX1F,MAAO,KAAK,CAAC6E,EAAa7E,CAAE,KAAK,CAAC8E,GAAkB9E,CAAE;AAC3D,IAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAG9C,SAAIA,EAAM,aAAaa,KACrBZ,EAAWD,GAAO,4DAA4D,GAGhFA,EAAM,SAASA,EAAM,MAAM,MAAMa,GAAWb,EAAM,QAAQ,GACnD;AACT;AAEA,SAASoF,GAAUpF,GAAO;AACxB,MAAIa,GAAWzU,GACXkO;AAIJ,MAFAA,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC1F,MAAO,GAAa,QAAO;AAK/B,OAHAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAC5Ca,IAAYb,EAAM,UAEX1F,MAAO,KAAK,CAAC6E,EAAa7E,CAAE,KAAK,CAAC8E,GAAkB9E,CAAE;AAC3D,IAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAG9C,SAAIA,EAAM,aAAaa,KACrBZ,EAAWD,GAAO,2DAA2D,GAG/E5T,IAAQ4T,EAAM,MAAM,MAAMa,GAAWb,EAAM,QAAQ,GAE9C7B,GAAkB,KAAK6B,EAAM,WAAW5T,CAAK,KAChD6T,EAAWD,GAAO,yBAAyB5T,IAAQ,GAAG,GAGxD4T,EAAM,SAASA,EAAM,UAAU5T,CAAK,GACpCwV,EAAoB5B,GAAO,IAAM,EAAE,GAC5B;AACT;AAEA,SAAS4D,GAAY5D,GAAOqF,GAAcC,GAAaC,GAAad,GAAc;AAChF,MAAIe,GACAC,GACAC,GACAC,IAAe,GACfC,IAAa,IACbC,IAAa,IACbC,GACAC,GACAC,GACAza,GACAiZ,GACAyB;AA6BJ,MA3BIjG,EAAM,aAAa,QACrBA,EAAM,SAAS,QAAQA,CAAK,GAG9BA,EAAM,MAAS,MACfA,EAAM,SAAS,MACfA,EAAM,OAAS,MACfA,EAAM,SAAS,MAEfwF,IAAmBC,IAAoBC,IACrCnH,OAAsB+G,KACtBhH,OAAsBgH,GAEpBC,KACE3D,EAAoB5B,GAAO,IAAM,EAAE,MACrC4F,IAAY,IAER5F,EAAM,aAAaqF,IACrBM,IAAe,IACN3F,EAAM,eAAeqF,IAC9BM,IAAe,IACN3F,EAAM,aAAaqF,MAC5BM,IAAe,MAKjBA,MAAiB;AACnB,WAAOb,GAAgB9E,CAAK,KAAKmF,GAAmBnF,CAAK;AACvD,MAAI4B,EAAoB5B,GAAO,IAAM,EAAE,KACrC4F,IAAY,IACZF,IAAwBF,GAEpBxF,EAAM,aAAaqF,IACrBM,IAAe,IACN3F,EAAM,eAAeqF,IAC9BM,IAAe,IACN3F,EAAM,aAAaqF,MAC5BM,IAAe,OAGjBD,IAAwB;AAwD9B,MAnDIA,MACFA,IAAwBE,KAAanB,KAGnCkB,MAAiB,KAAKpH,OAAsB+G,OAC1ClH,OAAoBkH,KAAejH,OAAqBiH,IAC1Dd,IAAaa,IAEbb,IAAaa,IAAe,GAG9BY,IAAcjG,EAAM,WAAWA,EAAM,WAEjC2F,MAAiB,IACfD,MACCrB,GAAkBrE,GAAOiG,CAAW,KACpC1B,GAAiBvE,GAAOiG,GAAazB,CAAU,MAChDrB,GAAmBnD,GAAOwE,CAAU,IACtCqB,IAAa,MAERJ,KAAqB5B,GAAgB7D,GAAOwE,CAAU,KACvD1B,GAAuB9C,GAAOwE,CAAU,KACxCzB,GAAuB/C,GAAOwE,CAAU,IAC1CqB,IAAa,KAEJT,GAAUpF,CAAK,KACxB6F,IAAa,KAET7F,EAAM,QAAQ,QAAQA,EAAM,WAAW,SACzCC,EAAWD,GAAO,2CAA2C,KAGtDkC,GAAgBlC,GAAOwE,GAAYpG,OAAoBkH,CAAW,MAC3EO,IAAa,IAET7F,EAAM,QAAQ,SAChBA,EAAM,MAAM,OAIZA,EAAM,WAAW,SACnBA,EAAM,UAAUA,EAAM,MAAM,IAAIA,EAAM,WAGjC2F,MAAiB,MAG1BE,IAAaH,KAAyBrB,GAAkBrE,GAAOiG,CAAW,KAI1EjG,EAAM,QAAQ;AAChB,IAAIA,EAAM,WAAW,SACnBA,EAAM,UAAUA,EAAM,MAAM,IAAIA,EAAM;AAAA,WAG/BA,EAAM,QAAQ;AAWvB,SAJIA,EAAM,WAAW,QAAQA,EAAM,SAAS,YAC1CC,EAAWD,GAAO,sEAAsEA,EAAM,OAAO,GAAG,GAGrG8F,IAAY,GAAGC,IAAe/F,EAAM,cAAc,QAAQ8F,IAAYC,GAAcD,KAAa;AAGpG,UAFAva,IAAOyU,EAAM,cAAc8F,CAAS,GAEhCva,EAAK,QAAQyU,EAAM,MAAM,GAAG;AAC9B,QAAAA,EAAM,SAASzU,EAAK,UAAUyU,EAAM,MAAM,GAC1CA,EAAM,MAAMzU,EAAK,KACbyU,EAAM,WAAW,SACnBA,EAAM,UAAUA,EAAM,MAAM,IAAIA,EAAM;AAExC;AAAA,MACF;AAAA,aAEOA,EAAM,QAAQ,KAAK;AAC5B,QAAI7B,GAAkB,KAAK6B,EAAM,QAAQA,EAAM,QAAQ,UAAU,GAAGA,EAAM,GAAG;AAC3E,MAAAzU,IAAOyU,EAAM,QAAQA,EAAM,QAAQ,UAAU,EAAEA,EAAM,GAAG;AAAA;AAMxD,WAHAzU,IAAO,MACPya,IAAWhG,EAAM,QAAQ,MAAMA,EAAM,QAAQ,UAAU,GAElD8F,IAAY,GAAGC,IAAeC,EAAS,QAAQF,IAAYC,GAAcD,KAAa;AACzF,YAAI9F,EAAM,IAAI,MAAM,GAAGgG,EAASF,CAAS,EAAE,IAAI,MAAM,MAAME,EAASF,CAAS,EAAE,KAAK;AAClF,UAAAva,IAAOya,EAASF,CAAS;AACzB;AAAA,QACF;AAIJ,IAAKva,KACH0U,EAAWD,GAAO,mBAAmBA,EAAM,MAAM,GAAG,GAGlDA,EAAM,WAAW,QAAQzU,EAAK,SAASyU,EAAM,QAC/CC,EAAWD,GAAO,kCAAkCA,EAAM,MAAM,0BAA0BzU,EAAK,OAAO,aAAayU,EAAM,OAAO,GAAG,GAGhIzU,EAAK,QAAQyU,EAAM,QAAQA,EAAM,GAAG,KAGvCA,EAAM,SAASzU,EAAK,UAAUyU,EAAM,QAAQA,EAAM,GAAG,GACjDA,EAAM,WAAW,SACnBA,EAAM,UAAUA,EAAM,MAAM,IAAIA,EAAM,WAJxCC,EAAWD,GAAO,kCAAkCA,EAAM,MAAM,gBAAgB;AAAA,EAOpF;AAEA,SAAIA,EAAM,aAAa,QACrBA,EAAM,SAAS,SAASA,CAAK,GAExBA,EAAM,QAAQ,QAASA,EAAM,WAAW,QAAQ6F;AACzD;AAEA,SAASK,GAAalG,GAAO;AAC3B,MAAImG,IAAgBnG,EAAM,UACtBa,GACAuF,GACAC,GACAC,IAAgB,IAChBhM;AAOJ,OALA0F,EAAM,UAAU,MAChBA,EAAM,kBAAkBA,EAAM,QAC9BA,EAAM,SAAS,uBAAO,OAAO,IAAI,GACjCA,EAAM,YAAY,uBAAO,OAAO,IAAI,IAE5B1F,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,OAAO,MACvD4B,EAAoB5B,GAAO,IAAM,EAAE,GAEnC1F,IAAK0F,EAAM,MAAM,WAAWA,EAAM,QAAQ,GAEtC,EAAAA,EAAM,aAAa,KAAK1F,MAAO,QALuB;AAa1D,SAJAgM,IAAgB,IAChBhM,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ,GAC5Ca,IAAYb,EAAM,UAEX1F,MAAO,KAAK,CAAC6E,EAAa7E,CAAE;AACjC,MAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAU9C,SAPAoG,IAAgBpG,EAAM,MAAM,MAAMa,GAAWb,EAAM,QAAQ,GAC3DqG,IAAgB,CAAA,GAEZD,EAAc,SAAS,KACzBnG,EAAWD,GAAO,8DAA8D,GAG3E1F,MAAO,KAAG;AACf,aAAO4E,GAAe5E,CAAE;AACtB,QAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAG9C,UAAI1F,MAAO,IAAa;AACtB;AAAK,UAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAAA,eAC1C1F,MAAO,KAAK,CAAC2E,GAAO3E,CAAE;AAC7B;AAAA,MACF;AAEA,UAAI2E,GAAO3E,CAAE,EAAG;AAIhB,WAFAuG,IAAYb,EAAM,UAEX1F,MAAO,KAAK,CAAC6E,EAAa7E,CAAE;AACjC,QAAAA,IAAK0F,EAAM,MAAM,WAAW,EAAEA,EAAM,QAAQ;AAG9C,MAAAqG,EAAc,KAAKrG,EAAM,MAAM,MAAMa,GAAWb,EAAM,QAAQ,CAAC;AAAA,IACjE;AAEA,IAAI1F,MAAO,KAAGqH,GAAc3B,CAAK,GAE7B7B,GAAkB,KAAKgC,IAAmBiG,CAAa,IACzDjG,GAAkBiG,CAAa,EAAEpG,GAAOoG,GAAeC,CAAa,IAEpEnG,GAAaF,GAAO,iCAAiCoG,IAAgB,GAAG;AAAA,EAE5E;AAyBA,MAvBAxE,EAAoB5B,GAAO,IAAM,EAAE,GAE/BA,EAAM,eAAe,KACrBA,EAAM,MAAM,WAAWA,EAAM,QAAQ,MAAU,MAC/CA,EAAM,MAAM,WAAWA,EAAM,WAAW,CAAC,MAAM,MAC/CA,EAAM,MAAM,WAAWA,EAAM,WAAW,CAAC,MAAM,MACjDA,EAAM,YAAY,GAClB4B,EAAoB5B,GAAO,IAAM,EAAE,KAE1BsG,KACTrG,EAAWD,GAAO,iCAAiC,GAGrD4D,GAAY5D,GAAOA,EAAM,aAAa,GAAGzB,IAAmB,IAAO,EAAI,GACvEqD,EAAoB5B,GAAO,IAAM,EAAE,GAE/BA,EAAM,mBACNpB,GAA8B,KAAKoB,EAAM,MAAM,MAAMmG,GAAenG,EAAM,QAAQ,CAAC,KACrFE,GAAaF,GAAO,kDAAkD,GAGxEA,EAAM,UAAU,KAAKA,EAAM,MAAM,GAE7BA,EAAM,aAAaA,EAAM,aAAagC,GAAsBhC,CAAK,GAAG;AAEtE,IAAIA,EAAM,MAAM,WAAWA,EAAM,QAAQ,MAAM,OAC7CA,EAAM,YAAY,GAClB4B,EAAoB5B,GAAO,IAAM,EAAE;AAErC;AAAA,EACF;AAEA,MAAIA,EAAM,WAAYA,EAAM,SAAS;AACnC,IAAAC,EAAWD,GAAO,uDAAuD;AAAA;AAEzE;AAEJ;AAGA,SAASuG,GAAc9gB,GAAOmS,GAAS;AACrC,EAAAnS,IAAQ,OAAOA,CAAK,GACpBmS,IAAUA,KAAW,CAAA,GAEjBnS,EAAM,WAAW,MAGfA,EAAM,WAAWA,EAAM,SAAS,CAAC,MAAM,MACvCA,EAAM,WAAWA,EAAM,SAAS,CAAC,MAAM,OACzCA,KAAS;AAAA,IAIPA,EAAM,WAAW,CAAC,MAAM,UAC1BA,IAAQA,EAAM,MAAM,CAAC;AAIzB,MAAIua,IAAQ,IAAIF,GAAQra,GAAOmS,CAAO,GAElC4O,IAAU/gB,EAAM,QAAQ,IAAI;AAUhC,OARI+gB,MAAY,OACdxG,EAAM,WAAWwG,GACjBvG,EAAWD,GAAO,mCAAmC,IAIvDA,EAAM,SAAS,MAERA,EAAM,MAAM,WAAWA,EAAM,QAAQ,MAAM;AAChD,IAAAA,EAAM,cAAc,GACpBA,EAAM,YAAY;AAGpB,SAAOA,EAAM,WAAYA,EAAM,SAAS;AACtC,IAAAkG,GAAalG,CAAK;AAGpB,SAAOA,EAAM;AACf;AAGA,SAASyG,GAAUhhB,GAAOihB,GAAU9O,GAAS;AAC3C,EAAI8O,MAAa,QAAQ,OAAOA,KAAa,YAAY,OAAO9O,IAAY,QAC1EA,IAAU8O,GACVA,IAAW;AAGb,MAAIC,IAAYJ,GAAc9gB,GAAOmS,CAAO;AAE5C,MAAI,OAAO8O,KAAa;AACtB,WAAOC;AAGT,WAAS/Q,IAAQ,GAAGC,IAAS8Q,EAAU,QAAQ/Q,IAAQC,GAAQD,KAAS;AACtE,IAAA8Q,EAASC,EAAU/Q,CAAK,CAAC;AAE7B;AAGA,SAASgR,GAAOnhB,GAAOmS,GAAS;AAC9B,MAAI+O,IAAYJ,GAAc9gB,GAAOmS,CAAO;AAE5C,MAAI+O,EAAU,WAAW,GAGlB;AAAA,QAAIA,EAAU,WAAW;AAC9B,aAAOA,EAAU,CAAC;AAEpB,UAAM,IAAI/P,EAAU,0DAA0D;AAAA;AAChF;AAGA,IAAIiQ,KAAYJ,IACZK,KAAYF,IAEZG,KAAS;AAAA,EACZ,SAASF;AAAA,EACT,MAAMC;AACP,GAQIE,KAAkB,OAAO,UAAU,UACnCC,KAAkB,OAAO,UAAU,gBAEnCC,KAA4B,OAC5BC,KAA4B,GAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,IAC5BC,KAA4B,KAC5BC,KAA4B,KAC5BC,KAA4B,KAE5BC,IAAmB,CAAA;AAEvBA,EAAiB,CAAI,IAAM;AAC3BA,EAAiB,CAAI,IAAM;AAC3BA,EAAiB,CAAI,IAAM;AAC3BA,EAAiB,CAAI,IAAM;AAC3BA,EAAiB,EAAI,IAAM;AAC3BA,EAAiB,EAAI,IAAM;AAC3BA,EAAiB,EAAI,IAAM;AAC3BA,EAAiB,EAAI,IAAM;AAC3BA,EAAiB,EAAI,IAAM;AAC3BA,EAAiB,EAAI,IAAM;AAC3BA,EAAiB,EAAI,IAAM;AAC3BA,EAAiB,GAAI,IAAM;AAC3BA,EAAiB,GAAI,IAAM;AAC3BA,EAAiB,IAAM,IAAI;AAC3BA,EAAiB,IAAM,IAAI;AAE3B,IAAIC,KAA6B;AAAA,EAC/B;AAAA,EAAK;AAAA,EAAK;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAM;AAAA,EAAM;AAAA,EAC3C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAO;AAAA,EAAO;AAC5C,GAEIC,KAA2B;AAE/B,SAASC,GAAgBpQ,GAAQL,GAAK;AACpC,MAAIvX,GAAQ8c,GAAMhI,GAAOC,GAAQ0C,GAAK5U,GAAO4H;AAE7C,MAAI8M,MAAQ,KAAM,QAAO,CAAA;AAKzB,OAHAvX,IAAS,CAAA,GACT8c,IAAO,OAAO,KAAKvF,CAAG,GAEjBzC,IAAQ,GAAGC,IAAS+H,EAAK,QAAQhI,IAAQC,GAAQD,KAAS;AAC7D,IAAA2C,IAAMqF,EAAKhI,CAAK,GAChBjS,IAAQ,OAAO0U,EAAIE,CAAG,CAAC,GAEnBA,EAAI,MAAM,GAAG,CAAC,MAAM,SACtBA,IAAM,uBAAuBA,EAAI,MAAM,CAAC,IAE1ChN,IAAOmN,EAAO,gBAAgB,SAAYH,CAAG,GAEzChN,KAAQ0b,GAAgB,KAAK1b,EAAK,cAAc5H,CAAK,MACvDA,IAAQ4H,EAAK,aAAa5H,CAAK,IAGjC7C,EAAOyX,CAAG,IAAI5U;AAGhB,SAAO7C;AACT;AAEA,SAASioB,GAAUC,GAAW;AAC5B,MAAIhT,GAAQuK,GAAQ1K;AAIpB,MAFAG,IAASgT,EAAU,SAAS,EAAE,EAAE,YAAW,GAEvCA,KAAa;AACf,IAAAzI,IAAS,KACT1K,IAAS;AAAA,WACAmT,KAAa;AACtB,IAAAzI,IAAS,KACT1K,IAAS;AAAA,WACAmT,KAAa;AACtB,IAAAzI,IAAS,KACT1K,IAAS;AAAA;AAET,UAAM,IAAIe,EAAU,+DAA+D;AAGrF,SAAO,OAAO2J,IAAS7J,EAAO,OAAO,KAAKb,IAASG,EAAO,MAAM,IAAIA;AACtE;AAGA,IAAIiT,KAAsB,GACtBC,KAAsB;AAE1B,SAASC,GAAMvR,GAAS;AACtB,OAAK,SAAgBA,EAAQ,UAAavQ,IAC1C,KAAK,SAAgB,KAAK,IAAI,GAAIuQ,EAAQ,UAAa,CAAC,GACxD,KAAK,gBAAgBA,EAAQ,iBAAoB,IACjD,KAAK,cAAgBA,EAAQ,eAAkB,IAC/C,KAAK,YAAiBlB,EAAO,UAAUkB,EAAQ,SAAY,IAAI,KAAKA,EAAQ,WAC5E,KAAK,WAAgBkR,GAAgB,KAAK,QAAQlR,EAAQ,UAAa,IAAI,GAC3E,KAAK,WAAgBA,EAAQ,YAAe,IAC5C,KAAK,YAAgBA,EAAQ,aAAgB,IAC7C,KAAK,SAAgBA,EAAQ,UAAa,IAC1C,KAAK,eAAgBA,EAAQ,gBAAmB,IAChD,KAAK,eAAgBA,EAAQ,gBAAmB,IAChD,KAAK,cAAgBA,EAAQ,gBAAmB,MAAMsR,KAAsBD,IAC5E,KAAK,cAAgBrR,EAAQ,eAAkB,IAC/C,KAAK,WAAgB,OAAOA,EAAQ,YAAgB,aAAaA,EAAQ,WAAc,MAEvF,KAAK,gBAAgB,KAAK,OAAO,kBACjC,KAAK,gBAAgB,KAAK,OAAO,kBAEjC,KAAK,MAAM,MACX,KAAK,SAAS,IAEd,KAAK,aAAa,CAAA,GAClB,KAAK,iBAAiB;AACxB;AAGA,SAASwR,GAAapT,GAAQqT,GAAQ;AAQpC,WAPIC,IAAM5S,EAAO,OAAO,KAAK2S,CAAM,GAC/B1kB,IAAW,GACX0J,IAAO,IACPvN,IAAS,IACTwF,GACAuP,IAASG,EAAO,QAEbrR,IAAWkR;AAChB,IAAAxH,IAAO2H,EAAO,QAAQ;AAAA,GAAMrR,CAAQ,GAChC0J,MAAS,MACX/H,IAAO0P,EAAO,MAAMrR,CAAQ,GAC5BA,IAAWkR,MAEXvP,IAAO0P,EAAO,MAAMrR,GAAU0J,IAAO,CAAC,GACtC1J,IAAW0J,IAAO,IAGhB/H,EAAK,UAAUA,MAAS;AAAA,MAAMxF,KAAUwoB,IAE5CxoB,KAAUwF;AAGZ,SAAOxF;AACT;AAEA,SAASyoB,GAAiBvJ,GAAOwJ,GAAO;AACtC,SAAO;AAAA,IAAO9S,EAAO,OAAO,KAAKsJ,EAAM,SAASwJ,CAAK;AACvD;AAEA,SAASC,GAAsBzJ,GAAOxS,GAAK;AACzC,MAAIoI,GAAOC,GAAQtK;AAEnB,OAAKqK,IAAQ,GAAGC,IAASmK,EAAM,cAAc,QAAQpK,IAAQC,GAAQD,KAAS;AAG5E,QAFArK,IAAOyU,EAAM,cAAcpK,CAAK,GAE5BrK,EAAK,QAAQiC,CAAG;AAClB,aAAO;AAIX,SAAO;AACT;AAGA,SAASkc,GAAatiB,GAAG;AACvB,SAAOA,MAAMkgB,MAAclgB,MAAM+f;AACnC;AAMA,SAASwC,GAAYviB,GAAG;AACtB,SAAS,MAAWA,KAAKA,KAAK,OACrB,OAAWA,KAAKA,KAAK,SAAaA,MAAM,QAAUA,MAAM,QACxD,SAAWA,KAAKA,KAAK,SAAaA,MAAM8f,MACxC,SAAW9f,KAAKA,KAAK;AAChC;AAOA,SAASwiB,GAAqBxiB,GAAG;AAC/B,SAAOuiB,GAAYviB,CAAC,KACfA,MAAM8f,MAEN9f,MAAMigB,MACNjgB,MAAMggB;AACb;AAWA,SAASyC,GAAYziB,GAAGJ,GAAM8iB,GAAS;AACrC,MAAIC,IAAwBH,GAAqBxiB,CAAC,GAC9C4iB,IAAYD,KAAyB,CAACL,GAAatiB,CAAC;AACxD;AAAA;AAAA,KAEE0iB;AAAA;AAAA,MACEC;AAAA,QACEA,KAEG3iB,MAAM0gB,MACN1gB,MAAMihB,MACNjhB,MAAMkhB,MACNlhB,MAAMohB,MACNphB,MAAMshB,OAGVthB,MAAMqgB,MACN,EAAEzgB,MAASghB,MAAc,CAACgC,MACzBJ,GAAqB5iB,CAAI,KAAK,CAAC0iB,GAAa1iB,CAAI,KAAKI,MAAMqgB,MAC3DzgB,MAASghB,MAAcgC;AAAA;AAC/B;AAGA,SAASC,GAAiB7iB,GAAG;AAI3B,SAAOuiB,GAAYviB,CAAC,KAAKA,MAAM8f,MAC1B,CAACwC,GAAatiB,CAAC,KAGfA,MAAM2gB,MACN3gB,MAAM+gB,MACN/gB,MAAM4gB,MACN5gB,MAAM0gB,MACN1gB,MAAMihB,MACNjhB,MAAMkhB,MACNlhB,MAAMohB,MACNphB,MAAMshB,MAENthB,MAAMqgB,MACNrgB,MAAMugB,MACNvgB,MAAMygB,MACNzgB,MAAMmgB,MACNngB,MAAMqhB,MACNrhB,MAAM6gB,MACN7gB,MAAM8gB,MACN9gB,MAAMwgB,MACNxgB,MAAMogB,MAENpgB,MAAMsgB,MACNtgB,MAAMghB,MACNhhB,MAAMmhB;AACb;AAGA,SAAS2B,GAAgB9iB,GAAG;AAE1B,SAAO,CAACsiB,GAAatiB,CAAC,KAAKA,MAAM4gB;AACnC;AAGA,SAASmC,GAAYnU,GAAQrJ,GAAK;AAChC,MAAIyd,IAAQpU,EAAO,WAAWrJ,CAAG,GAAGmP;AACpC,SAAIsO,KAAS,SAAUA,KAAS,SAAUzd,IAAM,IAAIqJ,EAAO,WACzD8F,IAAS9F,EAAO,WAAWrJ,IAAM,CAAC,GAC9BmP,KAAU,SAAUA,KAAU,UAExBsO,IAAQ,SAAU,OAAQtO,IAAS,QAAS,QAGjDsO;AACT;AAGA,SAASC,GAAoBrU,GAAQ;AACnC,MAAIsU,IAAiB;AACrB,SAAOA,EAAe,KAAKtU,CAAM;AACnC;AAEA,IAAIuU,KAAgB,GAChBC,KAAgB,GAChBC,KAAgB,GAChBC,KAAgB,GAChBC,KAAgB;AASpB,SAASC,GAAkB5U,GAAQ6U,GAAgBC,GAAgBC,GACjEC,GAAmBC,GAAaC,GAAapB,GAAS;AAEtD,MAAI7pB,GACAkrB,IAAO,GACPC,IAAW,MACXC,IAAe,IACfC,IAAkB,IAClBC,IAAmBR,MAAc,IACjCS,IAAoB,IACpB9W,IAAQuV,GAAiBE,GAAYnU,GAAQ,CAAC,CAAC,KACxCkU,GAAgBC,GAAYnU,GAAQA,EAAO,SAAS,CAAC,CAAC;AAEjE,MAAI6U,KAAkBK;AAGpB,SAAKjrB,IAAI,GAAGA,IAAI+V,EAAO,QAAQmV,KAAQ,QAAUlrB,KAAK,IAAIA,KAAK;AAE7D,UADAkrB,IAAOhB,GAAYnU,GAAQ/V,CAAC,GACxB,CAAC0pB,GAAYwB,CAAI;AACnB,eAAOR;AAET,MAAAjW,IAAQA,KAASmV,GAAYsB,GAAMC,GAAUtB,CAAO,GACpDsB,IAAWD;AAAA,IACb;AAAA,OACK;AAEL,SAAKlrB,IAAI,GAAGA,IAAI+V,EAAO,QAAQmV,KAAQ,QAAUlrB,KAAK,IAAIA,KAAK;AAE7D,UADAkrB,IAAOhB,GAAYnU,GAAQ/V,CAAC,GACxBkrB,MAAS/D;AACX,QAAAiE,IAAe,IAEXE,MACFD,IAAkBA;AAAA,QAEfrrB,IAAIurB,IAAoB,IAAIT,KAC5B/U,EAAOwV,IAAoB,CAAC,MAAM,KACrCA,IAAoBvrB;AAAA,eAEb,CAAC0pB,GAAYwB,CAAI;AAC1B,eAAOR;AAET,MAAAjW,IAAQA,KAASmV,GAAYsB,GAAMC,GAAUtB,CAAO,GACpDsB,IAAWD;AAAA,IACb;AAEA,IAAAG,IAAkBA,KAAoBC,KACnCtrB,IAAIurB,IAAoB,IAAIT,KAC5B/U,EAAOwV,IAAoB,CAAC,MAAM;AAAA,EACvC;AAIA,SAAI,CAACH,KAAgB,CAACC,IAGhB5W,KAAS,CAACwW,KAAe,CAACF,EAAkBhV,CAAM,IAC7CuU,KAEFU,MAAgB/B,KAAsByB,KAAeH,KAG1DM,IAAiB,KAAKT,GAAoBrU,CAAM,IAC3C2U,KAIJO,IAGED,MAAgB/B,KAAsByB,KAAeH,KAFnDc,IAAkBZ,KAAeD;AAG5C;AAQA,SAASgB,GAAYzL,GAAOhK,GAAQwT,GAAOkC,GAAO5B,GAAS;AACzD,EAAA9J,EAAM,OAAQ,WAAY;AACxB,QAAIhK,EAAO,WAAW;AACpB,aAAOgK,EAAM,gBAAgBkJ,KAAsB,OAAO;AAE5D,QAAI,CAAClJ,EAAM,iBACL4I,GAA2B,QAAQ5S,CAAM,MAAM,MAAM6S,GAAyB,KAAK7S,CAAM;AAC3F,aAAOgK,EAAM,gBAAgBkJ,KAAuB,MAAMlT,IAAS,MAAQ,MAAMA,IAAS;AAI9F,QAAIlP,IAASkZ,EAAM,SAAS,KAAK,IAAI,GAAGwJ,CAAK,GAQzCuB,IAAY/K,EAAM,cAAc,KAChC,KAAK,KAAK,IAAI,KAAK,IAAIA,EAAM,WAAW,EAAE,GAAGA,EAAM,YAAYlZ,CAAM,GAGrE+jB,IAAiBa,KAEf1L,EAAM,YAAY,MAAMwJ,KAASxJ,EAAM;AAC7C,aAAS2L,EAAc3V,GAAQ;AAC7B,aAAOyT,GAAsBzJ,GAAOhK,CAAM;AAAA,IAC5C;AAEA,YAAQ4U;AAAA,MAAkB5U;AAAA,MAAQ6U;AAAA,MAAgB7K,EAAM;AAAA,MAAQ+K;AAAA,MAC9DY;AAAA,MAAe3L,EAAM;AAAA,MAAaA,EAAM,eAAe,CAAC0L;AAAA,MAAO5B;AAAA,IAAO,GAAC;AAAA,MAEvE,KAAKS;AACH,eAAOvU;AAAA,MACT,KAAKwU;AACH,eAAO,MAAMxU,EAAO,QAAQ,MAAM,IAAI,IAAI;AAAA,MAC5C,KAAKyU;AACH,eAAO,MAAMmB,GAAY5V,GAAQgK,EAAM,MAAM,IACzC6L,GAAkBzC,GAAapT,GAAQlP,CAAM,CAAC;AAAA,MACpD,KAAK4jB;AACH,eAAO,MAAMkB,GAAY5V,GAAQgK,EAAM,MAAM,IACzC6L,GAAkBzC,GAAa0C,GAAW9V,GAAQ+U,CAAS,GAAGjkB,CAAM,CAAC;AAAA,MAC3E,KAAK6jB;AACH,eAAO,MAAMoB,GAAa/V,CAAM,IAAI;AAAA,MACtC;AACE,cAAM,IAAIY,EAAU,wCAAwC;AAAA,IACpE;AAAA,EACE;AACF;AAGA,SAASgV,GAAY5V,GAAQ8U,GAAgB;AAC3C,MAAIkB,IAAkB3B,GAAoBrU,CAAM,IAAI,OAAO8U,CAAc,IAAI,IAGzEmB,IAAgBjW,EAAOA,EAAO,SAAS,CAAC,MAAM;AAAA,GAC9CkW,IAAOD,MAASjW,EAAOA,EAAO,SAAS,CAAC,MAAM;AAAA,KAAQA,MAAW;AAAA,IACjEmW,IAAQD,IAAO,MAAOD,IAAO,KAAK;AAEtC,SAAOD,IAAkBG,IAAQ;AAAA;AACnC;AAGA,SAASN,GAAkB7V,GAAQ;AACjC,SAAOA,EAAOA,EAAO,SAAS,CAAC,MAAM;AAAA,IAAOA,EAAO,MAAM,GAAG,EAAE,IAAIA;AACpE;AAIA,SAAS8V,GAAW9V,GAAQoW,GAAO;AAoBjC,WAfIC,IAAS,kBAGTvrB,IAAU,WAAY;AACxB,QAAIwrB,IAAStW,EAAO,QAAQ;AAAA,CAAI;AAChC,WAAAsW,IAASA,MAAW,KAAKA,IAAStW,EAAO,QACzCqW,EAAO,YAAYC,GACZC,GAASvW,EAAO,MAAM,GAAGsW,CAAM,GAAGF,CAAK;AAAA,EAChD,KAEII,IAAmBxW,EAAO,CAAC,MAAM;AAAA,KAAQA,EAAO,CAAC,MAAM,KACvDyW,GAGA5f,GACIA,IAAQwf,EAAO,KAAKrW,CAAM,KAAI;AACpC,QAAIwK,IAAS3T,EAAM,CAAC,GAAGvG,IAAOuG,EAAM,CAAC;AACrC,IAAA4f,IAAgBnmB,EAAK,CAAC,MAAM,KAC5BxF,KAAU0f,KACL,CAACgM,KAAoB,CAACC,KAAgBnmB,MAAS,KAC9C;AAAA,IAAO,MACTimB,GAASjmB,GAAM8lB,CAAK,GACxBI,IAAmBC;AAAA,EACrB;AAEA,SAAO3rB;AACT;AAMA,SAASyrB,GAASjmB,GAAM8lB,GAAO;AAC7B,MAAI9lB,MAAS,MAAMA,EAAK,CAAC,MAAM,IAAK,QAAOA;AAa3C,WAVIomB,IAAU,UACV7f,GAEA6T,IAAQ,GAAGC,GAAKgM,IAAO,GAAGte,IAAO,GACjCvN,IAAS,IAML+L,IAAQ6f,EAAQ,KAAKpmB,CAAI;AAC/B,IAAA+H,IAAOxB,EAAM,OAETwB,IAAOqS,IAAQ0L,MACjBzL,IAAOgM,IAAOjM,IAASiM,IAAOte,GAC9BvN,KAAU;AAAA,IAAOwF,EAAK,MAAMoa,GAAOC,CAAG,GAEtCD,IAAQC,IAAM,IAEhBgM,IAAOte;AAKT,SAAAvN,KAAU;AAAA,GAENwF,EAAK,SAASoa,IAAQ0L,KAASO,IAAOjM,IACxC5f,KAAUwF,EAAK,MAAMoa,GAAOiM,CAAI,IAAI;AAAA,IAAOrmB,EAAK,MAAMqmB,IAAO,CAAC,IAE9D7rB,KAAUwF,EAAK,MAAMoa,CAAK,GAGrB5f,EAAO,MAAM,CAAC;AACvB;AAGA,SAASirB,GAAa/V,GAAQ;AAK5B,WAJIlV,IAAS,IACTqqB,IAAO,GACPyB,GAEK3sB,IAAI,GAAGA,IAAI+V,EAAO,QAAQmV,KAAQ,QAAUlrB,KAAK,IAAIA;AAC5D,IAAAkrB,IAAOhB,GAAYnU,GAAQ/V,CAAC,GAC5B2sB,IAAYjE,EAAiBwC,CAAI,GAE7B,CAACyB,KAAajD,GAAYwB,CAAI,KAChCrqB,KAAUkV,EAAO/V,CAAC,GACdkrB,KAAQ,UAASrqB,KAAUkV,EAAO/V,IAAI,CAAC,MAE3Ca,KAAU8rB,KAAa7D,GAAUoC,CAAI;AAIzC,SAAOrqB;AACT;AAEA,SAAS+rB,GAAkB7M,GAAOwJ,GAAO7P,GAAQ;AAC/C,MAAIqH,IAAU,IACVsC,IAAUtD,EAAM,KAChBpK,GACAC,GACA7R;AAEJ,OAAK4R,IAAQ,GAAGC,IAAS8D,EAAO,QAAQ/D,IAAQC,GAAQD,KAAS;AAC/D,IAAA5R,IAAQ2V,EAAO/D,CAAK,GAEhBoK,EAAM,aACRhc,IAAQgc,EAAM,SAAS,KAAKrG,GAAQ,OAAO/D,CAAK,GAAG5R,CAAK,KAItD8oB,GAAU9M,GAAOwJ,GAAOxlB,GAAO,IAAO,EAAK,KAC1C,OAAOA,IAAU,OACjB8oB,GAAU9M,GAAOwJ,GAAO,MAAM,IAAO,EAAK,OAEzCxI,MAAY,OAAIA,KAAW,OAAQhB,EAAM,eAAqB,KAAN,OAC5DgB,KAAWhB,EAAM;AAIrB,EAAAA,EAAM,MAAMsD,GACZtD,EAAM,OAAO,MAAMgB,IAAU;AAC/B;AAEA,SAAS+L,GAAmB/M,GAAOwJ,GAAO7P,GAAQ9C,GAAS;AACzD,MAAImK,IAAU,IACVsC,IAAUtD,EAAM,KAChBpK,GACAC,GACA7R;AAEJ,OAAK4R,IAAQ,GAAGC,IAAS8D,EAAO,QAAQ/D,IAAQC,GAAQD,KAAS;AAC/D,IAAA5R,IAAQ2V,EAAO/D,CAAK,GAEhBoK,EAAM,aACRhc,IAAQgc,EAAM,SAAS,KAAKrG,GAAQ,OAAO/D,CAAK,GAAG5R,CAAK,KAItD8oB,GAAU9M,GAAOwJ,IAAQ,GAAGxlB,GAAO,IAAM,IAAM,IAAO,EAAI,KACzD,OAAOA,IAAU,OACjB8oB,GAAU9M,GAAOwJ,IAAQ,GAAG,MAAM,IAAM,IAAM,IAAO,EAAI,QAExD,CAAC3S,KAAWmK,MAAY,QAC1BA,KAAWuI,GAAiBvJ,GAAOwJ,CAAK,IAGtCxJ,EAAM,QAAQoH,OAAmBpH,EAAM,KAAK,WAAW,CAAC,IAC1DgB,KAAW,MAEXA,KAAW,MAGbA,KAAWhB,EAAM;AAIrB,EAAAA,EAAM,MAAMsD,GACZtD,EAAM,OAAOgB,KAAW;AAC1B;AAEA,SAASgM,GAAiBhN,GAAOwJ,GAAO7P,GAAQ;AAC9C,MAAIqH,IAAgB,IAChBsC,IAAgBtD,EAAM,KACtBiN,IAAgB,OAAO,KAAKtT,CAAM,GAClC/D,GACAC,GACAqX,GACAC,GACAC;AAEJ,OAAKxX,IAAQ,GAAGC,IAASoX,EAAc,QAAQrX,IAAQC,GAAQD,KAAS;AActE,IAZAwX,IAAa,IACTpM,MAAY,OAAIoM,KAAc,OAE9BpN,EAAM,iBAAcoN,KAAc,MAEtCF,IAAYD,EAAcrX,CAAK,GAC/BuX,IAAcxT,EAAOuT,CAAS,GAE1BlN,EAAM,aACRmN,IAAcnN,EAAM,SAAS,KAAKrG,GAAQuT,GAAWC,CAAW,IAG7DL,GAAU9M,GAAOwJ,GAAO0D,GAAW,IAAO,EAAK,MAIhDlN,EAAM,KAAK,SAAS,SAAMoN,KAAc,OAE5CA,KAAcpN,EAAM,QAAQA,EAAM,eAAe,MAAM,MAAM,OAAOA,EAAM,eAAe,KAAK,MAEzF8M,GAAU9M,GAAOwJ,GAAO2D,GAAa,IAAO,EAAK,MAItDC,KAAcpN,EAAM,MAGpBgB,KAAWoM;AAGb,EAAApN,EAAM,MAAMsD,GACZtD,EAAM,OAAO,MAAMgB,IAAU;AAC/B;AAEA,SAASqM,GAAkBrN,GAAOwJ,GAAO7P,GAAQ9C,GAAS;AACxD,MAAImK,IAAgB,IAChBsC,IAAgBtD,EAAM,KACtBiN,IAAgB,OAAO,KAAKtT,CAAM,GAClC/D,GACAC,GACAqX,GACAC,GACAG,GACAF;AAGJ,MAAIpN,EAAM,aAAa;AAErB,IAAAiN,EAAc,KAAI;AAAA,WACT,OAAOjN,EAAM,YAAa;AAEnC,IAAAiN,EAAc,KAAKjN,EAAM,QAAQ;AAAA,WACxBA,EAAM;AAEf,UAAM,IAAIpJ,EAAU,0CAA0C;AAGhE,OAAKhB,IAAQ,GAAGC,IAASoX,EAAc,QAAQrX,IAAQC,GAAQD,KAAS;AActE,IAbAwX,IAAa,KAET,CAACvW,KAAWmK,MAAY,QAC1BoM,KAAc7D,GAAiBvJ,GAAOwJ,CAAK,IAG7C0D,IAAYD,EAAcrX,CAAK,GAC/BuX,IAAcxT,EAAOuT,CAAS,GAE1BlN,EAAM,aACRmN,IAAcnN,EAAM,SAAS,KAAKrG,GAAQuT,GAAWC,CAAW,IAG7DL,GAAU9M,GAAOwJ,IAAQ,GAAG0D,GAAW,IAAM,IAAM,EAAI,MAI5DI,IAAgBtN,EAAM,QAAQ,QAAQA,EAAM,QAAQ,OACpCA,EAAM,QAAQA,EAAM,KAAK,SAAS,MAE9CsN,MACEtN,EAAM,QAAQoH,OAAmBpH,EAAM,KAAK,WAAW,CAAC,IAC1DoN,KAAc,MAEdA,KAAc,OAIlBA,KAAcpN,EAAM,MAEhBsN,MACFF,KAAc7D,GAAiBvJ,GAAOwJ,CAAK,IAGxCsD,GAAU9M,GAAOwJ,IAAQ,GAAG2D,GAAa,IAAMG,CAAY,MAI5DtN,EAAM,QAAQoH,OAAmBpH,EAAM,KAAK,WAAW,CAAC,IAC1DoN,KAAc,MAEdA,KAAc,MAGhBA,KAAcpN,EAAM,MAGpBgB,KAAWoM;AAGb,EAAApN,EAAM,MAAMsD,GACZtD,EAAM,OAAOgB,KAAW;AAC1B;AAEA,SAASuM,GAAWvN,GAAOrG,GAAQP,GAAU;AAC3C,MAAI4H,GAASgF,GAAUpQ,GAAOC,GAAQtK,GAAM5H;AAI5C,OAFAqiB,IAAW5M,IAAW4G,EAAM,gBAAgBA,EAAM,eAE7CpK,IAAQ,GAAGC,IAASmQ,EAAS,QAAQpQ,IAAQC,GAAQD,KAAS;AAGjE,QAFArK,IAAOya,EAASpQ,CAAK,IAEhBrK,EAAK,cAAeA,EAAK,eACzB,CAACA,EAAK,cAAgB,OAAOoO,KAAW,YAAcA,aAAkBpO,EAAK,gBAC7E,CAACA,EAAK,aAAcA,EAAK,UAAUoO,CAAM,IAAI;AAYhD,UAVIP,IACE7N,EAAK,SAASA,EAAK,gBACrByU,EAAM,MAAMzU,EAAK,cAAcoO,CAAM,IAErCqG,EAAM,MAAMzU,EAAK,MAGnByU,EAAM,MAAM,KAGVzU,EAAK,WAAW;AAGlB,YAFA5H,IAAQqc,EAAM,SAASzU,EAAK,GAAG,KAAKA,EAAK,cAErCyb,GAAU,KAAKzb,EAAK,SAAS,MAAM;AACrC,UAAAyV,IAAUzV,EAAK,UAAUoO,GAAQhW,CAAK;AAAA,iBAC7BsjB,GAAgB,KAAK1b,EAAK,WAAW5H,CAAK;AACnD,UAAAqd,IAAUzV,EAAK,UAAU5H,CAAK,EAAEgW,GAAQhW,CAAK;AAAA;AAE7C,gBAAM,IAAIiT,EAAU,OAAOrL,EAAK,MAAM,iCAAiC5H,IAAQ,SAAS;AAG1F,QAAAqc,EAAM,OAAOgB;AAAA,MACf;AAEA,aAAO;AAAA,IACT;AAGF,SAAO;AACT;AAKA,SAAS8L,GAAU9M,GAAOwJ,GAAO7P,GAAQ6T,GAAO3W,GAAS6U,GAAO+B,GAAY;AAC1E,EAAAzN,EAAM,MAAM,MACZA,EAAM,OAAOrG,GAER4T,GAAWvN,GAAOrG,GAAQ,EAAK,KAClC4T,GAAWvN,GAAOrG,GAAQ,EAAI;AAGhC,MAAIpO,IAAOyb,GAAU,KAAKhH,EAAM,IAAI,GAChC8J,IAAU0D,GACVE;AAEJ,EAAIF,MACFA,IAASxN,EAAM,YAAY,KAAKA,EAAM,YAAYwJ;AAGpD,MAAImE,IAAgBpiB,MAAS,qBAAqBA,MAAS,kBACvDqiB,GACAC;AAWJ,MATIF,MACFC,IAAiB5N,EAAM,WAAW,QAAQrG,CAAM,GAChDkU,IAAYD,MAAmB,MAG5B5N,EAAM,QAAQ,QAAQA,EAAM,QAAQ,OAAQ6N,KAAc7N,EAAM,WAAW,KAAKwJ,IAAQ,OAC3F3S,IAAU,KAGRgX,KAAa7N,EAAM,eAAe4N,CAAc;AAClD,IAAA5N,EAAM,OAAO,UAAU4N;AAAA,OAClB;AAIL,QAHID,KAAiBE,KAAa,CAAC7N,EAAM,eAAe4N,CAAc,MACpE5N,EAAM,eAAe4N,CAAc,IAAI,KAErCriB,MAAS;AACX,MAAIiiB,KAAU,OAAO,KAAKxN,EAAM,IAAI,EAAE,WAAW,KAC/CqN,GAAkBrN,GAAOwJ,GAAOxJ,EAAM,MAAMnJ,CAAO,GAC/CgX,MACF7N,EAAM,OAAO,UAAU4N,IAAiB5N,EAAM,UAGhDgN,GAAiBhN,GAAOwJ,GAAOxJ,EAAM,IAAI,GACrC6N,MACF7N,EAAM,OAAO,UAAU4N,IAAiB,MAAM5N,EAAM;AAAA,aAG/CzU,MAAS;AAClB,MAAIiiB,KAAUxN,EAAM,KAAK,WAAW,KAC9BA,EAAM,iBAAiB,CAACyN,KAAcjE,IAAQ,IAChDuD,GAAmB/M,GAAOwJ,IAAQ,GAAGxJ,EAAM,MAAMnJ,CAAO,IAExDkW,GAAmB/M,GAAOwJ,GAAOxJ,EAAM,MAAMnJ,CAAO,GAElDgX,MACF7N,EAAM,OAAO,UAAU4N,IAAiB5N,EAAM,UAGhD6M,GAAkB7M,GAAOwJ,GAAOxJ,EAAM,IAAI,GACtC6N,MACF7N,EAAM,OAAO,UAAU4N,IAAiB,MAAM5N,EAAM;AAAA,aAG/CzU,MAAS;AAClB,MAAIyU,EAAM,QAAQ,OAChByL,GAAYzL,GAAOA,EAAM,MAAMwJ,GAAOkC,GAAO5B,CAAO;AAAA,SAEjD;AAAA,UAAIve,MAAS;AAClB,eAAO;AAEP,UAAIyU,EAAM,YAAa,QAAO;AAC9B,YAAM,IAAIpJ,EAAU,4CAA4CrL,CAAI;AAAA;AAGtE,IAAIyU,EAAM,QAAQ,QAAQA,EAAM,QAAQ,QActC0N,IAAS;AAAA,MACP1N,EAAM,IAAI,CAAC,MAAM,MAAMA,EAAM,IAAI,MAAM,CAAC,IAAIA,EAAM;AAAA,IAC1D,EAAQ,QAAQ,MAAM,KAAK,GAEjBA,EAAM,IAAI,CAAC,MAAM,MACnB0N,IAAS,MAAMA,IACNA,EAAO,MAAM,GAAG,EAAE,MAAM,uBACjCA,IAAS,OAAOA,EAAO,MAAM,EAAE,IAE/BA,IAAS,OAAOA,IAAS,KAG3B1N,EAAM,OAAO0N,IAAS,MAAM1N,EAAM;AAAA,EAEtC;AAEA,SAAO;AACT;AAEA,SAAS8N,GAAuBnU,GAAQqG,GAAO;AAC7C,MAAI+N,IAAU,CAAA,GACVC,IAAoB,CAAA,GACpBpY,GACAC;AAIJ,OAFAoY,GAAYtU,GAAQoU,GAASC,CAAiB,GAEzCpY,IAAQ,GAAGC,IAASmY,EAAkB,QAAQpY,IAAQC,GAAQD,KAAS;AAC1E,IAAAoK,EAAM,WAAW,KAAK+N,EAAQC,EAAkBpY,CAAK,CAAC,CAAC;AAEzD,EAAAoK,EAAM,iBAAiB,IAAI,MAAMnK,CAAM;AACzC;AAEA,SAASoY,GAAYtU,GAAQoU,GAASC,GAAmB;AACvD,MAAIf,GACArX,GACAC;AAEJ,MAAI8D,MAAW,QAAQ,OAAOA,KAAW;AAEvC,QADA/D,IAAQmY,EAAQ,QAAQpU,CAAM,GAC1B/D,MAAU;AACZ,MAAIoY,EAAkB,QAAQpY,CAAK,MAAM,MACvCoY,EAAkB,KAAKpY,CAAK;AAAA,aAG9BmY,EAAQ,KAAKpU,CAAM,GAEf,MAAM,QAAQA,CAAM;AACtB,WAAK/D,IAAQ,GAAGC,IAAS8D,EAAO,QAAQ/D,IAAQC,GAAQD,KAAS;AAC/D,QAAAqY,GAAYtU,EAAO/D,CAAK,GAAGmY,GAASC,CAAiB;AAAA;AAKvD,WAFAf,IAAgB,OAAO,KAAKtT,CAAM,GAE7B/D,IAAQ,GAAGC,IAASoX,EAAc,QAAQrX,IAAQC,GAAQD,KAAS;AACtE,QAAAqY,GAAYtU,EAAOsT,EAAcrX,CAAK,CAAC,GAAGmY,GAASC,CAAiB;AAK9E;AAEA,SAASE,GAAOzoB,GAAOmS,GAAS;AAC9B,EAAAA,IAAUA,KAAW,CAAA;AAErB,MAAIoI,IAAQ,IAAImJ,GAAMvR,CAAO;AAE7B,EAAKoI,EAAM,UAAQ8N,GAAuBroB,GAAOua,CAAK;AAEtD,MAAIhc,IAAQyB;AAMZ,SAJIua,EAAM,aACRhc,IAAQgc,EAAM,SAAS,KAAK,EAAE,IAAIhc,EAAK,GAAI,IAAIA,CAAK,IAGlD8oB,GAAU9M,GAAO,GAAGhc,GAAO,IAAM,EAAI,IAAUgc,EAAM,OAAO;AAAA,IAEzD;AACT;AAEA,IAAImO,KAASD,IAETE,KAAS;AAAA,EACZ,MAAMD;AACP;AAEA,SAASE,GAAQnlB,GAAMD,GAAI;AACzB,SAAO,WAAY;AACjB,UAAM,IAAI,MAAM,mBAAmBC,IAAO,wCAC1BD,IAAK,yCAAyC;AAAA,EAChE;AACF;AAGA,IAAIqlB,KAAsB/iB,GACtBgjB,KAAsB7V,IACtB8V,KAAsBjV,IACtBkV,KAAsBtT,IACtBuT,KAAsBtT,IACtBuT,KAAsBtnB,IACtBunB,KAAsB7H,GAAO,MAC7B8H,KAAsB9H,GAAO,SAC7B+H,KAAsBV,GAAO,MAC7BW,KAAsBnY,GAGtB7D,KAAQ;AAAA,EACV,QAAWiK;AAAA,EACX,OAAW9B;AAAA,EACX,KAAW7C;AAAA,EACX,MAAWuB;AAAA,EACX,OAAWkE;AAAA,EACX,KAAWI;AAAA,EACX,WAAW/Y;AAAA,EACX,MAAW6U;AAAA,EACX,KAAWU;AAAA,EACX,OAAW4B;AAAA,EACX,MAAWmB;AAAA,EACX,KAAWnE;AAAA,EACX,KAAW9L;AACb,GAGIwhB,KAAsBX,GAAQ,YAAY,MAAM,GAChDY,KAAsBZ,GAAQ,eAAe,SAAS,GACtDa,KAAsBb,GAAQ,YAAY,MAAM,GAEhDc,KAAS;AAAA,EACZ,MAAMb;AAAA,EACN,QAAQC;AAAA,EACR,iBAAiBC;AAAA,EACjB,aAAaC;AAAA,EACb,aAAaC;AAAA,EACb,gBAAgBC;AAAA,EAChB,MAAMC;AAAA,EACN,SAASC;AAAA,EACT,MAAMC;AAAA,EACN,eAAeC;AAAA,EACf,OAAOhc;AAAA,EACP,UAAUic;AAAA,EACV,aAAaC;AAAA,EACb,UAAUC;AACX;ACtwHK1gB,EAAM,UAAU,SACnBA,EAAM,UAAU,OAAO;AAAA,EACrB,QAAQ;AAAA,IACN,SACE;AAAA,IACF,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,EACT,KAAK;AAAA,IACH,SACE;AAAA,IACF,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA;AAAA,EAET,WAAW;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA;AAAA,EAET,UAAU;AAAA,IACR,SACE;AAAA,IACF,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,SACE;AAAA,IACF,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,SACE;AAAA,IACF,YAAY;AAAA,IACZ,QAAQ;AAAA,EAAA;AAAA,EAEV,QAAQ;AAAA,IACN,SACE;AAAA,IACF,YAAY;AAAA,EAAA;AAAA,EAEd,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,aAAa;AAAA;AAuBjB,SAAS4gB,GAAa;AAAA,EACpB,OAAAprB;AAAA,EACA,UAAAqrB;AAAA,EACA,oBAAAC;AAAA,EACA,UAAA7rB,IAAW;AAAA,EACX,WAAA8rB,IAAY;AAAA,EACZ,WAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,WAAA1tB,IAAY;AAAA,EACZ,OAAA4B,IAAQ,CAAA;AAAA,EACR,UAAA2G,IAAW;AACb,GAAsB;AACpB,QAAM,CAAColB,GAAOC,CAAQ,IAAIC,GAA2B,IAAI,GACnDC,IAAuBC,GAA6C,IAAI,GACxEC,IAAwBD,GAAOR,CAAkB,GACjDU,IAAiBF,GAAO,EAAK;AAGnC,EAAAC,EAAsB,UAAUT;AAGhC,QAAMW,IAAexd,GAAY,CAAC/N,MAAmC;AACnE,QAAI,CAACA,EAAK,KAAA,EAAQ,QAAO;AACzB,QAAI4F,MAAa;AACf,UAAI;AACF,oBAAK,MAAM5F,CAAI,GACR;AAAA,MACT,SAAS1D,GAAQ;AACf,cAAM+V,KAAkB/V,KAAA,gBAAAA,EAAG,YAAW,gBAChCkvB,IAAW,oBAAoB,KAAKnZ,CAAO;AACjD,YAAIzQ,IAAO;AACX,YAAI4pB,GAAU;AACZ,gBAAMvjB,IAAM,KAAK,IAAI,SAASujB,EAAS,CAAC,GAAG,EAAE,GAAGxrB,EAAK,MAAM;AAC3D,UAAA4B,IAAO;AACP,mBAASsP,IAAQ,GAAGA,IAAQjJ,GAAKiJ;AAC/B,YAAIlR,EAAK,WAAWkR,CAAK,MAAM,MAAItP;AAAA,QAEvC,OAAO;AACL,gBAAM6pB,IAAY,gBAAgB,KAAKpZ,CAAO;AAC9C,UAAIoZ,MAAW7pB,IAAO,SAAS6pB,EAAU,CAAC,GAAG,EAAE,KAAK;AAAA,QACtD;AACA,eAAO,EAAE,MAAA7pB,GAAM,SAAAyQ,EAAA;AAAA,MACjB;AAEF,QAAI;AACFqZ,aAAAA,GAAK,KAAK1rB,CAAI,GACP;AAAA,IACT,SAAS1D,GAAQ;AACf,YAAMkW,IAAOlW,EAAE;AACf,aAAO;AAAA,QACL,OAAMkW,KAAA,gBAAAA,EAAM,UAAS,SAAYA,EAAK,OAAO,IAAI;AAAA,QACjD,SAASlW,EAAE,WAAW;AAAA,MAAA;AAAA,IAE1B;AAAA,EACF,GAAG,CAACsJ,CAAQ,CAAC,GAGP+lB,IAAqB5d,GAAY,CAAC6d,MAA0B;;AAChE,IAAAX,EAASW,CAAG,IACZ9tB,IAAAutB,EAAsB,YAAtB,QAAAvtB,EAAA,KAAAutB,GAAgC,CAACO,GAAKA,KAAA,gBAAAA,EAAK;AAAA,EAC7C,GAAG,CAAA,CAAE,GAGCrpB,IAAewL;AAAA,IACnB,CAAC8d,MAAqB;AACpB,MAAI9sB,MAEJusB,EAAe,UAAU,IAGrBH,EAAqB,WACvB,aAAaA,EAAqB,OAAO,GAE3CA,EAAqB,UAAU,WAAW,MAAM;AAC9C,QAAAQ,EAAmBJ,EAAaM,CAAQ,CAAC,GACzCV,EAAqB,UAAU;AAAA,MACjC,GAAGJ,CAAU,GAEbJ,EAASkB,CAAQ;AAAA,IACnB;AAAA,IACA,CAAClB,GAAUY,GAAcI,GAAoBZ,GAAYhsB,CAAQ;AAAA,EAAA;AAInE,EAAA+sB,GAAU,MACD,MAAM;AACX,IAAIX,EAAqB,WACvB,aAAaA,EAAqB,OAAO;AAAA,EAE7C,GACC,CAAA,CAAE,GAGLW,GAAU,MAAM;AACd,QAAIR,EAAe,SAAS;AAC1B,MAAAA,EAAe,UAAU;AACzB;AAAA,IACF;AAGA,IAAIH,EAAqB,YACvB,aAAaA,EAAqB,OAAO,GACzCA,EAAqB,UAAU,OAEjCQ,EAAmBJ,EAAajsB,CAAK,CAAC;AAAA,EACxC,GAAG,CAACA,GAAOisB,GAAcI,CAAkB,CAAC;AAG5C,QAAMI,IAAYnc,GAAQ,MACjBtQ,EAAM,MAAM;AAAA,CAAI,EAAE,QACxB,CAACA,CAAK,CAAC,GAGJ0sB,IAAcpc,GAAQ,MACnB,MAAM,KAAK,EAAE,QAAQmc,EAAA,GAAa,CAAC,GAAGxwB,MAAMA,IAAI,CAAC,EAAE,KAAK;AAAA,CAAI,GAClE,CAACwwB,CAAS,CAAC,GAGR,CAACE,GAAQC,CAAS,IAAIhB,GAAS,EAAK;AAC1C,EAAAY,GAAU,MAAM;AACd,UAAMK,IAAY,MAAM;AACtB,YAAMC,IAAK,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,SAAS,EAAE,KAAA;AAElF,MAAAF,EAAUE,EAAG,WAAW,IAAI,KAAKA,EAAG,WAAW,IAAI,KAAKA,EAAG,WAAW,IAAI,KAAKA,EAAG,WAAW,IAAI,CAAC;AAAA,IACpG;AACA,IAAAD,EAAA;AAEA,UAAME,IAAW,IAAI,iBAAiBF,CAAS;AAC/C,WAAAE,EAAS,QAAQ,SAAS,iBAAiB,EAAE,YAAY,IAAM,iBAAiB,CAAC,SAAS,YAAY,EAAA,CAAG,GAClG,MAAMA,EAAS,WAAA;AAAA,EACxB,GAAG,CAAA,CAAE;AAEL,QAAM7f,IAAQyf,IAASK,GAAO,SAASA,GAAO,SAExCC,IAAiBxe;AAAA,IACrB,CAACye,MAA8C;AAC7C,YAAM3lB,IAAO2lB,EAAW,CAAC;AACzB,aAAI3lB,MAAS,YACJ,EAAE,OAAOolB,IAAS,YAAY,UAAA,IAEnCplB,MAAS,cAAcA,MAAS,SAC3B,EAAE,OAAOolB,IAAS,YAAY,UAAA,IAEhC,CAAA;AAAA,IACT;AAAA,IACA,CAACA,CAAM;AAAA,EAAA,GAIHQ,IAAqB1e;AAAA,IACzB,CAAC4B,MACC,gBAAA+c,GAACpc,MAAU,OAAA9D,GAAc,MAAAmD,GAAY,UAAA/J,GAClC,UAAA,CAAC,EAAE,QAAAP,GAAQ,cAAAoL,GAAc,eAAAC,QACxB,gBAAAgc,GAAAC,IAAA,EACG,YAAO,IAAI,CAAC/qB,GAAMrG,MAAM;AACvB,YAAMqxB,IAAarxB,IAAI,GACjBsxB,MAAc7B,KAAA,gBAAAA,EAAO,UAAS4B;AACpC,aACE,gBAAAF;AAAA,QAAC;AAAA,QAAA;AAAA,UAEE,GAAGjc,EAAa,EAAE,MAAA7O,GAAM;AAAA,UACzB,OAAO;AAAA,YACL,YAAYirB,KAAc,0DAA0D;AAAA,YACpF,gBAAgBA,KAAc,oCAAoC;AAAA,UAAA;AAAA,UAGnE,UAAAjrB,EAAK,IAAI,CAAC4E,GAAOhD,OAAQ;AACxB,kBAAMhG,KAAQkT,EAAc,EAAE,OAAAlK,GAAO,GAC/BsmB,KAAcP,EAAe/lB,EAAM,KAAK;AAC9C,mBACE,gBAAAkmB;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEE,GAAGlvB;AAAA,gBACJ,OAAO;AAAA,kBACL,GAAGA,GAAM;AAAA,kBACT,GAAGsvB;AAAA,kBACH,SAAS/tB,IAAW,MAAM;AAAA,gBAAA;AAAA,cAC5B;AAAA,cANKyE;AAAA,YAAA;AAAA,UASX,CAAC;AAAA,QAAA;AAAA,QArBIjI;AAAA,MAAA;AAAA,IAwBX,CAAC,GACH,GAEJ;AAAA,IAEF,CAACyvB,GAAOxe,GAAO+f,GAAgB3mB,GAAU7G,CAAQ;AAAA,EAAA,GAG7CguB,IAAqB3B,GAAuB,IAAI,GAChD4B,IAAiB5B,GAAuB,IAAI,GAE5C6B,IAAqB,MAAM;AAC/B,IAAIF,EAAmB,WAAWC,EAAe,YAC/CA,EAAe,QAAQ,YAAYD,EAAmB,QAAQ;AAAA,EAElE;AAEA,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,oBAAoB7vB,CAAS,GAAG,KAAA;AAAA,MAC3C,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,GAAG,GAAG4B,EAAA;AAAA,MAG9D,UAAA;AAAA,QAAA,gBAAAytB,GAAC,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAqBN;AAAA,QACF,gBAAAQ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,6BAA6BlC,IAAQ,WAAW,EAAE;AAAA,YAC7D,OAAO;AAAA,cACL,QAAQ,aAAaA,IAAQ,qBAAqB,kBAAkB;AAAA,cACpE,YAAYjsB,IAAW,2BAA2B;AAAA,cAClD,WAAA8rB;AAAA,cACA,WAAAC;AAAA,YAAA;AAAA,YAIF,UAAA;AAAA,cAAA,gBAAA4B;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,KAAKM;AAAA,kBACL,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,cAAc;AAAA,oBACd,YAAY;AAAA,oBACZ,aAAa;AAAA,oBACb,OAAO;AAAA,oBACP,YAAY;AAAA,oBACZ,UAAU;AAAA,oBACV,YAAY;AAAA,oBACZ,WAAW;AAAA,oBACX,YAAY;AAAA,oBACZ,YAAY;AAAA,oBACZ,UAAU;AAAA,oBACV,UAAU;AAAA,kBAAA;AAAA,kBAGX,UAAAhB;AAAA,gBAAA;AAAA,cAAA;AAAA,cAIH,gBAAAU;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,KAAKK;AAAA,kBACL,WAAW,wBAAwBhuB,IAAW,eAAe,EAAE;AAAA,kBAC/D,OAAO;AAAA,oBACL,MAAM;AAAA,oBACN,WAAW;AAAA,oBACX,WAAW;AAAA,oBACX,OAAO;AAAA,kBAAA;AAAA,kBAET,UAAUkuB;AAAA,kBAEV,UAAA,gBAAAP;AAAA,oBAACnvB;AAAAA,oBAAA;AAAA,sBACC,OAAA+B;AAAA,sBACA,eAAeiD;AAAA,sBACf,WAAWkqB;AAAA,sBACX,SAAS;AAAA,sBACT,UAAA1tB;AAAA,sBACA,OAAO;AAAA,wBACL,YAAY;AAAA,wBACZ,UAAU;AAAA,wBACV,YAAY;AAAA,wBACZ,WAAW,KAAK,IAAI8rB,IAAY,GAAG,CAAC;AAAA,wBACpC,YAAY;AAAA,wBACZ,OAAO;AAAA,wBACP,YAAY;AAAA,wBACZ,UAAU;AAAA,sBAAA;AAAA,sBAEZ,mBAAkB;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACpB;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,QAIDG,KACC,gBAAAkC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,OAAO;AAAA,cACP,UAAU;AAAA,cACV,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,cAAc;AAAA,YAAA;AAAA,YAEjB,UAAA;AAAA,cAAA;AAAA,cACOlC,EAAM;AAAA,cAAK;AAAA,cAAGA,EAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC5B;AAAA,IAAA;AAAA,EAAA;AAIR;","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"yaml.js","sources":["../node_modules/.pnpm/react-simple-code-editor@0.14.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-simple-code-editor/lib/index.js","../node_modules/.pnpm/prism-react-renderer@2.4.1_react@18.3.1/node_modules/prism-react-renderer/dist/index.mjs","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/identity.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/visit.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/directives.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/anchors.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/applyReviver.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/toJS.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/Node.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/Alias.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/Scalar.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/createNode.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/Collection.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyComment.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/foldFlowLines.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyString.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringify.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyPair.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/log.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/Pair.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyCollection.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/YAMLMap.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/common/map.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/YAMLSeq.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/common/seq.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/common/string.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/common/null.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/core/bool.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyNumber.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/core/float.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/core/int.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/core/schema.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/json/schema.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/tags.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/Schema.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyDocument.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/Document.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/errors.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-props.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/util-contains-newline.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/util-map-includes.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-block-map.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-block-seq.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-end.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/compose-collection.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/compose-scalar.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/compose-node.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/compose-doc.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/composer.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/cst.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/lexer.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/line-counter.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/parser.js","../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/public-api.js","../src/components/YamlTextArea.tsx"],"sourcesContent":["\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\nvar KEYCODE_M = 77;\nvar KEYCODE_PARENS = 57;\nvar KEYCODE_BRACKETS = 219;\nvar KEYCODE_QUOTE = 222;\nvar KEYCODE_BACK_QUOTE = 192;\nvar HISTORY_LIMIT = 100;\nvar HISTORY_TIME_GAP = 3000;\nvar isWindows = typeof window !== 'undefined' &&\n 'navigator' in window &&\n /Win/i.test(navigator.platform);\nvar isMacLike = typeof window !== 'undefined' &&\n 'navigator' in window &&\n /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\nvar className = 'npm__react-simple-code-editor__textarea';\nvar cssText = /* CSS */ \"\\n/**\\n * Reset the text fill color so that placeholder is visible\\n */\\n.\".concat(className, \":empty {\\n -webkit-text-fill-color: inherit !important;\\n}\\n\\n/**\\n * Hack to apply on some CSS on IE10 and IE11\\n */\\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\\n /**\\n * IE doesn't support '-webkit-text-fill-color'\\n * So we use 'color: transparent' to make the text transparent on IE\\n * Unlike other browsers, it doesn't affect caret color in IE\\n */\\n .\").concat(className, \" {\\n color: transparent !important;\\n }\\n\\n .\").concat(className, \"::selection {\\n background-color: #accef7 !important;\\n color: transparent !important;\\n }\\n}\\n\");\nvar Editor = React.forwardRef(function Editor(props, ref) {\n var autoFocus = props.autoFocus, disabled = props.disabled, form = props.form, highlight = props.highlight, _a = props.ignoreTabKey, ignoreTabKey = _a === void 0 ? false : _a, _b = props.insertSpaces, insertSpaces = _b === void 0 ? true : _b, maxLength = props.maxLength, minLength = props.minLength, name = props.name, onBlur = props.onBlur, onClick = props.onClick, onFocus = props.onFocus, onKeyDown = props.onKeyDown, onKeyUp = props.onKeyUp, onValueChange = props.onValueChange, _c = props.padding, padding = _c === void 0 ? 0 : _c, placeholder = props.placeholder, preClassName = props.preClassName, readOnly = props.readOnly, required = props.required, style = props.style, _d = props.tabSize, tabSize = _d === void 0 ? 2 : _d, textareaClassName = props.textareaClassName, textareaId = props.textareaId, value = props.value, rest = __rest(props, [\"autoFocus\", \"disabled\", \"form\", \"highlight\", \"ignoreTabKey\", \"insertSpaces\", \"maxLength\", \"minLength\", \"name\", \"onBlur\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"onValueChange\", \"padding\", \"placeholder\", \"preClassName\", \"readOnly\", \"required\", \"style\", \"tabSize\", \"textareaClassName\", \"textareaId\", \"value\"]);\n var historyRef = React.useRef({\n stack: [],\n offset: -1,\n });\n var inputRef = React.useRef(null);\n var _e = React.useState(true), capture = _e[0], setCapture = _e[1];\n var contentStyle = {\n paddingTop: typeof padding === 'object' ? padding.top : padding,\n paddingRight: typeof padding === 'object' ? padding.right : padding,\n paddingBottom: typeof padding === 'object' ? padding.bottom : padding,\n paddingLeft: typeof padding === 'object' ? padding.left : padding,\n };\n var highlighted = highlight(value);\n var getLines = function (text, position) {\n return text.substring(0, position).split('\\n');\n };\n var recordChange = React.useCallback(function (record, overwrite) {\n var _a, _b, _c;\n if (overwrite === void 0) { overwrite = false; }\n var _d = historyRef.current, stack = _d.stack, offset = _d.offset;\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n historyRef.current.stack = stack.slice(0, offset + 1);\n // Limit the number of operations to 100\n var count = historyRef.current.stack.length;\n if (count > HISTORY_LIMIT) {\n var extras = count - HISTORY_LIMIT;\n historyRef.current.stack = stack.slice(extras, count);\n historyRef.current.offset = Math.max(historyRef.current.offset - extras, 0);\n }\n }\n var timestamp = Date.now();\n if (overwrite) {\n var last = historyRef.current.stack[historyRef.current.offset];\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n // A previous entry exists and was in short interval\n // Match the last word in the line\n var re = /[^a-z0-9]([a-z0-9]+)$/i;\n // Get the previous line\n var previous = (_a = getLines(last.value, last.selectionStart)\n .pop()) === null || _a === void 0 ? void 0 : _a.match(re);\n // Get the current line\n var current = (_b = getLines(record.value, record.selectionStart)\n .pop()) === null || _b === void 0 ? void 0 : _b.match(re);\n if ((previous === null || previous === void 0 ? void 0 : previous[1]) && ((_c = current === null || current === void 0 ? void 0 : current[1]) === null || _c === void 0 ? void 0 : _c.startsWith(previous[1]))) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n historyRef.current.stack[historyRef.current.offset] = __assign(__assign({}, record), { timestamp: timestamp });\n return;\n }\n }\n }\n // Add the new operation to the stack\n historyRef.current.stack.push(__assign(__assign({}, record), { timestamp: timestamp }));\n historyRef.current.offset++;\n }, []);\n var recordCurrentState = React.useCallback(function () {\n var input = inputRef.current;\n if (!input)\n return;\n // Save current state of the input\n var value = input.value, selectionStart = input.selectionStart, selectionEnd = input.selectionEnd;\n recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n });\n }, [recordChange]);\n var updateInput = function (record) {\n var input = inputRef.current;\n if (!input)\n return;\n // Update values and selection state\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(record.value);\n };\n var applyEdits = function (record) {\n // Save last selection state\n var input = inputRef.current;\n var last = historyRef.current.stack[historyRef.current.offset];\n if (last && input) {\n historyRef.current.stack[historyRef.current.offset] = __assign(__assign({}, last), { selectionStart: input.selectionStart, selectionEnd: input.selectionEnd });\n }\n // Save the changes\n recordChange(record);\n updateInput(record);\n };\n var undoEdit = function () {\n var _a = historyRef.current, stack = _a.stack, offset = _a.offset;\n // Get the previous edit\n var record = stack[offset - 1];\n if (record) {\n // Apply the changes and update the offset\n updateInput(record);\n historyRef.current.offset = Math.max(offset - 1, 0);\n }\n };\n var redoEdit = function () {\n var _a = historyRef.current, stack = _a.stack, offset = _a.offset;\n // Get the next edit\n var record = stack[offset + 1];\n if (record) {\n // Apply the changes and update the offset\n updateInput(record);\n historyRef.current.offset = Math.min(offset + 1, stack.length - 1);\n }\n };\n var handleKeyDown = function (e) {\n if (onKeyDown) {\n onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n if (e.key === 'Escape') {\n e.currentTarget.blur();\n }\n var _a = e.currentTarget, value = _a.value, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n var tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n if (e.key === 'Tab' && !ignoreTabKey && capture) {\n // Prevent focus change\n e.preventDefault();\n if (e.shiftKey) {\n // Unindent selected lines\n var linesBeforeCaret = getLines(value, selectionStart);\n var startLine_1 = linesBeforeCaret.length - 1;\n var endLine_1 = getLines(value, selectionEnd).length - 1;\n var nextValue = value\n .split('\\n')\n .map(function (line, i) {\n if (i >= startLine_1 &&\n i <= endLine_1 &&\n line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n return line;\n })\n .join('\\n');\n if (value !== nextValue) {\n var startLineText = linesBeforeCaret[startLine_1];\n applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: (startLineText === null || startLineText === void 0 ? void 0 : startLineText.startsWith(tabCharacter))\n ? selectionStart - tabCharacter.length\n : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length),\n });\n }\n }\n else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n var linesBeforeCaret = getLines(value, selectionStart);\n var startLine_2 = linesBeforeCaret.length - 1;\n var endLine_2 = getLines(value, selectionEnd).length - 1;\n var startLineText = linesBeforeCaret[startLine_2];\n applyEdits({\n value: value\n .split('\\n')\n .map(function (line, i) {\n if (i >= startLine_2 && i <= endLine_2) {\n return tabCharacter + line;\n }\n return line;\n })\n .join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: startLineText && /\\S/.test(startLineText)\n ? selectionStart + tabCharacter.length\n : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (endLine_2 - startLine_2 + 1),\n });\n }\n else {\n var updatedSelection = selectionStart + tabCharacter.length;\n applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) +\n tabCharacter +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n else if (e.key === 'Backspace') {\n var hasSelection = selectionStart !== selectionEnd;\n var textBeforeCaret = value.substring(0, selectionStart);\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n var updatedSelection = selectionStart - tabCharacter.length;\n applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n else if (e.key === 'Enter') {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n var line = getLines(value, selectionStart).pop();\n var matches = line === null || line === void 0 ? void 0 : line.match(/^\\s+/);\n if (matches === null || matches === void 0 ? void 0 : matches[0]) {\n e.preventDefault();\n // Preserve indentation on inserting a new line\n var indent = '\\n' + matches[0];\n var updatedSelection = selectionStart + indent.length;\n applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) +\n indent +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n }\n else if (e.keyCode === KEYCODE_PARENS ||\n e.keyCode === KEYCODE_BRACKETS ||\n e.keyCode === KEYCODE_QUOTE ||\n e.keyCode === KEYCODE_BACK_QUOTE) {\n var chars = void 0;\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n }\n else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n }\n else {\n chars = ['[', ']'];\n }\n }\n else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n }\n else {\n chars = [\"'\", \"'\"];\n }\n }\n else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n }\n // If text is selected, wrap them in the characters\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n applyEdits({\n value: value.substring(0, selectionStart) +\n chars[0] +\n value.substring(selectionStart, selectionEnd) +\n chars[1] +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart: selectionStart,\n selectionEnd: selectionEnd + 2,\n });\n }\n }\n else if ((isMacLike\n ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z\n : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) &&\n !e.shiftKey &&\n !e.altKey) {\n e.preventDefault();\n undoEdit();\n }\n else if ((isMacLike\n ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey\n : isWindows\n ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y\n : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) &&\n !e.altKey) {\n e.preventDefault();\n redoEdit();\n }\n else if (e.keyCode === KEYCODE_M &&\n e.ctrlKey &&\n (isMacLike ? e.shiftKey : true)) {\n e.preventDefault();\n // Toggle capturing tab key so users can focus away\n setCapture(function (prev) { return !prev; });\n }\n };\n var handleChange = function (e) {\n var _a = e.currentTarget, value = _a.value, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n }, true);\n onValueChange(value);\n };\n React.useEffect(function () {\n recordCurrentState();\n }, [recordCurrentState]);\n React.useImperativeHandle(ref, function () {\n return {\n get session() {\n return {\n history: historyRef.current,\n };\n },\n set session(session) {\n historyRef.current = session.history;\n },\n };\n }, []);\n return (React.createElement(\"div\", __assign({}, rest, { style: __assign(__assign({}, styles.container), style) }),\n React.createElement(\"pre\", __assign({ className: preClassName, \"aria-hidden\": \"true\", style: __assign(__assign(__assign({}, styles.editor), styles.highlight), contentStyle) }, (typeof highlighted === 'string'\n ? { dangerouslySetInnerHTML: { __html: highlighted + '<br />' } }\n : { children: highlighted }))),\n React.createElement(\"textarea\", { ref: function (c) { return (inputRef.current = c); }, style: __assign(__assign(__assign({}, styles.editor), styles.textarea), contentStyle), className: className + (textareaClassName ? \" \".concat(textareaClassName) : ''), id: textareaId, value: value, onChange: handleChange, onKeyDown: handleKeyDown, onClick: onClick, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, disabled: disabled, form: form, maxLength: maxLength, minLength: minLength, name: name, placeholder: placeholder, readOnly: readOnly, required: required, autoFocus: autoFocus, autoCapitalize: \"off\", autoComplete: \"off\", autoCorrect: \"off\", spellCheck: false, \"data-gramm\": false }),\n React.createElement(\"style\", { dangerouslySetInnerHTML: { __html: cssText } })));\n});\nvar styles = {\n container: {\n position: 'relative',\n textAlign: 'left',\n boxSizing: 'border-box',\n padding: 0,\n overflow: 'hidden',\n },\n textarea: {\n position: 'absolute',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%',\n resize: 'none',\n color: 'inherit',\n overflow: 'hidden',\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n WebkitTextFillColor: 'transparent',\n },\n highlight: {\n position: 'relative',\n pointerEvents: 'none',\n },\n editor: {\n margin: 0,\n border: 0,\n background: 'none',\n boxSizing: 'inherit',\n display: 'inherit',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n fontStyle: 'inherit',\n fontVariantLigatures: 'inherit',\n fontWeight: 'inherit',\n letterSpacing: 'inherit',\n lineHeight: 'inherit',\n tabSize: 'inherit',\n textIndent: 'inherit',\n textRendering: 'inherit',\n textTransform: 'inherit',\n whiteSpace: 'pre-wrap',\n wordBreak: 'keep-all',\n overflowWrap: 'break-word',\n },\n};\nexports.default = Editor;\n//# sourceMappingURL=index.js.map","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\nvar require_prism = __commonJS({\n \"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\"(exports, module) {\n var Prism2 = function() {\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0;\n var plainTextGrammar = {};\n var _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/\\u00a0/g, \" \");\n }\n },\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function(o) {\n return Object.prototype.toString.call(o).slice(8, -1);\n },\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function(obj) {\n if (!obj[\"__id\"]) {\n Object.defineProperty(obj, \"__id\", { value: ++uniqueId });\n }\n return obj[\"__id\"];\n },\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n switch (_.util.type(o)) {\n case \"Object\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = /** @type {Record<string, any>} */\n {};\n visited[id] = clone;\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n return (\n /** @type {any} */\n clone\n );\n case \"Array\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = [];\n visited[id] = clone;\n /** @type {Array} */\n /** @type {any} */\n o.forEach(function(v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n default:\n return o;\n }\n },\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function(element) {\n while (element) {\n var m = lang.exec(element.className);\n if (m) {\n return m[1].toLowerCase();\n }\n element = element.parentElement;\n }\n return \"none\";\n },\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function(element, language) {\n element.className = element.className.replace(RegExp(lang, \"gi\"), \"\");\n element.classList.add(\"language-\" + language);\n },\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function(element, className, defaultActivation) {\n var no = \"no-\" + className;\n while (element) {\n var classList = element.classList;\n if (classList.contains(className)) {\n return true;\n }\n if (classList.contains(no)) {\n return false;\n }\n element = element.parentElement;\n }\n return !!defaultActivation;\n }\n },\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function(id, redef) {\n var lang2 = _.util.clone(_.languages[id]);\n for (var key in redef) {\n lang2[key] = redef[key];\n }\n return lang2;\n },\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function(inside, before, insert, root) {\n root = root || /** @type {any} */\n _.languages;\n var grammar = root[inside];\n var ret = {};\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken];\n }\n }\n }\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token];\n }\n }\n }\n var old = root[inside];\n root[inside] = ret;\n _.languages.DFS(_.languages, function(key, value) {\n if (value === old && key != inside) {\n this[key] = ret;\n }\n });\n return ret;\n },\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {};\n var objId = _.util.objId;\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i);\n var property = o[i];\n var propertyType = _.util.type(property);\n if (propertyType === \"Object\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, null, visited);\n } else if (propertyType === \"Array\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, i, visited);\n }\n }\n }\n }\n },\n plugins: {},\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function(text, grammar, language) {\n var env = {\n code: text,\n grammar,\n language\n };\n _.hooks.run(\"before-tokenize\", env);\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.');\n }\n env.tokens = _.tokenize(env.code, env.grammar);\n _.hooks.run(\"after-tokenize\", env);\n return Token.stringify(_.util.encode(env.tokens), env.language);\n },\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function(text, grammar) {\n var rest = grammar.rest;\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token];\n }\n delete grammar.rest;\n }\n var tokenList = new LinkedList();\n addAfter(tokenList, tokenList.head, text);\n matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n return toArray(tokenList);\n },\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function(name, callback) {\n var hooks2 = _.hooks.all;\n hooks2[name] = hooks2[name] || [];\n hooks2[name].push(callback);\n },\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function(name, env) {\n var callbacks = _.hooks.all[name];\n if (!callbacks || !callbacks.length) {\n return;\n }\n for (var i = 0, callback; callback = callbacks[i++]; ) {\n callback(env);\n }\n }\n },\n Token\n };\n function Token(type, content, alias, matchedStr) {\n this.type = type;\n this.content = content;\n this.alias = alias;\n this.length = (matchedStr || \"\").length | 0;\n }\n Token.stringify = function stringify(o, language) {\n if (typeof o == \"string\") {\n return o;\n }\n if (Array.isArray(o)) {\n var s = \"\";\n o.forEach(function(e) {\n s += stringify(e, language);\n });\n return s;\n }\n var env = {\n type: o.type,\n content: stringify(o.content, language),\n tag: \"span\",\n classes: [\"token\", o.type],\n attributes: {},\n language\n };\n var aliases = o.alias;\n if (aliases) {\n if (Array.isArray(aliases)) {\n Array.prototype.push.apply(env.classes, aliases);\n } else {\n env.classes.push(aliases);\n }\n }\n _.hooks.run(\"wrap\", env);\n var attributes = \"\";\n for (var name in env.attributes) {\n attributes += \" \" + name + '=\"' + (env.attributes[name] || \"\").replace(/\"/g, \""\") + '\"';\n }\n return \"<\" + env.tag + ' class=\"' + env.classes.join(\" \") + '\"' + attributes + \">\" + env.content + \"</\" + env.tag + \">\";\n };\n function matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos;\n var match = pattern.exec(text);\n if (match && lookbehind && match[1]) {\n var lookbehindLength = match[1].length;\n match.index += lookbehindLength;\n match[0] = match[0].slice(lookbehindLength);\n }\n return match;\n }\n function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue;\n }\n var patterns = grammar[token];\n patterns = Array.isArray(patterns) ? patterns : [patterns];\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + \",\" + j) {\n return;\n }\n var patternObj = patterns[j];\n var inside = patternObj.inside;\n var lookbehind = !!patternObj.lookbehind;\n var greedy = !!patternObj.greedy;\n var alias = patternObj.alias;\n if (greedy && !patternObj.pattern.global) {\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + \"g\");\n }\n var pattern = patternObj.pattern || patternObj;\n for (var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n if (rematch && pos >= rematch.reach) {\n break;\n }\n var str = currentNode.value;\n if (tokenList.length > text.length) {\n return;\n }\n if (str instanceof Token) {\n continue;\n }\n var removeCount = 1;\n var match;\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind);\n if (!match || match.index >= text.length) {\n break;\n }\n var from = match.index;\n var to = match.index + match[0].length;\n var p = pos;\n p += currentNode.value.length;\n while (from >= p) {\n currentNode = currentNode.next;\n p += currentNode.value.length;\n }\n p -= currentNode.value.length;\n pos = p;\n if (currentNode.value instanceof Token) {\n continue;\n }\n for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === \"string\"); k = k.next) {\n removeCount++;\n p += k.value.length;\n }\n removeCount--;\n str = text.slice(pos, p);\n match.index -= pos;\n } else {\n match = matchPattern(pattern, 0, str, lookbehind);\n if (!match) {\n continue;\n }\n }\n var from = match.index;\n var matchStr = match[0];\n var before = str.slice(0, from);\n var after = str.slice(from + matchStr.length);\n var reach = pos + str.length;\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach;\n }\n var removeFrom = currentNode.prev;\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before);\n pos += before.length;\n }\n removeRange(tokenList, removeFrom, removeCount);\n var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n currentNode = addAfter(tokenList, removeFrom, wrapped);\n if (after) {\n addAfter(tokenList, currentNode, after);\n }\n if (removeCount > 1) {\n var nestedRematch = {\n cause: token + \",\" + j,\n reach\n };\n matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach;\n }\n }\n }\n }\n }\n }\n function LinkedList() {\n var head = { value: null, prev: null, next: null };\n var tail = { value: null, prev: head, next: null };\n head.next = tail;\n this.head = head;\n this.tail = tail;\n this.length = 0;\n }\n function addAfter(list, node, value) {\n var next = node.next;\n var newNode = { value, prev: node, next };\n node.next = newNode;\n next.prev = newNode;\n list.length++;\n return newNode;\n }\n function removeRange(list, node, count) {\n var next = node.next;\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next;\n }\n node.next = next;\n next.prev = node;\n list.length -= i;\n }\n function toArray(list) {\n var array = [];\n var node = list.head.next;\n while (node !== list.tail) {\n array.push(node.value);\n node = node.next;\n }\n return array;\n }\n return _;\n }();\n module.exports = Prism2;\n Prism2.default = Prism2;\n }\n});\n\n// src/prism-langs.ts\nvar Prism = __toESM(require_prism());\nPrism.languages.markup = { comment: { pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/, greedy: true }, prolog: { pattern: /<\\?[\\s\\S]+?\\?>/, greedy: true }, doctype: { pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i, greedy: true, inside: { \"internal-subset\": { pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/, lookbehind: true, greedy: true, inside: null }, string: { pattern: /\"[^\"]*\"|'[^']*'/, greedy: true }, punctuation: /^<!|>$|[[\\]]/, \"doctype-tag\": /^DOCTYPE/i, name: /[^\\s<>'\"]+/ } }, cdata: { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, greedy: true }, tag: { pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/, greedy: true, inside: { tag: { pattern: /^<\\/?[^\\s>\\/]+/, inside: { punctuation: /^<\\/?/, namespace: /^[^\\s>\\/:]+:/ } }, \"special-attr\": [], \"attr-value\": { pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/, inside: { punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, { pattern: /^(\\s*)[\"']|[\"']$/, lookbehind: true }] } }, punctuation: /\\/?>/, \"attr-name\": { pattern: /[^\\s>\\/]+/, inside: { namespace: /^[^\\s>\\/:]+:/ } } } }, entity: [{ pattern: /&[\\da-z]{1,8};/i, alias: \"named-entity\" }, /&#x?[\\da-f]{1,8};/i] }, Prism.languages.markup.tag.inside[\"attr-value\"].inside.entity = Prism.languages.markup.entity, Prism.languages.markup.doctype.inside[\"internal-subset\"].inside = Prism.languages.markup, Prism.hooks.add(\"wrap\", function(e) {\n \"entity\" === e.type && (e.attributes.title = e.content.replace(/&/, \"&\"));\n}), Object.defineProperty(Prism.languages.markup.tag, \"addInlined\", { value: function(e, n) {\n var t = {}, t = (t[\"language-\" + n] = { pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i, lookbehind: true, inside: Prism.languages[n] }, t.cdata = /^<!\\[CDATA\\[|\\]\\]>$/i, { \"included-cdata\": { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, inside: t } }), n = (t[\"language-\" + n] = { pattern: /[\\s\\S]+/, inside: Prism.languages[n] }, {});\n n[e] = { pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function() {\n return e;\n }), \"i\"), lookbehind: true, greedy: true, inside: t }, Prism.languages.insertBefore(\"markup\", \"cdata\", n);\n} }), Object.defineProperty(Prism.languages.markup.tag, \"addAttribute\", { value: function(e, n) {\n Prism.languages.markup.tag.inside[\"special-attr\"].push({ pattern: RegExp(/(^|[\"'\\s])/.source + \"(?:\" + e + \")\" + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source, \"i\"), lookbehind: true, inside: { \"attr-name\": /^[^\\s=]+/, \"attr-value\": { pattern: /=[\\s\\S]+/, inside: { value: { pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/, lookbehind: true, alias: [n, \"language-\" + n], inside: Prism.languages[n] }, punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, /\"|'/] } } } });\n} }), Prism.languages.html = Prism.languages.markup, Prism.languages.mathml = Prism.languages.markup, Prism.languages.svg = Prism.languages.markup, Prism.languages.xml = Prism.languages.extend(\"markup\", {}), Prism.languages.ssml = Prism.languages.xml, Prism.languages.atom = Prism.languages.xml, Prism.languages.rss = Prism.languages.xml, function(e) {\n var n = { pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/, alias: \"escape\" }, t = /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/, a = \"(?:[^\\\\\\\\-]|\" + t.source + \")\", a = RegExp(a + \"-\" + a), r = { pattern: /(<|')[^<>']+(?=[>']$)/, lookbehind: true, alias: \"variable\" };\n e.languages.regex = { \"char-class\": { pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/, lookbehind: true, inside: { \"char-class-negation\": { pattern: /(^\\[)\\^/, lookbehind: true, alias: \"operator\" }, \"char-class-punctuation\": { pattern: /^\\[|\\]$/, alias: \"punctuation\" }, range: { pattern: a, inside: { escape: t, \"range-punctuation\": { pattern: /-/, alias: \"operator\" } } }, \"special-escape\": n, \"char-set\": { pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, escape: t } }, \"special-escape\": n, \"char-set\": { pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, backreference: [{ pattern: /\\\\(?![123][0-7]{2})[1-9]/, alias: \"keyword\" }, { pattern: /\\\\k<[^<>']+>/, alias: \"keyword\", inside: { \"group-name\": r } }], anchor: { pattern: /[$^]|\\\\[ABbGZz]/, alias: \"function\" }, escape: t, group: [{ pattern: /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/, alias: \"punctuation\", inside: { \"group-name\": r } }, { pattern: /\\)/, alias: \"punctuation\" }], quantifier: { pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/, alias: \"number\" }, alternation: { pattern: /\\|/, alias: \"keyword\" } };\n}(Prism), Prism.languages.clike = { comment: [{ pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, greedy: true }, \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i, lookbehind: true, inside: { punctuation: /[.\\\\]/ } }, keyword: /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/, boolean: /\\b(?:false|true)\\b/, function: /\\b\\w+(?=\\()/, number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i, operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.javascript = Prism.languages.extend(\"clike\", { \"class-name\": [Prism.languages.clike[\"class-name\"], { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/, lookbehind: true }], keyword: [{ pattern: /((?:^|\\})\\s*)catch\\b/, lookbehind: true }, { pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/, lookbehind: true }], function: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/, number: { pattern: RegExp(/(^|[^\\w$])/.source + \"(?:\" + /NaN|Infinity/.source + \"|\" + /0[bB][01]+(?:_[01]+)*n?/.source + \"|\" + /0[oO][0-7]+(?:_[0-7]+)*n?/.source + \"|\" + /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source + \"|\" + /\\d+(?:_\\d+)*n/.source + \"|\" + /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source + \")\" + /(?![\\w$])/.source), lookbehind: true }, operator: /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/ }), Prism.languages.javascript[\"class-name\"][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/, Prism.languages.insertBefore(\"javascript\", \"keyword\", { regex: { pattern: RegExp(/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source + /\\//.source + \"(?:\" + /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source + \"|\" + /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + \")\" + /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source), lookbehind: true, greedy: true, inside: { \"regex-source\": { pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/, lookbehind: true, alias: \"language-regex\", inside: Prism.languages.regex }, \"regex-delimiter\": /^\\/|\\/$/, \"regex-flags\": /^[a-z]+$/ } }, \"function-variable\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/, alias: \"function\" }, parameter: [{ pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/, lookbehind: true, inside: Prism.languages.javascript }], constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/ }), Prism.languages.insertBefore(\"javascript\", \"string\", { hashbang: { pattern: /^#!.*/, greedy: true, alias: \"comment\" }, \"template-string\": { pattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/, lookbehind: true, inside: { \"interpolation-punctuation\": { pattern: /^\\$\\{|\\}$/, alias: \"punctuation\" }, rest: Prism.languages.javascript } }, string: /[\\s\\S]+/ } }, \"string-property\": { pattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m, lookbehind: true, greedy: true, alias: \"property\" } }), Prism.languages.insertBefore(\"javascript\", \"operator\", { \"literal-property\": { pattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m, lookbehind: true, alias: \"property\" } }), Prism.languages.markup && (Prism.languages.markup.tag.addInlined(\"script\", \"javascript\"), Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, \"javascript\")), Prism.languages.js = Prism.languages.javascript, Prism.languages.actionscript = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/, operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/ }), Prism.languages.actionscript[\"class-name\"].alias = \"function\", delete Prism.languages.actionscript.parameter, delete Prism.languages.actionscript[\"literal-property\"], Prism.languages.markup && Prism.languages.insertBefore(\"actionscript\", \"string\", { xml: { pattern: /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/, lookbehind: true, inside: Prism.languages.markup } }), function(e) {\n var n = /#(?!\\{).+/, t = { pattern: /#\\{[^}]+\\}/, alias: \"variable\" };\n e.languages.coffeescript = e.languages.extend(\"javascript\", { comment: n, string: [{ pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/, greedy: true }, { pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/, greedy: true, inside: { interpolation: t } }], keyword: /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/, \"class-member\": { pattern: /@(?!\\d)\\w+/, alias: \"variable\" } }), e.languages.insertBefore(\"coffeescript\", \"comment\", { \"multiline-comment\": { pattern: /###[\\s\\S]+?###/, alias: \"comment\" }, \"block-regex\": { pattern: /\\/{3}[\\s\\S]*?\\/{3}/, alias: \"regex\", inside: { comment: n, interpolation: t } } }), e.languages.insertBefore(\"coffeescript\", \"string\", { \"inline-javascript\": { pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/, inside: { delimiter: { pattern: /^`|`$/, alias: \"punctuation\" }, script: { pattern: /[\\s\\S]+/, alias: \"language-javascript\", inside: e.languages.javascript } } }, \"multiline-string\": [{ pattern: /'''[\\s\\S]*?'''/, greedy: true, alias: \"string\" }, { pattern: /\"\"\"[\\s\\S]*?\"\"\"/, greedy: true, alias: \"string\", inside: { interpolation: t } }] }), e.languages.insertBefore(\"coffeescript\", \"keyword\", { property: /(?!\\d)\\w+(?=\\s*:(?!:))/ }), delete e.languages.coffeescript[\"template-string\"], e.languages.coffee = e.languages.coffeescript;\n}(Prism), function(l) {\n var e = l.languages.javadoclike = { parameter: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m, lookbehind: true }, keyword: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m, lookbehind: true }, punctuation: /[{}]/ };\n Object.defineProperty(e, \"addSupport\", { value: function(e2, o) {\n (e2 = \"string\" == typeof e2 ? [e2] : e2).forEach(function(e3) {\n var n = function(e4) {\n e4.inside || (e4.inside = {}), e4.inside.rest = o;\n }, t = \"doc-comment\";\n if (a = l.languages[e3]) {\n var a, r = a[t];\n if ((r = r ? r : (a = l.languages.insertBefore(e3, \"comment\", { \"doc-comment\": { pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, alias: \"comment\" } }))[t]) instanceof RegExp && (r = a[t] = { pattern: r }), Array.isArray(r))\n for (var s = 0, i = r.length; s < i; s++)\n r[s] instanceof RegExp && (r[s] = { pattern: r[s] }), n(r[s]);\n else\n n(r);\n }\n });\n } }), e.addSupport([\"java\", \"javascript\", \"php\"], e);\n}(Prism), function(e) {\n var n = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/, n = (e.languages.css = { comment: /\\/\\*[\\s\\S]*?\\*\\//, atrule: { pattern: RegExp(\"@[\\\\w-](?:\" + /[^;{\\s\"']|\\s+(?!\\s)/.source + \"|\" + n.source + \")*?\" + /(?:;|(?=\\s*\\{))/.source), inside: { rule: /^@[\\w-]+/, \"selector-function-argument\": { pattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/, lookbehind: true, alias: \"selector\" }, keyword: { pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/, lookbehind: true } } }, url: { pattern: RegExp(\"\\\\burl\\\\((?:\" + n.source + \"|\" + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + \")\\\\)\", \"i\"), greedy: true, inside: { function: /^url/i, punctuation: /^\\(|\\)$/, string: { pattern: RegExp(\"^\" + n.source + \"$\"), alias: \"url\" } } }, selector: { pattern: RegExp(`(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"'\\\\s]|\\\\s+(?![\\\\s{])|` + n.source + \")*(?=\\\\s*\\\\{)\"), lookbehind: true }, string: { pattern: n, greedy: true }, property: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i, lookbehind: true }, important: /!important\\b/i, function: { pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i, lookbehind: true }, punctuation: /[(){};:,]/ }, e.languages.css.atrule.inside.rest = e.languages.css, e.languages.markup);\n n && (n.tag.addInlined(\"style\", \"css\"), n.tag.addAttribute(\"style\", \"css\"));\n}(Prism), function(e) {\n var n = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, n = (e.languages.css.selector = { pattern: e.languages.css.selector.pattern, lookbehind: true, inside: n = { \"pseudo-element\": /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/, \"pseudo-class\": /:[-\\w]+/, class: /\\.[-\\w]+/, id: /#[-\\w]+/, attribute: { pattern: RegExp(`\\\\[(?:[^[\\\\]\"']|` + n.source + \")*\\\\]\"), greedy: true, inside: { punctuation: /^\\[|\\]$/, \"case-sensitivity\": { pattern: /(\\s)[si]$/i, lookbehind: true, alias: \"keyword\" }, namespace: { pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/, lookbehind: true, inside: { punctuation: /\\|$/ } }, \"attr-name\": { pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/, lookbehind: true }, \"attr-value\": [n, { pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/, lookbehind: true }], operator: /[|~*^$]?=/ } }, \"n-th\": [{ pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/, lookbehind: true, inside: { number: /[\\dn]+/, operator: /[+-]/ } }, { pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i, lookbehind: true }], combinator: />|\\+|~|\\|\\|/, punctuation: /[(),]/ } }, e.languages.css.atrule.inside[\"selector-function-argument\"].inside = n, e.languages.insertBefore(\"css\", \"property\", { variable: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i, lookbehind: true } }), { pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/, lookbehind: true }), t = { pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/, lookbehind: true };\n e.languages.insertBefore(\"css\", \"function\", { operator: { pattern: /(\\s)[+\\-*\\/](?=\\s)/, lookbehind: true }, hexcode: { pattern: /\\B#[\\da-f]{3,8}\\b/i, alias: \"color\" }, color: [{ pattern: /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i, lookbehind: true }, { pattern: /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i, inside: { unit: n, number: t, function: /[\\w-]+(?=\\()/, punctuation: /[(),]/ } }], entity: /\\\\[\\da-f]{1,8}/i, unit: n, number: t });\n}(Prism), function(e) {\n var n = /[*&][^\\s[\\]{},]+/, t = /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/, a = \"(?:\" + t.source + \"(?:[ \t]+\" + n.source + \")?|\" + n.source + \"(?:[ \t]+\" + t.source + \")?)\", r = /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g, function() {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/.source;\n }), s = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source;\n function i(e2, n2) {\n n2 = (n2 || \"\").replace(/m/g, \"\") + \"m\";\n var t2 = /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<value>>/g, function() {\n return e2;\n });\n return RegExp(t2, n2);\n }\n e.languages.yaml = { scalar: { pattern: RegExp(/([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(/<<prop>>/g, function() {\n return a;\n })), lookbehind: true, alias: \"string\" }, comment: /#.*/, key: { pattern: RegExp(/((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<key>>/g, function() {\n return \"(?:\" + r + \"|\" + s + \")\";\n })), lookbehind: true, greedy: true, alias: \"atrule\" }, directive: { pattern: /(^[ \\t]*)%.+/m, lookbehind: true, alias: \"important\" }, datetime: { pattern: i(/\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/.source), lookbehind: true, alias: \"number\" }, boolean: { pattern: i(/false|true/.source, \"i\"), lookbehind: true, alias: \"important\" }, null: { pattern: i(/null|~/.source, \"i\"), lookbehind: true, alias: \"important\" }, string: { pattern: i(s), lookbehind: true, greedy: true }, number: { pattern: i(/[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/.source, \"i\"), lookbehind: true }, tag: t, important: n, punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./ }, e.languages.yml = e.languages.yaml;\n}(Prism), function(o) {\n var n = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source;\n function e(e2) {\n return e2 = e2.replace(/<inner>/g, function() {\n return n;\n }), RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + \"(?:\" + e2 + \")\");\n }\n var t = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source, a = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function() {\n return t;\n }), r = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source, l = (o.languages.markdown = o.languages.extend(\"markup\", {}), o.languages.insertBefore(\"markdown\", \"prolog\", { \"front-matter-block\": { pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/, lookbehind: true, greedy: true, inside: { punctuation: /^---|---$/, \"front-matter\": { pattern: /\\S+(?:\\s+\\S+)*/, alias: [\"yaml\", \"language-yaml\"], inside: o.languages.yaml } } }, blockquote: { pattern: /^>(?:[\\t ]*>)*/m, alias: \"punctuation\" }, table: { pattern: RegExp(\"^\" + a + r + \"(?:\" + a + \")*\", \"m\"), inside: { \"table-data-rows\": { pattern: RegExp(\"^(\" + a + r + \")(?:\" + a + \")*$\"), lookbehind: true, inside: { \"table-data\": { pattern: RegExp(t), inside: o.languages.markdown }, punctuation: /\\|/ } }, \"table-line\": { pattern: RegExp(\"^(\" + a + \")\" + r + \"$\"), lookbehind: true, inside: { punctuation: /\\||:?-{3,}:?/ } }, \"table-header-row\": { pattern: RegExp(\"^\" + a + \"$\"), inside: { \"table-header\": { pattern: RegExp(t), alias: \"important\", inside: o.languages.markdown }, punctuation: /\\|/ } } } }, code: [{ pattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/, lookbehind: true, alias: \"keyword\" }, { pattern: /^```[\\s\\S]*?^```$/m, greedy: true, inside: { \"code-block\": { pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m, lookbehind: true }, \"code-language\": { pattern: /^(```).+/, lookbehind: true }, punctuation: /```/ } }], title: [{ pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m, alias: \"important\", inside: { punctuation: /==+$|--+$/ } }, { pattern: /(^\\s*)#.+/m, lookbehind: true, alias: \"important\", inside: { punctuation: /^#+|#+$/ } }], hr: { pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m, lookbehind: true, alias: \"punctuation\" }, list: { pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m, lookbehind: true, alias: \"punctuation\" }, \"url-reference\": { pattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/, inside: { variable: { pattern: /^(!?\\[)[^\\]]+/, lookbehind: true }, string: /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/, punctuation: /^[\\[\\]!:]|[<>]/ }, alias: \"url\" }, bold: { pattern: e(/\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^..)[\\s\\S]+(?=..$)/, lookbehind: true, inside: {} }, punctuation: /\\*\\*|__/ } }, italic: { pattern: e(/\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^.)[\\s\\S]+(?=.$)/, lookbehind: true, inside: {} }, punctuation: /[*_]/ } }, strike: { pattern: e(/(~~?)(?:(?!~)<inner>)+\\2/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^~~?)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: {} }, punctuation: /~~?/ } }, \"code-snippet\": { pattern: /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/, lookbehind: true, greedy: true, alias: [\"code\", \"keyword\"] }, url: { pattern: e(/!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/.source), lookbehind: true, greedy: true, inside: { operator: /^!/, content: { pattern: /(^\\[)[^\\]]+(?=\\])/, lookbehind: true, inside: {} }, variable: { pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/, lookbehind: true }, url: { pattern: /(^\\]\\()[^\\s)]+/, lookbehind: true }, string: { pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/, lookbehind: true } } } }), [\"url\", \"bold\", \"italic\", \"strike\"].forEach(function(n2) {\n [\"url\", \"bold\", \"italic\", \"strike\", \"code-snippet\"].forEach(function(e2) {\n n2 !== e2 && (o.languages.markdown[n2].inside.content.inside[e2] = o.languages.markdown[e2]);\n });\n }), o.hooks.add(\"after-tokenize\", function(e2) {\n \"markdown\" !== e2.language && \"md\" !== e2.language || !function e3(n2) {\n if (n2 && \"string\" != typeof n2)\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r2, s = n2[t2];\n \"code\" !== s.type ? e3(s.content) : (r2 = s.content[1], s = s.content[3], r2 && s && \"code-language\" === r2.type && \"code-block\" === s.type && \"string\" == typeof r2.content && (r2 = r2.content.replace(/\\b#/g, \"sharp\").replace(/\\b\\+\\+/g, \"pp\"), r2 = \"language-\" + (r2 = (/[a-z][\\w-]*/i.exec(r2) || [\"\"])[0].toLowerCase()), s.alias ? \"string\" == typeof s.alias ? s.alias = [s.alias, r2] : s.alias.push(r2) : s.alias = [r2]));\n }\n }(e2.tokens);\n }), o.hooks.add(\"wrap\", function(e2) {\n if (\"code-block\" === e2.type) {\n for (var n2 = \"\", t2 = 0, a2 = e2.classes.length; t2 < a2; t2++) {\n var r2 = e2.classes[t2], r2 = /language-(.+)/.exec(r2);\n if (r2) {\n n2 = r2[1];\n break;\n }\n }\n var s, i = o.languages[n2];\n i ? e2.content = o.highlight(function(e3) {\n e3 = e3.replace(l, \"\");\n return e3 = e3.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function(e4, n3) {\n var t3;\n return \"#\" === (n3 = n3.toLowerCase())[0] ? (t3 = \"x\" === n3[1] ? parseInt(n3.slice(2), 16) : Number(n3.slice(1)), c(t3)) : u[n3] || e4;\n });\n }(e2.content), i, n2) : n2 && \"none\" !== n2 && o.plugins.autoloader && (s = \"md-\" + (/* @__PURE__ */ new Date()).valueOf() + \"-\" + Math.floor(1e16 * Math.random()), e2.attributes.id = s, o.plugins.autoloader.loadLanguages(n2, function() {\n var e3 = document.getElementById(s);\n e3 && (e3.innerHTML = o.highlight(e3.textContent, o.languages[n2], n2));\n }));\n }\n }), RegExp(o.languages.markup.tag.pattern.source, \"gi\")), u = { amp: \"&\", lt: \"<\", gt: \">\", quot: '\"' }, c = String.fromCodePoint || String.fromCharCode;\n o.languages.md = o.languages.markdown;\n}(Prism), Prism.languages.graphql = { comment: /#.*/, description: { pattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i, greedy: true, alias: \"string\", inside: { \"language-markdown\": { pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: Prism.languages.markdown } } }, string: { pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/, greedy: true }, number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i, boolean: /\\b(?:false|true)\\b/, variable: /\\$[a-z_]\\w*/i, directive: { pattern: /@[a-z_]\\w*/i, alias: \"function\" }, \"attr-name\": { pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i, greedy: true }, \"atom-input\": { pattern: /\\b[A-Z]\\w*Input\\b/, alias: \"class-name\" }, scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/, constant: /\\b[A-Z][A-Z_\\d]*\\b/, \"class-name\": { pattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/, lookbehind: true }, fragment: { pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-mutation\": { pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-query\": { pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, keyword: /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/, operator: /[!=|&]|\\.{3}/, \"property-query\": /\\w+(?=\\s*\\()/, object: /\\w+(?=\\s*\\{)/, punctuation: /[!(){}\\[\\]:=,]/, property: /\\w+/ }, Prism.hooks.add(\"after-tokenize\", function(e) {\n if (\"graphql\" === e.language)\n for (var i = e.tokens.filter(function(e2) {\n return \"string\" != typeof e2 && \"comment\" !== e2.type && \"scalar\" !== e2.type;\n }), o = 0; o < i.length; ) {\n var n = i[o++];\n if (\"keyword\" === n.type && \"mutation\" === n.content) {\n var t = [];\n if (p([\"definition-mutation\", \"punctuation\"]) && \"(\" === c(1).content) {\n o += 2;\n var a = d(/^\\($/, /^\\)$/);\n if (-1 === a)\n continue;\n for (; o < a; o++) {\n var r = c(0);\n \"variable\" === r.type && (g(r, \"variable-input\"), t.push(r.content));\n }\n o = a + 1;\n }\n if (p([\"punctuation\", \"property-query\"]) && \"{\" === c(0).content && (o++, g(c(0), \"property-mutation\"), 0 < t.length)) {\n var s = d(/^\\{$/, /^\\}$/);\n if (-1 !== s)\n for (var l = o; l < s; l++) {\n var u = i[l];\n \"variable\" === u.type && 0 <= t.indexOf(u.content) && g(u, \"variable-input\");\n }\n }\n }\n }\n function c(e2) {\n return i[o + e2];\n }\n function p(e2, n2) {\n n2 = n2 || 0;\n for (var t2 = 0; t2 < e2.length; t2++) {\n var a2 = c(t2 + n2);\n if (!a2 || a2.type !== e2[t2])\n return;\n }\n return 1;\n }\n function d(e2, n2) {\n for (var t2 = 1, a2 = o; a2 < i.length; a2++) {\n var r2 = i[a2], s2 = r2.content;\n if (\"punctuation\" === r2.type && \"string\" == typeof s2) {\n if (e2.test(s2))\n t2++;\n else if (n2.test(s2) && 0 === --t2)\n return a2;\n }\n }\n return -1;\n }\n function g(e2, n2) {\n var t2 = e2.alias;\n t2 ? Array.isArray(t2) || (e2.alias = t2 = [t2]) : e2.alias = t2 = [], t2.push(n2);\n }\n}), Prism.languages.sql = { comment: { pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/, lookbehind: true }, variable: [{ pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/, greedy: true }, /@[\\w.$]+/], string: { pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/, greedy: true, lookbehind: true }, identifier: { pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/, greedy: true, lookbehind: true, inside: { punctuation: /^`|`$/ } }, function: /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i, keyword: /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i, boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i, number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i, operator: /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i, punctuation: /[;[\\]()`,.]/ }, function(b) {\n var e = b.languages.javascript[\"template-string\"], t = e.pattern.source, m = e.inside.interpolation, f = m.inside[\"interpolation-punctuation\"], s = m.pattern.source;\n function n(e2, n2) {\n if (b.languages[e2])\n return { pattern: RegExp(\"((?:\" + n2 + \")\\\\s*)\" + t), lookbehind: true, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, \"embedded-code\": { pattern: /[\\s\\S]+/, alias: e2 } } };\n }\n function h(e2, n2, t2) {\n e2 = { code: e2, grammar: n2, language: t2 };\n return b.hooks.run(\"before-tokenize\", e2), e2.tokens = b.tokenize(e2.code, e2.grammar), b.hooks.run(\"after-tokenize\", e2), e2.tokens;\n }\n function l(a2, e2, r) {\n var n2 = b.tokenize(a2, { interpolation: { pattern: RegExp(s), lookbehind: true } }), p = 0, d = {}, n2 = h(n2.map(function(e3) {\n if (\"string\" == typeof e3)\n return e3;\n for (var n3, t2, e3 = e3.content; -1 !== a2.indexOf((t2 = p++, n3 = \"___\" + r.toUpperCase() + \"_\" + t2 + \"___\")); )\n ;\n return d[n3] = e3, n3;\n }).join(\"\"), e2, r), g = Object.keys(d);\n return p = 0, function e3(n3) {\n for (var t2 = 0; t2 < n3.length; t2++) {\n if (p >= g.length)\n return;\n var a3, r2, s2, i, o, l2, u2, c = n3[t2];\n \"string\" == typeof c || \"string\" == typeof c.content ? (a3 = g[p], -1 !== (u2 = (l2 = \"string\" == typeof c ? c : c.content).indexOf(a3)) && (++p, r2 = l2.substring(0, u2), o = d[a3], s2 = void 0, (i = {})[\"interpolation-punctuation\"] = f, 3 === (i = b.tokenize(o, i)).length && ((s2 = [1, 1]).push.apply(s2, h(i[1], b.languages.javascript, \"javascript\")), i.splice.apply(i, s2)), s2 = new b.Token(\"interpolation\", i, m.alias, o), i = l2.substring(u2 + a3.length), o = [], r2 && o.push(r2), o.push(s2), i && (e3(l2 = [i]), o.push.apply(o, l2)), \"string\" == typeof c ? (n3.splice.apply(n3, [t2, 1].concat(o)), t2 += o.length - 1) : c.content = o)) : (u2 = c.content, Array.isArray(u2) ? e3(u2) : e3([u2]));\n }\n }(n2), new b.Token(r, n2, \"language-\" + r, a2);\n }\n b.languages.javascript[\"template-string\"] = [n(\"css\", /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source), n(\"html\", /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), n(\"svg\", /\\bsvg/.source), n(\"markdown\", /\\b(?:markdown|md)/.source), n(\"graphql\", /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source), n(\"sql\", /\\bsql/.source), e].filter(Boolean);\n var a = { javascript: true, js: true, typescript: true, ts: true, jsx: true, tsx: true };\n function u(e2) {\n return \"string\" == typeof e2 ? e2 : Array.isArray(e2) ? e2.map(u).join(\"\") : u(e2.content);\n }\n b.hooks.add(\"after-tokenize\", function(e2) {\n e2.language in a && !function e3(n2) {\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r, s2, i, o = n2[t2];\n \"string\" != typeof o && (r = o.content, Array.isArray(r) ? \"template-string\" === o.type ? (o = r[1], 3 === r.length && \"string\" != typeof o && \"embedded-code\" === o.type && (s2 = u(o), o = o.alias, o = Array.isArray(o) ? o[0] : o, i = b.languages[o]) && (r[1] = l(s2, i, o))) : e3(r) : \"string\" != typeof r && e3([r]));\n }\n }(e2.tokens);\n });\n}(Prism), function(e) {\n e.languages.typescript = e.languages.extend(\"javascript\", { \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/, lookbehind: true, greedy: true, inside: null }, builtin: /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/ }), e.languages.typescript.keyword.push(/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, /\\btype\\b(?=\\s*(?:[\\{*]|$))/), delete e.languages.typescript.parameter, delete e.languages.typescript[\"literal-property\"];\n var n = e.languages.extend(\"typescript\", {});\n delete n[\"class-name\"], e.languages.typescript[\"class-name\"].inside = n, e.languages.insertBefore(\"typescript\", \"function\", { decorator: { pattern: /@[$\\w\\xA0-\\uFFFF]+/, inside: { at: { pattern: /^@/, alias: \"operator\" }, function: /^[\\s\\S]+/ } }, \"generic-function\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/, greedy: true, inside: { function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: n } } } }), e.languages.ts = e.languages.typescript;\n}(Prism), function(e) {\n var n = e.languages.javascript, t = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source, a = \"(@(?:arg|argument|param|property)\\\\s+(?:\" + t + \"\\\\s+)?)\";\n e.languages.jsdoc = e.languages.extend(\"javadoclike\", { parameter: { pattern: RegExp(a + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source), lookbehind: true, inside: { punctuation: /\\./ } } }), e.languages.insertBefore(\"jsdoc\", \"keyword\", { \"optional-parameter\": { pattern: RegExp(a + /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source), lookbehind: true, inside: { parameter: { pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/, lookbehind: true, inside: { punctuation: /\\./ } }, code: { pattern: /(=)[\\s\\S]*(?=\\]$)/, lookbehind: true, inside: n, alias: \"language-javascript\" }, punctuation: /[=[\\]]/ } }, \"class-name\": [{ pattern: RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(/<TYPE>/g, function() {\n return t;\n })), lookbehind: true, inside: { punctuation: /\\./ } }, { pattern: RegExp(\"(@[a-z]+\\\\s+)\" + t), lookbehind: true, inside: { string: n.string, number: n.number, boolean: n.boolean, keyword: e.languages.typescript.keyword, operator: /=>|\\.\\.\\.|[&|?:*]/, punctuation: /[.,;=<>{}()[\\]]/ } }], example: { pattern: /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/, lookbehind: true, inside: { code: { pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m, lookbehind: true, inside: n, alias: \"language-javascript\" } } } }), e.languages.javadoclike.addSupport(\"javascript\", e.languages.jsdoc);\n}(Prism), function(e) {\n e.languages.flow = e.languages.extend(\"javascript\", {}), e.languages.insertBefore(\"flow\", \"keyword\", { type: [{ pattern: /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\\b/, alias: \"class-name\" }] }), e.languages.flow[\"function-variable\"].pattern = /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i, delete e.languages.flow.parameter, e.languages.insertBefore(\"flow\", \"operator\", { \"flow-punctuation\": { pattern: /\\{\\||\\|\\}/, alias: \"punctuation\" } }), Array.isArray(e.languages.flow.keyword) || (e.languages.flow.keyword = [e.languages.flow.keyword]), e.languages.flow.keyword.unshift({ pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/, lookbehind: true }, { pattern: /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/, lookbehind: true });\n}(Prism), Prism.languages.n4js = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/ }), Prism.languages.insertBefore(\"n4js\", \"constant\", { annotation: { pattern: /@+\\w+/, alias: \"operator\" } }), Prism.languages.n4jsd = Prism.languages.n4js, function(e) {\n function n(e2, n2) {\n return RegExp(e2.replace(/<ID>/g, function() {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source;\n }), n2);\n }\n e.languages.insertBefore(\"javascript\", \"function-variable\", { \"method-variable\": { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript[\"function-variable\"].pattern.source), lookbehind: true, alias: [\"function-variable\", \"method\", \"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"function\", { method: { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript.function.source), lookbehind: true, alias: [\"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"constant\", { \"known-class-name\": [{ pattern: /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/, alias: \"class-name\" }, { pattern: /\\b(?:[A-Z]\\w*)Error\\b/, alias: \"class-name\" }] }), e.languages.insertBefore(\"javascript\", \"keyword\", { imports: { pattern: n(/(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/.source), lookbehind: true, inside: e.languages.javascript }, exports: { pattern: n(/(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/.source), lookbehind: true, inside: e.languages.javascript } }), e.languages.javascript.keyword.unshift({ pattern: /\\b(?:as|default|export|from|import)\\b/, alias: \"module\" }, { pattern: /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/, alias: \"control-flow\" }, { pattern: /\\bnull\\b/, alias: [\"null\", \"nil\"] }, { pattern: /\\bundefined\\b/, alias: \"nil\" }), e.languages.insertBefore(\"javascript\", \"operator\", { spread: { pattern: /\\.{3}/, alias: \"operator\" }, arrow: { pattern: /=>/, alias: \"operator\" } }), e.languages.insertBefore(\"javascript\", \"punctuation\", { \"property-access\": { pattern: n(/(\\.\\s*)#?<ID>/.source), lookbehind: true }, \"maybe-class-name\": { pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/, lookbehind: true }, dom: { pattern: /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/, alias: \"variable\" }, console: { pattern: /\\bconsole(?=\\s*\\.)/, alias: \"class-name\" } });\n for (var t = [\"function\", \"function-variable\", \"method\", \"method-variable\", \"property-access\"], a = 0; a < t.length; a++) {\n var r = t[a], s = e.languages.javascript[r], r = (s = \"RegExp\" === e.util.type(s) ? e.languages.javascript[r] = { pattern: s } : s).inside || {};\n (s.inside = r)[\"maybe-class-name\"] = /^[A-Z][\\s\\S]*/;\n }\n}(Prism), function(s) {\n var e = s.util.clone(s.languages.javascript), t = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source, a = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source, r = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source;\n function n(e2, n2) {\n return e2 = e2.replace(/<S>/g, function() {\n return t;\n }).replace(/<BRACES>/g, function() {\n return a;\n }).replace(/<SPREAD>/g, function() {\n return r;\n }), RegExp(e2, n2);\n }\n r = n(r).source, s.languages.jsx = s.languages.extend(\"markup\", e), s.languages.jsx.tag.pattern = n(/<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/.source), s.languages.jsx.tag.inside.tag.pattern = /^<\\/?[^\\s>\\/]*/, s.languages.jsx.tag.inside[\"attr-value\"].pattern = /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/, s.languages.jsx.tag.inside.tag.inside[\"class-name\"] = /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/, s.languages.jsx.tag.inside.comment = e.comment, s.languages.insertBefore(\"inside\", \"attr-name\", { spread: { pattern: n(/<SPREAD>/.source), inside: s.languages.jsx } }, s.languages.jsx.tag), s.languages.insertBefore(\"inside\", \"special-attr\", { script: { pattern: n(/=<BRACES>/.source), alias: \"language-javascript\", inside: { \"script-punctuation\": { pattern: /^=(?=\\{)/, alias: \"punctuation\" }, rest: s.languages.jsx } } }, s.languages.jsx.tag);\n function i(e2) {\n for (var n2 = [], t2 = 0; t2 < e2.length; t2++) {\n var a2 = e2[t2], r2 = false;\n \"string\" != typeof a2 && (\"tag\" === a2.type && a2.content[0] && \"tag\" === a2.content[0].type ? \"</\" === a2.content[0].content[0].content ? 0 < n2.length && n2[n2.length - 1].tagName === o(a2.content[0].content[1]) && n2.pop() : \"/>\" !== a2.content[a2.content.length - 1].content && n2.push({ tagName: o(a2.content[0].content[1]), openedBraces: 0 }) : 0 < n2.length && \"punctuation\" === a2.type && \"{\" === a2.content ? n2[n2.length - 1].openedBraces++ : 0 < n2.length && 0 < n2[n2.length - 1].openedBraces && \"punctuation\" === a2.type && \"}\" === a2.content ? n2[n2.length - 1].openedBraces-- : r2 = true), (r2 || \"string\" == typeof a2) && 0 < n2.length && 0 === n2[n2.length - 1].openedBraces && (r2 = o(a2), t2 < e2.length - 1 && (\"string\" == typeof e2[t2 + 1] || \"plain-text\" === e2[t2 + 1].type) && (r2 += o(e2[t2 + 1]), e2.splice(t2 + 1, 1)), 0 < t2 && (\"string\" == typeof e2[t2 - 1] || \"plain-text\" === e2[t2 - 1].type) && (r2 = o(e2[t2 - 1]) + r2, e2.splice(t2 - 1, 1), t2--), e2[t2] = new s.Token(\"plain-text\", r2, null, r2)), a2.content && \"string\" != typeof a2.content && i(a2.content);\n }\n }\n var o = function(e2) {\n return e2 ? \"string\" == typeof e2 ? e2 : \"string\" == typeof e2.content ? e2.content : e2.content.map(o).join(\"\") : \"\";\n };\n s.hooks.add(\"after-tokenize\", function(e2) {\n \"jsx\" !== e2.language && \"tsx\" !== e2.language || i(e2.tokens);\n });\n}(Prism), function(e) {\n var n = e.util.clone(e.languages.typescript), n = (e.languages.tsx = e.languages.extend(\"jsx\", n), delete e.languages.tsx.parameter, delete e.languages.tsx[\"literal-property\"], e.languages.tsx.tag);\n n.pattern = RegExp(/(^|[^\\w$]|(?=<\\/))/.source + \"(?:\" + n.pattern.source + \")\", n.pattern.flags), n.lookbehind = true;\n}(Prism), Prism.languages.swift = { comment: { pattern: /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/, lookbehind: true, greedy: true }, \"string-literal\": [{ pattern: RegExp(/(^|[^\"#])/.source + \"(?:\" + /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/.source + \"|\" + /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/.source + \")\" + /(?![\"#])/.source), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\\\($/, alias: \"punctuation\" }, punctuation: /\\\\(?=[\\r\\n])/, string: /[\\s\\S]+/ } }, { pattern: RegExp(/(^|[^\"#])(#+)/.source + \"(?:\" + /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/.source + \"|\" + /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source + \")\\\\2\"), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\#+\\($/, alias: \"punctuation\" }, string: /[\\s\\S]+/ } }], directive: { pattern: RegExp(/#/.source + \"(?:\" + /(?:elseif|if)\\b/.source + \"(?:[ \t]*\" + /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/.source + \")+|\" + /(?:else|endif)\\b/.source + \")\"), alias: \"property\", inside: { \"directive-name\": /^#\\w+/, boolean: /\\b(?:false|true)\\b/, number: /\\b\\d+(?:\\.\\d+)*\\b/, operator: /!|&&|\\|\\||[<>]=?/, punctuation: /[(),]/ } }, literal: { pattern: /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/, alias: \"constant\" }, \"other-directive\": { pattern: /#\\w+\\b/, alias: \"property\" }, attribute: { pattern: /@\\w+/, alias: \"atrule\" }, \"function-definition\": { pattern: /(\\bfunc\\s+)\\w+/, lookbehind: true, alias: \"function\" }, label: { pattern: /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/, lookbehind: true, alias: \"important\" }, keyword: /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/, boolean: /\\b(?:false|true)\\b/, nil: { pattern: /\\bnil\\b/, alias: \"constant\" }, \"short-argument\": /\\$\\d+\\b/, omit: { pattern: /\\b_\\b/, alias: \"keyword\" }, number: /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i, \"class-name\": /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/, operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/, punctuation: /[{}[\\]();,.:\\\\]/ }, Prism.languages.swift[\"string-literal\"].forEach(function(e) {\n e.inside.interpolation.inside = Prism.languages.swift;\n}), function(e) {\n e.languages.kotlin = e.languages.extend(\"clike\", { keyword: { pattern: /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/, lookbehind: true }, function: [{ pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/, greedy: true }, { pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/, lookbehind: true, greedy: true }], number: /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/, operator: /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/ }), delete e.languages.kotlin[\"class-name\"];\n var n = { \"interpolation-punctuation\": { pattern: /^\\$\\{?|\\}$/, alias: \"punctuation\" }, expression: { pattern: /[\\s\\S]+/, inside: e.languages.kotlin } };\n e.languages.insertBefore(\"kotlin\", \"string\", { \"string-literal\": [{ pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/, alias: \"multiline\", inside: { interpolation: { pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, inside: n }, string: /[\\s\\S]+/ } }, { pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/, alias: \"singleline\", inside: { interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, lookbehind: true, inside: n }, string: /[\\s\\S]+/ } }], char: { pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/, greedy: true } }), delete e.languages.kotlin.string, e.languages.insertBefore(\"kotlin\", \"keyword\", { annotation: { pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/, alias: \"builtin\" } }), e.languages.insertBefore(\"kotlin\", \"function\", { label: { pattern: /\\b\\w+@|@\\w+\\b/, alias: \"symbol\" } }), e.languages.kt = e.languages.kotlin, e.languages.kts = e.languages.kotlin;\n}(Prism), Prism.languages.c = Prism.languages.extend(\"clike\", { comment: { pattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, greedy: true }, string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, \"class-name\": { pattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/, lookbehind: true }, keyword: /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, number: /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i, operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/ }), Prism.languages.insertBefore(\"c\", \"string\", { char: { pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/, greedy: true } }), Prism.languages.insertBefore(\"c\", \"string\", { macro: { pattern: /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im, lookbehind: true, greedy: true, alias: \"property\", inside: { string: [{ pattern: /^(#\\s*include\\s*)<[^>]+>/, lookbehind: true }, Prism.languages.c.string], char: Prism.languages.c.char, comment: Prism.languages.c.comment, \"macro-name\": [{ pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i, lookbehind: true }, { pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i, lookbehind: true, alias: \"function\" }], directive: { pattern: /^(#\\s*)[a-z]+/, lookbehind: true, alias: \"keyword\" }, \"directive-hash\": /^#/, punctuation: /##|\\\\(?=[\\r\\n])/, expression: { pattern: /\\S[\\s\\S]*/, inside: Prism.languages.c } } } }), Prism.languages.insertBefore(\"c\", \"function\", { constant: /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/ }), delete Prism.languages.c.boolean, Prism.languages.objectivec = Prism.languages.extend(\"c\", { string: { pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, keyword: /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/, operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/ }), delete Prism.languages.objectivec[\"class-name\"], Prism.languages.objc = Prism.languages.objectivec, Prism.languages.reason = Prism.languages.extend(\"clike\", { string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/, greedy: true }, \"class-name\": /\\b[A-Z]\\w*/, keyword: /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/, operator: /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/ }), Prism.languages.insertBefore(\"reason\", \"class-name\", { char: { pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/, greedy: true }, constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/, label: { pattern: /\\b[a-z]\\w*(?=::)/, alias: \"symbol\" } }), delete Prism.languages.reason.function, function(e) {\n for (var n = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source, t = 0; t < 2; t++)\n n = n.replace(/<self>/g, function() {\n return n;\n });\n n = n.replace(/<self>/g, function() {\n return /[^\\s\\S]/.source;\n }), e.languages.rust = { comment: [{ pattern: RegExp(/(^|[^\\\\])/.source + n), lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/, greedy: true }, char: { pattern: /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/, greedy: true }, attribute: { pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/, greedy: true, alias: \"attr-name\", inside: { string: null } }, \"closure-params\": { pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/, lookbehind: true, greedy: true, inside: { \"closure-punctuation\": { pattern: /^\\||\\|$/, alias: \"punctuation\" }, rest: null } }, \"lifetime-annotation\": { pattern: /'\\w+/, alias: \"symbol\" }, \"fragment-specifier\": { pattern: /(\\$\\w+:)[a-z]+/, lookbehind: true, alias: \"punctuation\" }, variable: /\\$\\w+/, \"function-definition\": { pattern: /(\\bfn\\s+)\\w+/, lookbehind: true, alias: \"function\" }, \"type-definition\": { pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/, lookbehind: true, alias: \"class-name\" }, \"module-declaration\": [{ pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/, lookbehind: true, alias: \"namespace\" }, { pattern: /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/, lookbehind: true, alias: \"namespace\", inside: { punctuation: /::/ } }], keyword: [/\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/], function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/, macro: { pattern: /\\b\\w+!/, alias: \"property\" }, constant: /\\b[A-Z_][A-Z_\\d]+\\b/, \"class-name\": /\\b[A-Z]\\w*\\b/, namespace: { pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/, inside: { punctuation: /::/ } }, number: /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/, boolean: /\\b(?:false|true)\\b/, punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/, operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/ }, e.languages.rust[\"closure-params\"].inside.rest = e.languages.rust, e.languages.rust.attribute.inside.string = e.languages.rust.string;\n}(Prism), Prism.languages.go = Prism.languages.extend(\"clike\", { string: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/, lookbehind: true, greedy: true }, keyword: /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/, boolean: /\\b(?:_|false|iota|nil|true)\\b/, number: [/\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i], operator: /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./, builtin: /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/ }), Prism.languages.insertBefore(\"go\", \"string\", { char: { pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/, greedy: true } }), delete Prism.languages.go[\"class-name\"], function(e) {\n var n = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/, t = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(/<keyword>/g, function() {\n return n.source;\n });\n e.languages.cpp = e.languages.extend(\"c\", { \"class-name\": [{ pattern: RegExp(/(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(/<keyword>/g, function() {\n return n.source;\n })), lookbehind: true }, /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/], keyword: n, number: { pattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i, greedy: true }, operator: />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/, boolean: /\\b(?:false|true)\\b/ }), e.languages.insertBefore(\"cpp\", \"string\", { module: { pattern: RegExp(/(\\b(?:import|module)\\s+)/.source + \"(?:\" + /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source + \"|\" + /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(/<mod-name>/g, function() {\n return t;\n }) + \")\"), lookbehind: true, greedy: true, inside: { string: /^[<\"][\\s\\S]+/, operator: /:/, punctuation: /\\./ } }, \"raw-string\": { pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/, alias: \"string\", greedy: true } }), e.languages.insertBefore(\"cpp\", \"keyword\", { \"generic-function\": { pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i, inside: { function: /^\\w+/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: e.languages.cpp } } } }), e.languages.insertBefore(\"cpp\", \"operator\", { \"double-colon\": { pattern: /::/, alias: \"punctuation\" } }), e.languages.insertBefore(\"cpp\", \"class-name\", { \"base-clause\": { pattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/, lookbehind: true, greedy: true, inside: e.languages.extend(\"cpp\", {}) } }), e.languages.insertBefore(\"inside\", \"double-colon\", { \"class-name\": /\\b[a-z_]\\w*\\b(?!\\s*::)/i }, e.languages.cpp[\"base-clause\"]);\n}(Prism), Prism.languages.python = { comment: { pattern: /(^|[^\\\\])#.*/, lookbehind: true, greedy: true }, \"string-interpolation\": { pattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i, greedy: true, inside: { interpolation: { pattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/, lookbehind: true, inside: { \"format-spec\": { pattern: /(:)[^:(){}]+(?=\\}$)/, lookbehind: true }, \"conversion-option\": { pattern: //, alias: \"punctuation\" }, rest: null } }, string: /[\\s\\S]+/ } }, \"triple-quoted-string\": { pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i, greedy: true, alias: \"string\" }, string: { pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i, greedy: true }, function: { pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g, lookbehind: true }, \"class-name\": { pattern: /(\\bclass\\s+)\\w+/i, lookbehind: true }, decorator: { pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m, lookbehind: true, alias: [\"annotation\", \"punctuation\"], inside: { punctuation: /\\./ } }, keyword: /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/, builtin: /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/, boolean: /\\b(?:False|None|True)\\b/, number: /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i, operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.python[\"string-interpolation\"].inside.interpolation.inside.rest = Prism.languages.python, Prism.languages.py = Prism.languages.python, Prism.languages.json = { property: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/, lookbehind: true, greedy: true }, string: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/, lookbehind: true, greedy: true }, comment: { pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, greedy: true }, number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i, punctuation: /[{}[\\],]/, operator: /:/, boolean: /\\b(?:false|true)\\b/, null: { pattern: /\\bnull\\b/, alias: \"keyword\" } }, Prism.languages.webmanifest = Prism.languages.json;\n\n// src/themes/index.ts\nvar themes_exports = {};\n__export(themes_exports, {\n dracula: () => dracula_default,\n duotoneDark: () => duotoneDark_default,\n duotoneLight: () => duotoneLight_default,\n github: () => github_default,\n gruvboxMaterialDark: () => gruvboxMaterialDark_default,\n gruvboxMaterialLight: () => gruvboxMaterialLight_default,\n jettwaveDark: () => jettwaveDark_default,\n jettwaveLight: () => jettwaveLight_default,\n nightOwl: () => nightOwl_default,\n nightOwlLight: () => nightOwlLight_default,\n oceanicNext: () => oceanicNext_default,\n okaidia: () => okaidia_default,\n oneDark: () => oneDark_default,\n oneLight: () => oneLight_default,\n palenight: () => palenight_default,\n shadesOfPurple: () => shadesOfPurple_default,\n synthwave84: () => synthwave84_default,\n ultramin: () => ultramin_default,\n vsDark: () => vsDark_default,\n vsLight: () => vsLight_default\n});\n\n// src/themes/dracula.ts\nvar theme = {\n plain: {\n color: \"#F8F8F2\",\n backgroundColor: \"#282A36\"\n },\n styles: [\n {\n types: [\"prolog\", \"constant\", \"builtin\"],\n style: {\n color: \"rgb(189, 147, 249)\"\n }\n },\n {\n types: [\"inserted\", \"function\"],\n style: {\n color: \"rgb(80, 250, 123)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgb(255, 85, 85)\"\n }\n },\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 184, 108)\"\n }\n },\n {\n types: [\"punctuation\", \"symbol\"],\n style: {\n color: \"rgb(248, 248, 242)\"\n }\n },\n {\n types: [\"string\", \"char\", \"tag\", \"selector\"],\n style: {\n color: \"rgb(255, 121, 198)\"\n }\n },\n {\n types: [\"keyword\", \"variable\"],\n style: {\n color: \"rgb(189, 147, 249)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(98, 114, 164)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(241, 250, 140)\"\n }\n }\n ]\n};\nvar dracula_default = theme;\n\n// src/themes/duotoneDark.ts\nvar theme2 = {\n plain: {\n backgroundColor: \"#2a2734\",\n color: \"#9a86fd\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#6c6783\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#e09142\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#9a86fd\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#eeebff\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#c4b9fe\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\",\n \"placeholder\",\n \"variable\"\n ],\n style: {\n color: \"#ffcc99\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#c4b9fe\"\n }\n }\n ]\n};\nvar duotoneDark_default = theme2;\n\n// src/themes/duotoneLight.ts\nvar theme3 = {\n plain: {\n backgroundColor: \"#faf8f5\",\n color: \"#728fcb\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#b6ad9a\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#063289\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#b29762\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#2d2006\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#896724\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\"\n ],\n style: {\n color: \"#728fcb\"\n }\n },\n {\n types: [\"placeholder\", \"variable\"],\n style: {\n color: \"#93abdc\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#896724\"\n }\n }\n ]\n};\nvar duotoneLight_default = theme3;\n\n// src/themes/github.ts\nvar theme4 = {\n plain: {\n color: \"#393A34\",\n backgroundColor: \"#f6f8fa\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#999988\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"string\", \"attr-value\"],\n style: {\n color: \"#e3116c\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#393A34\"\n }\n },\n {\n types: [\n \"entity\",\n \"url\",\n \"symbol\",\n \"number\",\n \"boolean\",\n \"variable\",\n \"constant\",\n \"property\",\n \"regex\",\n \"inserted\"\n ],\n style: {\n color: \"#36acaa\"\n }\n },\n {\n types: [\"atrule\", \"keyword\", \"attr-name\", \"selector\"],\n style: {\n color: \"#00a4db\"\n }\n },\n {\n types: [\"function\", \"deleted\", \"tag\"],\n style: {\n color: \"#d73a49\"\n }\n },\n {\n types: [\"function-variable\"],\n style: {\n color: \"#6f42c1\"\n }\n },\n {\n types: [\"tag\", \"selector\", \"keyword\"],\n style: {\n color: \"#00009f\"\n }\n }\n ]\n};\nvar github_default = theme4;\n\n// src/themes/nightOwl.ts\nvar theme5 = {\n plain: {\n color: \"#d6deeb\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(99, 119, 119)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(214, 222, 235)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(255, 203, 139)\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"rgb(127, 219, 202)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"property\"],\n style: {\n color: \"rgb(128, 203, 196)\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n }\n ]\n};\nvar nightOwl_default = theme5;\n\n// src/themes/nightOwlLight.ts\nvar theme6 = {\n plain: {\n color: \"#403f53\",\n backgroundColor: \"#FBFBFB\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(72, 118, 214)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(152, 159, 177)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"builtin\", \"char\", \"constant\", \"url\"],\n style: {\n color: \"rgb(72, 118, 214)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(201, 103, 101)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(170, 9, 130)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"function\", \"selector\", \"doctype\"],\n style: {\n color: \"rgb(153, 76, 195)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(17, 17, 17)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"operator\", \"property\", \"keyword\", \"namespace\"],\n style: {\n color: \"rgb(12, 150, 155)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(188, 84, 84)\"\n }\n }\n ]\n};\nvar nightOwlLight_default = theme6;\n\n// src/themes/oceanicNext.ts\nvar colors = {\n char: \"#D8DEE9\",\n comment: \"#999999\",\n keyword: \"#c5a5c5\",\n primitive: \"#5a9bcf\",\n string: \"#8dc891\",\n variable: \"#d7deea\",\n boolean: \"#ff8b50\",\n punctuation: \"#5FB3B3\",\n tag: \"#fc929e\",\n function: \"#79b6f2\",\n className: \"#FAC863\",\n method: \"#6699CC\",\n operator: \"#fc929e\"\n};\nvar theme7 = {\n plain: {\n backgroundColor: \"#282c34\",\n color: \"#ffffff\"\n },\n styles: [\n {\n types: [\"attr-name\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"attr-value\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\n \"comment\",\n \"block-comment\",\n \"prolog\",\n \"doctype\",\n \"cdata\",\n \"shebang\"\n ],\n style: {\n color: colors.comment\n }\n },\n {\n types: [\n \"property\",\n \"number\",\n \"function-name\",\n \"constant\",\n \"symbol\",\n \"deleted\"\n ],\n style: {\n color: colors.primitive\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: colors.boolean\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: colors.tag\n }\n },\n {\n types: [\"string\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"selector\", \"char\", \"builtin\", \"inserted\"],\n style: {\n color: colors.char\n }\n },\n {\n types: [\"function\"],\n style: {\n color: colors.function\n }\n },\n {\n types: [\"operator\", \"entity\", \"url\", \"variable\"],\n style: {\n color: colors.variable\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"atrule\", \"class-name\"],\n style: {\n color: colors.className\n }\n },\n {\n types: [\"important\"],\n style: {\n fontWeight: \"400\"\n }\n },\n {\n types: [\"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n }\n ]\n};\nvar oceanicNext_default = theme7;\n\n// src/themes/okaidia.ts\nvar theme8 = {\n plain: {\n color: \"#f8f8f2\",\n backgroundColor: \"#272822\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"#f92672\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#8292a2\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"#a6e22e\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"#e6db74\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"#a6e22e\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"#66d9ef\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\",\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"property\"],\n style: {\n color: \"#f92672\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#a6e22e !important\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"#8292a2\"\n }\n },\n {\n types: [\"rule\"],\n style: {\n color: \"#e6db74\"\n }\n }\n ]\n};\nvar okaidia_default = theme8;\n\n// src/themes/palenight.ts\nvar theme9 = {\n plain: {\n color: \"#bfc7d5\",\n backgroundColor: \"#292d3e\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(105, 112, 152)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"inserted\"],\n style: {\n color: \"rgb(195, 232, 141)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n types: [\"punctuation\", \"selector\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(191, 199, 213)\"\n }\n },\n {\n types: [\"class-name\", \"attr-name\"],\n style: {\n color: \"rgb(255, 203, 107)\"\n }\n },\n {\n types: [\"tag\", \"deleted\"],\n style: {\n color: \"rgb(255, 85, 114)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(137, 221, 255)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"rgb(221, 221, 221)\"\n }\n }\n ]\n};\nvar palenight_default = theme9;\n\n// src/themes/shadesOfPurple.ts\nvar theme10 = {\n plain: {\n color: \"#9EFEFF\",\n backgroundColor: \"#2D2A55\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(179, 98, 255)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"rgb(255, 255, 255)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(165, 255, 144)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"number\", \"boolean\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 180, 84)\"\n }\n },\n {\n types: [\n \"keyword\",\n \"operator\",\n \"property\",\n \"namespace\",\n \"tag\",\n \"selector\",\n \"doctype\"\n ],\n style: {\n color: \"rgb(255, 157, 0)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"rgb(250, 208, 0)\"\n }\n }\n ]\n};\nvar shadesOfPurple_default = theme10;\n\n// src/themes/synthwave84.ts\nvar theme11 = {\n plain: {\n backgroundColor: \"linear-gradient(to bottom, #2a2139 75%, #34294f)\",\n backgroundImage: \"#34294f\",\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n },\n styles: [\n {\n types: [\"comment\", \"block-comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#495495\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#ccc\"\n }\n },\n {\n types: [\n \"tag\",\n \"attr-name\",\n \"namespace\",\n \"number\",\n \"unit\",\n \"hexcode\",\n \"deleted\"\n ],\n style: {\n color: \"#e2777a\"\n }\n },\n {\n types: [\"property\", \"selector\"],\n style: {\n color: \"#72f1b8\",\n textShadow: \"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475\"\n }\n },\n {\n types: [\"function-name\"],\n style: {\n color: \"#6196cc\"\n }\n },\n {\n types: [\"boolean\", \"selector-id\", \"function\"],\n style: {\n color: \"#fdfdfd\",\n textShadow: \"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975\"\n }\n },\n {\n types: [\"class-name\", \"maybe-class-name\", \"builtin\"],\n style: {\n color: \"#fff5f6\",\n textShadow: \"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75\"\n }\n },\n {\n types: [\"constant\", \"symbol\"],\n style: {\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n }\n },\n {\n types: [\"important\", \"atrule\", \"keyword\", \"selector-class\"],\n style: {\n color: \"#f4eee4\",\n textShadow: \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\"\n }\n },\n {\n types: [\"string\", \"char\", \"attr-value\", \"regex\", \"variable\"],\n style: {\n color: \"#f87c32\"\n }\n },\n {\n types: [\"parameter\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\", \"url\"],\n style: {\n color: \"#67cdcc\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"ffffffee\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\"],\n style: {\n cursor: \"help\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"green\"\n }\n }\n ]\n};\nvar synthwave84_default = theme11;\n\n// src/themes/ultramin.ts\nvar theme12 = {\n plain: {\n color: \"#282a2e\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(197, 200, 198)\"\n }\n },\n {\n types: [\"string\", \"number\", \"builtin\", \"variable\"],\n style: {\n color: \"rgb(150, 152, 150)\"\n }\n },\n {\n types: [\"class-name\", \"function\", \"tag\", \"attr-name\"],\n style: {\n color: \"rgb(40, 42, 46)\"\n }\n }\n ]\n};\nvar ultramin_default = theme12;\n\n// src/themes/vsDark.ts\nvar theme13 = {\n plain: {\n color: \"#9CDCFE\",\n backgroundColor: \"#1E1E1E\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"rgb(0, 0, 128)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(106, 153, 85)\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"rgb(181, 206, 168)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(100, 102, 149)\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"rgb(156, 220, 254)\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"rgb(206, 145, 120)\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"rgb(215, 186, 125)\"\n }\n },\n {\n // Fix tag color\n types: [\"tag\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n // Fix tag color for HTML\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"rgb(212, 212, 212)\"\n }\n },\n {\n // Fix punctuation color for HTML\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"rgb(220, 220, 170)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"rgb(209, 105, 105)\"\n }\n }\n ]\n};\nvar vsDark_default = theme13;\n\n// src/themes/vsLight.ts\nvar theme14 = {\n plain: {\n color: \"#000000\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(0, 128, 0)\"\n }\n },\n {\n types: [\"builtin\"],\n style: {\n color: \"rgb(0, 112, 193)\"\n }\n },\n {\n types: [\"number\", \"variable\", \"inserted\"],\n style: {\n color: \"rgb(9, 134, 88)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(0, 0, 0)\"\n }\n },\n {\n types: [\"constant\", \"char\"],\n style: {\n color: \"rgb(129, 31, 63)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(128, 0, 0)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 0, 0)\"\n }\n },\n {\n types: [\"deleted\", \"string\"],\n style: {\n color: \"rgb(163, 21, 21)\"\n }\n },\n {\n types: [\"changed\", \"punctuation\"],\n style: {\n color: \"rgb(4, 81, 165)\"\n }\n },\n {\n types: [\"function\", \"keyword\"],\n style: {\n color: \"rgb(0, 0, 255)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(38, 127, 153)\"\n }\n }\n ]\n};\nvar vsLight_default = theme14;\n\n// src/themes/jettwaveDark.ts\nvar theme15 = {\n plain: {\n color: \"#f8fafc\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#569CD6\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#f8fafc\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#9CDCFE\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#cbd5e1\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#D4D4D4\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#7dd3fc\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveDark_default = theme15;\n\n// src/themes/jettwaveLight.ts\nvar theme16 = {\n plain: {\n color: \"#0f172a\",\n backgroundColor: \"#f1f5f9\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#0f172a\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#64748b\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#475569\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#0e7490\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveLight_default = theme16;\n\n// src/themes/oneDark.ts\nvar theme17 = {\n plain: {\n backgroundColor: \"hsl(220, 13%, 18%)\",\n color: \"hsl(220, 14%, 71%)\",\n textShadow: \"0 1px rgba(0, 0, 0, 0.3)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(220, 10%, 40%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"maybe-class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: { color: \"hsl(29, 54%, 61%)\" }\n },\n {\n types: [\"keyword\"],\n style: { color: \"hsl(286, 60%, 67%)\" }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(355, 65%, 65%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\"\n ],\n style: {\n color: \"hsl(95, 38%, 62%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(207, 82%, 66%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(187, 47%, 55%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n }\n ]\n};\nvar oneDark_default = theme17;\n\n// src/themes/oneLight.ts\nvar theme18 = {\n plain: {\n backgroundColor: \"hsl(230, 1%, 98%)\",\n color: \"hsl(230, 8%, 24%)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(230, 4%, 64%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: {\n color: \"hsl(35, 99%, 36%)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: \"hsl(301, 63%, 40%)\"\n }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(5, 74%, 59%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\",\n \"punctuation\"\n ],\n style: {\n color: \"hsl(119, 34%, 47%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(221, 87%, 60%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(198, 99%, 37%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n }\n ]\n};\nvar oneLight_default = theme18;\n\n// src/themes/gruvboxMaterialDark.ts\nvar theme19 = {\n plain: {\n color: \"#ebdbb2\",\n backgroundColor: \"#292828\"\n },\n styles: [\n {\n types: [\n \"imports\",\n \"class-name\",\n \"maybe-class-name\",\n \"constant\",\n \"doctype\",\n \"builtin\",\n \"function\"\n ],\n style: {\n color: \"#d8a657\"\n }\n },\n {\n types: [\"property-access\"],\n style: {\n color: \"#7daea3\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#e78a4e\"\n }\n },\n {\n types: [\"attr-name\", \"char\", \"url\", \"regex\"],\n style: {\n color: \"#a9b665\"\n }\n },\n {\n types: [\"attr-value\", \"string\"],\n style: {\n color: \"#89b482\"\n }\n },\n {\n types: [\"comment\", \"prolog\", \"cdata\", \"operator\", \"inserted\"],\n style: {\n color: \"#a89984\"\n }\n },\n {\n types: [\n \"delimiter\",\n \"boolean\",\n \"keyword\",\n \"selector\",\n \"important\",\n \"atrule\",\n \"property\",\n \"variable\",\n \"deleted\"\n ],\n style: {\n color: \"#ea6962\"\n }\n },\n {\n types: [\"entity\", \"number\", \"symbol\"],\n style: {\n color: \"#d3869b\"\n }\n }\n ]\n};\nvar gruvboxMaterialDark_default = theme19;\n\n// src/themes/gruvboxMaterialLight.ts\nvar theme20 = {\n plain: {\n color: \"#654735\",\n backgroundColor: \"#f9f5d7\"\n },\n styles: [\n {\n types: [\n \"delimiter\",\n \"boolean\",\n \"keyword\",\n \"selector\",\n \"important\",\n \"atrule\",\n \"property\",\n \"variable\",\n \"deleted\"\n ],\n style: {\n color: \"#af2528\"\n }\n },\n {\n types: [\n \"imports\",\n \"class-name\",\n \"maybe-class-name\",\n \"constant\",\n \"doctype\",\n \"builtin\"\n ],\n style: {\n color: \"#b4730e\"\n }\n },\n {\n types: [\"string\", \"attr-value\"],\n style: {\n color: \"#477a5b\"\n }\n },\n {\n types: [\"property-access\"],\n style: {\n color: \"#266b79\"\n }\n },\n {\n types: [\"function\", \"attr-name\", \"char\", \"url\"],\n style: {\n color: \"#72761e\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#b94c07\"\n }\n },\n {\n types: [\"comment\", \"prolog\", \"cdata\", \"operator\", \"inserted\"],\n style: {\n color: \"#a89984\"\n }\n },\n {\n types: [\"entity\", \"number\", \"symbol\"],\n style: {\n color: \"#924f79\"\n }\n }\n ]\n};\nvar gruvboxMaterialLight_default = theme20;\n\n// src/index.ts\nimport { createElement } from \"react\";\n\n// src/components/useGetLineProps.ts\nimport { useCallback } from \"react\";\nimport clsx from \"clsx\";\nvar useGetLineProps = (themeDictionary) => useCallback(\n (_a) => {\n var _b = _a, { className, style, line } = _b, rest = __objRest(_b, [\"className\", \"style\", \"line\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx(\"token-line\", className)\n });\n if (typeof themeDictionary === \"object\" && \"plain\" in themeDictionary)\n output.style = themeDictionary.plain;\n if (typeof style === \"object\")\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n return output;\n },\n [themeDictionary]\n);\n\n// src/components/useGetTokenProps.ts\nimport { useCallback as useCallback2 } from \"react\";\nimport clsx2 from \"clsx\";\nvar useGetTokenProps = (themeDictionary) => {\n const styleForToken = useCallback2(\n ({ types, empty }) => {\n if (themeDictionary == null)\n return void 0;\n else if (types.length === 1 && types[0] === \"plain\") {\n return empty != null ? { display: \"inline-block\" } : void 0;\n } else if (types.length === 1 && empty != null) {\n return themeDictionary[types[0]];\n }\n return Object.assign(\n empty != null ? { display: \"inline-block\" } : {},\n ...types.map((type) => themeDictionary[type])\n );\n },\n [themeDictionary]\n );\n return useCallback2(\n (_a) => {\n var _b = _a, { token, className, style } = _b, rest = __objRest(_b, [\"token\", \"className\", \"style\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx2(\"token\", ...token.types, className),\n children: token.content,\n style: styleForToken(token)\n });\n if (style != null) {\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n }\n return output;\n },\n [styleForToken]\n );\n};\n\n// src/utils/normalizeTokens.ts\nvar newlineRe = /\\r\\n|\\r|\\n/;\nvar normalizeEmptyLines = (line) => {\n if (line.length === 0) {\n line.push({\n types: [\"plain\"],\n content: \"\\n\",\n empty: true\n });\n } else if (line.length === 1 && line[0].content === \"\") {\n line[0].content = \"\\n\";\n line[0].empty = true;\n }\n};\nvar appendTypes = (types, add) => {\n const typesSize = types.length;\n if (typesSize > 0 && types[typesSize - 1] === add) {\n return types;\n }\n return types.concat(add);\n};\nvar normalizeTokens = (tokens) => {\n const typeArrStack = [[]];\n const tokenArrStack = [tokens];\n const tokenArrIndexStack = [0];\n const tokenArrSizeStack = [tokens.length];\n let i = 0;\n let stackIndex = 0;\n let currentLine = [];\n const acc = [currentLine];\n while (stackIndex > -1) {\n while ((i = tokenArrIndexStack[stackIndex]++) < tokenArrSizeStack[stackIndex]) {\n let content;\n let types = typeArrStack[stackIndex];\n const tokenArr = tokenArrStack[stackIndex];\n const token = tokenArr[i];\n if (typeof token === \"string\") {\n types = stackIndex > 0 ? types : [\"plain\"];\n content = token;\n } else {\n types = appendTypes(types, token.type);\n if (token.alias) {\n types = appendTypes(types, token.alias);\n }\n content = token.content;\n }\n if (typeof content !== \"string\") {\n stackIndex++;\n typeArrStack.push(types);\n tokenArrStack.push(content);\n tokenArrIndexStack.push(0);\n tokenArrSizeStack.push(content.length);\n continue;\n }\n const splitByNewlines = content.split(newlineRe);\n const newlineCount = splitByNewlines.length;\n currentLine.push({\n types,\n content: splitByNewlines[0]\n });\n for (let i2 = 1; i2 < newlineCount; i2++) {\n normalizeEmptyLines(currentLine);\n acc.push(currentLine = []);\n currentLine.push({\n types,\n content: splitByNewlines[i2]\n });\n }\n }\n stackIndex--;\n typeArrStack.pop();\n tokenArrStack.pop();\n tokenArrIndexStack.pop();\n tokenArrSizeStack.pop();\n }\n normalizeEmptyLines(currentLine);\n return acc;\n};\nvar normalizeTokens_default = normalizeTokens;\n\n// src/components/useTokenize.ts\nimport { useMemo } from \"react\";\nvar useTokenize = ({ prism, code, grammar, language }) => {\n return useMemo(() => {\n if (grammar == null)\n return normalizeTokens_default([code]);\n const prismConfig = {\n code,\n grammar,\n language,\n tokens: []\n };\n prism.hooks.run(\"before-tokenize\", prismConfig);\n prismConfig.tokens = prism.tokenize(code, grammar);\n prism.hooks.run(\"after-tokenize\", prismConfig);\n return normalizeTokens_default(prismConfig.tokens);\n }, [\n code,\n grammar,\n language,\n // prism is a stable import\n prism\n ]);\n};\n\n// src/utils/themeToDict.ts\nvar themeToDict = (theme21, language) => {\n const { plain } = theme21;\n const themeDict = theme21.styles.reduce((acc, themeEntry) => {\n const { languages: languages2, style } = themeEntry;\n if (languages2 && !languages2.includes(language)) {\n return acc;\n }\n themeEntry.types.forEach((type) => {\n const accStyle = __spreadValues(__spreadValues({}, acc[type]), style);\n acc[type] = accStyle;\n });\n return acc;\n }, {});\n themeDict.root = plain;\n themeDict.plain = __spreadProps(__spreadValues({}, plain), { backgroundColor: void 0 });\n return themeDict;\n};\nvar themeToDict_default = themeToDict;\n\n// src/components/highlight.ts\nvar Highlight = ({\n children,\n language: _language,\n code,\n theme: theme21,\n prism\n}) => {\n const language = _language.toLowerCase();\n const themeDictionary = themeToDict_default(theme21, language);\n const getLineProps = useGetLineProps(themeDictionary);\n const getTokenProps = useGetTokenProps(themeDictionary);\n const grammar = prism.languages[language];\n const tokens = useTokenize({ prism, language, code, grammar });\n return children({\n tokens,\n className: `prism-code language-${language}`,\n style: themeDictionary != null ? themeDictionary.root : {},\n getLineProps,\n getTokenProps\n });\n};\n\n// src/index.ts\nvar Highlight2 = (props) => createElement(Highlight, __spreadProps(__spreadValues({}, props), {\n prism: props.prism || Prism,\n theme: props.theme || vsDark_default,\n code: props.code,\n language: props.language\n}));\nexport {\n Highlight2 as Highlight,\n Prism,\n normalizeTokens_default as normalizeTokens,\n themes_exports as themes,\n useTokenize\n};\n/*! Bundled license information:\n\nprismjs/prism.js:\n (**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n *)\n*/\n//# sourceMappingURL=index.mjs.map","const ALIAS = Symbol.for('yaml.alias');\nconst DOC = Symbol.for('yaml.document');\nconst MAP = Symbol.for('yaml.map');\nconst PAIR = Symbol.for('yaml.pair');\nconst SCALAR = Symbol.for('yaml.scalar');\nconst SEQ = Symbol.for('yaml.seq');\nconst NODE_TYPE = Symbol.for('yaml.node.type');\nconst isAlias = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === ALIAS;\nconst isDocument = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === DOC;\nconst isMap = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === MAP;\nconst isPair = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === PAIR;\nconst isScalar = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SCALAR;\nconst isSeq = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SEQ;\nfunction isCollection(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case MAP:\n case SEQ:\n return true;\n }\n return false;\n}\nfunction isNode(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case ALIAS:\n case MAP:\n case SCALAR:\n case SEQ:\n return true;\n }\n return false;\n}\nconst hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;\n\nexport { ALIAS, DOC, MAP, NODE_TYPE, PAIR, SCALAR, SEQ, hasAnchor, isAlias, isCollection, isDocument, isMap, isNode, isPair, isScalar, isSeq };\n","import { isDocument, isNode, isPair, isCollection, isMap, isSeq, isScalar, isAlias } from './nodes/identity.js';\n\nconst BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove node');\n/**\n * Apply a visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nfunction visit(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = visit_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n visit_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisit.SKIP = SKIP;\n/** Remove the current node */\nvisit.REMOVE = REMOVE;\nfunction visit_(key, node, visitor, path) {\n const ctrl = callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visit_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = visit_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = visit_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = visit_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\n/**\n * Apply an async visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `Promise`: Must resolve to one of the following values\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nasync function visitAsync(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = await visitAsync_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n await visitAsync_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisitAsync.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisitAsync.SKIP = SKIP;\n/** Remove the current node */\nvisitAsync.REMOVE = REMOVE;\nasync function visitAsync_(key, node, visitor, path) {\n const ctrl = await callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visitAsync_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = await visitAsync_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = await visitAsync_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = await visitAsync_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\nfunction initVisitor(visitor) {\n if (typeof visitor === 'object' &&\n (visitor.Collection || visitor.Node || visitor.Value)) {\n return Object.assign({\n Alias: visitor.Node,\n Map: visitor.Node,\n Scalar: visitor.Node,\n Seq: visitor.Node\n }, visitor.Value && {\n Map: visitor.Value,\n Scalar: visitor.Value,\n Seq: visitor.Value\n }, visitor.Collection && {\n Map: visitor.Collection,\n Seq: visitor.Collection\n }, visitor);\n }\n return visitor;\n}\nfunction callVisitor(key, node, visitor, path) {\n if (typeof visitor === 'function')\n return visitor(key, node, path);\n if (isMap(node))\n return visitor.Map?.(key, node, path);\n if (isSeq(node))\n return visitor.Seq?.(key, node, path);\n if (isPair(node))\n return visitor.Pair?.(key, node, path);\n if (isScalar(node))\n return visitor.Scalar?.(key, node, path);\n if (isAlias(node))\n return visitor.Alias?.(key, node, path);\n return undefined;\n}\nfunction replaceNode(key, path, node) {\n const parent = path[path.length - 1];\n if (isCollection(parent)) {\n parent.items[key] = node;\n }\n else if (isPair(parent)) {\n if (key === 'key')\n parent.key = node;\n else\n parent.value = node;\n }\n else if (isDocument(parent)) {\n parent.contents = node;\n }\n else {\n const pt = isAlias(parent) ? 'alias' : 'scalar';\n throw new Error(`Cannot replace node with ${pt} parent`);\n }\n}\n\nexport { visit, visitAsync };\n","import { isNode } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\nconst escapeChars = {\n '!': '%21',\n ',': '%2C',\n '[': '%5B',\n ']': '%5D',\n '{': '%7B',\n '}': '%7D'\n};\nconst escapeTagName = (tn) => tn.replace(/[!,[\\]{}]/g, ch => escapeChars[ch]);\nclass Directives {\n constructor(yaml, tags) {\n /**\n * The directives-end/doc-start marker `---`. If `null`, a marker may still be\n * included in the document's stringified representation.\n */\n this.docStart = null;\n /** The doc-end marker `...`. */\n this.docEnd = false;\n this.yaml = Object.assign({}, Directives.defaultYaml, yaml);\n this.tags = Object.assign({}, Directives.defaultTags, tags);\n }\n clone() {\n const copy = new Directives(this.yaml, this.tags);\n copy.docStart = this.docStart;\n return copy;\n }\n /**\n * During parsing, get a Directives instance for the current document and\n * update the stream state according to the current version's spec.\n */\n atDocument() {\n const res = new Directives(this.yaml, this.tags);\n switch (this.yaml.version) {\n case '1.1':\n this.atNextDocument = true;\n break;\n case '1.2':\n this.atNextDocument = false;\n this.yaml = {\n explicit: Directives.defaultYaml.explicit,\n version: '1.2'\n };\n this.tags = Object.assign({}, Directives.defaultTags);\n break;\n }\n return res;\n }\n /**\n * @param onError - May be called even if the action was successful\n * @returns `true` on success\n */\n add(line, onError) {\n if (this.atNextDocument) {\n this.yaml = { explicit: Directives.defaultYaml.explicit, version: '1.1' };\n this.tags = Object.assign({}, Directives.defaultTags);\n this.atNextDocument = false;\n }\n const parts = line.trim().split(/[ \\t]+/);\n const name = parts.shift();\n switch (name) {\n case '%TAG': {\n if (parts.length !== 2) {\n onError(0, '%TAG directive should contain exactly two parts');\n if (parts.length < 2)\n return false;\n }\n const [handle, prefix] = parts;\n this.tags[handle] = prefix;\n return true;\n }\n case '%YAML': {\n this.yaml.explicit = true;\n if (parts.length !== 1) {\n onError(0, '%YAML directive should contain exactly one part');\n return false;\n }\n const [version] = parts;\n if (version === '1.1' || version === '1.2') {\n this.yaml.version = version;\n return true;\n }\n else {\n const isValid = /^\\d+\\.\\d+$/.test(version);\n onError(6, `Unsupported YAML version ${version}`, isValid);\n return false;\n }\n }\n default:\n onError(0, `Unknown directive ${name}`, true);\n return false;\n }\n }\n /**\n * Resolves a tag, matching handles to those defined in %TAG directives.\n *\n * @returns Resolved tag, which may also be the non-specific tag `'!'` or a\n * `'!local'` tag, or `null` if unresolvable.\n */\n tagName(source, onError) {\n if (source === '!')\n return '!'; // non-specific tag\n if (source[0] !== '!') {\n onError(`Not a valid tag: ${source}`);\n return null;\n }\n if (source[1] === '<') {\n const verbatim = source.slice(2, -1);\n if (verbatim === '!' || verbatim === '!!') {\n onError(`Verbatim tags aren't resolved, so ${source} is invalid.`);\n return null;\n }\n if (source[source.length - 1] !== '>')\n onError('Verbatim tags must end with a >');\n return verbatim;\n }\n const [, handle, suffix] = source.match(/^(.*!)([^!]*)$/s);\n if (!suffix)\n onError(`The ${source} tag has no suffix`);\n const prefix = this.tags[handle];\n if (prefix) {\n try {\n return prefix + decodeURIComponent(suffix);\n }\n catch (error) {\n onError(String(error));\n return null;\n }\n }\n if (handle === '!')\n return source; // local tag\n onError(`Could not resolve tag: ${source}`);\n return null;\n }\n /**\n * Given a fully resolved tag, returns its printable string form,\n * taking into account current tag prefixes and defaults.\n */\n tagString(tag) {\n for (const [handle, prefix] of Object.entries(this.tags)) {\n if (tag.startsWith(prefix))\n return handle + escapeTagName(tag.substring(prefix.length));\n }\n return tag[0] === '!' ? tag : `!<${tag}>`;\n }\n toString(doc) {\n const lines = this.yaml.explicit\n ? [`%YAML ${this.yaml.version || '1.2'}`]\n : [];\n const tagEntries = Object.entries(this.tags);\n let tagNames;\n if (doc && tagEntries.length > 0 && isNode(doc.contents)) {\n const tags = {};\n visit(doc.contents, (_key, node) => {\n if (isNode(node) && node.tag)\n tags[node.tag] = true;\n });\n tagNames = Object.keys(tags);\n }\n else\n tagNames = [];\n for (const [handle, prefix] of tagEntries) {\n if (handle === '!!' && prefix === 'tag:yaml.org,2002:')\n continue;\n if (!doc || tagNames.some(tn => tn.startsWith(prefix)))\n lines.push(`%TAG ${handle} ${prefix}`);\n }\n return lines.join('\\n');\n }\n}\nDirectives.defaultYaml = { explicit: false, version: '1.2' };\nDirectives.defaultTags = { '!!': 'tag:yaml.org,2002:' };\n\nexport { Directives };\n","import { isScalar, isCollection } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\n/**\n * Verify that the input string is a valid anchor.\n *\n * Will throw on errors.\n */\nfunction anchorIsValid(anchor) {\n if (/[\\x00-\\x19\\s,[\\]{}]/.test(anchor)) {\n const sa = JSON.stringify(anchor);\n const msg = `Anchor must not contain whitespace or control characters: ${sa}`;\n throw new Error(msg);\n }\n return true;\n}\nfunction anchorNames(root) {\n const anchors = new Set();\n visit(root, {\n Value(_key, node) {\n if (node.anchor)\n anchors.add(node.anchor);\n }\n });\n return anchors;\n}\n/** Find a new anchor name with the given `prefix` and a one-indexed suffix. */\nfunction findNewAnchor(prefix, exclude) {\n for (let i = 1; true; ++i) {\n const name = `${prefix}${i}`;\n if (!exclude.has(name))\n return name;\n }\n}\nfunction createNodeAnchors(doc, prefix) {\n const aliasObjects = [];\n const sourceObjects = new Map();\n let prevAnchors = null;\n return {\n onAnchor: (source) => {\n aliasObjects.push(source);\n prevAnchors ?? (prevAnchors = anchorNames(doc));\n const anchor = findNewAnchor(prefix, prevAnchors);\n prevAnchors.add(anchor);\n return anchor;\n },\n /**\n * With circular references, the source node is only resolved after all\n * of its child nodes are. This is why anchors are set only after all of\n * the nodes have been created.\n */\n setAnchors: () => {\n for (const source of aliasObjects) {\n const ref = sourceObjects.get(source);\n if (typeof ref === 'object' &&\n ref.anchor &&\n (isScalar(ref.node) || isCollection(ref.node))) {\n ref.node.anchor = ref.anchor;\n }\n else {\n const error = new Error('Failed to resolve repeated object (this should not happen)');\n error.source = source;\n throw error;\n }\n }\n },\n sourceObjects\n };\n}\n\nexport { anchorIsValid, anchorNames, createNodeAnchors, findNewAnchor };\n","/**\n * Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,\n * in section 24.5.1.1 \"Runtime Semantics: InternalizeJSONProperty\" of the\n * 2021 edition: https://tc39.es/ecma262/#sec-json.parse\n *\n * Includes extensions for handling Map and Set objects.\n */\nfunction applyReviver(reviver, obj, key, val) {\n if (val && typeof val === 'object') {\n if (Array.isArray(val)) {\n for (let i = 0, len = val.length; i < len; ++i) {\n const v0 = val[i];\n const v1 = applyReviver(reviver, val, String(i), v0);\n // eslint-disable-next-line @typescript-eslint/no-array-delete\n if (v1 === undefined)\n delete val[i];\n else if (v1 !== v0)\n val[i] = v1;\n }\n }\n else if (val instanceof Map) {\n for (const k of Array.from(val.keys())) {\n const v0 = val.get(k);\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n val.delete(k);\n else if (v1 !== v0)\n val.set(k, v1);\n }\n }\n else if (val instanceof Set) {\n for (const v0 of Array.from(val)) {\n const v1 = applyReviver(reviver, val, v0, v0);\n if (v1 === undefined)\n val.delete(v0);\n else if (v1 !== v0) {\n val.delete(v0);\n val.add(v1);\n }\n }\n }\n else {\n for (const [k, v0] of Object.entries(val)) {\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n delete val[k];\n else if (v1 !== v0)\n val[k] = v1;\n }\n }\n }\n return reviver.call(obj, key, val);\n}\n\nexport { applyReviver };\n","import { hasAnchor } from './identity.js';\n\n/**\n * Recursively convert any node or its contents to native JavaScript\n *\n * @param value - The input value\n * @param arg - If `value` defines a `toJSON()` method, use this\n * as its first argument\n * @param ctx - Conversion context, originally set in Document#toJS(). If\n * `{ keep: true }` is not set, output should be suitable for JSON\n * stringification.\n */\nfunction toJS(value, arg, ctx) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (Array.isArray(value))\n return value.map((v, i) => toJS(v, String(i), ctx));\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (!ctx || !hasAnchor(value))\n return value.toJSON(arg, ctx);\n const data = { aliasCount: 0, count: 1, res: undefined };\n ctx.anchors.set(value, data);\n ctx.onCreate = res => {\n data.res = res;\n delete ctx.onCreate;\n };\n const res = value.toJSON(arg, ctx);\n if (ctx.onCreate)\n ctx.onCreate(res);\n return res;\n }\n if (typeof value === 'bigint' && !ctx?.keep)\n return Number(value);\n return value;\n}\n\nexport { toJS };\n","import { applyReviver } from '../doc/applyReviver.js';\nimport { NODE_TYPE, isDocument } from './identity.js';\nimport { toJS } from './toJS.js';\n\nclass NodeBase {\n constructor(type) {\n Object.defineProperty(this, NODE_TYPE, { value: type });\n }\n /** Create a copy of this node. */\n clone() {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** A plain JavaScript representation of this node. */\n toJS(doc, { mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n if (!isDocument(doc))\n throw new TypeError('A document argument is required');\n const ctx = {\n anchors: new Map(),\n doc,\n keep: true,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this, '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n}\n\nexport { NodeBase };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { visit } from '../visit.js';\nimport { ALIAS, isAlias, isCollection, isPair, hasAnchor } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nclass Alias extends NodeBase {\n constructor(source) {\n super(ALIAS);\n this.source = source;\n Object.defineProperty(this, 'tag', {\n set() {\n throw new Error('Alias nodes cannot have tags');\n }\n });\n }\n /**\n * Resolve the value of this alias within `doc`, finding the last\n * instance of the `source` anchor before this node.\n */\n resolve(doc, ctx) {\n if (ctx?.maxAliasCount === 0)\n throw new ReferenceError('Alias resolution is disabled');\n let nodes;\n if (ctx?.aliasResolveCache) {\n nodes = ctx.aliasResolveCache;\n }\n else {\n nodes = [];\n visit(doc, {\n Node: (_key, node) => {\n if (isAlias(node) || hasAnchor(node))\n nodes.push(node);\n }\n });\n if (ctx)\n ctx.aliasResolveCache = nodes;\n }\n let found = undefined;\n for (const node of nodes) {\n if (node === this)\n break;\n if (node.anchor === this.source)\n found = node;\n }\n return found;\n }\n toJSON(_arg, ctx) {\n if (!ctx)\n return { source: this.source };\n const { anchors, doc, maxAliasCount } = ctx;\n const source = this.resolve(doc, ctx);\n if (!source) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new ReferenceError(msg);\n }\n let data = anchors.get(source);\n if (!data) {\n // Resolve anchors for Node.prototype.toJS()\n toJS(source, null, ctx);\n data = anchors.get(source);\n }\n /* istanbul ignore if */\n if (data?.res === undefined) {\n const msg = 'This should not happen: Alias anchor was not resolved?';\n throw new ReferenceError(msg);\n }\n if (maxAliasCount >= 0) {\n data.count += 1;\n if (data.aliasCount === 0)\n data.aliasCount = getAliasCount(doc, source, anchors);\n if (data.count * data.aliasCount > maxAliasCount) {\n const msg = 'Excessive alias count indicates a resource exhaustion attack';\n throw new ReferenceError(msg);\n }\n }\n return data.res;\n }\n toString(ctx, _onComment, _onChompKeep) {\n const src = `*${this.source}`;\n if (ctx) {\n anchorIsValid(this.source);\n if (ctx.options.verifyAliasOrder && !ctx.anchors.has(this.source)) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new Error(msg);\n }\n if (ctx.implicitKey)\n return `${src} `;\n }\n return src;\n }\n}\nfunction getAliasCount(doc, node, anchors) {\n if (isAlias(node)) {\n const source = node.resolve(doc);\n const anchor = anchors && source && anchors.get(source);\n return anchor ? anchor.count * anchor.aliasCount : 0;\n }\n else if (isCollection(node)) {\n let count = 0;\n for (const item of node.items) {\n const c = getAliasCount(doc, item, anchors);\n if (c > count)\n count = c;\n }\n return count;\n }\n else if (isPair(node)) {\n const kc = getAliasCount(doc, node.key, anchors);\n const vc = getAliasCount(doc, node.value, anchors);\n return Math.max(kc, vc);\n }\n return 1;\n}\n\nexport { Alias };\n","import { SCALAR } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nconst isScalarValue = (value) => !value || (typeof value !== 'function' && typeof value !== 'object');\nclass Scalar extends NodeBase {\n constructor(value) {\n super(SCALAR);\n this.value = value;\n }\n toJSON(arg, ctx) {\n return ctx?.keep ? this.value : toJS(this.value, arg, ctx);\n }\n toString() {\n return String(this.value);\n }\n}\nScalar.BLOCK_FOLDED = 'BLOCK_FOLDED';\nScalar.BLOCK_LITERAL = 'BLOCK_LITERAL';\nScalar.PLAIN = 'PLAIN';\nScalar.QUOTE_DOUBLE = 'QUOTE_DOUBLE';\nScalar.QUOTE_SINGLE = 'QUOTE_SINGLE';\n\nexport { Scalar, isScalarValue };\n","import { Alias } from '../nodes/Alias.js';\nimport { isNode, isPair, MAP, SEQ, isDocument } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\n\nconst defaultTagPrefix = 'tag:yaml.org,2002:';\nfunction findTagObject(value, tagName, tags) {\n if (tagName) {\n const match = tags.filter(t => t.tag === tagName);\n const tagObj = match.find(t => !t.format) ?? match[0];\n if (!tagObj)\n throw new Error(`Tag ${tagName} not found`);\n return tagObj;\n }\n return tags.find(t => t.identify?.(value) && !t.format);\n}\nfunction createNode(value, tagName, ctx) {\n if (isDocument(value))\n value = value.contents;\n if (isNode(value))\n return value;\n if (isPair(value)) {\n const map = ctx.schema[MAP].createNode?.(ctx.schema, null, ctx);\n map.items.push(value);\n return map;\n }\n if (value instanceof String ||\n value instanceof Number ||\n value instanceof Boolean ||\n (typeof BigInt !== 'undefined' && value instanceof BigInt) // not supported everywhere\n ) {\n // https://tc39.es/ecma262/#sec-serializejsonproperty\n value = value.valueOf();\n }\n const { aliasDuplicateObjects, onAnchor, onTagObj, schema, sourceObjects } = ctx;\n // Detect duplicate references to the same object & use Alias nodes for all\n // after first. The `ref` wrapper allows for circular references to resolve.\n let ref = undefined;\n if (aliasDuplicateObjects && value && typeof value === 'object') {\n ref = sourceObjects.get(value);\n if (ref) {\n ref.anchor ?? (ref.anchor = onAnchor(value));\n return new Alias(ref.anchor);\n }\n else {\n ref = { anchor: null, node: null };\n sourceObjects.set(value, ref);\n }\n }\n if (tagName?.startsWith('!!'))\n tagName = defaultTagPrefix + tagName.slice(2);\n let tagObj = findTagObject(value, tagName, schema.tags);\n if (!tagObj) {\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n value = value.toJSON();\n }\n if (!value || typeof value !== 'object') {\n const node = new Scalar(value);\n if (ref)\n ref.node = node;\n return node;\n }\n tagObj =\n value instanceof Map\n ? schema[MAP]\n : Symbol.iterator in Object(value)\n ? schema[SEQ]\n : schema[MAP];\n }\n if (onTagObj) {\n onTagObj(tagObj);\n delete ctx.onTagObj;\n }\n const node = tagObj?.createNode\n ? tagObj.createNode(ctx.schema, value, ctx)\n : typeof tagObj?.nodeClass?.from === 'function'\n ? tagObj.nodeClass.from(ctx.schema, value, ctx)\n : new Scalar(value);\n if (tagName)\n node.tag = tagName;\n else if (!tagObj.default)\n node.tag = tagObj.tag;\n if (ref)\n ref.node = node;\n return node;\n}\n\nexport { createNode };\n","import { createNode } from '../doc/createNode.js';\nimport { isNode, isPair, isCollection, isScalar } from './identity.js';\nimport { NodeBase } from './Node.js';\n\nfunction collectionFromPath(schema, path, value) {\n let v = value;\n for (let i = path.length - 1; i >= 0; --i) {\n const k = path[i];\n if (typeof k === 'number' && Number.isInteger(k) && k >= 0) {\n const a = [];\n a[k] = v;\n v = a;\n }\n else {\n v = new Map([[k, v]]);\n }\n }\n return createNode(v, undefined, {\n aliasDuplicateObjects: false,\n keepUndefined: false,\n onAnchor: () => {\n throw new Error('This should not happen, please report a bug.');\n },\n schema,\n sourceObjects: new Map()\n });\n}\n// Type guard is intentionally a little wrong so as to be more useful,\n// as it does not cover untypable empty non-string iterables (e.g. []).\nconst isEmptyPath = (path) => path == null ||\n (typeof path === 'object' && !!path[Symbol.iterator]().next().done);\nclass Collection extends NodeBase {\n constructor(type, schema) {\n super(type);\n Object.defineProperty(this, 'schema', {\n value: schema,\n configurable: true,\n enumerable: false,\n writable: true\n });\n }\n /**\n * Create a copy of this collection.\n *\n * @param schema - If defined, overwrites the original's schema\n */\n clone(schema) {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (schema)\n copy.schema = schema;\n copy.items = copy.items.map(it => isNode(it) || isPair(it) ? it.clone(schema) : it);\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /**\n * Adds a value to the collection. For `!!map` and `!!omap` the value must\n * be a Pair instance or a `{ key, value }` object, which may not have a key\n * that already exists in the map.\n */\n addIn(path, value) {\n if (isEmptyPath(path))\n this.add(value);\n else {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (isCollection(node))\n node.addIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n /**\n * Removes a value from the collection.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.delete(key);\n const node = this.get(key, true);\n if (isCollection(node))\n return node.deleteIn(rest);\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (rest.length === 0)\n return !keepScalar && isScalar(node) ? node.value : node;\n else\n return isCollection(node) ? node.getIn(rest, keepScalar) : undefined;\n }\n hasAllNullValues(allowScalar) {\n return this.items.every(node => {\n if (!isPair(node))\n return false;\n const n = node.value;\n return (n == null ||\n (allowScalar &&\n isScalar(n) &&\n n.value == null &&\n !n.commentBefore &&\n !n.comment &&\n !n.tag));\n });\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n */\n hasIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.has(key);\n const node = this.get(key, true);\n return isCollection(node) ? node.hasIn(rest) : false;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n const [key, ...rest] = path;\n if (rest.length === 0) {\n this.set(key, value);\n }\n else {\n const node = this.get(key, true);\n if (isCollection(node))\n node.setIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n}\n\nexport { Collection, collectionFromPath, isEmptyPath };\n","/**\n * Stringifies a comment.\n *\n * Empty comment lines are left empty,\n * lines consisting of a single space are replaced by `#`,\n * and all other lines are prefixed with a `#`.\n */\nconst stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, '#');\nfunction indentComment(comment, indent) {\n if (/^\\n+$/.test(comment))\n return comment.substring(1);\n return indent ? comment.replace(/^(?! *$)/gm, indent) : comment;\n}\nconst lineComment = (str, indent, comment) => str.endsWith('\\n')\n ? indentComment(comment, indent)\n : comment.includes('\\n')\n ? '\\n' + indentComment(comment, indent)\n : (str.endsWith(' ') ? '' : ' ') + comment;\n\nexport { indentComment, lineComment, stringifyComment };\n","const FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted';\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n */\nfunction foldFlowLines(text, indent, mode = 'flow', { indentAtStart, lineWidth = 80, minContentWidth = 20, onFold, onOverflow } = {}) {\n if (!lineWidth || lineWidth < 0)\n return text;\n if (lineWidth < minContentWidth)\n minContentWidth = 0;\n const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n if (text.length <= endStep)\n return text;\n const folds = [];\n const escapedFolds = {};\n let end = lineWidth - indent.length;\n if (typeof indentAtStart === 'number') {\n if (indentAtStart > lineWidth - Math.max(2, minContentWidth))\n folds.push(0);\n else\n end = lineWidth - indentAtStart;\n }\n let split = undefined;\n let prev = undefined;\n let overflow = false;\n let i = -1;\n let escStart = -1;\n let escEnd = -1;\n if (mode === FOLD_BLOCK) {\n i = consumeMoreIndentedLines(text, i, indent.length);\n if (i !== -1)\n end = i + endStep;\n }\n for (let ch; (ch = text[(i += 1)]);) {\n if (mode === FOLD_QUOTED && ch === '\\\\') {\n escStart = i;\n switch (text[i + 1]) {\n case 'x':\n i += 3;\n break;\n case 'u':\n i += 5;\n break;\n case 'U':\n i += 9;\n break;\n default:\n i += 1;\n }\n escEnd = i;\n }\n if (ch === '\\n') {\n if (mode === FOLD_BLOCK)\n i = consumeMoreIndentedLines(text, i, indent.length);\n end = i + indent.length + endStep;\n split = undefined;\n }\n else {\n if (ch === ' ' &&\n prev &&\n prev !== ' ' &&\n prev !== '\\n' &&\n prev !== '\\t') {\n // space surrounded by non-space can be replaced with newline + indent\n const next = text[i + 1];\n if (next && next !== ' ' && next !== '\\n' && next !== '\\t')\n split = i;\n }\n if (i >= end) {\n if (split) {\n folds.push(split);\n end = split + endStep;\n split = undefined;\n }\n else if (mode === FOLD_QUOTED) {\n // white-space collected at end may stretch past lineWidth\n while (prev === ' ' || prev === '\\t') {\n prev = ch;\n ch = text[(i += 1)];\n overflow = true;\n }\n // Account for newline escape, but don't break preceding escape\n const j = i > escEnd + 1 ? i - 2 : escStart - 1;\n // Bail out if lineWidth & minContentWidth are shorter than an escape string\n if (escapedFolds[j])\n return text;\n folds.push(j);\n escapedFolds[j] = true;\n end = j + endStep;\n split = undefined;\n }\n else {\n overflow = true;\n }\n }\n }\n prev = ch;\n }\n if (overflow && onOverflow)\n onOverflow();\n if (folds.length === 0)\n return text;\n if (onFold)\n onFold();\n let res = text.slice(0, folds[0]);\n for (let i = 0; i < folds.length; ++i) {\n const fold = folds[i];\n const end = folds[i + 1] || text.length;\n if (fold === 0)\n res = `\\n${indent}${text.slice(0, end)}`;\n else {\n if (mode === FOLD_QUOTED && escapedFolds[fold])\n res += `${text[fold]}\\\\`;\n res += `\\n${indent}${text.slice(fold + 1, end)}`;\n }\n }\n return res;\n}\n/**\n * Presumes `i + 1` is at the start of a line\n * @returns index of last newline in more-indented block\n */\nfunction consumeMoreIndentedLines(text, i, indent) {\n let end = i;\n let start = i + 1;\n let ch = text[start];\n while (ch === ' ' || ch === '\\t') {\n if (i < start + indent) {\n ch = text[++i];\n }\n else {\n do {\n ch = text[++i];\n } while (ch && ch !== '\\n');\n end = i;\n start = i + 1;\n ch = text[start];\n }\n }\n return end;\n}\n\nexport { FOLD_BLOCK, FOLD_FLOW, FOLD_QUOTED, foldFlowLines };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { foldFlowLines, FOLD_FLOW, FOLD_QUOTED, FOLD_BLOCK } from './foldFlowLines.js';\n\nconst getFoldOptions = (ctx, isBlock) => ({\n indentAtStart: isBlock ? ctx.indent.length : ctx.indentAtStart,\n lineWidth: ctx.options.lineWidth,\n minContentWidth: ctx.options.minContentWidth\n});\n// Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\nconst containsDocumentMarker = (str) => /^(%|---|\\.\\.\\.)/m.test(str);\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n if (!lineWidth || lineWidth < 0)\n return false;\n const limit = lineWidth - indentLength;\n const strLen = str.length;\n if (strLen <= limit)\n return false;\n for (let i = 0, start = 0; i < strLen; ++i) {\n if (str[i] === '\\n') {\n if (i - start > limit)\n return true;\n start = i + 1;\n if (strLen - start <= limit)\n return false;\n }\n }\n return true;\n}\nfunction doubleQuotedString(value, ctx) {\n const json = JSON.stringify(value);\n if (ctx.options.doubleQuotedAsJSON)\n return json;\n const { implicitKey } = ctx;\n const minMultiLineLength = ctx.options.doubleQuotedMinMultiLineLength;\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n let str = '';\n let start = 0;\n for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n // space before newline needs to be escaped to not be folded\n str += json.slice(start, i) + '\\\\ ';\n i += 1;\n start = i;\n ch = '\\\\';\n }\n if (ch === '\\\\')\n switch (json[i + 1]) {\n case 'u':\n {\n str += json.slice(start, i);\n const code = json.substr(i + 2, 4);\n switch (code) {\n case '0000':\n str += '\\\\0';\n break;\n case '0007':\n str += '\\\\a';\n break;\n case '000b':\n str += '\\\\v';\n break;\n case '001b':\n str += '\\\\e';\n break;\n case '0085':\n str += '\\\\N';\n break;\n case '00a0':\n str += '\\\\_';\n break;\n case '2028':\n str += '\\\\L';\n break;\n case '2029':\n str += '\\\\P';\n break;\n default:\n if (code.substr(0, 2) === '00')\n str += '\\\\x' + code.substr(2);\n else\n str += json.substr(i, 6);\n }\n i += 5;\n start = i + 1;\n }\n break;\n case 'n':\n if (implicitKey ||\n json[i + 2] === '\"' ||\n json.length < minMultiLineLength) {\n i += 1;\n }\n else {\n // folding will eat first newline\n str += json.slice(start, i) + '\\n\\n';\n while (json[i + 2] === '\\\\' &&\n json[i + 3] === 'n' &&\n json[i + 4] !== '\"') {\n str += '\\n';\n i += 2;\n }\n str += indent;\n // space after newline needs to be escaped to not be folded\n if (json[i + 2] === ' ')\n str += '\\\\';\n i += 1;\n start = i + 1;\n }\n break;\n default:\n i += 1;\n }\n }\n str = start ? str + json.slice(start) : json;\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx, false));\n}\nfunction singleQuotedString(value, ctx) {\n if (ctx.options.singleQuote === false ||\n (ctx.implicitKey && value.includes('\\n')) ||\n /[ \\t]\\n|\\n[ \\t]/.test(value) // single quoted string can't have leading or trailing whitespace around newline\n )\n return doubleQuotedString(value, ctx);\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n return ctx.implicitKey\n ? res\n : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction quotedString(value, ctx) {\n const { singleQuote } = ctx.options;\n let qs;\n if (singleQuote === false)\n qs = doubleQuotedString;\n else {\n const hasDouble = value.includes('\"');\n const hasSingle = value.includes(\"'\");\n if (hasDouble && !hasSingle)\n qs = singleQuotedString;\n else if (hasSingle && !hasDouble)\n qs = doubleQuotedString;\n else\n qs = singleQuote ? singleQuotedString : doubleQuotedString;\n }\n return qs(value, ctx);\n}\n// The negative lookbehind avoids a polynomial search,\n// but isn't supported yet on Safari: https://caniuse.com/js-regexp-lookbehind\nlet blockEndNewlines;\ntry {\n blockEndNewlines = new RegExp('(^|(?<!\\n))\\n+(?!\\n|$)', 'g');\n}\ncatch {\n blockEndNewlines = /\\n+(?!\\n|$)/g;\n}\nfunction blockString({ comment, type, value }, ctx, onComment, onChompKeep) {\n const { blockQuote, commentString, lineWidth } = ctx.options;\n // 1. Block can't end in whitespace unless the last line is non-empty.\n // 2. Strings consisting of only whitespace are best rendered explicitly.\n if (!blockQuote || /\\n[\\t ]+$/.test(value)) {\n return quotedString(value, ctx);\n }\n const indent = ctx.indent ||\n (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : '');\n const literal = blockQuote === 'literal'\n ? true\n : blockQuote === 'folded' || type === Scalar.BLOCK_FOLDED\n ? false\n : type === Scalar.BLOCK_LITERAL\n ? true\n : !lineLengthOverLimit(value, lineWidth, indent.length);\n if (!value)\n return literal ? '|\\n' : '>\\n';\n // determine chomping from whitespace at value end\n let chomp;\n let endStart;\n for (endStart = value.length; endStart > 0; --endStart) {\n const ch = value[endStart - 1];\n if (ch !== '\\n' && ch !== '\\t' && ch !== ' ')\n break;\n }\n let end = value.substring(endStart);\n const endNlPos = end.indexOf('\\n');\n if (endNlPos === -1) {\n chomp = '-'; // strip\n }\n else if (value === end || endNlPos !== end.length - 1) {\n chomp = '+'; // keep\n if (onChompKeep)\n onChompKeep();\n }\n else {\n chomp = ''; // clip\n }\n if (end) {\n value = value.slice(0, -end.length);\n if (end[end.length - 1] === '\\n')\n end = end.slice(0, -1);\n end = end.replace(blockEndNewlines, `$&${indent}`);\n }\n // determine indent indicator from whitespace at value start\n let startWithSpace = false;\n let startEnd;\n let startNlPos = -1;\n for (startEnd = 0; startEnd < value.length; ++startEnd) {\n const ch = value[startEnd];\n if (ch === ' ')\n startWithSpace = true;\n else if (ch === '\\n')\n startNlPos = startEnd;\n else\n break;\n }\n let start = value.substring(0, startNlPos < startEnd ? startNlPos + 1 : startEnd);\n if (start) {\n value = value.substring(start.length);\n start = start.replace(/\\n+/g, `$&${indent}`);\n }\n const indentSize = indent ? '2' : '1'; // root is at -1\n // Leading | or > is added later\n let header = (startWithSpace ? indentSize : '') + chomp;\n if (comment) {\n header += ' ' + commentString(comment.replace(/ ?[\\r\\n]+/g, ' '));\n if (onComment)\n onComment();\n }\n if (!literal) {\n const foldedValue = value\n .replace(/\\n+/g, '\\n$&')\n .replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n // ^ more-ind. ^ empty ^ capture next empty lines only at end of indent\n .replace(/\\n+/g, `$&${indent}`);\n let literalFallback = false;\n const foldOptions = getFoldOptions(ctx, true);\n if (blockQuote !== 'folded' && type !== Scalar.BLOCK_FOLDED) {\n foldOptions.onOverflow = () => {\n literalFallback = true;\n };\n }\n const body = foldFlowLines(`${start}${foldedValue}${end}`, indent, FOLD_BLOCK, foldOptions);\n if (!literalFallback)\n return `>${header}\\n${indent}${body}`;\n }\n value = value.replace(/\\n+/g, `$&${indent}`);\n return `|${header}\\n${indent}${start}${value}${end}`;\n}\nfunction plainString(item, ctx, onComment, onChompKeep) {\n const { type, value } = item;\n const { actualString, implicitKey, indent, indentStep, inFlow } = ctx;\n if ((implicitKey && value.includes('\\n')) ||\n (inFlow && /[[\\]{},]/.test(value))) {\n return quotedString(value, ctx);\n }\n if (/^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n // not allowed:\n // - '-' or '?'\n // - start with an indicator character (except [?:-]) or /[?-] /\n // - '\\n ', ': ' or ' \\n' anywhere\n // - '#' not preceded by a non-space char\n // - end with ' ' or ':'\n return implicitKey || inFlow || !value.includes('\\n')\n ? quotedString(value, ctx)\n : blockString(item, ctx, onComment, onChompKeep);\n }\n if (!implicitKey &&\n !inFlow &&\n type !== Scalar.PLAIN &&\n value.includes('\\n')) {\n // Where allowed & type not set explicitly, prefer block style for multiline strings\n return blockString(item, ctx, onComment, onChompKeep);\n }\n if (containsDocumentMarker(value)) {\n if (indent === '') {\n ctx.forceBlockIndent = true;\n return blockString(item, ctx, onComment, onChompKeep);\n }\n else if (implicitKey && indent === indentStep) {\n return quotedString(value, ctx);\n }\n }\n const str = value.replace(/\\n+/g, `$&\\n${indent}`);\n // Verify that output will be parsed as a string, as e.g. plain numbers and\n // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n // and others in v1.1.\n if (actualString) {\n const test = (tag) => tag.default && tag.tag !== 'tag:yaml.org,2002:str' && tag.test?.test(str);\n const { compat, tags } = ctx.doc.schema;\n if (tags.some(test) || compat?.some(test))\n return quotedString(value, ctx);\n }\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n const { implicitKey, inFlow } = ctx;\n const ss = typeof item.value === 'string'\n ? item\n : Object.assign({}, item, { value: String(item.value) });\n let { type } = item;\n if (type !== Scalar.QUOTE_DOUBLE) {\n // force double quotes on control characters & unpaired surrogates\n if (/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(ss.value))\n type = Scalar.QUOTE_DOUBLE;\n }\n const _stringify = (_type) => {\n switch (_type) {\n case Scalar.BLOCK_FOLDED:\n case Scalar.BLOCK_LITERAL:\n return implicitKey || inFlow\n ? quotedString(ss.value, ctx) // blocks are not valid inside flow containers\n : blockString(ss, ctx, onComment, onChompKeep);\n case Scalar.QUOTE_DOUBLE:\n return doubleQuotedString(ss.value, ctx);\n case Scalar.QUOTE_SINGLE:\n return singleQuotedString(ss.value, ctx);\n case Scalar.PLAIN:\n return plainString(ss, ctx, onComment, onChompKeep);\n default:\n return null;\n }\n };\n let res = _stringify(type);\n if (res === null) {\n const { defaultKeyType, defaultStringType } = ctx.options;\n const t = (implicitKey && defaultKeyType) || defaultStringType;\n res = _stringify(t);\n if (res === null)\n throw new Error(`Unsupported default string type ${t}`);\n }\n return res;\n}\n\nexport { stringifyString };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { isPair, isAlias, isNode, isScalar, isCollection } from '../nodes/identity.js';\nimport { stringifyComment } from './stringifyComment.js';\nimport { stringifyString } from './stringifyString.js';\n\nfunction createStringifyContext(doc, options) {\n const opt = Object.assign({\n blockQuote: true,\n commentString: stringifyComment,\n defaultKeyType: null,\n defaultStringType: 'PLAIN',\n directives: null,\n doubleQuotedAsJSON: false,\n doubleQuotedMinMultiLineLength: 40,\n falseStr: 'false',\n flowCollectionPadding: true,\n indentSeq: true,\n lineWidth: 80,\n minContentWidth: 20,\n nullStr: 'null',\n simpleKeys: false,\n singleQuote: null,\n trailingComma: false,\n trueStr: 'true',\n verifyAliasOrder: true\n }, doc.schema.toStringOptions, options);\n let inFlow;\n switch (opt.collectionStyle) {\n case 'block':\n inFlow = false;\n break;\n case 'flow':\n inFlow = true;\n break;\n default:\n inFlow = null;\n }\n return {\n anchors: new Set(),\n doc,\n flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',\n indent: '',\n indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',\n inFlow,\n options: opt\n };\n}\nfunction getTagObject(tags, item) {\n if (item.tag) {\n const match = tags.filter(t => t.tag === item.tag);\n if (match.length > 0)\n return match.find(t => t.format === item.format) ?? match[0];\n }\n let tagObj = undefined;\n let obj;\n if (isScalar(item)) {\n obj = item.value;\n let match = tags.filter(t => t.identify?.(obj));\n if (match.length > 1) {\n const testMatch = match.filter(t => t.test);\n if (testMatch.length > 0)\n match = testMatch;\n }\n tagObj =\n match.find(t => t.format === item.format) ?? match.find(t => !t.format);\n }\n else {\n obj = item;\n tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n }\n if (!tagObj) {\n const name = obj?.constructor?.name ?? (obj === null ? 'null' : typeof obj);\n throw new Error(`Tag not resolved for ${name} value`);\n }\n return tagObj;\n}\n// needs to be called before value stringifier to allow for circular anchor refs\nfunction stringifyProps(node, tagObj, { anchors, doc }) {\n if (!doc.directives)\n return '';\n const props = [];\n const anchor = (isScalar(node) || isCollection(node)) && node.anchor;\n if (anchor && anchorIsValid(anchor)) {\n anchors.add(anchor);\n props.push(`&${anchor}`);\n }\n const tag = node.tag ?? (tagObj.default ? null : tagObj.tag);\n if (tag)\n props.push(doc.directives.tagString(tag));\n return props.join(' ');\n}\nfunction stringify(item, ctx, onComment, onChompKeep) {\n if (isPair(item))\n return item.toString(ctx, onComment, onChompKeep);\n if (isAlias(item)) {\n if (ctx.doc.directives)\n return item.toString(ctx);\n if (ctx.resolvedAliases?.has(item)) {\n throw new TypeError(`Cannot stringify circular structure without alias nodes`);\n }\n else {\n if (ctx.resolvedAliases)\n ctx.resolvedAliases.add(item);\n else\n ctx.resolvedAliases = new Set([item]);\n item = item.resolve(ctx.doc);\n }\n }\n let tagObj = undefined;\n const node = isNode(item)\n ? item\n : ctx.doc.createNode(item, { onTagObj: o => (tagObj = o) });\n tagObj ?? (tagObj = getTagObject(ctx.doc.schema.tags, node));\n const props = stringifyProps(node, tagObj, ctx);\n if (props.length > 0)\n ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;\n const str = typeof tagObj.stringify === 'function'\n ? tagObj.stringify(node, ctx, onComment, onChompKeep)\n : isScalar(node)\n ? stringifyString(node, ctx, onComment, onChompKeep)\n : node.toString(ctx, onComment, onChompKeep);\n if (!props)\n return str;\n return isScalar(node) || str[0] === '{' || str[0] === '['\n ? `${props} ${str}`\n : `${props}\\n${ctx.indent}${str}`;\n}\n\nexport { createStringifyContext, stringify };\n","import { isCollection, isNode, isScalar, isSeq } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyPair({ key, value }, ctx, onComment, onChompKeep) {\n const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;\n let keyComment = (isNode(key) && key.comment) || null;\n if (simpleKeys) {\n if (keyComment) {\n throw new Error('With simple keys, key nodes cannot have comments');\n }\n if (isCollection(key) || (!isNode(key) && typeof key === 'object')) {\n const msg = 'With simple keys, collection cannot be used as a key value';\n throw new Error(msg);\n }\n }\n let explicitKey = !simpleKeys &&\n (!key ||\n (keyComment && value == null && !ctx.inFlow) ||\n isCollection(key) ||\n (isScalar(key)\n ? key.type === Scalar.BLOCK_FOLDED || key.type === Scalar.BLOCK_LITERAL\n : typeof key === 'object'));\n ctx = Object.assign({}, ctx, {\n allNullValues: false,\n implicitKey: !explicitKey && (simpleKeys || !allNullValues),\n indent: indent + indentStep\n });\n let keyCommentDone = false;\n let chompKeep = false;\n let str = stringify(key, ctx, () => (keyCommentDone = true), () => (chompKeep = true));\n if (!explicitKey && !ctx.inFlow && str.length > 1024) {\n if (simpleKeys)\n throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n explicitKey = true;\n }\n if (ctx.inFlow) {\n if (allNullValues || value == null) {\n if (keyCommentDone && onComment)\n onComment();\n return str === '' ? '?' : explicitKey ? `? ${str}` : str;\n }\n }\n else if ((allNullValues && !simpleKeys) || (value == null && explicitKey)) {\n str = `? ${str}`;\n if (keyComment && !keyCommentDone) {\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n }\n if (keyCommentDone)\n keyComment = null;\n if (explicitKey) {\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n str = `? ${str}\\n${indent}:`;\n }\n else {\n str = `${str}:`;\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n let vsb, vcb, valueComment;\n if (isNode(value)) {\n vsb = !!value.spaceBefore;\n vcb = value.commentBefore;\n valueComment = value.comment;\n }\n else {\n vsb = false;\n vcb = null;\n valueComment = null;\n if (value && typeof value === 'object')\n value = doc.createNode(value);\n }\n ctx.implicitKey = false;\n if (!explicitKey && !keyComment && isScalar(value))\n ctx.indentAtStart = str.length + 1;\n chompKeep = false;\n if (!indentSeq &&\n indentStep.length >= 2 &&\n !ctx.inFlow &&\n !explicitKey &&\n isSeq(value) &&\n !value.flow &&\n !value.tag &&\n !value.anchor) {\n // If indentSeq === false, consider '- ' as part of indentation where possible\n ctx.indent = ctx.indent.substring(2);\n }\n let valueCommentDone = false;\n const valueStr = stringify(value, ctx, () => (valueCommentDone = true), () => (chompKeep = true));\n let ws = ' ';\n if (keyComment || vsb || vcb) {\n ws = vsb ? '\\n' : '';\n if (vcb) {\n const cs = commentString(vcb);\n ws += `\\n${indentComment(cs, ctx.indent)}`;\n }\n if (valueStr === '' && !ctx.inFlow) {\n if (ws === '\\n' && valueComment)\n ws = '\\n\\n';\n }\n else {\n ws += `\\n${ctx.indent}`;\n }\n }\n else if (!explicitKey && isCollection(value)) {\n const vs0 = valueStr[0];\n const nl0 = valueStr.indexOf('\\n');\n const hasNewline = nl0 !== -1;\n const flow = ctx.inFlow ?? value.flow ?? value.items.length === 0;\n if (hasNewline || !flow) {\n let hasPropsLine = false;\n if (hasNewline && (vs0 === '&' || vs0 === '!')) {\n let sp0 = valueStr.indexOf(' ');\n if (vs0 === '&' &&\n sp0 !== -1 &&\n sp0 < nl0 &&\n valueStr[sp0 + 1] === '!') {\n sp0 = valueStr.indexOf(' ', sp0 + 1);\n }\n if (sp0 === -1 || nl0 < sp0)\n hasPropsLine = true;\n }\n if (!hasPropsLine)\n ws = `\\n${ctx.indent}`;\n }\n }\n else if (valueStr === '' || valueStr[0] === '\\n') {\n ws = '';\n }\n str += ws + valueStr;\n if (ctx.inFlow) {\n if (valueCommentDone && onComment)\n onComment();\n }\n else if (valueComment && !valueCommentDone) {\n str += lineComment(str, ctx.indent, commentString(valueComment));\n }\n else if (chompKeep && onChompKeep) {\n onChompKeep();\n }\n return str;\n}\n\nexport { stringifyPair };\n","function debug(logLevel, ...messages) {\n if (logLevel === 'debug')\n console.log(...messages);\n}\nfunction warn(logLevel, warning) {\n if (logLevel === 'debug' || logLevel === 'warn') {\n console.warn(warning);\n }\n}\n\nexport { debug, warn };\n","import { isScalar, isSeq, isAlias, isMap } from '../../nodes/identity.js';\nimport { Scalar } from '../../nodes/Scalar.js';\n\n// If the value associated with a merge key is a single mapping node, each of\n// its key/value pairs is inserted into the current mapping, unless the key\n// already exists in it. If the value associated with the merge key is a\n// sequence, then this sequence is expected to contain mapping nodes and each\n// of these nodes is merged in turn according to its order in the sequence.\n// Keys in mapping nodes earlier in the sequence override keys specified in\n// later mapping nodes. -- http://yaml.org/type/merge.html\nconst MERGE_KEY = '<<';\nconst merge = {\n identify: value => value === MERGE_KEY ||\n (typeof value === 'symbol' && value.description === MERGE_KEY),\n default: 'key',\n tag: 'tag:yaml.org,2002:merge',\n test: /^<<$/,\n resolve: () => Object.assign(new Scalar(Symbol(MERGE_KEY)), {\n addToJSMap: addMergeToJSMap\n }),\n stringify: () => MERGE_KEY\n};\nconst isMergeKey = (ctx, key) => (merge.identify(key) ||\n (isScalar(key) &&\n (!key.type || key.type === Scalar.PLAIN) &&\n merge.identify(key.value))) &&\n ctx?.doc.schema.tags.some(tag => tag.tag === merge.tag && tag.default);\nfunction addMergeToJSMap(ctx, map, value) {\n const source = resolveAliasValue(ctx, value);\n if (isSeq(source))\n for (const it of source.items)\n mergeValue(ctx, map, it);\n else if (Array.isArray(source))\n for (const it of source)\n mergeValue(ctx, map, it);\n else\n mergeValue(ctx, map, source);\n}\nfunction mergeValue(ctx, map, value) {\n const source = resolveAliasValue(ctx, value);\n if (!isMap(source))\n throw new Error('Merge sources must be maps or map aliases');\n const srcMap = source.toJSON(null, ctx, Map);\n for (const [key, value] of srcMap) {\n if (map instanceof Map) {\n if (!map.has(key))\n map.set(key, value);\n }\n else if (map instanceof Set) {\n map.add(key);\n }\n else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n Object.defineProperty(map, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n return map;\n}\nfunction resolveAliasValue(ctx, value) {\n return ctx && isAlias(value) ? value.resolve(ctx.doc, ctx) : value;\n}\n\nexport { addMergeToJSMap, isMergeKey, merge };\n","import { warn } from '../log.js';\nimport { isMergeKey, addMergeToJSMap } from '../schema/yaml-1.1/merge.js';\nimport { createStringifyContext } from '../stringify/stringify.js';\nimport { isNode } from './identity.js';\nimport { toJS } from './toJS.js';\n\nfunction addPairToJSMap(ctx, map, { key, value }) {\n if (isNode(key) && key.addToJSMap)\n key.addToJSMap(ctx, map, value);\n // TODO: Should drop this special case for bare << handling\n else if (isMergeKey(ctx, key))\n addMergeToJSMap(ctx, map, value);\n else {\n const jsKey = toJS(key, '', ctx);\n if (map instanceof Map) {\n map.set(jsKey, toJS(value, jsKey, ctx));\n }\n else if (map instanceof Set) {\n map.add(jsKey);\n }\n else {\n const stringKey = stringifyKey(key, jsKey, ctx);\n const jsValue = toJS(value, stringKey, ctx);\n if (stringKey in map)\n Object.defineProperty(map, stringKey, {\n value: jsValue,\n writable: true,\n enumerable: true,\n configurable: true\n });\n else\n map[stringKey] = jsValue;\n }\n }\n return map;\n}\nfunction stringifyKey(key, jsKey, ctx) {\n if (jsKey === null)\n return '';\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n if (typeof jsKey !== 'object')\n return String(jsKey);\n if (isNode(key) && ctx?.doc) {\n const strCtx = createStringifyContext(ctx.doc, {});\n strCtx.anchors = new Set();\n for (const node of ctx.anchors.keys())\n strCtx.anchors.add(node.anchor);\n strCtx.inFlow = true;\n strCtx.inStringifyKey = true;\n const strKey = key.toString(strCtx);\n if (!ctx.mapKeyWarned) {\n let jsonStr = JSON.stringify(strKey);\n if (jsonStr.length > 40)\n jsonStr = jsonStr.substring(0, 36) + '...\"';\n warn(ctx.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${jsonStr}. Set mapAsMap: true to use object keys.`);\n ctx.mapKeyWarned = true;\n }\n return strKey;\n }\n return JSON.stringify(jsKey);\n}\n\nexport { addPairToJSMap };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyPair } from '../stringify/stringifyPair.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { NODE_TYPE, PAIR, isNode } from './identity.js';\n\nfunction createPair(key, value, ctx) {\n const k = createNode(key, undefined, ctx);\n const v = createNode(value, undefined, ctx);\n return new Pair(k, v);\n}\nclass Pair {\n constructor(key, value = null) {\n Object.defineProperty(this, NODE_TYPE, { value: PAIR });\n this.key = key;\n this.value = value;\n }\n clone(schema) {\n let { key, value } = this;\n if (isNode(key))\n key = key.clone(schema);\n if (isNode(value))\n value = value.clone(schema);\n return new Pair(key, value);\n }\n toJSON(_, ctx) {\n const pair = ctx?.mapAsMap ? new Map() : {};\n return addPairToJSMap(ctx, pair, this);\n }\n toString(ctx, onComment, onChompKeep) {\n return ctx?.doc\n ? stringifyPair(this, ctx, onComment, onChompKeep)\n : JSON.stringify(this);\n }\n}\n\nexport { Pair, createPair };\n","import { isNode, isPair } from '../nodes/identity.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyCollection(collection, ctx, options) {\n const flow = ctx.inFlow ?? collection.flow;\n const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;\n return stringify(collection, ctx, options);\n}\nfunction stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {\n const { indent, options: { commentString } } = ctx;\n const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });\n let chompKeep = false; // flag for the preceding node's status\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (!chompKeep && item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, chompKeep);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (!chompKeep && ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);\n }\n }\n chompKeep = false;\n let str = stringify(item, itemCtx, () => (comment = null), () => (chompKeep = true));\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n if (chompKeep && comment)\n chompKeep = false;\n lines.push(blockItemPrefix + str);\n }\n let str;\n if (lines.length === 0) {\n str = flowChars.start + flowChars.end;\n }\n else {\n str = lines[0];\n for (let i = 1; i < lines.length; ++i) {\n const line = lines[i];\n str += line ? `\\n${indent}${line}` : '\\n';\n }\n }\n if (comment) {\n str += '\\n' + indentComment(commentString(comment), indent);\n if (onComment)\n onComment();\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n}\nfunction stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {\n const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;\n itemIndent += indentStep;\n const itemCtx = Object.assign({}, ctx, {\n indent: itemIndent,\n inFlow: true,\n type: null\n });\n let reqNewline = false;\n let linesAtValue = 0;\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, false);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, false);\n if (ik.comment)\n reqNewline = true;\n }\n const iv = isNode(item.value) ? item.value : null;\n if (iv) {\n if (iv.comment)\n comment = iv.comment;\n if (iv.commentBefore)\n reqNewline = true;\n }\n else if (item.value == null && ik?.comment) {\n comment = ik.comment;\n }\n }\n if (comment)\n reqNewline = true;\n let str = stringify(item, itemCtx, () => (comment = null));\n reqNewline || (reqNewline = lines.length > linesAtValue || str.includes('\\n'));\n if (i < items.length - 1) {\n str += ',';\n }\n else if (ctx.options.trailingComma) {\n if (ctx.options.lineWidth > 0) {\n reqNewline || (reqNewline = lines.reduce((sum, line) => sum + line.length + 2, 2) +\n (str.length + 2) >\n ctx.options.lineWidth);\n }\n if (reqNewline) {\n str += ',';\n }\n }\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n lines.push(str);\n linesAtValue = lines.length;\n }\n const { start, end } = flowChars;\n if (lines.length === 0) {\n return start + end;\n }\n else {\n if (!reqNewline) {\n const len = lines.reduce((sum, line) => sum + line.length + 2, 2);\n reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;\n }\n if (reqNewline) {\n let str = start;\n for (const line of lines)\n str += line ? `\\n${indentStep}${indent}${line}` : '\\n';\n return `${str}\\n${indent}${end}`;\n }\n else {\n return `${start}${fcPadding}${lines.join(' ')}${fcPadding}${end}`;\n }\n }\n}\nfunction addCommentBefore({ indent, options: { commentString } }, lines, comment, chompKeep) {\n if (comment && chompKeep)\n comment = comment.replace(/^\\n+/, '');\n if (comment) {\n const ic = indentComment(commentString(comment), indent);\n lines.push(ic.trimStart()); // Avoid double indent on first line\n }\n}\n\nexport { stringifyCollection };\n","import { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { Collection } from './Collection.js';\nimport { MAP, isPair, isScalar } from './identity.js';\nimport { Pair, createPair } from './Pair.js';\nimport { isScalarValue } from './Scalar.js';\n\nfunction findPair(items, key) {\n const k = isScalar(key) ? key.value : key;\n for (const it of items) {\n if (isPair(it)) {\n if (it.key === key || it.key === k)\n return it;\n if (isScalar(it.key) && it.key.value === k)\n return it;\n }\n }\n return undefined;\n}\nclass YAMLMap extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:map';\n }\n constructor(schema) {\n super(MAP, schema);\n this.items = [];\n }\n /**\n * A generic collection parsing method that can be extended\n * to other node classes that inherit from YAMLMap\n */\n static from(schema, obj, ctx) {\n const { keepUndefined, replacer } = ctx;\n const map = new this(schema);\n const add = (key, value) => {\n if (typeof replacer === 'function')\n value = replacer.call(obj, key, value);\n else if (Array.isArray(replacer) && !replacer.includes(key))\n return;\n if (value !== undefined || keepUndefined)\n map.items.push(createPair(key, value, ctx));\n };\n if (obj instanceof Map) {\n for (const [key, value] of obj)\n add(key, value);\n }\n else if (obj && typeof obj === 'object') {\n for (const key of Object.keys(obj))\n add(key, obj[key]);\n }\n if (typeof schema.sortMapEntries === 'function') {\n map.items.sort(schema.sortMapEntries);\n }\n return map;\n }\n /**\n * Adds a value to the collection.\n *\n * @param overwrite - If not set `true`, using a key that is already in the\n * collection will throw. Otherwise, overwrites the previous value.\n */\n add(pair, overwrite) {\n let _pair;\n if (isPair(pair))\n _pair = pair;\n else if (!pair || typeof pair !== 'object' || !('key' in pair)) {\n // In TypeScript, this never happens.\n _pair = new Pair(pair, pair?.value);\n }\n else\n _pair = new Pair(pair.key, pair.value);\n const prev = findPair(this.items, _pair.key);\n const sortEntries = this.schema?.sortMapEntries;\n if (prev) {\n if (!overwrite)\n throw new Error(`Key ${_pair.key} already set`);\n // For scalars, keep the old node & its comments and anchors\n if (isScalar(prev.value) && isScalarValue(_pair.value))\n prev.value.value = _pair.value;\n else\n prev.value = _pair.value;\n }\n else if (sortEntries) {\n const i = this.items.findIndex(item => sortEntries(_pair, item) < 0);\n if (i === -1)\n this.items.push(_pair);\n else\n this.items.splice(i, 0, _pair);\n }\n else {\n this.items.push(_pair);\n }\n }\n delete(key) {\n const it = findPair(this.items, key);\n if (!it)\n return false;\n const del = this.items.splice(this.items.indexOf(it), 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const it = findPair(this.items, key);\n const node = it?.value;\n return (!keepScalar && isScalar(node) ? node.value : node) ?? undefined;\n }\n has(key) {\n return !!findPair(this.items, key);\n }\n set(key, value) {\n this.add(new Pair(key, value), true);\n }\n /**\n * @param ctx - Conversion context, originally set in Document#toJS()\n * @param {Class} Type - If set, forces the returned collection type\n * @returns Instance of Type, Map, or Object\n */\n toJSON(_, ctx, Type) {\n const map = Type ? new Type() : ctx?.mapAsMap ? new Map() : {};\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const item of this.items)\n addPairToJSMap(ctx, map, item);\n return map;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n for (const item of this.items) {\n if (!isPair(item))\n throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n }\n if (!ctx.allNullValues && this.hasAllNullValues(false))\n ctx = Object.assign({}, ctx, { allNullValues: true });\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '',\n flowChars: { start: '{', end: '}' },\n itemIndent: ctx.indent || '',\n onChompKeep,\n onComment\n });\n }\n}\n\nexport { YAMLMap, findPair };\n","import { isMap } from '../../nodes/identity.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\n\nconst map = {\n collection: 'map',\n default: true,\n nodeClass: YAMLMap,\n tag: 'tag:yaml.org,2002:map',\n resolve(map, onError) {\n if (!isMap(map))\n onError('Expected a mapping for this tag');\n return map;\n },\n createNode: (schema, obj, ctx) => YAMLMap.from(schema, obj, ctx)\n};\n\nexport { map };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { Collection } from './Collection.js';\nimport { SEQ, isScalar } from './identity.js';\nimport { isScalarValue } from './Scalar.js';\nimport { toJS } from './toJS.js';\n\nclass YAMLSeq extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:seq';\n }\n constructor(schema) {\n super(SEQ, schema);\n this.items = [];\n }\n add(value) {\n this.items.push(value);\n }\n /**\n * Removes a value from the collection.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n *\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return false;\n const del = this.items.splice(idx, 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return undefined;\n const it = this.items[idx];\n return !keepScalar && isScalar(it) ? it.value : it;\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n */\n has(key) {\n const idx = asItemIndex(key);\n return typeof idx === 'number' && idx < this.items.length;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n *\n * If `key` does not contain a representation of an integer, this will throw.\n * It may be wrapped in a `Scalar`.\n */\n set(key, value) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n throw new Error(`Expected a valid index, not ${key}.`);\n const prev = this.items[idx];\n if (isScalar(prev) && isScalarValue(value))\n prev.value = value;\n else\n this.items[idx] = value;\n }\n toJSON(_, ctx) {\n const seq = [];\n if (ctx?.onCreate)\n ctx.onCreate(seq);\n let i = 0;\n for (const item of this.items)\n seq.push(toJS(item, String(i++), ctx));\n return seq;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '- ',\n flowChars: { start: '[', end: ']' },\n itemIndent: (ctx.indent || '') + ' ',\n onChompKeep,\n onComment\n });\n }\n static from(schema, obj, ctx) {\n const { replacer } = ctx;\n const seq = new this(schema);\n if (obj && Symbol.iterator in Object(obj)) {\n let i = 0;\n for (let it of obj) {\n if (typeof replacer === 'function') {\n const key = obj instanceof Set ? it : String(i++);\n it = replacer.call(obj, key, it);\n }\n seq.items.push(createNode(it, undefined, ctx));\n }\n }\n return seq;\n }\n}\nfunction asItemIndex(key) {\n let idx = isScalar(key) ? key.value : key;\n if (idx && typeof idx === 'string')\n idx = Number(idx);\n return typeof idx === 'number' && Number.isInteger(idx) && idx >= 0\n ? idx\n : null;\n}\n\nexport { YAMLSeq };\n","import { isSeq } from '../../nodes/identity.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nconst seq = {\n collection: 'seq',\n default: true,\n nodeClass: YAMLSeq,\n tag: 'tag:yaml.org,2002:seq',\n resolve(seq, onError) {\n if (!isSeq(seq))\n onError('Expected a sequence for this tag');\n return seq;\n },\n createNode: (schema, obj, ctx) => YAMLSeq.from(schema, obj, ctx)\n};\n\nexport { seq };\n","import { stringifyString } from '../../stringify/stringifyString.js';\n\nconst string = {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify(item, ctx, onComment, onChompKeep) {\n ctx = Object.assign({ actualString: true }, ctx);\n return stringifyString(item, ctx, onComment, onChompKeep);\n }\n};\n\nexport { string };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst nullTag = {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: () => new Scalar(null),\n stringify: ({ source }, ctx) => typeof source === 'string' && nullTag.test.test(source)\n ? source\n : ctx.options.nullStr\n};\n\nexport { nullTag };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst boolTag = {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n resolve: str => new Scalar(str[0] === 't' || str[0] === 'T'),\n stringify({ source, value }, ctx) {\n if (source && boolTag.test.test(source)) {\n const sv = source[0] === 't' || source[0] === 'T';\n if (value === sv)\n return source;\n }\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n }\n};\n\nexport { boolTag };\n","function stringifyNumber({ format, minFractionDigits, tag, value }) {\n if (typeof value === 'bigint')\n return String(value);\n const num = typeof value === 'number' ? value : Number(value);\n if (!isFinite(num))\n return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf';\n let n = Object.is(value, -0) ? '-0' : JSON.stringify(value);\n if (!format &&\n minFractionDigits &&\n (!tag || tag === 'tag:yaml.org,2002:float') &&\n /^-?\\d/.test(n) &&\n !n.includes('e')) {\n let i = n.indexOf('.');\n if (i < 0) {\n i = n.length;\n n += '.';\n }\n let d = minFractionDigits - (n.length - i - 1);\n while (d-- > 0)\n n += '0';\n }\n return n;\n}\n\nexport { stringifyNumber };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: str => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n resolve: str => parseFloat(str),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+\\.[0-9]*)$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str));\n const dot = str.indexOf('.');\n if (dot !== -1 && str[str.length - 1] === '0')\n node.minFractionDigits = str.length - dot - 1;\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nconst intResolve = (str, offset, radix, { intAsBigInt }) => (intAsBigInt ? BigInt(str) : parseInt(str.substring(offset), radix));\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value) && value >= 0)\n return prefix + value.toString(radix);\n return stringifyNumber(node);\n}\nconst intOct = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^0o[0-7]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 8, opt),\n stringify: node => intStringify(node, 8, '0o')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^0x[0-9a-fA-F]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intHex, intOct };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { boolTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intOct, int, intHex } from './int.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n boolTag,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float\n];\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { map } from '../common/map.js';\nimport { seq } from '../common/seq.js';\n\nfunction intIdentify(value) {\n return typeof value === 'bigint' || Number.isInteger(value);\n}\nconst stringifyJSON = ({ value }) => JSON.stringify(value);\nconst jsonScalars = [\n {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify: stringifyJSON\n },\n {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^null$/,\n resolve: () => null,\n stringify: stringifyJSON\n },\n {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^true$|^false$/,\n resolve: str => str === 'true',\n stringify: stringifyJSON\n },\n {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^-?(?:0|[1-9][0-9]*)$/,\n resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10),\n stringify: ({ value }) => intIdentify(value) ? value.toString() : JSON.stringify(value)\n },\n {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n resolve: str => parseFloat(str),\n stringify: stringifyJSON\n }\n];\nconst jsonError = {\n default: true,\n tag: '',\n test: /^/,\n resolve(str, onError) {\n onError(`Unresolved plain scalar ${JSON.stringify(str)}`);\n return str;\n }\n};\nconst schema = [map, seq].concat(jsonScalars, jsonError);\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyString } from '../../stringify/stringifyString.js';\n\nconst binary = {\n identify: value => value instanceof Uint8Array, // Buffer inherits from Uint8Array\n default: false,\n tag: 'tag:yaml.org,2002:binary',\n /**\n * Returns a Buffer in node and an Uint8Array in browsers\n *\n * To use the resulting buffer as an image, you'll want to do something like:\n *\n * const blob = new Blob([buffer], { type: 'image/jpeg' })\n * document.querySelector('#photo').src = URL.createObjectURL(blob)\n */\n resolve(src, onError) {\n if (typeof atob === 'function') {\n // On IE 11, atob() can't handle newlines\n const str = atob(src.replace(/[\\n\\r]/g, ''));\n const buffer = new Uint8Array(str.length);\n for (let i = 0; i < str.length; ++i)\n buffer[i] = str.charCodeAt(i);\n return buffer;\n }\n else {\n onError('This environment does not support reading binary tags; either Buffer or atob is required');\n return src;\n }\n },\n stringify({ comment, type, value }, ctx, onComment, onChompKeep) {\n if (!value)\n return '';\n const buf = value; // checked earlier by binary.identify()\n let str;\n if (typeof btoa === 'function') {\n let s = '';\n for (let i = 0; i < buf.length; ++i)\n s += String.fromCharCode(buf[i]);\n str = btoa(s);\n }\n else {\n throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n }\n type ?? (type = Scalar.BLOCK_LITERAL);\n if (type !== Scalar.QUOTE_DOUBLE) {\n const lineWidth = Math.max(ctx.options.lineWidth - ctx.indent.length, ctx.options.minContentWidth);\n const n = Math.ceil(str.length / lineWidth);\n const lines = new Array(n);\n for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {\n lines[i] = str.substr(o, lineWidth);\n }\n str = lines.join(type === Scalar.BLOCK_LITERAL ? '\\n' : ' ');\n }\n return stringifyString({ comment, type, value: str }, ctx, onComment, onChompKeep);\n }\n};\n\nexport { binary };\n","import { isSeq, isPair, isMap } from '../../nodes/identity.js';\nimport { createPair, Pair } from '../../nodes/Pair.js';\nimport { Scalar } from '../../nodes/Scalar.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nfunction resolvePairs(seq, onError) {\n if (isSeq(seq)) {\n for (let i = 0; i < seq.items.length; ++i) {\n let item = seq.items[i];\n if (isPair(item))\n continue;\n else if (isMap(item)) {\n if (item.items.length > 1)\n onError('Each pair must have its own sequence indicator');\n const pair = item.items[0] || new Pair(new Scalar(null));\n if (item.commentBefore)\n pair.key.commentBefore = pair.key.commentBefore\n ? `${item.commentBefore}\\n${pair.key.commentBefore}`\n : item.commentBefore;\n if (item.comment) {\n const cn = pair.value ?? pair.key;\n cn.comment = cn.comment\n ? `${item.comment}\\n${cn.comment}`\n : item.comment;\n }\n item = pair;\n }\n seq.items[i] = isPair(item) ? item : new Pair(item);\n }\n }\n else\n onError('Expected a sequence for this tag');\n return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n const { replacer } = ctx;\n const pairs = new YAMLSeq(schema);\n pairs.tag = 'tag:yaml.org,2002:pairs';\n let i = 0;\n if (iterable && Symbol.iterator in Object(iterable))\n for (let it of iterable) {\n if (typeof replacer === 'function')\n it = replacer.call(iterable, String(i++), it);\n let key, value;\n if (Array.isArray(it)) {\n if (it.length === 2) {\n key = it[0];\n value = it[1];\n }\n else\n throw new TypeError(`Expected [key, value] tuple: ${it}`);\n }\n else if (it && it instanceof Object) {\n const keys = Object.keys(it);\n if (keys.length === 1) {\n key = keys[0];\n value = it[key];\n }\n else {\n throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);\n }\n }\n else {\n key = it;\n }\n pairs.items.push(createPair(key, value, ctx));\n }\n return pairs;\n}\nconst pairs = {\n collection: 'seq',\n default: false,\n tag: 'tag:yaml.org,2002:pairs',\n resolve: resolvePairs,\n createNode: createPairs\n};\n\nexport { createPairs, pairs, resolvePairs };\n","import { isScalar, isPair } from '../../nodes/identity.js';\nimport { toJS } from '../../nodes/toJS.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\nimport { resolvePairs, createPairs } from './pairs.js';\n\nclass YAMLOMap extends YAMLSeq {\n constructor() {\n super();\n this.add = YAMLMap.prototype.add.bind(this);\n this.delete = YAMLMap.prototype.delete.bind(this);\n this.get = YAMLMap.prototype.get.bind(this);\n this.has = YAMLMap.prototype.has.bind(this);\n this.set = YAMLMap.prototype.set.bind(this);\n this.tag = YAMLOMap.tag;\n }\n /**\n * If `ctx` is given, the return type is actually `Map<unknown, unknown>`,\n * but TypeScript won't allow widening the signature of a child method.\n */\n toJSON(_, ctx) {\n if (!ctx)\n return super.toJSON(_);\n const map = new Map();\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const pair of this.items) {\n let key, value;\n if (isPair(pair)) {\n key = toJS(pair.key, '', ctx);\n value = toJS(pair.value, key, ctx);\n }\n else {\n key = toJS(pair, '', ctx);\n }\n if (map.has(key))\n throw new Error('Ordered maps must not include duplicate keys');\n map.set(key, value);\n }\n return map;\n }\n static from(schema, iterable, ctx) {\n const pairs = createPairs(schema, iterable, ctx);\n const omap = new this();\n omap.items = pairs.items;\n return omap;\n }\n}\nYAMLOMap.tag = 'tag:yaml.org,2002:omap';\nconst omap = {\n collection: 'seq',\n identify: value => value instanceof Map,\n nodeClass: YAMLOMap,\n default: false,\n tag: 'tag:yaml.org,2002:omap',\n resolve(seq, onError) {\n const pairs = resolvePairs(seq, onError);\n const seenKeys = [];\n for (const { key } of pairs.items) {\n if (isScalar(key)) {\n if (seenKeys.includes(key.value)) {\n onError(`Ordered maps must not include duplicate keys: ${key.value}`);\n }\n else {\n seenKeys.push(key.value);\n }\n }\n }\n return Object.assign(new YAMLOMap(), pairs);\n },\n createNode: (schema, iterable, ctx) => YAMLOMap.from(schema, iterable, ctx)\n};\n\nexport { YAMLOMap, omap };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nfunction boolStringify({ value, source }, ctx) {\n const boolObj = value ? trueTag : falseTag;\n if (source && boolObj.test.test(source))\n return source;\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n}\nconst trueTag = {\n identify: value => value === true,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n resolve: () => new Scalar(true),\n stringify: boolStringify\n};\nconst falseTag = {\n identify: value => value === false,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,\n resolve: () => new Scalar(false),\n stringify: boolStringify\n};\n\nexport { falseTag, trueTag };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: (str) => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:[0-9][0-9_]*)?(?:\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n resolve: (str) => parseFloat(str.replace(/_/g, '')),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:[0-9][0-9_]*)?\\.[0-9_]*$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str.replace(/_/g, '')));\n const dot = str.indexOf('.');\n if (dot !== -1) {\n const f = str.substring(dot + 1).replace(/_/g, '');\n if (f[f.length - 1] === '0')\n node.minFractionDigits = f.length;\n }\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nfunction intResolve(str, offset, radix, { intAsBigInt }) {\n const sign = str[0];\n if (sign === '-' || sign === '+')\n offset += 1;\n str = str.substring(offset).replace(/_/g, '');\n if (intAsBigInt) {\n switch (radix) {\n case 2:\n str = `0b${str}`;\n break;\n case 8:\n str = `0o${str}`;\n break;\n case 16:\n str = `0x${str}`;\n break;\n }\n const n = BigInt(str);\n return sign === '-' ? BigInt(-1) * n : n;\n }\n const n = parseInt(str, radix);\n return sign === '-' ? -1 * n : n;\n}\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value)) {\n const str = value.toString(radix);\n return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n }\n return stringifyNumber(node);\n}\nconst intBin = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'BIN',\n test: /^[-+]?0b[0-1_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 2, opt),\n stringify: node => intStringify(node, 2, '0b')\n};\nconst intOct = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^[-+]?0[0-7_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 1, 8, opt),\n stringify: node => intStringify(node, 8, '0')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9][0-9_]*$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^[-+]?0x[0-9a-fA-F_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intBin, intHex, intOct };\n","import { isMap, isPair, isScalar } from '../../nodes/identity.js';\nimport { Pair, createPair } from '../../nodes/Pair.js';\nimport { YAMLMap, findPair } from '../../nodes/YAMLMap.js';\n\nclass YAMLSet extends YAMLMap {\n constructor(schema) {\n super(schema);\n this.tag = YAMLSet.tag;\n }\n add(key) {\n let pair;\n if (isPair(key))\n pair = key;\n else if (key &&\n typeof key === 'object' &&\n 'key' in key &&\n 'value' in key &&\n key.value === null)\n pair = new Pair(key.key, null);\n else\n pair = new Pair(key, null);\n const prev = findPair(this.items, pair.key);\n if (!prev)\n this.items.push(pair);\n }\n /**\n * If `keepPair` is `true`, returns the Pair matching `key`.\n * Otherwise, returns the value of that Pair's key.\n */\n get(key, keepPair) {\n const pair = findPair(this.items, key);\n return !keepPair && isPair(pair)\n ? isScalar(pair.key)\n ? pair.key.value\n : pair.key\n : pair;\n }\n set(key, value) {\n if (typeof value !== 'boolean')\n throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);\n const prev = findPair(this.items, key);\n if (prev && !value) {\n this.items.splice(this.items.indexOf(prev), 1);\n }\n else if (!prev && value) {\n this.items.push(new Pair(key));\n }\n }\n toJSON(_, ctx) {\n return super.toJSON(_, ctx, Set);\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n if (this.hasAllNullValues(true))\n return super.toString(Object.assign({}, ctx, { allNullValues: true }), onComment, onChompKeep);\n else\n throw new Error('Set items must all have null values');\n }\n static from(schema, iterable, ctx) {\n const { replacer } = ctx;\n const set = new this(schema);\n if (iterable && Symbol.iterator in Object(iterable))\n for (let value of iterable) {\n if (typeof replacer === 'function')\n value = replacer.call(iterable, value, value);\n set.items.push(createPair(value, null, ctx));\n }\n return set;\n }\n}\nYAMLSet.tag = 'tag:yaml.org,2002:set';\nconst set = {\n collection: 'map',\n identify: value => value instanceof Set,\n nodeClass: YAMLSet,\n default: false,\n tag: 'tag:yaml.org,2002:set',\n createNode: (schema, iterable, ctx) => YAMLSet.from(schema, iterable, ctx),\n resolve(map, onError) {\n if (isMap(map)) {\n if (map.hasAllNullValues(true))\n return Object.assign(new YAMLSet(), map);\n else\n onError('Set items must all have null values');\n }\n else\n onError('Expected a mapping for this tag');\n return map;\n }\n};\n\nexport { YAMLSet, set };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\n/** Internal types handle bigint as number, because TS can't figure it out. */\nfunction parseSexagesimal(str, asBigInt) {\n const sign = str[0];\n const parts = sign === '-' || sign === '+' ? str.substring(1) : str;\n const num = (n) => asBigInt ? BigInt(n) : Number(n);\n const res = parts\n .replace(/_/g, '')\n .split(':')\n .reduce((res, p) => res * num(60) + num(p), num(0));\n return (sign === '-' ? num(-1) * res : res);\n}\n/**\n * hhhh:mm:ss.sss\n *\n * Internal types handle bigint as number, because TS can't figure it out.\n */\nfunction stringifySexagesimal(node) {\n let { value } = node;\n let num = (n) => n;\n if (typeof value === 'bigint')\n num = n => BigInt(n);\n else if (isNaN(value) || !isFinite(value))\n return stringifyNumber(node);\n let sign = '';\n if (value < 0) {\n sign = '-';\n value *= num(-1);\n }\n const _60 = num(60);\n const parts = [value % _60]; // seconds, including ms\n if (value < 60) {\n parts.unshift(0); // at least one : is required\n }\n else {\n value = (value - parts[0]) / _60;\n parts.unshift(value % _60); // minutes\n if (value >= 60) {\n value = (value - parts[0]) / _60;\n parts.unshift(value); // hours\n }\n }\n return (sign +\n parts\n .map(n => String(n).padStart(2, '0'))\n .join(':')\n .replace(/000000\\d*$/, '') // % 60 may introduce error\n );\n}\nconst intTime = {\n identify: value => typeof value === 'bigint' || Number.isInteger(value),\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,\n resolve: (str, _onError, { intAsBigInt }) => parseSexagesimal(str, intAsBigInt),\n stringify: stringifySexagesimal\n};\nconst floatTime = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*$/,\n resolve: str => parseSexagesimal(str, false),\n stringify: stringifySexagesimal\n};\nconst timestamp = {\n identify: value => value instanceof Date,\n default: true,\n tag: 'tag:yaml.org,2002:timestamp',\n // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n // may be omitted altogether, resulting in a date format. In such a case, the time part is\n // assumed to be 00:00:00Z (start of day, UTC).\n test: RegExp('^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n '(?:' + // time is optional\n '(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n ')?$'),\n resolve(str) {\n const match = str.match(timestamp.test);\n if (!match)\n throw new Error('!!timestamp expects a date, starting with yyyy-mm-dd');\n const [, year, month, day, hour, minute, second] = match.map(Number);\n const millisec = match[7] ? Number((match[7] + '00').substr(1, 3)) : 0;\n let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec);\n const tz = match[8];\n if (tz && tz !== 'Z') {\n let d = parseSexagesimal(tz, false);\n if (Math.abs(d) < 30)\n d *= 60;\n date -= 60000 * d;\n }\n return new Date(date);\n },\n stringify: ({ value }) => value?.toISOString().replace(/(T00:00:00)?\\.000Z$/, '') ?? ''\n};\n\nexport { floatTime, intTime, timestamp };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { binary } from './binary.js';\nimport { trueTag, falseTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intBin, intOct, int, intHex } from './int.js';\nimport { merge } from './merge.js';\nimport { omap } from './omap.js';\nimport { pairs } from './pairs.js';\nimport { set } from './set.js';\nimport { intTime, floatTime, timestamp } from './timestamp.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n trueTag,\n falseTag,\n intBin,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float,\n binary,\n merge,\n omap,\n pairs,\n set,\n intTime,\n floatTime,\n timestamp\n];\n\nexport { schema };\n","import { map } from './common/map.js';\nimport { nullTag } from './common/null.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { boolTag } from './core/bool.js';\nimport { floatNaN, floatExp, float } from './core/float.js';\nimport { intOct, intHex, int } from './core/int.js';\nimport { schema } from './core/schema.js';\nimport { schema as schema$1 } from './json/schema.js';\nimport { binary } from './yaml-1.1/binary.js';\nimport { merge } from './yaml-1.1/merge.js';\nimport { omap } from './yaml-1.1/omap.js';\nimport { pairs } from './yaml-1.1/pairs.js';\nimport { schema as schema$2 } from './yaml-1.1/schema.js';\nimport { set } from './yaml-1.1/set.js';\nimport { timestamp, intTime, floatTime } from './yaml-1.1/timestamp.js';\n\nconst schemas = new Map([\n ['core', schema],\n ['failsafe', [map, seq, string]],\n ['json', schema$1],\n ['yaml11', schema$2],\n ['yaml-1.1', schema$2]\n]);\nconst tagsByName = {\n binary,\n bool: boolTag,\n float,\n floatExp,\n floatNaN,\n floatTime,\n int,\n intHex,\n intOct,\n intTime,\n map,\n merge,\n null: nullTag,\n omap,\n pairs,\n seq,\n set,\n timestamp\n};\nconst coreKnownTags = {\n 'tag:yaml.org,2002:binary': binary,\n 'tag:yaml.org,2002:merge': merge,\n 'tag:yaml.org,2002:omap': omap,\n 'tag:yaml.org,2002:pairs': pairs,\n 'tag:yaml.org,2002:set': set,\n 'tag:yaml.org,2002:timestamp': timestamp\n};\nfunction getTags(customTags, schemaName, addMergeTag) {\n const schemaTags = schemas.get(schemaName);\n if (schemaTags && !customTags) {\n return addMergeTag && !schemaTags.includes(merge)\n ? schemaTags.concat(merge)\n : schemaTags.slice();\n }\n let tags = schemaTags;\n if (!tags) {\n if (Array.isArray(customTags))\n tags = [];\n else {\n const keys = Array.from(schemas.keys())\n .filter(key => key !== 'yaml11')\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown schema \"${schemaName}\"; use one of ${keys} or define customTags array`);\n }\n }\n if (Array.isArray(customTags)) {\n for (const tag of customTags)\n tags = tags.concat(tag);\n }\n else if (typeof customTags === 'function') {\n tags = customTags(tags.slice());\n }\n if (addMergeTag)\n tags = tags.concat(merge);\n return tags.reduce((tags, tag) => {\n const tagObj = typeof tag === 'string' ? tagsByName[tag] : tag;\n if (!tagObj) {\n const tagName = JSON.stringify(tag);\n const keys = Object.keys(tagsByName)\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown custom tag ${tagName}; use one of ${keys}`);\n }\n if (!tags.includes(tagObj))\n tags.push(tagObj);\n return tags;\n }, []);\n}\n\nexport { coreKnownTags, getTags };\n","import { MAP, SCALAR, SEQ } from '../nodes/identity.js';\nimport { map } from './common/map.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { getTags, coreKnownTags } from './tags.js';\n\nconst sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\nclass Schema {\n constructor({ compat, customTags, merge, resolveKnownTags, schema, sortMapEntries, toStringDefaults }) {\n this.compat = Array.isArray(compat)\n ? getTags(compat, 'compat')\n : compat\n ? getTags(null, compat)\n : null;\n this.name = (typeof schema === 'string' && schema) || 'core';\n this.knownTags = resolveKnownTags ? coreKnownTags : {};\n this.tags = getTags(customTags, this.name, merge);\n this.toStringOptions = toStringDefaults ?? null;\n Object.defineProperty(this, MAP, { value: map });\n Object.defineProperty(this, SCALAR, { value: string });\n Object.defineProperty(this, SEQ, { value: seq });\n // Used by createMap()\n this.sortMapEntries =\n typeof sortMapEntries === 'function'\n ? sortMapEntries\n : sortMapEntries === true\n ? sortMapEntriesByKey\n : null;\n }\n clone() {\n const copy = Object.create(Schema.prototype, Object.getOwnPropertyDescriptors(this));\n copy.tags = this.tags.slice();\n return copy;\n }\n}\n\nexport { Schema };\n","import { isNode } from '../nodes/identity.js';\nimport { createStringifyContext, stringify } from './stringify.js';\nimport { indentComment, lineComment } from './stringifyComment.js';\n\nfunction stringifyDocument(doc, options) {\n const lines = [];\n let hasDirectives = options.directives === true;\n if (options.directives !== false && doc.directives) {\n const dir = doc.directives.toString(doc);\n if (dir) {\n lines.push(dir);\n hasDirectives = true;\n }\n else if (doc.directives.docStart)\n hasDirectives = true;\n }\n if (hasDirectives)\n lines.push('---');\n const ctx = createStringifyContext(doc, options);\n const { commentString } = ctx.options;\n if (doc.commentBefore) {\n if (lines.length !== 1)\n lines.unshift('');\n const cs = commentString(doc.commentBefore);\n lines.unshift(indentComment(cs, ''));\n }\n let chompKeep = false;\n let contentComment = null;\n if (doc.contents) {\n if (isNode(doc.contents)) {\n if (doc.contents.spaceBefore && hasDirectives)\n lines.push('');\n if (doc.contents.commentBefore) {\n const cs = commentString(doc.contents.commentBefore);\n lines.push(indentComment(cs, ''));\n }\n // top-level block scalars need to be indented if followed by a comment\n ctx.forceBlockIndent = !!doc.comment;\n contentComment = doc.contents.comment;\n }\n const onChompKeep = contentComment ? undefined : () => (chompKeep = true);\n let body = stringify(doc.contents, ctx, () => (contentComment = null), onChompKeep);\n if (contentComment)\n body += lineComment(body, '', commentString(contentComment));\n if ((body[0] === '|' || body[0] === '>') &&\n lines[lines.length - 1] === '---') {\n // Top-level block scalars with a preceding doc marker ought to use the\n // same line for their header.\n lines[lines.length - 1] = `--- ${body}`;\n }\n else\n lines.push(body);\n }\n else {\n lines.push(stringify(doc.contents, ctx));\n }\n if (doc.directives?.docEnd) {\n if (doc.comment) {\n const cs = commentString(doc.comment);\n if (cs.includes('\\n')) {\n lines.push('...');\n lines.push(indentComment(cs, ''));\n }\n else {\n lines.push(`... ${cs}`);\n }\n }\n else {\n lines.push('...');\n }\n }\n else {\n let dc = doc.comment;\n if (dc && chompKeep)\n dc = dc.replace(/^\\n+/, '');\n if (dc) {\n if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '')\n lines.push('');\n lines.push(indentComment(commentString(dc), ''));\n }\n }\n return lines.join('\\n') + '\\n';\n}\n\nexport { stringifyDocument };\n","import { Alias } from '../nodes/Alias.js';\nimport { isEmptyPath, collectionFromPath } from '../nodes/Collection.js';\nimport { NODE_TYPE, DOC, isNode, isCollection, isScalar } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { toJS } from '../nodes/toJS.js';\nimport { Schema } from '../schema/Schema.js';\nimport { stringifyDocument } from '../stringify/stringifyDocument.js';\nimport { anchorNames, findNewAnchor, createNodeAnchors } from './anchors.js';\nimport { applyReviver } from './applyReviver.js';\nimport { createNode } from './createNode.js';\nimport { Directives } from './directives.js';\n\nclass Document {\n constructor(value, replacer, options) {\n /** A comment before this Document */\n this.commentBefore = null;\n /** A comment immediately after this Document */\n this.comment = null;\n /** Errors encountered during parsing. */\n this.errors = [];\n /** Warnings encountered during parsing. */\n this.warnings = [];\n Object.defineProperty(this, NODE_TYPE, { value: DOC });\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const opt = Object.assign({\n intAsBigInt: false,\n keepSourceTokens: false,\n logLevel: 'warn',\n prettyErrors: true,\n strict: true,\n stringKeys: false,\n uniqueKeys: true,\n version: '1.2'\n }, options);\n this.options = opt;\n let { version } = opt;\n if (options?._directives) {\n this.directives = options._directives.atDocument();\n if (this.directives.yaml.explicit)\n version = this.directives.yaml.version;\n }\n else\n this.directives = new Directives({ version });\n this.setSchema(version, options);\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents =\n value === undefined ? null : this.createNode(value, _replacer, options);\n }\n /**\n * Create a deep copy of this Document and its contents.\n *\n * Custom Node values that inherit from `Object` still refer to their original instances.\n */\n clone() {\n const copy = Object.create(Document.prototype, {\n [NODE_TYPE]: { value: DOC }\n });\n copy.commentBefore = this.commentBefore;\n copy.comment = this.comment;\n copy.errors = this.errors.slice();\n copy.warnings = this.warnings.slice();\n copy.options = Object.assign({}, this.options);\n if (this.directives)\n copy.directives = this.directives.clone();\n copy.schema = this.schema.clone();\n // @ts-expect-error We can't really know that this matches Contents.\n copy.contents = isNode(this.contents)\n ? this.contents.clone(copy.schema)\n : this.contents;\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** Adds a value to the document. */\n add(value) {\n if (assertCollection(this.contents))\n this.contents.add(value);\n }\n /** Adds a value to the document. */\n addIn(path, value) {\n if (assertCollection(this.contents))\n this.contents.addIn(path, value);\n }\n /**\n * Create a new `Alias` node, ensuring that the target `node` has the required anchor.\n *\n * If `node` already has an anchor, `name` is ignored.\n * Otherwise, the `node.anchor` value will be set to `name`,\n * or if an anchor with that name is already present in the document,\n * `name` will be used as a prefix for a new unique anchor.\n * If `name` is undefined, the generated anchor will use 'a' as a prefix.\n */\n createAlias(node, name) {\n if (!node.anchor) {\n const prev = anchorNames(this);\n node.anchor =\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n !name || prev.has(name) ? findNewAnchor(name || 'a', prev) : name;\n }\n return new Alias(node.anchor);\n }\n createNode(value, replacer, options) {\n let _replacer = undefined;\n if (typeof replacer === 'function') {\n value = replacer.call({ '': value }, '', value);\n _replacer = replacer;\n }\n else if (Array.isArray(replacer)) {\n const keyToStr = (v) => typeof v === 'number' || v instanceof String || v instanceof Number;\n const asStr = replacer.filter(keyToStr).map(String);\n if (asStr.length > 0)\n replacer = replacer.concat(asStr);\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const { aliasDuplicateObjects, anchorPrefix, flow, keepUndefined, onTagObj, tag } = options ?? {};\n const { onAnchor, setAnchors, sourceObjects } = createNodeAnchors(this, \n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n anchorPrefix || 'a');\n const ctx = {\n aliasDuplicateObjects: aliasDuplicateObjects ?? true,\n keepUndefined: keepUndefined ?? false,\n onAnchor,\n onTagObj,\n replacer: _replacer,\n schema: this.schema,\n sourceObjects\n };\n const node = createNode(value, tag, ctx);\n if (flow && isCollection(node))\n node.flow = true;\n setAnchors();\n return node;\n }\n /**\n * Convert a key and a value into a `Pair` using the current schema,\n * recursively wrapping all values as `Scalar` or `Collection` nodes.\n */\n createPair(key, value, options = {}) {\n const k = this.createNode(key, null, options);\n const v = this.createNode(value, null, options);\n return new Pair(k, v);\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n return assertCollection(this.contents) ? this.contents.delete(key) : false;\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n if (isEmptyPath(path)) {\n if (this.contents == null)\n return false;\n // @ts-expect-error Presumed impossible if Strict extends false\n this.contents = null;\n return true;\n }\n return assertCollection(this.contents)\n ? this.contents.deleteIn(path)\n : false;\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n get(key, keepScalar) {\n return isCollection(this.contents)\n ? this.contents.get(key, keepScalar)\n : undefined;\n }\n /**\n * Returns item at `path`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n if (isEmptyPath(path))\n return !keepScalar && isScalar(this.contents)\n ? this.contents.value\n : this.contents;\n return isCollection(this.contents)\n ? this.contents.getIn(path, keepScalar)\n : undefined;\n }\n /**\n * Checks if the document includes a value with the key `key`.\n */\n has(key) {\n return isCollection(this.contents) ? this.contents.has(key) : false;\n }\n /**\n * Checks if the document includes a value at `path`.\n */\n hasIn(path) {\n if (isEmptyPath(path))\n return this.contents !== undefined;\n return isCollection(this.contents) ? this.contents.hasIn(path) : false;\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n set(key, value) {\n if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, [key], value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.set(key, value);\n }\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n if (isEmptyPath(path)) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = value;\n }\n else if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, Array.from(path), value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.setIn(path, value);\n }\n }\n /**\n * Change the YAML version and schema used by the document.\n * A `null` version disables support for directives, explicit tags, anchors, and aliases.\n * It also requires the `schema` option to be given as a `Schema` instance value.\n *\n * Overrides all previously set schema options.\n */\n setSchema(version, options = {}) {\n if (typeof version === 'number')\n version = String(version);\n let opt;\n switch (version) {\n case '1.1':\n if (this.directives)\n this.directives.yaml.version = '1.1';\n else\n this.directives = new Directives({ version: '1.1' });\n opt = { resolveKnownTags: false, schema: 'yaml-1.1' };\n break;\n case '1.2':\n case 'next':\n if (this.directives)\n this.directives.yaml.version = version;\n else\n this.directives = new Directives({ version });\n opt = { resolveKnownTags: true, schema: 'core' };\n break;\n case null:\n if (this.directives)\n delete this.directives;\n opt = null;\n break;\n default: {\n const sv = JSON.stringify(version);\n throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${sv}`);\n }\n }\n // Not using `instanceof Schema` to allow for duck typing\n if (options.schema instanceof Object)\n this.schema = options.schema;\n else if (opt)\n this.schema = new Schema(Object.assign(opt, options));\n else\n throw new Error(`With a null YAML version, the { schema: Schema } option is required`);\n }\n // json & jsonArg are only used from toJSON()\n toJS({ json, jsonArg, mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n const ctx = {\n anchors: new Map(),\n doc: this,\n keep: !json,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this.contents, jsonArg ?? '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n /**\n * A JSON representation of the document `contents`.\n *\n * @param jsonArg Used by `JSON.stringify` to indicate the array index or\n * property name.\n */\n toJSON(jsonArg, onAnchor) {\n return this.toJS({ json: true, jsonArg, mapAsMap: false, onAnchor });\n }\n /** A YAML representation of the document. */\n toString(options = {}) {\n if (this.errors.length > 0)\n throw new Error('Document with errors cannot be stringified');\n if ('indent' in options &&\n (!Number.isInteger(options.indent) || Number(options.indent) <= 0)) {\n const s = JSON.stringify(options.indent);\n throw new Error(`\"indent\" option must be a positive integer, not ${s}`);\n }\n return stringifyDocument(this, options);\n }\n}\nfunction assertCollection(contents) {\n if (isCollection(contents))\n return true;\n throw new Error('Expected a YAML collection as document contents');\n}\n\nexport { Document };\n","class YAMLError extends Error {\n constructor(name, pos, code, message) {\n super();\n this.name = name;\n this.code = code;\n this.message = message;\n this.pos = pos;\n }\n}\nclass YAMLParseError extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLParseError', pos, code, message);\n }\n}\nclass YAMLWarning extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLWarning', pos, code, message);\n }\n}\nconst prettifyError = (src, lc) => (error) => {\n if (error.pos[0] === -1)\n return;\n error.linePos = error.pos.map(pos => lc.linePos(pos));\n const { line, col } = error.linePos[0];\n error.message += ` at line ${line}, column ${col}`;\n let ci = col - 1;\n let lineStr = src\n .substring(lc.lineStarts[line - 1], lc.lineStarts[line])\n .replace(/[\\n\\r]+$/, '');\n // Trim to max 80 chars, keeping col position near the middle\n if (ci >= 60 && lineStr.length > 80) {\n const trimStart = Math.min(ci - 39, lineStr.length - 79);\n lineStr = '…' + lineStr.substring(trimStart);\n ci -= trimStart - 1;\n }\n if (lineStr.length > 80)\n lineStr = lineStr.substring(0, 79) + '…';\n // Include previous line in context if pointing at line start\n if (line > 1 && /^ *$/.test(lineStr.substring(0, ci))) {\n // Regexp won't match if start is trimmed\n let prev = src.substring(lc.lineStarts[line - 2], lc.lineStarts[line - 1]);\n if (prev.length > 80)\n prev = prev.substring(0, 79) + '…\\n';\n lineStr = prev + lineStr;\n }\n if (/[^ ]/.test(lineStr)) {\n let count = 1;\n const end = error.linePos[1];\n if (end?.line === line && end.col > col) {\n count = Math.max(1, Math.min(end.col - col, 80 - ci));\n }\n const pointer = ' '.repeat(ci) + '^'.repeat(count);\n error.message += `:\\n\\n${lineStr}\\n${pointer}\\n`;\n }\n};\n\nexport { YAMLError, YAMLParseError, YAMLWarning, prettifyError };\n","function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {\n let spaceBefore = false;\n let atNewline = startOnNewline;\n let hasSpace = startOnNewline;\n let comment = '';\n let commentSep = '';\n let hasNewline = false;\n let reqSpace = false;\n let tab = null;\n let anchor = null;\n let tag = null;\n let newlineAfterProp = null;\n let comma = null;\n let found = null;\n let start = null;\n for (const token of tokens) {\n if (reqSpace) {\n if (token.type !== 'space' &&\n token.type !== 'newline' &&\n token.type !== 'comma')\n onError(token.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n reqSpace = false;\n }\n if (tab) {\n if (atNewline && token.type !== 'comment' && token.type !== 'newline') {\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n }\n tab = null;\n }\n switch (token.type) {\n case 'space':\n // At the doc level, tabs at line start may be parsed\n // as leading white space rather than indentation.\n // In a flow collection, only the parser handles indent.\n if (!flow &&\n (indicator !== 'doc-start' || next?.type !== 'flow-collection') &&\n token.source.includes('\\t')) {\n tab = token;\n }\n hasSpace = true;\n break;\n case 'comment': {\n if (!hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = token.source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += commentSep + cb;\n commentSep = '';\n atNewline = false;\n break;\n }\n case 'newline':\n if (atNewline) {\n if (comment)\n comment += token.source;\n else if (!found || indicator !== 'seq-item-ind')\n spaceBefore = true;\n }\n else\n commentSep += token.source;\n atNewline = true;\n hasNewline = true;\n if (anchor || tag)\n newlineAfterProp = token;\n hasSpace = true;\n break;\n case 'anchor':\n if (anchor)\n onError(token, 'MULTIPLE_ANCHORS', 'A node can have at most one anchor');\n if (token.source.endsWith(':'))\n onError(token.offset + token.source.length - 1, 'BAD_ALIAS', 'Anchor ending in : is ambiguous', true);\n anchor = token;\n start ?? (start = token.offset);\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n case 'tag': {\n if (tag)\n onError(token, 'MULTIPLE_TAGS', 'A node can have at most one tag');\n tag = token;\n start ?? (start = token.offset);\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n }\n case indicator:\n // Could here handle preceding comments differently\n if (anchor || tag)\n onError(token, 'BAD_PROP_ORDER', `Anchors and tags must be after the ${token.source} indicator`);\n if (found)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.source} in ${flow ?? 'collection'}`);\n found = token;\n atNewline =\n indicator === 'seq-item-ind' || indicator === 'explicit-key-ind';\n hasSpace = false;\n break;\n case 'comma':\n if (flow) {\n if (comma)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected , in ${flow}`);\n comma = token;\n atNewline = false;\n hasSpace = false;\n break;\n }\n // else fallthrough\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.type} token`);\n atNewline = false;\n hasSpace = false;\n }\n }\n const last = tokens[tokens.length - 1];\n const end = last ? last.offset + last.source.length : offset;\n if (reqSpace &&\n next &&\n next.type !== 'space' &&\n next.type !== 'newline' &&\n next.type !== 'comma' &&\n (next.type !== 'scalar' || next.source !== '')) {\n onError(next.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n }\n if (tab &&\n ((atNewline && tab.indent <= parentIndent) ||\n next?.type === 'block-map' ||\n next?.type === 'block-seq'))\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n return {\n comma,\n found,\n spaceBefore,\n comment,\n hasNewline,\n anchor,\n tag,\n newlineAfterProp,\n end,\n start: start ?? end\n };\n}\n\nexport { resolveProps };\n","function containsNewline(key) {\n if (!key)\n return null;\n switch (key.type) {\n case 'alias':\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n if (key.source.includes('\\n'))\n return true;\n if (key.end)\n for (const st of key.end)\n if (st.type === 'newline')\n return true;\n return false;\n case 'flow-collection':\n for (const it of key.items) {\n for (const st of it.start)\n if (st.type === 'newline')\n return true;\n if (it.sep)\n for (const st of it.sep)\n if (st.type === 'newline')\n return true;\n if (containsNewline(it.key) || containsNewline(it.value))\n return true;\n }\n return false;\n default:\n return true;\n }\n}\n\nexport { containsNewline };\n","import { containsNewline } from './util-contains-newline.js';\n\nfunction flowIndentCheck(indent, fc, onError) {\n if (fc?.type === 'flow-collection') {\n const end = fc.end[0];\n if (end.indent === indent &&\n (end.source === ']' || end.source === '}') &&\n containsNewline(fc)) {\n const msg = 'Flow end indicator should be more indented than parent';\n onError(end, 'BAD_INDENT', msg, true);\n }\n }\n}\n\nexport { flowIndentCheck };\n","import { isScalar } from '../nodes/identity.js';\n\nfunction mapIncludes(ctx, items, search) {\n const { uniqueKeys } = ctx.options;\n if (uniqueKeys === false)\n return false;\n const isEqual = typeof uniqueKeys === 'function'\n ? uniqueKeys\n : (a, b) => a === b || (isScalar(a) && isScalar(b) && a.value === b.value);\n return items.some(pair => isEqual(pair.key, search));\n}\n\nexport { mapIncludes };\n","import { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst startColMsg = 'All mapping items must start at the same column';\nfunction resolveBlockMap({ composeNode, composeEmptyNode }, ctx, bm, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLMap;\n const map = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n let offset = bm.offset;\n let commentEnd = null;\n for (const collItem of bm.items) {\n const { start, key, sep, value } = collItem;\n // key properties\n const keyProps = resolveProps(start, {\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: bm.indent,\n startOnNewline: true\n });\n const implicitKey = !keyProps.found;\n if (implicitKey) {\n if (key) {\n if (key.type === 'block-seq')\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'A block sequence may not be used as an implicit map key');\n else if ('indent' in key && key.indent !== bm.indent)\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n if (!keyProps.anchor && !keyProps.tag && !sep) {\n commentEnd = keyProps.end;\n if (keyProps.comment) {\n if (map.comment)\n map.comment += '\\n' + keyProps.comment;\n else\n map.comment = keyProps.comment;\n }\n continue;\n }\n if (keyProps.newlineAfterProp || containsNewline(key)) {\n onError(key ?? start[start.length - 1], 'MULTILINE_IMPLICIT_KEY', 'Implicit keys need to be on a single line');\n }\n }\n else if (keyProps.found?.indent !== bm.indent) {\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n // key value\n ctx.atKey = true;\n const keyStart = keyProps.end;\n const keyNode = key\n ? composeNode(ctx, key, keyProps, onError)\n : composeEmptyNode(ctx, keyStart, start, null, keyProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, key, onError);\n ctx.atKey = false;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: bm.indent,\n startOnNewline: !key || key.type === 'block-scalar'\n });\n offset = valueProps.end;\n if (valueProps.found) {\n if (implicitKey) {\n if (value?.type === 'block-map' && !valueProps.hasNewline)\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'Nested mappings are not allowed in compact mappings');\n if (ctx.options.strict &&\n keyProps.start < valueProps.found.offset - 1024)\n onError(keyNode.range, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit block mapping key');\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : composeEmptyNode(ctx, offset, sep, null, valueProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, value, onError);\n offset = valueNode.range[2];\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n else {\n // key with no value\n if (implicitKey)\n onError(keyNode.range, 'MISSING_CHAR', 'Implicit map keys need to be followed by map values');\n if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n }\n if (commentEnd && commentEnd < offset)\n onError(commentEnd, 'IMPOSSIBLE', 'Map comment with trailing content');\n map.range = [bm.offset, offset, commentEnd ?? offset];\n return map;\n}\n\nexport { resolveBlockMap };\n","import { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveProps } from './resolve-props.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\n\nfunction resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLSeq;\n const seq = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n if (ctx.atKey)\n ctx.atKey = false;\n let offset = bs.offset;\n let commentEnd = null;\n for (const { start, value } of bs.items) {\n const props = resolveProps(start, {\n indicator: 'seq-item-ind',\n next: value,\n offset,\n onError,\n parentIndent: bs.indent,\n startOnNewline: true\n });\n if (!props.found) {\n if (props.anchor || props.tag || value) {\n if (value?.type === 'block-seq')\n onError(props.end, 'BAD_INDENT', 'All sequence items must start at the same column');\n else\n onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator');\n }\n else {\n commentEnd = props.end;\n if (props.comment)\n seq.comment = props.comment;\n continue;\n }\n }\n const node = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bs.indent, value, onError);\n offset = node.range[2];\n seq.items.push(node);\n }\n seq.range = [bs.offset, offset, commentEnd ?? offset];\n return seq;\n}\n\nexport { resolveBlockSeq };\n","function resolveEnd(end, offset, reqSpace, onError) {\n let comment = '';\n if (end) {\n let hasSpace = false;\n let sep = '';\n for (const token of end) {\n const { source, type } = token;\n switch (type) {\n case 'space':\n hasSpace = true;\n break;\n case 'comment': {\n if (reqSpace && !hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += sep + cb;\n sep = '';\n break;\n }\n case 'newline':\n if (comment)\n sep += source;\n hasSpace = true;\n break;\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${type} at node end`);\n }\n offset += source.length;\n }\n }\n return { comment, offset };\n}\n\nexport { resolveEnd };\n","import { isPair } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst blockMsg = 'Block collections are not allowed within flow collections';\nconst isBlock = (token) => token && (token.type === 'block-map' || token.type === 'block-seq');\nfunction resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onError, tag) {\n const isMap = fc.start.source === '{';\n const fcName = isMap ? 'flow map' : 'flow sequence';\n const NodeClass = (tag?.nodeClass ?? (isMap ? YAMLMap : YAMLSeq));\n const coll = new NodeClass(ctx.schema);\n coll.flow = true;\n const atRoot = ctx.atRoot;\n if (atRoot)\n ctx.atRoot = false;\n if (ctx.atKey)\n ctx.atKey = false;\n let offset = fc.offset + fc.start.source.length;\n for (let i = 0; i < fc.items.length; ++i) {\n const collItem = fc.items[i];\n const { start, key, sep, value } = collItem;\n const props = resolveProps(start, {\n flow: fcName,\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (!props.found) {\n if (!props.anchor && !props.tag && !sep && !value) {\n if (i === 0 && props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n else if (i < fc.items.length - 1)\n onError(props.start, 'UNEXPECTED_TOKEN', `Unexpected empty item in ${fcName}`);\n if (props.comment) {\n if (coll.comment)\n coll.comment += '\\n' + props.comment;\n else\n coll.comment = props.comment;\n }\n offset = props.end;\n continue;\n }\n if (!isMap && ctx.options.strict && containsNewline(key))\n onError(key, // checked by containsNewline()\n 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n }\n if (i === 0) {\n if (props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n }\n else {\n if (!props.comma)\n onError(props.start, 'MISSING_CHAR', `Missing , between ${fcName} items`);\n if (props.comment) {\n let prevItemComment = '';\n loop: for (const st of start) {\n switch (st.type) {\n case 'comma':\n case 'space':\n break;\n case 'comment':\n prevItemComment = st.source.substring(1);\n break loop;\n default:\n break loop;\n }\n }\n if (prevItemComment) {\n let prev = coll.items[coll.items.length - 1];\n if (isPair(prev))\n prev = prev.value ?? prev.key;\n if (prev.comment)\n prev.comment += '\\n' + prevItemComment;\n else\n prev.comment = prevItemComment;\n props.comment = props.comment.substring(prevItemComment.length + 1);\n }\n }\n }\n if (!isMap && !sep && !props.found) {\n // item is a value in a seq\n // → key & sep are empty, start does not include ? or :\n const valueNode = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, sep, null, props, onError);\n coll.items.push(valueNode);\n offset = valueNode.range[2];\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else {\n // item is a key+value pair\n // key value\n ctx.atKey = true;\n const keyStart = props.end;\n const keyNode = key\n ? composeNode(ctx, key, props, onError)\n : composeEmptyNode(ctx, keyStart, start, null, props, onError);\n if (isBlock(key))\n onError(keyNode.range, 'BLOCK_IN_FLOW', blockMsg);\n ctx.atKey = false;\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n flow: fcName,\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (valueProps.found) {\n if (!isMap && !props.found && ctx.options.strict) {\n if (sep)\n for (const st of sep) {\n if (st === valueProps.found)\n break;\n if (st.type === 'newline') {\n onError(st, 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n break;\n }\n }\n if (props.start < valueProps.found.offset - 1024)\n onError(valueProps.found, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit flow sequence key');\n }\n }\n else if (value) {\n if ('source' in value && value.source?.[0] === ':')\n onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`);\n else\n onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`);\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : valueProps.found\n ? composeEmptyNode(ctx, valueProps.end, sep, null, valueProps, onError)\n : null;\n if (valueNode) {\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n if (isMap) {\n const map = coll;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n map.items.push(pair);\n }\n else {\n const map = new YAMLMap(ctx.schema);\n map.flow = true;\n map.items.push(pair);\n const endRange = (valueNode ?? keyNode).range;\n map.range = [keyNode.range[0], endRange[1], endRange[2]];\n coll.items.push(map);\n }\n offset = valueNode ? valueNode.range[2] : valueProps.end;\n }\n }\n const expectedEnd = isMap ? '}' : ']';\n const [ce, ...ee] = fc.end;\n let cePos = offset;\n if (ce?.source === expectedEnd)\n cePos = ce.offset + ce.source.length;\n else {\n const name = fcName[0].toUpperCase() + fcName.substring(1);\n const msg = atRoot\n ? `${name} must end with a ${expectedEnd}`\n : `${name} in block collection must be sufficiently indented and end with a ${expectedEnd}`;\n onError(offset, atRoot ? 'MISSING_CHAR' : 'BAD_INDENT', msg);\n if (ce && ce.source.length !== 1)\n ee.unshift(ce);\n }\n if (ee.length > 0) {\n const end = resolveEnd(ee, cePos, ctx.options.strict, onError);\n if (end.comment) {\n if (coll.comment)\n coll.comment += '\\n' + end.comment;\n else\n coll.comment = end.comment;\n }\n coll.range = [fc.offset, cePos, end.offset];\n }\n else {\n coll.range = [fc.offset, cePos, cePos];\n }\n return coll;\n}\n\nexport { resolveFlowCollection };\n","import { isNode } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveBlockMap } from './resolve-block-map.js';\nimport { resolveBlockSeq } from './resolve-block-seq.js';\nimport { resolveFlowCollection } from './resolve-flow-collection.js';\n\nfunction resolveCollection(CN, ctx, token, onError, tagName, tag) {\n const coll = token.type === 'block-map'\n ? resolveBlockMap(CN, ctx, token, onError, tag)\n : token.type === 'block-seq'\n ? resolveBlockSeq(CN, ctx, token, onError, tag)\n : resolveFlowCollection(CN, ctx, token, onError, tag);\n const Coll = coll.constructor;\n // If we got a tagName matching the class, or the tag name is '!',\n // then use the tagName from the node class used to create it.\n if (tagName === '!' || tagName === Coll.tagName) {\n coll.tag = Coll.tagName;\n return coll;\n }\n if (tagName)\n coll.tag = tagName;\n return coll;\n}\nfunction composeCollection(CN, ctx, token, props, onError) {\n const tagToken = props.tag;\n const tagName = !tagToken\n ? null\n : ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg));\n if (token.type === 'block-seq') {\n const { anchor, newlineAfterProp: nl } = props;\n const lastProp = anchor && tagToken\n ? anchor.offset > tagToken.offset\n ? anchor\n : tagToken\n : (anchor ?? tagToken);\n if (lastProp && (!nl || nl.offset < lastProp.offset)) {\n const message = 'Missing newline after block sequence props';\n onError(lastProp, 'MISSING_CHAR', message);\n }\n }\n const expType = token.type === 'block-map'\n ? 'map'\n : token.type === 'block-seq'\n ? 'seq'\n : token.start.source === '{'\n ? 'map'\n : 'seq';\n // shortcut: check if it's a generic YAMLMap or YAMLSeq\n // before jumping into the custom tag logic.\n if (!tagToken ||\n !tagName ||\n tagName === '!' ||\n (tagName === YAMLMap.tagName && expType === 'map') ||\n (tagName === YAMLSeq.tagName && expType === 'seq')) {\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n let tag = ctx.schema.tags.find(t => t.tag === tagName && t.collection === expType);\n if (!tag) {\n const kt = ctx.schema.knownTags[tagName];\n if (kt?.collection === expType) {\n ctx.schema.tags.push(Object.assign({}, kt, { default: false }));\n tag = kt;\n }\n else {\n if (kt) {\n onError(tagToken, 'BAD_COLLECTION_TYPE', `${kt.tag} used for ${expType} collection, but expects ${kt.collection ?? 'scalar'}`, true);\n }\n else {\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, true);\n }\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n }\n const coll = resolveCollection(CN, ctx, token, onError, tagName, tag);\n const res = tag.resolve?.(coll, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg), ctx.options) ?? coll;\n const node = isNode(res)\n ? res\n : new Scalar(res);\n node.range = coll.range;\n node.tag = tagName;\n if (tag?.format)\n node.format = tag.format;\n return node;\n}\n\nexport { composeCollection };\n","import { Scalar } from '../nodes/Scalar.js';\n\nfunction resolveBlockScalar(ctx, scalar, onError) {\n const start = scalar.offset;\n const header = parseBlockScalarHeader(scalar, ctx.options.strict, onError);\n if (!header)\n return { value: '', type: null, comment: '', range: [start, start, start] };\n const type = header.mode === '>' ? Scalar.BLOCK_FOLDED : Scalar.BLOCK_LITERAL;\n const lines = scalar.source ? splitLines(scalar.source) : [];\n // determine the end of content & start of chomping\n let chompStart = lines.length;\n for (let i = lines.length - 1; i >= 0; --i) {\n const content = lines[i][1];\n if (content === '' || content === '\\r')\n chompStart = i;\n else\n break;\n }\n // shortcut for empty contents\n if (chompStart === 0) {\n const value = header.chomp === '+' && lines.length > 0\n ? '\\n'.repeat(Math.max(1, lines.length - 1))\n : '';\n let end = start + header.length;\n if (scalar.source)\n end += scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n }\n // find the indentation level to trim from start\n let trimIndent = scalar.indent + header.indent;\n let offset = scalar.offset + header.length;\n let contentStart = 0;\n for (let i = 0; i < chompStart; ++i) {\n const [indent, content] = lines[i];\n if (content === '' || content === '\\r') {\n if (header.indent === 0 && indent.length > trimIndent)\n trimIndent = indent.length;\n }\n else {\n if (indent.length < trimIndent) {\n const message = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n onError(offset + indent.length, 'MISSING_CHAR', message);\n }\n if (header.indent === 0)\n trimIndent = indent.length;\n contentStart = i;\n if (trimIndent === 0 && !ctx.atRoot) {\n const message = 'Block scalar values in collections must be indented';\n onError(offset, 'BAD_INDENT', message);\n }\n break;\n }\n offset += indent.length + content.length + 1;\n }\n // include trailing more-indented empty lines in content\n for (let i = lines.length - 1; i >= chompStart; --i) {\n if (lines[i][0].length > trimIndent)\n chompStart = i + 1;\n }\n let value = '';\n let sep = '';\n let prevMoreIndented = false;\n // leading whitespace is kept intact\n for (let i = 0; i < contentStart; ++i)\n value += lines[i][0].slice(trimIndent) + '\\n';\n for (let i = contentStart; i < chompStart; ++i) {\n let [indent, content] = lines[i];\n offset += indent.length + content.length + 1;\n const crlf = content[content.length - 1] === '\\r';\n if (crlf)\n content = content.slice(0, -1);\n /* istanbul ignore if already caught in lexer */\n if (content && indent.length < trimIndent) {\n const src = header.indent\n ? 'explicit indentation indicator'\n : 'first line';\n const message = `Block scalar lines must not be less indented than their ${src}`;\n onError(offset - content.length - (crlf ? 2 : 1), 'BAD_INDENT', message);\n indent = '';\n }\n if (type === Scalar.BLOCK_LITERAL) {\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n }\n else if (indent.length > trimIndent || content[0] === '\\t') {\n // more-indented content within a folded block\n if (sep === ' ')\n sep = '\\n';\n else if (!prevMoreIndented && sep === '\\n')\n sep = '\\n\\n';\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n prevMoreIndented = true;\n }\n else if (content === '') {\n // empty line\n if (sep === '\\n')\n value += '\\n';\n else\n sep = '\\n';\n }\n else {\n value += sep + content;\n sep = ' ';\n prevMoreIndented = false;\n }\n }\n switch (header.chomp) {\n case '-':\n break;\n case '+':\n for (let i = chompStart; i < lines.length; ++i)\n value += '\\n' + lines[i][0].slice(trimIndent);\n if (value[value.length - 1] !== '\\n')\n value += '\\n';\n break;\n default:\n value += '\\n';\n }\n const end = start + header.length + scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n}\nfunction parseBlockScalarHeader({ offset, props }, strict, onError) {\n /* istanbul ignore if should not happen */\n if (props[0].type !== 'block-scalar-header') {\n onError(props[0], 'IMPOSSIBLE', 'Block scalar header not found');\n return null;\n }\n const { source } = props[0];\n const mode = source[0];\n let indent = 0;\n let chomp = '';\n let error = -1;\n for (let i = 1; i < source.length; ++i) {\n const ch = source[i];\n if (!chomp && (ch === '-' || ch === '+'))\n chomp = ch;\n else {\n const n = Number(ch);\n if (!indent && n)\n indent = n;\n else if (error === -1)\n error = offset + i;\n }\n }\n if (error !== -1)\n onError(error, 'UNEXPECTED_TOKEN', `Block scalar header includes extra characters: ${source}`);\n let hasSpace = false;\n let comment = '';\n let length = source.length;\n for (let i = 1; i < props.length; ++i) {\n const token = props[i];\n switch (token.type) {\n case 'space':\n hasSpace = true;\n // fallthrough\n case 'newline':\n length += token.source.length;\n break;\n case 'comment':\n if (strict && !hasSpace) {\n const message = 'Comments must be separated from other tokens by white space characters';\n onError(token, 'MISSING_CHAR', message);\n }\n length += token.source.length;\n comment = token.source.substring(1);\n break;\n case 'error':\n onError(token, 'UNEXPECTED_TOKEN', token.message);\n length += token.source.length;\n break;\n /* istanbul ignore next should not happen */\n default: {\n const message = `Unexpected token in block scalar header: ${token.type}`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n const ts = token.source;\n if (ts && typeof ts === 'string')\n length += ts.length;\n }\n }\n }\n return { mode, indent, chomp, comment, length };\n}\n/** @returns Array of lines split up as `[indent, content]` */\nfunction splitLines(source) {\n const split = source.split(/\\n( *)/);\n const first = split[0];\n const m = first.match(/^( *)/);\n const line0 = m?.[1]\n ? [m[1], first.slice(m[1].length)]\n : ['', first];\n const lines = [line0];\n for (let i = 1; i < split.length; i += 2)\n lines.push([split[i], split[i + 1]]);\n return lines;\n}\n\nexport { resolveBlockScalar };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction resolveFlowScalar(scalar, strict, onError) {\n const { offset, type, source, end } = scalar;\n let _type;\n let value;\n const _onError = (rel, code, msg) => onError(offset + rel, code, msg);\n switch (type) {\n case 'scalar':\n _type = Scalar.PLAIN;\n value = plainValue(source, _onError);\n break;\n case 'single-quoted-scalar':\n _type = Scalar.QUOTE_SINGLE;\n value = singleQuotedValue(source, _onError);\n break;\n case 'double-quoted-scalar':\n _type = Scalar.QUOTE_DOUBLE;\n value = doubleQuotedValue(source, _onError);\n break;\n /* istanbul ignore next should not happen */\n default:\n onError(scalar, 'UNEXPECTED_TOKEN', `Expected a flow scalar value, but found: ${type}`);\n return {\n value: '',\n type: null,\n comment: '',\n range: [offset, offset + source.length, offset + source.length]\n };\n }\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, strict, onError);\n return {\n value,\n type: _type,\n comment: re.comment,\n range: [offset, valueEnd, re.offset]\n };\n}\nfunction plainValue(source, onError) {\n let badChar = '';\n switch (source[0]) {\n /* istanbul ignore next should not happen */\n case '\\t':\n badChar = 'a tab character';\n break;\n case ',':\n badChar = 'flow indicator character ,';\n break;\n case '%':\n badChar = 'directive indicator character %';\n break;\n case '|':\n case '>': {\n badChar = `block scalar indicator ${source[0]}`;\n break;\n }\n case '@':\n case '`': {\n badChar = `reserved character ${source[0]}`;\n break;\n }\n }\n if (badChar)\n onError(0, 'BAD_SCALAR_START', `Plain value cannot start with ${badChar}`);\n return foldLines(source);\n}\nfunction singleQuotedValue(source, onError) {\n if (source[source.length - 1] !== \"'\" || source.length === 1)\n onError(source.length, 'MISSING_CHAR', \"Missing closing 'quote\");\n return foldLines(source.slice(1, -1)).replace(/''/g, \"'\");\n}\nfunction foldLines(source) {\n /**\n * The negative lookbehind here and in the `re` RegExp is to\n * prevent causing a polynomial search time in certain cases.\n *\n * The try-catch is for Safari, which doesn't support this yet:\n * https://caniuse.com/js-regexp-lookbehind\n */\n let first, line;\n try {\n first = new RegExp('(.*?)(?<![ \\t])[ \\t]*\\r?\\n', 'sy');\n line = new RegExp('[ \\t]*(.*?)(?:(?<![ \\t])[ \\t]*)?\\r?\\n', 'sy');\n }\n catch {\n first = /(.*?)[ \\t]*\\r?\\n/sy;\n line = /[ \\t]*(.*?)[ \\t]*\\r?\\n/sy;\n }\n let match = first.exec(source);\n if (!match)\n return source;\n let res = match[1];\n let sep = ' ';\n let pos = first.lastIndex;\n line.lastIndex = pos;\n while ((match = line.exec(source))) {\n if (match[1] === '') {\n if (sep === '\\n')\n res += sep;\n else\n sep = '\\n';\n }\n else {\n res += sep + match[1];\n sep = ' ';\n }\n pos = line.lastIndex;\n }\n const last = /[ \\t]*(.*)/sy;\n last.lastIndex = pos;\n match = last.exec(source);\n return res + sep + (match?.[1] ?? '');\n}\nfunction doubleQuotedValue(source, onError) {\n let res = '';\n for (let i = 1; i < source.length - 1; ++i) {\n const ch = source[i];\n if (ch === '\\r' && source[i + 1] === '\\n')\n continue;\n if (ch === '\\n') {\n const { fold, offset } = foldNewline(source, i);\n res += fold;\n i = offset;\n }\n else if (ch === '\\\\') {\n let next = source[++i];\n const cc = escapeCodes[next];\n if (cc)\n res += cc;\n else if (next === '\\n') {\n // skip escaped newlines, but still trim the following line\n next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === '\\r' && source[i + 1] === '\\n') {\n // skip escaped CRLF newlines, but still trim the following line\n next = source[++i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === 'x' || next === 'u' || next === 'U') {\n const length = next === 'x' ? 2 : next === 'u' ? 4 : 8;\n res += parseCharCode(source, i + 1, length, onError);\n i += length;\n }\n else {\n const raw = source.substr(i - 1, 2);\n onError(i - 1, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n res += raw;\n }\n }\n else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n const wsStart = i;\n let next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n if (next !== '\\n' && !(next === '\\r' && source[i + 2] === '\\n'))\n res += i > wsStart ? source.slice(wsStart, i + 1) : ch;\n }\n else {\n res += ch;\n }\n }\n if (source[source.length - 1] !== '\"' || source.length === 1)\n onError(source.length, 'MISSING_CHAR', 'Missing closing \"quote');\n return res;\n}\n/**\n * Fold a single newline into a space, multiple newlines to N - 1 newlines.\n * Presumes `source[offset] === '\\n'`\n */\nfunction foldNewline(source, offset) {\n let fold = '';\n let ch = source[offset + 1];\n while (ch === ' ' || ch === '\\t' || ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && source[offset + 2] !== '\\n')\n break;\n if (ch === '\\n')\n fold += '\\n';\n offset += 1;\n ch = source[offset + 1];\n }\n if (!fold)\n fold = ' ';\n return { fold, offset };\n}\nconst escapeCodes = {\n '0': '\\0', // null character\n a: '\\x07', // bell character\n b: '\\b', // backspace\n e: '\\x1b', // escape character\n f: '\\f', // form feed\n n: '\\n', // line feed\n r: '\\r', // carriage return\n t: '\\t', // horizontal tab\n v: '\\v', // vertical tab\n N: '\\u0085', // Unicode next line\n _: '\\u00a0', // Unicode non-breaking space\n L: '\\u2028', // Unicode line separator\n P: '\\u2029', // Unicode paragraph separator\n ' ': ' ',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\',\n '\\t': '\\t'\n};\nfunction parseCharCode(source, offset, length, onError) {\n const cc = source.substr(offset, length);\n const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n const code = ok ? parseInt(cc, 16) : NaN;\n try {\n return String.fromCodePoint(code);\n }\n catch {\n const raw = source.substr(offset - 2, length + 2);\n onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n return raw;\n }\n}\n\nexport { resolveFlowScalar };\n","import { isScalar, SCALAR } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { resolveBlockScalar } from './resolve-block-scalar.js';\nimport { resolveFlowScalar } from './resolve-flow-scalar.js';\n\nfunction composeScalar(ctx, token, tagToken, onError) {\n const { value, type, comment, range } = token.type === 'block-scalar'\n ? resolveBlockScalar(ctx, token, onError)\n : resolveFlowScalar(token, ctx.options.strict, onError);\n const tagName = tagToken\n ? ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg))\n : null;\n let tag;\n if (ctx.options.stringKeys && ctx.atKey) {\n tag = ctx.schema[SCALAR];\n }\n else if (tagName)\n tag = findScalarTagByName(ctx.schema, value, tagName, tagToken, onError);\n else if (token.type === 'scalar')\n tag = findScalarTagByTest(ctx, value, token, onError);\n else\n tag = ctx.schema[SCALAR];\n let scalar;\n try {\n const res = tag.resolve(value, msg => onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg), ctx.options);\n scalar = isScalar(res) ? res : new Scalar(res);\n }\n catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg);\n scalar = new Scalar(value);\n }\n scalar.range = range;\n scalar.source = value;\n if (type)\n scalar.type = type;\n if (tagName)\n scalar.tag = tagName;\n if (tag.format)\n scalar.format = tag.format;\n if (comment)\n scalar.comment = comment;\n return scalar;\n}\nfunction findScalarTagByName(schema, value, tagName, tagToken, onError) {\n if (tagName === '!')\n return schema[SCALAR]; // non-specific tag\n const matchWithTest = [];\n for (const tag of schema.tags) {\n if (!tag.collection && tag.tag === tagName) {\n if (tag.default && tag.test)\n matchWithTest.push(tag);\n else\n return tag;\n }\n }\n for (const tag of matchWithTest)\n if (tag.test?.test(value))\n return tag;\n const kt = schema.knownTags[tagName];\n if (kt && !kt.collection) {\n // Ensure that the known tag is available for stringifying,\n // but does not get used by default.\n schema.tags.push(Object.assign({}, kt, { default: false, test: undefined }));\n return kt;\n }\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, tagName !== 'tag:yaml.org,2002:str');\n return schema[SCALAR];\n}\nfunction findScalarTagByTest({ atKey, directives, schema }, value, token, onError) {\n const tag = schema.tags.find(tag => (tag.default === true || (atKey && tag.default === 'key')) &&\n tag.test?.test(value)) || schema[SCALAR];\n if (schema.compat) {\n const compat = schema.compat.find(tag => tag.default && tag.test?.test(value)) ??\n schema[SCALAR];\n if (tag.tag !== compat.tag) {\n const ts = directives.tagString(tag.tag);\n const cs = directives.tagString(compat.tag);\n const msg = `Value may be parsed as either ${ts} or ${cs}`;\n onError(token, 'TAG_RESOLVE_FAILED', msg, true);\n }\n }\n return tag;\n}\n\nexport { composeScalar };\n","function emptyScalarPosition(offset, before, pos) {\n if (before) {\n pos ?? (pos = before.length);\n for (let i = pos - 1; i >= 0; --i) {\n let st = before[i];\n switch (st.type) {\n case 'space':\n case 'comment':\n case 'newline':\n offset -= st.source.length;\n continue;\n }\n // Technically, an empty scalar is immediately after the last non-empty\n // node, but it's more useful to place it after any whitespace.\n st = before[++i];\n while (st?.type === 'space') {\n offset += st.source.length;\n st = before[++i];\n }\n break;\n }\n }\n return offset;\n}\n\nexport { emptyScalarPosition };\n","import { Alias } from '../nodes/Alias.js';\nimport { isScalar } from '../nodes/identity.js';\nimport { composeCollection } from './compose-collection.js';\nimport { composeScalar } from './compose-scalar.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { emptyScalarPosition } from './util-empty-scalar-position.js';\n\nconst CN = { composeNode, composeEmptyNode };\nfunction composeNode(ctx, token, props, onError) {\n const atKey = ctx.atKey;\n const { spaceBefore, comment, anchor, tag } = props;\n let node;\n let isSrcToken = true;\n switch (token.type) {\n case 'alias':\n node = composeAlias(ctx, token, onError);\n if (anchor || tag)\n onError(token, 'ALIAS_PROPS', 'An alias node must not specify any properties');\n break;\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'block-scalar':\n node = composeScalar(ctx, token, tag, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n case 'block-map':\n case 'block-seq':\n case 'flow-collection':\n try {\n node = composeCollection(CN, ctx, token, props, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n }\n catch (error) {\n // Almost certainly here due to a stack overflow\n const message = error instanceof Error ? error.message : String(error);\n onError(token, 'RESOURCE_EXHAUSTION', message);\n }\n break;\n default: {\n const message = token.type === 'error'\n ? token.message\n : `Unsupported token (type: ${token.type})`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n isSrcToken = false;\n }\n }\n node ?? (node = composeEmptyNode(ctx, token.offset, undefined, null, props, onError));\n if (anchor && node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n if (atKey &&\n ctx.options.stringKeys &&\n (!isScalar(node) ||\n typeof node.value !== 'string' ||\n (node.tag && node.tag !== 'tag:yaml.org,2002:str'))) {\n const msg = 'With stringKeys, all keys must be strings';\n onError(tag ?? token, 'NON_STRING_KEY', msg);\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n if (token.type === 'scalar' && token.source === '')\n node.comment = comment;\n else\n node.commentBefore = comment;\n }\n // @ts-expect-error Type checking misses meaning of isSrcToken\n if (ctx.options.keepSourceTokens && isSrcToken)\n node.srcToken = token;\n return node;\n}\nfunction composeEmptyNode(ctx, offset, before, pos, { spaceBefore, comment, anchor, tag, end }, onError) {\n const token = {\n type: 'scalar',\n offset: emptyScalarPosition(offset, before, pos),\n indent: -1,\n source: ''\n };\n const node = composeScalar(ctx, token, tag, onError);\n if (anchor) {\n node.anchor = anchor.source.substring(1);\n if (node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n node.comment = comment;\n node.range[2] = end;\n }\n return node;\n}\nfunction composeAlias({ options }, { offset, source, end }, onError) {\n const alias = new Alias(source.substring(1));\n if (alias.source === '')\n onError(offset, 'BAD_ALIAS', 'Alias cannot be an empty string');\n if (alias.source.endsWith(':'))\n onError(offset + source.length - 1, 'BAD_ALIAS', 'Alias ending in : is ambiguous', true);\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, options.strict, onError);\n alias.range = [offset, valueEnd, re.offset];\n if (re.comment)\n alias.comment = re.comment;\n return alias;\n}\n\nexport { composeEmptyNode, composeNode };\n","import { Document } from '../doc/Document.js';\nimport { composeNode, composeEmptyNode } from './compose-node.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\n\nfunction composeDoc(options, directives, { offset, start, value, end }, onError) {\n const opts = Object.assign({ _directives: directives }, options);\n const doc = new Document(undefined, opts);\n const ctx = {\n atKey: false,\n atRoot: true,\n directives: doc.directives,\n options: doc.options,\n schema: doc.schema\n };\n const props = resolveProps(start, {\n indicator: 'doc-start',\n next: value ?? end?.[0],\n offset,\n onError,\n parentIndent: 0,\n startOnNewline: true\n });\n if (props.found) {\n doc.directives.docStart = true;\n if (value &&\n (value.type === 'block-map' || value.type === 'block-seq') &&\n !props.hasNewline)\n onError(props.end, 'MISSING_CHAR', 'Block collection cannot start on same line with directives-end marker');\n }\n // @ts-expect-error If Contents is set, let's trust the user\n doc.contents = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n const contentEnd = doc.contents.range[2];\n const re = resolveEnd(end, contentEnd, false, onError);\n if (re.comment)\n doc.comment = re.comment;\n doc.range = [offset, contentEnd, re.offset];\n return doc;\n}\n\nexport { composeDoc };\n","import { Directives } from '../doc/directives.js';\nimport { Document } from '../doc/Document.js';\nimport { YAMLWarning, YAMLParseError } from '../errors.js';\nimport { isCollection, isPair } from '../nodes/identity.js';\nimport { composeDoc } from './compose-doc.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction getErrorPos(src) {\n if (typeof src === 'number')\n return [src, src + 1];\n if (Array.isArray(src))\n return src.length === 2 ? src : [src[0], src[1]];\n const { offset, source } = src;\n return [offset, offset + (typeof source === 'string' ? source.length : 1)];\n}\nfunction parsePrelude(prelude) {\n let comment = '';\n let atComment = false;\n let afterEmptyLine = false;\n for (let i = 0; i < prelude.length; ++i) {\n const source = prelude[i];\n switch (source[0]) {\n case '#':\n comment +=\n (comment === '' ? '' : afterEmptyLine ? '\\n\\n' : '\\n') +\n (source.substring(1) || ' ');\n atComment = true;\n afterEmptyLine = false;\n break;\n case '%':\n if (prelude[i + 1]?.[0] !== '#')\n i += 1;\n atComment = false;\n break;\n default:\n // This may be wrong after doc-end, but in that case it doesn't matter\n if (!atComment)\n afterEmptyLine = true;\n atComment = false;\n }\n }\n return { comment, afterEmptyLine };\n}\n/**\n * Compose a stream of CST nodes into a stream of YAML Documents.\n *\n * ```ts\n * import { Composer, Parser } from 'yaml'\n *\n * const src: string = ...\n * const tokens = new Parser().parse(src)\n * const docs = new Composer().compose(tokens)\n * ```\n */\nclass Composer {\n constructor(options = {}) {\n this.doc = null;\n this.atDirectives = false;\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n this.onError = (source, code, message, warning) => {\n const pos = getErrorPos(source);\n if (warning)\n this.warnings.push(new YAMLWarning(pos, code, message));\n else\n this.errors.push(new YAMLParseError(pos, code, message));\n };\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.directives = new Directives({ version: options.version || '1.2' });\n this.options = options;\n }\n decorate(doc, afterDoc) {\n const { comment, afterEmptyLine } = parsePrelude(this.prelude);\n //console.log({ dc: doc.comment, prelude, comment })\n if (comment) {\n const dc = doc.contents;\n if (afterDoc) {\n doc.comment = doc.comment ? `${doc.comment}\\n${comment}` : comment;\n }\n else if (afterEmptyLine || doc.directives.docStart || !dc) {\n doc.commentBefore = comment;\n }\n else if (isCollection(dc) && !dc.flow && dc.items.length > 0) {\n let it = dc.items[0];\n if (isPair(it))\n it = it.key;\n const cb = it.commentBefore;\n it.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n else {\n const cb = dc.commentBefore;\n dc.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n }\n if (afterDoc) {\n for (let i = 0; i < this.errors.length; ++i)\n doc.errors.push(this.errors[i]);\n for (let i = 0; i < this.warnings.length; ++i)\n doc.warnings.push(this.warnings[i]);\n }\n else {\n doc.errors = this.errors;\n doc.warnings = this.warnings;\n }\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n }\n /**\n * Current stream status information.\n *\n * Mostly useful at the end of input for an empty stream.\n */\n streamInfo() {\n return {\n comment: parsePrelude(this.prelude).comment,\n directives: this.directives,\n errors: this.errors,\n warnings: this.warnings\n };\n }\n /**\n * Compose tokens into documents.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *compose(tokens, forceDoc = false, endOffset = -1) {\n for (const token of tokens)\n yield* this.next(token);\n yield* this.end(forceDoc, endOffset);\n }\n /** Advance the composer by one CST token. */\n *next(token) {\n switch (token.type) {\n case 'directive':\n this.directives.add(token.source, (offset, message, warning) => {\n const pos = getErrorPos(token);\n pos[0] += offset;\n this.onError(pos, 'BAD_DIRECTIVE', message, warning);\n });\n this.prelude.push(token.source);\n this.atDirectives = true;\n break;\n case 'document': {\n const doc = composeDoc(this.options, this.directives, token, this.onError);\n if (this.atDirectives && !doc.directives.docStart)\n this.onError(token, 'MISSING_CHAR', 'Missing directives-end/doc-start indicator line');\n this.decorate(doc, false);\n if (this.doc)\n yield this.doc;\n this.doc = doc;\n this.atDirectives = false;\n break;\n }\n case 'byte-order-mark':\n case 'space':\n break;\n case 'comment':\n case 'newline':\n this.prelude.push(token.source);\n break;\n case 'error': {\n const msg = token.source\n ? `${token.message}: ${JSON.stringify(token.source)}`\n : token.message;\n const error = new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg);\n if (this.atDirectives || !this.doc)\n this.errors.push(error);\n else\n this.doc.errors.push(error);\n break;\n }\n case 'doc-end': {\n if (!this.doc) {\n const msg = 'Unexpected doc-end without preceding document';\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg));\n break;\n }\n this.doc.directives.docEnd = true;\n const end = resolveEnd(token.end, token.offset + token.source.length, this.doc.options.strict, this.onError);\n this.decorate(this.doc, true);\n if (end.comment) {\n const dc = this.doc.comment;\n this.doc.comment = dc ? `${dc}\\n${end.comment}` : end.comment;\n }\n this.doc.range[2] = end.offset;\n break;\n }\n default:\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', `Unsupported token ${token.type}`));\n }\n }\n /**\n * Call at end of input to yield any remaining document.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *end(forceDoc = false, endOffset = -1) {\n if (this.doc) {\n this.decorate(this.doc, true);\n yield this.doc;\n this.doc = null;\n }\n else if (forceDoc) {\n const opts = Object.assign({ _directives: this.directives }, this.options);\n const doc = new Document(undefined, opts);\n if (this.atDirectives)\n this.onError(endOffset, 'MISSING_CHAR', 'Missing directives-end indicator line');\n doc.range = [0, endOffset, endOffset];\n this.decorate(doc, false);\n yield doc;\n }\n }\n}\n\nexport { Composer };\n","export { createScalarToken, resolveAsScalar, setScalarValue } from './cst-scalar.js';\nexport { stringify } from './cst-stringify.js';\nexport { visit } from './cst-visit.js';\n\n/** The byte order mark */\nconst BOM = '\\u{FEFF}';\n/** Start of doc-mode */\nconst DOCUMENT = '\\x02'; // C0: Start of Text\n/** Unexpected end of flow-mode */\nconst FLOW_END = '\\x18'; // C0: Cancel\n/** Next token is a scalar value */\nconst SCALAR = '\\x1f'; // C0: Unit Separator\n/** @returns `true` if `token` is a flow or block collection */\nconst isCollection = (token) => !!token && 'items' in token;\n/** @returns `true` if `token` is a flow or block scalar; not an alias */\nconst isScalar = (token) => !!token &&\n (token.type === 'scalar' ||\n token.type === 'single-quoted-scalar' ||\n token.type === 'double-quoted-scalar' ||\n token.type === 'block-scalar');\n/* istanbul ignore next */\n/** Get a printable representation of a lexer token */\nfunction prettyToken(token) {\n switch (token) {\n case BOM:\n return '<BOM>';\n case DOCUMENT:\n return '<DOC>';\n case FLOW_END:\n return '<FLOW_END>';\n case SCALAR:\n return '<SCALAR>';\n default:\n return JSON.stringify(token);\n }\n}\n/** Identify the type of a lexer token. May return `null` for unknown tokens. */\nfunction tokenType(source) {\n switch (source) {\n case BOM:\n return 'byte-order-mark';\n case DOCUMENT:\n return 'doc-mode';\n case FLOW_END:\n return 'flow-error-end';\n case SCALAR:\n return 'scalar';\n case '---':\n return 'doc-start';\n case '...':\n return 'doc-end';\n case '':\n case '\\n':\n case '\\r\\n':\n return 'newline';\n case '-':\n return 'seq-item-ind';\n case '?':\n return 'explicit-key-ind';\n case ':':\n return 'map-value-ind';\n case '{':\n return 'flow-map-start';\n case '}':\n return 'flow-map-end';\n case '[':\n return 'flow-seq-start';\n case ']':\n return 'flow-seq-end';\n case ',':\n return 'comma';\n }\n switch (source[0]) {\n case ' ':\n case '\\t':\n return 'space';\n case '#':\n return 'comment';\n case '%':\n return 'directive-line';\n case '*':\n return 'alias';\n case '&':\n return 'anchor';\n case '!':\n return 'tag';\n case \"'\":\n return 'single-quoted-scalar';\n case '\"':\n return 'double-quoted-scalar';\n case '|':\n case '>':\n return 'block-scalar-header';\n }\n return null;\n}\n\nexport { BOM, DOCUMENT, FLOW_END, SCALAR, isCollection, isScalar, prettyToken, tokenType };\n","import { BOM, DOCUMENT, FLOW_END, SCALAR } from './cst.js';\n\n/*\nSTART -> stream\n\nstream\n directive -> line-end -> stream\n indent + line-end -> stream\n [else] -> line-start\n\nline-end\n comment -> line-end\n newline -> .\n input-end -> END\n\nline-start\n doc-start -> doc\n doc-end -> stream\n [else] -> indent -> block-start\n\nblock-start\n seq-item-start -> block-start\n explicit-key-start -> block-start\n map-value-start -> block-start\n [else] -> doc\n\ndoc\n line-end -> line-start\n spaces -> doc\n anchor -> doc\n tag -> doc\n flow-start -> flow -> doc\n flow-end -> error -> doc\n seq-item-start -> error -> doc\n explicit-key-start -> error -> doc\n map-value-start -> doc\n alias -> doc\n quote-start -> quoted-scalar -> doc\n block-scalar-header -> line-end -> block-scalar(min) -> line-start\n [else] -> plain-scalar(false, min) -> doc\n\nflow\n line-end -> flow\n spaces -> flow\n anchor -> flow\n tag -> flow\n flow-start -> flow -> flow\n flow-end -> .\n seq-item-start -> error -> flow\n explicit-key-start -> flow\n map-value-start -> flow\n alias -> flow\n quote-start -> quoted-scalar -> flow\n comma -> flow\n [else] -> plain-scalar(true, 0) -> flow\n\nquoted-scalar\n quote-end -> .\n [else] -> quoted-scalar\n\nblock-scalar(min)\n newline + peek(indent < min) -> .\n [else] -> block-scalar(min)\n\nplain-scalar(is-flow, min)\n scalar-end(is-flow) -> .\n peek(newline + (indent < min)) -> .\n [else] -> plain-scalar(min)\n*/\nfunction isEmpty(ch) {\n switch (ch) {\n case undefined:\n case ' ':\n case '\\n':\n case '\\r':\n case '\\t':\n return true;\n default:\n return false;\n }\n}\nconst hexDigits = new Set('0123456789ABCDEFabcdef');\nconst tagChars = new Set(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()\");\nconst flowIndicatorChars = new Set(',[]{}');\nconst invalidAnchorChars = new Set(' ,[]{}\\n\\r\\t');\nconst isNotAnchorChar = (ch) => !ch || invalidAnchorChars.has(ch);\n/**\n * Splits an input string into lexical tokens, i.e. smaller strings that are\n * easily identifiable by `tokens.tokenType()`.\n *\n * Lexing starts always in a \"stream\" context. Incomplete input may be buffered\n * until a complete token can be emitted.\n *\n * In addition to slices of the original input, the following control characters\n * may also be emitted:\n *\n * - `\\x02` (Start of Text): A document starts with the next token\n * - `\\x18` (Cancel): Unexpected end of flow-mode (indicates an error)\n * - `\\x1f` (Unit Separator): Next token is a scalar value\n * - `\\u{FEFF}` (Byte order mark): Emitted separately outside documents\n */\nclass Lexer {\n constructor() {\n /**\n * Flag indicating whether the end of the current buffer marks the end of\n * all input\n */\n this.atEnd = false;\n /**\n * Explicit indent set in block scalar header, as an offset from the current\n * minimum indent, so e.g. set to 1 from a header `|2+`. Set to -1 if not\n * explicitly set.\n */\n this.blockScalarIndent = -1;\n /**\n * Block scalars that include a + (keep) chomping indicator in their header\n * include trailing empty lines, which are otherwise excluded from the\n * scalar's contents.\n */\n this.blockScalarKeep = false;\n /** Current input */\n this.buffer = '';\n /**\n * Flag noting whether the map value indicator : can immediately follow this\n * node within a flow context.\n */\n this.flowKey = false;\n /** Count of surrounding flow collection levels. */\n this.flowLevel = 0;\n /**\n * Minimum level of indentation required for next lines to be parsed as a\n * part of the current scalar value.\n */\n this.indentNext = 0;\n /** Indentation level of the current line. */\n this.indentValue = 0;\n /** Position of the next \\n character. */\n this.lineEndPos = null;\n /** Stores the state of the lexer if reaching the end of incpomplete input */\n this.next = null;\n /** A pointer to `buffer`; the current position of the lexer. */\n this.pos = 0;\n }\n /**\n * Generate YAML tokens from the `source` string. If `incomplete`,\n * a part of the last line may be left as a buffer for the next call.\n *\n * @returns A generator of lexical tokens\n */\n *lex(source, incomplete = false) {\n if (source) {\n if (typeof source !== 'string')\n throw TypeError('source is not a string');\n this.buffer = this.buffer ? this.buffer + source : source;\n this.lineEndPos = null;\n }\n this.atEnd = !incomplete;\n let next = this.next ?? 'stream';\n while (next && (incomplete || this.hasChars(1)))\n next = yield* this.parseNext(next);\n }\n atLineEnd() {\n let i = this.pos;\n let ch = this.buffer[i];\n while (ch === ' ' || ch === '\\t')\n ch = this.buffer[++i];\n if (!ch || ch === '#' || ch === '\\n')\n return true;\n if (ch === '\\r')\n return this.buffer[i + 1] === '\\n';\n return false;\n }\n charAt(n) {\n return this.buffer[this.pos + n];\n }\n continueScalar(offset) {\n let ch = this.buffer[offset];\n if (this.indentNext > 0) {\n let indent = 0;\n while (ch === ' ')\n ch = this.buffer[++indent + offset];\n if (ch === '\\r') {\n const next = this.buffer[indent + offset + 1];\n if (next === '\\n' || (!next && !this.atEnd))\n return offset + indent + 1;\n }\n return ch === '\\n' || indent >= this.indentNext || (!ch && !this.atEnd)\n ? offset + indent\n : -1;\n }\n if (ch === '-' || ch === '.') {\n const dt = this.buffer.substr(offset, 3);\n if ((dt === '---' || dt === '...') && isEmpty(this.buffer[offset + 3]))\n return -1;\n }\n return offset;\n }\n getLine() {\n let end = this.lineEndPos;\n if (typeof end !== 'number' || (end !== -1 && end < this.pos)) {\n end = this.buffer.indexOf('\\n', this.pos);\n this.lineEndPos = end;\n }\n if (end === -1)\n return this.atEnd ? this.buffer.substring(this.pos) : null;\n if (this.buffer[end - 1] === '\\r')\n end -= 1;\n return this.buffer.substring(this.pos, end);\n }\n hasChars(n) {\n return this.pos + n <= this.buffer.length;\n }\n setNext(state) {\n this.buffer = this.buffer.substring(this.pos);\n this.pos = 0;\n this.lineEndPos = null;\n this.next = state;\n return null;\n }\n peek(n) {\n return this.buffer.substr(this.pos, n);\n }\n *parseNext(next) {\n switch (next) {\n case 'stream':\n return yield* this.parseStream();\n case 'line-start':\n return yield* this.parseLineStart();\n case 'block-start':\n return yield* this.parseBlockStart();\n case 'doc':\n return yield* this.parseDocument();\n case 'flow':\n return yield* this.parseFlowCollection();\n case 'quoted-scalar':\n return yield* this.parseQuotedScalar();\n case 'block-scalar':\n return yield* this.parseBlockScalar();\n case 'plain-scalar':\n return yield* this.parsePlainScalar();\n }\n }\n *parseStream() {\n let line = this.getLine();\n if (line === null)\n return this.setNext('stream');\n if (line[0] === BOM) {\n yield* this.pushCount(1);\n line = line.substring(1);\n }\n if (line[0] === '%') {\n let dirEnd = line.length;\n let cs = line.indexOf('#');\n while (cs !== -1) {\n const ch = line[cs - 1];\n if (ch === ' ' || ch === '\\t') {\n dirEnd = cs - 1;\n break;\n }\n else {\n cs = line.indexOf('#', cs + 1);\n }\n }\n while (true) {\n const ch = line[dirEnd - 1];\n if (ch === ' ' || ch === '\\t')\n dirEnd -= 1;\n else\n break;\n }\n const n = (yield* this.pushCount(dirEnd)) + (yield* this.pushSpaces(true));\n yield* this.pushCount(line.length - n); // possible comment\n this.pushNewline();\n return 'stream';\n }\n if (this.atLineEnd()) {\n const sp = yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - sp);\n yield* this.pushNewline();\n return 'stream';\n }\n yield DOCUMENT;\n return yield* this.parseLineStart();\n }\n *parseLineStart() {\n const ch = this.charAt(0);\n if (!ch && !this.atEnd)\n return this.setNext('line-start');\n if (ch === '-' || ch === '.') {\n if (!this.atEnd && !this.hasChars(4))\n return this.setNext('line-start');\n const s = this.peek(3);\n if ((s === '---' || s === '...') && isEmpty(this.charAt(3))) {\n yield* this.pushCount(3);\n this.indentValue = 0;\n this.indentNext = 0;\n return s === '---' ? 'doc' : 'stream';\n }\n }\n this.indentValue = yield* this.pushSpaces(false);\n if (this.indentNext > this.indentValue && !isEmpty(this.charAt(1)))\n this.indentNext = this.indentValue;\n return yield* this.parseBlockStart();\n }\n *parseBlockStart() {\n const [ch0, ch1] = this.peek(2);\n if (!ch1 && !this.atEnd)\n return this.setNext('block-start');\n if ((ch0 === '-' || ch0 === '?' || ch0 === ':') && isEmpty(ch1)) {\n const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));\n this.indentNext = this.indentValue + 1;\n this.indentValue += n;\n return 'block-start';\n }\n return 'doc';\n }\n *parseDocument() {\n yield* this.pushSpaces(true);\n const line = this.getLine();\n if (line === null)\n return this.setNext('doc');\n let n = yield* this.pushIndicators();\n switch (line[n]) {\n case '#':\n yield* this.pushCount(line.length - n);\n // fallthrough\n case undefined:\n yield* this.pushNewline();\n return yield* this.parseLineStart();\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel = 1;\n return 'flow';\n case '}':\n case ']':\n // this is an error\n yield* this.pushCount(1);\n return 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'doc';\n case '\"':\n case \"'\":\n return yield* this.parseQuotedScalar();\n case '|':\n case '>':\n n += yield* this.parseBlockScalarHeader();\n n += yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - n);\n yield* this.pushNewline();\n return yield* this.parseBlockScalar();\n default:\n return yield* this.parsePlainScalar();\n }\n }\n *parseFlowCollection() {\n let nl, sp;\n let indent = -1;\n do {\n nl = yield* this.pushNewline();\n if (nl > 0) {\n sp = yield* this.pushSpaces(false);\n this.indentValue = indent = sp;\n }\n else {\n sp = 0;\n }\n sp += yield* this.pushSpaces(true);\n } while (nl + sp > 0);\n const line = this.getLine();\n if (line === null)\n return this.setNext('flow');\n if ((indent !== -1 && indent < this.indentNext && line[0] !== '#') ||\n (indent === 0 &&\n (line.startsWith('---') || line.startsWith('...')) &&\n isEmpty(line[3]))) {\n // Allowing for the terminal ] or } at the same (rather than greater)\n // indent level as the initial [ or { is technically invalid, but\n // failing here would be surprising to users.\n const atFlowEndMarker = indent === this.indentNext - 1 &&\n this.flowLevel === 1 &&\n (line[0] === ']' || line[0] === '}');\n if (!atFlowEndMarker) {\n // this is an error\n this.flowLevel = 0;\n yield FLOW_END;\n return yield* this.parseLineStart();\n }\n }\n let n = 0;\n while (line[n] === ',') {\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n this.flowKey = false;\n }\n n += yield* this.pushIndicators();\n switch (line[n]) {\n case undefined:\n return 'flow';\n case '#':\n yield* this.pushCount(line.length - n);\n return 'flow';\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel += 1;\n return 'flow';\n case '}':\n case ']':\n yield* this.pushCount(1);\n this.flowKey = true;\n this.flowLevel -= 1;\n return this.flowLevel ? 'flow' : 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'flow';\n case '\"':\n case \"'\":\n this.flowKey = true;\n return yield* this.parseQuotedScalar();\n case ':': {\n const next = this.charAt(1);\n if (this.flowKey || isEmpty(next) || next === ',') {\n this.flowKey = false;\n yield* this.pushCount(1);\n yield* this.pushSpaces(true);\n return 'flow';\n }\n }\n // fallthrough\n default:\n this.flowKey = false;\n return yield* this.parsePlainScalar();\n }\n }\n *parseQuotedScalar() {\n const quote = this.charAt(0);\n let end = this.buffer.indexOf(quote, this.pos + 1);\n if (quote === \"'\") {\n while (end !== -1 && this.buffer[end + 1] === \"'\")\n end = this.buffer.indexOf(\"'\", end + 2);\n }\n else {\n // double-quote\n while (end !== -1) {\n let n = 0;\n while (this.buffer[end - 1 - n] === '\\\\')\n n += 1;\n if (n % 2 === 0)\n break;\n end = this.buffer.indexOf('\"', end + 1);\n }\n }\n // Only looking for newlines within the quotes\n const qb = this.buffer.substring(0, end);\n let nl = qb.indexOf('\\n', this.pos);\n if (nl !== -1) {\n while (nl !== -1) {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = qb.indexOf('\\n', cs);\n }\n if (nl !== -1) {\n // this is an error caused by an unexpected unindent\n end = nl - (qb[nl - 1] === '\\r' ? 2 : 1);\n }\n }\n if (end === -1) {\n if (!this.atEnd)\n return this.setNext('quoted-scalar');\n end = this.buffer.length;\n }\n yield* this.pushToIndex(end + 1, false);\n return this.flowLevel ? 'flow' : 'doc';\n }\n *parseBlockScalarHeader() {\n this.blockScalarIndent = -1;\n this.blockScalarKeep = false;\n let i = this.pos;\n while (true) {\n const ch = this.buffer[++i];\n if (ch === '+')\n this.blockScalarKeep = true;\n else if (ch > '0' && ch <= '9')\n this.blockScalarIndent = Number(ch) - 1;\n else if (ch !== '-')\n break;\n }\n return yield* this.pushUntil(ch => isEmpty(ch) || ch === '#');\n }\n *parseBlockScalar() {\n let nl = this.pos - 1; // may be -1 if this.pos === 0\n let indent = 0;\n let ch;\n loop: for (let i = this.pos; (ch = this.buffer[i]); ++i) {\n switch (ch) {\n case ' ':\n indent += 1;\n break;\n case '\\n':\n nl = i;\n indent = 0;\n break;\n case '\\r': {\n const next = this.buffer[i + 1];\n if (!next && !this.atEnd)\n return this.setNext('block-scalar');\n if (next === '\\n')\n break;\n } // fallthrough\n default:\n break loop;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('block-scalar');\n if (indent >= this.indentNext) {\n if (this.blockScalarIndent === -1)\n this.indentNext = indent;\n else {\n this.indentNext =\n this.blockScalarIndent + (this.indentNext === 0 ? 1 : this.indentNext);\n }\n do {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = this.buffer.indexOf('\\n', cs);\n } while (nl !== -1);\n if (nl === -1) {\n if (!this.atEnd)\n return this.setNext('block-scalar');\n nl = this.buffer.length;\n }\n }\n // Trailing insufficiently indented tabs are invalid.\n // To catch that during parsing, we include them in the block scalar value.\n let i = nl + 1;\n ch = this.buffer[i];\n while (ch === ' ')\n ch = this.buffer[++i];\n if (ch === '\\t') {\n while (ch === '\\t' || ch === ' ' || ch === '\\r' || ch === '\\n')\n ch = this.buffer[++i];\n nl = i - 1;\n }\n else if (!this.blockScalarKeep) {\n do {\n let i = nl - 1;\n let ch = this.buffer[i];\n if (ch === '\\r')\n ch = this.buffer[--i];\n const lastChar = i; // Drop the line if last char not more indented\n while (ch === ' ')\n ch = this.buffer[--i];\n if (ch === '\\n' && i >= this.pos && i + 1 + indent > lastChar)\n nl = i;\n else\n break;\n } while (true);\n }\n yield SCALAR;\n yield* this.pushToIndex(nl + 1, true);\n return yield* this.parseLineStart();\n }\n *parsePlainScalar() {\n const inFlow = this.flowLevel > 0;\n let end = this.pos - 1;\n let i = this.pos - 1;\n let ch;\n while ((ch = this.buffer[++i])) {\n if (ch === ':') {\n const next = this.buffer[i + 1];\n if (isEmpty(next) || (inFlow && flowIndicatorChars.has(next)))\n break;\n end = i;\n }\n else if (isEmpty(ch)) {\n let next = this.buffer[i + 1];\n if (ch === '\\r') {\n if (next === '\\n') {\n i += 1;\n ch = '\\n';\n next = this.buffer[i + 1];\n }\n else\n end = i;\n }\n if (next === '#' || (inFlow && flowIndicatorChars.has(next)))\n break;\n if (ch === '\\n') {\n const cs = this.continueScalar(i + 1);\n if (cs === -1)\n break;\n i = Math.max(i, cs - 2); // to advance, but still account for ' #'\n }\n }\n else {\n if (inFlow && flowIndicatorChars.has(ch))\n break;\n end = i;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('plain-scalar');\n yield SCALAR;\n yield* this.pushToIndex(end + 1, true);\n return inFlow ? 'flow' : 'doc';\n }\n *pushCount(n) {\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos += n;\n return n;\n }\n return 0;\n }\n *pushToIndex(i, allowEmpty) {\n const s = this.buffer.slice(this.pos, i);\n if (s) {\n yield s;\n this.pos += s.length;\n return s.length;\n }\n else if (allowEmpty)\n yield '';\n return 0;\n }\n *pushIndicators() {\n let n = 0;\n loop: while (true) {\n switch (this.charAt(0)) {\n case '!':\n n += yield* this.pushTag();\n n += yield* this.pushSpaces(true);\n continue loop;\n case '&':\n n += yield* this.pushUntil(isNotAnchorChar);\n n += yield* this.pushSpaces(true);\n continue loop;\n case '-': // this is an error\n case '?': // this is an error outside flow collections\n case ':': {\n const inFlow = this.flowLevel > 0;\n const ch1 = this.charAt(1);\n if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {\n if (!inFlow)\n this.indentNext = this.indentValue + 1;\n else if (this.flowKey)\n this.flowKey = false;\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n continue loop;\n }\n }\n }\n break loop;\n }\n return n;\n }\n *pushTag() {\n if (this.charAt(1) === '<') {\n let i = this.pos + 2;\n let ch = this.buffer[i];\n while (!isEmpty(ch) && ch !== '>')\n ch = this.buffer[++i];\n return yield* this.pushToIndex(ch === '>' ? i + 1 : i, false);\n }\n else {\n let i = this.pos + 1;\n let ch = this.buffer[i];\n while (ch) {\n if (tagChars.has(ch))\n ch = this.buffer[++i];\n else if (ch === '%' &&\n hexDigits.has(this.buffer[i + 1]) &&\n hexDigits.has(this.buffer[i + 2])) {\n ch = this.buffer[(i += 3)];\n }\n else\n break;\n }\n return yield* this.pushToIndex(i, false);\n }\n }\n *pushNewline() {\n const ch = this.buffer[this.pos];\n if (ch === '\\n')\n return yield* this.pushCount(1);\n else if (ch === '\\r' && this.charAt(1) === '\\n')\n return yield* this.pushCount(2);\n else\n return 0;\n }\n *pushSpaces(allowTabs) {\n let i = this.pos - 1;\n let ch;\n do {\n ch = this.buffer[++i];\n } while (ch === ' ' || (allowTabs && ch === '\\t'));\n const n = i - this.pos;\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos = i;\n }\n return n;\n }\n *pushUntil(test) {\n let i = this.pos;\n let ch = this.buffer[i];\n while (!test(ch))\n ch = this.buffer[++i];\n return yield* this.pushToIndex(i, false);\n }\n}\n\nexport { Lexer };\n","/**\n * Tracks newlines during parsing in order to provide an efficient API for\n * determining the one-indexed `{ line, col }` position for any offset\n * within the input.\n */\nclass LineCounter {\n constructor() {\n this.lineStarts = [];\n /**\n * Should be called in ascending order. Otherwise, call\n * `lineCounter.lineStarts.sort()` before calling `linePos()`.\n */\n this.addNewLine = (offset) => this.lineStarts.push(offset);\n /**\n * Performs a binary search and returns the 1-indexed { line, col }\n * position of `offset`. If `line === 0`, `addNewLine` has never been\n * called or `offset` is before the first known newline.\n */\n this.linePos = (offset) => {\n let low = 0;\n let high = this.lineStarts.length;\n while (low < high) {\n const mid = (low + high) >> 1; // Math.floor((low + high) / 2)\n if (this.lineStarts[mid] < offset)\n low = mid + 1;\n else\n high = mid;\n }\n if (this.lineStarts[low] === offset)\n return { line: low + 1, col: 1 };\n if (low === 0)\n return { line: 0, col: offset };\n const start = this.lineStarts[low - 1];\n return { line: low, col: offset - start + 1 };\n };\n }\n}\n\nexport { LineCounter };\n","import { tokenType } from './cst.js';\nimport { Lexer } from './lexer.js';\n\nfunction includesToken(list, type) {\n for (let i = 0; i < list.length; ++i)\n if (list[i].type === type)\n return true;\n return false;\n}\nfunction findNonEmptyIndex(list) {\n for (let i = 0; i < list.length; ++i) {\n switch (list[i].type) {\n case 'space':\n case 'comment':\n case 'newline':\n break;\n default:\n return i;\n }\n }\n return -1;\n}\nfunction isFlowToken(token) {\n switch (token?.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'flow-collection':\n return true;\n default:\n return false;\n }\n}\nfunction getPrevProps(parent) {\n switch (parent.type) {\n case 'document':\n return parent.start;\n case 'block-map': {\n const it = parent.items[parent.items.length - 1];\n return it.sep ?? it.start;\n }\n case 'block-seq':\n return parent.items[parent.items.length - 1].start;\n /* istanbul ignore next should not happen */\n default:\n return [];\n }\n}\n/** Note: May modify input array */\nfunction getFirstKeyStartProps(prev) {\n if (prev.length === 0)\n return [];\n let i = prev.length;\n loop: while (--i >= 0) {\n switch (prev[i].type) {\n case 'doc-start':\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n case 'newline':\n break loop;\n }\n }\n while (prev[++i]?.type === 'space') {\n /* loop */\n }\n return prev.splice(i, prev.length);\n}\nfunction arrayPushArray(target, source) {\n // May exhaust call stack with large `source` array\n if (source.length < 1e5)\n Array.prototype.push.apply(target, source);\n else\n for (let i = 0; i < source.length; ++i)\n target.push(source[i]);\n}\nfunction fixFlowSeqItems(fc) {\n if (fc.start.type === 'flow-seq-start') {\n for (const it of fc.items) {\n if (it.sep &&\n !it.value &&\n !includesToken(it.start, 'explicit-key-ind') &&\n !includesToken(it.sep, 'map-value-ind')) {\n if (it.key)\n it.value = it.key;\n delete it.key;\n if (isFlowToken(it.value)) {\n if (it.value.end)\n arrayPushArray(it.value.end, it.sep);\n else\n it.value.end = it.sep;\n }\n else\n arrayPushArray(it.start, it.sep);\n delete it.sep;\n }\n }\n }\n}\n/**\n * A YAML concrete syntax tree (CST) parser\n *\n * ```ts\n * const src: string = ...\n * for (const token of new Parser().parse(src)) {\n * // token: Token\n * }\n * ```\n *\n * To use the parser with a user-provided lexer:\n *\n * ```ts\n * function* parse(source: string, lexer: Lexer) {\n * const parser = new Parser()\n * for (const lexeme of lexer.lex(source))\n * yield* parser.next(lexeme)\n * yield* parser.end()\n * }\n *\n * const src: string = ...\n * const lexer = new Lexer()\n * for (const token of parse(src, lexer)) {\n * // token: Token\n * }\n * ```\n */\nclass Parser {\n /**\n * @param onNewLine - If defined, called separately with the start position of\n * each new line (in `parse()`, including the start of input).\n */\n constructor(onNewLine) {\n /** If true, space and sequence indicators count as indentation */\n this.atNewLine = true;\n /** If true, next token is a scalar value */\n this.atScalar = false;\n /** Current indentation level */\n this.indent = 0;\n /** Current offset since the start of parsing */\n this.offset = 0;\n /** On the same line with a block map key */\n this.onKeyLine = false;\n /** Top indicates the node that's currently being built */\n this.stack = [];\n /** The source of the current token, set in parse() */\n this.source = '';\n /** The type of the current token, set in parse() */\n this.type = '';\n // Must be defined after `next()`\n this.lexer = new Lexer();\n this.onNewLine = onNewLine;\n }\n /**\n * Parse `source` as a YAML stream.\n * If `incomplete`, a part of the last line may be left as a buffer for the next call.\n *\n * Errors are not thrown, but yielded as `{ type: 'error', message }` tokens.\n *\n * @returns A generator of tokens representing each directive, document, and other structure.\n */\n *parse(source, incomplete = false) {\n if (this.onNewLine && this.offset === 0)\n this.onNewLine(0);\n for (const lexeme of this.lexer.lex(source, incomplete))\n yield* this.next(lexeme);\n if (!incomplete)\n yield* this.end();\n }\n /**\n * Advance the parser by the `source` of one lexical token.\n */\n *next(source) {\n this.source = source;\n if (this.atScalar) {\n this.atScalar = false;\n yield* this.step();\n this.offset += source.length;\n return;\n }\n const type = tokenType(source);\n if (!type) {\n const message = `Not a YAML token: ${source}`;\n yield* this.pop({ type: 'error', offset: this.offset, message, source });\n this.offset += source.length;\n }\n else if (type === 'scalar') {\n this.atNewLine = false;\n this.atScalar = true;\n this.type = 'scalar';\n }\n else {\n this.type = type;\n yield* this.step();\n switch (type) {\n case 'newline':\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine)\n this.onNewLine(this.offset + source.length);\n break;\n case 'space':\n if (this.atNewLine && source[0] === ' ')\n this.indent += source.length;\n break;\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n if (this.atNewLine)\n this.indent += source.length;\n break;\n case 'doc-mode':\n case 'flow-error-end':\n return;\n default:\n this.atNewLine = false;\n }\n this.offset += source.length;\n }\n }\n /** Call at end of input to push out any remaining constructions */\n *end() {\n while (this.stack.length > 0)\n yield* this.pop();\n }\n get sourceToken() {\n const st = {\n type: this.type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n return st;\n }\n *step() {\n const top = this.peek(1);\n if (this.type === 'doc-end' && top?.type !== 'doc-end') {\n while (this.stack.length > 0)\n yield* this.pop();\n this.stack.push({\n type: 'doc-end',\n offset: this.offset,\n source: this.source\n });\n return;\n }\n if (!top)\n return yield* this.stream();\n switch (top.type) {\n case 'document':\n return yield* this.document(top);\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return yield* this.scalar(top);\n case 'block-scalar':\n return yield* this.blockScalar(top);\n case 'block-map':\n return yield* this.blockMap(top);\n case 'block-seq':\n return yield* this.blockSequence(top);\n case 'flow-collection':\n return yield* this.flowCollection(top);\n case 'doc-end':\n return yield* this.documentEnd(top);\n }\n /* istanbul ignore next should not happen */\n yield* this.pop();\n }\n peek(n) {\n return this.stack[this.stack.length - n];\n }\n *pop(error) {\n const token = error ?? this.stack.pop();\n /* istanbul ignore if should not happen */\n if (!token) {\n const message = 'Tried to pop an empty stack';\n yield { type: 'error', offset: this.offset, source: '', message };\n }\n else if (this.stack.length === 0) {\n yield token;\n }\n else {\n const top = this.peek(1);\n if (token.type === 'block-scalar') {\n // Block scalars use their parent rather than header indent\n token.indent = 'indent' in top ? top.indent : 0;\n }\n else if (token.type === 'flow-collection' && top.type === 'document') {\n // Ignore all indent for top-level flow collections\n token.indent = 0;\n }\n if (token.type === 'flow-collection')\n fixFlowSeqItems(token);\n switch (top.type) {\n case 'document':\n top.value = token;\n break;\n case 'block-scalar':\n top.props.push(token); // error\n break;\n case 'block-map': {\n const it = top.items[top.items.length - 1];\n if (it.value) {\n top.items.push({ start: [], key: token, sep: [] });\n this.onKeyLine = true;\n return;\n }\n else if (it.sep) {\n it.value = token;\n }\n else {\n Object.assign(it, { key: token, sep: [] });\n this.onKeyLine = !it.explicitKey;\n return;\n }\n break;\n }\n case 'block-seq': {\n const it = top.items[top.items.length - 1];\n if (it.value)\n top.items.push({ start: [], value: token });\n else\n it.value = token;\n break;\n }\n case 'flow-collection': {\n const it = top.items[top.items.length - 1];\n if (!it || it.value)\n top.items.push({ start: [], key: token, sep: [] });\n else if (it.sep)\n it.value = token;\n else\n Object.assign(it, { key: token, sep: [] });\n return;\n }\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.pop(token);\n }\n if ((top.type === 'document' ||\n top.type === 'block-map' ||\n top.type === 'block-seq') &&\n (token.type === 'block-map' || token.type === 'block-seq')) {\n const last = token.items[token.items.length - 1];\n if (last &&\n !last.sep &&\n !last.value &&\n last.start.length > 0 &&\n findNonEmptyIndex(last.start) === -1 &&\n (token.indent === 0 ||\n last.start.every(st => st.type !== 'comment' || st.indent < token.indent))) {\n if (top.type === 'document')\n top.end = last.start;\n else\n top.items.push({ start: last.start });\n token.items.splice(-1, 1);\n }\n }\n }\n }\n *stream() {\n switch (this.type) {\n case 'directive-line':\n yield { type: 'directive', offset: this.offset, source: this.source };\n return;\n case 'byte-order-mark':\n case 'space':\n case 'comment':\n case 'newline':\n yield this.sourceToken;\n return;\n case 'doc-mode':\n case 'doc-start': {\n const doc = {\n type: 'document',\n offset: this.offset,\n start: []\n };\n if (this.type === 'doc-start')\n doc.start.push(this.sourceToken);\n this.stack.push(doc);\n return;\n }\n }\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML stream`,\n source: this.source\n };\n }\n *document(doc) {\n if (doc.value)\n return yield* this.lineEnd(doc);\n switch (this.type) {\n case 'doc-start': {\n if (findNonEmptyIndex(doc.start) !== -1) {\n yield* this.pop();\n yield* this.step();\n }\n else\n doc.start.push(this.sourceToken);\n return;\n }\n case 'anchor':\n case 'tag':\n case 'space':\n case 'comment':\n case 'newline':\n doc.start.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(doc);\n if (bv)\n this.stack.push(bv);\n else {\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML document`,\n source: this.source\n };\n }\n }\n *scalar(scalar) {\n if (this.type === 'map-value-ind') {\n const prev = getPrevProps(this.peek(2));\n const start = getFirstKeyStartProps(prev);\n let sep;\n if (scalar.end) {\n sep = scalar.end;\n sep.push(this.sourceToken);\n delete scalar.end;\n }\n else\n sep = [this.sourceToken];\n const map = {\n type: 'block-map',\n offset: scalar.offset,\n indent: scalar.indent,\n items: [{ start, key: scalar, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else\n yield* this.lineEnd(scalar);\n }\n *blockScalar(scalar) {\n switch (this.type) {\n case 'space':\n case 'comment':\n case 'newline':\n scalar.props.push(this.sourceToken);\n return;\n case 'scalar':\n scalar.source = this.source;\n // block-scalar source includes trailing newline\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n yield* this.pop();\n break;\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.step();\n }\n }\n *blockMap(map) {\n const it = map.items[map.items.length - 1];\n // it.sep is true-ish if pair already has key or : separator\n switch (this.type) {\n case 'newline':\n this.onKeyLine = false;\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'space':\n case 'comment':\n if (it.value) {\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n if (this.atIndentedComment(it.start, map.indent)) {\n const prev = map.items[map.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n arrayPushArray(end, it.start);\n end.push(this.sourceToken);\n map.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n }\n if (this.indent >= map.indent) {\n const atMapIndent = !this.onKeyLine && this.indent === map.indent;\n const atNextItem = atMapIndent &&\n (it.sep || it.explicitKey) &&\n this.type !== 'seq-item-ind';\n // For empty nodes, assign newline-separated not indented empty tokens to following node\n let start = [];\n if (atNextItem && it.sep && !it.value) {\n const nl = [];\n for (let i = 0; i < it.sep.length; ++i) {\n const st = it.sep[i];\n switch (st.type) {\n case 'newline':\n nl.push(i);\n break;\n case 'space':\n break;\n case 'comment':\n if (st.indent > map.indent)\n nl.length = 0;\n break;\n default:\n nl.length = 0;\n }\n }\n if (nl.length >= 2)\n start = it.sep.splice(nl[1]);\n }\n switch (this.type) {\n case 'anchor':\n case 'tag':\n if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'explicit-key-ind':\n if (!it.sep && !it.explicitKey) {\n it.start.push(this.sourceToken);\n it.explicitKey = true;\n }\n else if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start, explicitKey: true });\n }\n else {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken], explicitKey: true }]\n });\n }\n this.onKeyLine = true;\n return;\n case 'map-value-ind':\n if (it.explicitKey) {\n if (!it.sep) {\n if (includesToken(it.start, 'newline')) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else {\n const start = getFirstKeyStartProps(it.start);\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n }\n else if (it.value) {\n map.items.push({ start: [], key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n else if (isFlowToken(it.key) &&\n !includesToken(it.sep, 'newline')) {\n const start = getFirstKeyStartProps(it.start);\n const key = it.key;\n const sep = it.sep;\n sep.push(this.sourceToken);\n // @ts-expect-error type guard is wrong here\n delete it.key;\n // @ts-expect-error type guard is wrong here\n delete it.sep;\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key, sep }]\n });\n }\n else if (start.length > 0) {\n // Not actually at next item\n it.sep = it.sep.concat(start, this.sourceToken);\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n else {\n if (!it.sep) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else if (it.value || atNextItem) {\n map.items.push({ start, key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [], key: null, sep: [this.sourceToken] }]\n });\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n this.onKeyLine = true;\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (atNextItem || it.value) {\n map.items.push({ start, key: fs, sep: [] });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n this.stack.push(fs);\n }\n else {\n Object.assign(it, { key: fs, sep: [] });\n this.onKeyLine = true;\n }\n return;\n }\n default: {\n const bv = this.startBlockValue(map);\n if (bv) {\n if (bv.type === 'block-seq') {\n if (!it.explicitKey &&\n it.sep &&\n !includesToken(it.sep, 'newline')) {\n yield* this.pop({\n type: 'error',\n offset: this.offset,\n message: 'Unexpected block-seq-ind on same line with key',\n source: this.source\n });\n return;\n }\n }\n else if (atMapIndent) {\n map.items.push({ start });\n }\n this.stack.push(bv);\n return;\n }\n }\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *blockSequence(seq) {\n const it = seq.items[seq.items.length - 1];\n switch (this.type) {\n case 'newline':\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n seq.items.push({ start: [this.sourceToken] });\n }\n else\n it.start.push(this.sourceToken);\n return;\n case 'space':\n case 'comment':\n if (it.value)\n seq.items.push({ start: [this.sourceToken] });\n else {\n if (this.atIndentedComment(it.start, seq.indent)) {\n const prev = seq.items[seq.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n arrayPushArray(end, it.start);\n end.push(this.sourceToken);\n seq.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n case 'anchor':\n case 'tag':\n if (it.value || this.indent <= seq.indent)\n break;\n it.start.push(this.sourceToken);\n return;\n case 'seq-item-ind':\n if (this.indent !== seq.indent)\n break;\n if (it.value || includesToken(it.start, 'seq-item-ind'))\n seq.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n }\n if (this.indent > seq.indent) {\n const bv = this.startBlockValue(seq);\n if (bv) {\n this.stack.push(bv);\n return;\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *flowCollection(fc) {\n const it = fc.items[fc.items.length - 1];\n if (this.type === 'flow-error-end') {\n let top;\n do {\n yield* this.pop();\n top = this.peek(1);\n } while (top?.type === 'flow-collection');\n }\n else if (fc.end.length === 0) {\n switch (this.type) {\n case 'comma':\n case 'explicit-key-ind':\n if (!it || it.sep)\n fc.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n case 'map-value-ind':\n if (!it || it.value)\n fc.items.push({ start: [], key: null, sep: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n return;\n case 'space':\n case 'comment':\n case 'newline':\n case 'anchor':\n case 'tag':\n if (!it || it.value)\n fc.items.push({ start: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n it.start.push(this.sourceToken);\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (!it || it.value)\n fc.items.push({ start: [], key: fs, sep: [] });\n else if (it.sep)\n this.stack.push(fs);\n else\n Object.assign(it, { key: fs, sep: [] });\n return;\n }\n case 'flow-map-end':\n case 'flow-seq-end':\n fc.end.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(fc);\n /* istanbul ignore else should not happen */\n if (bv)\n this.stack.push(bv);\n else {\n yield* this.pop();\n yield* this.step();\n }\n }\n else {\n const parent = this.peek(2);\n if (parent.type === 'block-map' &&\n ((this.type === 'map-value-ind' && parent.indent === fc.indent) ||\n (this.type === 'newline' &&\n !parent.items[parent.items.length - 1].sep))) {\n yield* this.pop();\n yield* this.step();\n }\n else if (this.type === 'map-value-ind' &&\n parent.type !== 'flow-collection') {\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n fixFlowSeqItems(fc);\n const sep = fc.end.splice(1, fc.end.length);\n sep.push(this.sourceToken);\n const map = {\n type: 'block-map',\n offset: fc.offset,\n indent: fc.indent,\n items: [{ start, key: fc, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else {\n yield* this.lineEnd(fc);\n }\n }\n }\n flowScalar(type) {\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n return {\n type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n }\n startBlockValue(parent) {\n switch (this.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return this.flowScalar(this.type);\n case 'block-scalar-header':\n return {\n type: 'block-scalar',\n offset: this.offset,\n indent: this.indent,\n props: [this.sourceToken],\n source: ''\n };\n case 'flow-map-start':\n case 'flow-seq-start':\n return {\n type: 'flow-collection',\n offset: this.offset,\n indent: this.indent,\n start: this.sourceToken,\n items: [],\n end: []\n };\n case 'seq-item-ind':\n return {\n type: 'block-seq',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken] }]\n };\n case 'explicit-key-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n start.push(this.sourceToken);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, explicitKey: true }]\n };\n }\n case 'map-value-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n };\n }\n }\n return null;\n }\n atIndentedComment(start, indent) {\n if (this.type !== 'comment')\n return false;\n if (this.indent <= indent)\n return false;\n return start.every(st => st.type === 'newline' || st.type === 'space');\n }\n *documentEnd(docEnd) {\n if (this.type !== 'doc-mode') {\n if (docEnd.end)\n docEnd.end.push(this.sourceToken);\n else\n docEnd.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n *lineEnd(token) {\n switch (this.type) {\n case 'comma':\n case 'doc-start':\n case 'doc-end':\n case 'flow-seq-end':\n case 'flow-map-end':\n case 'map-value-ind':\n yield* this.pop();\n yield* this.step();\n break;\n case 'newline':\n this.onKeyLine = false;\n // fallthrough\n case 'space':\n case 'comment':\n default:\n // all other values are errors\n if (token.end)\n token.end.push(this.sourceToken);\n else\n token.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n}\n\nexport { Parser };\n","import { Composer } from './compose/composer.js';\nimport { Document } from './doc/Document.js';\nimport { prettifyError, YAMLParseError } from './errors.js';\nimport { warn } from './log.js';\nimport { isDocument } from './nodes/identity.js';\nimport { LineCounter } from './parse/line-counter.js';\nimport { Parser } from './parse/parser.js';\n\nfunction parseOptions(options) {\n const prettyErrors = options.prettyErrors !== false;\n const lineCounter = options.lineCounter || (prettyErrors && new LineCounter()) || null;\n return { lineCounter, prettyErrors };\n}\n/**\n * Parse the input as a stream of YAML documents.\n *\n * Documents should be separated from each other by `...` or `---` marker lines.\n *\n * @returns If an empty `docs` array is returned, it will be of type\n * EmptyStream and contain additional stream information. In\n * TypeScript, you should use `'empty' in docs` as a type guard for it.\n */\nfunction parseAllDocuments(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n const docs = Array.from(composer.compose(parser.parse(source)));\n if (prettyErrors && lineCounter)\n for (const doc of docs) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n if (docs.length > 0)\n return docs;\n return Object.assign([], { empty: true }, composer.streamInfo());\n}\n/** Parse an input string into a single YAML.Document */\nfunction parseDocument(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n // `doc` is always set by compose.end(true) at the very latest\n let doc = null;\n for (const _doc of composer.compose(parser.parse(source), true, source.length)) {\n if (!doc)\n doc = _doc;\n else if (doc.options.logLevel !== 'silent') {\n doc.errors.push(new YAMLParseError(_doc.range.slice(0, 2), 'MULTIPLE_DOCS', 'Source contains multiple documents; please use YAML.parseAllDocuments()'));\n break;\n }\n }\n if (prettyErrors && lineCounter) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n return doc;\n}\nfunction parse(src, reviver, options) {\n let _reviver = undefined;\n if (typeof reviver === 'function') {\n _reviver = reviver;\n }\n else if (options === undefined && reviver && typeof reviver === 'object') {\n options = reviver;\n }\n const doc = parseDocument(src, options);\n if (!doc)\n return null;\n doc.warnings.forEach(warning => warn(doc.options.logLevel, warning));\n if (doc.errors.length > 0) {\n if (doc.options.logLevel !== 'silent')\n throw doc.errors[0];\n else\n doc.errors = [];\n }\n return doc.toJS(Object.assign({ reviver: _reviver }, options));\n}\nfunction stringify(value, replacer, options) {\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n }\n if (typeof options === 'string')\n options = options.length;\n if (typeof options === 'number') {\n const indent = Math.round(options);\n options = indent < 1 ? undefined : indent > 8 ? { indent: 8 } : { indent };\n }\n if (value === undefined) {\n const { keepUndefined } = options ?? replacer ?? {};\n if (!keepUndefined)\n return undefined;\n }\n if (isDocument(value) && !_replacer)\n return value.toString(options);\n return new Document(value, _replacer, options).toString(options);\n}\n\nexport { parse, parseAllDocuments, parseDocument, stringify };\n","import React, { useCallback, useEffect, useRef, useState, useMemo } from 'react';\nimport Editor from 'react-simple-code-editor';\nimport { Highlight, themes, Prism } from 'prism-react-renderer';\nimport { parse as yamlParse, parseDocument, visit, LineCounter } from 'yaml';\nimport type { Scalar } from 'yaml';\n\n// Add YAML language support to Prism\n// Define YAML grammar directly to avoid global Prism dependency issues\nif (!Prism.languages.yaml) {\n Prism.languages.yaml = {\n scalar: {\n pattern:\n /([\\-:]\\s*(?:![^\\s]+)?[ \\t]*[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/,\n lookbehind: true,\n alias: 'string',\n },\n comment: /#.*/,\n key: {\n pattern:\n /(\\s*(?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:![^\\s]+)?[ \\t]*)[^\\r\\n{[\\]},#\\s]+?(?=\\s*:\\s)/,\n lookbehind: true,\n alias: 'atrule',\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'tag',\n },\n datetime: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?)(?=[ \\t]*(?:$|,|\\]|\\}))/m,\n lookbehind: true,\n alias: 'number',\n },\n boolean: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:false|true)(?=[ \\t]*(?:$|,|\\]|\\}|[\\r\\n]))/im,\n lookbehind: true,\n alias: 'boolean',\n },\n null: {\n pattern: /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:null|~)(?=[ \\t]*(?:$|,|\\]|\\}|[\\r\\n]))/im,\n lookbehind: true,\n alias: 'constant',\n },\n string: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(\"|')(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/m,\n lookbehind: true,\n greedy: true,\n },\n number: {\n pattern:\n /([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)(?=[ \\t]*(?:$|,|\\]|\\}|[\\r\\n]))/im,\n lookbehind: true,\n },\n tag: /![^\\s]+/,\n anchor: /[&*][\\w]+/,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./,\n };\n}\n\ninterface YamlTextAreaProps {\n value: string;\n onChange: (value: string) => void;\n onValidationChange?: (isValid: boolean, error?: string) => void;\n readOnly?: boolean;\n minHeight?: number;\n maxHeight?: number;\n debounceMs?: number;\n className?: string;\n style?: React.CSSProperties;\n /** Language for syntax highlighting and validation. Default: 'yaml'. */\n language?: 'yaml' | 'json';\n /**\n * Whether null values are considered valid. When false, any null value —\n * explicit (`null`, `~`) or implicit (an empty mapping/list value such as\n * `name:` with nothing after the colon) — is reported as a validation error.\n * Default: true.\n */\n allowNull?: boolean;\n}\n\ninterface YamlError {\n line: number;\n message: string;\n}\n\n/** Find all lines that contain a null value using the YAML CST for precise line numbers. */\nfunction findNullLines(text: string): number[] {\n const lineCounter = new LineCounter();\n const doc = parseDocument(text, { lineCounter });\n const lines: number[] = [];\n visit(doc, {\n Scalar(_key, node: Scalar) {\n if (node.value === null && node.range) {\n lines.push(lineCounter.linePos(node.range[0]).line);\n }\n },\n });\n return lines;\n}\n\n/** Find the first line containing a JSON null keyword. */\nfunction findJsonNullLine(text: string): number {\n const lines = text.split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (/\\bnull\\b/.test(lines[i])) return i + 1;\n }\n return 0;\n}\n\nfunction YamlTextArea({\n value,\n onChange,\n onValidationChange,\n readOnly = false,\n minHeight = 100,\n maxHeight,\n debounceMs = 500,\n className = '',\n style = {},\n language = 'yaml',\n allowNull = true,\n}: YamlTextAreaProps) {\n const [error, setError] = useState<YamlError | null>(null);\n const validationTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const onValidationChangeRef = useRef(onValidationChange);\n const isUserInputRef = useRef(false);\n\n // Keep callback ref up to date\n onValidationChangeRef.current = onValidationChange;\n\n // Validate content and extract error line based on language\n const validateYaml = useCallback((text: string): YamlError | null => {\n if (!text.trim()) return null;\n if (language === 'json') {\n try {\n JSON.parse(text);\n if (!allowNull) {\n const nullLine = findJsonNullLine(text);\n if (nullLine > 0) {\n return { line: nullLine, message: 'Null values are not allowed' };\n }\n }\n return null;\n } catch (e: any) {\n const message: string = e?.message || 'Invalid JSON';\n const posMatch = /position\\s+(\\d+)/i.exec(message);\n let line = 1;\n if (posMatch) {\n const pos = Math.min(parseInt(posMatch[1], 10), text.length);\n line = 1;\n for (let index = 0; index < pos; index++) {\n if (text.charCodeAt(index) === 10) line++;\n }\n } else {\n const lineMatch = /line\\s+(\\d+)/i.exec(message);\n if (lineMatch) line = parseInt(lineMatch[1], 10) || 1;\n }\n return { line, message };\n }\n }\n try {\n yamlParse(text);\n if (!allowNull) {\n const nullLines = findNullLines(text);\n if (nullLines.length > 0) {\n return { line: nullLines[0], message: 'Null values are not allowed' };\n }\n }\n return null;\n } catch (e: any) {\n return {\n line: e?.linePos?.[0]?.line ?? 1,\n message: e.message || 'Invalid YAML',\n };\n }\n }, [language, allowNull]);\n\n // Set error state and notify parent\n const setValidationState = useCallback((err: YamlError | null) => {\n setError(err);\n onValidationChangeRef.current?.(!err, err?.message);\n }, []);\n\n // Handle input change\n const handleChange = useCallback(\n (newValue: string) => {\n if (readOnly) return;\n\n isUserInputRef.current = true;\n\n // Clear existing timeout and start new debounced validation\n if (validationTimeoutRef.current) {\n clearTimeout(validationTimeoutRef.current);\n }\n validationTimeoutRef.current = setTimeout(() => {\n setValidationState(validateYaml(newValue));\n validationTimeoutRef.current = null;\n }, debounceMs);\n\n onChange(newValue);\n },\n [onChange, validateYaml, setValidationState, debounceMs, readOnly]\n );\n\n // Cleanup timeout on unmount\n useEffect(() => {\n return () => {\n if (validationTimeoutRef.current) {\n clearTimeout(validationTimeoutRef.current);\n }\n };\n }, []);\n\n // Re-validate when value prop changes from parent (not user input)\n useEffect(() => {\n if (isUserInputRef.current) {\n isUserInputRef.current = false;\n return;\n }\n\n // Prop changed from parent - validate immediately\n if (validationTimeoutRef.current) {\n clearTimeout(validationTimeoutRef.current);\n validationTimeoutRef.current = null;\n }\n setValidationState(validateYaml(value));\n }, [value, validateYaml, setValidationState]);\n\n // Count lines for line numbers\n const lineCount = useMemo(() => {\n return value.split('\\n').length;\n }, [value]);\n\n // Generate line numbers\n const lineNumbers = useMemo(() => {\n return Array.from({ length: lineCount }, (_, i) => i + 1).join('\\n');\n }, [lineCount]);\n\n // Determine if we're in dark mode by checking CSS variable\n const [isDark, setIsDark] = useState(false);\n useEffect(() => {\n const checkDark = () => {\n const bg = getComputedStyle(document.documentElement).getPropertyValue('--nc-bg').trim();\n // Simple heuristic: if background is dark, we're in dark mode\n setIsDark(bg.startsWith('#0') || bg.startsWith('#1') || bg.startsWith('#2') || bg.startsWith('#3'));\n };\n checkDark();\n // Listen for theme changes\n const observer = new MutationObserver(checkDark);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme'] });\n return () => observer.disconnect();\n }, []);\n\n const theme = isDark ? themes.vsDark : themes.vsLight;\n\n const getCustomStyle = useCallback(\n (tokenTypes: string[]): React.CSSProperties => {\n const type = tokenTypes[0];\n if (type === 'boolean') {\n return { color: isDark ? '#569cd6' : '#0000ff' };\n }\n if (type === 'constant' || type === 'null') {\n return { color: isDark ? '#569cd6' : '#0000ff' };\n }\n return {};\n },\n [isDark]\n );\n\n // Re-create highlight function when theme or language changes\n const highlightWithTheme = useCallback(\n (code: string) => (\n <Highlight theme={theme} code={code} language={language}>\n {({ tokens, getLineProps, getTokenProps }) => (\n <>\n {tokens.map((line, i) => {\n const lineNumber = i + 1;\n const isErrorLine = error?.line === lineNumber;\n return (\n <div\n key={i}\n {...getLineProps({ line })}\n style={{\n background: isErrorLine ? 'color-mix(in srgb, var(--nc-danger) 15%, transparent)' : undefined,\n textDecoration: isErrorLine ? 'underline wavy var(--nc-danger)' : undefined,\n }}\n >\n {line.map((token, key) => {\n const props = getTokenProps({ token });\n const customStyle = getCustomStyle(token.types);\n return (\n <span\n key={key}\n {...props}\n style={{\n ...props.style,\n ...customStyle,\n opacity: readOnly ? 0.7 : undefined,\n }}\n />\n );\n })}\n </div>\n );\n })}\n </>\n )}\n </Highlight>\n ),\n [error, theme, getCustomStyle, language, readOnly]\n );\n\n const editorContainerRef = useRef<HTMLDivElement>(null);\n const lineNumbersRef = useRef<HTMLDivElement>(null);\n\n const handleEditorScroll = () => {\n if (editorContainerRef.current && lineNumbersRef.current) {\n lineNumbersRef.current.scrollTop = editorContainerRef.current.scrollTop;\n }\n };\n\n return (\n <div\n className={`nc-yaml-textarea ${className}`.trim()}\n style={{ display: 'flex', flexDirection: 'column', gap: 4, ...style }}\n >\n {/* CSS to prevent wrapping in editor */}\n <style>{`\n .yaml-editor-container,\n .yaml-editor-container * {\n white-space: pre !important;\n overflow-wrap: normal !important;\n word-wrap: normal !important;\n word-break: keep-all !important;\n }\n .yaml-editor-container textarea,\n .yaml-editor-container pre {\n white-space: pre !important;\n overflow-wrap: normal !important;\n word-wrap: normal !important;\n word-break: keep-all !important;\n overflow-x: visible !important;\n resize: none !important;\n }\n .yaml-editor-container.read-only textarea {\n caret-color: transparent !important;\n color: var(--nc-text-weak) !important;\n }\n `}</style>\n <div\n className={`nc-yaml-textarea-container${error ? ' error' : ''}`}\n style={{\n border: `1px solid ${error ? 'var(--nc-danger)' : 'var(--nc-border)'}`,\n background: readOnly ? 'var(--nc-bg-secondary)' : 'var(--nc-bg-tertiary)',\n minHeight,\n maxHeight,\n }}\n >\n {/* Line numbers gutter */}\n <div\n ref={lineNumbersRef}\n style={{\n padding: '10px 8px',\n paddingRight: 12,\n background: 'var(--nc-bg-tertiary)',\n borderRight: '1px solid var(--nc-border)',\n color: 'var(--nc-text-weak)',\n fontFamily: 'Consolas, Monaco, \"Courier New\", monospace',\n fontSize: 13,\n lineHeight: '1.5',\n textAlign: 'right',\n userSelect: 'none',\n whiteSpace: 'pre',\n minWidth: 40,\n overflow: 'hidden',\n }}\n >\n {lineNumbers}\n </div>\n\n {/* Editor */}\n <div\n ref={editorContainerRef}\n className={`yaml-editor-container${readOnly ? ' read-only' : ''}`}\n style={{\n flex: 1,\n overflowX: 'auto',\n overflowY: 'auto',\n color: 'var(--nc-text)',\n }}\n onScroll={handleEditorScroll}\n >\n <Editor\n value={value}\n onValueChange={handleChange}\n highlight={highlightWithTheme}\n padding={10}\n readOnly={readOnly}\n style={{\n fontFamily: 'Consolas, Monaco, \"Courier New\", monospace',\n fontSize: 13,\n lineHeight: '1.5',\n minHeight: Math.max(minHeight - 2, 0),\n background: 'transparent',\n color: 'var(--nc-text)',\n whiteSpace: 'pre',\n minWidth: 'max-content',\n }}\n textareaClassName=\"yaml-editor-textarea\"\n />\n </div>\n </div>\n\n {/* Error message */}\n {error && (\n <div\n style={{\n color: 'var(--nc-danger)',\n fontSize: 12,\n padding: '4px 8px',\n background: 'color-mix(in srgb, var(--nc-danger) 10%, transparent)',\n borderRadius: 4,\n }}\n >\n Line {error.line}: {error.message}\n </div>\n )}\n </div>\n );\n}\n\nexport { YamlTextArea };\nexport type { YamlTextAreaProps };\nexport default YamlTextArea;\n"],"names":["__assign","this","t","s","i","n","p","__createBinding","o","m","k","k2","desc","__setModuleDefault","v","__importStar","mod","result","__rest","lib","React","require$$0","KEYCODE_Y","KEYCODE_Z","KEYCODE_M","KEYCODE_PARENS","KEYCODE_BRACKETS","KEYCODE_QUOTE","KEYCODE_BACK_QUOTE","HISTORY_LIMIT","HISTORY_TIME_GAP","isWindows","isMacLike","className","cssText","Editor","props","ref","autoFocus","disabled","form","highlight","_a","ignoreTabKey","_b","insertSpaces","maxLength","minLength","name","onBlur","onClick","onFocus","onKeyDown","onKeyUp","onValueChange","_c","padding","placeholder","preClassName","readOnly","required","style","_d","tabSize","textareaClassName","textareaId","value","rest","historyRef","inputRef","_e","capture","setCapture","contentStyle","highlighted","getLines","text","position","recordChange","record","overwrite","stack","offset","count","extras","timestamp","last","re","previous","current","recordCurrentState","input","selectionStart","selectionEnd","updateInput","applyEdits","undoEdit","redoEdit","handleKeyDown","e","tabCharacter","linesBeforeCaret","startLine_1","endLine_1","nextValue","line","startLineText","startLine_2","endLine_2","updatedSelection","hasSelection","textBeforeCaret","matches","indent","chars","prev","handleChange","session","styles","c","_default","__create","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropNames","__getOwnPropSymbols","__getProtoOf","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","__spreadValues","a","b","prop","__spreadProps","__objRest","source","exclude","target","__commonJS","cb","__export","all","__copyProps","to","from","except","__toESM","isNodeMode","require_prism","exports","module","Prism2","lang","uniqueId","plainTextGrammar","_","encode","tokens","Token","deepClone","visited","clone","id","element","language","defaultActivation","no","classList","redef","lang2","inside","before","insert","root","grammar","ret","token","newToken","old","DFS","callback","type","objId","property","propertyType","env","tokenList","LinkedList","addAfter","matchGrammar","toArray","hooks2","callbacks","content","alias","matchedStr","stringify","aliases","attributes","matchPattern","pattern","pos","lookbehind","match","lookbehindLength","startNode","startPos","rematch","patterns","j","patternObj","greedy","flags","currentNode","str","removeCount","matchStr","after","reach","removeFrom","removeRange","wrapped","nestedRematch","head","tail","list","node","next","newNode","array","Prism","l","e2","e3","e4","r","n2","t2","a2","r2","n3","t3","u","d","s2","f","h","g","a3","l2","u2","themes_exports","dracula_default","duotoneDark_default","duotoneLight_default","github_default","gruvboxMaterialDark_default","gruvboxMaterialLight_default","jettwaveDark_default","jettwaveLight_default","nightOwl_default","nightOwlLight_default","oceanicNext_default","okaidia_default","oneDark_default","oneLight_default","palenight_default","shadesOfPurple_default","synthwave84_default","ultramin_default","vsDark_default","vsLight_default","theme","theme2","theme3","theme4","theme5","theme6","colors","theme7","theme8","theme9","theme10","theme11","theme12","theme13","theme14","theme15","theme16","theme17","theme18","theme19","theme20","useGetLineProps","themeDictionary","useCallback","output","clsx","useGetTokenProps","styleForToken","useCallback2","types","empty","clsx2","newlineRe","normalizeEmptyLines","appendTypes","add","typesSize","normalizeTokens","typeArrStack","tokenArrStack","tokenArrIndexStack","tokenArrSizeStack","stackIndex","currentLine","acc","splitByNewlines","newlineCount","i2","normalizeTokens_default","useTokenize","prism","code","useMemo","prismConfig","themeToDict","theme21","plain","themeDict","themeEntry","languages2","accStyle","themeToDict_default","Highlight","children","_language","getLineProps","getTokenProps","Highlight2","createElement","ALIAS","DOC","MAP","PAIR","SCALAR","SEQ","NODE_TYPE","isAlias","isDocument","isMap","isPair","isScalar","isSeq","isCollection","isNode","hasAnchor","BREAK","SKIP","REMOVE","visit","visitor","visitor_","initVisitor","visit_","path","ctrl","callVisitor","replaceNode","ci","ck","cv","parent","pt","escapeChars","escapeTagName","tn","ch","Directives","yaml","tags","copy","res","onError","parts","handle","prefix","version","isValid","verbatim","suffix","error","tag","doc","lines","tagEntries","tagNames","_key","anchorIsValid","anchor","msg","anchorNames","anchors","findNewAnchor","createNodeAnchors","aliasObjects","sourceObjects","prevAnchors","applyReviver","reviver","val","len","v0","v1","toJS","arg","ctx","data","NodeBase","mapAsMap","maxAliasCount","onAnchor","Alias","nodes","found","_arg","getAliasCount","_onComment","_onChompKeep","src","item","kc","vc","isScalarValue","Scalar","defaultTagPrefix","findTagObject","tagName","tagObj","createNode","map","aliasDuplicateObjects","onTagObj","schema","collectionFromPath","isEmptyPath","Collection","it","keepScalar","allowScalar","stringifyComment","indentComment","comment","lineComment","FOLD_FLOW","FOLD_BLOCK","FOLD_QUOTED","foldFlowLines","mode","indentAtStart","lineWidth","minContentWidth","onFold","onOverflow","endStep","folds","escapedFolds","end","split","overflow","escStart","escEnd","consumeMoreIndentedLines","fold","start","getFoldOptions","isBlock","containsDocumentMarker","lineLengthOverLimit","indentLength","limit","strLen","doubleQuotedString","json","implicitKey","minMultiLineLength","singleQuotedString","quotedString","singleQuote","qs","hasDouble","hasSingle","blockEndNewlines","blockString","onComment","onChompKeep","blockQuote","commentString","literal","chomp","endStart","endNlPos","startWithSpace","startEnd","startNlPos","header","foldedValue","literalFallback","foldOptions","body","plainString","actualString","indentStep","inFlow","test","compat","stringifyString","ss","_stringify","_type","defaultKeyType","defaultStringType","createStringifyContext","options","opt","getTagObject","testMatch","stringifyProps","stringifyPair","allNullValues","indentSeq","simpleKeys","keyComment","explicitKey","keyCommentDone","chompKeep","vsb","vcb","valueComment","valueCommentDone","valueStr","ws","cs","vs0","nl0","hasNewline","flow","hasPropsLine","sp0","warn","logLevel","warning","MERGE_KEY","merge","addMergeToJSMap","isMergeKey","resolveAliasValue","mergeValue","srcMap","addPairToJSMap","jsKey","stringKey","stringifyKey","jsValue","strCtx","strKey","jsonStr","createPair","Pair","pair","stringifyCollection","collection","stringifyFlowCollection","stringifyBlockCollection","items","blockItemPrefix","flowChars","itemIndent","itemCtx","addCommentBefore","ik","fcPadding","reqNewline","linesAtValue","iv","sum","ic","findPair","YAMLMap","keepUndefined","replacer","_pair","sortEntries","Type","YAMLSeq","idx","asItemIndex","seq","string","nullTag","boolTag","sv","stringifyNumber","format","minFractionDigits","num","floatNaN","floatExp","float","dot","intIdentify","intResolve","radix","intAsBigInt","intStringify","intOct","_onError","int","intHex","stringifyJSON","jsonScalars","jsonError","binary","buffer","buf","resolvePairs","cn","createPairs","iterable","pairs","keys","YAMLOMap","omap","seenKeys","boolStringify","trueTag","falseTag","sign","intBin","YAMLSet","keepPair","set","parseSexagesimal","asBigInt","stringifySexagesimal","_60","intTime","floatTime","year","month","day","hour","minute","second","millisec","date","tz","schemas","schema$1","schema$2","tagsByName","coreKnownTags","getTags","customTags","schemaName","addMergeTag","schemaTags","sortMapEntriesByKey","Schema","resolveKnownTags","sortMapEntries","toStringDefaults","stringifyDocument","hasDirectives","dir","contentComment","dc","Document","_replacer","assertCollection","keyToStr","asStr","anchorPrefix","setAnchors","jsonArg","contents","YAMLError","message","YAMLParseError","YAMLWarning","prettifyError","lc","col","lineStr","trimStart","pointer","resolveProps","indicator","parentIndent","startOnNewline","spaceBefore","atNewline","hasSpace","commentSep","reqSpace","tab","newlineAfterProp","comma","containsNewline","st","flowIndentCheck","fc","mapIncludes","search","uniqueKeys","isEqual","startColMsg","resolveBlockMap","composeNode","composeEmptyNode","bm","NodeClass","commentEnd","collItem","sep","keyProps","keyStart","keyNode","valueProps","valueNode","resolveBlockSeq","bs","resolveEnd","blockMsg","resolveFlowCollection","fcName","coll","atRoot","prevItemComment","loop","endRange","expectedEnd","ce","ee","cePos","resolveCollection","CN","Coll","composeCollection","tagToken","nl","lastProp","expType","kt","resolveBlockScalar","scalar","parseBlockScalarHeader","splitLines","chompStart","trimIndent","contentStart","prevMoreIndented","crlf","strict","length","ts","first","resolveFlowScalar","rel","plainValue","singleQuotedValue","doubleQuotedValue","valueEnd","badChar","foldLines","foldNewline","cc","escapeCodes","parseCharCode","raw","wsStart","composeScalar","range","findScalarTagByName","findScalarTagByTest","matchWithTest","atKey","directives","emptyScalarPosition","isSrcToken","composeAlias","composeDoc","opts","contentEnd","getErrorPos","parsePrelude","prelude","atComment","afterEmptyLine","Composer","afterDoc","forceDoc","endOffset","BOM","DOCUMENT","FLOW_END","tokenType","isEmpty","hexDigits","tagChars","flowIndicatorChars","invalidAnchorChars","isNotAnchorChar","Lexer","incomplete","dt","state","dirEnd","sp","ch0","ch1","quote","qb","lastChar","allowEmpty","allowTabs","LineCounter","low","high","mid","includesToken","findNonEmptyIndex","isFlowToken","getPrevProps","getFirstKeyStartProps","arrayPushArray","fixFlowSeqItems","Parser","onNewLine","lexeme","top","bv","atMapIndent","atNextItem","fs","docEnd","parseOptions","prettyErrors","parseDocument","lineCounter","parser","composer","_doc","parse","_reviver","findNullLines","findJsonNullLine","YamlTextArea","onChange","onValidationChange","minHeight","maxHeight","debounceMs","allowNull","setError","useState","validationTimeoutRef","useRef","onValidationChangeRef","isUserInputRef","validateYaml","nullLine","posMatch","index","lineMatch","yamlParse","nullLines","setValidationState","err","newValue","useEffect","lineCount","lineNumbers","isDark","setIsDark","checkDark","bg","observer","themes","getCustomStyle","tokenTypes","highlightWithTheme","jsx","Fragment","lineNumber","isErrorLine","customStyle","editorContainerRef","lineNumbersRef","handleEditorScroll","jsxs"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69]}
|