@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.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.cjs","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":"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MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAU,WAAY,SAAS,EACvC,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,UAAU,EAC9B,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,kBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,QAAQ,EAC/B,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,OAAQ,MAAO,UAAU,EAC3C,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,UAAU,EAC7B,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,oBACf,CACA,CACA,CACA,EACIpB,GAAkBoB,GAGlBC,GAAS,CACX,MAAO,CACL,gBAAiB,UACjB,MAAO,SACX,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,SAAU,UAAW,QAAS,aAAa,EAC9D,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,QAAS,EACjB,CACA,EACI,CACE,MAAO,CAAC,MAAO,WAAY,QAAQ,EACnC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,UAAU,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,WAAY,WAAW,EACzC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,UACA,SACA,SACA,MACA,aACA,UACA,UACA,YACA,OACA,YACA,QACA,SACA,cACA,UACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,mBAAoB,cAC5B,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,mBAAoB,WAC5B,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAa,MAAM,EAC3B,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACIpB,GAAsBoB,GAGtBC,GAAS,CACX,MAAO,CACL,gBAAiB,UACjB,MAAO,SACX,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,SAAU,UAAW,QAAS,aAAa,EAC9D,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,QAAS,EACjB,CACA,EACI,CACE,MAAO,CAAC,MAAO,WAAY,QAAQ,EACnC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,UAAU,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,WAAY,WAAW,EACzC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,UACA,SACA,SACA,MACA,aACA,UACA,UACA,YACA,OACA,YACA,QACA,QACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,UAAU,EACjC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,mBAAoB,cAC5B,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,mBAAoB,WAC5B,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAa,MAAM,EAC3B,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACIpB,GAAuBoB,GAGvBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,SAAU,UAAW,OAAO,EAC/C,MAAO,CACL,MAAO,UACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,QAAS,EACjB,CACA,EACI,CACE,MAAO,CAAC,SAAU,YAAY,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,UAAU,EACjC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,SACA,MACA,SACA,SACA,UACA,WACA,WACA,WACA,QACA,UACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,UAAW,YAAa,UAAU,EACpD,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,UAAW,KAAK,EACpC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,mBAAmB,EAC3B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,MAAO,WAAY,SAAS,EACpC,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACIpB,GAAiBoB,GAGjBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,0BACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAW,EAC/B,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,oBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAU,KAAK,EACvB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,OAAQ,WAAY,UAAU,EACjD,MAAO,CACL,MAAO,oBACf,CACA,EACI,CAGE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,SAAS,EAC7B,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,MAAO,WAAY,SAAS,EACpC,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,oBACf,CACA,CACA,CACA,EACIhB,GAAmBgB,GAGnBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,0BACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAW,EAC/B,MAAO,CACL,MAAO,oBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAU,UAAW,OAAQ,WAAY,KAAK,EACtD,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,kBACf,CACA,EACI,CAGE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAY,SAAS,EACzC,MAAO,CACL,MAAO,oBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,MAAO,iBACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAY,UAAW,WAAW,EACtD,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,kBACf,CACA,CACA,CACA,EACIhB,GAAwBgB,GAGxBC,EAAS,CACX,KAAM,UACN,QAAS,UACT,QAAS,UACT,UAAW,UACX,OAAQ,UACR,SAAU,UACV,QAAS,UAET,IAAK,UACL,SAAU,UACV,UAAW,SAGb,EACIC,GAAS,CACX,MAAO,CACL,gBAAiB,UACjB,MAAO,SACX,EACE,OAAQ,CACN,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAOD,EAAO,OACtB,CACA,EACI,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,MAAOA,EAAO,MACtB,CACA,EACI,CACE,MAAO,CACL,UACA,gBACA,SACA,UACA,QACA,SACR,EACM,MAAO,CACL,MAAOA,EAAO,OACtB,CACA,EACI,CACE,MAAO,CACL,WACA,SACA,gBACA,WACA,SACA,SACR,EACM,MAAO,CACL,MAAOA,EAAO,SACtB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAOA,EAAO,OACtB,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAOA,EAAO,GACtB,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAOA,EAAO,MACtB,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAOA,EAAO,MACtB,CACA,EACI,CACE,MAAO,CAAC,WAAY,OAAQ,UAAW,UAAU,EACjD,MAAO,CACL,MAAOA,EAAO,IACtB,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAOA,EAAO,QACtB,CACA,EACI,CACE,MAAO,CAAC,WAAY,SAAU,MAAO,UAAU,EAC/C,MAAO,CACL,MAAOA,EAAO,QACtB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAOA,EAAO,OACtB,CACA,EACI,CACE,MAAO,CAAC,SAAU,YAAY,EAC9B,MAAO,CACL,MAAOA,EAAO,SACtB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,WAAY,KACpB,CACA,EACI,CACE,MAAO,CAAC,MAAM,EACd,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,QAAS,EACjB,CACA,CACA,CACA,EACIhB,GAAsBiB,GAGtBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,UACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,UACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAU,KAAK,EACvB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,OAAQ,WAAY,WAAY,YAAY,EAC/D,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,SAAS,EAC7B,MAAO,CACL,MAAO,UACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,MAAO,WAAY,SAAS,EACpC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,qBACP,QAAS,EACjB,CACA,EACI,CACE,MAAO,CAAC,MAAO,UAAU,EACzB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,MAAM,EACd,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACIjB,GAAkBiB,GAGlBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAU,UAAU,EAC5B,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,OAAQ,WAAY,UAAU,EACjD,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,UAAU,EACjC,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,aAAc,WAAW,EACjC,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,MAAO,SAAS,EACxB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,oBACf,CACA,CACA,CACA,EACIf,GAAoBe,GAGpBC,GAAU,CACZ,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,yBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,oBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,KAAK,EACvB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,SAAS,EAC3B,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CACL,UACA,WACA,WACA,YACA,MACA,WACA,SACR,EACM,MAAO,CACL,MAAO,kBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,OAAQ,WAAY,WAAY,YAAY,EAC/D,MAAO,CACL,MAAO,kBACf,CACA,CACA,CACA,EACIf,GAAyBe,GAGzBC,GAAU,CACZ,MAAO,CACL,gBAAiB,mDACjB,gBAAiB,UACjB,MAAO,UACP,WAAY,oDAChB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,gBAAiB,SAAU,UAAW,OAAO,EAChE,MAAO,CACL,MAAO,UACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAO,MACf,CACA,EACI,CAC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,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,UAAW,CAAC,QAAQ,EACpB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,UAAU,EACjC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,UAAW,CAAC,QAAQ,EACpB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,MAAM,EACd,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACI7B,GAAuB6B,GAGvBC,GAAU,CACZ,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,UAAW,UAAW,2BAA2B,EACpE,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,UAAU,EAC5B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,YAAa,UAAU,EAC/B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,SAAU,aAAc,sBAAsB,EACjE,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,UAAW,CAAC,QAAQ,EACpB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,UAAU,EACjC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,UAAW,CAAC,QAAQ,EACpB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,MAAM,EACd,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACI7B,GAAwB6B,GAGxBC,GAAU,CACZ,MAAO,CACL,gBAAiB,qBACjB,MAAO,qBACP,WAAY,0BAChB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,SAAU,OAAO,EACpC,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,cAAe,QAAQ,EAC1C,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CACL,YACA,aACA,mBACA,UACA,WACA,SACA,QACR,EACM,MAAO,CAAE,MAAO,mBAAmB,CACzC,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CAAE,MAAO,oBAAoB,CAC1C,EACI,CACE,MAAO,CAAC,WAAY,MAAO,SAAU,UAAW,WAAW,EAC3D,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CACL,WACA,SACA,OACA,UACA,WACA,QACA,YACR,EACM,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAY,UAAU,EAC1C,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,mBAAoB,cAC5B,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,mBAAoB,WAC5B,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAa,MAAM,EAC3B,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,oBACf,CACA,CACA,CACA,EACIzB,GAAkByB,GAGlBC,GAAU,CACZ,MAAO,CACL,gBAAiB,oBACjB,MAAO,mBACX,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,SAAU,OAAO,EACpC,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,cAAe,QAAQ,EAC1C,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CACL,YACA,aACA,UACA,WACA,SACA,QACR,EACM,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,MAAO,SAAU,UAAW,WAAW,EAC3D,MAAO,CACL,MAAO,kBACf,CACA,EACI,CACE,MAAO,CACL,WACA,SACA,OACA,UACA,WACA,QACA,aACA,aACR,EACM,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAY,UAAU,EAC1C,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,mBAAoB,cAC5B,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,mBAAoB,WAC5B,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAa,MAAM,EAC3B,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,mBACf,CACA,CACA,CACA,EACIzB,GAAmByB,GAGnBC,GAAU,CACZ,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CACL,UACA,aACA,mBACA,WACA,UACA,UACA,UACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,iBAAiB,EACzB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,YAAa,OAAQ,MAAO,OAAO,EAC3C,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,aAAc,QAAQ,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,SAAU,QAAS,WAAY,UAAU,EAC5D,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,YACA,UACA,UACA,WACA,YACA,SACA,WACA,WACA,SACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,SAAU,QAAQ,EACpC,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACInC,GAA8BmC,GAG9BC,GAAU,CACZ,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CACL,YACA,UACA,UACA,WACA,YACA,SACA,WACA,WACA,SACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,UACA,aACA,mBACA,WACA,UACA,SACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,YAAY,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,iBAAiB,EACzB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,YAAa,OAAQ,KAAK,EAC9C,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,SAAU,QAAS,WAAY,UAAU,EAC5D,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,SAAU,QAAQ,EACpC,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACInC,GAA+BmC,GAQ/BC,GAAmBC,GAAoBC,EAAAA,YACxCjQ,GAAO,CACN,IAAIE,EAAKF,EAAI,CAAE,UAAAT,EAAW,MAAA4B,EAAO,KAAA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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"yaml.cjs","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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AAO,CAAC,WAAY,UAAU,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,WAAY,WAAW,EACzC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,UACA,SACA,SACA,MACA,aACA,UACA,UACA,YACA,OACA,YACA,QACA,SACA,cACA,UACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,mBAAoB,cAC5B,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,mBAAoB,WAC5B,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAa,MAAM,EAC3B,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACIpB,GAAsBoB,GAGtBC,GAAS,CACX,MAAO,CACL,gBAAiB,UACjB,MAAO,SACX,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,SAAU,UAAW,QAAS,aAAa,EAC9D,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,QAAS,EACjB,CACA,EACI,CACE,MAAO,CAAC,MAAO,WAAY,QAAQ,EACnC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,UAAU,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,WAAY,WAAW,EACzC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,UACA,SACA,SACA,MACA,aACA,UACA,UACA,YACA,OACA,YACA,QACA,QACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,UAAU,EACjC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,mBAAoB,cAC5B,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,mBAAoB,WAC5B,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAa,MAAM,EAC3B,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACIpB,GAAuBoB,GAGvBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,SAAU,UAAW,OAAO,EAC/C,MAAO,CACL,MAAO,UACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,QAAS,EACjB,CACA,EACI,CACE,MAAO,CAAC,SAAU,YAAY,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,UAAU,EACjC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,SACA,MACA,SACA,SACA,UACA,WACA,WACA,WACA,QACA,UACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,UAAW,YAAa,UAAU,EACpD,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,UAAW,KAAK,EACpC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,mBAAmB,EAC3B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,MAAO,WAAY,SAAS,EACpC,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACIpB,GAAiBoB,GAGjBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,0BACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAW,EAC/B,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,oBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAU,KAAK,EACvB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,OAAQ,WAAY,UAAU,EACjD,MAAO,CACL,MAAO,oBACf,CACA,EACI,CAGE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,SAAS,EAC7B,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,MAAO,WAAY,SAAS,EACpC,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,oBACf,CACA,CACA,CACA,EACIhB,GAAmBgB,GAGnBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,0BACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAW,EAC/B,MAAO,CACL,MAAO,oBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAU,UAAW,OAAQ,WAAY,KAAK,EACtD,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,kBACf,CACA,EACI,CAGE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAY,SAAS,EACzC,MAAO,CACL,MAAO,oBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,MAAO,iBACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAY,UAAW,WAAW,EACtD,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,kBACf,CACA,CACA,CACA,EACIhB,GAAwBgB,GAGxBC,GAAS,CACX,KAAM,UACN,QAAS,UACT,QAAS,UACT,UAAW,UACX,OAAQ,UACR,SAAU,UACV,QAAS,UAET,IAAK,UACL,SAAU,UACV,UAAW,SAGb,EACIC,GAAS,CACX,MAAO,CACL,gBAAiB,UACjB,MAAO,SACX,EACE,OAAQ,CACN,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAOD,GAAO,OACtB,CACA,EACI,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,MAAOA,GAAO,MACtB,CACA,EACI,CACE,MAAO,CACL,UACA,gBACA,SACA,UACA,QACA,SACR,EACM,MAAO,CACL,MAAOA,GAAO,OACtB,CACA,EACI,CACE,MAAO,CACL,WACA,SACA,gBACA,WACA,SACA,SACR,EACM,MAAO,CACL,MAAOA,GAAO,SACtB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAOA,GAAO,OACtB,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAOA,GAAO,GACtB,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAOA,GAAO,MACtB,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAOA,GAAO,MACtB,CACA,EACI,CACE,MAAO,CAAC,WAAY,OAAQ,UAAW,UAAU,EACjD,MAAO,CACL,MAAOA,GAAO,IACtB,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAOA,GAAO,QACtB,CACA,EACI,CACE,MAAO,CAAC,WAAY,SAAU,MAAO,UAAU,EAC/C,MAAO,CACL,MAAOA,GAAO,QACtB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAOA,GAAO,OACtB,CACA,EACI,CACE,MAAO,CAAC,SAAU,YAAY,EAC9B,MAAO,CACL,MAAOA,GAAO,SACtB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,WAAY,KACpB,CACA,EACI,CACE,MAAO,CAAC,MAAM,EACd,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,QAAS,EACjB,CACA,CACA,CACA,EACIhB,GAAsBiB,GAGtBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,UACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,UACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAU,KAAK,EACvB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,OAAQ,WAAY,WAAY,YAAY,EAC/D,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,SAAS,EAC7B,MAAO,CACL,MAAO,UACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,MAAO,WAAY,SAAS,EACpC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,qBACP,QAAS,EACjB,CACA,EACI,CACE,MAAO,CAAC,MAAO,UAAU,EACzB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,MAAM,EACd,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACIjB,GAAkBiB,GAGlBC,GAAS,CACX,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAU,UAAU,EAC5B,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,OAAQ,WAAY,UAAU,EACjD,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,UAAU,EACjC,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,aAAc,WAAW,EACjC,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,MAAO,SAAS,EACxB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,qBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,oBACf,CACA,CACA,CACA,EACIf,GAAoBe,GAGpBC,GAAU,CACZ,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,yBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,oBACP,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,KAAK,EACvB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,SAAS,EAC3B,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CACL,UACA,WACA,WACA,YACA,MACA,WACA,SACR,EACM,MAAO,CACL,MAAO,kBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,OAAQ,W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CL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,SAAU,aAAc,sBAAsB,EACjE,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,UAAW,CAAC,QAAQ,EACpB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,cAAe,UAAU,EACjC,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,aAAa,EACrB,UAAW,CAAC,QAAQ,EACpB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,YAAY,EACpB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,MAAM,EACd,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACI7B,GAAwB6B,GAGxBC,GAAU,CACZ,MAAO,CACL,gBAAiB,qBACjB,MAAO,qBACP,WAAY,0BAChB,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,SAAU,OAAO,EACpC,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,cAAe,QAAQ,EAC1C,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CACL,YACA,aACA,mBACA,UACA,WACA,SACA,QACR,EACM,MAAO,CAAE,MAAO,mBAAmB,CACzC,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CAAE,MAAO,oBAAoB,CAC1C,EACI,CACE,MAAO,CAAC,WAAY,MAAO,SAAU,UAAW,WAAW,EAC3D,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CACL,WACA,SACA,OACA,UACA,WACA,QACA,YACR,EACM,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAY,UAAU,EAC1C,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,mBAAoB,cAC5B,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,mBAAoB,WAC5B,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAa,MAAM,EAC3B,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,oBACf,CACA,CACA,CACA,EACIzB,GAAkByB,GAGlBC,GAAU,CACZ,MAAO,CACL,gBAAiB,oBACjB,MAAO,mBACX,EACE,OAAQ,CACN,CACE,MAAO,CAAC,UAAW,SAAU,OAAO,EACpC,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,cAAe,QAAQ,EAC1C,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CACL,YACA,aACA,UACA,WACA,SACA,QACR,EACM,MAAO,CACL,MAAO,mBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,MAAO,SAAU,UAAW,WAAW,EAC3D,MAAO,CACL,MAAO,kBACf,CACA,EACI,CACE,MAAO,CACL,WACA,SACA,OACA,UACA,WACA,QACA,aACA,aACR,EACM,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,WAAY,UAAU,EAC1C,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,oBACf,CACA,EACI,CACE,MAAO,CAAC,SAAS,EACjB,MAAO,CACL,mBAAoB,cAC5B,CACA,EACI,CACE,MAAO,CAAC,UAAU,EAClB,MAAO,CACL,mBAAoB,WAC5B,CACA,EACI,CACE,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,UAAW,QACnB,CACA,EACI,CACE,MAAO,CAAC,YAAa,MAAM,EAC3B,MAAO,CACL,WAAY,MACpB,CACA,EACI,CACE,MAAO,CAAC,WAAW,EACnB,MAAO,CACL,MAAO,mBACf,CACA,CACA,CACA,EACIzB,GAAmByB,GAGnBC,GAAU,CACZ,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CACL,UACA,aACA,mBACA,WACA,UACA,UACA,UACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,iBAAiB,EACzB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,KAAK,EACb,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,YAAa,OAAQ,MAAO,OAAO,EAC3C,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,aAAc,QAAQ,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,UAAW,SAAU,QAAS,WAAY,UAAU,EAC5D,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,YACA,UACA,UACA,WACA,YACA,SACA,WACA,WACA,SACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,SAAU,QAAQ,EACpC,MAAO,CACL,MAAO,SACf,CACA,CACA,CACA,EACInC,GAA8BmC,GAG9BC,GAAU,CACZ,MAAO,CACL,MAAO,UACP,gBAAiB,SACrB,EACE,OAAQ,CACN,CACE,MAAO,CACL,YACA,UACA,UACA,WACA,YACA,SACA,WACA,WACA,SACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CACL,UACA,aACA,mBACA,WACA,UACA,SACR,EACM,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,SAAU,YAAY,EAC9B,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,iBAAiB,EACzB,MAAO,CACL,MAAO,SACf,CACA,EACI,CACE,MAAO,CAAC,WAAY,YAAa,OAAQ,KAAK,EAC9C,MAAO,CACL,MAAO,SACf,CACA,EACI,CAC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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]}
|