55 lines
69 KiB
JavaScript
55 lines
69 KiB
JavaScript
"use strict";
|
|
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
exports.id = "vendor-chunks/peberminta";
|
|
exports.ids = ["vendor-chunks/peberminta"];
|
|
exports.modules = {
|
|
|
|
/***/ "(action-browser)/./node_modules/peberminta/lib/core.cjs":
|
|
/*!**********************************************!*\
|
|
!*** ./node_modules/peberminta/lib/core.cjs ***!
|
|
\**********************************************/
|
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
|
|
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\nvar util = __webpack_require__(/*! ./util.cjs */ \"(action-browser)/./node_modules/peberminta/lib/util.cjs\");\n\nfunction emit(value) {\n return (data, i) => ({\n matched: true,\n position: i,\n value: value\n });\n}\nfunction make(\nf) {\n return (data, i) => ({\n matched: true,\n position: i,\n value: f(data, i)\n });\n}\nfunction action(\nf) {\n return (data, i) => {\n f(data, i);\n return {\n matched: true,\n position: i,\n value: null\n };\n };\n}\nfunction fail(\ndata, i) {\n return { matched: false };\n}\nfunction error(message) {\n return (data, i) => {\n throw new Error((message instanceof Function) ? message(data, i) : message);\n };\n}\nfunction token(\nonToken,\nonEnd) {\n return (data, i) => {\n let position = i;\n let value = undefined;\n if (i < data.tokens.length) {\n value = onToken(data.tokens[i], data, i);\n if (value !== undefined) {\n position++;\n }\n }\n else {\n onEnd?.(data, i);\n }\n return (value === undefined)\n ? { matched: false }\n : {\n matched: true,\n position: position,\n value: value\n };\n };\n}\nfunction any(data, i) {\n return (i < data.tokens.length)\n ? {\n matched: true,\n position: i + 1,\n value: data.tokens[i]\n }\n : { matched: false };\n}\nfunction satisfy(\ntest) {\n return (data, i) => (i < data.tokens.length && test(data.tokens[i], data, i))\n ? {\n matched: true,\n position: i + 1,\n value: data.tokens[i]\n }\n : { matched: false };\n}\nfunction mapInner(r, f) {\n return (r.matched) ? ({\n matched: true,\n position: r.position,\n value: f(r.value, r.position)\n }) : r;\n}\nfunction mapOuter(r, f) {\n return (r.matched) ? f(r) : r;\n}\nfunction map(p, mapper) {\n return (data, i) => mapInner(p(data, i), (v, j) => mapper(v, data, i, j));\n}\nfunction map1(p,\nmapper) {\n return (data, i) => mapOuter(p(data, i), (m) => mapper(m, data, i));\n}\nfunction peek(p, f) {\n return (data, i) => {\n const r = p(data, i);\n f(r, data, i);\n return r;\n };\n}\nfunction option(p, def) {\n return (data, i) => {\n const r = p(data, i);\n return (r.matched)\n ? r\n : {\n matched: true,\n position: i,\n value: def\n };\n };\n}\nfunction not(p) {\n return (data, i) => {\n const r = p(data, i);\n return (r.matched)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n };\n}\nfunction choice(...ps) {\n return (data, i) => {\n for (const p of ps) {\n const result = p(data, i);\n if (result.matched) {\n return result;\n }\n }\n return { matched: false };\n };\n}\nfunction otherwise(pa, pb) {\n return (data, i) => {\n const r1 = pa(data, i);\n return (r1.matched)\n ? r1\n : pb(data, i);\n };\n}\nfunction longest(...ps) {\n return (data, i) => {\n let match = undefined;\n for (const p of ps) {\n const result = p(data, i);\n if (result.matched && (!match || match.position < result.position)) {\n match = result;\n }\n }\n return match || { matched: false };\n };\n}\nfunction takeWhile(p,\ntest) {\n return (data, i) => {\n const values = [];\n let success = true;\n do {\n const r = p(data, i);\n if (r.matched && test(r.value, values.length + 1, data, i, r.position)) {\n values.push(r.value);\n i = r.position;\n }\n else {\n success = false;\n }\n } while (success);\n return {\n matched: true,\n position: i,\n value: values\n };\n };\n}\nfunction takeUntil(p,\ntest) {\n return takeWhile(p, (value, n, data, i, j) => !test(value, n, data, i, j));\n}\nfunction takeWhileP(pValue, pTest) {\n return takeWhile(pValue, (value, n, data, i) => pTest(data, i).matched);\n}\nfunction takeUntilP(pValue, pTest) {\n return takeWhile(pValue, (value, n, data, i) => !pTest(data, i).matched);\n}\nfunction many(p) {\n return takeWhile(p, () => true);\n}\nfunction many1(p) {\n return ab(p, many(p), (head, tail) => [head, ...tail]);\n}\nfunction ab(pa, pb, join) {\n return (data, i) => mapOuter(pa(data, i), (ma) => mapInner(pb(data, ma.position), (vb, j) => join(ma.value, vb, data, i, j)));\n}\nfunction left(pa, pb) {\n return ab(pa, pb, (va) => va);\n}\nfunction right(pa, pb) {\n return ab(pa, pb, (va, vb) => vb);\n}\nfunction abc(pa, pb, pc, join) {\n return (data, i) => mapOuter(pa(data, i), (ma) => mapOuter(pb(data, ma.position), (mb) => mapInner(pc(data, mb.position), (vc, j) => join(ma.value, mb.value, vc, data, i, j))));\n}\nfunction middle(pa, pb, pc) {\n return abc(pa, pb, pc, (ra, rb) => rb);\n}\nfunction all(...ps) {\n return (data, i) => {\n const result = [];\n let position = i;\n for (const p of ps) {\n const r1 = p(data, position);\n if (r1.matched) {\n result.push(r1.value);\n position = r1.position;\n }\n else {\n return { matched: false };\n }\n }\n return {\n matched: true,\n position: position,\n value: result\n };\n };\n}\nfunction skip(...ps) {\n return map(all(...ps), () => null);\n}\nfunction flatten(...ps) {\n return flatten1(all(...ps));\n}\nfunction flatten1(p) {\n return map(p, (vs) => vs.flatMap((v) => v));\n}\nfunction sepBy1(pValue, pSep) {\n return ab(pValue, many(right(pSep, pValue)), (head, tail) => [head, ...tail]);\n}\nfunction sepBy(pValue, pSep) {\n return otherwise(sepBy1(pValue, pSep), emit([]));\n}\nfunction chainReduce(acc,\nf) {\n return (data, i) => {\n let loop = true;\n let acc1 = acc;\n let pos = i;\n do {\n const r = f(acc1, data, pos)(data, pos);\n if (r.matched) {\n acc1 = r.value;\n pos = r.position;\n }\n else {\n loop = false;\n }\n } while (loop);\n return {\n matched: true,\n position: pos,\n value: acc1\n };\n };\n}\nfunction reduceLeft(acc, p,\nreducer) {\n return chainReduce(acc, (acc) => map(p, (v, data, i, j) => reducer(acc, v, data, i, j)));\n}\nfunction reduceRight(p, acc,\nreducer) {\n return map(many(p), (vs, data, i, j) => vs.reduceRight((acc, v) => reducer(v, acc, data, i, j), acc));\n}\nfunction leftAssoc1(pLeft, pOper) {\n return chain(pLeft, (v0) => reduceLeft(v0, pOper, (acc, f) => f(acc)));\n}\nfunction rightAssoc1(pOper, pRight) {\n return ab(reduceRight(pOper, (y) => y, (f, acc) => (y) => f(acc(y))), pRight, (f, v) => f(v));\n}\nfunction leftAssoc2(pLeft, pOper, pRight) {\n return chain(pLeft, (v0) => reduceLeft(v0, ab(pOper, pRight, (f, y) => [f, y]), (acc, [f, y]) => f(acc, y)));\n}\nfunction rightAssoc2(pLeft, pOper, pRight) {\n return ab(reduceRight(ab(pLeft, pOper, (x, f) => [x, f]), (y) => y, ([x, f], acc) => (y) => f(x, acc(y))), pRight, (f, v) => f(v));\n}\nfunction condition(cond, pTrue, pFalse) {\n return (data, i) => (cond(data, i))\n ? pTrue(data, i)\n : pFalse(data, i);\n}\nfunction decide(p) {\n return (data, i) => mapOuter(p(data, i), (m1) => m1.value(data, m1.position));\n}\nfunction chain(p,\nf) {\n return (data, i) => mapOuter(p(data, i), (m1) => f(m1.value, data, i, m1.position)(data, m1.position));\n}\nfunction ahead(p) {\n return (data, i) => mapOuter(p(data, i), (m1) => ({\n matched: true,\n position: i,\n value: m1.value\n }));\n}\nfunction recursive(f) {\n return function (data, i) {\n return f()(data, i);\n };\n}\nfunction start(data, i) {\n return (i !== 0)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n}\nfunction end(data, i) {\n return (i < data.tokens.length)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n}\nfunction remainingTokensNumber(data, i) {\n return data.tokens.length - i;\n}\nfunction parserPosition(data, i, formatToken, contextTokens = 3) {\n const len = data.tokens.length;\n const lowIndex = util.clamp(0, i - contextTokens, len - contextTokens);\n const highIndex = util.clamp(contextTokens, i + 1 + contextTokens, len);\n const tokensSlice = data.tokens.slice(lowIndex, highIndex);\n const lines = [];\n const indexWidth = String(highIndex - 1).length + 1;\n if (i < 0) {\n lines.push(`${String(i).padStart(indexWidth)} >>`);\n }\n if (0 < lowIndex) {\n lines.push('...'.padStart(indexWidth + 6));\n }\n for (let j = 0; j < tokensSlice.length; j++) {\n const index = lowIndex + j;\n lines.push(`${String(index).padStart(indexWidth)} ${(index === i ? '>' : ' ')} ${util.escapeWhitespace(formatToken(tokensSlice[j]))}`);\n }\n if (highIndex < len) {\n lines.push('...'.padStart(indexWidth + 6));\n }\n if (len <= i) {\n lines.push(`${String(i).padStart(indexWidth)} >>`);\n }\n return lines.join('\\n');\n}\nfunction parse(parser, tokens, options, formatToken = JSON.stringify) {\n const data = { tokens: tokens, options: options };\n const result = parser(data, 0);\n if (!result.matched) {\n throw new Error('No match');\n }\n if (result.position < data.tokens.length) {\n throw new Error(`Partial match. Parsing stopped at:\\n${parserPosition(data, result.position, formatToken)}`);\n }\n return result.value;\n}\nfunction tryParse(parser, tokens, options) {\n const result = parser({ tokens: tokens, options: options }, 0);\n return (result.matched)\n ? result.value\n : undefined;\n}\nfunction match(matcher, tokens, options) {\n const result = matcher({ tokens: tokens, options: options }, 0);\n return result.value;\n}\n\nexports.ab = ab;\nexports.abc = abc;\nexports.action = action;\nexports.ahead = ahead;\nexports.all = all;\nexports.and = all;\nexports.any = any;\nexports.chain = chain;\nexports.chainReduce = chainReduce;\nexports.choice = choice;\nexports.condition = condition;\nexports.decide = decide;\nexports.discard = skip;\nexports.eitherOr = otherwise;\nexports.emit = emit;\nexports.end = end;\nexports.eof = end;\nexports.error = error;\nexports.fail = fail;\nexports.flatten = flatten;\nexports.flatten1 = flatten1;\nexports.left = left;\nexports.leftAssoc1 = leftAssoc1;\nexports.leftAssoc2 = leftAssoc2;\nexports.longest = longest;\nexports.lookAhead = ahead;\nexports.make = make;\nexports.many = many;\nexports.many1 = many1;\nexports.map = map;\nexports.map1 = map1;\nexports.match = match;\nexports.middle = middle;\nexports.not = not;\nexports.of = emit;\nexports.option = option;\nexports.or = choice;\nexports.otherwise = otherwise;\nexports.parse = parse;\nexports.parserPosition = parserPosition;\nexports.peek = peek;\nexports.recursive = recursive;\nexports.reduceLeft = reduceLeft;\nexports.reduceRight = reduceRight;\nexports.remainingTokensNumber = remainingTokensNumber;\nexports.right = right;\nexports.rightAssoc1 = rightAssoc1;\nexports.rightAssoc2 = rightAssoc2;\nexports.satisfy = satisfy;\nexports.sepBy = sepBy;\nexports.sepBy1 = sepBy1;\nexports.skip = skip;\nexports.some = many1;\nexports.start = start;\nexports.takeUntil = takeUntil;\nexports.takeUntilP = takeUntilP;\nexports.takeWhile = takeWhile;\nexports.takeWhileP = takeWhileP;\nexports.token = token;\nexports.tryParse = tryParse;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9wZWJlcm1pbnRhL2xpYi9jb3JlLmNqcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7O0FBRTdELFdBQVcsbUJBQU8sQ0FBQywyRUFBWTs7QUFFL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsZ0NBQWdDO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHdCQUF3QjtBQUM1QztBQUNBLHNCQUFzQixvQ0FBb0MsRUFBRSwyQkFBMkIsRUFBRSxtREFBbUQ7QUFDNUk7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixnQ0FBZ0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCxtREFBbUQ7QUFDbEg7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsa0NBQWtDO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsa0NBQWtDO0FBQy9EO0FBQ0E7O0FBRUEsVUFBVTtBQUNWLFdBQVc7QUFDWCxjQUFjO0FBQ2QsYUFBYTtBQUNiLFdBQVc7QUFDWCxXQUFXO0FBQ1gsV0FBVztBQUNYLGFBQWE7QUFDYixtQkFBbUI7QUFDbkIsY0FBYztBQUNkLGlCQUFpQjtBQUNqQixjQUFjO0FBQ2QsZUFBZTtBQUNmLGdCQUFnQjtBQUNoQixZQUFZO0FBQ1osV0FBVztBQUNYLFdBQVc7QUFDWCxhQUFhO0FBQ2IsWUFBWTtBQUNaLGVBQWU7QUFDZixnQkFBZ0I7QUFDaEIsWUFBWTtBQUNaLGtCQUFrQjtBQUNsQixrQkFBa0I7QUFDbEIsZUFBZTtBQUNmLGlCQUFpQjtBQUNqQixZQUFZO0FBQ1osWUFBWTtBQUNaLGFBQWE7QUFDYixXQUFXO0FBQ1gsWUFBWTtBQUNaLGFBQWE7QUFDYixjQUFjO0FBQ2QsV0FBVztBQUNYLFVBQVU7QUFDVixjQUFjO0FBQ2QsVUFBVTtBQUNWLGlCQUFpQjtBQUNqQixhQUFhO0FBQ2Isc0JBQXNCO0FBQ3RCLFlBQVk7QUFDWixpQkFBaUI7QUFDakIsa0JBQWtCO0FBQ2xCLG1CQUFtQjtBQUNuQiw2QkFBNkI7QUFDN0IsYUFBYTtBQUNiLG1CQUFtQjtBQUNuQixtQkFBbUI7QUFDbkIsZUFBZTtBQUNmLGFBQWE7QUFDYixjQUFjO0FBQ2QsWUFBWTtBQUNaLFlBQVk7QUFDWixhQUFhO0FBQ2IsaUJBQWlCO0FBQ2pCLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakIsa0JBQWtCO0FBQ2xCLGFBQWE7QUFDYixnQkFBZ0IiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3BlYmVybWludGEvbGliL2NvcmUuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcblxudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwuY2pzJyk7XG5cbmZ1bmN0aW9uIGVtaXQodmFsdWUpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+ICh7XG4gICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG1ha2UoXG5mKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiAoe1xuICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgdmFsdWU6IGYoZGF0YSwgaSlcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGFjdGlvbihcbmYpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgZihkYXRhLCBpKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgIHZhbHVlOiBudWxsXG4gICAgICAgIH07XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGZhaWwoXG5kYXRhLCBpKSB7XG4gICAgcmV0dXJuIHsgbWF0Y2hlZDogZmFsc2UgfTtcbn1cbmZ1bmN0aW9uIGVycm9yKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKChtZXNzYWdlIGluc3RhbmNlb2YgRnVuY3Rpb24pID8gbWVzc2FnZShkYXRhLCBpKSA6IG1lc3NhZ2UpO1xuICAgIH07XG59XG5mdW5jdGlvbiB0b2tlbihcbm9uVG9rZW4sXG5vbkVuZCkge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4ge1xuICAgICAgICBsZXQgcG9zaXRpb24gPSBpO1xuICAgICAgICBsZXQgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChpIDwgZGF0YS50b2tlbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG9uVG9rZW4oZGF0YS50b2tlbnNbaV0sIGRhdGEsIGkpO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbisrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb25FbmQ/LihkYXRhLCBpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICA/IHsgbWF0Y2hlZDogZmFsc2UgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcG9zaXRpb24sXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgICAgICB9O1xuICAgIH07XG59XG5mdW5jdGlvbiBhbnkoZGF0YSwgaSkge1xuICAgIHJldHVybiAoaSA8IGRhdGEudG9rZW5zLmxlbmd0aClcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICAgICAgcG9zaXRpb246IGkgKyAxLFxuICAgICAgICAgICAgdmFsdWU6IGRhdGEudG9rZW5zW2ldXG4gICAgICAgIH1cbiAgICAgICAgOiB7IG1hdGNoZWQ6IGZhbHNlIH07XG59XG5mdW5jdGlvbiBzYXRpc2Z5KFxudGVzdCkge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4gKGkgPCBkYXRhLnRva2Vucy5sZW5ndGggJiYgdGVzdChkYXRhLnRva2Vuc1tpXSwgZGF0YSwgaSkpXG4gICAgICAgID8ge1xuICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBpICsgMSxcbiAgICAgICAgICAgIHZhbHVlOiBkYXRhLnRva2Vuc1tpXVxuICAgICAgICB9XG4gICAgICAgIDogeyBtYXRjaGVkOiBmYWxzZSB9O1xufVxuZnVuY3Rpb24gbWFwSW5uZXIociwgZikge1xuICAgIHJldHVybiAoci5tYXRjaGVkKSA/ICh7XG4gICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgIHBvc2l0aW9uOiByLnBvc2l0aW9uLFxuICAgICAgICB2YWx1ZTogZihyLnZhbHVlLCByLnBvc2l0aW9uKVxuICAgIH0pIDogcjtcbn1cbmZ1bmN0aW9uIG1hcE91dGVyKHIsIGYpIHtcbiAgICByZXR1cm4gKHIubWF0Y2hlZCkgPyBmKHIpIDogcjtcbn1cbmZ1bmN0aW9uIG1hcChwLCBtYXBwZXIpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IG1hcElubmVyKHAoZGF0YSwgaSksICh2LCBqKSA9PiBtYXBwZXIodiwgZGF0YSwgaSwgaikpO1xufVxuZnVuY3Rpb24gbWFwMShwLFxubWFwcGVyKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiBtYXBPdXRlcihwKGRhdGEsIGkpLCAobSkgPT4gbWFwcGVyKG0sIGRhdGEsIGkpKTtcbn1cbmZ1bmN0aW9uIHBlZWsocCwgZikge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4ge1xuICAgICAgICBjb25zdCByID0gcChkYXRhLCBpKTtcbiAgICAgICAgZihyLCBkYXRhLCBpKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG9wdGlvbihwLCBkZWYpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgY29uc3QgciA9IHAoZGF0YSwgaSk7XG4gICAgICAgIHJldHVybiAoci5tYXRjaGVkKVxuICAgICAgICAgICAgPyByXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBkZWZcbiAgICAgICAgICAgIH07XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG5vdChwKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHIgPSBwKGRhdGEsIGkpO1xuICAgICAgICByZXR1cm4gKHIubWF0Y2hlZClcbiAgICAgICAgICAgID8geyBtYXRjaGVkOiBmYWxzZSB9XG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgIH07XG59XG5mdW5jdGlvbiBjaG9pY2UoLi4ucHMpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHBzKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBwKGRhdGEsIGkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5tYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBtYXRjaGVkOiBmYWxzZSB9O1xuICAgIH07XG59XG5mdW5jdGlvbiBvdGhlcndpc2UocGEsIHBiKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHIxID0gcGEoZGF0YSwgaSk7XG4gICAgICAgIHJldHVybiAocjEubWF0Y2hlZClcbiAgICAgICAgICAgID8gcjFcbiAgICAgICAgICAgIDogcGIoZGF0YSwgaSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGxvbmdlc3QoLi4ucHMpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgbGV0IG1hdGNoID0gdW5kZWZpbmVkO1xuICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHAoZGF0YSwgaSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0Lm1hdGNoZWQgJiYgKCFtYXRjaCB8fCBtYXRjaC5wb3NpdGlvbiA8IHJlc3VsdC5wb3NpdGlvbikpIHtcbiAgICAgICAgICAgICAgICBtYXRjaCA9IHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF0Y2ggfHwgeyBtYXRjaGVkOiBmYWxzZSB9O1xuICAgIH07XG59XG5mdW5jdGlvbiB0YWtlV2hpbGUocCxcbnRlc3QpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgICAgIGxldCBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgY29uc3QgciA9IHAoZGF0YSwgaSk7XG4gICAgICAgICAgICBpZiAoci5tYXRjaGVkICYmIHRlc3Qoci52YWx1ZSwgdmFsdWVzLmxlbmd0aCArIDEsIGRhdGEsIGksIHIucG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goci52YWx1ZSk7XG4gICAgICAgICAgICAgICAgaSA9IHIucG9zaXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKHN1Y2Nlc3MpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlc1xuICAgICAgICB9O1xuICAgIH07XG59XG5mdW5jdGlvbiB0YWtlVW50aWwocCxcbnRlc3QpIHtcbiAgICByZXR1cm4gdGFrZVdoaWxlKHAsICh2YWx1ZSwgbiwgZGF0YSwgaSwgaikgPT4gIXRlc3QodmFsdWUsIG4sIGRhdGEsIGksIGopKTtcbn1cbmZ1bmN0aW9uIHRha2VXaGlsZVAocFZhbHVlLCBwVGVzdCkge1xuICAgIHJldHVybiB0YWtlV2hpbGUocFZhbHVlLCAodmFsdWUsIG4sIGRhdGEsIGkpID0+IHBUZXN0KGRhdGEsIGkpLm1hdGNoZWQpO1xufVxuZnVuY3Rpb24gdGFrZVVudGlsUChwVmFsdWUsIHBUZXN0KSB7XG4gICAgcmV0dXJuIHRha2VXaGlsZShwVmFsdWUsICh2YWx1ZSwgbiwgZGF0YSwgaSkgPT4gIXBUZXN0KGRhdGEsIGkpLm1hdGNoZWQpO1xufVxuZnVuY3Rpb24gbWFueShwKSB7XG4gICAgcmV0dXJuIHRha2VXaGlsZShwLCAoKSA9PiB0cnVlKTtcbn1cbmZ1bmN0aW9uIG1hbnkxKHApIHtcbiAgICByZXR1cm4gYWIocCwgbWFueShwKSwgKGhlYWQsIHRhaWwpID0+IFtoZWFkLCAuLi50YWlsXSk7XG59XG5mdW5jdGlvbiBhYihwYSwgcGIsIGpvaW4pIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IG1hcE91dGVyKHBhKGRhdGEsIGkpLCAobWEpID0+IG1hcElubmVyKHBiKGRhdGEsIG1hLnBvc2l0aW9uKSwgKHZiLCBqKSA9PiBqb2luKG1hLnZhbHVlLCB2YiwgZGF0YSwgaSwgaikpKTtcbn1cbmZ1bmN0aW9uIGxlZnQocGEsIHBiKSB7XG4gICAgcmV0dXJuIGFiKHBhLCBwYiwgKHZhKSA9PiB2YSk7XG59XG5mdW5jdGlvbiByaWdodChwYSwgcGIpIHtcbiAgICByZXR1cm4gYWIocGEsIHBiLCAodmEsIHZiKSA9PiB2Yik7XG59XG5mdW5jdGlvbiBhYmMocGEsIHBiLCBwYywgam9pbikge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4gbWFwT3V0ZXIocGEoZGF0YSwgaSksIChtYSkgPT4gbWFwT3V0ZXIocGIoZGF0YSwgbWEucG9zaXRpb24pLCAobWIpID0+IG1hcElubmVyKHBjKGRhdGEsIG1iLnBvc2l0aW9uKSwgKHZjLCBqKSA9PiBqb2luKG1hLnZhbHVlLCBtYi52YWx1ZSwgdmMsIGRhdGEsIGksIGopKSkpO1xufVxuZnVuY3Rpb24gbWlkZGxlKHBhLCBwYiwgcGMpIHtcbiAgICByZXR1cm4gYWJjKHBhLCBwYiwgcGMsIChyYSwgcmIpID0+IHJiKTtcbn1cbmZ1bmN0aW9uIGFsbCguLi5wcykge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgbGV0IHBvc2l0aW9uID0gaTtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHBzKSB7XG4gICAgICAgICAgICBjb25zdCByMSA9IHAoZGF0YSwgcG9zaXRpb24pO1xuICAgICAgICAgICAgaWYgKHIxLm1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChyMS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb24gPSByMS5wb3NpdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IG1hdGNoZWQ6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgICAgICBwb3NpdGlvbjogcG9zaXRpb24sXG4gICAgICAgICAgICB2YWx1ZTogcmVzdWx0XG4gICAgICAgIH07XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHNraXAoLi4ucHMpIHtcbiAgICByZXR1cm4gbWFwKGFsbCguLi5wcyksICgpID0+IG51bGwpO1xufVxuZnVuY3Rpb24gZmxhdHRlbiguLi5wcykge1xuICAgIHJldHVybiBmbGF0dGVuMShhbGwoLi4ucHMpKTtcbn1cbmZ1bmN0aW9uIGZsYXR0ZW4xKHApIHtcbiAgICByZXR1cm4gbWFwKHAsICh2cykgPT4gdnMuZmxhdE1hcCgodikgPT4gdikpO1xufVxuZnVuY3Rpb24gc2VwQnkxKHBWYWx1ZSwgcFNlcCkge1xuICAgIHJldHVybiBhYihwVmFsdWUsIG1hbnkocmlnaHQocFNlcCwgcFZhbHVlKSksIChoZWFkLCB0YWlsKSA9PiBbaGVhZCwgLi4udGFpbF0pO1xufVxuZnVuY3Rpb24gc2VwQnkocFZhbHVlLCBwU2VwKSB7XG4gICAgcmV0dXJuIG90aGVyd2lzZShzZXBCeTEocFZhbHVlLCBwU2VwKSwgZW1pdChbXSkpO1xufVxuZnVuY3Rpb24gY2hhaW5SZWR1Y2UoYWNjLFxuZikge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4ge1xuICAgICAgICBsZXQgbG9vcCA9IHRydWU7XG4gICAgICAgIGxldCBhY2MxID0gYWNjO1xuICAgICAgICBsZXQgcG9zID0gaTtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgY29uc3QgciA9IGYoYWNjMSwgZGF0YSwgcG9zKShkYXRhLCBwb3MpO1xuICAgICAgICAgICAgaWYgKHIubWF0Y2hlZCkge1xuICAgICAgICAgICAgICAgIGFjYzEgPSByLnZhbHVlO1xuICAgICAgICAgICAgICAgIHBvcyA9IHIucG9zaXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb29wID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKGxvb3ApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBwb3MsXG4gICAgICAgICAgICB2YWx1ZTogYWNjMVxuICAgICAgICB9O1xuICAgIH07XG59XG5mdW5jdGlvbiByZWR1Y2VMZWZ0KGFjYywgcCxcbnJlZHVjZXIpIHtcbiAgICByZXR1cm4gY2hhaW5SZWR1Y2UoYWNjLCAoYWNjKSA9PiBtYXAocCwgKHYsIGRhdGEsIGksIGopID0+IHJlZHVjZXIoYWNjLCB2LCBkYXRhLCBpLCBqKSkpO1xufVxuZnVuY3Rpb24gcmVkdWNlUmlnaHQocCwgYWNjLFxucmVkdWNlcikge1xuICAgIHJldHVybiBtYXAobWFueShwKSwgKHZzLCBkYXRhLCBpLCBqKSA9PiB2cy5yZWR1Y2VSaWdodCgoYWNjLCB2KSA9PiByZWR1Y2VyKHYsIGFjYywgZGF0YSwgaSwgaiksIGFjYykpO1xufVxuZnVuY3Rpb24gbGVmdEFzc29jMShwTGVmdCwgcE9wZXIpIHtcbiAgICByZXR1cm4gY2hhaW4ocExlZnQsICh2MCkgPT4gcmVkdWNlTGVmdCh2MCwgcE9wZXIsIChhY2MsIGYpID0+IGYoYWNjKSkpO1xufVxuZnVuY3Rpb24gcmlnaHRBc3NvYzEocE9wZXIsIHBSaWdodCkge1xuICAgIHJldHVybiBhYihyZWR1Y2VSaWdodChwT3BlciwgKHkpID0+IHksIChmLCBhY2MpID0+ICh5KSA9PiBmKGFjYyh5KSkpLCBwUmlnaHQsIChmLCB2KSA9PiBmKHYpKTtcbn1cbmZ1bmN0aW9uIGxlZnRBc3NvYzIocExlZnQsIHBPcGVyLCBwUmlnaHQpIHtcbiAgICByZXR1cm4gY2hhaW4ocExlZnQsICh2MCkgPT4gcmVkdWNlTGVmdCh2MCwgYWIocE9wZXIsIHBSaWdodCwgKGYsIHkpID0+IFtmLCB5XSksIChhY2MsIFtmLCB5XSkgPT4gZihhY2MsIHkpKSk7XG59XG5mdW5jdGlvbiByaWdodEFzc29jMihwTGVmdCwgcE9wZXIsIHBSaWdodCkge1xuICAgIHJldHVybiBhYihyZWR1Y2VSaWdodChhYihwTGVmdCwgcE9wZXIsICh4LCBmKSA9PiBbeCwgZl0pLCAoeSkgPT4geSwgKFt4LCBmXSwgYWNjKSA9PiAoeSkgPT4gZih4LCBhY2MoeSkpKSwgcFJpZ2h0LCAoZiwgdikgPT4gZih2KSk7XG59XG5mdW5jdGlvbiBjb25kaXRpb24oY29uZCwgcFRydWUsIHBGYWxzZSkge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4gKGNvbmQoZGF0YSwgaSkpXG4gICAgICAgID8gcFRydWUoZGF0YSwgaSlcbiAgICAgICAgOiBwRmFsc2UoZGF0YSwgaSk7XG59XG5mdW5jdGlvbiBkZWNpZGUocCkge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4gbWFwT3V0ZXIocChkYXRhLCBpKSwgKG0xKSA9PiBtMS52YWx1ZShkYXRhLCBtMS5wb3NpdGlvbikpO1xufVxuZnVuY3Rpb24gY2hhaW4ocCxcbmYpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IG1hcE91dGVyKHAoZGF0YSwgaSksIChtMSkgPT4gZihtMS52YWx1ZSwgZGF0YSwgaSwgbTEucG9zaXRpb24pKGRhdGEsIG0xLnBvc2l0aW9uKSk7XG59XG5mdW5jdGlvbiBhaGVhZChwKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiBtYXBPdXRlcihwKGRhdGEsIGkpLCAobTEpID0+ICh7XG4gICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICB2YWx1ZTogbTEudmFsdWVcbiAgICB9KSk7XG59XG5mdW5jdGlvbiByZWN1cnNpdmUoZikge1xuICAgIHJldHVybiBmdW5jdGlvbiAoZGF0YSwgaSkge1xuICAgICAgICByZXR1cm4gZigpKGRhdGEsIGkpO1xuICAgIH07XG59XG5mdW5jdGlvbiBzdGFydChkYXRhLCBpKSB7XG4gICAgcmV0dXJuIChpICE9PSAwKVxuICAgICAgICA/IHsgbWF0Y2hlZDogZmFsc2UgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgIHZhbHVlOiB0cnVlXG4gICAgICAgIH07XG59XG5mdW5jdGlvbiBlbmQoZGF0YSwgaSkge1xuICAgIHJldHVybiAoaSA8IGRhdGEudG9rZW5zLmxlbmd0aClcbiAgICAgICAgPyB7IG1hdGNoZWQ6IGZhbHNlIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICB9O1xufVxuZnVuY3Rpb24gcmVtYWluaW5nVG9rZW5zTnVtYmVyKGRhdGEsIGkpIHtcbiAgICByZXR1cm4gZGF0YS50b2tlbnMubGVuZ3RoIC0gaTtcbn1cbmZ1bmN0aW9uIHBhcnNlclBvc2l0aW9uKGRhdGEsIGksIGZvcm1hdFRva2VuLCBjb250ZXh0VG9rZW5zID0gMykge1xuICAgIGNvbnN0IGxlbiA9IGRhdGEudG9rZW5zLmxlbmd0aDtcbiAgICBjb25zdCBsb3dJbmRleCA9IHV0aWwuY2xhbXAoMCwgaSAtIGNvbnRleHRUb2tlbnMsIGxlbiAtIGNvbnRleHRUb2tlbnMpO1xuICAgIGNvbnN0IGhpZ2hJbmRleCA9IHV0aWwuY2xhbXAoY29udGV4dFRva2VucywgaSArIDEgKyBjb250ZXh0VG9rZW5zLCBsZW4pO1xuICAgIGNvbnN0IHRva2Vuc1NsaWNlID0gZGF0YS50b2tlbnMuc2xpY2UobG93SW5kZXgsIGhpZ2hJbmRleCk7XG4gICAgY29uc3QgbGluZXMgPSBbXTtcbiAgICBjb25zdCBpbmRleFdpZHRoID0gU3RyaW5nKGhpZ2hJbmRleCAtIDEpLmxlbmd0aCArIDE7XG4gICAgaWYgKGkgPCAwKSB7XG4gICAgICAgIGxpbmVzLnB1c2goYCR7U3RyaW5nKGkpLnBhZFN0YXJ0KGluZGV4V2lkdGgpfSA+PmApO1xuICAgIH1cbiAgICBpZiAoMCA8IGxvd0luZGV4KSB7XG4gICAgICAgIGxpbmVzLnB1c2goJy4uLicucGFkU3RhcnQoaW5kZXhXaWR0aCArIDYpKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCB0b2tlbnNTbGljZS5sZW5ndGg7IGorKykge1xuICAgICAgICBjb25zdCBpbmRleCA9IGxvd0luZGV4ICsgajtcbiAgICAgICAgbGluZXMucHVzaChgJHtTdHJpbmcoaW5kZXgpLnBhZFN0YXJ0KGluZGV4V2lkdGgpfSAkeyhpbmRleCA9PT0gaSA/ICc+JyA6ICcgJyl9ICR7dXRpbC5lc2NhcGVXaGl0ZXNwYWNlKGZvcm1hdFRva2VuKHRva2Vuc1NsaWNlW2pdKSl9YCk7XG4gICAgfVxuICAgIGlmIChoaWdoSW5kZXggPCBsZW4pIHtcbiAgICAgICAgbGluZXMucHVzaCgnLi4uJy5wYWRTdGFydChpbmRleFdpZHRoICsgNikpO1xuICAgIH1cbiAgICBpZiAobGVuIDw9IGkpIHtcbiAgICAgICAgbGluZXMucHVzaChgJHtTdHJpbmcoaSkucGFkU3RhcnQoaW5kZXhXaWR0aCl9ID4+YCk7XG4gICAgfVxuICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbn1cbmZ1bmN0aW9uIHBhcnNlKHBhcnNlciwgdG9rZW5zLCBvcHRpb25zLCBmb3JtYXRUb2tlbiA9IEpTT04uc3RyaW5naWZ5KSB7XG4gICAgY29uc3QgZGF0YSA9IHsgdG9rZW5zOiB0b2tlbnMsIG9wdGlvbnM6IG9wdGlvbnMgfTtcbiAgICBjb25zdCByZXN1bHQgPSBwYXJzZXIoZGF0YSwgMCk7XG4gICAgaWYgKCFyZXN1bHQubWF0Y2hlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG1hdGNoJyk7XG4gICAgfVxuICAgIGlmIChyZXN1bHQucG9zaXRpb24gPCBkYXRhLnRva2Vucy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXJ0aWFsIG1hdGNoLiBQYXJzaW5nIHN0b3BwZWQgYXQ6XFxuJHtwYXJzZXJQb3NpdGlvbihkYXRhLCByZXN1bHQucG9zaXRpb24sIGZvcm1hdFRva2VuKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbn1cbmZ1bmN0aW9uIHRyeVBhcnNlKHBhcnNlciwgdG9rZW5zLCBvcHRpb25zKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gcGFyc2VyKHsgdG9rZW5zOiB0b2tlbnMsIG9wdGlvbnM6IG9wdGlvbnMgfSwgMCk7XG4gICAgcmV0dXJuIChyZXN1bHQubWF0Y2hlZClcbiAgICAgICAgPyByZXN1bHQudmFsdWVcbiAgICAgICAgOiB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBtYXRjaChtYXRjaGVyLCB0b2tlbnMsIG9wdGlvbnMpIHtcbiAgICBjb25zdCByZXN1bHQgPSBtYXRjaGVyKHsgdG9rZW5zOiB0b2tlbnMsIG9wdGlvbnM6IG9wdGlvbnMgfSwgMCk7XG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbn1cblxuZXhwb3J0cy5hYiA9IGFiO1xuZXhwb3J0cy5hYmMgPSBhYmM7XG5leHBvcnRzLmFjdGlvbiA9IGFjdGlvbjtcbmV4cG9ydHMuYWhlYWQgPSBhaGVhZDtcbmV4cG9ydHMuYWxsID0gYWxsO1xuZXhwb3J0cy5hbmQgPSBhbGw7XG5leHBvcnRzLmFueSA9IGFueTtcbmV4cG9ydHMuY2hhaW4gPSBjaGFpbjtcbmV4cG9ydHMuY2hhaW5SZWR1Y2UgPSBjaGFpblJlZHVjZTtcbmV4cG9ydHMuY2hvaWNlID0gY2hvaWNlO1xuZXhwb3J0cy5jb25kaXRpb24gPSBjb25kaXRpb247XG5leHBvcnRzLmRlY2lkZSA9IGRlY2lkZTtcbmV4cG9ydHMuZGlzY2FyZCA9IHNraXA7XG5leHBvcnRzLmVpdGhlck9yID0gb3RoZXJ3aXNlO1xuZXhwb3J0cy5lbWl0ID0gZW1pdDtcbmV4cG9ydHMuZW5kID0gZW5kO1xuZXhwb3J0cy5lb2YgPSBlbmQ7XG5leHBvcnRzLmVycm9yID0gZXJyb3I7XG5leHBvcnRzLmZhaWwgPSBmYWlsO1xuZXhwb3J0cy5mbGF0dGVuID0gZmxhdHRlbjtcbmV4cG9ydHMuZmxhdHRlbjEgPSBmbGF0dGVuMTtcbmV4cG9ydHMubGVmdCA9IGxlZnQ7XG5leHBvcnRzLmxlZnRBc3NvYzEgPSBsZWZ0QXNzb2MxO1xuZXhwb3J0cy5sZWZ0QXNzb2MyID0gbGVmdEFzc29jMjtcbmV4cG9ydHMubG9uZ2VzdCA9IGxvbmdlc3Q7XG5leHBvcnRzLmxvb2tBaGVhZCA9IGFoZWFkO1xuZXhwb3J0cy5tYWtlID0gbWFrZTtcbmV4cG9ydHMubWFueSA9IG1hbnk7XG5leHBvcnRzLm1hbnkxID0gbWFueTE7XG5leHBvcnRzLm1hcCA9IG1hcDtcbmV4cG9ydHMubWFwMSA9IG1hcDE7XG5leHBvcnRzLm1hdGNoID0gbWF0Y2g7XG5leHBvcnRzLm1pZGRsZSA9IG1pZGRsZTtcbmV4cG9ydHMubm90ID0gbm90O1xuZXhwb3J0cy5vZiA9IGVtaXQ7XG5leHBvcnRzLm9wdGlvbiA9IG9wdGlvbjtcbmV4cG9ydHMub3IgPSBjaG9pY2U7XG5leHBvcnRzLm90aGVyd2lzZSA9IG90aGVyd2lzZTtcbmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcbmV4cG9ydHMucGFyc2VyUG9zaXRpb24gPSBwYXJzZXJQb3NpdGlvbjtcbmV4cG9ydHMucGVlayA9IHBlZWs7XG5leHBvcnRzLnJlY3Vyc2l2ZSA9IHJlY3Vyc2l2ZTtcbmV4cG9ydHMucmVkdWNlTGVmdCA9IHJlZHVjZUxlZnQ7XG5leHBvcnRzLnJlZHVjZVJpZ2h0ID0gcmVkdWNlUmlnaHQ7XG5leHBvcnRzLnJlbWFpbmluZ1Rva2Vuc051bWJlciA9IHJlbWFpbmluZ1Rva2Vuc051bWJlcjtcbmV4cG9ydHMucmlnaHQgPSByaWdodDtcbmV4cG9ydHMucmlnaHRBc3NvYzEgPSByaWdodEFzc29jMTtcbmV4cG9ydHMucmlnaHRBc3NvYzIgPSByaWdodEFzc29jMjtcbmV4cG9ydHMuc2F0aXNmeSA9IHNhdGlzZnk7XG5leHBvcnRzLnNlcEJ5ID0gc2VwQnk7XG5leHBvcnRzLnNlcEJ5MSA9IHNlcEJ5MTtcbmV4cG9ydHMuc2tpcCA9IHNraXA7XG5leHBvcnRzLnNvbWUgPSBtYW55MTtcbmV4cG9ydHMuc3RhcnQgPSBzdGFydDtcbmV4cG9ydHMudGFrZVVudGlsID0gdGFrZVVudGlsO1xuZXhwb3J0cy50YWtlVW50aWxQID0gdGFrZVVudGlsUDtcbmV4cG9ydHMudGFrZVdoaWxlID0gdGFrZVdoaWxlO1xuZXhwb3J0cy50YWtlV2hpbGVQID0gdGFrZVdoaWxlUDtcbmV4cG9ydHMudG9rZW4gPSB0b2tlbjtcbmV4cG9ydHMudHJ5UGFyc2UgPSB0cnlQYXJzZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/peberminta/lib/core.cjs\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(action-browser)/./node_modules/peberminta/lib/util.cjs":
|
|
/*!**********************************************!*\
|
|
!*** ./node_modules/peberminta/lib/util.cjs ***!
|
|
\**********************************************/
|
|
/***/ ((__unused_webpack_module, exports) => {
|
|
|
|
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\nfunction clamp(left, x, right) {\n return Math.max(left, Math.min(x, right));\n}\nfunction escapeWhitespace(str) {\n return str.replace(/(\\t)|(\\r)|(\\n)/g, (m, t, r) => t ? '\\\\t' : r ? '\\\\r' : '\\\\n');\n}\n\nexports.clamp = clamp;\nexports.escapeWhitespace = escapeWhitespace;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9wZWJlcm1pbnRhL2xpYi91dGlsLmNqcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7O0FBRTdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxhQUFhO0FBQ2Isd0JBQXdCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9wZWJlcm1pbnRhL2xpYi91dGlsLmNqcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG5cbmZ1bmN0aW9uIGNsYW1wKGxlZnQsIHgsIHJpZ2h0KSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KGxlZnQsIE1hdGgubWluKHgsIHJpZ2h0KSk7XG59XG5mdW5jdGlvbiBlc2NhcGVXaGl0ZXNwYWNlKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFxcdCl8KFxccil8KFxcbikvZywgKG0sIHQsIHIpID0+IHQgPyAnXFxcXHQnIDogciA/ICdcXFxccicgOiAnXFxcXG4nKTtcbn1cblxuZXhwb3J0cy5jbGFtcCA9IGNsYW1wO1xuZXhwb3J0cy5lc2NhcGVXaGl0ZXNwYWNlID0gZXNjYXBlV2hpdGVzcGFjZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/peberminta/lib/util.cjs\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./node_modules/peberminta/lib/core.cjs":
|
|
/*!**********************************************!*\
|
|
!*** ./node_modules/peberminta/lib/core.cjs ***!
|
|
\**********************************************/
|
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
|
|
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\nvar util = __webpack_require__(/*! ./util.cjs */ \"(rsc)/./node_modules/peberminta/lib/util.cjs\");\n\nfunction emit(value) {\n return (data, i) => ({\n matched: true,\n position: i,\n value: value\n });\n}\nfunction make(\nf) {\n return (data, i) => ({\n matched: true,\n position: i,\n value: f(data, i)\n });\n}\nfunction action(\nf) {\n return (data, i) => {\n f(data, i);\n return {\n matched: true,\n position: i,\n value: null\n };\n };\n}\nfunction fail(\ndata, i) {\n return { matched: false };\n}\nfunction error(message) {\n return (data, i) => {\n throw new Error((message instanceof Function) ? message(data, i) : message);\n };\n}\nfunction token(\nonToken,\nonEnd) {\n return (data, i) => {\n let position = i;\n let value = undefined;\n if (i < data.tokens.length) {\n value = onToken(data.tokens[i], data, i);\n if (value !== undefined) {\n position++;\n }\n }\n else {\n onEnd?.(data, i);\n }\n return (value === undefined)\n ? { matched: false }\n : {\n matched: true,\n position: position,\n value: value\n };\n };\n}\nfunction any(data, i) {\n return (i < data.tokens.length)\n ? {\n matched: true,\n position: i + 1,\n value: data.tokens[i]\n }\n : { matched: false };\n}\nfunction satisfy(\ntest) {\n return (data, i) => (i < data.tokens.length && test(data.tokens[i], data, i))\n ? {\n matched: true,\n position: i + 1,\n value: data.tokens[i]\n }\n : { matched: false };\n}\nfunction mapInner(r, f) {\n return (r.matched) ? ({\n matched: true,\n position: r.position,\n value: f(r.value, r.position)\n }) : r;\n}\nfunction mapOuter(r, f) {\n return (r.matched) ? f(r) : r;\n}\nfunction map(p, mapper) {\n return (data, i) => mapInner(p(data, i), (v, j) => mapper(v, data, i, j));\n}\nfunction map1(p,\nmapper) {\n return (data, i) => mapOuter(p(data, i), (m) => mapper(m, data, i));\n}\nfunction peek(p, f) {\n return (data, i) => {\n const r = p(data, i);\n f(r, data, i);\n return r;\n };\n}\nfunction option(p, def) {\n return (data, i) => {\n const r = p(data, i);\n return (r.matched)\n ? r\n : {\n matched: true,\n position: i,\n value: def\n };\n };\n}\nfunction not(p) {\n return (data, i) => {\n const r = p(data, i);\n return (r.matched)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n };\n}\nfunction choice(...ps) {\n return (data, i) => {\n for (const p of ps) {\n const result = p(data, i);\n if (result.matched) {\n return result;\n }\n }\n return { matched: false };\n };\n}\nfunction otherwise(pa, pb) {\n return (data, i) => {\n const r1 = pa(data, i);\n return (r1.matched)\n ? r1\n : pb(data, i);\n };\n}\nfunction longest(...ps) {\n return (data, i) => {\n let match = undefined;\n for (const p of ps) {\n const result = p(data, i);\n if (result.matched && (!match || match.position < result.position)) {\n match = result;\n }\n }\n return match || { matched: false };\n };\n}\nfunction takeWhile(p,\ntest) {\n return (data, i) => {\n const values = [];\n let success = true;\n do {\n const r = p(data, i);\n if (r.matched && test(r.value, values.length + 1, data, i, r.position)) {\n values.push(r.value);\n i = r.position;\n }\n else {\n success = false;\n }\n } while (success);\n return {\n matched: true,\n position: i,\n value: values\n };\n };\n}\nfunction takeUntil(p,\ntest) {\n return takeWhile(p, (value, n, data, i, j) => !test(value, n, data, i, j));\n}\nfunction takeWhileP(pValue, pTest) {\n return takeWhile(pValue, (value, n, data, i) => pTest(data, i).matched);\n}\nfunction takeUntilP(pValue, pTest) {\n return takeWhile(pValue, (value, n, data, i) => !pTest(data, i).matched);\n}\nfunction many(p) {\n return takeWhile(p, () => true);\n}\nfunction many1(p) {\n return ab(p, many(p), (head, tail) => [head, ...tail]);\n}\nfunction ab(pa, pb, join) {\n return (data, i) => mapOuter(pa(data, i), (ma) => mapInner(pb(data, ma.position), (vb, j) => join(ma.value, vb, data, i, j)));\n}\nfunction left(pa, pb) {\n return ab(pa, pb, (va) => va);\n}\nfunction right(pa, pb) {\n return ab(pa, pb, (va, vb) => vb);\n}\nfunction abc(pa, pb, pc, join) {\n return (data, i) => mapOuter(pa(data, i), (ma) => mapOuter(pb(data, ma.position), (mb) => mapInner(pc(data, mb.position), (vc, j) => join(ma.value, mb.value, vc, data, i, j))));\n}\nfunction middle(pa, pb, pc) {\n return abc(pa, pb, pc, (ra, rb) => rb);\n}\nfunction all(...ps) {\n return (data, i) => {\n const result = [];\n let position = i;\n for (const p of ps) {\n const r1 = p(data, position);\n if (r1.matched) {\n result.push(r1.value);\n position = r1.position;\n }\n else {\n return { matched: false };\n }\n }\n return {\n matched: true,\n position: position,\n value: result\n };\n };\n}\nfunction skip(...ps) {\n return map(all(...ps), () => null);\n}\nfunction flatten(...ps) {\n return flatten1(all(...ps));\n}\nfunction flatten1(p) {\n return map(p, (vs) => vs.flatMap((v) => v));\n}\nfunction sepBy1(pValue, pSep) {\n return ab(pValue, many(right(pSep, pValue)), (head, tail) => [head, ...tail]);\n}\nfunction sepBy(pValue, pSep) {\n return otherwise(sepBy1(pValue, pSep), emit([]));\n}\nfunction chainReduce(acc,\nf) {\n return (data, i) => {\n let loop = true;\n let acc1 = acc;\n let pos = i;\n do {\n const r = f(acc1, data, pos)(data, pos);\n if (r.matched) {\n acc1 = r.value;\n pos = r.position;\n }\n else {\n loop = false;\n }\n } while (loop);\n return {\n matched: true,\n position: pos,\n value: acc1\n };\n };\n}\nfunction reduceLeft(acc, p,\nreducer) {\n return chainReduce(acc, (acc) => map(p, (v, data, i, j) => reducer(acc, v, data, i, j)));\n}\nfunction reduceRight(p, acc,\nreducer) {\n return map(many(p), (vs, data, i, j) => vs.reduceRight((acc, v) => reducer(v, acc, data, i, j), acc));\n}\nfunction leftAssoc1(pLeft, pOper) {\n return chain(pLeft, (v0) => reduceLeft(v0, pOper, (acc, f) => f(acc)));\n}\nfunction rightAssoc1(pOper, pRight) {\n return ab(reduceRight(pOper, (y) => y, (f, acc) => (y) => f(acc(y))), pRight, (f, v) => f(v));\n}\nfunction leftAssoc2(pLeft, pOper, pRight) {\n return chain(pLeft, (v0) => reduceLeft(v0, ab(pOper, pRight, (f, y) => [f, y]), (acc, [f, y]) => f(acc, y)));\n}\nfunction rightAssoc2(pLeft, pOper, pRight) {\n return ab(reduceRight(ab(pLeft, pOper, (x, f) => [x, f]), (y) => y, ([x, f], acc) => (y) => f(x, acc(y))), pRight, (f, v) => f(v));\n}\nfunction condition(cond, pTrue, pFalse) {\n return (data, i) => (cond(data, i))\n ? pTrue(data, i)\n : pFalse(data, i);\n}\nfunction decide(p) {\n return (data, i) => mapOuter(p(data, i), (m1) => m1.value(data, m1.position));\n}\nfunction chain(p,\nf) {\n return (data, i) => mapOuter(p(data, i), (m1) => f(m1.value, data, i, m1.position)(data, m1.position));\n}\nfunction ahead(p) {\n return (data, i) => mapOuter(p(data, i), (m1) => ({\n matched: true,\n position: i,\n value: m1.value\n }));\n}\nfunction recursive(f) {\n return function (data, i) {\n return f()(data, i);\n };\n}\nfunction start(data, i) {\n return (i !== 0)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n}\nfunction end(data, i) {\n return (i < data.tokens.length)\n ? { matched: false }\n : {\n matched: true,\n position: i,\n value: true\n };\n}\nfunction remainingTokensNumber(data, i) {\n return data.tokens.length - i;\n}\nfunction parserPosition(data, i, formatToken, contextTokens = 3) {\n const len = data.tokens.length;\n const lowIndex = util.clamp(0, i - contextTokens, len - contextTokens);\n const highIndex = util.clamp(contextTokens, i + 1 + contextTokens, len);\n const tokensSlice = data.tokens.slice(lowIndex, highIndex);\n const lines = [];\n const indexWidth = String(highIndex - 1).length + 1;\n if (i < 0) {\n lines.push(`${String(i).padStart(indexWidth)} >>`);\n }\n if (0 < lowIndex) {\n lines.push('...'.padStart(indexWidth + 6));\n }\n for (let j = 0; j < tokensSlice.length; j++) {\n const index = lowIndex + j;\n lines.push(`${String(index).padStart(indexWidth)} ${(index === i ? '>' : ' ')} ${util.escapeWhitespace(formatToken(tokensSlice[j]))}`);\n }\n if (highIndex < len) {\n lines.push('...'.padStart(indexWidth + 6));\n }\n if (len <= i) {\n lines.push(`${String(i).padStart(indexWidth)} >>`);\n }\n return lines.join('\\n');\n}\nfunction parse(parser, tokens, options, formatToken = JSON.stringify) {\n const data = { tokens: tokens, options: options };\n const result = parser(data, 0);\n if (!result.matched) {\n throw new Error('No match');\n }\n if (result.position < data.tokens.length) {\n throw new Error(`Partial match. Parsing stopped at:\\n${parserPosition(data, result.position, formatToken)}`);\n }\n return result.value;\n}\nfunction tryParse(parser, tokens, options) {\n const result = parser({ tokens: tokens, options: options }, 0);\n return (result.matched)\n ? result.value\n : undefined;\n}\nfunction match(matcher, tokens, options) {\n const result = matcher({ tokens: tokens, options: options }, 0);\n return result.value;\n}\n\nexports.ab = ab;\nexports.abc = abc;\nexports.action = action;\nexports.ahead = ahead;\nexports.all = all;\nexports.and = all;\nexports.any = any;\nexports.chain = chain;\nexports.chainReduce = chainReduce;\nexports.choice = choice;\nexports.condition = condition;\nexports.decide = decide;\nexports.discard = skip;\nexports.eitherOr = otherwise;\nexports.emit = emit;\nexports.end = end;\nexports.eof = end;\nexports.error = error;\nexports.fail = fail;\nexports.flatten = flatten;\nexports.flatten1 = flatten1;\nexports.left = left;\nexports.leftAssoc1 = leftAssoc1;\nexports.leftAssoc2 = leftAssoc2;\nexports.longest = longest;\nexports.lookAhead = ahead;\nexports.make = make;\nexports.many = many;\nexports.many1 = many1;\nexports.map = map;\nexports.map1 = map1;\nexports.match = match;\nexports.middle = middle;\nexports.not = not;\nexports.of = emit;\nexports.option = option;\nexports.or = choice;\nexports.otherwise = otherwise;\nexports.parse = parse;\nexports.parserPosition = parserPosition;\nexports.peek = peek;\nexports.recursive = recursive;\nexports.reduceLeft = reduceLeft;\nexports.reduceRight = reduceRight;\nexports.remainingTokensNumber = remainingTokensNumber;\nexports.right = right;\nexports.rightAssoc1 = rightAssoc1;\nexports.rightAssoc2 = rightAssoc2;\nexports.satisfy = satisfy;\nexports.sepBy = sepBy;\nexports.sepBy1 = sepBy1;\nexports.skip = skip;\nexports.some = many1;\nexports.start = start;\nexports.takeUntil = takeUntil;\nexports.takeUntilP = takeUntilP;\nexports.takeWhile = takeWhile;\nexports.takeWhileP = takeWhileP;\nexports.token = token;\nexports.tryParse = tryParse;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvcGViZXJtaW50YS9saWIvY29yZS5janMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDLEVBQUUsYUFBYSxFQUFDOztBQUU3RCxXQUFXLG1CQUFPLENBQUMsZ0VBQVk7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLGdDQUFnQztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix3QkFBd0I7QUFDNUM7QUFDQSxzQkFBc0Isb0NBQW9DLEVBQUUsMkJBQTJCLEVBQUUsbURBQW1EO0FBQzVJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsZ0NBQWdDO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrREFBK0QsbURBQW1EO0FBQ2xIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLGtDQUFrQztBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGtDQUFrQztBQUMvRDtBQUNBOztBQUVBLFVBQVU7QUFDVixXQUFXO0FBQ1gsY0FBYztBQUNkLGFBQWE7QUFDYixXQUFXO0FBQ1gsV0FBVztBQUNYLFdBQVc7QUFDWCxhQUFhO0FBQ2IsbUJBQW1CO0FBQ25CLGNBQWM7QUFDZCxpQkFBaUI7QUFDakIsY0FBYztBQUNkLGVBQWU7QUFDZixnQkFBZ0I7QUFDaEIsWUFBWTtBQUNaLFdBQVc7QUFDWCxXQUFXO0FBQ1gsYUFBYTtBQUNiLFlBQVk7QUFDWixlQUFlO0FBQ2YsZ0JBQWdCO0FBQ2hCLFlBQVk7QUFDWixrQkFBa0I7QUFDbEIsa0JBQWtCO0FBQ2xCLGVBQWU7QUFDZixpQkFBaUI7QUFDakIsWUFBWTtBQUNaLFlBQVk7QUFDWixhQUFhO0FBQ2IsV0FBVztBQUNYLFlBQVk7QUFDWixhQUFhO0FBQ2IsY0FBYztBQUNkLFdBQVc7QUFDWCxVQUFVO0FBQ1YsY0FBYztBQUNkLFVBQVU7QUFDVixpQkFBaUI7QUFDakIsYUFBYTtBQUNiLHNCQUFzQjtBQUN0QixZQUFZO0FBQ1osaUJBQWlCO0FBQ2pCLGtCQUFrQjtBQUNsQixtQkFBbUI7QUFDbkIsNkJBQTZCO0FBQzdCLGFBQWE7QUFDYixtQkFBbUI7QUFDbkIsbUJBQW1CO0FBQ25CLGVBQWU7QUFDZixhQUFhO0FBQ2IsY0FBYztBQUNkLFlBQVk7QUFDWixZQUFZO0FBQ1osYUFBYTtBQUNiLGlCQUFpQjtBQUNqQixrQkFBa0I7QUFDbEIsaUJBQWlCO0FBQ2pCLGtCQUFrQjtBQUNsQixhQUFhO0FBQ2IsZ0JBQWdCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9wZWJlcm1pbnRhL2xpYi9jb3JlLmNqcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsLmNqcycpO1xuXG5mdW5jdGlvbiBlbWl0KHZhbHVlKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiAoe1xuICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBtYWtlKFxuZikge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4gKHtcbiAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgIHZhbHVlOiBmKGRhdGEsIGkpXG4gICAgfSk7XG59XG5mdW5jdGlvbiBhY3Rpb24oXG5mKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiB7XG4gICAgICAgIGYoZGF0YSwgaSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgICB9O1xuICAgIH07XG59XG5mdW5jdGlvbiBmYWlsKFxuZGF0YSwgaSkge1xuICAgIHJldHVybiB7IG1hdGNoZWQ6IGZhbHNlIH07XG59XG5mdW5jdGlvbiBlcnJvcihtZXNzYWdlKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigobWVzc2FnZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSA/IG1lc3NhZ2UoZGF0YSwgaSkgOiBtZXNzYWdlKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gdG9rZW4oXG5vblRva2VuLFxub25FbmQpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgbGV0IHBvc2l0aW9uID0gaTtcbiAgICAgICAgbGV0IHZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoaSA8IGRhdGEudG9rZW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFsdWUgPSBvblRva2VuKGRhdGEudG9rZW5zW2ldLCBkYXRhLCBpKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb24rKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9uRW5kPy4oZGF0YSwgaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgPyB7IG1hdGNoZWQ6IGZhbHNlIH1cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHBvc2l0aW9uLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICB9O1xufVxuZnVuY3Rpb24gYW55KGRhdGEsIGkpIHtcbiAgICByZXR1cm4gKGkgPCBkYXRhLnRva2Vucy5sZW5ndGgpXG4gICAgICAgID8ge1xuICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBpICsgMSxcbiAgICAgICAgICAgIHZhbHVlOiBkYXRhLnRva2Vuc1tpXVxuICAgICAgICB9XG4gICAgICAgIDogeyBtYXRjaGVkOiBmYWxzZSB9O1xufVxuZnVuY3Rpb24gc2F0aXNmeShcbnRlc3QpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IChpIDwgZGF0YS50b2tlbnMubGVuZ3RoICYmIHRlc3QoZGF0YS50b2tlbnNbaV0sIGRhdGEsIGkpKVxuICAgICAgICA/IHtcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgICAgICBwb3NpdGlvbjogaSArIDEsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YS50b2tlbnNbaV1cbiAgICAgICAgfVxuICAgICAgICA6IHsgbWF0Y2hlZDogZmFsc2UgfTtcbn1cbmZ1bmN0aW9uIG1hcElubmVyKHIsIGYpIHtcbiAgICByZXR1cm4gKHIubWF0Y2hlZCkgPyAoe1xuICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICBwb3NpdGlvbjogci5wb3NpdGlvbixcbiAgICAgICAgdmFsdWU6IGYoci52YWx1ZSwgci5wb3NpdGlvbilcbiAgICB9KSA6IHI7XG59XG5mdW5jdGlvbiBtYXBPdXRlcihyLCBmKSB7XG4gICAgcmV0dXJuIChyLm1hdGNoZWQpID8gZihyKSA6IHI7XG59XG5mdW5jdGlvbiBtYXAocCwgbWFwcGVyKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiBtYXBJbm5lcihwKGRhdGEsIGkpLCAodiwgaikgPT4gbWFwcGVyKHYsIGRhdGEsIGksIGopKTtcbn1cbmZ1bmN0aW9uIG1hcDEocCxcbm1hcHBlcikge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4gbWFwT3V0ZXIocChkYXRhLCBpKSwgKG0pID0+IG1hcHBlcihtLCBkYXRhLCBpKSk7XG59XG5mdW5jdGlvbiBwZWVrKHAsIGYpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgY29uc3QgciA9IHAoZGF0YSwgaSk7XG4gICAgICAgIGYociwgZGF0YSwgaSk7XG4gICAgICAgIHJldHVybiByO1xuICAgIH07XG59XG5mdW5jdGlvbiBvcHRpb24ocCwgZGVmKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHIgPSBwKGRhdGEsIGkpO1xuICAgICAgICByZXR1cm4gKHIubWF0Y2hlZClcbiAgICAgICAgICAgID8gclxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZGVmXG4gICAgICAgICAgICB9O1xuICAgIH07XG59XG5mdW5jdGlvbiBub3QocCkge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4ge1xuICAgICAgICBjb25zdCByID0gcChkYXRhLCBpKTtcbiAgICAgICAgcmV0dXJuIChyLm1hdGNoZWQpXG4gICAgICAgICAgICA/IHsgbWF0Y2hlZDogZmFsc2UgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICB9O1xufVxuZnVuY3Rpb24gY2hvaWNlKC4uLnBzKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBwcykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gcChkYXRhLCBpKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQubWF0Y2hlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgbWF0Y2hlZDogZmFsc2UgfTtcbiAgICB9O1xufVxuZnVuY3Rpb24gb3RoZXJ3aXNlKHBhLCBwYikge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4ge1xuICAgICAgICBjb25zdCByMSA9IHBhKGRhdGEsIGkpO1xuICAgICAgICByZXR1cm4gKHIxLm1hdGNoZWQpXG4gICAgICAgICAgICA/IHIxXG4gICAgICAgICAgICA6IHBiKGRhdGEsIGkpO1xuICAgIH07XG59XG5mdW5jdGlvbiBsb25nZXN0KC4uLnBzKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiB7XG4gICAgICAgIGxldCBtYXRjaCA9IHVuZGVmaW5lZDtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHBzKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBwKGRhdGEsIGkpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5tYXRjaGVkICYmICghbWF0Y2ggfHwgbWF0Y2gucG9zaXRpb24gPCByZXN1bHQucG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2ggPSByZXN1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hdGNoIHx8IHsgbWF0Y2hlZDogZmFsc2UgfTtcbiAgICB9O1xufVxuZnVuY3Rpb24gdGFrZVdoaWxlKHAsXG50ZXN0KSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IFtdO1xuICAgICAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBwKGRhdGEsIGkpO1xuICAgICAgICAgICAgaWYgKHIubWF0Y2hlZCAmJiB0ZXN0KHIudmFsdWUsIHZhbHVlcy5sZW5ndGggKyAxLCBkYXRhLCBpLCByLnBvc2l0aW9uKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHIudmFsdWUpO1xuICAgICAgICAgICAgICAgIGkgPSByLnBvc2l0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IHdoaWxlIChzdWNjZXNzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZXNcbiAgICAgICAgfTtcbiAgICB9O1xufVxuZnVuY3Rpb24gdGFrZVVudGlsKHAsXG50ZXN0KSB7XG4gICAgcmV0dXJuIHRha2VXaGlsZShwLCAodmFsdWUsIG4sIGRhdGEsIGksIGopID0+ICF0ZXN0KHZhbHVlLCBuLCBkYXRhLCBpLCBqKSk7XG59XG5mdW5jdGlvbiB0YWtlV2hpbGVQKHBWYWx1ZSwgcFRlc3QpIHtcbiAgICByZXR1cm4gdGFrZVdoaWxlKHBWYWx1ZSwgKHZhbHVlLCBuLCBkYXRhLCBpKSA9PiBwVGVzdChkYXRhLCBpKS5tYXRjaGVkKTtcbn1cbmZ1bmN0aW9uIHRha2VVbnRpbFAocFZhbHVlLCBwVGVzdCkge1xuICAgIHJldHVybiB0YWtlV2hpbGUocFZhbHVlLCAodmFsdWUsIG4sIGRhdGEsIGkpID0+ICFwVGVzdChkYXRhLCBpKS5tYXRjaGVkKTtcbn1cbmZ1bmN0aW9uIG1hbnkocCkge1xuICAgIHJldHVybiB0YWtlV2hpbGUocCwgKCkgPT4gdHJ1ZSk7XG59XG5mdW5jdGlvbiBtYW55MShwKSB7XG4gICAgcmV0dXJuIGFiKHAsIG1hbnkocCksIChoZWFkLCB0YWlsKSA9PiBbaGVhZCwgLi4udGFpbF0pO1xufVxuZnVuY3Rpb24gYWIocGEsIHBiLCBqb2luKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiBtYXBPdXRlcihwYShkYXRhLCBpKSwgKG1hKSA9PiBtYXBJbm5lcihwYihkYXRhLCBtYS5wb3NpdGlvbiksICh2YiwgaikgPT4gam9pbihtYS52YWx1ZSwgdmIsIGRhdGEsIGksIGopKSk7XG59XG5mdW5jdGlvbiBsZWZ0KHBhLCBwYikge1xuICAgIHJldHVybiBhYihwYSwgcGIsICh2YSkgPT4gdmEpO1xufVxuZnVuY3Rpb24gcmlnaHQocGEsIHBiKSB7XG4gICAgcmV0dXJuIGFiKHBhLCBwYiwgKHZhLCB2YikgPT4gdmIpO1xufVxuZnVuY3Rpb24gYWJjKHBhLCBwYiwgcGMsIGpvaW4pIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IG1hcE91dGVyKHBhKGRhdGEsIGkpLCAobWEpID0+IG1hcE91dGVyKHBiKGRhdGEsIG1hLnBvc2l0aW9uKSwgKG1iKSA9PiBtYXBJbm5lcihwYyhkYXRhLCBtYi5wb3NpdGlvbiksICh2YywgaikgPT4gam9pbihtYS52YWx1ZSwgbWIudmFsdWUsIHZjLCBkYXRhLCBpLCBqKSkpKTtcbn1cbmZ1bmN0aW9uIG1pZGRsZShwYSwgcGIsIHBjKSB7XG4gICAgcmV0dXJuIGFiYyhwYSwgcGIsIHBjLCAocmEsIHJiKSA9PiByYik7XG59XG5mdW5jdGlvbiBhbGwoLi4ucHMpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIGxldCBwb3NpdGlvbiA9IGk7XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBwcykge1xuICAgICAgICAgICAgY29uc3QgcjEgPSBwKGRhdGEsIHBvc2l0aW9uKTtcbiAgICAgICAgICAgIGlmIChyMS5tYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gocjEudmFsdWUpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcjEucG9zaXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBtYXRjaGVkOiBmYWxzZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICAgICAgcG9zaXRpb246IHBvc2l0aW9uLFxuICAgICAgICAgICAgdmFsdWU6IHJlc3VsdFxuICAgICAgICB9O1xuICAgIH07XG59XG5mdW5jdGlvbiBza2lwKC4uLnBzKSB7XG4gICAgcmV0dXJuIG1hcChhbGwoLi4ucHMpLCAoKSA9PiBudWxsKTtcbn1cbmZ1bmN0aW9uIGZsYXR0ZW4oLi4ucHMpIHtcbiAgICByZXR1cm4gZmxhdHRlbjEoYWxsKC4uLnBzKSk7XG59XG5mdW5jdGlvbiBmbGF0dGVuMShwKSB7XG4gICAgcmV0dXJuIG1hcChwLCAodnMpID0+IHZzLmZsYXRNYXAoKHYpID0+IHYpKTtcbn1cbmZ1bmN0aW9uIHNlcEJ5MShwVmFsdWUsIHBTZXApIHtcbiAgICByZXR1cm4gYWIocFZhbHVlLCBtYW55KHJpZ2h0KHBTZXAsIHBWYWx1ZSkpLCAoaGVhZCwgdGFpbCkgPT4gW2hlYWQsIC4uLnRhaWxdKTtcbn1cbmZ1bmN0aW9uIHNlcEJ5KHBWYWx1ZSwgcFNlcCkge1xuICAgIHJldHVybiBvdGhlcndpc2Uoc2VwQnkxKHBWYWx1ZSwgcFNlcCksIGVtaXQoW10pKTtcbn1cbmZ1bmN0aW9uIGNoYWluUmVkdWNlKGFjYyxcbmYpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IHtcbiAgICAgICAgbGV0IGxvb3AgPSB0cnVlO1xuICAgICAgICBsZXQgYWNjMSA9IGFjYztcbiAgICAgICAgbGV0IHBvcyA9IGk7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBmKGFjYzEsIGRhdGEsIHBvcykoZGF0YSwgcG9zKTtcbiAgICAgICAgICAgIGlmIChyLm1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICBhY2MxID0gci52YWx1ZTtcbiAgICAgICAgICAgICAgICBwb3MgPSByLnBvc2l0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9vcCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IHdoaWxlIChsb29wKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgICAgICBwb3NpdGlvbjogcG9zLFxuICAgICAgICAgICAgdmFsdWU6IGFjYzFcbiAgICAgICAgfTtcbiAgICB9O1xufVxuZnVuY3Rpb24gcmVkdWNlTGVmdChhY2MsIHAsXG5yZWR1Y2VyKSB7XG4gICAgcmV0dXJuIGNoYWluUmVkdWNlKGFjYywgKGFjYykgPT4gbWFwKHAsICh2LCBkYXRhLCBpLCBqKSA9PiByZWR1Y2VyKGFjYywgdiwgZGF0YSwgaSwgaikpKTtcbn1cbmZ1bmN0aW9uIHJlZHVjZVJpZ2h0KHAsIGFjYyxcbnJlZHVjZXIpIHtcbiAgICByZXR1cm4gbWFwKG1hbnkocCksICh2cywgZGF0YSwgaSwgaikgPT4gdnMucmVkdWNlUmlnaHQoKGFjYywgdikgPT4gcmVkdWNlcih2LCBhY2MsIGRhdGEsIGksIGopLCBhY2MpKTtcbn1cbmZ1bmN0aW9uIGxlZnRBc3NvYzEocExlZnQsIHBPcGVyKSB7XG4gICAgcmV0dXJuIGNoYWluKHBMZWZ0LCAodjApID0+IHJlZHVjZUxlZnQodjAsIHBPcGVyLCAoYWNjLCBmKSA9PiBmKGFjYykpKTtcbn1cbmZ1bmN0aW9uIHJpZ2h0QXNzb2MxKHBPcGVyLCBwUmlnaHQpIHtcbiAgICByZXR1cm4gYWIocmVkdWNlUmlnaHQocE9wZXIsICh5KSA9PiB5LCAoZiwgYWNjKSA9PiAoeSkgPT4gZihhY2MoeSkpKSwgcFJpZ2h0LCAoZiwgdikgPT4gZih2KSk7XG59XG5mdW5jdGlvbiBsZWZ0QXNzb2MyKHBMZWZ0LCBwT3BlciwgcFJpZ2h0KSB7XG4gICAgcmV0dXJuIGNoYWluKHBMZWZ0LCAodjApID0+IHJlZHVjZUxlZnQodjAsIGFiKHBPcGVyLCBwUmlnaHQsIChmLCB5KSA9PiBbZiwgeV0pLCAoYWNjLCBbZiwgeV0pID0+IGYoYWNjLCB5KSkpO1xufVxuZnVuY3Rpb24gcmlnaHRBc3NvYzIocExlZnQsIHBPcGVyLCBwUmlnaHQpIHtcbiAgICByZXR1cm4gYWIocmVkdWNlUmlnaHQoYWIocExlZnQsIHBPcGVyLCAoeCwgZikgPT4gW3gsIGZdKSwgKHkpID0+IHksIChbeCwgZl0sIGFjYykgPT4gKHkpID0+IGYoeCwgYWNjKHkpKSksIHBSaWdodCwgKGYsIHYpID0+IGYodikpO1xufVxuZnVuY3Rpb24gY29uZGl0aW9uKGNvbmQsIHBUcnVlLCBwRmFsc2UpIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IChjb25kKGRhdGEsIGkpKVxuICAgICAgICA/IHBUcnVlKGRhdGEsIGkpXG4gICAgICAgIDogcEZhbHNlKGRhdGEsIGkpO1xufVxuZnVuY3Rpb24gZGVjaWRlKHApIHtcbiAgICByZXR1cm4gKGRhdGEsIGkpID0+IG1hcE91dGVyKHAoZGF0YSwgaSksIChtMSkgPT4gbTEudmFsdWUoZGF0YSwgbTEucG9zaXRpb24pKTtcbn1cbmZ1bmN0aW9uIGNoYWluKHAsXG5mKSB7XG4gICAgcmV0dXJuIChkYXRhLCBpKSA9PiBtYXBPdXRlcihwKGRhdGEsIGkpLCAobTEpID0+IGYobTEudmFsdWUsIGRhdGEsIGksIG0xLnBvc2l0aW9uKShkYXRhLCBtMS5wb3NpdGlvbikpO1xufVxuZnVuY3Rpb24gYWhlYWQocCkge1xuICAgIHJldHVybiAoZGF0YSwgaSkgPT4gbWFwT3V0ZXIocChkYXRhLCBpKSwgKG0xKSA9PiAoe1xuICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgdmFsdWU6IG0xLnZhbHVlXG4gICAgfSkpO1xufVxuZnVuY3Rpb24gcmVjdXJzaXZlKGYpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGRhdGEsIGkpIHtcbiAgICAgICAgcmV0dXJuIGYoKShkYXRhLCBpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gc3RhcnQoZGF0YSwgaSkge1xuICAgIHJldHVybiAoaSAhPT0gMClcbiAgICAgICAgPyB7IG1hdGNoZWQ6IGZhbHNlIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBtYXRjaGVkOiB0cnVlLFxuICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICB9O1xufVxuZnVuY3Rpb24gZW5kKGRhdGEsIGkpIHtcbiAgICByZXR1cm4gKGkgPCBkYXRhLnRva2Vucy5sZW5ndGgpXG4gICAgICAgID8geyBtYXRjaGVkOiBmYWxzZSB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgfTtcbn1cbmZ1bmN0aW9uIHJlbWFpbmluZ1Rva2Vuc051bWJlcihkYXRhLCBpKSB7XG4gICAgcmV0dXJuIGRhdGEudG9rZW5zLmxlbmd0aCAtIGk7XG59XG5mdW5jdGlvbiBwYXJzZXJQb3NpdGlvbihkYXRhLCBpLCBmb3JtYXRUb2tlbiwgY29udGV4dFRva2VucyA9IDMpIHtcbiAgICBjb25zdCBsZW4gPSBkYXRhLnRva2Vucy5sZW5ndGg7XG4gICAgY29uc3QgbG93SW5kZXggPSB1dGlsLmNsYW1wKDAsIGkgLSBjb250ZXh0VG9rZW5zLCBsZW4gLSBjb250ZXh0VG9rZW5zKTtcbiAgICBjb25zdCBoaWdoSW5kZXggPSB1dGlsLmNsYW1wKGNvbnRleHRUb2tlbnMsIGkgKyAxICsgY29udGV4dFRva2VucywgbGVuKTtcbiAgICBjb25zdCB0b2tlbnNTbGljZSA9IGRhdGEudG9rZW5zLnNsaWNlKGxvd0luZGV4LCBoaWdoSW5kZXgpO1xuICAgIGNvbnN0IGxpbmVzID0gW107XG4gICAgY29uc3QgaW5kZXhXaWR0aCA9IFN0cmluZyhoaWdoSW5kZXggLSAxKS5sZW5ndGggKyAxO1xuICAgIGlmIChpIDwgMCkge1xuICAgICAgICBsaW5lcy5wdXNoKGAke1N0cmluZyhpKS5wYWRTdGFydChpbmRleFdpZHRoKX0gPj5gKTtcbiAgICB9XG4gICAgaWYgKDAgPCBsb3dJbmRleCkge1xuICAgICAgICBsaW5lcy5wdXNoKCcuLi4nLnBhZFN0YXJ0KGluZGV4V2lkdGggKyA2KSk7XG4gICAgfVxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgdG9rZW5zU2xpY2UubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBsb3dJbmRleCArIGo7XG4gICAgICAgIGxpbmVzLnB1c2goYCR7U3RyaW5nKGluZGV4KS5wYWRTdGFydChpbmRleFdpZHRoKX0gJHsoaW5kZXggPT09IGkgPyAnPicgOiAnICcpfSAke3V0aWwuZXNjYXBlV2hpdGVzcGFjZShmb3JtYXRUb2tlbih0b2tlbnNTbGljZVtqXSkpfWApO1xuICAgIH1cbiAgICBpZiAoaGlnaEluZGV4IDwgbGVuKSB7XG4gICAgICAgIGxpbmVzLnB1c2goJy4uLicucGFkU3RhcnQoaW5kZXhXaWR0aCArIDYpKTtcbiAgICB9XG4gICAgaWYgKGxlbiA8PSBpKSB7XG4gICAgICAgIGxpbmVzLnB1c2goYCR7U3RyaW5nKGkpLnBhZFN0YXJ0KGluZGV4V2lkdGgpfSA+PmApO1xuICAgIH1cbiAgICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG59XG5mdW5jdGlvbiBwYXJzZShwYXJzZXIsIHRva2Vucywgb3B0aW9ucywgZm9ybWF0VG9rZW4gPSBKU09OLnN0cmluZ2lmeSkge1xuICAgIGNvbnN0IGRhdGEgPSB7IHRva2VuczogdG9rZW5zLCBvcHRpb25zOiBvcHRpb25zIH07XG4gICAgY29uc3QgcmVzdWx0ID0gcGFyc2VyKGRhdGEsIDApO1xuICAgIGlmICghcmVzdWx0Lm1hdGNoZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBtYXRjaCcpO1xuICAgIH1cbiAgICBpZiAocmVzdWx0LnBvc2l0aW9uIDwgZGF0YS50b2tlbnMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFydGlhbCBtYXRjaC4gUGFyc2luZyBzdG9wcGVkIGF0OlxcbiR7cGFyc2VyUG9zaXRpb24oZGF0YSwgcmVzdWx0LnBvc2l0aW9uLCBmb3JtYXRUb2tlbil9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG59XG5mdW5jdGlvbiB0cnlQYXJzZShwYXJzZXIsIHRva2Vucywgb3B0aW9ucykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlcih7IHRva2VuczogdG9rZW5zLCBvcHRpb25zOiBvcHRpb25zIH0sIDApO1xuICAgIHJldHVybiAocmVzdWx0Lm1hdGNoZWQpXG4gICAgICAgID8gcmVzdWx0LnZhbHVlXG4gICAgICAgIDogdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gbWF0Y2gobWF0Y2hlciwgdG9rZW5zLCBvcHRpb25zKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbWF0Y2hlcih7IHRva2VuczogdG9rZW5zLCBvcHRpb25zOiBvcHRpb25zIH0sIDApO1xuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG59XG5cbmV4cG9ydHMuYWIgPSBhYjtcbmV4cG9ydHMuYWJjID0gYWJjO1xuZXhwb3J0cy5hY3Rpb24gPSBhY3Rpb247XG5leHBvcnRzLmFoZWFkID0gYWhlYWQ7XG5leHBvcnRzLmFsbCA9IGFsbDtcbmV4cG9ydHMuYW5kID0gYWxsO1xuZXhwb3J0cy5hbnkgPSBhbnk7XG5leHBvcnRzLmNoYWluID0gY2hhaW47XG5leHBvcnRzLmNoYWluUmVkdWNlID0gY2hhaW5SZWR1Y2U7XG5leHBvcnRzLmNob2ljZSA9IGNob2ljZTtcbmV4cG9ydHMuY29uZGl0aW9uID0gY29uZGl0aW9uO1xuZXhwb3J0cy5kZWNpZGUgPSBkZWNpZGU7XG5leHBvcnRzLmRpc2NhcmQgPSBza2lwO1xuZXhwb3J0cy5laXRoZXJPciA9IG90aGVyd2lzZTtcbmV4cG9ydHMuZW1pdCA9IGVtaXQ7XG5leHBvcnRzLmVuZCA9IGVuZDtcbmV4cG9ydHMuZW9mID0gZW5kO1xuZXhwb3J0cy5lcnJvciA9IGVycm9yO1xuZXhwb3J0cy5mYWlsID0gZmFpbDtcbmV4cG9ydHMuZmxhdHRlbiA9IGZsYXR0ZW47XG5leHBvcnRzLmZsYXR0ZW4xID0gZmxhdHRlbjE7XG5leHBvcnRzLmxlZnQgPSBsZWZ0O1xuZXhwb3J0cy5sZWZ0QXNzb2MxID0gbGVmdEFzc29jMTtcbmV4cG9ydHMubGVmdEFzc29jMiA9IGxlZnRBc3NvYzI7XG5leHBvcnRzLmxvbmdlc3QgPSBsb25nZXN0O1xuZXhwb3J0cy5sb29rQWhlYWQgPSBhaGVhZDtcbmV4cG9ydHMubWFrZSA9IG1ha2U7XG5leHBvcnRzLm1hbnkgPSBtYW55O1xuZXhwb3J0cy5tYW55MSA9IG1hbnkxO1xuZXhwb3J0cy5tYXAgPSBtYXA7XG5leHBvcnRzLm1hcDEgPSBtYXAxO1xuZXhwb3J0cy5tYXRjaCA9IG1hdGNoO1xuZXhwb3J0cy5taWRkbGUgPSBtaWRkbGU7XG5leHBvcnRzLm5vdCA9IG5vdDtcbmV4cG9ydHMub2YgPSBlbWl0O1xuZXhwb3J0cy5vcHRpb24gPSBvcHRpb247XG5leHBvcnRzLm9yID0gY2hvaWNlO1xuZXhwb3J0cy5vdGhlcndpc2UgPSBvdGhlcndpc2U7XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5leHBvcnRzLnBhcnNlclBvc2l0aW9uID0gcGFyc2VyUG9zaXRpb247XG5leHBvcnRzLnBlZWsgPSBwZWVrO1xuZXhwb3J0cy5yZWN1cnNpdmUgPSByZWN1cnNpdmU7XG5leHBvcnRzLnJlZHVjZUxlZnQgPSByZWR1Y2VMZWZ0O1xuZXhwb3J0cy5yZWR1Y2VSaWdodCA9IHJlZHVjZVJpZ2h0O1xuZXhwb3J0cy5yZW1haW5pbmdUb2tlbnNOdW1iZXIgPSByZW1haW5pbmdUb2tlbnNOdW1iZXI7XG5leHBvcnRzLnJpZ2h0ID0gcmlnaHQ7XG5leHBvcnRzLnJpZ2h0QXNzb2MxID0gcmlnaHRBc3NvYzE7XG5leHBvcnRzLnJpZ2h0QXNzb2MyID0gcmlnaHRBc3NvYzI7XG5leHBvcnRzLnNhdGlzZnkgPSBzYXRpc2Z5O1xuZXhwb3J0cy5zZXBCeSA9IHNlcEJ5O1xuZXhwb3J0cy5zZXBCeTEgPSBzZXBCeTE7XG5leHBvcnRzLnNraXAgPSBza2lwO1xuZXhwb3J0cy5zb21lID0gbWFueTE7XG5leHBvcnRzLnN0YXJ0ID0gc3RhcnQ7XG5leHBvcnRzLnRha2VVbnRpbCA9IHRha2VVbnRpbDtcbmV4cG9ydHMudGFrZVVudGlsUCA9IHRha2VVbnRpbFA7XG5leHBvcnRzLnRha2VXaGlsZSA9IHRha2VXaGlsZTtcbmV4cG9ydHMudGFrZVdoaWxlUCA9IHRha2VXaGlsZVA7XG5leHBvcnRzLnRva2VuID0gdG9rZW47XG5leHBvcnRzLnRyeVBhcnNlID0gdHJ5UGFyc2U7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/peberminta/lib/core.cjs\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./node_modules/peberminta/lib/util.cjs":
|
|
/*!**********************************************!*\
|
|
!*** ./node_modules/peberminta/lib/util.cjs ***!
|
|
\**********************************************/
|
|
/***/ ((__unused_webpack_module, exports) => {
|
|
|
|
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\nfunction clamp(left, x, right) {\n return Math.max(left, Math.min(x, right));\n}\nfunction escapeWhitespace(str) {\n return str.replace(/(\\t)|(\\r)|(\\n)/g, (m, t, r) => t ? '\\\\t' : r ? '\\\\r' : '\\\\n');\n}\n\nexports.clamp = clamp;\nexports.escapeWhitespace = escapeWhitespace;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvcGViZXJtaW50YS9saWIvdXRpbC5janMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDLEVBQUUsYUFBYSxFQUFDOztBQUU3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYTtBQUNiLHdCQUF3QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcGViZXJtaW50YS9saWIvdXRpbC5janMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG5mdW5jdGlvbiBjbGFtcChsZWZ0LCB4LCByaWdodCkge1xuICAgIHJldHVybiBNYXRoLm1heChsZWZ0LCBNYXRoLm1pbih4LCByaWdodCkpO1xufVxuZnVuY3Rpb24gZXNjYXBlV2hpdGVzcGFjZShzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyhcXHQpfChcXHIpfChcXG4pL2csIChtLCB0LCByKSA9PiB0ID8gJ1xcXFx0JyA6IHIgPyAnXFxcXHInIDogJ1xcXFxuJyk7XG59XG5cbmV4cG9ydHMuY2xhbXAgPSBjbGFtcDtcbmV4cG9ydHMuZXNjYXBlV2hpdGVzcGFjZSA9IGVzY2FwZVdoaXRlc3BhY2U7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/peberminta/lib/util.cjs\n");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
; |