oaspect 0.1.0

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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.production.js", "../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js", "../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js", "../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js", "../../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js", "../../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.js", "../../../node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom.production.js", "../../../node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/index.js", "../../../node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.js", "../../../node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.js", "../src/standalone.jsx", "../../react/src/api-reference.jsx", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/identity.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/visit.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/doc/directives.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/doc/anchors.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/doc/applyReviver.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/toJS.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/Node.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/Alias.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/Scalar.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/doc/createNode.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/Collection.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/stringify/stringifyComment.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/stringify/foldFlowLines.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/stringify/stringifyString.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/stringify/stringify.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/stringify/stringifyPair.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/log.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/Pair.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/stringify/stringifyCollection.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/YAMLMap.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/common/map.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/nodes/YAMLSeq.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/common/seq.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/common/string.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/common/null.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/core/bool.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/stringify/stringifyNumber.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/core/float.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/core/int.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/core/schema.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/json/schema.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/tags.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/schema/Schema.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/stringify/stringifyDocument.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/doc/Document.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/errors.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/resolve-props.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/util-contains-newline.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/util-map-includes.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/resolve-block-map.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/resolve-block-seq.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/resolve-end.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/compose-collection.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/compose-scalar.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/compose-node.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/compose-doc.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/compose/composer.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/parse/cst-visit.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/parse/cst.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/parse/lexer.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/parse/line-counter.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/parse/parser.js", "../../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/browser/dist/public-api.js", "../../core/src/refs.ts", "../../core/src/schema.ts", "../../core/src/example.ts", "../../core/src/model.ts", "../../core/src/request.ts", "../../core/src/multipart.ts", "../../core/src/snippets.ts", "../../core/src/i18n.ts", "../../core/src/markdown.ts", "../../core/src/highlight.ts", "../../core/src/security.ts", "../../core/src/convert.ts", "../../core/src/parse.ts", "../../core/src/external.ts", "../../react/src/i18n/context.jsx", "../../react/src/i18n/ar.js", "../../react/src/i18n/en.js", "../../react/src/i18n/tr.js", "../../react/src/i18n/index.js", "../../react/src/lazy.js", "../../react/src/storage.js", "../../react/src/intro.jsx", "../../react/src/markdown.jsx", "../../react/src/code-block.jsx", "../../react/src/spec-context.js", "../../react/src/auth-panel.jsx", "../../react/src/send.js", "../../react/src/models.jsx", "../../react/src/schema-tree.jsx", "../../react/src/icons.jsx", "../../react/src/operation.jsx", "../../react/src/method-badge.jsx", "../../react/src/samples.jsx", "../../react/src/sidebar.jsx", "../../react/src/try-it.jsx", "../../react/src/logo.jsx", "../../react/dist/oaspect.css", "../src/props.jsx"],
4
+ "sourcesContent": ["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.4\";\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n", "/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.4\";\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n", "/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.4\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.4\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.4\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.4\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.4\";\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n", "// Standalone build: React and the viewer in one script for any web page.\n//\n// <div id=\"docs\"></div>\n// <script src=\"https://cdn.jsdelivr.net/npm/oaspect\"></script>\n// <script>Oaspect.init(\"#docs\", { specUrl: \"/openapi.json\" })</script>\n//\n// or declaratively:\n//\n// <oaspect-reference spec-url=\"/openapi.json\"></oaspect-reference>\n// <script src=\"https://cdn.jsdelivr.net/npm/oaspect\" data-spec-url=\"/openapi.json\"></script>\nimport { ApiReference } from \"@oaspect/react\";\nimport css from \"@oaspect/react/styles.css\";\nimport { createRoot, hydrateRoot } from \"react-dom/client\";\nimport { toProps } from \"./props\";\n\nconst VERSION = process.env.OASPECT_VERSION;\nconst STYLE_ID = \"oaspect-styles\";\n\nfunction injectStyles() {\n if (document.getElementById(STYLE_ID)) return;\n const style = document.createElement(\"style\");\n style.id = STYLE_ID;\n style.textContent = css;\n document.head.append(style);\n}\n\n/**\n * Mounts the viewer into `target` (element or selector).\n * @returns {{ update(config: object): void, destroy(): void }}\n */\nexport function init(target, config) {\n const element = typeof target === \"string\" ? document.querySelector(target) : target;\n if (!element) throw new Error(`Oaspect.init: ${target} not found`);\n\n injectStyles();\n const root = createRoot(element);\n root.render(<ApiReference {...toProps(config)} />);\n\n return controls(root, config);\n}\n\nfunction controls(root, initial) {\n let current = initial;\n return {\n update(next) {\n current = { ...current, ...next };\n root.render(<ApiReference {...toProps(current)} />);\n },\n destroy() {\n root.unmount();\n },\n };\n}\n\n/**\n * Attaches to markup prerendered by `oaspect build` (renderToHtml) instead of\n * rendering from scratch. `config` must match the one used for prerendering.\n */\nexport function hydrate(target, config) {\n const element = typeof target === \"string\" ? document.querySelector(target) : target;\n if (!element) throw new Error(`Oaspect.hydrate: ${target} not found`);\n injectStyles();\n const props = toProps(config);\n return controls(hydrateRoot(element, <ApiReference {...props} />), config);\n}\n\n// Attribute (kebab-case) \u2192 config key. Booleans for features use\n// hide=\"try-it,models,source-menu,language-switcher,theme-toggle\".\nconst ATTRIBUTES = {\n \"spec-url\": \"specUrl\",\n title: \"title\",\n locale: \"locale\",\n \"default-locale\": \"defaultLocale\",\n \"proxy-url\": \"proxyUrl\",\n \"storage-prefix\": \"storagePrefix\",\n \"default-snippet\": \"defaultSnippet\",\n theme: \"theme\",\n};\nconst FEATURES = {\n \"try-it\": \"tryIt\",\n models: \"models\",\n \"source-menu\": \"sourceMenu\",\n \"language-switcher\": \"languageSwitcher\",\n \"theme-toggle\": \"themeToggle\",\n};\n\nfunction configFrom(get) {\n const config = {};\n for (const [attribute, key] of Object.entries(ATTRIBUTES)) {\n const value = get(attribute);\n if (value !== null && value !== undefined) config[key] = value;\n }\n const logo = get(\"logo\");\n if (logo) config.logo = { light: logo, dark: get(\"logo-dark\") ?? undefined, alt: get(\"logo-alt\") ?? \"\", label: get(\"logo-label\") ?? undefined };\n const hide = get(\"hide\");\n if (hide) {\n config.features = {};\n for (const name of hide.split(\",\").map((item) => item.trim())) if (FEATURES[name]) config.features[FEATURES[name]] = false;\n }\n return config;\n}\n\nclass OaspectReference extends HTMLElement {\n static get observedAttributes() {\n return [...Object.keys(ATTRIBUTES), \"logo\", \"logo-dark\", \"logo-alt\", \"logo-label\", \"hide\"];\n }\n\n #instance = null;\n #spec = undefined;\n\n /** OpenAPI document object (alternative to the spec-url attribute). */\n set spec(value) {\n this.#spec = value;\n this.#render();\n }\n\n get spec() {\n return this.#spec;\n }\n\n connectedCallback() {\n this.#render();\n }\n\n disconnectedCallback() {\n this.#instance?.destroy();\n this.#instance = null;\n }\n\n attributeChangedCallback() {\n if (this.#instance) this.#render();\n }\n\n #render() {\n if (!this.isConnected) return;\n const config = { ...configFrom((name) => this.getAttribute(name)), ...(this.#spec ? { spec: this.#spec } : {}) };\n if (this.#instance) this.#instance.update(config);\n else this.#instance = init(this, config);\n }\n}\n\nif (typeof customElements !== \"undefined\" && !customElements.get(\"oaspect-reference\")) {\n customElements.define(\"oaspect-reference\", OaspectReference);\n}\n\n// <script src=\"oaspect.js\" data-spec-url=\"\u2026\"> mounts itself into #oaspect,\n// or into a new element after the script.\nconst script = typeof document !== \"undefined\" ? document.currentScript : null;\nif (script?.dataset.specUrl) {\n const mount = () => {\n let target = document.getElementById(\"oaspect\");\n if (!target) {\n target = document.createElement(\"div\");\n script.after(target);\n }\n init(target, configFrom((name) => script.getAttribute(`data-${name}`)));\n };\n if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", mount);\n else mount();\n}\n\nexport { VERSION as version };\n", "\"use client\";\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { applySecurity, buildModel, loadSpec, loadSpecText, normalizeSpec, securityRequirements, serverUrl } from \"@oaspect/core\";\nimport { LocaleProvider, useAvailableLocales, useLocale, useLocalized, useSetLocale, useT } from \"./i18n/context\";\nimport { LOCALE_NAMES, directionOf, mergeMessages } from \"./i18n/index\";\nimport { LazyContext, scrollToAnchor } from \"./lazy\";\nimport { createStorage } from \"./storage\";\nimport Intro from \"./intro\";\nimport Markdown from \"./markdown\";\nimport Models from \"./models\";\nimport Operation from \"./operation\";\nimport Sidebar from \"./sidebar\";\nimport { ModelContext, SettingsContext, SpecContext } from \"./spec-context\";\nimport TryIt from \"./try-it\";\nimport { MenuIcon, MoonIcon, SunIcon } from \"./icons\";\n\n// Header a spec endpoint can send to say it served a fallback copy, e.g.\n// when the live document was unreachable. The viewer then shows a notice.\nexport const SPEC_SOURCE_HEADER = \"x-oaspect-spec-source\";\n\n// Errors are kept as translation keys (or { key, params }) and translated\n// when rendered, so they follow later language switches too.\n\nfunction LanguageToggle() {\n const locale = useLocale();\n const setLocale = useSetLocale();\n const locales = useAvailableLocales();\n const t = useT();\n\n return (\n // The native select sits invisibly on top: the button shows the short\n // code (\"TR\"), the opened list shows full language names.\n <label\n title={t(\"header.language\")}\n className=\"relative flex cursor-pointer items-center gap-1.5 rounded-lg border border-border px-2.5 py-1.5 text-sm font-medium text-muted-foreground hover:text-foreground\"\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" className=\"size-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\" />\n </svg>\n <span className=\"uppercase\">{locale}</span>\n <select\n value={locale}\n onChange={(event) => setLocale(event.target.value)}\n aria-label={t(\"header.language\")}\n className=\"absolute inset-0 cursor-pointer opacity-0\"\n >\n {locales.map((item) => (\n <option key={item} value={item}>\n {LOCALE_NAMES[item] ?? item}\n </option>\n ))}\n </select>\n </label>\n );\n}\n\nfunction ThemeToggle({ theme, onChange }) {\n const t = useT();\n\n return (\n <button\n type=\"button\"\n onClick={() => onChange(theme === \"dark\" ? \"light\" : \"dark\")}\n aria-label={t(\"header.theme\")}\n title={t(\"header.theme\")}\n className=\"rounded-lg border border-border p-2 text-muted-foreground hover:text-foreground\"\n >\n <MoonIcon className=\"size-4 dark:hidden\" />\n <SunIcon className=\"hidden size-4 dark:block\" />\n </button>\n );\n}\n\nfunction SourceMenu({ source, defaultLabel, onUrl, onFile, onDefault }) {\n const [draft, setDraft] = useState(source.type === \"url\" ? source.url : \"\");\n const fileInput = useRef(null);\n const menu = useRef(null);\n const close = () => menu.current?.removeAttribute(\"open\");\n const t = useT();\n\n return (\n <details ref={menu} className=\"relative\">\n <summary\n title={t(\"source.title\")}\n className=\"flex cursor-pointer list-none items-center gap-1.5 rounded-lg border border-border px-2.5 py-1.5 text-sm font-medium text-muted-foreground hover:text-foreground [&::-webkit-details-marker]:hidden\"\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" className=\"size-4\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <path d=\"M14 2v6h6M10 13l-2 2 2 2M14 13l2 2-2 2\" />\n </svg>\n <span className=\"hidden sm:inline\">{t(\"source.title\")}</span>\n </summary>\n <div className=\"absolute end-0 z-40 mt-2 w-80 space-y-3 rounded-xl border border-border bg-background p-4 shadow-xl\">\n <button\n type=\"button\"\n onClick={() => {\n onDefault();\n close();\n }}\n className={`block w-full rounded-lg border px-3 py-2 text-start text-sm ${\n source.type === \"default\" ? \"border-primary text-primary\" : \"border-border hover:border-primary\"\n }`}\n >\n {t(\"source.default\")}\n {defaultLabel && <span className=\"block truncate font-mono text-[11px] text-muted-foreground\">{defaultLabel}</span>}\n </button>\n <form\n onSubmit={(event) => {\n event.preventDefault();\n if (draft.trim()) {\n onUrl(draft.trim());\n close();\n }\n }}\n className=\"space-y-2\"\n >\n <input\n type=\"url\"\n value={draft}\n onChange={(event) => setDraft(event.target.value)}\n placeholder=\"https://…/swagger.json\"\n dir=\"ltr\"\n className=\"w-full rounded-lg border border-border bg-background px-3 py-1.5 font-mono text-xs outline-none focus:border-primary\"\n />\n <button type=\"submit\" className=\"w-full rounded-lg border border-border px-3 py-1.5 text-sm hover:border-primary hover:text-primary\">\n {t(\"source.loadUrl\")}\n </button>\n </form>\n <button\n type=\"button\"\n onClick={() => fileInput.current?.click()}\n className=\"w-full rounded-lg border border-dashed border-border px-3 py-2 text-sm hover:border-primary hover:text-primary\"\n >\n {source.type === \"file\" ? t(\"source.file\", { name: source.name }) : t(\"source.chooseFile\")}\n </button>\n <input\n ref={fileInput}\n type=\"file\"\n accept=\".json,.yaml,.yml,application/json,application/yaml,text/yaml\"\n className=\"hidden\"\n onChange={(event) => {\n const file = event.target.files?.[0];\n event.target.value = \"\";\n if (file) {\n onFile(file);\n close();\n }\n }}\n />\n </div>\n </details>\n );\n}\n\n// Loads a referenced document for external $refs.\nasync function readText(url) {\n const response = await fetch(url);\n if (!response.ok) throw new Error(`${url} → HTTP ${response.status}`);\n return response.text();\n}\n\nfunction systemTheme() {\n try {\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n } catch {\n return \"light\";\n }\n}\n\nconst LAZY_THRESHOLD = 40;\nconst EAGER_OPERATIONS = 8;\n\nconst DEFAULT_FEATURES = {\n sourceMenu: true,\n languageSwitcher: true,\n themeToggle: true,\n tryIt: true,\n models: true,\n};\n\nfunction Viewer({\n spec: inlineSpec,\n specUrl,\n title,\n logo,\n storagePrefix,\n proxyUrl,\n features: featureOverrides,\n defaultSnippet,\n urlParam,\n theme: themeProp,\n lazy,\n}) {\n const features = { ...DEFAULT_FEATURES, ...featureOverrides };\n const storage = useMemo(() => createStorage(storagePrefix), [storagePrefix]);\n const rootRef = useRef(null);\n const locale = useLocale();\n const [nestedInMain, setNestedInMain] = useState(false);\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect -- reads the host DOM once\n setNestedInMain(Boolean(rootRef.current?.parentElement?.closest(\"main, [role=main]\")));\n }, []);\n\n const [source, setSource] = useState({ type: \"pending\" });\n // Inline documents are normalized too (Swagger 2.0 → OpenAPI 3).\n const normalizedInline = useMemo(() => (inlineSpec ? normalizeSpec(inlineSpec) : null), [inlineSpec]);\n const [spec, setSpec] = useState(normalizedInline);\n const [error, setError] = useState(\"\");\n // True when the spec endpoint answered with SPEC_SOURCE_HEADER: fallback.\n const [usingFallback, setUsingFallback] = useState(false);\n const [activeAnchor, setActiveAnchor] = useState(\"introduction\");\n const [sidebarOpen, setSidebarOpen] = useState(false);\n const [tryOperation, setTryOperation] = useState(null);\n const searchRef = useRef(null);\n const t = useT();\n const localized = useLocalized();\n\n const [serverIndex, setServerIndex] = useState(0);\n const [customServer, setCustomServer] = useState(\"\");\n // Server variable values per server index: { 0: { region: \"us\" } }.\n const [serverVariables, setServerVariables] = useState({});\n const [token, setToken] = useState(\"\");\n // Credentials per security scheme name (components.securitySchemes).\n const [credentials, setCredentials] = useState({});\n const [language, setLanguage] = useState(defaultSnippet);\n // null until mounted: the host's own data-theme (if any) applies meanwhile,\n // so a server-rendered page does not flash the wrong theme.\n const [theme, setTheme] = useState(themeProp ?? null);\n\n // Restore per-browser preferences and the ?url= source after hydration.\n useEffect(() => {\n /* eslint-disable react-hooks/set-state-in-effect -- one-time sync from browser-only state */\n setToken(storage.get(\"token\", \"\"));\n try {\n setCredentials(JSON.parse(storage.get(\"credentials\", \"{}\")) ?? {});\n } catch {\n // Ignore unreadable stored credentials.\n }\n setLanguage(storage.get(\"language\", defaultSnippet));\n if (!themeProp) setTheme(storage.get(\"theme\") ?? document.documentElement.dataset.theme ?? systemTheme());\n const url = urlParam ? new URLSearchParams(window.location.search).get(urlParam) : null;\n setSource(url ? { type: \"url\", url } : { type: \"default\" });\n /* eslint-enable react-hooks/set-state-in-effect */\n }, [storage, defaultSnippet, urlParam, themeProp]);\n\n useEffect(() => storage.set(\"token\", token), [storage, token]);\n useEffect(() => storage.set(\"credentials\", Object.keys(credentials).length ? JSON.stringify(credentials) : null), [storage, credentials]);\n useEffect(() => storage.set(\"language\", language), [storage, language]);\n\n function changeTheme(next) {\n setTheme(next);\n storage.set(\"theme\", next);\n // Hosts that theme <html data-theme> (e.g. with a no-flash script) stay in\n // sync, otherwise their attribute would keep matching the dark: variant.\n if (document.documentElement.hasAttribute(\"data-theme\")) document.documentElement.dataset.theme = next;\n }\n\n // Inline specs need no fetching; specUrl and ?url= sources do. File\n // sources are loaded directly in loadFile().\n useEffect(() => {\n if (source.type === \"default\" && normalizedInline) {\n /* eslint-disable react-hooks/set-state-in-effect -- adopting a new inline spec */\n setSpec(normalizedInline);\n setUsingFallback(false);\n setError(\"\");\n /* eslint-enable react-hooks/set-state-in-effect */\n return;\n }\n if (source.type !== \"default\" && source.type !== \"url\") return;\n const url = source.type === \"url\" ? source.url : specUrl;\n if (!url) return;\n let cancelled = false;\n\n if (urlParam) {\n const params = new URLSearchParams(window.location.search);\n if (source.type === \"url\") params.set(urlParam, url);\n else params.delete(urlParam);\n const search = params.toString();\n window.history.replaceState(null, \"\", `${window.location.pathname}${search ? `?${search}` : \"\"}${window.location.hash}`);\n }\n\n fetch(url)\n .then(async (response) => {\n if (!response.ok) throw new Error(`${url} → HTTP ${response.status}`);\n return { text: await response.text(), fallback: response.headers.get(SPEC_SOURCE_HEADER) === \"fallback\" };\n })\n .then(async ({ text, fallback }) => {\n // JSON or YAML; Swagger 2.0 is converted to OpenAPI 3; external\n // $refs resolve relative to the document's URL.\n const json = await loadSpec(text, { baseUrl: new URL(url, window.location.href).href, read: readText });\n if (!cancelled) {\n setSpec(json);\n setUsingFallback(fallback);\n setError(\"\");\n }\n })\n .catch((err) => !cancelled && setError(err.message));\n\n return () => {\n cancelled = true;\n };\n }, [source, specUrl, normalizedInline, urlParam]);\n\n async function loadFile(file) {\n try {\n const json = loadSpecText(await file.text());\n setSource({ type: \"file\", name: file.name });\n setSpec(json);\n setUsingFallback(false);\n setError(\"\");\n } catch (err) {\n setError({ key: \"spec.unreadableFile\", params: { name: file.name, error: err.message } });\n }\n }\n\n const model = useMemo(() => (spec ? buildModel(spec) : null), [spec]);\n // \"auto\": render sections lazily only for documents large enough to need it.\n const lazyEnabled = lazy === true || (lazy === \"auto\" && (model?.operations.length ?? 0) > LAZY_THRESHOLD);\n // The first operations render eagerly so the top of the page is complete.\n const eagerAnchors = useMemo(() => new Set(model?.operations.slice(0, EAGER_OPERATIONS).map((operation) => operation.anchor)), [model]);\n\n // Reset the server choice whenever a new spec is loaded.\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect -- derived reset on spec change\n setServerIndex(0);\n }, [model]);\n\n const schemes = useMemo(() => model?.securitySchemes ?? {}, [model]);\n\n const settings = useMemo(() => {\n const servers = model?.servers ?? [];\n const selected = serverIndex === -1 ? { url: customServer } : servers[serverIndex] ?? servers[0];\n const variableValues = serverVariables[serverIndex] ?? {};\n // Variables are resolved here so requests and samples see a plain URL.\n const server = selected ? { url: serverUrl(selected, variableValues) } : undefined;\n return {\n servers,\n server,\n selectedServer: selected,\n variableValues,\n setVariable: (name, value) =>\n setServerVariables((current) => ({ ...current, [serverIndex]: { ...current[serverIndex], [name]: value } })),\n serverIndex,\n setServerIndex,\n customServer,\n setCustomServer,\n token,\n setToken,\n credentials,\n setCredential: (name, patch) => setCredentials((current) => ({ ...current, [name]: { ...current[name], ...patch } })),\n securitySchemes: schemes,\n // Headers, query parameters and cookies an operation needs. Without\n // securitySchemes in the document, the generic Bearer token applies.\n authFor: (operation) =>\n Object.keys(schemes).length\n ? applySecurity(schemes, securityRequirements(operation), credentials)\n : { headers: token ? { Authorization: `Bearer ${token}` } : {}, query: {}, cookies: {} },\n language,\n setLanguage,\n proxyUrl,\n storage,\n features,\n };\n // features is rebuilt each render from props; its fields are what matter.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [model, schemes, serverIndex, customServer, serverVariables, token, credentials, language, proxyUrl, storage, features.tryIt]);\n\n // Scroll spy: the section crossing the band under the header is active.\n useEffect(() => {\n if (!model || !rootRef.current) return;\n const observer = new IntersectionObserver(\n (entries) => {\n const visible = entries.filter((entry) => entry.isIntersecting);\n if (visible.length) setActiveAnchor(visible[visible.length - 1].target.id);\n },\n { rootMargin: \"-72px 0px -70% 0px\" },\n );\n rootRef.current.querySelectorAll(\"[data-anchor]\").forEach((node) => observer.observe(node));\n\n const target = decodeURIComponent(window.location.hash.slice(1));\n if (target) scrollToAnchor(target);\n\n // Anchor links jump to a section whose neighbours may still render;\n // keep the target in place while they do.\n const onHash = () => scrollToAnchor(decodeURIComponent(window.location.hash.slice(1)));\n window.addEventListener(\"hashchange\", onHash);\n\n return () => {\n observer.disconnect();\n window.removeEventListener(\"hashchange\", onHash);\n };\n }, [model]);\n\n // ⌘K / Ctrl+K focuses the sidebar search.\n useEffect(() => {\n function onKey(event) {\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === \"k\") {\n event.preventDefault();\n setSidebarOpen(true);\n requestAnimationFrame(() => searchRef.current?.focus());\n }\n }\n window.addEventListener(\"keydown\", onKey);\n return () => window.removeEventListener(\"keydown\", onKey);\n }, []);\n\n const closeSidebar = useCallback(() => setSidebarOpen(false), []);\n const openTry = useCallback((operation) => setTryOperation(operation), []);\n const heading = title ?? (model ? localized(model.info, \"title\") : \"\");\n\n return (\n <SpecContext.Provider value={spec}>\n <ModelContext.Provider value={model}>\n <SettingsContext.Provider value={settings}>\n {/* .oaspect scopes the stylesheet and carries theme, direction and\n language; layout utilities live on the inner element because\n scoped selectors only match descendants. */}\n <div ref={rootRef} className=\"oaspect\" data-theme={theme ?? undefined} dir={directionOf(locale)} lang={locale}>\n <div className=\"min-h-dvh bg-background text-foreground\">\n <header className=\"sticky top-0 z-30 flex h-14 items-center gap-3 border-b border-border bg-background/85 px-4 backdrop-blur\">\n <a\n href=\"#oaspect-content\"\n className=\"absolute start-2 top-2 z-50 -translate-y-20 rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground focus:translate-y-0\"\n >\n {t(\"header.skip\")}\n </a>\n <button\n type=\"button\"\n onClick={() => setSidebarOpen(!sidebarOpen)}\n aria-label={t(\"header.menu\")}\n className=\"rounded-lg border border-border p-2 lg:hidden\"\n >\n <MenuIcon className=\"size-4\" />\n </button>\n <a href=\"#introduction\" className=\"flex min-w-0 items-center gap-2\">\n {logo ?? <span className=\"truncate text-sm font-semibold\">{heading}</span>}\n </a>\n {model && logo && (\n <span className=\"hidden truncate text-sm text-muted-foreground md:inline\">\n {heading} <span className=\"font-mono text-xs\">v{model.info.version}</span>\n </span>\n )}\n <div className=\"ms-auto flex items-center gap-2\">\n {features.sourceMenu && source.type !== \"pending\" && (\n <SourceMenu\n key={`${source.type}:${source.url ?? source.name ?? \"\"}`}\n source={source}\n defaultLabel={specUrl}\n onDefault={() => setSource({ type: \"default\" })}\n onUrl={(url) => setSource({ type: \"url\", url })}\n onFile={loadFile}\n />\n )}\n {features.languageSwitcher && <LanguageToggle />}\n {features.themeToggle && <ThemeToggle theme={theme} onChange={changeTheme} />}\n </div>\n </header>\n\n {error && (\n <div className=\"border-b border-rose-500/30 bg-rose-500/10 px-4 py-2 text-sm text-rose-700 dark:text-rose-300\">\n {t(\"spec.loadFailed\", { error: typeof error === \"string\" ? t(error) : t(error.key, error.params) })}\n </div>\n )}\n\n {usingFallback && source.type === \"default\" && (\n <div className=\"border-b border-amber-500/30 bg-amber-500/10 px-4 py-2 text-sm text-amber-800 dark:text-amber-200\">\n {t(\"spec.fallback\")}\n </div>\n )}\n\n {!model ? (\n !error && <p className=\"p-10 text-center text-sm text-muted-foreground\">{t(\"spec.loading\")}</p>\n ) : (\n <div className=\"flex\">\n <aside\n className={`fixed inset-y-0 start-0 top-14 z-20 w-72 shrink-0 border-e border-border bg-card transition-transform lg:sticky lg:h-[calc(100dvh-3.5rem)] lg:translate-x-0 lg:rtl:translate-x-0 ${\n sidebarOpen ? \"translate-x-0\" : \"-translate-x-full rtl:translate-x-full\"\n }`}\n >\n <Sidebar model={model} activeAnchor={activeAnchor} searchRef={searchRef} onNavigate={closeSidebar} showModels={features.models} />\n </aside>\n {sidebarOpen && (\n <div className=\"fixed inset-0 top-14 z-10 bg-black/30 lg:hidden\" onClick={closeSidebar} aria-hidden=\"true\" />\n )}\n\n <LazyContext.Provider value={lazyEnabled}>\n {/* role=\"main\" unless the host page already has a main landmark around us. */}\n <div id=\"oaspect-content\" tabIndex={-1} role={nestedInMain ? \"region\" : \"main\"} aria-label={nestedInMain ? heading : undefined} className=\"min-w-0 flex-1 px-4 outline-none sm:px-8 xl:px-12\">\n <div className=\"mx-auto max-w-[88rem]\">\n <Intro spec={spec} model={model} />\n {model.tags.map((tag) => (\n <section key={tag.name} id={tag.anchor} data-anchor className=\"pt-14\">\n <h2 className=\"text-3xl font-bold tracking-tight [overflow-wrap:anywhere]\">{localized(tag, \"name\")}</h2>\n <Markdown source={localized(tag, \"description\")} className=\"mt-3 max-w-3xl text-muted-foreground\" />\n {tag.operations.map((operation) => (\n <Operation\n key={operation.anchor}\n operation={operation}\n onTry={features.tryIt ? openTry : null}\n eager={eagerAnchors.has(operation.anchor)}\n />\n ))}\n </section>\n ))}\n {model.webhooks.length > 0 && (\n <section id=\"webhooks\" data-anchor className=\"pt-14\">\n <h2 className=\"text-3xl font-bold tracking-tight\">{t(\"webhooks.title\")}</h2>\n <p className=\"mt-3 max-w-3xl text-sm text-muted-foreground\">{t(\"webhooks.hint\")}</p>\n {model.webhooks.map((operation) => (\n <Operation key={operation.anchor} operation={operation} onTry={null} />\n ))}\n </section>\n )}\n {features.models && <Models schemas={model.schemas} />}\n </div>\n </div>\n </LazyContext.Provider>\n </div>\n )}\n\n {tryOperation && <TryIt key={tryOperation.anchor} operation={tryOperation} onClose={() => setTryOperation(null)} />}\n </div>\n </div>\n </SettingsContext.Provider>\n </ModelContext.Provider>\n </SpecContext.Provider>\n );\n}\n\n/**\n * Interactive API reference for an OpenAPI 3.x document.\n *\n * @param {import(\"./index\").ApiReferenceProps} props\n */\nexport function ApiReference({\n spec,\n specUrl,\n title,\n logo,\n locale,\n defaultLocale = \"en\",\n onLocaleChange,\n messages,\n storagePrefix = \"oaspect\",\n proxyUrl = null,\n features,\n defaultSnippet = \"shell:curl\",\n urlParam = \"url\",\n theme,\n lazy = \"auto\",\n}) {\n const merged = useMemo(() => mergeMessages(messages), [messages]);\n\n return (\n <LocaleProvider locale={locale} defaultLocale={defaultLocale} onLocaleChange={onLocaleChange} messages={merged}>\n <Viewer\n spec={spec}\n specUrl={specUrl}\n title={title}\n logo={logo}\n storagePrefix={storagePrefix}\n proxyUrl={proxyUrl}\n features={features}\n defaultSnippet={defaultSnippet}\n urlParam={urlParam}\n theme={theme}\n lazy={lazy}\n />\n </LocaleProvider>\n );\n}\n", "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 if (found && ctx) {\n const { anchors, doc, maxAliasCount } = ctx;\n let data = anchors.get(found);\n if (!data) {\n // Resolve anchors for Node.prototype.toJS()\n toJS(found, null, ctx);\n data = anchors.get(found);\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, found, 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 }\n return found;\n }\n toJSON(_arg, ctx) {\n if (!ctx)\n return { source: this.source };\n const source = this.resolve(ctx.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 return ctx.anchors.get(source).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 = '\u2026' + lineStr.substring(trimStart);\n ci -= trimStart - 1;\n }\n if (lineStr.length > 80)\n lineStr = lineStr.substring(0, 79) + '\u2026';\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) + '\u2026\\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 // \u2192 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 unfoldLines(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 unfoldLines(source.slice(1, -1)).replace(/''/g, \"'\");\n}\nfunction unfoldLines(source) {\n const line = /(.*?)\\r?\\n/sy;\n let match = line.exec(source);\n if (!match)\n return source;\n /**\n * The negative lookbehinds in these RegExps are to\n * prevent causing a polynomial search time in certain cases.\n *\n * The try-catch is for Safari < 16.4 and other old browsers:\n * https://caniuse.com/js-regexp-lookbehind\n */\n let trimEnd, trimBoth;\n try {\n trimEnd = new RegExp('(?<![ \\t])[ \\t]+$');\n trimBoth = new RegExp('^[ \\t]+|(?<![ \\t])[ \\t]+$', 'g');\n }\n catch {\n trimEnd = /[ \\t]+$/;\n trimBoth = /^[ \\t]+|[ \\t]+$/g;\n }\n let res = match[1].replace(trimEnd, '');\n let sep = ' ';\n let pos = line.lastIndex;\n while ((match = line.exec(source))) {\n const lm = match[1].replace(trimBoth, '');\n if (lm === '') {\n if (sep === '\\n')\n res += sep;\n else\n sep = '\\n';\n }\n else {\n res += sep + lm;\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", "const BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove item');\n/**\n * Apply a visitor to a CST document or item.\n *\n * Walks through the tree (depth-first) starting from the root, calling a\n * `visitor` function with two arguments when entering each item:\n * - `item`: The current item, which included the following members:\n * - `start: SourceToken[]` \u2013 Source tokens before the key or value,\n * possibly including its anchor or tag.\n * - `key?: Token | null` \u2013 Set for pair values. May then be `null`, if\n * the key before the `:` separator is empty.\n * - `sep?: SourceToken[]` \u2013 Source tokens between the key and the value,\n * which should include the `:` map value indicator if `value` is set.\n * - `value?: Token` \u2013 The value of a sequence item, or of a map pair.\n * - `path`: The steps from the root to the current node, as an array of\n * `['key' | 'value', number]` tuples.\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 token, continue with\n * next sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current item, then continue with the next one\n * - `number`: Set the index of the next step. This is useful especially if\n * the index of the current token has changed.\n * - `function`: Define the next visitor for this item. After the original\n * visitor is called on item entry, next visitors are called after handling\n * a non-empty `key` and when exiting the item.\n */\nfunction visit(cst, visitor) {\n if ('type' in cst && cst.type === 'document')\n cst = { start: cst.start, value: cst.value };\n _visit(Object.freeze([]), cst, visitor);\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 item */\nvisit.SKIP = SKIP;\n/** Remove the current item */\nvisit.REMOVE = REMOVE;\n/** Find the item at `path` from `cst` as the root */\nvisit.itemAtPath = (cst, path) => {\n let item = cst;\n for (const [field, index] of path) {\n const tok = item?.[field];\n if (tok && 'items' in tok) {\n item = tok.items[index];\n }\n else\n return undefined;\n }\n return item;\n};\n/**\n * Get the immediate parent collection of the item at `path` from `cst` as the root.\n *\n * Throws an error if the collection is not found, which should never happen if the item itself exists.\n */\nvisit.parentCollection = (cst, path) => {\n const parent = visit.itemAtPath(cst, path.slice(0, -1));\n const field = path[path.length - 1][0];\n const coll = parent?.[field];\n if (coll && 'items' in coll)\n return coll;\n throw new Error('Parent collection not found');\n};\nfunction _visit(path, item, visitor) {\n let ctrl = visitor(item, path);\n if (typeof ctrl === 'symbol')\n return ctrl;\n for (const field of ['key', 'value']) {\n const token = item[field];\n if (token && 'items' in token) {\n for (let i = 0; i < token.items.length; ++i) {\n const ci = _visit(Object.freeze(path.concat([[field, i]])), token.items[i], visitor);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n token.items.splice(i, 1);\n i -= 1;\n }\n }\n if (typeof ctrl === 'function' && field === 'key')\n ctrl = ctrl(item, path);\n }\n }\n return typeof ctrl === 'function' ? ctrl(item, path) : ctrl;\n}\n\nexport { visit };\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 type { OpenAPIObject } from \"./types\";\n\n// JSON Pointer helpers for local \"$ref\"s (\"#/components/schemas/Foo\").\n\nexport function resolvePointer(spec: OpenAPIObject, ref: unknown): any {\n if (typeof ref !== \"string\" || !ref.startsWith(\"#/\")) return undefined;\n\n return ref\n .slice(2)\n .split(\"/\")\n .map((part) => part.replace(/~1/g, \"/\").replace(/~0/g, \"~\"))\n .reduce((node, key) => node?.[key], spec);\n}\n\nexport function refName(ref: string): string {\n return ref.split(\"/\").pop() ?? ref;\n}\n\n// Follows a (possibly chained) $ref and returns the target plus the last ref seen.\nexport function deref(spec: OpenAPIObject, node: any): { node: OpenAPIObject; ref?: string } {\n let ref: string | undefined;\n let hops = 0;\n\n while (node?.$ref && hops++ < 32) {\n ref = node.$ref;\n node = resolvePointer(spec, ref);\n }\n\n return { node: node ?? {}, ref };\n}\n", "import { deref, refName } from \"./refs\";\nimport type { OpenAPIObject, ResolvedSchema, SchemaChildren } from \"./types\";\n\nfunction mergeInto(target: OpenAPIObject, source: OpenAPIObject) {\n for (const [key, value] of Object.entries(source)) {\n if (key === \"properties\") {\n target.properties = { ...target.properties, ...value };\n } else if (key === \"required\") {\n target.required = [...new Set([...(target.required ?? []), ...value])];\n } else {\n target[key] = value;\n }\n }\n}\n\n// Resolves $ref and flattens allOf so the renderer only deals with plain\n// schemas. `name` is the component name when the schema came from a $ref,\n// including the common `{ allOf: [{ $ref }], nullable: true }` wrapper.\nexport function resolveSchema(spec: OpenAPIObject, input: unknown): ResolvedSchema {\n const { node, ref } = deref(spec, input);\n let schema = node;\n let name = ref ? refName(ref) : undefined;\n\n if (Array.isArray(schema.allOf)) {\n const { allOf, ...rest } = schema;\n const merged: OpenAPIObject = {};\n\n for (const part of allOf) {\n mergeInto(merged, resolveSchema(spec, part).schema);\n }\n mergeInto(merged, rest);\n\n if (!name && allOf.length === 1 && allOf[0].$ref) {\n name = refName(allOf[0].$ref);\n }\n schema = merged;\n }\n\n return { schema, name };\n}\n\nexport function inferType(schema: OpenAPIObject): string {\n if (schema.type) return Array.isArray(schema.type) ? schema.type.join(\" | \") : schema.type;\n if (schema.properties || schema.additionalProperties) return \"object\";\n if (schema.items) return \"array\";\n if (schema.oneOf) return \"oneOf\";\n if (schema.anyOf) return \"anyOf\";\n return \"any\";\n}\n\n// Short, human readable type such as \"string<email>\" or \"array<DummyEntity>\".\nexport function typeLabel(spec: OpenAPIObject, schema: OpenAPIObject, name?: string): string {\n const type = inferType(schema);\n\n if (type === \"array\" && schema.items) {\n const item = resolveSchema(spec, schema.items);\n return `array<${item.name ?? typeLabel(spec, item.schema)}>`;\n }\n if (type === \"object\" && name) return name;\n if (schema.format) return `${type}<${schema.format}>`;\n return type;\n}\n\nexport function constraintsOf(schema: OpenAPIObject): string[] {\n const list: string[] = [];\n const add = (label: string, value: unknown) => value !== undefined && list.push(`${label} ${value}`);\n\n add(\"min length\", schema.minLength);\n add(\"max length\", schema.maxLength);\n add(schema.exclusiveMinimum === true ? \">\" : \"≥\", schema.minimum);\n add(schema.exclusiveMaximum === true ? \"<\" : \"≤\", schema.maximum);\n // OpenAPI 3.1 uses numeric exclusive bounds.\n if (typeof schema.exclusiveMinimum === \"number\") add(\">\", schema.exclusiveMinimum);\n if (typeof schema.exclusiveMaximum === \"number\") add(\"<\", schema.exclusiveMaximum);\n add(\"multiple of\", schema.multipleOf);\n add(\"min items\", schema.minItems);\n add(\"max items\", schema.maxItems);\n if (schema.uniqueItems) list.push(\"unique items\");\n\n return list;\n}\n\n// Returns child fields to render under a schema, or null when it is a leaf.\nexport function childrenOf(spec: OpenAPIObject, schema: OpenAPIObject): SchemaChildren {\n const type = inferType(schema);\n\n if (type === \"array\" && schema.items) {\n const item = resolveSchema(spec, schema.items);\n return childrenOf(spec, item.schema) ? { kind: \"items\", ...item } : null;\n }\n if (schema.oneOf || schema.anyOf) {\n const variants = (schema.oneOf ?? schema.anyOf).map((variant) => resolveSchema(spec, variant));\n return { kind: schema.oneOf ? \"oneOf\" : \"anyOf\", variants };\n }\n if (schema.properties && Object.keys(schema.properties).length > 0) {\n return { kind: \"properties\" };\n }\n if (schema.additionalProperties && typeof schema.additionalProperties === \"object\") {\n const value = resolveSchema(spec, schema.additionalProperties);\n return childrenOf(spec, value.schema) ? { kind: \"map\", ...value } : null;\n }\n return null;\n}\n", "import { deref } from \"./refs\";\nimport { inferType, resolveSchema } from \"./schema\";\nimport type { OpenAPIObject } from \"./types\";\n\nconst STRING_FORMATS: Record<string, string> = {\n \"date-time\": \"2026-01-01T09:00:00Z\",\n date: \"2026-01-01\",\n time: \"09:00:00\",\n email: \"user@example.com\",\n uri: \"https://example.com\",\n url: \"https://example.com\",\n uuid: \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n ipv4: \"192.168.0.1\",\n ipv6: \"::1\",\n password: \"********\",\n byte: \"U3dhZ2dlcg==\",\n};\n\n// Builds a representative value from a schema. Explicit example/default/enum\n// values win; otherwise a placeholder is generated per type.\nexport function exampleFromSchema(spec: OpenAPIObject, input: unknown, seen: Set<string> = new Set(), depth = 0): any {\n if (!input || depth > 8) return undefined;\n\n const { schema, name } = resolveSchema(spec, input);\n if (name && seen.has(name)) return {};\n const nextSeen = name ? new Set(seen).add(name) : seen;\n\n if (schema.example !== undefined) return schema.example;\n if (Array.isArray(schema.examples) && schema.examples.length) return schema.examples[0];\n if (schema.default !== undefined) return schema.default;\n if (Array.isArray(schema.enum) && schema.enum.length) return schema.enum[0];\n if (schema.const !== undefined) return schema.const;\n\n const variants = schema.oneOf ?? schema.anyOf;\n if (variants?.length) return exampleFromSchema(spec, variants[0], nextSeen, depth + 1);\n\n switch (inferType(schema)) {\n case \"object\": {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(schema.properties ?? {})) {\n if (resolveSchema(spec, value).schema.writeOnly) continue;\n result[key] = exampleFromSchema(spec, value, nextSeen, depth + 1);\n }\n if (!schema.properties && typeof schema.additionalProperties === \"object\") {\n result.key = exampleFromSchema(spec, schema.additionalProperties, nextSeen, depth + 1);\n }\n return result;\n }\n case \"array\":\n return schema.items ? [exampleFromSchema(spec, schema.items, nextSeen, depth + 1)] : [];\n case \"integer\":\n return schema.minimum ?? 0;\n case \"number\":\n return schema.minimum ?? 0;\n case \"boolean\":\n return true;\n case \"string\":\n return STRING_FORMATS[schema.format] ?? \"string\";\n default:\n return null;\n }\n}\n\n// Picks the example for a media type object: `example`, the first entry of\n// `examples`, or one generated from its schema.\nexport function mediaExample(spec: OpenAPIObject, media: OpenAPIObject | undefined): any {\n if (!media) return undefined;\n if (media.example !== undefined) return media.example;\n\n const named = media.examples && Object.values(media.examples)[0];\n if (named) return deref(spec, named).node.value;\n\n return exampleFromSchema(spec, media.schema);\n}\n\n// Named examples of a media type, for the example switcher.\nexport function mediaExamples(spec: OpenAPIObject, media: OpenAPIObject | undefined): { key: string; summary: string; value: unknown }[] {\n if (!media?.examples) return [];\n\n return Object.entries(media.examples).map(([key, value]) => {\n const { node } = deref(spec, value);\n return { key, summary: node.summary ?? key, value: node.value };\n });\n}\n", "import { deref } from \"./refs\";\nimport type { ApiModel, CallbackInfo, HttpMethod, LinkInfo, OpenAPIDocument, OpenAPIObject, Operation, ResponseInfo, ServerObject } from \"./types\";\n\nexport const HTTP_METHODS: HttpMethod[] = [\"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\", \"trace\"];\n\nexport function slugify(value: unknown): string {\n return String(value)\n .toLowerCase()\n .replace(/[{}]/g, \"\")\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\n\nexport const tagAnchor = (name: string): string => `tag/${slugify(name)}`;\nexport const modelAnchor = (name: string): string => `model/${name}`;\n\nfunction operationAnchor(method: string, path: string, operationId?: string) {\n return `operation/${operationId ? slugify(operationId) : `${method}-${slugify(path)}`}`;\n}\n\n// Path-level parameters apply to every operation unless overridden by one\n// with the same name + location.\nfunction mergeParameters(spec: OpenAPIObject, pathParams: unknown[] = [], opParams: unknown[] = []) {\n const byKey = new Map<string, OpenAPIObject>();\n\n for (const raw of [...pathParams, ...opParams]) {\n const { node } = deref(spec, raw);\n if (node.name) byKey.set(`${node.in}:${node.name}`, node);\n }\n return [...byKey.values()];\n}\n\nfunction resolveLinks(spec: OpenAPIObject, links: OpenAPIObject = {}): LinkInfo[] {\n return Object.entries(links).map(([name, raw]) => {\n const { node } = deref(spec, raw);\n return {\n name,\n operationId: node.operationId,\n operationRef: node.operationRef,\n parameters: node.parameters ?? {},\n requestBody: node.requestBody,\n description: node.description ?? \"\",\n };\n });\n}\n\nfunction resolveResponses(spec: OpenAPIObject, responses: OpenAPIObject = {}): ResponseInfo[] {\n return Object.entries(responses).map(([status, raw]) => {\n const { node } = deref(spec, raw);\n return {\n status,\n description: node.description ?? \"\",\n \"x-i18n\": node[\"x-i18n\"],\n content: node.content ?? {},\n headers: Object.fromEntries(\n Object.entries(node.headers ?? {}).map(([key, value]) => [key, deref(spec, value).node]),\n ),\n links: resolveLinks(spec, node.links),\n };\n });\n}\n\n// One operation of a path item. Webhooks and callbacks use the same shape;\n// `kind` tells them apart and `anchorPrefix` keeps their anchors unique.\nfunction buildOperation(\n spec: OpenAPIDocument,\n method: HttpMethod,\n path: string,\n pathItem: OpenAPIObject,\n op: OpenAPIObject,\n kind: Operation[\"kind\"],\n anchorPrefix: string,\n): Operation {\n const requestBody = op.requestBody ? deref(spec, op.requestBody).node : null;\n const anchor = kind === \"operation\" ? operationAnchor(method, path, op.operationId) : `${anchorPrefix}/${slugify(op.operationId ?? `${path}-${method}`)}`;\n return {\n anchor,\n kind,\n method,\n path,\n summary: op.summary ?? \"\",\n description: op.description ?? \"\",\n \"x-i18n\": op[\"x-i18n\"],\n operationId: op.operationId,\n deprecated: Boolean(op.deprecated),\n tags: op.tags?.length ? op.tags : [\"Default\"],\n parameters: mergeParameters(spec, pathItem.parameters, op.parameters),\n requestBody,\n responses: resolveResponses(spec, op.responses),\n callbacks: kind === \"callback\" ? [] : resolveCallbacks(spec, op.callbacks, anchor),\n security: op.security ?? spec.security ?? [],\n servers: op.servers ?? pathItem.servers ?? spec.servers ?? [],\n };\n}\n\nfunction operationsOf(spec: OpenAPIDocument, path: string, item: unknown, kind: Operation[\"kind\"], anchorPrefix: string): Operation[] {\n const pathItem = deref(spec, item).node;\n return HTTP_METHODS.filter((method) => pathItem[method]).map((method) =>\n buildOperation(spec, method, path, pathItem, pathItem[method], kind, anchorPrefix),\n );\n}\n\n// callbacks: { name: { \"{$request.body#/callbackUrl}\": PathItem } }\nfunction resolveCallbacks(spec: OpenAPIDocument, callbacks: OpenAPIObject = {}, parentAnchor: string): CallbackInfo[] {\n return Object.entries(callbacks).map(([name, raw]) => {\n const { node } = deref(spec, raw);\n const operations = Object.entries(node)\n .filter(([expression]) => !expression.startsWith(\"x-\"))\n .flatMap(([expression, item]) => operationsOf(spec, expression, item, \"callback\", `${parentAnchor}/callback/${slugify(name)}`));\n return { name, operations };\n });\n}\n\n// Turns a raw OpenAPI 3.x document into the structure the UI renders:\n// tag groups with fully resolved operations, webhooks and component schemas.\nexport function buildModel(spec: OpenAPIDocument): ApiModel {\n const tagMeta = new Map<string, OpenAPIObject>((spec.tags ?? []).map((tag) => [tag.name, tag]));\n const groups = new Map<string, Operation[]>([...tagMeta.keys()].map((name) => [name, []]));\n const operations: Operation[] = [];\n\n for (const [path, item] of Object.entries(spec.paths ?? {})) {\n for (const operation of operationsOf(spec, path, item, \"operation\", \"operation\")) {\n operations.push(operation);\n for (const tag of operation.tags) {\n if (!groups.has(tag)) groups.set(tag, []);\n groups.get(tag)!.push(operation);\n }\n }\n }\n\n // OpenAPI 3.1 webhooks: { name: PathItem }; the name stands in for the path.\n const webhooks = Object.entries<OpenAPIObject>(spec.webhooks ?? {}).flatMap(([name, item]) =>\n operationsOf(spec, name, item, \"webhook\", `webhook/${slugify(name)}`),\n );\n\n const tags = [...groups.entries()]\n .filter(([, list]) => list.length > 0)\n .map(([name, list]) => ({\n name,\n anchor: tagAnchor(name),\n description: tagMeta.get(name)?.description ?? \"\",\n // Display name translations go under x-i18n.<locale>.name; `name`\n // stays the grouping key operations refer to.\n \"x-i18n\": tagMeta.get(name)?.[\"x-i18n\"],\n operations: list,\n }));\n\n const schemas = Object.entries<OpenAPIObject>(spec.components?.schemas ?? {}).map(([name, schema]) => ({\n name,\n anchor: modelAnchor(name),\n schema,\n }));\n\n return {\n openapi: spec.openapi ?? spec.swagger ?? \"\",\n info: spec.info ?? {},\n servers: spec.servers?.length ? spec.servers : [{ url: \"/\" }],\n securitySchemes: spec.components?.securitySchemes ?? {},\n tags,\n operations,\n webhooks,\n schemas,\n };\n}\n\n// Replaces {variables} in a server URL with chosen values, then defaults.\nexport function serverUrl(server: ServerObject, values: Record<string, string> = {}): string {\n return server.url.replace(/\\{([^}]+)\\}/g, (match, key: string) => values[key] || server.variables?.[key]?.default || match);\n}\n\n/** Finds the operation a link points to (operationId, or a local operationRef). */\nexport function linkTarget(model: ApiModel, link: LinkInfo): Operation | undefined {\n if (link.operationId) return model.operations.find((operation) => operation.operationId === link.operationId);\n const match = /^#\\/paths\\/([^/]+)\\/(\\w+)$/.exec(link.operationRef ?? \"\");\n if (!match) return undefined;\n const path = match[1].replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n return model.operations.find((operation) => operation.path === path && operation.method === match[2]);\n}\n", "import { mediaExample, exampleFromSchema } from \"./example\";\nimport { serverUrl } from \"./model\";\nimport { resolveSchema } from \"./schema\";\nimport type { FormField, HttpRequest, OpenAPIObject, Operation, ParameterValues, ServerObject } from \"./types\";\n\nexport function jsonMediaType(content: Record<string, unknown> = {}): string | undefined {\n const types = Object.keys(content);\n return types.find((type) => /json/i.test(type)) ?? types[0];\n}\n\nexport function parameterExample(spec: OpenAPIObject, param: OpenAPIObject): any {\n if (param.example !== undefined) return param.example;\n const named = param.examples && Object.values(param.examples)[0];\n if (named?.value !== undefined) return named.value;\n return exampleFromSchema(spec, param.schema);\n}\n\n// Default form values for an operation: path params get examples so the URL\n// is valid; optional query/header params start empty.\nexport function defaultValues(spec: OpenAPIObject, operation: Operation): ParameterValues {\n const values: ParameterValues = { path: {}, query: {}, header: {}, cookie: {} };\n\n for (const param of operation.parameters) {\n const example = parameterExample(spec, param);\n const include = param.in === \"path\" || param.required;\n values[param.in] ??= {};\n values[param.in][param.name] = include && example !== undefined && example !== null ? String(example) : \"\";\n }\n return values;\n}\n\nexport interface DefaultBody {\n contentType: string | null;\n /** Text body for JSON and other text media types. */\n body: string;\n /** Parts for multipart/form-data. */\n form?: FormField[];\n}\n\nexport const isMultipart = (contentType?: string | null) => /^multipart\\/form-data/i.test(contentType ?? \"\");\n\nconst isBinary = (schema: OpenAPIObject) =>\n schema.type === \"string\" && (schema.format === \"binary\" || schema.format === \"base64\" || Boolean(schema.contentMediaType));\n\n/**\n * Parts for a multipart/form-data body from its schema: binary properties\n * become file parts, everything else a text part with an example value.\n */\nexport function defaultForm(spec: OpenAPIObject, media: OpenAPIObject | undefined): FormField[] {\n const { schema } = resolveSchema(spec, media?.schema ?? {});\n const example = mediaExample(spec, media) ?? {};\n const fields: FormField[] = [];\n\n for (const [name, raw] of Object.entries<OpenAPIObject>(schema.properties ?? {})) {\n const property = resolveSchema(spec, raw).schema;\n const items = property.type === \"array\" && property.items ? resolveSchema(spec, property.items).schema : null;\n if (isBinary(property) || (items && isBinary(items))) {\n fields.push({ name, file: { name: `${name}.bin`, type: media?.encoding?.[name]?.contentType } });\n continue;\n }\n const value = (example as Record<string, unknown>)[name];\n for (const entry of Array.isArray(value) ? value : [value]) {\n if (entry === undefined || entry === null) continue;\n fields.push({ name, value: typeof entry === \"object\" ? JSON.stringify(entry) : String(entry) });\n }\n }\n return fields;\n}\n\nexport function defaultBody(spec: OpenAPIObject, operation: Operation): DefaultBody {\n const content = operation.requestBody?.content;\n const type = jsonMediaType(content);\n if (!type) return { contentType: null, body: \"\" };\n\n if (isMultipart(type)) return { contentType: type, body: \"\", form: defaultForm(spec, content[type]) };\n\n const example = mediaExample(spec, content[type]);\n if (example === undefined) return { contentType: type, body: \"\" };\n return { contentType: type, body: /x-www-form-urlencoded/i.test(type) ? formEncode(example) : JSON.stringify(example, null, 2) };\n}\n\n// application/x-www-form-urlencoded body from an example object: arrays\n// repeat the key, nested objects are sent as JSON text.\nexport function formEncode(value: unknown): string {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return \"\";\n const params = new URLSearchParams();\n for (const [key, item] of Object.entries(value as Record<string, unknown>)) {\n for (const entry of Array.isArray(item) ? item : [item]) {\n if (entry === undefined || entry === null) continue;\n params.append(key, typeof entry === \"object\" ? JSON.stringify(entry) : String(entry));\n }\n }\n return params.toString();\n}\n\n// Produces a concrete request description from form values.\nexport interface BuildRequestOptions {\n server?: ServerObject;\n values: Partial<ParameterValues>;\n body?: string;\n /** multipart/form-data parts; used instead of `body` when given. */\n form?: FormField[];\n contentType?: string | null;\n headers?: Record<string, string>;\n}\n\nexport function buildRequest(\n operation: Pick<Operation, \"method\" | \"path\">,\n { server, values, body, form, contentType, headers = {} }: BuildRequestOptions,\n): HttpRequest {\n const base = (server ? serverUrl(server) : \"\").replace(/\\/+$/, \"\");\n const path = operation.path.replace(/\\{([^}]+)\\}/g, (match, key) => {\n const value = values.path?.[key];\n return value ? encodeURIComponent(value) : match;\n });\n\n const query = new URLSearchParams();\n for (const [key, value] of Object.entries(values.query ?? {})) {\n if (value !== \"\") query.append(key, value);\n }\n const search = query.toString();\n\n const allHeaders: Record<string, string> = { ...headers };\n for (const [key, value] of Object.entries(values.header ?? {})) {\n if (value !== \"\") allHeaders[key] = value;\n }\n const cookies = Object.entries(values.cookie ?? {})\n .filter(([, value]) => value !== \"\")\n .map(([key, value]) => `${key}=${value}`)\n .join(\"; \");\n if (cookies) allHeaders.Cookie = cookies;\n\n const canHaveBody = ![\"get\", \"head\"].includes(operation.method);\n const multipart = canHaveBody && Boolean(form?.length) && isMultipart(contentType);\n const hasBody = !multipart && canHaveBody && Boolean(body);\n if (hasBody && contentType) allHeaders[\"Content-Type\"] = contentType;\n\n const request: HttpRequest = {\n method: operation.method.toUpperCase(),\n url: `${base}${path}${search ? `?${search.replace(/%5B/g, \"[\").replace(/%5D/g, \"]\")}` : \"\"}`,\n headers: allHeaders,\n body: hasBody ? body : undefined,\n };\n if (multipart) request.form = form;\n return request;\n}\n", "// Code samples for multipart/form-data requests (HttpRequest.form). Each\n// client uses its own multipart API; clients without one get a note that\n// points to another client of the same language instead of wrong code.\n//\n// File parts read a local file named after the part (./photo.bin); in the\n// browser they come from an <input type=\"file\">.\n\nimport type { FormField, HttpRequest } from \"./types\";\n\nconst dq = (value: unknown) => JSON.stringify(String(value));\nconst sq = (value: unknown) => `'${String(value).replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\'\")}'`;\nconst shellQuote = (value: unknown) => `'${String(value).replace(/'/g, \"'\\\\''\")}'`;\nconst psQuote = (value: unknown) => `'${String(value).replace(/'/g, \"''\")}'`;\nconst dartQuote = (value: unknown) => sq(value).replace(/\\$/g, \"\\\\$\");\nconst kotlinQuote = (value: unknown) => dq(value).replace(/\\$/g, \"\\\\$\");\nconst indent = (text: string, prefix: string) => text.split(\"\\n\").join(`\\n${prefix}`);\nconst capitalize = (method: string) => method.charAt(0) + method.slice(1).toLowerCase();\nconst path = (field: FormField) => `./${field.file!.name}`;\nconst fileType = (field: FormField) => field.file!.type ?? \"application/octet-stream\";\nconst files = (form: FormField[]) => form.filter((field) => field.file);\nconst texts = (form: FormField[]) => form.filter((field) => !field.file);\nconst headerList = (headers: Record<string, string>) => Object.entries(headers);\nconst jsObject = (value: unknown, pad: string) => indent(JSON.stringify(value, null, 2), pad);\n\nfunction parseUrl(url: string) {\n try {\n return new URL(url);\n } catch {\n return new URL(url, \"http://localhost\");\n }\n}\n\nconst note = (comment: string, text: string) => `${comment} ${text}`;\n\n// ---------------------------------------------------------------------------\n// Shell\n\nfunction curl({ method, url, headers, form = [] }: HttpRequest) {\n const parts = [`curl --request ${method}`, `--url ${shellQuote(url)}`];\n for (const [key, value] of headerList(headers)) parts.push(`--header ${shellQuote(`${key}: ${value}`)}`);\n // --form-string sends text literally (no @file / <file interpretation).\n for (const field of form) {\n parts.push(field.file ? `--form ${shellQuote(`${field.name}=@${path(field)}`)}` : `--form-string ${shellQuote(`${field.name}=${field.value ?? \"\"}`)}`);\n }\n return parts.join(\" \\\\\\n \");\n}\n\nfunction httpie({ method, url, headers, form = [] }: HttpRequest) {\n const parts = [`http --multipart ${method} ${shellQuote(url)}`];\n for (const [key, value] of headerList(headers)) parts.push(shellQuote(`${key}:${value}`));\n for (const field of form) parts.push(shellQuote(field.file ? `${field.name}@${path(field)}` : `${field.name}=${field.value ?? \"\"}`));\n return parts.join(\" \\\\\\n \");\n}\n\n// ---------------------------------------------------------------------------\n// JavaScript / Node.js\n\nfunction formData(form: FormField[], node: boolean) {\n const lines = [\"const form = new FormData();\"];\n for (const field of form) {\n if (!field.file) lines.push(`form.append(${dq(field.name)}, ${dq(field.value ?? \"\")});`);\n else if (node) lines.push(`form.append(${dq(field.name)}, await openAsBlob(${dq(path(field))}), ${dq(field.file.name)});`);\n else lines.push(`form.append(${dq(field.name)}, fileInput.files[0]); // <input type=\"file\" id=\"fileInput\">`);\n }\n return lines;\n}\n\nconst nodeImports = (form: FormField[]) => (files(form).length ? ['import { openAsBlob } from \"node:fs\";', \"\"] : []);\n\nfunction fetchClient(node: boolean) {\n return ({ method, url, headers, form = [] }: HttpRequest) => {\n const options = [` method: ${dq(method)},`];\n if (headerList(headers).length) options.push(` headers: ${jsObject(headers, \" \")},`);\n options.push(\" body: form,\");\n return [\n ...(node ? nodeImports(form) : []),\n ...formData(form, node),\n \"\",\n `const response = await fetch(${dq(url)}, {`,\n ...options,\n \"});\",\n \"\",\n \"const data = await response.json();\",\n \"console.log(data);\",\n ].join(\"\\n\");\n };\n}\n\nfunction axios(node: boolean) {\n return ({ method, url, headers, form = [] }: HttpRequest) => {\n const options = [` method: ${dq(method)},`, ` url: ${dq(url)},`];\n if (headerList(headers).length) options.push(` headers: ${jsObject(headers, \" \")},`);\n options.push(\" data: form,\");\n return [\n 'import axios from \"axios\";',\n ...(node && files(form).length ? ['import { openAsBlob } from \"node:fs\";'] : []),\n \"\",\n ...formData(form, node),\n \"\",\n \"const { data } = await axios.request({\",\n ...options,\n \"});\",\n \"\",\n \"console.log(data);\",\n ].join(\"\\n\");\n };\n}\n\nfunction jquery({ method, url, headers, form = [] }: HttpRequest) {\n const options = [` url: ${dq(url)},`, ` method: ${dq(method)},`];\n if (headerList(headers).length) options.push(` headers: ${jsObject(headers, \" \")},`);\n options.push(\" data: form,\", \" processData: false,\", \" contentType: false,\");\n return [...formData(form, false), \"\", \"$.ajax({\", ...options, \"}).done((response) => {\", \" console.log(response);\", \"});\"].join(\"\\n\");\n}\n\nfunction xhr({ method, url, headers, form = [] }: HttpRequest) {\n return [\n ...formData(form, false),\n \"\",\n \"const xhr = new XMLHttpRequest();\",\n `xhr.open(${dq(method)}, ${dq(url)});`,\n ...headerList(headers).map(([key, value]) => `xhr.setRequestHeader(${dq(key)}, ${dq(value)});`),\n \"\",\n 'xhr.addEventListener(\"load\", () => {',\n \" console.log(xhr.responseText);\",\n \"});\",\n \"\",\n \"xhr.send(form);\",\n ].join(\"\\n\");\n}\n\nfunction undici({ method, url, headers, form = [] }: HttpRequest) {\n const options = [` method: ${dq(method)},`];\n if (headerList(headers).length) options.push(` headers: ${jsObject(headers, \" \")},`);\n options.push(\" body: form,\");\n return [\n 'import { request, FormData } from \"undici\";',\n ...(files(form).length ? ['import { openAsBlob } from \"node:fs\";'] : []),\n \"\",\n ...formData(form, true),\n \"\",\n `const { statusCode, body } = await request(${dq(url)}, {`,\n ...options,\n \"});\",\n \"\",\n \"console.log(statusCode, await body.json());\",\n ].join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// Python\n\nconst pyString = (value: unknown) => JSON.stringify(String(value));\n\nfunction pythonClient(library: string) {\n return ({ method, url, headers, form = [] }: HttpRequest) => {\n const lines = [`import ${library}`, \"\", `url = ${pyString(url)}`];\n const args = [pyString(method), \"url\"];\n if (headerList(headers).length) {\n lines.push(`headers = {${headerList(headers).map(([key, value]) => `${pyString(key)}: ${pyString(value)}`).join(\", \")}}`);\n args.push(\"headers=headers\");\n }\n // A dict, with a list for repeated names: httpx rejects a list of tuples\n // next to files, and requests accepts both.\n const grouped = new Map<string, string[]>();\n for (const field of texts(form)) grouped.set(field.name, [...(grouped.get(field.name) ?? []), field.value ?? \"\"]);\n if (grouped.size) {\n const entries = [...grouped].map(([name, values]) => `${pyString(name)}: ${values.length > 1 ? `[${values.map(pyString).join(\", \")}]` : pyString(values[0])}`);\n lines.push(`data = {${entries.join(\", \")}}`);\n args.push(\"data=data\");\n }\n const fileFields = files(form);\n lines.push(\n `files = [${fileFields.map((field) => `(${pyString(field.name)}, (${pyString(field.file!.name)}, open(${pyString(path(field))}, \"rb\"), ${pyString(fileType(field))}))`).join(\", \")}]`,\n );\n args.push(\"files=files\");\n lines.push(\"\", `response = ${library}.request(${args.join(\", \")})`, \"\", \"print(response.json())\");\n return lines.join(\"\\n\");\n };\n}\n\n// ---------------------------------------------------------------------------\n// PHP\n\nfunction phpCurl({ method, url, headers, form = [] }: HttpRequest) {\n const lines = [\n \"<?php\",\n \"\",\n \"$curl = curl_init();\",\n \"\",\n \"curl_setopt_array($curl, [\",\n ` CURLOPT_URL => ${sq(url)},`,\n \" CURLOPT_RETURNTRANSFER => true,\",\n ` CURLOPT_CUSTOMREQUEST => ${sq(method)},`,\n ];\n const headerLines = headerList(headers).map(([key, value]) => ` ${sq(`${key}: ${value}`)},`);\n if (headerLines.length) lines.push(\" CURLOPT_HTTPHEADER => [\", ...headerLines, \" ],\");\n const names = form.map((field) => field.name);\n if (new Set(names).size !== names.length) {\n lines.splice(1, 0, \"\", \"// PHP arrays cannot repeat a key, so repeated fields keep only their last value; use the Guzzle example for those.\");\n }\n lines.push(\n \" CURLOPT_POSTFIELDS => [\",\n ...form.map((field) =>\n field.file\n ? ` ${sq(field.name)} => new CURLFile(${sq(path(field))}, ${sq(fileType(field))}, ${sq(field.file.name)}),`\n : ` ${sq(field.name)} => ${sq(field.value ?? \"\")},`,\n ),\n \" ],\",\n \"]);\",\n \"\",\n \"$response = curl_exec($curl);\",\n \"curl_close($curl);\",\n \"\",\n \"echo $response;\",\n );\n return lines.join(\"\\n\");\n}\n\nfunction guzzle({ method, url, headers, form = [] }: HttpRequest) {\n const options: string[] = [];\n if (headerList(headers).length) {\n options.push(\" 'headers' => [\", ...headerList(headers).map(([key, value]) => ` ${sq(key)} => ${sq(value)},`), \" ],\");\n }\n options.push(\n \" 'multipart' => [\",\n ...form.map((field) =>\n field.file\n ? ` ['name' => ${sq(field.name)}, 'contents' => fopen(${sq(path(field))}, 'r'), 'filename' => ${sq(field.file.name)}],`\n : ` ['name' => ${sq(field.name)}, 'contents' => ${sq(field.value ?? \"\")}],`,\n ),\n \" ],\",\n );\n return [\n \"<?php\",\n \"\",\n \"require 'vendor/autoload.php';\",\n \"\",\n \"$client = new \\\\GuzzleHttp\\\\Client();\",\n \"\",\n `$response = $client->request(${sq(method)}, ${sq(url)}, [\\n${options.join(\"\\n\")}\\n]);`,\n \"\",\n \"echo $response->getBody();\",\n ].join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// Compiled / other languages\n\nfunction go({ method, url, headers, form = [] }: HttpRequest) {\n const fileFields = files(form);\n const body: string[] = [\"\\tbody := &bytes.Buffer{}\", \"\\twriter := multipart.NewWriter(body)\"];\n for (const field of form) {\n if (!field.file) {\n body.push(`\\twriter.WriteField(${dq(field.name)}, ${dq(field.value ?? \"\")})`);\n continue;\n }\n const variable = `file${body.length}`;\n body.push(\n \"\",\n `\\t${variable}, err := os.Open(${dq(path(field))})`,\n \"\\tif err != nil {\",\n \"\\t\\tpanic(err)\",\n \"\\t}\",\n `\\tdefer ${variable}.Close()`,\n `\\tpart${variable}, _ := writer.CreateFormFile(${dq(field.name)}, ${dq(field.file.name)})`,\n `\\tio.Copy(part${variable}, ${variable})`,\n );\n }\n body.push(\"\\twriter.Close()\");\n const imports = ['\"bytes\"', '\"fmt\"', '\"io\"', '\"mime/multipart\"', '\"net/http\"', ...(fileFields.length ? ['\"os\"'] : [])];\n\n return [\n \"package main\",\n \"\",\n \"import (\",\n ...imports.map((item) => `\\t${item}`),\n \")\",\n \"\",\n \"func main() {\",\n ...body,\n \"\",\n `\\treq, _ := http.NewRequest(${dq(method)}, ${dq(url)}, body)`,\n \"\\treq.Header.Set(\\\"Content-Type\\\", writer.FormDataContentType())\",\n ...headerList(headers).map(([key, value]) => `\\treq.Header.Add(${dq(key)}, ${dq(value)})`),\n \"\",\n \"\\tres, err := http.DefaultClient.Do(req)\",\n \"\\tif err != nil {\",\n \"\\t\\tpanic(err)\",\n \"\\t}\",\n \"\\tdefer res.Body.Close()\",\n \"\",\n \"\\tdata, _ := io.ReadAll(res.Body)\",\n \"\\tfmt.Println(string(data))\",\n \"}\",\n ].join(\"\\n\");\n}\n\nfunction javaOkHttp({ method, url, headers, form = [] }: HttpRequest) {\n return [\n \"OkHttpClient client = new OkHttpClient();\",\n \"\",\n \"RequestBody body = new MultipartBody.Builder()\",\n \" .setType(MultipartBody.FORM)\",\n ...form.map((field) =>\n field.file\n ? ` .addFormDataPart(${dq(field.name)}, ${dq(field.file.name)}, RequestBody.create(new File(${dq(path(field))}), MediaType.parse(${dq(fileType(field))})))`\n : ` .addFormDataPart(${dq(field.name)}, ${dq(field.value ?? \"\")})`,\n ),\n \" .build();\",\n \"Request request = new Request.Builder()\",\n ` .url(${dq(url)})`,\n ` .method(${dq(method)}, body)`,\n ...headerList(headers).map(([key, value]) => ` .addHeader(${dq(key)}, ${dq(value)})`),\n \" .build();\",\n \"\",\n \"Response response = client.newCall(request).execute();\",\n \"System.out.println(response.body().string());\",\n ].join(\"\\n\");\n}\n\nfunction kotlinOkHttp({ method, url, headers, form = [] }: HttpRequest) {\n return [\n \"val client = OkHttpClient()\",\n \"\",\n \"val body = MultipartBody.Builder()\",\n \" .setType(MultipartBody.FORM)\",\n ...form.map((field) =>\n field.file\n ? ` .addFormDataPart(${kotlinQuote(field.name)}, ${kotlinQuote(field.file.name)}, File(${kotlinQuote(path(field))}).asRequestBody(${kotlinQuote(fileType(field))}.toMediaType()))`\n : ` .addFormDataPart(${kotlinQuote(field.name)}, ${kotlinQuote(field.value ?? \"\")})`,\n ),\n \" .build()\",\n \"val request = Request.Builder()\",\n ` .url(${kotlinQuote(url)})`,\n ` .method(${kotlinQuote(method)}, body)`,\n ...headerList(headers).map(([key, value]) => ` .addHeader(${kotlinQuote(key)}, ${kotlinQuote(value)})`),\n \" .build()\",\n \"\",\n \"val response = client.newCall(request).execute()\",\n \"println(response.body?.string())\",\n ].join(\"\\n\");\n}\n\nfunction csharpHttpClient({ method, url, headers, form = [] }: HttpRequest) {\n const lines = [\"var client = new HttpClient();\", \"using var form = new MultipartFormDataContent();\"];\n for (const field of form) {\n lines.push(\n field.file\n ? `form.Add(new StreamContent(File.OpenRead(${dq(path(field))})), ${dq(field.name)}, ${dq(field.file.name)});`\n : `form.Add(new StringContent(${dq(field.value ?? \"\")}), ${dq(field.name)});`,\n );\n }\n lines.push(\"\", \"var request = new HttpRequestMessage\", \"{\", ` Method = new HttpMethod(${dq(method)}),`, ` RequestUri = new Uri(${dq(url)}),`);\n if (headerList(headers).length) {\n lines.push(\" Headers =\", \" {\", ...headerList(headers).map(([key, value]) => ` { ${dq(key)}, ${dq(value)} },`), \" },\");\n }\n lines.push(\n \" Content = form,\",\n \"};\",\n \"\",\n \"using var response = await client.SendAsync(request);\",\n \"Console.WriteLine(await response.Content.ReadAsStringAsync());\",\n );\n return lines.join(\"\\n\");\n}\n\nfunction restSharp({ method, url, headers, form = [] }: HttpRequest) {\n return [\n \"using RestSharp;\",\n \"\",\n `var client = new RestClient(${dq(url)});`,\n `var request = new RestRequest(\"\", Method.${capitalize(method)});`,\n \"request.AlwaysMultipartFormData = true;\",\n ...headerList(headers).map(([key, value]) => `request.AddHeader(${dq(key)}, ${dq(value)});`),\n ...form.map((field) =>\n field.file ? `request.AddFile(${dq(field.name)}, ${dq(path(field))});` : `request.AddParameter(${dq(field.name)}, ${dq(field.value ?? \"\")});`,\n ),\n \"\",\n \"var response = await client.ExecuteAsync(request);\",\n \"Console.WriteLine(response.Content);\",\n ].join(\"\\n\");\n}\n\nfunction ruby({ method, url, headers, form = [] }: HttpRequest) {\n const lines = ['require \"uri\"', 'require \"net/http\"', \"\", `url = URI(${sq(url)})`, \"\", \"http = Net::HTTP.new(url.host, url.port)\"];\n if (parseUrl(url).protocol === \"https:\") lines.push(\"http.use_ssl = true\");\n lines.push(\"\", `request = Net::HTTP::${capitalize(method)}.new(url)`);\n for (const [key, value] of headerList(headers)) lines.push(`request[${sq(key)}] = ${sq(value)}`);\n const parts = form.map((field) => (field.file ? `[${sq(field.name)}, File.open(${sq(path(field))})]` : `[${sq(field.name)}, ${sq(field.value ?? \"\")}]`));\n lines.push(`request.set_form([${parts.join(\", \")}], \"multipart/form-data\")`, \"\", \"response = http.request(request)\", \"puts response.read_body\");\n return lines.join(\"\\n\");\n}\n\nfunction swift({ method, url, headers, form = [] }: HttpRequest) {\n const lines = [\n \"import Foundation\",\n \"\",\n `let url = URL(string: ${dq(url)})!`,\n \"var request = URLRequest(url: url)\",\n `request.httpMethod = ${dq(method)}`,\n ];\n for (const [key, value] of headerList(headers)) lines.push(`request.setValue(${dq(value)}, forHTTPHeaderField: ${dq(key)})`);\n lines.push(\n \"\",\n 'let boundary = \"Boundary-\\\\(UUID().uuidString)\"',\n 'request.setValue(\"multipart/form-data; boundary=\\\\(boundary)\", forHTTPHeaderField: \"Content-Type\")',\n \"\",\n \"var body = Data()\",\n );\n for (const field of form) {\n const name = JSON.stringify(field.name).slice(1, -1);\n if (field.file) {\n const fileName = JSON.stringify(field.file.name).slice(1, -1);\n lines.push(\n `body.append(\"--\\\\(boundary)\\\\r\\\\nContent-Disposition: form-data; name=\\\\\"${name}\\\\\"; filename=\\\\\"${fileName}\\\\\"\\\\r\\\\nContent-Type: ${fileType(field)}\\\\r\\\\n\\\\r\\\\n\".data(using: .utf8)!)`,\n `body.append(try Data(contentsOf: URL(fileURLWithPath: ${dq(path(field))})))`,\n 'body.append(\"\\\\r\\\\n\".data(using: .utf8)!)',\n );\n } else {\n const value = JSON.stringify(field.value ?? \"\").slice(1, -1);\n lines.push(`body.append(\"--\\\\(boundary)\\\\r\\\\nContent-Disposition: form-data; name=\\\\\"${name}\\\\\"\\\\r\\\\n\\\\r\\\\n${value}\\\\r\\\\n\".data(using: .utf8)!)`);\n }\n }\n lines.push(\n 'body.append(\"--\\\\(boundary)--\\\\r\\\\n\".data(using: .utf8)!)',\n \"request.httpBody = body\",\n \"\",\n \"let (data, _) = try await URLSession.shared.data(for: request)\",\n \"print(String(decoding: data, as: UTF8.self))\",\n );\n return lines.join(\"\\n\");\n}\n\nfunction dart({ method, url, headers, form = [] }: HttpRequest) {\n const lines = [\"import 'package:http/http.dart' as http;\", \"\", \"void main() async {\"];\n lines.push(` final request = http.MultipartRequest(${dartQuote(method)}, Uri.parse(${dartQuote(url)}));`);\n if (headerList(headers).length) {\n lines.push(\" request.headers.addAll({\", ...headerList(headers).map(([key, value]) => ` ${dartQuote(key)}: ${dartQuote(value)},`), \" });\");\n }\n // `fields` is a Map, so repeated names go in as filename-less parts instead.\n const counts = new Map<string, number>();\n for (const field of texts(form)) counts.set(field.name, (counts.get(field.name) ?? 0) + 1);\n for (const field of form) {\n if (field.file) lines.push(` request.files.add(await http.MultipartFile.fromPath(${dartQuote(field.name)}, ${dartQuote(path(field))}));`);\n else if (counts.get(field.name)! > 1) lines.push(` request.files.add(http.MultipartFile.fromString(${dartQuote(field.name)}, ${dartQuote(field.value ?? \"\")}));`);\n else lines.push(` request.fields[${dartQuote(field.name)}] = ${dartQuote(field.value ?? \"\")};`);\n }\n lines.push(\"\", \" final response = await request.send();\", \" print(await response.stream.bytesToString());\", \"}\");\n return lines.join(\"\\n\");\n}\n\nfunction rust({ method, url, headers, form = [] }: HttpRequest) {\n const standard = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"HEAD\", \"OPTIONS\", \"PATCH\", \"TRACE\"];\n const methodExpr = standard.includes(method) ? `reqwest::Method::${method}` : `reqwest::Method::from_bytes(b${dq(method)})?`;\n return [\n '// reqwest with the \"multipart\" feature',\n \"#[tokio::main]\",\n \"async fn main() -> Result<(), Box<dyn std::error::Error>> {\",\n \" let client = reqwest::Client::new();\",\n \"\",\n \" let form = reqwest::multipart::Form::new()\",\n ...form.map((field) =>\n field.file\n ? ` .part(${dq(field.name)}, reqwest::multipart::Part::bytes(std::fs::read(${dq(path(field))})?).file_name(${dq(field.file.name)}))`\n : ` .text(${dq(field.name)}, ${dq(field.value ?? \"\")})`,\n ),\n \" ;\",\n \"\",\n \" let response = client\",\n ` .request(${methodExpr}, ${dq(url)})`,\n ...headerList(headers).map(([key, value]) => ` .header(${dq(key)}, ${dq(value)})`),\n \" .multipart(form)\",\n \" .send()\",\n \" .await?;\",\n \"\",\n ' println!(\"{}\", response.text().await?);',\n \" Ok(())\",\n \"}\",\n ].join(\"\\n\");\n}\n\nfunction libcurl({ method, url, headers, form = [] }: HttpRequest) {\n const lines = [\n \"#include <curl/curl.h>\",\n \"\",\n \"int main(void) {\",\n \" CURL *curl = curl_easy_init();\",\n \"\",\n ` curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, ${dq(method)});`,\n ` curl_easy_setopt(curl, CURLOPT_URL, ${dq(url)});`,\n \"\",\n \" struct curl_slist *headers = NULL;\",\n ...headerList(headers).map(([key, value]) => ` headers = curl_slist_append(headers, ${dq(`${key}: ${value}`)});`),\n \" curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);\",\n \"\",\n \" curl_mime *mime = curl_mime_init(curl);\",\n \" curl_mimepart *part;\",\n ];\n for (const field of form) {\n lines.push(\" part = curl_mime_addpart(mime);\", ` curl_mime_name(part, ${dq(field.name)});`);\n lines.push(field.file ? ` curl_mime_filedata(part, ${dq(path(field))});` : ` curl_mime_data(part, ${dq(field.value ?? \"\")}, CURL_ZERO_TERMINATED);`);\n }\n lines.push(\n \" curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);\",\n \"\",\n \" CURLcode ret = curl_easy_perform(curl);\",\n \"\",\n \" curl_mime_free(mime);\",\n \" curl_slist_free_all(headers);\",\n \" curl_easy_cleanup(curl);\",\n \" return (int) ret;\",\n \"}\",\n );\n return lines.join(\"\\n\");\n}\n\nfunction powershell({ method, url, headers, form = [] }: HttpRequest) {\n const lines: string[] = [\"# PowerShell 7+ (-Form)\"];\n const args = [`-Uri ${psQuote(url)}`, `-Method ${method}`];\n if (headerList(headers).length) {\n lines.push(\"$headers = @{\", ...headerList(headers).map(([key, value]) => ` ${psQuote(key)} = ${psQuote(value)}`), \"}\");\n args.push(\"-Headers $headers\");\n }\n // Hash literals reject duplicate keys; -Form sends an array value as repeated parts.\n const grouped = new Map<string, string[]>();\n for (const field of form) {\n const value = field.file ? `(Get-Item -Path ${psQuote(path(field))})` : psQuote(field.value ?? \"\");\n grouped.set(field.name, [...(grouped.get(field.name) ?? []), value]);\n }\n lines.push(\n \"$form = @{\",\n ...[...grouped].map(([name, values]) => ` ${psQuote(name)} = ${values.length > 1 ? `@(${values.join(\", \")})` : values[0]}`),\n \"}\",\n \"\",\n );\n args.push(\"-Form $form\");\n lines.push(`$response = Invoke-RestMethod ${args.join(\" \")}`, \"$response | ConvertTo-Json -Depth 10\");\n return lines.join(\"\\n\");\n}\n\nconst BOUNDARY = \"oaspect-boundary\";\n\nfunction rawHttp({ method, url, headers, form = [] }: HttpRequest) {\n const target = parseUrl(url);\n const lines = [`${method} ${target.pathname}${target.search} HTTP/1.1`, `Host: ${target.host}`];\n for (const [key, value] of headerList(headers)) lines.push(`${key}: ${value}`);\n lines.push(`Content-Type: multipart/form-data; boundary=${BOUNDARY}`, \"\");\n for (const field of form) {\n lines.push(`--${BOUNDARY}`);\n if (field.file) {\n lines.push(`Content-Disposition: form-data; name=\"${field.name}\"; filename=\"${field.file.name}\"`, `Content-Type: ${fileType(field)}`, \"\", `(contents of ${field.file.name})`);\n } else {\n lines.push(`Content-Disposition: form-data; name=\"${field.name}\"`, \"\", field.value ?? \"\");\n }\n }\n lines.push(`--${BOUNDARY}--`);\n return lines.join(\"\\n\");\n}\n\n// \"language:client\" → multipart builder. Missing entries get a note.\nexport const MULTIPART_BUILDERS: Record<string, (request: HttpRequest) => string> = {\n \"shell:curl\": curl,\n \"shell:wget\": () => note(\"#\", \"wget cannot send multipart/form-data; use the cURL or HTTPie example.\"),\n \"shell:httpie\": httpie,\n \"javascript:fetch\": fetchClient(false),\n \"javascript:axios\": axios(false),\n \"javascript:jquery\": jquery,\n \"javascript:xhr\": xhr,\n \"node:fetch\": fetchClient(true),\n \"node:axios\": axios(true),\n \"node:undici\": undici,\n \"node:http\": () => note(\"//\", \"node:http has no multipart/form-data encoder; use the fetch or undici example.\"),\n \"python:requests\": pythonClient(\"requests\"),\n \"python:httpx\": pythonClient(\"httpx\"),\n \"python:http.client\": () => note(\"#\", \"http.client has no multipart/form-data encoder; use the requests or httpx example.\"),\n \"php:curl\": phpCurl,\n \"php:guzzle\": guzzle,\n \"go:native\": go,\n \"java:httpclient\": () => note(\"//\", \"java.net.http has no multipart/form-data encoder; use the OkHttp example.\"),\n \"java:okhttp\": javaOkHttp,\n \"kotlin:okhttp\": kotlinOkHttp,\n \"csharp:httpclient\": csharpHttpClient,\n \"csharp:restsharp\": restSharp,\n \"ruby:native\": ruby,\n \"swift:urlsession\": swift,\n \"dart:http\": dart,\n \"rust:reqwest\": rust,\n \"c:libcurl\": libcurl,\n \"powershell:restmethod\": powershell,\n \"http:raw\": rawHttp,\n};\n", "import { MULTIPART_BUILDERS } from \"./multipart\";\nimport type { HttpRequest, SnippetLanguage } from \"./types\";\n\n// Code sample generators, grouped by language and client library. Each\n// client's build() takes the output of buildRequest():\n// { method, url, headers, body } where body is a string or undefined.\n\n// ---------------------------------------------------------------------------\n// String literal helpers per quoting style.\n\nconst dq = (value) => JSON.stringify(String(value));\nconst sq = (value) => `'${String(value).replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\'\")}'`;\nconst shellQuote = (value) => `'${String(value).replace(/'/g, \"'\\\\''\")}'`;\nconst psQuote = (value) => `'${String(value).replace(/'/g, \"''\")}'`;\nconst dartQuote = (value) => sq(value).replace(/\\$/g, \"\\\\$\");\nconst kotlinQuote = (value) => dq(value).replace(/\\$/g, \"\\\\$\");\n\nconst indent = (text, prefix) => text.split(\"\\n\").join(`\\n${prefix}`);\n\nfunction parseJson(body) {\n if (body === undefined) return undefined;\n try {\n return JSON.parse(body);\n } catch {\n return undefined;\n }\n}\n\n// Single-line form of the body, for languages without multi-line literals.\nconst compact = (body) => {\n const json = parseJson(body);\n return json === undefined ? body : JSON.stringify(json);\n};\n\nconst contentTypeOf = (headers) =>\n Object.entries(headers).find(([key]) => key.toLowerCase() === \"content-type\")?.[1];\n\nconst withoutContentType = (headers) =>\n Object.fromEntries(Object.entries(headers).filter(([key]) => key.toLowerCase() !== \"content-type\"));\n\nfunction parseUrl(url) {\n try {\n return new URL(url);\n } catch {\n return new URL(url, \"http://localhost\");\n }\n}\n\nconst capitalize = (method) => method.charAt(0) + method.slice(1).toLowerCase();\n\n// Literal converters for languages whose idiomatic clients take native data.\nfunction toPython(value, pad = \"\") {\n if (value === null) return \"None\";\n if (value === true) return \"True\";\n if (value === false) return \"False\";\n if (typeof value !== \"object\") return JSON.stringify(value);\n const next = `${pad} `;\n if (Array.isArray(value)) {\n return value.length ? `[\\n${value.map((item) => next + toPython(item, next)).join(\",\\n\")},\\n${pad}]` : \"[]\";\n }\n const entries = Object.entries(value);\n return entries.length\n ? `{\\n${entries.map(([key, item]) => `${next}${JSON.stringify(key)}: ${toPython(item, next)}`).join(\",\\n\")},\\n${pad}}`\n : \"{}\";\n}\n\nfunction toPhp(value, pad = \"\") {\n if (value === null) return \"null\";\n if (typeof value === \"boolean\" || typeof value === \"number\") return String(value);\n if (typeof value === \"string\") return sq(value);\n // `[]` would encode as a JSON array, so empty objects need an explicit cast.\n if (!Array.isArray(value) && Object.keys(value).length === 0) return \"(object) []\";\n const next = `${pad} `;\n const items = Array.isArray(value)\n ? value.map((item) => next + toPhp(item, next))\n : Object.entries(value).map(([key, item]) => `${next}${sq(key)} => ${toPhp(item, next)}`);\n return items.length ? `[\\n${items.join(\",\\n\")},\\n${pad}]` : \"[]\";\n}\n\nfunction toRuby(value, pad = \"\") {\n if (value === null) return \"nil\";\n if (typeof value === \"boolean\" || typeof value === \"number\") return String(value);\n if (typeof value === \"string\") return sq(value);\n const next = `${pad} `;\n if (Array.isArray(value)) {\n return value.length ? `[\\n${value.map((item) => next + toRuby(item, next)).join(\",\\n\")}\\n${pad}]` : \"[]\";\n }\n const entries = Object.entries(value);\n return entries.length\n ? `{\\n${entries.map(([key, item]) => `${next}${sq(key)} => ${toRuby(item, next)}`).join(\",\\n\")}\\n${pad}}`\n : \"{}\";\n}\n\nconst jsObject = (value, pad) => indent(JSON.stringify(value, null, 2), pad);\n\n// JS body expression: JSON.stringify(<literal>) for JSON, a string otherwise.\nfunction jsBody(body, pad) {\n const json = parseJson(body);\n return json === undefined ? dq(body) : `JSON.stringify(${jsObject(json, pad)})`;\n}\n\n// ---------------------------------------------------------------------------\n// Shell\n\nfunction curl({ method, url, headers, body }: HttpRequest) {\n const parts = [`curl --request ${method}`, `--url ${shellQuote(url)}`];\n for (const [key, value] of Object.entries(headers)) parts.push(`--header ${shellQuote(`${key}: ${value}`)}`);\n if (body !== undefined) parts.push(`--data ${shellQuote(body)}`);\n return parts.join(\" \\\\\\n \");\n}\n\nfunction wget({ method, url, headers, body }: HttpRequest) {\n const parts = [\"wget --quiet\", `--method=${method}`];\n for (const [key, value] of Object.entries(headers)) parts.push(`--header=${shellQuote(`${key}: ${value}`)}`);\n if (body !== undefined) parts.push(`--body-data=${shellQuote(body)}`);\n parts.push(\"--output-document=-\", shellQuote(url));\n return parts.join(\" \\\\\\n \");\n}\n\nfunction httpie({ method, url, headers, body }: HttpRequest) {\n const command = `http ${method} ${shellQuote(url)}`;\n const parts = [body !== undefined ? `printf '%s' ${shellQuote(body)} | ${command}` : command];\n for (const [key, value] of Object.entries(headers)) parts.push(shellQuote(`${key}:${value}`));\n return parts.join(\" \\\\\\n \");\n}\n\n// ---------------------------------------------------------------------------\n// JavaScript / Node.js\n\nfunction fetchClient({ method, url, headers, body }: HttpRequest) {\n const options = [` method: ${dq(method)},`];\n if (Object.keys(headers).length) options.push(` headers: ${jsObject(headers, \" \")},`);\n if (body !== undefined) options.push(` body: ${jsBody(body, \" \")},`);\n return [`const response = await fetch(${dq(url)}, {`, ...options, \"});\", \"\", \"const data = await response.json();\", \"console.log(data);\"].join(\"\\n\");\n}\n\nfunction axios({ method, url, headers, body }: HttpRequest) {\n const options = [` method: ${dq(method)},`, ` url: ${dq(url)},`];\n if (Object.keys(headers).length) options.push(` headers: ${jsObject(headers, \" \")},`);\n if (body !== undefined) {\n const json = parseJson(body);\n options.push(` data: ${json === undefined ? dq(body) : jsObject(json, \" \")},`);\n }\n return ['import axios from \"axios\";', \"\", \"const { data } = await axios.request({\", ...options, \"});\", \"\", \"console.log(data);\"].join(\"\\n\");\n}\n\nfunction jquery({ method, url, headers, body }: HttpRequest) {\n const options = [` url: ${dq(url)},`, ` method: ${dq(method)},`];\n if (Object.keys(headers).length) options.push(` headers: ${jsObject(headers, \" \")},`);\n if (body !== undefined) options.push(` data: ${jsBody(body, \" \")},`);\n return [\"$.ajax({\", ...options, \"}).done((response) => {\", \" console.log(response);\", \"});\"].join(\"\\n\");\n}\n\nfunction xhr({ method, url, headers, body }: HttpRequest) {\n return [\n \"const xhr = new XMLHttpRequest();\",\n `xhr.open(${dq(method)}, ${dq(url)});`,\n ...Object.entries(headers).map(([key, value]) => `xhr.setRequestHeader(${dq(key)}, ${dq(value)});`),\n \"\",\n 'xhr.addEventListener(\"load\", () => {',\n \" console.log(xhr.responseText);\",\n \"});\",\n \"\",\n body !== undefined ? `xhr.send(${jsBody(body, \"\")});` : \"xhr.send();\",\n ].join(\"\\n\");\n}\n\nfunction undici({ method, url, headers, body }: HttpRequest) {\n const options = [` method: ${dq(method)},`];\n if (Object.keys(headers).length) options.push(` headers: ${jsObject(headers, \" \")},`);\n if (body !== undefined) options.push(` body: ${jsBody(body, \" \")},`);\n return [\n 'import { request } from \"undici\";',\n \"\",\n `const { statusCode, body } = await request(${dq(url)}, {`,\n ...options,\n \"});\",\n \"\",\n \"console.log(statusCode, await body.json());\",\n ].join(\"\\n\");\n}\n\nfunction nodeHttp({ method, url, headers, body }: HttpRequest) {\n const lib = parseUrl(url).protocol === \"https:\" ? \"https\" : \"http\";\n const options = [` method: ${dq(method)},`];\n if (Object.keys(headers).length) options.push(` headers: ${jsObject(headers, \" \")},`);\n return [\n `import ${lib} from \"node:${lib}\";`,\n \"\",\n `const req = ${lib}.request(${dq(url)}, {`,\n ...options,\n \"}, (res) => {\",\n ' let data = \"\";',\n ' res.on(\"data\", (chunk) => (data += chunk));',\n ' res.on(\"end\", () => console.log(data));',\n \"});\",\n \"\",\n ...(body !== undefined ? [`req.write(${jsBody(body, \"\")});`] : []),\n \"req.end();\",\n ].join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// Python\n\nfunction pythonClient(library) {\n return ({ method, url, headers, body }: HttpRequest) => {\n const json = parseJson(body);\n const lines = [`import ${library}`, \"\", `url = ${dq(url)}`];\n const args = [dq(method), \"url\"];\n\n if (Object.keys(headers).length) {\n lines.push(`headers = ${toPython(headers)}`);\n args.push(\"headers=headers\");\n }\n if (json !== undefined) {\n lines.push(`payload = ${toPython(json)}`);\n args.push(\"json=payload\");\n } else if (body !== undefined) {\n lines.push(`payload = ${dq(body)}`);\n args.push(\"data=payload\");\n }\n lines.push(\"\", `response = ${library}.request(${args.join(\", \")})`, \"\", \"print(response.json())\");\n return lines.join(\"\\n\");\n };\n}\n\nfunction pythonHttpClient({ method, url, headers, body }: HttpRequest) {\n const target = parseUrl(url);\n const connection = target.protocol === \"https:\" ? \"HTTPSConnection\" : \"HTTPConnection\";\n const json = parseJson(body);\n const lines = [\"import http.client\"];\n if (json !== undefined) lines.push(\"import json\");\n lines.push(\"\", `conn = http.client.${connection}(${dq(target.host)})`);\n\n let payload = \"None\";\n if (json !== undefined) {\n lines.push(`payload = json.dumps(${toPython(json)})`);\n payload = \"payload\";\n } else if (body !== undefined) {\n lines.push(`payload = ${dq(body)}`);\n payload = \"payload\";\n }\n lines.push(`headers = ${toPython(headers)}`);\n lines.push(\n \"\",\n `conn.request(${dq(method)}, ${dq(target.pathname + target.search)}, ${payload}, headers)`,\n \"res = conn.getresponse()\",\n \"\",\n 'print(res.read().decode(\"utf-8\"))',\n );\n return lines.join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// PHP\n\nfunction phpCurl({ method, url, headers, body }: HttpRequest) {\n const json = parseJson(body);\n const lines = [\n \"<?php\",\n \"\",\n \"$curl = curl_init();\",\n \"\",\n \"curl_setopt_array($curl, [\",\n ` CURLOPT_URL => ${sq(url)},`,\n \" CURLOPT_RETURNTRANSFER => true,\",\n ` CURLOPT_CUSTOMREQUEST => ${sq(method)},`,\n ];\n const headerLines = Object.entries(headers).map(([key, value]) => ` ${sq(`${key}: ${value}`)},`);\n if (headerLines.length) lines.push(\" CURLOPT_HTTPHEADER => [\", ...headerLines, \" ],\");\n if (json !== undefined) lines.push(` CURLOPT_POSTFIELDS => json_encode(${toPhp(json, \" \")}),`);\n else if (body !== undefined) lines.push(` CURLOPT_POSTFIELDS => ${sq(body)},`);\n lines.push(\"]);\", \"\", \"$response = curl_exec($curl);\", \"curl_close($curl);\", \"\", \"echo $response;\");\n return lines.join(\"\\n\");\n}\n\nfunction guzzle({ method, url, headers, body }: HttpRequest) {\n const json = parseJson(body);\n const options: string[] = [];\n const sentHeaders = json !== undefined ? withoutContentType(headers) : headers;\n if (Object.keys(sentHeaders).length) options.push(` 'headers' => ${toPhp(sentHeaders, \" \")},`);\n if (json !== undefined) options.push(` 'json' => ${toPhp(json, \" \")},`);\n else if (body !== undefined) options.push(` 'body' => ${sq(body)},`);\n\n return [\n \"<?php\",\n \"\",\n \"require 'vendor/autoload.php';\",\n \"\",\n \"$client = new \\\\GuzzleHttp\\\\Client();\",\n \"\",\n options.length\n ? `$response = $client->request(${sq(method)}, ${sq(url)}, [\\n${options.join(\"\\n\")}\\n]);`\n : `$response = $client->request(${sq(method)}, ${sq(url)});`,\n \"\",\n \"echo $response->getBody();\",\n ].join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// Compiled / other languages\n\nfunction go({ method, url, headers, body }: HttpRequest) {\n const hasBody = body !== undefined;\n const literal = hasBody && !body.includes(\"`\") ? `\\`${body}\\`` : hasBody ? dq(body) : \"\";\n const imports = ['\"fmt\"', '\"io\"', '\"net/http\"', ...(hasBody ? ['\"strings\"'] : [])];\n\n return [\n \"package main\",\n \"\",\n \"import (\",\n ...imports.map((item) => `\\t${item}`),\n \")\",\n \"\",\n \"func main() {\",\n ...(hasBody ? [`\\tpayload := strings.NewReader(${literal})`, \"\"] : []),\n `\\treq, _ := http.NewRequest(${dq(method)}, ${dq(url)}, ${hasBody ? \"payload\" : \"nil\"})`,\n ...(Object.keys(headers).length ? [\"\", ...Object.entries(headers).map(([key, value]) => `\\treq.Header.Add(${dq(key)}, ${dq(value)})`)] : []),\n \"\",\n \"\\tres, err := http.DefaultClient.Do(req)\",\n \"\\tif err != nil {\",\n \"\\t\\tpanic(err)\",\n \"\\t}\",\n \"\\tdefer res.Body.Close()\",\n \"\",\n \"\\tdata, _ := io.ReadAll(res.Body)\",\n \"\\tfmt.Println(string(data))\",\n \"}\",\n ].join(\"\\n\");\n}\n\n// Java/C# text blocks: body lines share the closing delimiter's indentation.\nconst textBlock = (body, pad) => `\"\"\"\\n${pad}${indent(body, pad)}\\n${pad}\"\"\"`;\n\nfunction javaHttpClient({ method, url, headers, body }: HttpRequest) {\n const publisher =\n body !== undefined\n ? `HttpRequest.BodyPublishers.ofString(${textBlock(body.replace(/\\\\/g, \"\\\\\\\\\"), \" \")})`\n : \"HttpRequest.BodyPublishers.noBody()\";\n return [\n \"import java.net.URI;\",\n \"import java.net.http.HttpClient;\",\n \"import java.net.http.HttpRequest;\",\n \"import java.net.http.HttpResponse;\",\n \"\",\n \"HttpRequest request = HttpRequest.newBuilder()\",\n ` .uri(URI.create(${dq(url)}))`,\n ...Object.entries(headers).map(([key, value]) => ` .header(${dq(key)}, ${dq(value)})`),\n ` .method(${dq(method)}, ${publisher})`,\n \" .build();\",\n \"\",\n \"HttpResponse<String> response = HttpClient.newHttpClient()\",\n \" .send(request, HttpResponse.BodyHandlers.ofString());\",\n \"\",\n \"System.out.println(response.body());\",\n ].join(\"\\n\");\n}\n\nfunction javaOkHttp({ method, url, headers, body }: HttpRequest) {\n const hasBody = body !== undefined;\n return [\n \"OkHttpClient client = new OkHttpClient();\",\n \"\",\n ...(hasBody\n ? [\n `MediaType mediaType = MediaType.parse(${dq(contentTypeOf(headers) ?? \"text/plain\")});`,\n `RequestBody body = RequestBody.create(${dq(compact(body))}, mediaType);`,\n ]\n : []),\n \"Request request = new Request.Builder()\",\n ` .url(${dq(url)})`,\n ` .method(${dq(method)}, ${hasBody ? \"body\" : \"null\"})`,\n ...Object.entries(headers).map(([key, value]) => ` .addHeader(${dq(key)}, ${dq(value)})`),\n \" .build();\",\n \"\",\n \"Response response = client.newCall(request).execute();\",\n \"System.out.println(response.body().string());\",\n ].join(\"\\n\");\n}\n\nfunction kotlinOkHttp({ method, url, headers, body }: HttpRequest) {\n const hasBody = body !== undefined;\n return [\n \"val client = OkHttpClient()\",\n \"\",\n ...(hasBody\n ? [\n `val mediaType = ${kotlinQuote(contentTypeOf(headers) ?? \"text/plain\")}.toMediaType()`,\n `val body = \"\"\"\\n${body.replace(/\\$/g, () => \"${'$'}\")}\\n\"\"\".trimIndent().toRequestBody(mediaType)`,\n ]\n : []),\n \"val request = Request.Builder()\",\n ` .url(${kotlinQuote(url)})`,\n ` .method(${kotlinQuote(method)}, ${hasBody ? \"body\" : \"null\"})`,\n ...Object.entries(headers).map(([key, value]) => ` .addHeader(${kotlinQuote(key)}, ${kotlinQuote(value)})`),\n \" .build()\",\n \"\",\n \"val response = client.newCall(request).execute()\",\n \"println(response.body?.string())\",\n ].join(\"\\n\");\n}\n\nfunction csharpHttpClient({ method, url, headers, body }: HttpRequest) {\n const requestHeaders = Object.entries(withoutContentType(headers));\n const contentType = contentTypeOf(headers);\n const lines = [\n \"using System.Net.Http.Headers;\",\n \"\",\n \"var client = new HttpClient();\",\n \"var request = new HttpRequestMessage\",\n \"{\",\n ` Method = new HttpMethod(${dq(method)}),`,\n ` RequestUri = new Uri(${dq(url)}),`,\n ];\n if (requestHeaders.length) {\n lines.push(\" Headers =\", \" {\", ...requestHeaders.map(([key, value]) => ` { ${dq(key)}, ${dq(value)} },`), \" },\");\n }\n if (body !== undefined) {\n lines.push(` Content = new StringContent(${textBlock(body, \" \")})`);\n if (contentType) {\n lines.push(\n \" {\",\n \" Headers =\",\n \" {\",\n ` ContentType = new MediaTypeHeaderValue(${dq(contentType)})`,\n \" }\",\n \" }\",\n );\n }\n }\n lines.push(\n \"};\",\n \"\",\n \"using var response = await client.SendAsync(request);\",\n \"Console.WriteLine(await response.Content.ReadAsStringAsync());\",\n );\n return lines.join(\"\\n\");\n}\n\nfunction restSharp({ method, url, headers, body }: HttpRequest) {\n const contentType = contentTypeOf(headers) ?? \"application/json\";\n return [\n \"using RestSharp;\",\n \"\",\n `var client = new RestClient(${dq(url)});`,\n `var request = new RestRequest(\"\", Method.${capitalize(method)});`,\n ...Object.entries(withoutContentType(headers)).map(([key, value]) => `request.AddHeader(${dq(key)}, ${dq(value)});`),\n ...(body !== undefined ? [`request.AddStringBody(${dq(compact(body))}, ${dq(contentType)});`] : []),\n \"\",\n \"var response = await client.ExecuteAsync(request);\",\n \"Console.WriteLine(response.Content);\",\n ].join(\"\\n\");\n}\n\nfunction ruby({ method, url, headers, body }: HttpRequest) {\n const json = parseJson(body);\n const lines = ['require \"uri\"', 'require \"net/http\"'];\n if (json !== undefined) lines.push('require \"json\"');\n lines.push(\"\", `url = URI(${sq(url)})`, \"\", \"http = Net::HTTP.new(url.host, url.port)\");\n if (parseUrl(url).protocol === \"https:\") lines.push(\"http.use_ssl = true\");\n lines.push(\"\", `request = Net::HTTP::${capitalize(method)}.new(url)`);\n for (const [key, value] of Object.entries(headers)) lines.push(`request[${sq(key)}] = ${sq(value)}`);\n if (json !== undefined) lines.push(`request.body = JSON.dump(${toRuby(json)})`);\n else if (body !== undefined) lines.push(`request.body = ${sq(body)}`);\n lines.push(\"\", \"response = http.request(request)\", \"puts response.read_body\");\n return lines.join(\"\\n\");\n}\n\nfunction swift({ method, url, headers, body }: HttpRequest) {\n const lines = [\"import Foundation\", \"\", `let url = URL(string: ${dq(url)})!`, \"var request = URLRequest(url: url)\", `request.httpMethod = ${dq(method)}`];\n const entries = Object.entries(headers);\n if (entries.length) {\n lines.push(\"request.allHTTPHeaderFields = [\", ...entries.map(([key, value]) => ` ${dq(key)}: ${dq(value)},`), \"]\");\n }\n if (body !== undefined) lines.push(`request.httpBody = \"\"\"\\n${body.replace(/\\\\/g, \"\\\\\\\\\")}\\n\"\"\".data(using: .utf8)`);\n lines.push(\"\", \"let (data, _) = try await URLSession.shared.data(for: request)\", \"print(String(decoding: data, as: UTF8.self))\");\n return lines.join(\"\\n\");\n}\n\nfunction dart({ method, url, headers, body }: HttpRequest) {\n const entries = Object.entries(headers);\n const lines = [\"import 'package:http/http.dart' as http;\", \"\", \"void main() async {\"];\n lines.push(` final request = http.Request(${dartQuote(method)}, Uri.parse(${dartQuote(url)}));`);\n if (entries.length) {\n lines.push(\" request.headers.addAll({\", ...entries.map(([key, value]) => ` ${dartQuote(key)}: ${dartQuote(value)},`), \" });\");\n }\n if (body !== undefined) lines.push(` request.body = r'''\\n${body}\\n''';`);\n lines.push(\"\", \" final response = await request.send();\", \" print(await response.stream.bytesToString());\", \"}\");\n return lines.join(\"\\n\");\n}\n\nfunction rust({ method, url, headers, body }: HttpRequest) {\n const standard = [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"HEAD\", \"OPTIONS\", \"PATCH\", \"TRACE\"];\n const methodExpr = standard.includes(method)\n ? `reqwest::Method::${method}`\n : `reqwest::Method::from_bytes(b${dq(method)}).unwrap()`;\n let hashes = \"#\";\n while (body !== undefined && body.includes(`\"${hashes}`)) hashes += \"#\";\n\n return [\n \"#[tokio::main]\",\n \"async fn main() -> Result<(), reqwest::Error> {\",\n \" let client = reqwest::Client::new();\",\n \"\",\n \" let response = client\",\n ` .request(${methodExpr}, ${dq(url)})`,\n ...Object.entries(headers).map(([key, value]) => ` .header(${dq(key)}, ${dq(value)})`),\n ...(body !== undefined ? [` .body(r${hashes}\"${body}\"${hashes})`] : []),\n \" .send()\",\n \" .await?;\",\n \"\",\n ' println!(\"{}\", response.text().await?);',\n \" Ok(())\",\n \"}\",\n ].join(\"\\n\");\n}\n\nfunction libcurl({ method, url, headers, body }: HttpRequest) {\n const entries = Object.entries(headers);\n return [\n \"#include <curl/curl.h>\",\n \"\",\n \"int main(void) {\",\n \" CURL *curl = curl_easy_init();\",\n \"\",\n ` curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, ${dq(method)});`,\n ` curl_easy_setopt(curl, CURLOPT_URL, ${dq(url)});`,\n \"\",\n \" struct curl_slist *headers = NULL;\",\n ...entries.map(([key, value]) => ` headers = curl_slist_append(headers, ${dq(`${key}: ${value}`)});`),\n \" curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);\",\n ...(body !== undefined ? [\"\", ` curl_easy_setopt(curl, CURLOPT_POSTFIELDS, ${dq(compact(body))});`] : []),\n \"\",\n \" CURLcode ret = curl_easy_perform(curl);\",\n \"\",\n \" curl_slist_free_all(headers);\",\n \" curl_easy_cleanup(curl);\",\n \" return (int) ret;\",\n \"}\",\n ].join(\"\\n\");\n}\n\nfunction powershell({ method, url, headers, body }: HttpRequest) {\n const entries = Object.entries(withoutContentType(headers));\n const contentType = contentTypeOf(headers);\n const lines: string[] = [];\n const args = [`-Uri ${psQuote(url)}`, `-Method ${method}`];\n\n if (entries.length) {\n lines.push(\"$headers = @{\", ...entries.map(([key, value]) => ` ${psQuote(key)} = ${psQuote(value)}`), \"}\");\n args.push(\"-Headers $headers\");\n }\n if (contentType) args.push(`-ContentType ${psQuote(contentType)}`);\n if (body !== undefined) {\n lines.push(`$body = @'\\n${body}\\n'@`);\n args.push(\"-Body $body\");\n }\n if (lines.length) lines.push(\"\");\n lines.push(`$response = Invoke-RestMethod ${args.join(\" \")}`, \"$response | ConvertTo-Json -Depth 10\");\n return lines.join(\"\\n\");\n}\n\nfunction rawHttp({ method, url, headers, body }: HttpRequest) {\n const target = parseUrl(url);\n const lines = [`${method} ${target.pathname}${target.search} HTTP/1.1`, `Host: ${target.host}`];\n for (const [key, value] of Object.entries(headers)) lines.push(`${key}: ${value}`);\n if (body !== undefined) lines.push(`Content-Length: ${new TextEncoder().encode(body).length}`, \"\", body);\n return lines.join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n\n// `highlight` is the tokenizer language in src/lib/highlight.js.\nconst LANGUAGES: SnippetLanguage[] = [\n {\n key: \"shell\",\n label: \"Shell\",\n highlight: \"shell\",\n clients: [\n { key: \"curl\", label: \"cURL\", build: curl },\n { key: \"wget\", label: \"Wget\", build: wget },\n { key: \"httpie\", label: \"HTTPie\", build: httpie },\n ],\n },\n {\n key: \"javascript\",\n label: \"JavaScript\",\n highlight: \"javascript\",\n clients: [\n { key: \"fetch\", label: \"fetch\", build: fetchClient },\n { key: \"axios\", label: \"Axios\", build: axios },\n { key: \"jquery\", label: \"jQuery\", build: jquery },\n { key: \"xhr\", label: \"XHR\", build: xhr },\n ],\n },\n {\n key: \"node\",\n label: \"Node.js\",\n highlight: \"javascript\",\n clients: [\n { key: \"fetch\", label: \"fetch\", build: fetchClient },\n { key: \"axios\", label: \"Axios\", build: axios },\n { key: \"undici\", label: \"undici\", build: undici },\n { key: \"http\", label: \"http\", build: nodeHttp },\n ],\n },\n {\n key: \"python\",\n label: \"Python\",\n highlight: \"python\",\n clients: [\n { key: \"requests\", label: \"requests\", build: pythonClient(\"requests\") },\n { key: \"httpx\", label: \"httpx\", build: pythonClient(\"httpx\") },\n { key: \"http.client\", label: \"http.client\", build: pythonHttpClient },\n ],\n },\n {\n key: \"php\",\n label: \"PHP\",\n highlight: \"php\",\n clients: [\n { key: \"curl\", label: \"cURL\", build: phpCurl },\n { key: \"guzzle\", label: \"Guzzle\", build: guzzle },\n ],\n },\n { key: \"go\", label: \"Go\", highlight: \"go\", clients: [{ key: \"native\", label: \"net/http\", build: go }] },\n {\n key: \"java\",\n label: \"Java\",\n highlight: \"java\",\n clients: [\n { key: \"httpclient\", label: \"HttpClient\", build: javaHttpClient },\n { key: \"okhttp\", label: \"OkHttp\", build: javaOkHttp },\n ],\n },\n { key: \"kotlin\", label: \"Kotlin\", highlight: \"kotlin\", clients: [{ key: \"okhttp\", label: \"OkHttp\", build: kotlinOkHttp }] },\n {\n key: \"csharp\",\n label: \"C#\",\n highlight: \"csharp\",\n clients: [\n { key: \"httpclient\", label: \"HttpClient\", build: csharpHttpClient },\n { key: \"restsharp\", label: \"RestSharp\", build: restSharp },\n ],\n },\n { key: \"ruby\", label: \"Ruby\", highlight: \"ruby\", clients: [{ key: \"native\", label: \"net/http\", build: ruby }] },\n { key: \"swift\", label: \"Swift\", highlight: \"swift\", clients: [{ key: \"urlsession\", label: \"URLSession\", build: swift }] },\n { key: \"dart\", label: \"Dart\", highlight: \"dart\", clients: [{ key: \"http\", label: \"http\", build: dart }] },\n { key: \"rust\", label: \"Rust\", highlight: \"rust\", clients: [{ key: \"reqwest\", label: \"reqwest\", build: rust }] },\n { key: \"c\", label: \"C\", highlight: \"c\", clients: [{ key: \"libcurl\", label: \"libcurl\", build: libcurl }] },\n {\n key: \"powershell\",\n label: \"PowerShell\",\n highlight: \"powershell\",\n clients: [{ key: \"restmethod\", label: \"Invoke-RestMethod\", build: powershell }],\n },\n { key: \"http\", label: \"HTTP\", highlight: \"http\", clients: [{ key: \"raw\", label: \"HTTP/1.1\", build: rawHttp }] },\n];\n\n// Requests with multipart parts (HttpRequest.form) use the multipart builders.\nexport const SNIPPET_LANGUAGES: SnippetLanguage[] = LANGUAGES.map((language) => ({\n ...language,\n clients: language.clients.map((client) => {\n const multipart = MULTIPART_BUILDERS[`${language.key}:${client.key}`];\n return { ...client, build: (request: HttpRequest) => (request.form && multipart ? multipart(request) : client.build(request)) };\n }),\n}));\n\n// Selection is stored as \"language:client\" (e.g. \"python:httpx\").\nexport function resolveSnippet(selection: unknown): { language: SnippetLanguage; client: SnippetLanguage[\"clients\"][number]; selection: string } {\n const [languageKey, clientKey] = String(selection ?? \"\").split(\":\");\n const language = SNIPPET_LANGUAGES.find((item) => item.key === languageKey) ?? SNIPPET_LANGUAGES[0];\n const client = language.clients.find((item) => item.key === clientKey) ?? language.clients[0];\n return { language, client, selection: `${language.key}:${client.key}` };\n}\n", "import type { OpenAPIObject } from \"./types\";\n\n// Localized text for OpenAPI objects through the \"x-i18n\" extension:\n//\n// {\n// \"summary\": \"List users\",\n// \"x-i18n\": { \"tr\": { \"summary\": \"Kullanıcıları listele\" } }\n// }\n//\n// Works on any object with human-readable fields (info, tags, operations,\n// parameters, responses, schemas): the field is looked up for the UI locale,\n// then its base language (\"pt\" for \"pt-BR\"), and finally the plain field,\n// which holds the document's authored language. Markdown fields may also use\n// \":::lang\" blocks (markdown.ts); both can be combined.\n\nexport function localize(node: OpenAPIObject | null | undefined, field: string, locale?: string): any {\n const translations = node?.[\"x-i18n\"];\n if (translations && locale) {\n const target = String(locale).toLowerCase();\n const base = target.split(\"-\")[0];\n for (const [tag, values] of Object.entries(translations)) {\n const normalized = tag.toLowerCase().replace(\"_\", \"-\");\n if ((normalized === target || normalized === base) && typeof values?.[field] === \"string\") return values[field];\n }\n }\n return node?.[field];\n}\n", "// Markdown parser for OpenAPI descriptions: a GitHub Flavored Markdown subset\n// that covers what API docs use in practice.\n//\n// Blocks: paragraphs, ATX headings, fenced code, blockquotes, thematic\n// breaks, (nested) ordered/unordered/task lists, GFM tables.\n// Inline: code spans, strong, emphasis, strikethrough, links, images,\n// autolinks (<https://…> and bare URLs), hard breaks, escapes.\n//\n// Extension: language blocks. Translations of the same content sit next to\n// each other and the viewer shows the one matching the UI language:\n//\n// :::lang en\n// English text\n// :::\n//\n// :::lang tr\n// Türkçe metin\n// :::\n//\n// A block may list several locales (\":::lang tr, az\"). Content outside\n// language blocks is shared by every language. See selectLocale().\n//\n// Raw HTML is never interpreted: it stays literal text. The output is a small\n// AST that components/markdown.jsx turns into React elements.\n\nimport type { InlineNode, ListItem, MarkdownBlock } from \"./types\";\n\ntype LangBlock = Extract<MarkdownBlock, { type: \"lang\" }>;\n\nconst FENCE = /^ {0,3}(`{3,}|~{3,})\\s*([^\\s`]*)[^`]*$/;\nconst LANG_OPEN = /^ {0,3}:{3,}[ \\t]*lang[ \\t]+([A-Za-z]{2,3}(?:[-_][A-Za-z0-9]+)*(?:[ \\t]*,[ \\t]*[A-Za-z]{2,3}(?:[-_][A-Za-z0-9]+)*)*)[ \\t]*$/;\nconst CONTAINER_OPEN = /^ {0,3}:{3,}[ \\t]*\\S/;\nconst CONTAINER_CLOSE = /^ {0,3}:{3,}[ \\t]*$/;\nconst HEADING = /^ {0,3}(#{1,6})(?:[ \\t]+(.*?))?(?:[ \\t]+#+)?[ \\t]*$/;\nconst THEMATIC_BREAK = /^ {0,3}([-*_])(?:[ \\t]*\\1){2,}[ \\t]*$/;\nconst BLOCKQUOTE = /^ {0,3}> ?/;\nconst LIST_ITEM = /^( *)([-*+]|\\d{1,9}[.)])([ \\t]+|$)(.*)$/;\nconst TABLE_DELIMITER = /^ {0,3}\\|?[ \\t]*:?-+:?[ \\t]*(\\|[ \\t]*:?-+:?[ \\t]*)*\\|?[ \\t]*$/;\n\nconst isBlank = (line) => line.trim() === \"\";\nconst indentOf = (line) => line.match(/^ */)[0].length;\nconst expandTabs = (line) => line.replace(/\\t/g, \" \");\n\n// ---------------------------------------------------------------------------\n// Tables\n\nfunction splitRow(line) {\n let row = line.trim();\n if (row.startsWith(\"|\")) row = row.slice(1);\n if (row.endsWith(\"|\") && !row.endsWith(\"\\\\|\")) row = row.slice(0, -1);\n\n const cells: string[] = [];\n let current = \"\";\n let inCode = false;\n for (let index = 0; index < row.length; index += 1) {\n const char = row[index];\n if (char === \"\\\\\" && row[index + 1] === \"|\") {\n current += \"|\";\n index += 1;\n } else if (char === \"`\") {\n inCode = !inCode;\n current += char;\n } else if (char === \"|\" && !inCode) {\n cells.push(current.trim());\n current = \"\";\n } else {\n current += char;\n }\n }\n cells.push(current.trim());\n return cells;\n}\n\nfunction isTableStart(lines, index) {\n return (\n index + 1 < lines.length &&\n lines[index].includes(\"|\") &&\n TABLE_DELIMITER.test(lines[index + 1]) &&\n splitRow(lines[index]).length === splitRow(lines[index + 1]).length\n );\n}\n\nfunction parseTable(lines, index) {\n const header = splitRow(lines[index]);\n const align = splitRow(lines[index + 1]).map((cell): \"left\" | \"right\" | \"center\" | null => {\n const left = cell.startsWith(\":\");\n const right = cell.endsWith(\":\");\n return left && right ? \"center\" : right ? \"right\" : left ? \"left\" : null;\n });\n\n const rows: InlineNode[][][] = [];\n let next = index + 2;\n while (next < lines.length && !isBlank(lines[next]) && lines[next].includes(\"|\")) {\n const cells = splitRow(lines[next]);\n rows.push(header.map((_, column) => parseInline(cells[column] ?? \"\")));\n next += 1;\n }\n\n return {\n block: { type: \"table\" as const, align, header: header.map((cell) => parseInline(cell)), rows },\n next,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Lists\n\nfunction listMarker(line) {\n const match = LIST_ITEM.exec(line);\n if (!match) return null;\n const [, indent, marker, spacing, rest] = match;\n const ordered = /\\d/.test(marker);\n // A marker followed by 5+ spaces starts indented code; treat it as one space.\n const gap = spacing.length === 0 || spacing.length > 4 ? 1 : spacing.length;\n return {\n indent: indent.length,\n ordered,\n bullet: ordered ? marker.slice(-1) : marker,\n start: ordered ? Number.parseInt(marker, 10) : null,\n contentOffset: indent.length + marker.length + gap,\n firstLine: spacing.length > 4 ? `${\" \".repeat(spacing.length - 1)}${rest}` : rest,\n };\n}\n\nfunction parseList(lines, index) {\n const first = listMarker(lines[index])!;\n const items: ListItem[] = [];\n let loose = false;\n let next = index;\n\n while (next < lines.length) {\n const marker = listMarker(lines[next]);\n if (!marker || marker.ordered !== first.ordered || marker.bullet !== first.bullet || marker.indent >= first.contentOffset) break;\n\n const content = [marker.firstLine];\n next += 1;\n let sawBlank = false;\n\n while (next < lines.length) {\n const line = lines[next];\n if (isBlank(line)) {\n sawBlank = true;\n content.push(\"\");\n next += 1;\n continue;\n }\n if (indentOf(line) >= marker.contentOffset) {\n content.push(line.slice(marker.contentOffset));\n next += 1;\n continue;\n }\n // Lazy continuation of the item's paragraph.\n if (!sawBlank && !listMarker(line) && !startsBlock(lines, next)) {\n content.push(line.trim());\n next += 1;\n continue;\n }\n break;\n }\n\n while (content.length && isBlank(content[content.length - 1])) content.pop();\n if (sawBlank && next < lines.length && listMarker(lines[next])?.bullet === first.bullet) loose = true;\n if (content.some((line, lineIndex) => isBlank(line) && lineIndex < content.length - 1)) loose = true;\n\n let checked: boolean | null = null;\n const task = /^\\[([ xX])\\][ \\t]+/.exec(content[0]);\n if (task) {\n checked = task[1] !== \" \";\n content[0] = content[0].slice(task[0].length);\n }\n\n items.push({ checked, children: parseBlocks(content) });\n\n // A blank line followed by something that is not a sibling item ends the list.\n if (sawBlank && !(next < lines.length && listMarker(lines[next]))) break;\n }\n\n return {\n block: { type: \"list\" as const, ordered: first.ordered, start: first.start, loose, items },\n next,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Blocks\n\nfunction startsBlock(lines, index) {\n const line = lines[index];\n return (\n FENCE.test(line) ||\n LANG_OPEN.test(line) ||\n HEADING.test(line) ||\n THEMATIC_BREAK.test(line) ||\n BLOCKQUOTE.test(line) ||\n isTableStart(lines, index)\n );\n}\n\n// A list interrupts a paragraph only with a bullet or \"1.\" (CommonMark rule),\n// so \"2024. was a year\" inside a sentence stays text.\nfunction interruptsParagraph(lines, index) {\n if (startsBlock(lines, index)) return true;\n const marker = listMarker(lines[index]);\n return Boolean(marker && marker.firstLine.trim() && (!marker.ordered || marker.start === 1));\n}\n\nexport function parseBlocks(lines: string[]): MarkdownBlock[] {\n const blocks: MarkdownBlock[] = [];\n let index = 0;\n\n while (index < lines.length) {\n const line = lines[index];\n\n if (isBlank(line)) {\n index += 1;\n continue;\n }\n\n const fence = FENCE.exec(line);\n if (fence) {\n const [, marker, language] = fence;\n const indent = indentOf(line);\n const code: string[] = [];\n index += 1;\n while (index < lines.length) {\n const closing = lines[index].trim();\n if (closing.startsWith(marker[0].repeat(marker.length)) && /^[`~]+$/.test(closing)) break;\n code.push(lines[index].slice(Math.min(indent, indentOf(lines[index]))));\n index += 1;\n }\n index += 1;\n blocks.push({ type: \"code\", language: language.toLowerCase(), text: code.join(\"\\n\") });\n continue;\n }\n\n const lang = LANG_OPEN.exec(line);\n if (lang) {\n const inner: string[] = [];\n let depth = 1;\n index += 1;\n let inFence: string | null = null;\n while (index < lines.length) {\n const current = lines[index];\n const fence = FENCE.exec(current);\n if (fence && (!inFence || current.trim().startsWith(inFence))) inFence = inFence ? null : fence[1];\n if (!inFence) {\n if (CONTAINER_OPEN.test(current)) depth += 1;\n else if (CONTAINER_CLOSE.test(current) && --depth === 0) break;\n }\n inner.push(current);\n index += 1;\n }\n index += 1;\n blocks.push({\n type: \"lang\",\n locales: lang[1].split(\",\").map((item) => normalizeTag(item)),\n children: parseBlocks(inner),\n });\n continue;\n }\n\n const heading = HEADING.exec(line);\n if (heading) {\n blocks.push({ type: \"heading\", level: heading[1].length, children: parseInline(heading[2] ?? \"\") });\n index += 1;\n continue;\n }\n\n if (THEMATIC_BREAK.test(line)) {\n blocks.push({ type: \"hr\" });\n index += 1;\n continue;\n }\n\n if (BLOCKQUOTE.test(line)) {\n const quoted: string[] = [];\n while (index < lines.length && !isBlank(lines[index])) {\n quoted.push(lines[index].replace(BLOCKQUOTE, \"\"));\n index += 1;\n }\n blocks.push({ type: \"blockquote\", children: parseBlocks(quoted) });\n continue;\n }\n\n if (isTableStart(lines, index)) {\n const { block, next } = parseTable(lines, index);\n blocks.push(block);\n index = next;\n continue;\n }\n\n if (listMarker(line)) {\n const { block, next } = parseList(lines, index);\n blocks.push(block);\n index = next;\n continue;\n }\n\n const paragraph = [line.trim()];\n index += 1;\n while (index < lines.length && !isBlank(lines[index]) && !interruptsParagraph(lines, index)) {\n paragraph.push(lines[index].trim());\n index += 1;\n }\n // Keep hard-break markers (two trailing spaces / backslash) for parseInline.\n const raw = paragraph.map((text, lineIndex) => {\n const original = lines[index - paragraph.length + lineIndex];\n return / {2,}$/.test(original) ? `${text} ` : text;\n });\n blocks.push({ type: \"paragraph\", children: parseInline(raw.join(\"\\n\")) });\n }\n\n return blocks;\n}\n\n// ---------------------------------------------------------------------------\n// Inline\n\nconst PUNCTUATION = /[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~]/;\nconst BARE_URL = /^https?:\\/\\/[^\\s<]*[^\\s<.,:;\"')\\]!?*_~]/;\nconst AUTOLINK = /^<((?:https?:\\/\\/|mailto:)[^\\s<>]+)>/;\n\n// Finds the matching \"]\" for a \"[\" at `start`, honouring nesting and escapes.\nfunction closingBracket(text, start) {\n let depth = 0;\n for (let index = start; index < text.length; index += 1) {\n const char = text[index];\n if (char === \"\\\\\") index += 1;\n else if (char === \"`\") {\n const end = text.indexOf(\"`\", index + 1);\n if (end !== -1) index = end;\n } else if (char === \"[\") depth += 1;\n else if (char === \"]\" && --depth === 0) return index;\n }\n return -1;\n}\n\n// Parses \"(destination \"title\")\" at `start`; returns null when malformed.\nfunction linkTarget(text, start) {\n if (text[start] !== \"(\") return null;\n let index = start + 1;\n while (text[index] === \" \") index += 1;\n\n let href = \"\";\n if (text[index] === \"<\") {\n const end = text.indexOf(\">\", index);\n if (end === -1) return null;\n href = text.slice(index + 1, end);\n index = end + 1;\n } else {\n let depth = 0;\n while (index < text.length) {\n const char = text[index];\n if (char === \"\\\\\" && PUNCTUATION.test(text[index + 1] ?? \"\")) {\n href += text[index + 1];\n index += 2;\n continue;\n }\n if (/\\s/.test(char)) break;\n if (char === \"(\") depth += 1;\n if (char === \")\") {\n if (depth === 0) break;\n depth -= 1;\n }\n href += char;\n index += 1;\n }\n }\n\n while (text[index] === \" \") index += 1;\n let title: string | undefined;\n const quote = text[index];\n if (quote === '\"' || quote === \"'\") {\n const end = text.indexOf(quote, index + 1);\n if (end === -1) return null;\n title = text.slice(index + 1, end);\n index = end + 1;\n while (text[index] === \" \") index += 1;\n }\n\n return text[index] === \")\" ? { href, title, end: index + 1 } : null;\n}\n\n// Closing delimiter for emphasis: not preceded by whitespace, and for single\n// \"*\"/\"_\" not part of a doubled run.\nfunction closingDelimiter(text, delimiter, from) {\n let index = from;\n while ((index = text.indexOf(delimiter, index)) !== -1) {\n const before = text[index - 1];\n const after = text[index + delimiter.length];\n const doubled = delimiter.length === 1 && (after === delimiter || before === delimiter);\n const escaped = before === \"\\\\\";\n const intraword = delimiter[0] === \"_\" && /\\w/.test(after ?? \"\");\n if (index > from && !/\\s/.test(before) && !doubled && !escaped && !intraword) return index;\n index += doubled ? 2 : 1;\n }\n return -1;\n}\n\nfunction pushText(nodes, value) {\n const last = nodes[nodes.length - 1];\n if (last?.type === \"text\") last.value += value;\n else nodes.push({ type: \"text\", value });\n}\n\n// `links: false` parses a link's label: links cannot nest in HTML, so\n// nested links and autolinks there stay plain text.\nexport function parseInline(text: string, { links = true }: { links?: boolean } = {}): InlineNode[] {\n const nodes: InlineNode[] = [];\n let index = 0;\n\n while (index < text.length) {\n const char = text[index];\n const rest = text.slice(index);\n\n // Escapes\n if (char === \"\\\\\" && PUNCTUATION.test(text[index + 1] ?? \"\")) {\n pushText(nodes, text[index + 1]);\n index += 2;\n continue;\n }\n\n // Hard breaks: two trailing spaces or a backslash before a newline.\n if (char === \"\\n\") {\n const hard = /( {2,}|\\\\)$/.test(text.slice(0, index));\n if (hard && nodes[nodes.length - 1]?.type === \"text\") {\n const last = nodes[nodes.length - 1] as { type: \"text\"; value: string };\n last.value = last.value.replace(/( {2,}|\\\\)$/, \"\");\n }\n if (hard) nodes.push({ type: \"br\" });\n else pushText(nodes, \" \");\n index += 1;\n continue;\n }\n\n // Code spans: a run of N backticks closed by exactly N backticks.\n if (char === \"`\") {\n const run = /^`+/.exec(rest)![0];\n const closing = new RegExp(`(?<!\\`)${run}(?!\\`)`, \"g\");\n closing.lastIndex = index + run.length;\n const match = closing.exec(text);\n if (match) {\n let value = text.slice(index + run.length, match.index).replace(/\\n/g, \" \");\n if (/^ .* $/.test(value) && value.trim()) value = value.slice(1, -1);\n nodes.push({ type: \"code\", value });\n index = match.index + run.length;\n } else {\n pushText(nodes, run);\n index += run.length;\n }\n continue;\n }\n\n // Images and links\n if ((links && char === \"[\") || (char === \"!\" && text[index + 1] === \"[\")) {\n const image = char === \"!\";\n const open = image ? index + 1 : index;\n const close = closingBracket(text, open);\n const target = close !== -1 ? linkTarget(text, close + 1) : null;\n if (target) {\n const label = text.slice(open + 1, close);\n nodes.push(\n image\n ? { type: \"image\", src: target.href, alt: label, title: target.title }\n : { type: \"link\", href: target.href, title: target.title, children: parseInline(label, { links: false }) },\n );\n index = target.end;\n continue;\n }\n }\n\n // Autolinks\n const autolink = links && char === \"<\" ? AUTOLINK.exec(rest) : null;\n if (autolink) {\n nodes.push({ type: \"link\", href: autolink[1], children: [{ type: \"text\", value: autolink[1].replace(/^mailto:/, \"\") }] });\n index += autolink[0].length;\n continue;\n }\n if (links && char === \"h\" && !/\\w/.test(text[index - 1] ?? \"\")) {\n const url = BARE_URL.exec(rest);\n if (url) {\n nodes.push({ type: \"link\", href: url[0], children: [{ type: \"text\", value: url[0] }] });\n index += url[0].length;\n continue;\n }\n }\n\n // Strong, strikethrough, emphasis\n const delimiter = [\"**\", \"__\", \"~~\"].find((item) => rest.startsWith(item)) ?? (char === \"*\" || char === \"_\" ? char : null);\n const leftFlanking = delimiter && rest[delimiter.length] && !/\\s/.test(rest[delimiter.length]);\n const wordBefore = /\\w/.test(text[index - 1] ?? \"\");\n if (delimiter && leftFlanking && !(delimiter[0] === \"_\" && wordBefore)) {\n const end = closingDelimiter(text, delimiter, index + delimiter.length);\n if (end !== -1) {\n const type = delimiter === \"~~\" ? \"del\" : delimiter.length === 2 ? \"strong\" : \"em\";\n nodes.push({ type, children: parseInline(text.slice(index + delimiter.length, end), { links }) });\n index = end + delimiter.length;\n continue;\n }\n }\n\n pushText(nodes, delimiter && !leftFlanking ? delimiter : char);\n index += delimiter && !leftFlanking ? delimiter.length : 1;\n }\n\n return nodes;\n}\n\nfunction normalizeTag(tag) {\n return tag.trim().replace(\"_\", \"-\").toLowerCase();\n}\n\n// Does a block written for `tag` (\"pt-br\") serve the UI `locale` (\"pt\")?\nfunction matches(tag, locale) {\n return tag === locale || tag.split(\"-\")[0] === locale.split(\"-\")[0];\n}\n\n// Resolves language blocks for one locale. Consecutive lang blocks (blank\n// lines between them are fine) are alternatives of the same content: the one\n// for `locale` wins, then the first fallback locale, then the first block.\n// Returns plain blocks, each chosen group wrapped as { type: \"lang-selected\" }\n// so the renderer can set lang=\"…\" on it.\nexport function selectLocale(blocks: MarkdownBlock[], locale: string, fallbacks: string[] = [\"en\"]): MarkdownBlock[] {\n const result: MarkdownBlock[] = [];\n let index = 0;\n\n while (index < blocks.length) {\n const block = blocks[index];\n if (block.type !== \"lang\") {\n result.push(block);\n index += 1;\n continue;\n }\n\n const group: LangBlock[] = [];\n while (index < blocks.length && blocks[index].type === \"lang\") group.push(blocks[index++] as LangBlock);\n\n const target = normalizeTag(locale);\n const chosen =\n group.find((item) => item.locales.some((tag) => tag === target)) ??\n group.find((item) => item.locales.some((tag) => matches(tag, target))) ??\n fallbacks.map((fallback) => group.find((item) => item.locales.some((tag) => matches(tag, normalizeTag(fallback))))).find(Boolean) ??\n group[0];\n\n result.push({\n type: \"lang-selected\",\n locale: chosen.locales.find((tag) => matches(tag, target)) ?? chosen.locales[0],\n children: selectLocale(chosen.children, locale, fallbacks),\n });\n }\n\n return result;\n}\n\nexport function parseMarkdown(source: unknown): MarkdownBlock[] {\n if (!source) return [];\n return parseBlocks(expandTabs(String(source).replace(/\\r\\n?/g, \"\\n\")).split(\"\\n\"));\n}\n\n// Only these URL schemes become links/images; anything else (javascript:,\n// data:, vbscript:…) is rendered as plain text.\nexport function safeUrl(url: unknown, { image = false }: { image?: boolean } = {}): string | null {\n const value = String(url ?? \"\").trim();\n if (/^(https?:|\\/(?!\\/)|#|\\.{1,2}\\/)/i.test(value)) return value;\n if (!image && /^mailto:/i.test(value)) return value;\n if (!/^[a-z][a-z0-9+.-]*:/i.test(value) && !value.startsWith(\"//\")) return value;\n return null;\n}\n", "import type { Token } from \"./types\";\n\ntype Rule = [string, RegExp];\n\n// Small regex tokenizer for the languages the docs render. Returns a list of\n// { type, text } tokens; `type` null means plain text. Rules are tried in\n// order at each position, so earlier rules win (e.g. comments before strings).\n\nconst STRING_DOUBLE = /\"(?:\\\\.|[^\"\\\\\\n])*\"/y;\nconst STRING_SINGLE = /'(?:\\\\.|[^'\\\\])*'/y;\nconst NUMBER = /-?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b/y;\n\nconst words = (list: string[]) => new RegExp(`\\\\b(?:${list.join(\"|\")})\\\\b`, \"y\");\n\nconst LANGUAGES: Record<string, Rule[]> = {\n json: [\n [\"key\", /\"(?:\\\\.|[^\"\\\\\\n])*\"(?=\\s*:)/y],\n [\"string\", STRING_DOUBLE],\n [\"number\", NUMBER],\n [\"literal\", words([\"true\", \"false\", \"null\"])],\n ],\n shell: [\n [\"comment\", /#[^\\n]*/y],\n // No escapes inside single quotes in shell; '\\'' closes the string, adds\n // an escaped quote and reopens, so the backslash escape is its own token.\n [\"string\", /\\\\./y],\n [\"string\", /'[^']*'/y],\n [\"string\", STRING_DOUBLE],\n [\"keyword\", /(?<![\\w-])(?:curl|wget|http|printf)\\b/y],\n [\"attr\", /(?<![\\w-])--?[a-zA-Z][\\w-]*/y],\n [\"variable\", /\\$\\{?\\w+\\}?/y],\n ],\n javascript: [\n [\"comment\", /\\/\\/[^\\n]*|\\/\\*[\\s\\S]*?\\*\\//y],\n [\"string\", /`(?:\\\\.|[^`\\\\])*`/y],\n [\"key\", /\"(?:\\\\.|[^\"\\\\\\n])*\"(?=\\s*:)/y],\n [\"string\", STRING_DOUBLE],\n [\"string\", STRING_SINGLE],\n [\"key\", /\\b[A-Za-z_$][\\w$]*(?=\\s*:(?!:))/y],\n [\"keyword\", words([\"const\", \"let\", \"var\", \"await\", \"async\", \"function\", \"return\", \"new\", \"if\", \"else\", \"import\", \"from\", \"export\"])],\n [\"literal\", words([\"true\", \"false\", \"null\", \"undefined\"])],\n [\"function\", /\\b[A-Za-z_$][\\w$]*(?=\\s*\\()/y],\n [\"number\", NUMBER],\n ],\n php: [\n [\"comment\", /\\/\\/[^\\n]*|#[^\\n]*|\\/\\*[\\s\\S]*?\\*\\//y],\n [\"keyword\", /<\\?php|\\?>/y],\n [\"string\", STRING_DOUBLE],\n [\"string\", STRING_SINGLE],\n [\"variable\", /\\$\\w+/y],\n [\"constant\", /\\b[A-Z][A-Z0-9_]{2,}\\b/y],\n [\"keyword\", words([\"echo\", \"return\", \"new\", \"function\", \"if\", \"else\", \"use\", \"array\"])],\n [\"literal\", words([\"true\", \"false\", \"null\"])],\n [\"function\", /\\b[A-Za-z_]\\w*(?=\\s*\\()/y],\n [\"number\", NUMBER],\n ],\n python: [\n [\"comment\", /#[^\\n]*/y],\n [\"string\", STRING_DOUBLE],\n [\"string\", STRING_SINGLE],\n [\"keyword\", words([\"import\", \"from\", \"as\", \"def\", \"return\", \"if\", \"else\", \"for\", \"in\", \"print\", \"with\"])],\n [\"literal\", words([\"True\", \"False\", \"None\"])],\n [\"attr\", /\\b[a-z_]\\w*(?==)/y],\n [\"function\", /\\b[A-Za-z_]\\w*(?=\\s*\\()/y],\n [\"number\", NUMBER],\n ],\n};\n\nconst C_COMMENT = /\\/\\/[^\\n]*|\\/\\*[\\s\\S]*?\\*\\//y;\nconst TRIPLE_DOUBLE = /\"\"\"[\\s\\S]*?\"\"\"/y;\nconst TYPE = /\\b[A-Z][a-z]\\w*\\b/y;\nconst CALL = /\\b[A-Za-z_]\\w*(?=\\s*\\()/y;\n\n// Shared shape for C-family languages; `strings` go first so raw/multi-line\n// literals win over the plain double-quoted rule.\nfunction cFamily({\n keywords,\n literals = [\"true\", \"false\", \"null\"],\n strings = [],\n extra = [],\n}: {\n keywords: string[];\n literals?: string[];\n strings?: RegExp[];\n extra?: Rule[];\n}): Rule[] {\n return [\n [\"comment\", C_COMMENT],\n ...strings.map((regex): Rule => [\"string\", regex]),\n [\"string\", STRING_DOUBLE],\n [\"string\", STRING_SINGLE],\n ...extra,\n [\"keyword\", words(keywords)],\n [\"literal\", words(literals)],\n [\"function\", CALL],\n [\"type\", TYPE],\n [\"number\", NUMBER],\n ];\n}\n\nObject.assign(LANGUAGES, {\n go: cFamily({\n keywords: [\"package\", \"import\", \"func\", \"var\", \"const\", \"if\", \"else\", \"return\", \"defer\", \"for\", \"range\", \"type\", \"struct\", \"go\", \"map\", \"chan\"],\n literals: [\"true\", \"false\", \"nil\"],\n strings: [/`[^`]*`/y],\n }),\n java: cFamily({\n keywords: [\"import\", \"package\", \"new\", \"public\", \"private\", \"class\", \"static\", \"void\", \"final\", \"var\", \"return\", \"throws\", \"try\", \"catch\"],\n strings: [TRIPLE_DOUBLE],\n }),\n kotlin: cFamily({\n keywords: [\"import\", \"val\", \"var\", \"fun\", \"return\", \"if\", \"else\", \"class\", \"object\"],\n strings: [TRIPLE_DOUBLE],\n }),\n csharp: cFamily({\n keywords: [\"using\", \"var\", \"new\", \"await\", \"async\", \"return\", \"public\", \"class\", \"static\", \"void\"],\n strings: [TRIPLE_DOUBLE],\n }),\n swift: cFamily({\n keywords: [\"import\", \"let\", \"var\", \"try\", \"await\", \"func\", \"return\", \"if\", \"else\"],\n literals: [\"true\", \"false\", \"nil\"],\n strings: [TRIPLE_DOUBLE],\n }),\n dart: cFamily({\n keywords: [\"import\", \"as\", \"final\", \"var\", \"void\", \"async\", \"await\", \"return\"],\n strings: [/r?'''[\\s\\S]*?'''/y],\n }),\n rust: cFamily({\n keywords: [\"use\", \"let\", \"mut\", \"fn\", \"async\", \"await\", \"pub\", \"struct\", \"impl\", \"match\", \"return\"],\n strings: [/r(#+)\"[\\s\\S]*?\"\\1/y],\n extra: [\n [\"attr\", /#\\[[^\\]]*\\]/y],\n [\"function\", /\\b[a-z_]\\w*!/y],\n ],\n }),\n c: cFamily({\n keywords: [\"int\", \"char\", \"void\", \"struct\", \"return\", \"if\", \"else\", \"const\", \"static\"],\n literals: [\"NULL\"],\n extra: [\n [\"keyword\", /#\\w+(?:\\s+<[^>\\n]*>)?/y],\n [\"constant\", /\\b[A-Z][A-Z0-9_]{2,}\\b/y],\n ],\n }),\n ruby: [\n [\"comment\", /#[^\\n]*/y],\n [\"string\", STRING_DOUBLE],\n [\"string\", STRING_SINGLE],\n [\"literal\", /:\\w+/y],\n [\"keyword\", words([\"require\", \"def\", \"end\", \"do\", \"if\", \"else\", \"puts\", \"return\", \"new\"])],\n [\"literal\", words([\"true\", \"false\", \"nil\"])],\n [\"type\", TYPE],\n [\"number\", NUMBER],\n ],\n powershell: [\n [\"comment\", /#[^\\n]*/y],\n [\"string\", /@'[\\s\\S]*?'@|@\"[\\s\\S]*?\"@/y],\n [\"string\", /'(?:''|[^'])*'/y],\n [\"string\", STRING_DOUBLE],\n [\"literal\", /\\$(?:true|false|null)\\b/y],\n [\"variable\", /\\$\\w+/y],\n [\"function\", /\\b[A-Z][a-z]+-[A-Z][A-Za-z]+\\b/y],\n [\"attr\", /(?<![\\w-])-[A-Za-z]+/y],\n [\"number\", NUMBER],\n ],\n // Request line, header names, then JSON-ish body tokens.\n http: [\n [\"keyword\", /^[A-Z]+(?= \\S+ HTTP\\/)/my],\n [\"attr\", /HTTP\\/\\d(?:\\.\\d)?/y],\n [\"key\", /^[\\w-]+(?=:)/my],\n [\"key\", /\"(?:\\\\.|[^\"\\\\\\n])*\"(?=\\s*:)/y],\n [\"string\", STRING_DOUBLE],\n [\"literal\", words([\"true\", \"false\", \"null\"])],\n [\"number\", NUMBER],\n ],\n});\n\nLANGUAGES.curl = LANGUAGES.shell;\n\nexport function tokenize(code: string, language: string): Token[] {\n const rules = LANGUAGES[language];\n if (!rules) return [{ type: null, text: code }];\n\n const tokens: Token[] = [];\n let plain = \"\";\n let index = 0;\n\n outer: while (index < code.length) {\n for (const [type, regex] of rules) {\n regex.lastIndex = index;\n const match = regex.exec(code);\n if (match && match[0].length > 0) {\n if (plain) {\n tokens.push({ type: null, text: plain });\n plain = \"\";\n }\n tokens.push({ type, text: match[0] });\n index += match[0].length;\n continue outer;\n }\n }\n // Skip whole identifiers at once so rules never match mid-word.\n const word = /[\\w$]+|[^\\w$]/y;\n word.lastIndex = index;\n const chunk = word.exec(code)![0];\n plain += chunk;\n index += chunk.length;\n }\n if (plain) tokens.push({ type: null, text: plain });\n return tokens;\n}\n", "// Applying security schemes (components.securitySchemes) to requests.\n//\n// An operation's `security` is a list of alternatives; each alternative is a\n// set of schemes that must all be present (OR of ANDs). `{}` makes auth\n// optional. Credentials are what the reader entered, per scheme name.\n\nimport type { HttpRequest, OpenAPIObject, Operation } from \"./types\";\n\nexport interface Credential {\n /** Bearer / http token, API key or OAuth2 / OpenID Connect access token. */\n token?: string;\n username?: string;\n password?: string;\n clientId?: string;\n clientSecret?: string;\n /** Space-separated OAuth2 scopes for token requests. */\n scopes?: string;\n}\n\nexport type Credentials = Record<string, Credential>;\n\nexport interface AuthParts {\n headers: Record<string, string>;\n query: Record<string, string>;\n cookies: Record<string, string>;\n}\n\nexport interface SecurityRequirement {\n /** Scheme names that must all be present. Empty: auth optional. */\n schemes: string[];\n scopes: Record<string, string[]>;\n}\n\n/** The operation's requirements (alternatives), from its own or the global `security`. */\nexport function securityRequirements(operation: Pick<Operation, \"security\">): SecurityRequirement[] {\n return (operation.security ?? []).map((requirement) => ({\n schemes: Object.keys(requirement),\n scopes: requirement as Record<string, string[]>,\n }));\n}\n\nfunction base64(text: string): string {\n let binary = \"\";\n for (const byte of new TextEncoder().encode(text)) binary += String.fromCharCode(byte);\n return btoa(binary);\n}\n\nexport function hasCredential(scheme: OpenAPIObject | undefined, credential: Credential | undefined): boolean {\n if (!scheme || !credential) return false;\n if (scheme.type === \"http\" && String(scheme.scheme).toLowerCase() === \"basic\") return Boolean(credential.username || credential.password);\n return Boolean(credential.token);\n}\n\nfunction applyScheme(parts: AuthParts, scheme: OpenAPIObject, credential: Credential) {\n if (scheme.type === \"http\") {\n const kind = String(scheme.scheme ?? \"\").toLowerCase();\n if (kind === \"basic\") parts.headers.Authorization = `Basic ${base64(`${credential.username ?? \"\"}:${credential.password ?? \"\"}`)}`;\n else if (kind === \"bearer\") parts.headers.Authorization = `Bearer ${credential.token}`;\n else parts.headers.Authorization = `${scheme.scheme} ${credential.token}`;\n } else if (scheme.type === \"apiKey\") {\n const target = scheme.in === \"query\" ? parts.query : scheme.in === \"cookie\" ? parts.cookies : parts.headers;\n target[scheme.name] = credential.token ?? \"\";\n } else if (scheme.type === \"oauth2\" || scheme.type === \"openIdConnect\") {\n parts.headers.Authorization = `Bearer ${credential.token}`;\n }\n}\n\n/**\n * Headers, query parameters and cookies for an operation: the first\n * requirement whose schemes all have credentials wins. Nothing is applied\n * when no requirement can be met.\n */\nexport function applySecurity(\n schemes: Record<string, OpenAPIObject>,\n requirements: SecurityRequirement[],\n credentials: Credentials,\n): AuthParts {\n const parts: AuthParts = { headers: {}, query: {}, cookies: {} };\n const usable = requirements.find(\n (requirement) => requirement.schemes.length > 0 && requirement.schemes.every((name) => hasCredential(schemes[name], credentials[name])),\n );\n for (const name of usable?.schemes ?? []) applyScheme(parts, schemes[name], credentials[name]);\n return parts;\n}\n\n/** Short description of a scheme for labels: \"Bearer\", \"API key (header: X-Key)\"… */\nexport function describeScheme(scheme: OpenAPIObject): string {\n if (scheme.type === \"http\") {\n const kind = String(scheme.scheme ?? \"\");\n return kind.toLowerCase() === \"bearer\" ? `Bearer${scheme.bearerFormat ? ` (${scheme.bearerFormat})` : \"\"}` : `HTTP ${kind}`;\n }\n if (scheme.type === \"apiKey\") return `API key (${scheme.in}: ${scheme.name})`;\n if (scheme.type === \"oauth2\") return `OAuth 2.0 (${Object.keys(scheme.flows ?? {}).join(\", \")})`;\n if (scheme.type === \"openIdConnect\") return \"OpenID Connect\";\n if (scheme.type === \"mutualTLS\") return \"Mutual TLS\";\n return String(scheme.type ?? \"\");\n}\n\n/** OAuth2 flows a viewer can complete itself (no browser redirect). */\nexport const TOKEN_FLOWS = [\"clientCredentials\", \"password\"] as const;\n\n/** Token request (RFC 6749 §4.3 / §4.4) for a clientCredentials or password flow. */\nexport function buildTokenRequest(flowName: (typeof TOKEN_FLOWS)[number], flow: OpenAPIObject, credential: Credential): HttpRequest {\n const params = new URLSearchParams({ grant_type: flowName === \"password\" ? \"password\" : \"client_credentials\" });\n if (flowName === \"password\") {\n params.set(\"username\", credential.username ?? \"\");\n params.set(\"password\", credential.password ?? \"\");\n }\n if (credential.scopes?.trim()) params.set(\"scope\", credential.scopes.trim());\n\n const headers: Record<string, string> = { \"Content-Type\": \"application/x-www-form-urlencoded\", Accept: \"application/json\" };\n if (credential.clientId) headers.Authorization = `Basic ${base64(`${credential.clientId}:${credential.clientSecret ?? \"\"}`)}`;\n\n return { method: \"POST\", url: String(flow.tokenUrl ?? \"\"), headers, body: params.toString() };\n}\n", "// Swagger 2.0 → OpenAPI 3.0 conversion, so the viewer only deals with one\n// document shape. Covers what real-world 2.0 documents use: servers from\n// host/basePath/schemes, body and formData parameters → requestBody,\n// definitions/parameters/responses → components, security definitions,\n// $ref paths, collectionFormat, x-nullable and file uploads.\n\nimport type { OpenAPIDocument, OpenAPIObject } from \"./types\";\n\nconst REF_PREFIXES: [string, string][] = [\n [\"#/definitions/\", \"#/components/schemas/\"],\n [\"#/responses/\", \"#/components/responses/\"],\n];\n\nconst SCHEMA_KEYS = [\n \"format\",\n \"items\",\n \"enum\",\n \"default\",\n \"minimum\",\n \"maximum\",\n \"exclusiveMinimum\",\n \"exclusiveMaximum\",\n \"minLength\",\n \"maxLength\",\n \"pattern\",\n \"minItems\",\n \"maxItems\",\n \"uniqueItems\",\n \"multipleOf\",\n];\n\nconst FORM_TYPES = [\"application/x-www-form-urlencoded\", \"multipart/form-data\"];\n\nfunction convertRef(ref: string, bodyParameters: Set<string>): string {\n if (ref.startsWith(\"#/parameters/\")) {\n const name = ref.slice(\"#/parameters/\".length);\n return bodyParameters.has(name) ? `#/components/requestBodies/${name}` : `#/components/parameters/${name}`;\n }\n for (const [from, to] of REF_PREFIXES) if (ref.startsWith(from)) return to + ref.slice(from.length);\n return ref;\n}\n\nexport function convertSchema(schema: any): any {\n if (!schema || typeof schema !== \"object\") return schema;\n if (Array.isArray(schema)) return schema.map(convertSchema);\n\n const result: OpenAPIObject = {};\n for (const [key, value] of Object.entries(schema)) {\n switch (key) {\n case \"$ref\":\n result.$ref = convertRef(String(value), new Set());\n break;\n case \"x-nullable\":\n if (value) result.nullable = true;\n break;\n case \"discriminator\":\n result.discriminator = typeof value === \"string\" ? { propertyName: value } : value;\n break;\n case \"properties\":\n case \"patternProperties\":\n result[key] = Object.fromEntries(Object.entries(value as object).map(([name, child]) => [name, convertSchema(child)]));\n break;\n case \"items\":\n case \"additionalProperties\":\n case \"not\":\n result[key] = typeof value === \"object\" ? convertSchema(value) : value;\n break;\n case \"allOf\":\n case \"anyOf\":\n case \"oneOf\":\n result[key] = (value as unknown[]).map(convertSchema);\n break;\n default:\n result[key] = value;\n }\n }\n if (result.type === \"file\") {\n result.type = \"string\";\n result.format = \"binary\";\n }\n return result;\n}\n\n// Non-body parameter: type/format/items… move into `schema`.\nfunction convertParameter(parameter: OpenAPIObject): OpenAPIObject {\n const { type, collectionFormat, \"x-example\": example, allowEmptyValue, ...rest } = parameter;\n const schema: OpenAPIObject = type === \"file\" ? { type: \"string\", format: \"binary\" } : { type };\n const result: OpenAPIObject = {};\n\n for (const [key, value] of Object.entries(rest)) {\n if (SCHEMA_KEYS.includes(key)) schema[key] = key === \"items\" ? convertSchema(value) : value;\n else result[key] = value;\n }\n result.schema = convertSchema(schema);\n if (example !== undefined) result.example = example;\n if (allowEmptyValue) result.allowEmptyValue = true;\n\n if (type === \"array\") {\n const format = collectionFormat ?? \"csv\";\n if (format === \"multi\") Object.assign(result, { style: \"form\", explode: true });\n else if (format === \"ssv\") Object.assign(result, { style: \"spaceDelimited\", explode: false });\n else if (format === \"pipes\") Object.assign(result, { style: \"pipeDelimited\", explode: false });\n else Object.assign(result, { style: parameter.in === \"query\" || parameter.in === \"cookie\" ? \"form\" : \"simple\", explode: false });\n }\n return result;\n}\n\nfunction bodyContent(schema: unknown, types: string[], description?: string, required?: boolean) {\n const body: OpenAPIObject = { content: Object.fromEntries(types.map((type) => [type, { schema: convertSchema(schema) }])) };\n if (description) body.description = description;\n if (required) body.required = true;\n return body;\n}\n\n// formData parameters become one object schema in a form request body.\nfunction formBody(parameters: OpenAPIObject[], consumes: string[]) {\n const types = consumes.filter((type) => FORM_TYPES.includes(type));\n const hasFile = parameters.some((parameter) => parameter.type === \"file\");\n const contentTypes = types.length ? types : [hasFile ? \"multipart/form-data\" : \"application/x-www-form-urlencoded\"];\n const schema: OpenAPIObject = { type: \"object\", properties: {} };\n const required: string[] = [];\n\n for (const parameter of parameters) {\n const { schema: propertySchema } = convertParameter({ ...parameter, in: \"query\" });\n if (parameter.description) propertySchema.description = parameter.description;\n schema.properties[parameter.name] = propertySchema;\n if (parameter.required) required.push(parameter.name);\n }\n if (required.length) schema.required = required;\n return { content: Object.fromEntries(contentTypes.map((type) => [type, { schema }])) };\n}\n\nfunction convertResponse(response: OpenAPIObject, produces: string[]): OpenAPIObject {\n if (response.$ref) return { $ref: convertRef(response.$ref, new Set()) };\n const { schema, examples, headers, ...rest } = response;\n const result: OpenAPIObject = { ...rest, description: rest.description ?? \"\" };\n\n if (headers) {\n result.headers = Object.fromEntries(\n Object.entries(headers as Record<string, OpenAPIObject>).map(([name, header]) => {\n const { schema: headerSchema, description } = convertParameter({ ...header, in: \"header\" });\n return [name, { ...(description ? { description } : {}), schema: headerSchema }];\n }),\n );\n }\n if (schema) {\n const types = produces.length ? produces : [\"application/json\"];\n result.content = Object.fromEntries(\n types.map((type) => [type, { schema: convertSchema(schema), ...(examples?.[type] !== undefined ? { example: examples[type] } : {}) }]),\n );\n }\n return result;\n}\n\nfunction convertSecurityScheme(scheme: OpenAPIObject): OpenAPIObject {\n const description = scheme.description ? { description: scheme.description } : {};\n if (scheme.type === \"basic\") return { type: \"http\", scheme: \"basic\", ...description };\n if (scheme.type === \"apiKey\") return { type: \"apiKey\", name: scheme.name, in: scheme.in, ...description };\n if (scheme.type === \"oauth2\") {\n const scopes = scheme.scopes ?? {};\n const flow =\n {\n implicit: { implicit: { authorizationUrl: scheme.authorizationUrl, scopes } },\n password: { password: { tokenUrl: scheme.tokenUrl, scopes } },\n application: { clientCredentials: { tokenUrl: scheme.tokenUrl, scopes } },\n accessCode: { authorizationCode: { authorizationUrl: scheme.authorizationUrl, tokenUrl: scheme.tokenUrl, scopes } },\n }[scheme.flow as string] ?? {};\n return { type: \"oauth2\", flows: flow, ...description };\n }\n return { ...scheme };\n}\n\nconst resolveParameter = (doc: OpenAPIObject, parameter: OpenAPIObject): OpenAPIObject =>\n parameter.$ref?.startsWith(\"#/parameters/\") ? doc.parameters?.[parameter.$ref.slice(\"#/parameters/\".length)] ?? parameter : parameter;\n\n/** Converts a Swagger 2.0 document to OpenAPI 3.0.3. */\nexport function convertSwagger2(doc: OpenAPIObject): OpenAPIDocument {\n const bodyParameters = new Set(\n Object.entries(doc.parameters ?? {})\n .filter(([, parameter]: [string, any]) => parameter.in === \"body\")\n .map(([name]) => name),\n );\n const globalConsumes: string[] = doc.consumes ?? [\"application/json\"];\n const globalProduces: string[] = doc.produces ?? [\"application/json\"];\n\n const schemes: string[] = doc.schemes?.length ? doc.schemes : [\"https\"];\n const servers = doc.host\n ? schemes.map((scheme) => ({ url: `${scheme}://${doc.host}${doc.basePath ?? \"\"}` }))\n : [{ url: doc.basePath ?? \"/\" }];\n\n const components: OpenAPIObject = {};\n if (doc.definitions) {\n components.schemas = Object.fromEntries(Object.entries(doc.definitions).map(([name, schema]) => [name, convertSchema(schema)]));\n }\n if (doc.parameters) {\n for (const [name, parameter] of Object.entries(doc.parameters as Record<string, OpenAPIObject>)) {\n if (parameter.in === \"body\") {\n (components.requestBodies ??= {})[name] = bodyContent(parameter.schema, globalConsumes, parameter.description, parameter.required);\n } else if (parameter.in !== \"formData\") {\n (components.parameters ??= {})[name] = convertParameter(parameter);\n }\n }\n }\n if (doc.responses) {\n components.responses = Object.fromEntries(\n Object.entries(doc.responses as Record<string, OpenAPIObject>).map(([name, response]) => [name, convertResponse(response, globalProduces)]),\n );\n }\n if (doc.securityDefinitions) {\n components.securitySchemes = Object.fromEntries(\n Object.entries(doc.securityDefinitions as Record<string, OpenAPIObject>).map(([name, scheme]) => [name, convertSecurityScheme(scheme)]),\n );\n }\n\n const paths: Record<string, OpenAPIObject> = {};\n for (const [path, item] of Object.entries((doc.paths ?? {}) as Record<string, OpenAPIObject>)) {\n const pathParameters: OpenAPIObject[] = item.parameters ?? [];\n const pathItem: OpenAPIObject = {};\n\n for (const [key, value] of Object.entries(item)) {\n if (key === \"parameters\" || typeof value !== \"object\" || ![\"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\"].includes(key)) {\n if (key !== \"parameters\") pathItem[key] = value;\n continue;\n }\n const operation = value as OpenAPIObject;\n const { parameters = [], consumes, produces, responses = {}, ...rest } = operation;\n const opConsumes: string[] = consumes ?? globalConsumes;\n const opProduces: string[] = produces ?? globalProduces;\n const converted: OpenAPIObject = { ...rest };\n\n // Operation parameters override path-level ones with the same name + location.\n const merged = new Map<string, OpenAPIObject>();\n for (const raw of [...pathParameters, ...parameters]) {\n const resolved = resolveParameter(doc, raw);\n merged.set(`${resolved.in}:${resolved.name}`, raw);\n }\n\n const formData: OpenAPIObject[] = [];\n const outParameters: OpenAPIObject[] = [];\n for (const raw of merged.values()) {\n const resolved = resolveParameter(doc, raw);\n if (resolved.in === \"body\") {\n converted.requestBody = raw.$ref\n ? { $ref: convertRef(raw.$ref, bodyParameters) }\n : bodyContent(resolved.schema, opConsumes.filter((type) => !FORM_TYPES.includes(type)).length ? opConsumes.filter((type) => !FORM_TYPES.includes(type)) : [\"application/json\"], resolved.description, resolved.required);\n } else if (resolved.in === \"formData\") {\n formData.push(resolved);\n } else {\n outParameters.push(raw.$ref ? { $ref: convertRef(raw.$ref, bodyParameters) } : convertParameter(raw));\n }\n }\n if (formData.length) converted.requestBody = formBody(formData, opConsumes);\n if (outParameters.length) converted.parameters = outParameters;\n\n converted.responses = Object.fromEntries(\n Object.entries(responses as Record<string, OpenAPIObject>).map(([status, response]) => [status, convertResponse(response, opProduces)]),\n );\n pathItem[key] = converted;\n }\n paths[path] = pathItem;\n }\n\n const result: OpenAPIDocument = { openapi: \"3.0.3\", info: doc.info ?? { title: \"API\", version: \"\" }, servers, paths };\n for (const key of [\"tags\", \"security\", \"externalDocs\"]) if (doc[key] !== undefined) result[key] = doc[key];\n for (const [key, value] of Object.entries(doc)) if (key.startsWith(\"x-\")) result[key] = value;\n if (Object.keys(components).length) result.components = components;\n return result;\n}\n", "// Turns spec text (JSON or YAML) into an OpenAPI 3.x document the viewer can\n// render, converting Swagger 2.0 on the way.\n\nimport { parse as parseYaml } from \"yaml\";\nimport { convertSwagger2 } from \"./convert\";\nimport { resolveExternalRefs, type ExternalRefOptions } from \"./external\";\nimport type { OpenAPIDocument } from \"./types\";\n\n/** Parses JSON, falling back to YAML. Throws with a readable message. */\nexport function parseSpec(text: string): unknown {\n const trimmed = text.trimStart();\n if (trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\")) {\n try {\n return JSON.parse(text);\n } catch (error) {\n throw new Error(`Invalid JSON: ${(error as Error).message}`);\n }\n }\n try {\n return parseYaml(text, { maxAliasCount: 1000 });\n } catch (error) {\n throw new Error(`Invalid YAML: ${(error as Error).message}`);\n }\n}\n\nexport function isOpenApiDocument(value: unknown): value is OpenAPIDocument {\n const doc = value as OpenAPIDocument | null;\n return Boolean(doc && typeof doc === \"object\" && (doc.openapi || doc.swagger) && doc.paths);\n}\n\n/** OpenAPI 3.x documents pass through; Swagger 2.0 documents are converted. */\nexport function normalizeSpec(doc: OpenAPIDocument): OpenAPIDocument {\n return String(doc.swagger ?? \"\").startsWith(\"2\") ? convertSwagger2(doc) : doc;\n}\n\n/** parseSpec + validation + normalizeSpec. */\nexport function loadSpecText(text: string): OpenAPIDocument {\n const doc = parseSpec(text);\n if (!isOpenApiDocument(doc)) throw new Error('Not an OpenAPI document (missing \"openapi\"/\"swagger\" or \"paths\").');\n return normalizeSpec(doc);\n}\n\n/**\n * loadSpecText + external $ref resolution. Without `read`, external refs are\n * left as they are (the viewer shows them as unresolved).\n */\nexport async function loadSpec(text: string, options?: Partial<ExternalRefOptions>): Promise<OpenAPIDocument> {\n const doc = loadSpecText(text);\n if (!options?.read || !options.baseUrl) return doc;\n return resolveExternalRefs(doc, options as ExternalRefOptions);\n}\n", "// Resolves external $refs (\"./schemas/pet.yaml#/Pet\", \"https://…/common.json#/x\")\n// by loading each referenced document once and hoisting every target into\n// components[\"x-oaspect-external\"], so the rest of the library only ever\n// follows local \"#/\" references.\n//\n// Inside an external document, its own \"#/…\" refs point into that document;\n// they are hoisted the same way. Cycles across files end on the already\n// hoisted key.\n\nimport { parseSpec } from \"./parse\";\nimport { resolvePointer } from \"./refs\";\nimport type { OpenAPIDocument, OpenAPIObject } from \"./types\";\n\nexport const EXTERNAL_KEY = \"x-oaspect-external\";\n\nexport interface ExternalRefOptions {\n /** URL of the document itself; relative refs resolve against it. */\n baseUrl: string;\n /** Loads a referenced document's text (fetch, fs…). */\n read: (url: string) => Promise<string>;\n /** Upper bound on loaded documents. Default 100. */\n maxDocuments?: number;\n}\n\nconst isExternal = (ref: string) => !ref.startsWith(\"#\");\n\n/** True when the document contains a $ref to another file or URL. */\nexport function hasExternalRefs(node: unknown): boolean {\n if (!node || typeof node !== \"object\") return false;\n if (Array.isArray(node)) return node.some(hasExternalRefs);\n const ref = (node as OpenAPIObject).$ref;\n if (typeof ref === \"string\" && isExternal(ref)) return true;\n return Object.values(node).some(hasExternalRefs);\n}\n\nexport async function resolveExternalRefs(doc: OpenAPIDocument, { baseUrl, read, maxDocuments = 100 }: ExternalRefOptions): Promise<OpenAPIDocument> {\n if (!hasExternalRefs(doc)) return doc;\n\n const documents = new Map<string, Promise<unknown>>();\n const hoisted = new Map<string, string>();\n const store: Record<string, unknown> = {};\n const usedKeys = new Set<string>();\n\n function load(url: string) {\n if (!documents.has(url)) {\n if (documents.size >= maxDocuments) throw new Error(`More than ${maxDocuments} external documents referenced`);\n documents.set(url, read(url).then((text) => parseSpec(text)));\n }\n return documents.get(url)!;\n }\n\n function keyFor(url: string, pointer: string) {\n const segment = pointer.split(\"/\").filter(Boolean).pop() ?? url.split(\"/\").pop()!.replace(/\\.(ya?ml|json)$/i, \"\");\n const base = decodeURIComponent(segment.replace(/~1/g, \"/\").replace(/~0/g, \"~\")).replace(/[^\\w.-]/g, \"_\") || \"external\";\n let key = base;\n for (let index = 2; usedKeys.has(key); index += 1) key = `${base}_${index}`;\n usedKeys.add(key);\n return key;\n }\n\n async function hoist(url: string, pointer: string): Promise<string> {\n const id = `${url}#${pointer}`;\n const existing = hoisted.get(id);\n if (existing) return existing;\n const key = keyFor(url, pointer);\n hoisted.set(id, key); // before walking, so cycles end here\n\n const target = pointer ? resolvePointer((await load(url)) as OpenAPIObject, `#${pointer}`) : await load(url);\n if (target === undefined) throw new Error(`${id} not found`);\n store[key] = await walk(target, url, false);\n return key;\n }\n\n async function walk(node: unknown, base: string, isRoot: boolean): Promise<unknown> {\n if (!node || typeof node !== \"object\") return node;\n if (Array.isArray(node)) return Promise.all(node.map((item) => walk(item, base, isRoot)));\n\n const object = node as OpenAPIObject;\n if (typeof object.$ref === \"string\" && (isExternal(object.$ref) || !isRoot)) {\n const [file, pointer = \"\"] = object.$ref.split(\"#\");\n const url = file ? new URL(file, base).href : base;\n const key = await hoist(url, pointer.startsWith(\"/\") ? pointer : pointer ? `/${pointer}` : \"\");\n const { $ref: _ref, ...siblings } = object;\n return { ...((await walk(siblings, base, isRoot)) as OpenAPIObject), $ref: `#/components/${EXTERNAL_KEY}/${key}` };\n }\n\n const result: OpenAPIObject = {};\n for (const [key, value] of Object.entries(object)) result[key] = await walk(value, base, isRoot);\n return result;\n }\n\n const resolved = (await walk(doc, baseUrl, true)) as OpenAPIDocument;\n resolved.components = { ...resolved.components, [EXTERNAL_KEY]: store };\n return resolved;\n}\n", "\"use client\";\n\nimport { createContext, useCallback, useContext, useMemo, useState } from \"react\";\nimport { localize } from \"@oaspect/core\";\nimport { translate } from \"./index\";\n\nconst LocaleContext = createContext({\n locale: \"en\",\n setLocale: () => {},\n messages: {},\n});\n\n// Controlled when `locale` is given (the host owns it and listens to\n// onLocaleChange), uncontrolled otherwise.\nexport function LocaleProvider({ locale: controlled, defaultLocale = \"en\", onLocaleChange, messages, children }) {\n const [uncontrolled, setUncontrolled] = useState(defaultLocale);\n const locale = controlled ?? uncontrolled;\n\n const setLocale = useCallback(\n (next) => {\n if (controlled === undefined) setUncontrolled(next);\n onLocaleChange?.(next);\n },\n [controlled, onLocaleChange],\n );\n\n const value = useMemo(() => ({ locale, setLocale, messages }), [locale, setLocale, messages]);\n return <LocaleContext.Provider value={value}>{children}</LocaleContext.Provider>;\n}\n\nexport function useLocale() {\n return useContext(LocaleContext).locale;\n}\n\nexport function useSetLocale() {\n return useContext(LocaleContext).setLocale;\n}\n\nexport function useAvailableLocales() {\n return Object.keys(useContext(LocaleContext).messages);\n}\n\nexport function useT() {\n const { locale, messages } = useContext(LocaleContext);\n return useCallback((key, params) => translate(messages, locale, key, params), [locale, messages]);\n}\n\n// Spec text for the UI locale: localized(node, \"summary\") reads x-i18n first.\nexport function useLocalized() {\n const locale = useLocale();\n return useCallback((node, field) => localize(node, field, locale), [locale]);\n}\n", "// Arabic UI messages (right-to-left).\nconst messages = {\n \"auth.accessToken\": \"رمز الوصول\",\n \"auth.getToken\": \"احصل على رمز\",\n \"auth.gettingToken\": \"جارٍ الحصول على الرمز…\",\n \"auth.mutualTls\": \"يستخدم شهادة عميل تُضبط خارج المتصفح.\",\n \"auth.password\": \"كلمة المرور\",\n \"auth.redirectFlows\": \"يتم تسجيل الدخول في هذا التدفق عبر إعادة توجيه المتصفح؛ احصل على رمز الوصول من مكان آخر والصقه أعلاه.\",\n \"auth.scopes\": \"النطاقات (مفصولة بمسافات)\",\n \"auth.title\": \"المصادقة\",\n \"auth.tokenFailed\": \"تعذّر الحصول على الرمز: {error}\",\n \"auth.username\": \"اسم المستخدم\",\n \"connection.customServer\": \"عنوان URL مخصص…\",\n \"connection.server\": \"الخادم\",\n \"connection.title\": \"الاتصال\",\n \"connection.tokenNote\": \"يُحفظ الرمز في هذا المتصفح فقط، ويُستخدم في أمثلة الشيفرة ونافذة «جرّب».\",\n \"connection.tokenPlaceholder\": \"يضيف ترويسة Authorization إلى أمثلة الطلبات\",\n \"copy.copied\": \"تم النسخ\",\n \"copy.copy\": \"نسخ\",\n \"dialog.close\": \"إغلاق\",\n \"header.language\": \"تغيير اللغة\",\n \"header.menu\": \"القائمة\",\n \"header.skip\": \"انتقل إلى المحتوى\",\n \"header.theme\": \"تبديل السمة\",\n \"intro.download\": \"تنزيل مستند OpenAPI\",\n \"intro.endpoints\": \"نقاط النهاية\",\n \"intro.groups\": \"المجموعات\",\n \"intro.models\": \"النماذج\",\n \"models.title\": \"النماذج\",\n \"operation.callbacks\": \"الاستدعاءات الراجعة\",\n \"operation.links\": \"الروابط\",\n \"operation.requestBody\": \"نص الطلب\",\n \"operation.responses\": \"الاستجابات\",\n \"operation.security\": \"يتطلب\",\n \"operation.securityOptional\": \"اختياري\",\n \"operation.securityOr\": \"أو\",\n \"params.cookie\": \"معاملات ملفات تعريف الارتباط\",\n \"params.header\": \"معاملات الترويسة\",\n \"params.path\": \"معاملات المسار\",\n \"params.query\": \"معاملات الاستعلام\",\n \"schema.arrayItem\": \"عنصر المصفوفة\",\n \"schema.circular\": \"دائري\",\n \"schema.default\": \"الافتراضي:\",\n \"schema.example\": \"مثال:\",\n \"schema.mapValue\": \"قيمة الخريطة\",\n \"schema.none\": \"لا يوجد مخطط معرّف.\",\n \"schema.values\": \"القيم:\",\n \"sidebar.introduction\": \"مقدمة\",\n \"sidebar.label\": \"التوثيق\",\n \"sidebar.noResults\": \"لم يتم العثور على نتائج.\",\n \"sidebar.search\": \"ابحث عن نقطة نهاية أو نموذج\",\n \"snippets.client\": \"العميل\",\n \"snippets.language\": \"اللغة\",\n \"source.chooseFile\": \"اختر ملف JSON أو YAML…\",\n \"source.default\": \"الافتراضي\",\n \"source.file\": \"الملف: {name}\",\n \"source.loadUrl\": \"تحميل من عنوان URL\",\n \"source.title\": \"المصدر\",\n \"spec.fallback\": \"تعذّر الوصول إلى مستند الواجهة البرمجية المباشر؛ يتم عرض نسخة احتياطية وقد لا تكون محدّثة.\",\n \"spec.loadFailed\": \"تعذّر تحميل المواصفة: {error}\",\n \"spec.loading\": \"جارٍ تحميل المستند…\",\n \"spec.unreadableFile\": \"تعذّرت قراءة {name}: {error}\",\n \"tryIt.confirm.body\": \"سيُرسل طلب {method} إلى {host}. قد تستبدل القيم التجريبية سجلات حقيقية أو تحذفها.\",\n \"tryIt.confirm.cancel\": \"إلغاء\",\n \"tryIt.confirm.send\": \"أرسل على أي حال\",\n \"tryIt.confirm.skip\": \"لا تسأل مجددًا في هذه الجلسة\",\n \"tryIt.confirm.title\": \"قد يغيّر هذا الطلب البيانات\",\n \"tryIt.corsHint\": \"قد لا تسمح الواجهة البرمجية بـ CORS لهذا المصدر؛ جرّب وضع الوكيل.\",\n \"tryIt.failed\": \"تعذّر إرسال الطلب: {message}\",\n \"tryIt.fileHint\": \"لا تُضاف حقول الملفات التي لم يُختر لها ملف إلى الطلب.\",\n \"tryIt.idle\": \"اضغط «إرسال» لإرسال الطلب.\",\n \"tryIt.mode.direct\": \"مباشر\",\n \"tryIt.mode.directHint\": \"يُرسل من المتصفح؛ يجب أن تسمح الواجهة البرمجية بـ CORS\",\n \"tryIt.mode.label\": \"طريقة الإرسال\",\n \"tryIt.mode.proxyDisabled\": \"الوكيل معطّل على هذا الخادم.\",\n \"tryIt.mode.proxyHint\": \"يُرسل عبر خادم التوثيق؛ لا تحتاج الواجهة البرمجية إلى CORS\",\n \"tryIt.open\": \"جرّب\",\n \"tryIt.send\": \"إرسال\",\n \"tryIt.sending\": \"جارٍ الإرسال…\",\n \"tryIt.settingsHint\": \"يتم ضبط الخادم ورمز Bearer من قسم الاتصال.\",\n \"tryIt.waiting\": \"في انتظار الاستجابة…\",\n \"webhooks.hint\": \"طلبات ترسلها هذه الواجهة البرمجية إلى نقطة النهاية لديك.\",\n \"webhooks.payload\": \"الحمولة\",\n \"webhooks.title\": \"خطافات الويب\",\n};\n\nexport default messages;\n", "// English UI messages (default locale). Keys are stable ids; values may use {param} placeholders.\nconst messages = {\n \"auth.accessToken\": \"Access token\",\n \"auth.getToken\": \"Get token\",\n \"auth.gettingToken\": \"Getting token…\",\n \"auth.mutualTls\": \"Uses a client certificate, configured outside the browser.\",\n \"auth.password\": \"Password\",\n \"auth.redirectFlows\": \"This flow signs in through a browser redirect; get an access token elsewhere and paste it above.\",\n \"auth.scopes\": \"Scopes (space separated)\",\n \"auth.title\": \"Authentication\",\n \"auth.tokenFailed\": \"Token request failed: {error}\",\n \"auth.username\": \"Username\",\n \"connection.customServer\": \"Custom URL…\",\n \"connection.server\": \"Server\",\n \"connection.title\": \"Connection\",\n \"connection.tokenNote\": \"The token is stored only in this browser and used in code samples and the “Try” dialog.\",\n \"connection.tokenPlaceholder\": \"Adds an Authorization header to sample requests\",\n \"copy.copied\": \"Copied\",\n \"copy.copy\": \"Copy\",\n \"dialog.close\": \"Close\",\n \"header.language\": \"Change language\",\n \"header.menu\": \"Menu\",\n \"header.skip\": \"Skip to content\",\n \"header.theme\": \"Toggle theme\",\n \"intro.download\": \"Download OpenAPI document\",\n \"intro.endpoints\": \"Endpoints\",\n \"intro.groups\": \"Groups\",\n \"intro.models\": \"Models\",\n \"models.title\": \"Models\",\n \"operation.callbacks\": \"Callbacks\",\n \"operation.links\": \"Links\",\n \"operation.requestBody\": \"Request body\",\n \"operation.responses\": \"Responses\",\n \"operation.security\": \"Requires\",\n \"operation.securityOptional\": \"optional\",\n \"operation.securityOr\": \"or\",\n \"params.cookie\": \"Cookie parameters\",\n \"params.header\": \"Header parameters\",\n \"params.path\": \"Path parameters\",\n \"params.query\": \"Query parameters\",\n \"schema.arrayItem\": \"Array item\",\n \"schema.circular\": \"circular\",\n \"schema.default\": \"Default:\",\n \"schema.example\": \"Example:\",\n \"schema.mapValue\": \"Map value\",\n \"schema.none\": \"No schema defined.\",\n \"schema.values\": \"Values:\",\n \"sidebar.introduction\": \"Introduction\",\n \"sidebar.label\": \"Documentation\",\n \"sidebar.noResults\": \"No results found.\",\n \"sidebar.search\": \"Search endpoints or models\",\n \"snippets.client\": \"Client\",\n \"snippets.language\": \"Language\",\n \"source.chooseFile\": \"Choose a JSON or YAML file…\",\n \"source.default\": \"Default\",\n \"source.file\": \"File: {name}\",\n \"source.loadUrl\": \"Load from URL\",\n \"source.title\": \"Source\",\n \"spec.fallback\": \"The live API document could not be reached; showing a fallback copy that may be out of date.\",\n \"spec.loadFailed\": \"Could not load spec: {error}\",\n \"spec.loading\": \"Loading document…\",\n \"spec.unreadableFile\": \"{name} could not be read: {error}\",\n \"tryIt.confirm.body\": \"A {method} request will be sent to {host}. Example values can overwrite or delete real records.\",\n \"tryIt.confirm.cancel\": \"Cancel\",\n \"tryIt.confirm.send\": \"Send anyway\",\n \"tryIt.confirm.skip\": \"Don't ask again this session\",\n \"tryIt.confirm.title\": \"This request may change data\",\n \"tryIt.corsHint\": \"The API may not allow CORS for this origin; try Proxy mode.\",\n \"tryIt.failed\": \"Request failed: {message}\",\n \"tryIt.fileHint\": \"File fields without a chosen file are left out of the request.\",\n \"tryIt.idle\": \"Press “Send” to send the request.\",\n \"tryIt.mode.direct\": \"Direct\",\n \"tryIt.mode.directHint\": \"Sends from the browser; the API must allow CORS\",\n \"tryIt.mode.label\": \"Request mode\",\n \"tryIt.mode.proxyDisabled\": \"The proxy is disabled on this server.\",\n \"tryIt.mode.proxyHint\": \"Sends through the docs server; the API does not need CORS\",\n \"tryIt.open\": \"Try\",\n \"tryIt.send\": \"Send\",\n \"tryIt.sending\": \"Sending…\",\n \"tryIt.settingsHint\": \"Server and Bearer token are set in the Connection section.\",\n \"tryIt.waiting\": \"Waiting for response…\",\n \"webhooks.hint\": \"Requests this API sends to your endpoint.\",\n \"webhooks.payload\": \"Payload\",\n \"webhooks.title\": \"Webhooks\",\n};\n\nexport default messages;\n", "// Turkish UI messages.\nconst messages = {\n \"auth.accessToken\": \"Access token\",\n \"auth.getToken\": \"Token al\",\n \"auth.gettingToken\": \"Token alınıyor…\",\n \"auth.mutualTls\": \"Tarayıcı dışında ayarlanan bir istemci sertifikası kullanır.\",\n \"auth.password\": \"Şifre\",\n \"auth.redirectFlows\": \"Bu akış tarayıcı yönlendirmesiyle giriş yapar; access token'ı başka yerden alıp yukarıya yapıştırın.\",\n \"auth.scopes\": \"Scope'lar (boşlukla ayrılmış)\",\n \"auth.title\": \"Kimlik doğrulama\",\n \"auth.tokenFailed\": \"Token alınamadı: {error}\",\n \"auth.username\": \"Kullanıcı adı\",\n \"connection.customServer\": \"Özel URL…\",\n \"connection.server\": \"Sunucu\",\n \"connection.title\": \"Bağlantı\",\n \"connection.tokenNote\": \"Token yalnızca bu tarayıcıda saklanır; kod örneklerinde ve “Dene” penceresinde kullanılır.\",\n \"connection.tokenPlaceholder\": \"Örnek isteklere Authorization header'ı ekler\",\n \"copy.copied\": \"Kopyalandı\",\n \"copy.copy\": \"Kopyala\",\n \"dialog.close\": \"Kapat\",\n \"header.language\": \"Dil değiştir\",\n \"header.menu\": \"Menü\",\n \"header.skip\": \"İçeriğe geç\",\n \"header.theme\": \"Temayı değiştir\",\n \"intro.download\": \"OpenAPI dokümanını indir\",\n \"intro.endpoints\": \"Endpoint\",\n \"intro.groups\": \"Grup\",\n \"intro.models\": \"Model\",\n \"models.title\": \"Modeller\",\n \"operation.callbacks\": \"Callback'ler\",\n \"operation.links\": \"Bağlantılar\",\n \"operation.requestBody\": \"Request body\",\n \"operation.responses\": \"Yanıtlar\",\n \"operation.security\": \"Gerekli yetki\",\n \"operation.securityOptional\": \"isteğe bağlı\",\n \"operation.securityOr\": \"veya\",\n \"params.cookie\": \"Cookie parametreleri\",\n \"params.header\": \"Header parametreleri\",\n \"params.path\": \"Path parametreleri\",\n \"params.query\": \"Query parametreleri\",\n \"schema.arrayItem\": \"Dizi elemanı\",\n \"schema.circular\": \"döngüsel\",\n \"schema.default\": \"Varsayılan:\",\n \"schema.example\": \"Örnek:\",\n \"schema.mapValue\": \"Map değeri\",\n \"schema.none\": \"Şema tanımlanmamış.\",\n \"schema.values\": \"Değerler:\",\n \"sidebar.introduction\": \"Giriş\",\n \"sidebar.label\": \"Dokümantasyon\",\n \"sidebar.noResults\": \"Sonuç bulunamadı.\",\n \"sidebar.search\": \"Endpoint ya da model ara\",\n \"snippets.client\": \"İstemci\",\n \"snippets.language\": \"Dil\",\n \"source.chooseFile\": \"JSON ya da YAML dosyası seç…\",\n \"source.default\": \"Varsayılan\",\n \"source.file\": \"Dosya: {name}\",\n \"source.loadUrl\": \"URL'den yükle\",\n \"source.title\": \"Kaynak\",\n \"spec.fallback\": \"Canlı API dokümanına ulaşılamadı; yedek kopya gösteriliyor ve güncel olmayabilir.\",\n \"spec.loadFailed\": \"Spec yüklenemedi: {error}\",\n \"spec.loading\": \"Doküman yükleniyor…\",\n \"spec.unreadableFile\": \"{name} okunamadı: {error}\",\n \"tryIt.confirm.body\": \"{method} isteği {host} adresine gönderilecek. Örnek değerler gerçek kayıtların üzerine yazabilir ya da onları silebilir.\",\n \"tryIt.confirm.cancel\": \"Vazgeç\",\n \"tryIt.confirm.send\": \"Yine de gönder\",\n \"tryIt.confirm.skip\": \"Bu oturumda tekrar sorma\",\n \"tryIt.confirm.title\": \"Bu istek veriyi değiştirebilir\",\n \"tryIt.corsHint\": \"API bu origin'e CORS izni vermiyor olabilir; Proxy modunu deneyin.\",\n \"tryIt.failed\": \"İstek gönderilemedi: {message}\",\n \"tryIt.fileHint\": \"Dosya seçilmeyen dosya alanları isteğe eklenmez.\",\n \"tryIt.idle\": \"İsteği göndermek için “Gönder”e basın.\",\n \"tryIt.mode.direct\": \"Doğrudan\",\n \"tryIt.mode.directHint\": \"Tarayıcıdan gönderir; API'nin CORS izni vermesi gerekir\",\n \"tryIt.mode.label\": \"Gönderim yolu\",\n \"tryIt.mode.proxyDisabled\": \"Proxy bu sunucuda kapalı.\",\n \"tryIt.mode.proxyHint\": \"Docs sunucusu üzerinden gönderir; API'de CORS gerekmez\",\n \"tryIt.open\": \"Dene\",\n \"tryIt.send\": \"Gönder\",\n \"tryIt.sending\": \"Gönderiliyor…\",\n \"tryIt.settingsHint\": \"Sunucu ve Bearer token Bağlantı bölümünden ayarlanır.\",\n \"tryIt.waiting\": \"Yanıt bekleniyor…\",\n \"webhooks.hint\": \"Bu API'nin sizin endpoint'inize gönderdiği istekler.\",\n \"webhooks.payload\": \"Gövde\",\n \"webhooks.title\": \"Webhook'lar\",\n};\n\nexport default messages;\n", "import ar from \"./ar\";\nimport en from \"./en\";\nimport tr from \"./tr\";\n\n// Built-in UI languages. Hosts can add or override languages through the\n// `messages` prop of <ApiReference>; English is the fallback for any key a\n// language does not define.\nexport const BUILT_IN_MESSAGES = { en, tr, ar };\n\nexport const LOCALE_NAMES = {\n en: \"English\",\n tr: \"Türkçe\",\n ar: \"العربية\",\n};\n\nconst RTL_LANGUAGES = new Set([\"ar\", \"fa\", \"he\", \"ur\", \"ps\", \"sd\", \"ug\", \"yi\", \"dv\", \"ku\"]);\n\nexport function directionOf(locale) {\n return RTL_LANGUAGES.has(String(locale ?? \"\").toLowerCase().split(\"-\")[0]) ? \"rtl\" : \"ltr\";\n}\n\n// Merges built-in messages with host overrides: { tr: { \"sidebar.search\": \"…\" } }.\nexport function mergeMessages(overrides = {}) {\n const merged = {};\n for (const locale of new Set([...Object.keys(BUILT_IN_MESSAGES), ...Object.keys(overrides)])) {\n merged[locale] = { ...BUILT_IN_MESSAGES[locale], ...overrides[locale] };\n }\n return merged;\n}\n\n// Looks a key up for `locale` (then its base language, then English) and\n// fills {param} placeholders. Unknown keys are returned as-is.\nexport function translate(messages, locale, key, params) {\n const base = String(locale ?? \"\").split(\"-\")[0];\n const value = messages[locale]?.[key] ?? messages[base]?.[key] ?? messages.en?.[key] ?? key;\n if (!params) return value;\n\n return value.replace(/\\{(\\w+)\\}/g, (match, name) =>\n Object.prototype.hasOwnProperty.call(params, name) ? String(params[name]) : match,\n );\n}\n", "\"use client\";\n\nimport { createContext, useContext, useEffect, useState } from \"react\";\n\n// Whether sections render lazily (set by <ApiReference lazy>).\nexport const LazyContext = createContext(false);\n\n/**\n * True once `ref` comes within ~1.5 screens of the viewport, and from then\n * on. Always true when lazy rendering is off or `eager` is set, so server\n * rendering and the first client render agree.\n */\nexport function useNearViewport(ref, eager = false) {\n const lazy = useContext(LazyContext);\n const [near, setNear] = useState(!lazy || eager);\n\n useEffect(() => {\n if (near || !ref.current) return;\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n setNear(true);\n observer.disconnect();\n }\n },\n { rootMargin: \"1500px 0px\" },\n );\n observer.observe(ref.current);\n return () => observer.disconnect();\n }, [near, ref]);\n\n return near;\n}\n\n/**\n * Scrolls to the element with `id` and keeps it in place while sections\n * above it render and change height.\n */\nexport function scrollToAnchor(id) {\n const target = document.getElementById(id);\n if (!target) return;\n target.scrollIntoView();\n let last = target.getBoundingClientRect().top;\n for (const delay of [50, 150, 350, 700]) {\n setTimeout(() => {\n const top = target.getBoundingClientRect().top;\n if (Math.abs(top - last) > 2) target.scrollIntoView();\n last = target.getBoundingClientRect().top;\n }, delay);\n }\n}\n", "// Per-browser preferences under a host-chosen prefix (\"oaspect:token\").\n// Storage can be unavailable (private mode, blocked cookies); every access is\n// guarded and settings then simply last for the session.\n\nfunction access(kind) {\n try {\n return kind === \"session\" ? window.sessionStorage : window.localStorage;\n } catch {\n return null;\n }\n}\n\nexport function createStorage(prefix = \"oaspect\") {\n const key = (name) => `${prefix}:${name}`;\n\n return {\n get(name, fallback = null, kind = \"local\") {\n try {\n return access(kind)?.getItem(key(name)) ?? fallback;\n } catch {\n return fallback;\n }\n },\n set(name, value, kind = \"local\") {\n try {\n if (value === null || value === undefined || value === \"\") access(kind)?.removeItem(key(name));\n else access(kind)?.setItem(key(name), value);\n } catch {\n // Not persisted; nothing else to do.\n }\n },\n };\n}\n", "\"use client\";\n\nimport { useLocalized, useT } from \"./i18n/context\";\nimport Markdown from \"./markdown\";\nimport { useSettings } from \"./spec-context\";\nimport AuthPanel from \"./auth-panel\";\n\nfunction downloadSpec(spec) {\n const blob = new Blob([JSON.stringify(spec, null, 2)], { type: \"application/json\" });\n const link = document.createElement(\"a\");\n link.href = URL.createObjectURL(blob);\n link.download = \"openapi.json\";\n link.click();\n URL.revokeObjectURL(link.href);\n}\n\nexport default function Intro({ spec, model }) {\n const { servers, serverIndex, setServerIndex, customServer, setCustomServer, token, setToken, selectedServer, variableValues, setVariable, securitySchemes } = useSettings();\n const hasSchemes = Object.keys(securitySchemes ?? {}).length > 0;\n const variables = Object.entries(selectedServer?.variables ?? {});\n const { info } = model;\n const t = useT();\n const localized = useLocalized();\n\n return (\n <section id=\"introduction\" data-anchor className=\"border-b border-border pb-14 pt-10\">\n <div className=\"grid grid-cols-[minmax(0,1fr)] gap-10 xl:grid-cols-[minmax(0,1fr)_minmax(0,28rem)]\">\n <div className=\"min-w-0\">\n <div className=\"flex flex-wrap gap-2\">\n {info.version && (\n <span className=\"rounded-md bg-primary/10 px-2 py-0.5 font-mono text-xs font-medium text-primary\">v{info.version}</span>\n )}\n {model.openapi && (\n <span className=\"rounded-md bg-muted px-2 py-0.5 font-mono text-xs text-muted-foreground\">OpenAPI {model.openapi}</span>\n )}\n </div>\n <h1 className=\"mt-4 text-4xl font-bold tracking-tight\">{localized(info, \"title\") ?? \"API\"}</h1>\n\n {/* Stats and actions sit right under the title so a long\n description never pushes them out of sight. */}\n <dl className=\"mt-6 grid grid-cols-3 gap-3 sm:max-w-md\">\n {[\n [t(\"intro.endpoints\"), model.operations.length],\n [t(\"intro.groups\"), model.tags.length],\n [t(\"intro.models\"), model.schemas.length],\n ].map(([label, value]) => (\n <div key={label} className=\"rounded-xl border border-border bg-card p-3\">\n <dt className=\"text-xs text-muted-foreground\">{label}</dt>\n <dd className=\"text-2xl font-semibold\">{value}</dd>\n </div>\n ))}\n </dl>\n\n <div className=\"mt-6 flex flex-wrap gap-3 text-sm\">\n <button\n type=\"button\"\n onClick={() => downloadSpec(spec)}\n className=\"rounded-lg border border-border px-3 py-1.5 font-medium hover:border-primary hover:text-primary\"\n >\n {t(\"intro.download\")}\n </button>\n {info.contact?.email && (\n <a href={`mailto:${info.contact.email}`} className=\"rounded-lg border border-border px-3 py-1.5 hover:border-primary hover:text-primary\">\n {info.contact.name ?? info.contact.email}\n </a>\n )}\n </div>\n\n <Markdown source={localized(info, \"description\")} className=\"mt-8 text-base text-muted-foreground\" />\n </div>\n\n <aside className=\"min-w-0 space-y-4 self-start rounded-2xl border border-border bg-card p-5\">\n <h2 className=\"text-sm font-semibold\">{t(\"connection.title\")}</h2>\n <label className=\"block space-y-1\">\n <span className=\"text-xs text-muted-foreground\">{t(\"connection.server\")}</span>\n <select\n value={serverIndex}\n onChange={(event) => setServerIndex(Number(event.target.value))}\n dir=\"ltr\"\n className=\"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs\"\n >\n {servers.map((server, index) => (\n <option key={server.url} value={index}>\n {server.url}\n {server.description ? ` — ${server.description}` : \"\"}\n </option>\n ))}\n <option value={-1}>{t(\"connection.customServer\")}</option>\n </select>\n </label>\n {variables.map(([name, variable]) => (\n <label key={name} className=\"grid grid-cols-[minmax(0,8rem)_minmax(0,1fr)] items-center gap-2\">\n <span className=\"truncate font-mono text-xs text-muted-foreground\" title={variable.description ?? name}>\n {`{${name}}`}\n </span>\n {variable.enum?.length ? (\n <select\n value={variableValues[name] ?? variable.default ?? \"\"}\n onChange={(event) => setVariable(name, event.target.value)}\n dir=\"ltr\"\n className=\"rounded-lg border border-border bg-background px-2 py-1 font-mono text-xs\"\n >\n {variable.enum.map((option) => (\n <option key={option}>{option}</option>\n ))}\n </select>\n ) : (\n <input\n value={variableValues[name] ?? \"\"}\n placeholder={variable.default ?? \"\"}\n onChange={(event) => setVariable(name, event.target.value)}\n dir=\"ltr\"\n className=\"rounded-lg border border-border bg-background px-2 py-1 font-mono text-xs outline-none focus:border-primary\"\n />\n )}\n </label>\n ))}\n {serverIndex === -1 && (\n <input\n type=\"url\"\n value={customServer}\n onChange={(event) => setCustomServer(event.target.value)}\n placeholder=\"https://api.example.com\"\n dir=\"ltr\"\n className=\"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs outline-none focus:border-primary\"\n />\n )}\n {hasSchemes ? (\n <AuthPanel schemes={securitySchemes} />\n ) : (\n <label className=\"block space-y-1\">\n <span className=\"text-xs text-muted-foreground\">Bearer token</span>\n <input\n type=\"password\"\n value={token}\n onChange={(event) => setToken(event.target.value)}\n placeholder={t(\"connection.tokenPlaceholder\")}\n autoComplete=\"off\"\n className=\"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs outline-none focus:border-primary\"\n />\n </label>\n )}\n <p className=\"text-xs text-muted-foreground\">\n {t(\"connection.tokenNote\")}\n </p>\n </aside>\n </div>\n </section>\n );\n}\n", "\"use client\";\n\n// Renders OpenAPI descriptions (GFM subset, see src/lib/markdown.js) as React\n// elements; raw HTML in the source is never interpreted. Blocks use\n// dir=\"auto\" so English spec text stays readable inside an RTL interface.\n// \":::lang xx\" blocks are resolved for the current UI language.\n\nimport { useMemo } from \"react\";\nimport { useLocale } from \"./i18n/context\";\nimport { parseMarkdown, safeUrl, selectLocale } from \"@oaspect/core\";\nimport CodeBlock from \"./code-block\";\n\n// Fence info strings → tokenizer languages in src/lib/highlight.js.\nconst CODE_LANGUAGES = {\n json: \"json\",\n sh: \"shell\",\n bash: \"shell\",\n shell: \"shell\",\n zsh: \"shell\",\n curl: \"shell\",\n js: \"javascript\",\n javascript: \"javascript\",\n ts: \"javascript\",\n typescript: \"javascript\",\n php: \"php\",\n py: \"python\",\n python: \"python\",\n go: \"go\",\n java: \"java\",\n kotlin: \"kotlin\",\n kt: \"kotlin\",\n cs: \"csharp\",\n csharp: \"csharp\",\n rb: \"ruby\",\n ruby: \"ruby\",\n swift: \"swift\",\n dart: \"dart\",\n rust: \"rust\",\n rs: \"rust\",\n c: \"c\",\n powershell: \"powershell\",\n ps1: \"powershell\",\n http: \"http\",\n};\n\nconst HEADING_STYLES = {\n 1: \"text-xl font-bold\",\n 2: \"text-lg font-semibold\",\n 3: \"text-base font-semibold\",\n 4: \"text-sm font-semibold\",\n 5: \"text-sm font-semibold\",\n 6: \"text-xs font-semibold uppercase tracking-wide\",\n};\n\nfunction Inline({ nodes }) {\n return nodes.map((node, index) => {\n switch (node.type) {\n case \"text\":\n return node.value;\n case \"br\":\n return <br key={index} />;\n case \"code\":\n return (\n <code key={index} dir=\"ltr\" className=\"rounded bg-muted px-1 py-0.5 font-mono text-[0.85em]\">\n {node.value}\n </code>\n );\n case \"strong\":\n return (\n <strong key={index} className=\"font-semibold text-foreground\">\n <Inline nodes={node.children} />\n </strong>\n );\n case \"em\":\n return (\n <em key={index}>\n <Inline nodes={node.children} />\n </em>\n );\n case \"del\":\n return (\n <del key={index}>\n <Inline nodes={node.children} />\n </del>\n );\n case \"link\": {\n const href = safeUrl(node.href);\n if (!href) return <Inline key={index} nodes={node.children} />;\n const external = /^https?:/i.test(href);\n return (\n <a\n key={index}\n href={href}\n title={node.title}\n {...(external ? { target: \"_blank\", rel: \"noreferrer\" } : {})}\n className=\"text-primary underline underline-offset-2\"\n >\n <Inline nodes={node.children} />\n </a>\n );\n }\n case \"image\": {\n const src = safeUrl(node.src, { image: true });\n if (!src) return node.alt;\n // Plain <img>: description images can come from any host.\n return <img key={index} src={src} alt={node.alt} title={node.title} loading=\"lazy\" className=\"inline-block max-w-full rounded-lg\" />;\n }\n default:\n return null;\n }\n });\n}\n\nfunction Blocks({ blocks, tight = false }) {\n return blocks.map((block, index) => {\n switch (block.type) {\n case \"heading\": {\n // Descriptions sit under the page's own h1/h2, so levels shift down.\n const Tag = `h${Math.min(block.level + 2, 6)}`;\n return (\n <Tag key={index} dir=\"auto\" className={`${HEADING_STYLES[block.level]} pt-2 text-foreground`}>\n <Inline nodes={block.children} />\n </Tag>\n );\n }\n case \"paragraph\":\n return tight ? (\n <Inline key={index} nodes={block.children} />\n ) : (\n <p key={index} dir=\"auto\">\n <Inline nodes={block.children} />\n </p>\n );\n case \"code\":\n return (\n <CodeBlock\n key={index}\n code={block.text}\n language={CODE_LANGUAGES[block.language] ?? \"text\"}\n toolbar={block.language && <span className=\"px-1 font-mono text-[11px] text-white/50\">{block.language}</span>}\n />\n );\n case \"blockquote\":\n return (\n <blockquote key={index} className=\"space-y-3 border-s-4 border-border ps-4 italic\">\n <Blocks blocks={block.children} />\n </blockquote>\n );\n case \"hr\":\n return <hr key={index} className=\"border-border\" />;\n case \"lang-selected\":\n return (\n <div key={index} lang={block.locale} className=\"space-y-3\">\n <Blocks blocks={block.children} tight={tight} />\n </div>\n );\n case \"list\": {\n const List = block.ordered ? \"ol\" : \"ul\";\n const task = block.items.some((item) => item.checked !== null);\n return (\n <List\n key={index}\n dir=\"auto\"\n start={block.ordered && block.start !== 1 ? block.start : undefined}\n className={`space-y-1.5 ${task ? \"ps-1\" : `ps-5 ${block.ordered ? \"list-decimal\" : \"list-disc\"}`} marker:text-muted-foreground`}\n >\n {block.items.map((item, itemIndex) => (\n <li key={itemIndex} className={`${block.loose ? \"space-y-2\" : \"space-y-1\"} ${item.checked !== null ? \"flex list-none items-start gap-2\" : \"\"}`}>\n {item.checked !== null && (\n <input type=\"checkbox\" checked={item.checked} readOnly disabled className=\"mt-1 accent-primary\" />\n )}\n <div className={item.checked !== null ? \"min-w-0 flex-1 space-y-1\" : \"contents\"}>\n <Blocks blocks={item.children} tight={!block.loose && item.children.length === 1} />\n </div>\n </li>\n ))}\n </List>\n );\n }\n case \"table\":\n return (\n // dir=\"auto\": an English table keeps its column order inside an RTL UI.\n // Code tokens (parameter names, values) never wrap mid-token.\n <div key={index} dir=\"auto\" className=\"overflow-x-auto rounded-lg border border-border\">\n <table dir=\"auto\" className=\"w-full border-collapse text-start text-sm [&_code]:whitespace-nowrap\">\n <thead className=\"bg-muted/60\">\n <tr>\n {block.header.map((cell, column) => (\n <th\n key={column}\n dir=\"auto\"\n style={block.align[column] ? { textAlign: block.align[column] } : undefined}\n className=\"border-b border-border px-3 py-2 text-start font-semibold text-foreground\"\n >\n <Inline nodes={cell} />\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {block.rows.map((row, rowIndex) => (\n <tr key={rowIndex} className=\"border-b border-border last:border-b-0\">\n {row.map((cell, column) => (\n <td\n key={column}\n dir=\"auto\"\n style={block.align[column] ? { textAlign: block.align[column] } : undefined}\n className=\"px-3 py-2 align-top\"\n >\n <Inline nodes={cell} />\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n default:\n return null;\n }\n });\n}\n\nexport default function Markdown({ source, className = \"\" }) {\n const locale = useLocale();\n const blocks = useMemo(() => selectLocale(parseMarkdown(source), locale), [source, locale]);\n if (blocks.length === 0) return null;\n\n return (\n <div className={`space-y-3 text-sm leading-relaxed ${className}`}>\n <Blocks blocks={blocks} />\n </div>\n );\n}\n", "\"use client\";\n\nimport { useRef, useState } from \"react\";\nimport { useT } from \"./i18n/context\";\nimport { tokenize } from \"@oaspect/core\";\n\nexport function Highlighted({ code, language }) {\n return tokenize(code, language).map((token, index) =>\n token.type ? (\n <span key={index} className={`syntax-${token.type}`}>\n {token.text}\n </span>\n ) : (\n token.text\n ),\n );\n}\n\nexport function CopyButton({ text, className = \"\" }) {\n const [copied, setCopied] = useState(false);\n const t = useT();\n\n async function copy() {\n try {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n } catch {\n // Clipboard can be unavailable (insecure context); nothing to do.\n }\n }\n\n const label = copied ? t(\"copy.copied\") : t(\"copy.copy\");\n\n return (\n <button\n type=\"button\"\n onClick={copy}\n aria-label={label}\n title={label}\n className={`inline-flex size-7 shrink-0 items-center justify-center rounded-md transition ${className} ${\n copied ? \"!text-emerald-500\" : \"\"\n }`}\n >\n <svg\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n className=\"size-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n {copied ? (\n <path d=\"M20 6 9 17l-5-5\" />\n ) : (\n <>\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </>\n )}\n </svg>\n </button>\n );\n}\n\n// `toolbar` sits on the left and scrolls sideways if it ever gets too wide;\n// `actions` stay pinned on the right next to the copy button.\nexport default function CodeBlock({ code, language = \"json\", toolbar, actions, maxHeight = \"28rem\" }) {\n return (\n // Code reads left-to-right even when the UI is RTL.\n <div dir=\"ltr\" className=\"overflow-hidden rounded-xl border border-border bg-code text-code-foreground\">\n <div className=\"flex items-center gap-2 border-b border-white/10 px-2 py-1.5\">\n <div className=\"flex min-w-0 flex-1 items-center gap-1 overflow-x-auto whitespace-nowrap [scrollbar-width:none]\">\n {toolbar}\n </div>\n <div className=\"flex shrink-0 items-center gap-1\">\n {actions}\n <CopyButton text={code} className=\"text-white/60 hover:bg-white/10 hover:text-white\" />\n </div>\n </div>\n <pre className=\"overflow-auto p-4 font-mono text-xs leading-relaxed\" style={{ maxHeight }}>\n <code>\n <Highlighted code={code} language={language} />\n </code>\n </pre>\n </div>\n );\n}\n\nexport function ToolbarTab({ active, onClick, children }) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={`rounded-md px-2 py-1 text-xs font-medium transition ${\n active ? \"bg-white/15 text-white\" : \"text-white/55 hover:text-white\"\n }`}\n >\n {children}\n </button>\n );\n}\n\n// Textarea with a highlighted <pre> layered underneath it. The textarea text\n// is transparent so only the caret and selection come from it.\nexport function CodeEditor({ value, onChange, language = \"json\", rows = 14 }) {\n const layer = useRef(null);\n const shared = \"m-0 whitespace-pre-wrap break-words p-3 font-mono text-xs leading-relaxed\";\n\n return (\n <div dir=\"ltr\" className=\"relative overflow-hidden rounded-lg border border-border bg-code text-code-foreground focus-within:border-primary\">\n <pre ref={layer} aria-hidden=\"true\" className={`pointer-events-none absolute inset-0 overflow-hidden ${shared}`}>\n <Highlighted code={`${value}\\n`} language={language} />\n </pre>\n <textarea\n value={value}\n onChange={(event) => onChange(event.target.value)}\n onScroll={(event) => {\n layer.current.scrollTop = event.target.scrollTop;\n }}\n spellCheck={false}\n rows={rows}\n className={`relative block w-full resize-y bg-transparent text-transparent caret-white outline-none selection:bg-white/25 ${shared}`}\n />\n </div>\n );\n}\n", "\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nexport const SpecContext = createContext(null);\n\nexport function useSpec() {\n return useContext(SpecContext);\n}\n\n// The built model (tags, operations, webhooks…), e.g. to resolve links.\nexport const ModelContext = createContext(null);\n\nexport function useModel() {\n return useContext(ModelContext);\n}\n\n// Viewer-wide request settings (selected server, auth token) shared by the\n// code samples and the request runner.\nexport const SettingsContext = createContext(null);\n\nexport function useSettings() {\n return useContext(SettingsContext);\n}\n", "\"use client\";\n\nimport { useState } from \"react\";\nimport { TOKEN_FLOWS, buildTokenRequest, describeScheme } from \"@oaspect/core\";\nimport { useT } from \"./i18n/context\";\nimport Markdown from \"./markdown\";\nimport { sendRequest } from \"./send\";\nimport { useSettings } from \"./spec-context\";\n\nconst inputClass =\n \"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs outline-none focus:border-primary\";\n\nfunction Field({ label, value, onChange, secret = false, placeholder }) {\n return (\n <label className=\"block space-y-1\">\n <span className=\"text-xs text-muted-foreground\">{label}</span>\n <input\n type={secret ? \"password\" : \"text\"}\n value={value ?? \"\"}\n onChange={(event) => onChange(event.target.value)}\n placeholder={placeholder}\n autoComplete=\"off\"\n dir=\"ltr\"\n className={inputClass}\n />\n </label>\n );\n}\n\n// clientCredentials / password flows: request a token from tokenUrl, through\n// the proxy when there is one (token endpoints rarely allow CORS).\nfunction TokenRequest({ name, scheme, credential }) {\n const { setCredential, proxyUrl } = useSettings();\n const t = useT();\n const flows = TOKEN_FLOWS.filter((flow) => scheme.flows?.[flow]);\n const [flow, setFlow] = useState(flows[0]);\n const [state, setState] = useState({ status: \"idle\" });\n if (!flow) return null;\n\n async function requestToken() {\n setState({ status: \"loading\" });\n try {\n const result = await sendRequest(buildTokenRequest(flow, scheme.flows[flow], credential ?? {}), { proxyUrl });\n const body = JSON.parse(result.body || \"{}\");\n if (result.status >= 400 || !body.access_token) throw new Error(body.error_description ?? body.error ?? `HTTP ${result.status}`);\n setCredential(name, { token: body.access_token });\n setState({ status: \"done\" });\n } catch (error) {\n setState({ status: \"error\", message: error.message });\n }\n }\n\n const set = (key) => (value) => setCredential(name, { [key]: value });\n return (\n <div className=\"space-y-2 rounded-lg border border-dashed border-border p-2\">\n {flows.length > 1 && (\n <select value={flow} onChange={(event) => setFlow(event.target.value)} className={inputClass}>\n {flows.map((item) => (\n <option key={item}>{item}</option>\n ))}\n </select>\n )}\n <Field label=\"client_id\" value={credential?.clientId} onChange={set(\"clientId\")} />\n <Field label=\"client_secret\" value={credential?.clientSecret} onChange={set(\"clientSecret\")} secret />\n {flow === \"password\" && (\n <>\n <Field label={t(\"auth.username\")} value={credential?.username} onChange={set(\"username\")} />\n <Field label={t(\"auth.password\")} value={credential?.password} onChange={set(\"password\")} secret />\n </>\n )}\n <Field\n label={t(\"auth.scopes\")}\n value={credential?.scopes}\n onChange={set(\"scopes\")}\n placeholder={Object.keys(scheme.flows[flow].scopes ?? {}).join(\" \")}\n />\n <button\n type=\"button\"\n onClick={requestToken}\n disabled={state.status === \"loading\"}\n className=\"rounded-lg border border-border px-3 py-1 text-xs font-medium hover:border-primary hover:text-primary disabled:opacity-60\"\n >\n {state.status === \"loading\" ? t(\"auth.gettingToken\") : t(\"auth.getToken\")}\n </button>\n {state.status === \"error\" && <p className=\"text-xs text-rose-700 dark:text-rose-400\">{t(\"auth.tokenFailed\", { error: state.message })}</p>}\n </div>\n );\n}\n\nfunction SchemeFields({ name, scheme }) {\n const { credentials, setCredential } = useSettings();\n const t = useT();\n const credential = credentials[name];\n const set = (key) => (value) => setCredential(name, { [key]: value });\n\n if (scheme.type === \"http\" && String(scheme.scheme).toLowerCase() === \"basic\") {\n return (\n <>\n <Field label={t(\"auth.username\")} value={credential?.username} onChange={set(\"username\")} />\n <Field label={t(\"auth.password\")} value={credential?.password} onChange={set(\"password\")} secret />\n </>\n );\n }\n if (scheme.type === \"apiKey\") return <Field label={scheme.name} value={credential?.token} onChange={set(\"token\")} secret />;\n if (scheme.type === \"oauth2\" || scheme.type === \"openIdConnect\") {\n return (\n <>\n <Field label={t(\"auth.accessToken\")} value={credential?.token} onChange={set(\"token\")} secret />\n {scheme.type === \"oauth2\" && <TokenRequest name={name} scheme={scheme} credential={credential} />}\n {scheme.type === \"oauth2\" && !TOKEN_FLOWS.some((flow) => scheme.flows?.[flow]) && (\n <p className=\"text-xs text-muted-foreground\">{t(\"auth.redirectFlows\")}</p>\n )}\n </>\n );\n }\n if (scheme.type === \"mutualTLS\") return <p className=\"text-xs text-muted-foreground\">{t(\"auth.mutualTls\")}</p>;\n return <Field label=\"Token\" value={credential?.token} onChange={set(\"token\")} secret />;\n}\n\n/** Credential inputs for every security scheme in the document. */\nexport default function AuthPanel({ schemes }) {\n const t = useT();\n return (\n <div className=\"space-y-3\">\n <h3 className=\"text-xs font-semibold text-muted-foreground\">{t(\"auth.title\")}</h3>\n {Object.entries(schemes).map(([name, scheme]) => (\n <fieldset key={name} className=\"space-y-2 border-t border-border pt-3 first-of-type:border-t-0 first-of-type:pt-0\">\n <legend className=\"flex flex-wrap items-baseline gap-2\">\n <span className=\"font-mono text-xs font-semibold\">{name}</span>\n <span className=\"text-[11px] text-muted-foreground\">{describeScheme(scheme)}</span>\n </legend>\n <Markdown source={scheme.description} className=\"text-xs text-muted-foreground\" />\n <SchemeFields name={name} scheme={scheme} />\n </fieldset>\n ))}\n </div>\n );\n}\n", "// Sending requests from the viewer: straight from the browser (needs CORS on\n// the API) or through the host's proxy endpoint (proxyUrl). Used by the Try\n// dialog and by OAuth2 token requests.\n\n// FormData for multipart requests: text parts plus the chosen File objects\n// (aligned with request.form).\nfunction toFormData(form, files) {\n const data = new FormData();\n form.forEach((field, index) => {\n if (field.file) data.append(field.name, files[index], field.file.name);\n else data.append(field.name, field.value ?? \"\");\n });\n return data;\n}\n\nasync function toBase64(file) {\n const bytes = new Uint8Array(await file.arrayBuffer());\n let binary = \"\";\n for (let offset = 0; offset < bytes.length; offset += 0x8000) {\n binary += String.fromCharCode(...bytes.subarray(offset, offset + 0x8000));\n }\n return btoa(binary);\n}\n\n// Sends the request straight from the browser (needs CORS on the API).\nexport async function sendDirect(request, files) {\n const started = performance.now();\n const response = await fetch(request.url, {\n method: request.method,\n headers: request.headers,\n body: request.form ? toFormData(request.form, files) : request.body,\n });\n return {\n status: response.status,\n statusText: response.statusText,\n duration: Math.round(performance.now() - started),\n headers: [...response.headers.entries()],\n body: await response.text(),\n };\n}\n\n// Relays the request through the host's proxy endpoint (see proxyUrl).\n// Multipart files travel base64-encoded inside the JSON payload.\nexport async function sendViaProxy(proxyUrl, request, files) {\n const payload = { ...request };\n if (request.form) {\n payload.form = await Promise.all(\n request.form.map(async (field, index) =>\n field.file ? { name: field.name, file: { ...field.file, data: await toBase64(files[index]) } } : field,\n ),\n );\n }\n const response = await fetch(proxyUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n });\n const result = await response.json();\n if (result.error) throw new Error(result.error);\n return result;\n}\n\n/** Sends `request` through the proxy when `proxyUrl` is set, else directly. */\nexport function sendRequest(request, { proxyUrl, files = [] } = {}) {\n return proxyUrl ? sendViaProxy(proxyUrl, request, files) : sendDirect(request, files);\n}\n", "\"use client\";\n\nimport { memo, useRef } from \"react\";\nimport { useT } from \"./i18n/context\";\nimport { useNearViewport } from \"./lazy\";\nimport SchemaTree from \"./schema-tree\";\n\nfunction Model({ item }) {\n const ref = useRef(null);\n const near = useNearViewport(ref);\n\n return (\n <section ref={ref} id={item.anchor} data-anchor className={`rounded-2xl border border-border p-5 ${near ? \"\" : \"min-h-40\"}`}>\n <h3 className=\"font-mono text-base font-semibold [overflow-wrap:anywhere]\">\n <a href={`#${item.anchor}`} className=\"hover:text-primary\">\n {item.name}\n </a>\n </h3>\n {near && (\n <div className=\"mt-3\">\n <SchemaTree schema={item.schema} modelName={item.name} />\n </div>\n )}\n </section>\n );\n}\n\nfunction Models({ schemas }) {\n const t = useT();\n if (schemas.length === 0) return null;\n\n return (\n <section className=\"py-14\">\n <h2 className=\"text-3xl font-bold tracking-tight\">{t(\"models.title\")}</h2>\n <div className=\"mt-6 space-y-6\">\n {schemas.map((item) => (\n <Model key={item.name} item={item} />\n ))}\n </div>\n </section>\n );\n}\n\nexport default memo(Models);\n", "\"use client\";\n\nimport { useState } from \"react\";\nimport { childrenOf, constraintsOf, modelAnchor, resolveSchema, typeLabel } from \"@oaspect/core\";\nimport { useLocalized, useT } from \"./i18n/context\";\nimport Markdown from \"./markdown\";\nimport { useSpec } from \"./spec-context\";\nimport { ChevronIcon } from \"./icons\";\n\n// Chips hold technical values (patterns, dates, enums): always LTR and\n// isolated so an RTL UI does not reorder their characters.\nfunction Chip({ children, className = \"\" }) {\n return (\n <span dir=\"ltr\" className={`rounded-md bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground ${className}`}>\n {children}\n </span>\n );\n}\n\nconst formatValue = (value) => (typeof value === \"string\" ? `\"${value}\"` : JSON.stringify(value));\n\n// Type line, flags, description, enum and constraints for one field.\nexport function FieldDetails({ schema, name, description, required, deprecated, extra }) {\n const spec = useSpec();\n const t = useT();\n const localized = useLocalized();\n const constraints = constraintsOf(schema);\n const text = description ?? localized(schema, \"description\");\n\n return (\n <>\n <span dir=\"ltr\" className=\"font-mono text-xs text-muted-foreground\">\n {name && schema.properties ? (\n <a href={`#${modelAnchor(name)}`} className=\"hover:text-primary\">\n {typeLabel(spec, schema, name)}\n </a>\n ) : (\n typeLabel(spec, schema, name)\n )}\n </span>\n {required && <span className=\"text-[11px] font-medium text-rose-700 dark:text-rose-400\">required</span>}\n {schema.nullable && <Chip>nullable</Chip>}\n {schema.readOnly && <Chip>read-only</Chip>}\n {schema.writeOnly && <Chip>write-only</Chip>}\n {(deprecated || schema.deprecated) && (\n <Chip className=\"!bg-amber-500/15 !text-amber-700 dark:!text-amber-300\">deprecated</Chip>\n )}\n {extra}\n\n {(text || schema.enum || constraints.length > 0 || schema.pattern || schema.default !== undefined || schema.example !== undefined) && (\n <div className=\"basis-full space-y-2 pt-1\">\n <Markdown source={text} className=\"text-muted-foreground\" />\n {schema.enum && (\n <div className=\"flex flex-wrap items-center gap-1 text-xs text-muted-foreground\">\n <span>{t(\"schema.values\")}</span>\n {schema.enum.map((value) => (\n <Chip key={String(value)}>{formatValue(value)}</Chip>\n ))}\n </div>\n )}\n {(constraints.length > 0 || schema.pattern) && (\n <div className=\"flex flex-wrap gap-1\">\n {constraints.map((item) => (\n <Chip key={item}>{item}</Chip>\n ))}\n {schema.pattern && <Chip>pattern: {schema.pattern}</Chip>}\n </div>\n )}\n {schema.default !== undefined && (\n <div className=\"text-xs text-muted-foreground\">\n {t(\"schema.default\")} <Chip>{formatValue(schema.default)}</Chip>\n </div>\n )}\n {schema.example !== undefined && (\n <div className=\"text-xs text-muted-foreground\">\n {t(\"schema.example\")} <Chip>{formatValue(schema.example)}</Chip>\n </div>\n )}\n </div>\n )}\n </>\n );\n}\n\nfunction PropertyRow({ name, raw, required, depth, seen }) {\n const spec = useSpec();\n const { schema, name: refName } = resolveSchema(spec, raw);\n const circular = refName && seen.has(refName);\n const nested = circular ? null : childrenOf(spec, schema);\n const [open, setOpen] = useState(false);\n const t = useT();\n\n return (\n <div className=\"border-t border-border py-3 first:border-t-0\">\n <div className=\"flex flex-wrap items-baseline gap-x-2 gap-y-1\">\n {nested ? (\n <button\n type=\"button\"\n onClick={() => setOpen(!open)}\n aria-expanded={open}\n className=\"flex items-baseline gap-1 font-mono text-sm font-semibold hover:text-primary\"\n >\n <span className={`inline-flex self-center transition ${open ? \"rotate-90\" : \"rtl:-scale-x-100\"}`}>\n <ChevronIcon className=\"size-3\" />\n </span>\n {name}\n </button>\n ) : (\n <span className=\"font-mono text-sm font-semibold\">{name}</span>\n )}\n <FieldDetails\n schema={schema}\n name={refName}\n required={required}\n extra={circular && <Chip>↻ {t(\"schema.circular\")}</Chip>}\n />\n </div>\n {nested && open && (\n <div className=\"ms-1 mt-3 border-s-2 border-border ps-4\">\n <SchemaBody schema={schema} nested={nested} depth={depth + 1} seen={refName ? new Set(seen).add(refName) : seen} />\n </div>\n )}\n </div>\n );\n}\n\nfunction SchemaBody({ schema, nested, depth, seen }) {\n const spec = useSpec();\n const [variant, setVariant] = useState(0);\n const t = useT();\n\n if (nested.kind === \"properties\") {\n const required = new Set(schema.required ?? []);\n return (\n <div>\n {Object.entries(schema.properties).map(([key, value]) => (\n <PropertyRow key={key} name={key} raw={value} required={required.has(key)} depth={depth} seen={seen} />\n ))}\n </div>\n );\n }\n\n if (nested.kind === \"items\" || nested.kind === \"map\") {\n const inner = childrenOf(spec, nested.schema);\n return (\n <div>\n <p className=\"pb-2 text-xs text-muted-foreground\">\n {nested.kind === \"items\" ? t(\"schema.arrayItem\") : t(\"schema.mapValue\")}: <span dir=\"ltr\" className=\"font-mono\">{nested.name ?? typeLabel(spec, nested.schema)}</span>\n </p>\n <SchemaBody\n schema={nested.schema}\n nested={inner}\n depth={depth}\n seen={nested.name ? new Set(seen).add(nested.name) : seen}\n />\n </div>\n );\n }\n\n // oneOf / anyOf\n const current = nested.variants[variant] ?? nested.variants[0];\n const inner = childrenOf(spec, current.schema);\n return (\n <div>\n <div className=\"flex flex-wrap items-center gap-1 pb-2\">\n <span className=\"text-xs text-muted-foreground\">{nested.kind}:</span>\n {nested.variants.map((item, index) => (\n <button\n key={index}\n type=\"button\"\n onClick={() => setVariant(index)}\n className={`rounded-md border px-2 py-0.5 font-mono text-[11px] transition ${\n index === variant ? \"border-primary text-primary\" : \"border-border text-muted-foreground hover:text-foreground\"\n }`}\n >\n {item.name ?? item.schema.title ?? typeLabel(spec, item.schema)}\n </button>\n ))}\n </div>\n {inner ? (\n <SchemaBody schema={current.schema} nested={inner} depth={depth} seen={seen} />\n ) : (\n <div className=\"flex flex-wrap items-baseline gap-2 py-2\">\n <FieldDetails schema={current.schema} name={current.name} />\n </div>\n )}\n </div>\n );\n}\n\n// Renders a schema as an expandable field tree (objects, arrays, oneOf...).\n// `modelName` seeds cycle detection when rendering a component schema directly.\nexport default function SchemaTree({ schema: raw, modelName }) {\n const spec = useSpec();\n const localized = useLocalized();\n const resolved = resolveSchema(spec, raw);\n const { schema } = resolved;\n const name = resolved.name ?? modelName;\n const nested = childrenOf(spec, schema);\n const seen = name ? new Set([name]) : new Set();\n\n if (!nested) {\n return (\n <div className=\"flex flex-wrap items-baseline gap-2 py-2\">\n <FieldDetails schema={schema} name={name} />\n </div>\n );\n }\n\n return (\n <div>\n {schema.description && <Markdown source={localized(schema, \"description\")} className=\"pb-2 text-muted-foreground\" />}\n <SchemaBody schema={schema} nested={nested} depth={0} seen={seen} />\n </div>\n );\n}\n", "// Inline SVG icons (Lucide-style 24px stroke icons) so the package needs no\n// icon dependency. They inherit currentColor and size from their className.\n\nfunction Icon({ className = \"size-4\", children, strokeWidth = 2 }) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n focusable=\"false\"\n className={className}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n {children}\n </svg>\n );\n}\n\n/** Points right (left in RTL); rotate-90 when open makes it point down. */\nexport function ChevronIcon({ className = \"size-3.5\" }) {\n return (\n <Icon className={className} strokeWidth={2.5}>\n <path d=\"m9 18 6-6-6-6\" />\n </Icon>\n );\n}\n\nexport function MenuIcon({ className }) {\n return (\n <Icon className={className}>\n <path d=\"M4 6h16M4 12h16M4 18h16\" />\n </Icon>\n );\n}\n\nexport function SunIcon({ className }) {\n return (\n <Icon className={className}>\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\" />\n </Icon>\n );\n}\n\nexport function MoonIcon({ className }) {\n return (\n <Icon className={className}>\n <path d=\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\" />\n </Icon>\n );\n}\n\nexport function CloseIcon({ className }) {\n return (\n <Icon className={className}>\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </Icon>\n );\n}\n\nexport function PlayIcon({ className = \"size-3\" }) {\n return (\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\" className={className} fill=\"currentColor\">\n <path d=\"M7 4.5v15a1 1 0 0 0 1.5.87l12-7.5a1 1 0 0 0 0-1.74l-12-7.5A1 1 0 0 0 7 4.5Z\" />\n </svg>\n );\n}\n\nexport function LockIcon({ className }) {\n return (\n <Icon className={className}>\n <rect x=\"4\" y=\"11\" width=\"16\" height=\"10\" rx=\"2\" />\n <path d=\"M8 11V7a4 4 0 0 1 8 0v4\" />\n </Icon>\n );\n}\n", "\"use client\";\n\nimport { memo, useRef, useState } from \"react\";\nimport { jsonMediaType, linkTarget, mediaExample, resolveSchema, securityRequirements } from \"@oaspect/core\";\nimport CodeBlock, { CopyButton } from \"./code-block\";\nimport { useLocalized, useT } from \"./i18n/context\";\nimport Markdown from \"./markdown\";\nimport MethodBadge, { statusTone } from \"./method-badge\";\nimport { RequestSample, ResponseSample } from \"./samples\";\nimport SchemaTree, { FieldDetails } from \"./schema-tree\";\nimport { useModel, useSpec } from \"./spec-context\";\nimport { ChevronIcon, LockIcon } from \"./icons\";\nimport { useNearViewport } from \"./lazy\";\n\n// Titles are translation keys.\nconst PARAM_GROUPS = [\n [\"path\", \"params.path\"],\n [\"query\", \"params.query\"],\n [\"header\", \"params.header\"],\n [\"cookie\", \"params.cookie\"],\n];\n\nfunction SectionTitle({ children, aside }) {\n return (\n <div className=\"mb-2 mt-8 flex items-center justify-between gap-2 border-b border-border pb-2\">\n <h4 className=\"text-sm font-semibold\">{children}</h4>\n {aside}\n </div>\n );\n}\n\nfunction Parameters({ parameters }) {\n const spec = useSpec();\n const t = useT();\n const localized = useLocalized();\n\n return PARAM_GROUPS.map(([location, title]) => {\n const list = parameters.filter((param) => param.in === location);\n if (list.length === 0) return null;\n\n return (\n <div key={location}>\n <SectionTitle>{t(title)}</SectionTitle>\n {list.map((param) => {\n const { schema, name } = resolveSchema(spec, param.schema ?? {});\n return (\n <div key={param.name} className=\"flex flex-wrap items-baseline gap-x-2 gap-y-1 border-t border-border py-3 first:border-t-0\">\n <span className=\"font-mono text-sm font-semibold\">{param.name}</span>\n <FieldDetails\n schema={param.example !== undefined ? { ...schema, example: param.example } : schema}\n name={name}\n description={localized(param, \"description\")}\n required={param.required}\n deprecated={param.deprecated}\n />\n </div>\n );\n })}\n </div>\n );\n });\n}\n\nfunction MediaSchema({ content }) {\n const types = Object.keys(content);\n const [type, setType] = useState(jsonMediaType(content));\n const t = useT();\n const media = content[type];\n\n return (\n <div>\n {types.length > 1 && (\n <select\n value={type}\n onChange={(event) => setType(event.target.value)}\n className=\"mb-2 rounded-md border border-border bg-background px-2 py-1 font-mono text-xs\"\n >\n {types.map((item) => (\n <option key={item}>{item}</option>\n ))}\n </select>\n )}\n {media?.schema ? <SchemaTree schema={media.schema} /> : <p className=\"text-sm text-muted-foreground\">{t(\"schema.none\")}</p>}\n </div>\n );\n}\n\n// Response links: where a value from this response can be used next.\nfunction Links({ links }) {\n const t = useT();\n const model = useModel();\n const localized = useLocalized();\n\n return (\n <div>\n <p className=\"pb-1 text-xs font-semibold text-muted-foreground\">{t(\"operation.links\")}</p>\n {links.map((link) => {\n const target = model ? linkTarget(model, link) : undefined;\n const parameters = Object.entries(link.parameters);\n return (\n <div key={link.name} className=\"space-y-1 border-t border-border py-2 first:border-t-0\">\n <div className=\"flex flex-wrap items-baseline gap-2 text-sm\">\n <span className=\"font-mono font-semibold\">{link.name}</span>\n <span className=\"text-muted-foreground\">→</span>\n {target ? (\n <a href={`#${target.anchor}`} className=\"text-primary underline underline-offset-2\">\n {localized(target, \"summary\") || target.operationId || `${target.method.toUpperCase()} ${target.path}`}\n </a>\n ) : (\n <code dir=\"ltr\" className=\"font-mono text-xs text-muted-foreground\">{link.operationId ?? link.operationRef}</code>\n )}\n </div>\n <Markdown source={link.description} className=\"text-muted-foreground\" />\n {parameters.length > 0 && (\n <dl dir=\"ltr\" className=\"grid grid-cols-[auto_minmax(0,1fr)] gap-x-3 gap-y-0.5 font-mono text-xs\">\n {parameters.map(([name, expression]) => (\n <div key={name} className=\"contents\">\n <dt className=\"font-semibold\">{name}</dt>\n <dd className=\"break-all text-muted-foreground\">{typeof expression === \"string\" ? expression : JSON.stringify(expression)}</dd>\n </div>\n ))}\n </dl>\n )}\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction ResponseRow({ response, defaultOpen }) {\n const localized = useLocalized();\n const [open, setOpen] = useState(defaultOpen);\n const hasBody = Object.keys(response.content).length > 0;\n const headers = Object.entries(response.headers);\n const links = response.links ?? [];\n const expandable = hasBody || headers.length > 0 || links.length > 0;\n\n return (\n <div className=\"border-t border-border first:border-t-0\">\n <button\n type=\"button\"\n disabled={!expandable}\n onClick={() => setOpen(!open)}\n className=\"flex w-full items-baseline gap-3 py-3 text-start enabled:hover:text-primary\"\n >\n <span className={`flex w-4 shrink-0 self-center transition ${expandable ? \"\" : \"invisible\"} ${open ? \"rotate-90\" : \"rtl:-scale-x-100\"}`}>\n <ChevronIcon />\n </span>\n <span className={`font-mono text-sm font-bold ${statusTone(response.status)}`}>{response.status}</span>\n <span dir=\"auto\" className=\"text-sm text-muted-foreground\">{localized(response, \"description\")}</span>\n </button>\n {open && expandable && (\n <div className=\"mb-4 ms-7 space-y-4\">\n {headers.length > 0 && (\n <div>\n <p className=\"pb-1 text-xs font-semibold text-muted-foreground\">Headers</p>\n {headers.map(([name, header]) => (\n <div key={name} className=\"flex flex-wrap items-baseline gap-2 py-1\">\n <span className=\"font-mono text-sm font-semibold\">{name}</span>\n <FieldDetails schema={header.schema ?? {}} description={localized(header, \"description\")} />\n </div>\n ))}\n </div>\n )}\n {hasBody && <MediaSchema content={response.content} />}\n {links.length > 0 && <Links links={links} />}\n </div>\n )}\n </div>\n );\n}\n\n// Callback requests the API makes after this operation, per runtime expression.\nfunction Callback({ operation }) {\n const [open, setOpen] = useState(false);\n const localized = useLocalized();\n const t = useT();\n\n return (\n <div className=\"border-t border-border first:border-t-0\">\n <button\n type=\"button\"\n onClick={() => setOpen(!open)}\n aria-expanded={open}\n className=\"flex w-full items-center gap-3 py-3 text-start hover:text-primary\"\n >\n <span className={`flex w-4 shrink-0 transition ${open ? \"rotate-90\" : \"rtl:-scale-x-100\"}`}>\n <ChevronIcon />\n </span>\n <MethodBadge method={operation.method} size=\"sm\" />\n <code dir=\"ltr\" className=\"min-w-0 truncate font-mono text-xs\">{operation.path}</code>\n <span dir=\"auto\" className=\"truncate text-sm text-muted-foreground\">{localized(operation, \"summary\")}</span>\n </button>\n {open && (\n <div className=\"mb-4 ms-7 space-y-3\">\n <Markdown source={localized(operation, \"description\")} />\n {operation.requestBody?.content && (\n <div>\n <p className=\"pb-1 text-xs font-semibold text-muted-foreground\">{t(\"operation.requestBody\")}</p>\n <MediaSchema content={operation.requestBody.content} />\n </div>\n )}\n {operation.responses.length > 0 && (\n <div>\n <p className=\"pb-1 text-xs font-semibold text-muted-foreground\">{t(\"operation.responses\")}</p>\n {operation.responses.map((response) => (\n <ResponseRow key={response.status} response={response} defaultOpen={false} />\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n\n// Webhooks: the payload the API sends, in place of request samples.\nfunction PayloadSample({ operation }) {\n const spec = useSpec();\n const t = useT();\n const content = operation.requestBody?.content;\n const type = jsonMediaType(content);\n if (!type) return null;\n const example = mediaExample(spec, content[type]);\n if (example === undefined) return null;\n\n return (\n <CodeBlock\n code={typeof example === \"string\" ? example : JSON.stringify(example, null, 2)}\n toolbar={<span className=\"px-1 text-xs font-medium text-white/60\">{t(\"webhooks.payload\")}</span>}\n />\n );\n}\n\n// \"Requires: a or b + c\" from the operation's security requirements.\nfunction SecurityLine({ operation }) {\n const t = useT();\n const requirements = securityRequirements(operation);\n if (!requirements.length) return null;\n const optional = requirements.some((requirement) => requirement.schemes.length === 0);\n const alternatives = requirements.filter((requirement) => requirement.schemes.length);\n\n return (\n <p className=\"mt-2 flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground\">\n <LockIcon className=\"size-3.5\" />\n <span>{t(\"operation.security\")}</span>\n {alternatives.map((requirement, index) => (\n <span key={index} className=\"flex items-center gap-1.5\">\n {index > 0 && <span>{t(\"operation.securityOr\")}</span>}\n <code dir=\"ltr\" className=\"rounded bg-muted px-1 py-0.5 font-mono text-[11px]\">\n {requirement.schemes.map((name) => (requirement.scopes[name]?.length ? `${name} (${requirement.scopes[name].join(\", \")})` : name)).join(\" + \")}\n </code>\n </span>\n ))}\n {optional && <span>({t(\"operation.securityOptional\")})</span>}\n </p>\n );\n}\n\nfunction Operation({ operation, onTry, eager = false }) {\n const t = useT();\n const localized = useLocalized();\n const webhook = operation.kind === \"webhook\";\n const ref = useRef(null);\n const near = useNearViewport(ref, eager);\n\n // The <section> stays the same element so anchors and the scroll spy keep\n // working; only its content switches from placeholder to full details.\n if (!near) {\n return (\n <section ref={ref} id={operation.anchor} data-anchor className=\"min-h-[32rem] border-b border-border py-14\">\n <h3 className=\"text-2xl font-semibold tracking-tight [overflow-wrap:anywhere]\">{localized(operation, \"summary\") || operation.path}</h3>\n <p dir=\"ltr\" className=\"mt-3 font-mono text-sm text-muted-foreground\">\n {operation.method.toUpperCase()} {operation.path}\n </p>\n </section>\n );\n }\n\n return (\n <section ref={ref} id={operation.anchor} data-anchor className=\"border-b border-border py-14\">\n <div className=\"grid grid-cols-[minmax(0,1fr)] gap-10 xl:grid-cols-[minmax(0,1fr)_minmax(0,28rem)]\">\n <div className=\"min-w-0\">\n <h3 className=\"flex flex-wrap items-center gap-2 text-2xl font-semibold tracking-tight [overflow-wrap:anywhere]\">\n <a href={`#${operation.anchor}`} className=\"hover:text-primary\">\n {localized(operation, \"summary\") || operation.path}\n </a>\n {operation.deprecated && (\n <span className=\"rounded-md bg-amber-500/15 px-2 py-0.5 text-xs font-medium text-amber-700 dark:text-amber-300\">\n deprecated\n </span>\n )}\n </h3>\n <div dir=\"ltr\" className=\"mt-3 flex items-center gap-2 overflow-hidden rounded-lg border border-border bg-card px-2 py-1.5\">\n <MethodBadge method={operation.method} />\n <code className=\"min-w-0 flex-1 truncate font-mono text-sm\">{operation.path}</code>\n <CopyButton text={operation.path} className=\"text-muted-foreground hover:bg-muted hover:text-foreground\" />\n </div>\n {operation.operationId && (\n <p dir=\"ltr\" className=\"mt-2 text-start font-mono text-[11px] text-muted-foreground [unicode-bidi:plaintext]\">operationId: {operation.operationId}</p>\n )}\n <SecurityLine operation={operation} />\n <Markdown source={localized(operation, \"description\")} className=\"mt-4\" />\n\n <Parameters parameters={operation.parameters} />\n\n {operation.requestBody?.content && (\n <div>\n <SectionTitle\n aside={\n operation.requestBody.required && (\n <span className=\"text-[11px] font-medium text-rose-700 dark:text-rose-400\">required</span>\n )\n }\n >\n {t(\"operation.requestBody\")}\n </SectionTitle>\n <Markdown source={localized(operation.requestBody, \"description\")} className=\"pb-2 text-muted-foreground\" />\n <MediaSchema content={operation.requestBody.content} />\n </div>\n )}\n\n {operation.responses.length > 0 && (\n <div>\n <SectionTitle>{t(\"operation.responses\")}</SectionTitle>\n {operation.responses.map((response, index) => (\n <ResponseRow key={response.status} response={response} defaultOpen={index === 0 && /^2/.test(response.status)} />\n ))}\n </div>\n )}\n\n {operation.callbacks?.length > 0 && (\n <div>\n <SectionTitle>{t(\"operation.callbacks\")}</SectionTitle>\n {operation.callbacks.map((callback) => (\n <div key={callback.name}>\n <p className=\"pt-2 font-mono text-xs font-semibold text-muted-foreground\">{callback.name}</p>\n {callback.operations.map((item) => (\n <Callback key={item.anchor} operation={item} />\n ))}\n </div>\n ))}\n </div>\n )}\n </div>\n\n <aside className=\"min-w-0 space-y-4 xl:sticky xl:top-20 xl:self-start\">\n {webhook ? (\n <PayloadSample operation={operation} />\n ) : (\n <>\n <RequestSample operation={operation} onTry={onTry ? () => onTry(operation) : null} />\n <ResponseSample operation={operation} />\n </>\n )}\n </aside>\n </div>\n </section>\n );\n}\n\nexport default memo(Operation);\n", "const METHOD_STYLES = {\n get: \"bg-sky-500/15 text-sky-800 dark:text-sky-300\",\n post: \"bg-emerald-500/15 text-emerald-800 dark:text-emerald-300\",\n put: \"bg-amber-500/15 text-amber-800 dark:text-amber-300\",\n patch: \"bg-violet-500/15 text-violet-800 dark:text-violet-300\",\n delete: \"bg-rose-500/15 text-rose-800 dark:text-rose-300\",\n};\n\nexport default function MethodBadge({ method, size = \"md\" }) {\n const sizing = size === \"sm\" ? \"w-12 text-[10px] py-0.5\" : \"px-2 py-1 text-xs\";\n\n return (\n <span\n className={`inline-flex shrink-0 items-center justify-center rounded-md font-mono font-bold uppercase ${sizing} ${\n METHOD_STYLES[method] ?? \"bg-muted text-muted-foreground\"\n }`}\n >\n {method === \"delete\" && size === \"sm\" ? \"del\" : method}\n </span>\n );\n}\n\n// Status code colors. `onDark` is for the always-dark code blocks, where the\n// light-theme shades would not reach WCAG AA contrast.\nexport function statusTone(status, { onDark = false } = {}) {\n if (onDark) {\n if (/^2/.test(status)) return \"text-emerald-400\";\n if (/^3/.test(status)) return \"text-sky-400\";\n if (/^4/.test(status)) return \"text-amber-400\";\n if (/^5/.test(status)) return \"text-rose-400\";\n return \"text-white/60\";\n }\n if (/^2/.test(status)) return \"text-emerald-700 dark:text-emerald-400\";\n if (/^3/.test(status)) return \"text-sky-700 dark:text-sky-400\";\n if (/^4/.test(status)) return \"text-amber-700 dark:text-amber-400\";\n if (/^5/.test(status)) return \"text-rose-700 dark:text-rose-400\";\n return \"text-muted-foreground\";\n}\n", "\"use client\";\n\nimport { useMemo, useState } from \"react\";\nimport { buildRequest, defaultBody, defaultValues, jsonMediaType, mediaExample, mediaExamples, resolveSnippet, SNIPPET_LANGUAGES } from \"@oaspect/core\";\nimport { useT } from \"./i18n/context\";\nimport CodeBlock, { ToolbarTab } from \"./code-block\";\nimport { statusTone } from \"./method-badge\";\nimport { useSettings, useSpec } from \"./spec-context\";\nimport { PlayIcon } from \"./icons\";\n\n// Compact <select> styled to sit in the dark code toolbar.\nfunction ToolbarSelect({ label, value, options, onChange }) {\n return (\n <select\n aria-label={label}\n title={label}\n value={value}\n onChange={(event) => onChange(event.target.value)}\n className=\"shrink-0 cursor-pointer rounded-md border border-white/10 bg-white/5 py-1 ps-2 pe-7 text-xs font-medium text-white outline-none transition hover:bg-white/10 focus:border-white/30 [&>option]:bg-neutral-900\"\n >\n {options.map(([key, text]) => (\n <option key={key} value={key}>\n {text}\n </option>\n ))}\n </select>\n );\n}\n\n// Merges security parts (API keys in query/cookie, auth headers) into a request's values.\nexport function withAuth(values, auth) {\n return {\n values: { ...values, query: { ...values.query, ...auth.query }, cookie: { ...values.cookie, ...auth.cookies } },\n headers: auth.headers,\n };\n}\n\nexport function RequestSample({ operation, onTry }) {\n const spec = useSpec();\n const { server, authFor, language, setLanguage } = useSettings();\n const t = useT();\n\n const request = useMemo(\n () =>\n buildRequest(operation, {\n server,\n ...withAuth(defaultValues(spec, operation), authFor(operation)),\n ...defaultBody(spec, operation),\n }),\n [spec, operation, server, authFor],\n );\n\n const { language: current, client } = resolveSnippet(language);\n const selectLanguage = (key) => setLanguage(resolveSnippet(key).selection);\n\n return (\n <CodeBlock\n language={current.highlight}\n code={client.build(request)}\n toolbar={\n <>\n <ToolbarSelect\n label={t(\"snippets.language\")}\n value={current.key}\n onChange={selectLanguage}\n options={SNIPPET_LANGUAGES.map((item) => [item.key, item.label])}\n />\n {current.clients.length > 1 && (\n <ToolbarSelect\n label={t(\"snippets.client\")}\n value={client.key}\n onChange={(key) => setLanguage(`${current.key}:${key}`)}\n options={current.clients.map((item) => [item.key, item.label])}\n />\n )}\n </>\n }\n actions={\n onTry && (\n <button\n type=\"button\"\n onClick={onTry}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-primary px-2.5 py-1 text-xs font-semibold text-primary-foreground hover:opacity-90\"\n >\n {t(\"tryIt.open\")}\n <PlayIcon className=\"size-2.5 rtl:-scale-x-100\" />\n </button>\n )\n }\n />\n );\n}\n\nexport function ResponseSample({ operation }) {\n const spec = useSpec();\n const withBody = operation.responses.filter((response) => jsonMediaType(response.content));\n const [status, setStatus] = useState(withBody[0]?.status);\n const [exampleKey, setExampleKey] = useState(null);\n\n if (withBody.length === 0) return null;\n\n const response = withBody.find((item) => item.status === status) ?? withBody[0];\n const media = response.content[jsonMediaType(response.content)];\n const named = mediaExamples(spec, media);\n const selected = named.find((item) => item.key === exampleKey) ?? named[0];\n const value = selected ? selected.value : mediaExample(spec, media);\n\n return (\n <div className=\"space-y-2\">\n <CodeBlock\n code={value === undefined ? \"\" : JSON.stringify(value, null, 2)}\n toolbar={withBody.map((item) => (\n <ToolbarTab\n key={item.status}\n active={item.status === response.status}\n onClick={() => {\n setStatus(item.status);\n setExampleKey(null);\n }}\n >\n <span className={item.status === response.status ? \"\" : statusTone(item.status, { onDark: true })}>{item.status}</span>\n </ToolbarTab>\n ))}\n />\n {named.length > 1 && (\n <select\n value={selected?.key}\n onChange={(event) => setExampleKey(event.target.value)}\n className=\"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs\"\n >\n {named.map((item) => (\n <option key={item.key} value={item.key}>\n {item.summary}\n </option>\n ))}\n </select>\n )}\n </div>\n );\n}\n", "\"use client\";\n\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useLocalized, useT } from \"./i18n/context\";\nimport MethodBadge from \"./method-badge\";\nimport { ChevronIcon } from \"./icons\";\n\n// Matches the translated and the authored text (so English search terms\n// keep working in another UI language), descriptions and parameter names.\n// Descriptions are searched as plain text; \":::lang\" markers do not matter.\nfunction matches(operation, query, localized) {\n return [\n localized(operation, \"summary\"),\n operation.summary,\n localized(operation, \"description\"),\n operation.description,\n operation.path,\n operation.method,\n operation.operationId,\n tagNames(operation),\n ...operation.parameters.map((parameter) => parameter.name),\n ]\n .filter(Boolean)\n .some((value) => String(value).toLowerCase().includes(query));\n}\n\nconst tagNames = (operation) => operation.tags.join(\" \");\n\n// CSS.escape where available (not in every DOM implementation).\nconst cssEscape = (value) => (globalThis.CSS?.escape ? CSS.escape(value) : String(value).replace(/[\"\\\\]/g, \"\\\\$&\"));\n\nfunction matchesSchema(item, query, localized) {\n return [item.name, localized(item.schema, \"description\"), item.schema.description, item.schema.title]\n .filter(Boolean)\n .some((value) => String(value).toLowerCase().includes(query));\n}\n\nexport default function Sidebar({ model, activeAnchor, searchRef, onNavigate, showModels = true }) {\n const [query, setQuery] = useState(\"\");\n const [expanded, setExpanded] = useState(() => new Set());\n const [modelsOpen, setModelsOpen] = useState(false);\n const listRef = useRef(null);\n const t = useT();\n const localized = useLocalized();\n const normalized = query.trim().toLowerCase();\n\n // Webhooks show up as one more group after the tags.\n const groups = useMemo(\n () => (model.webhooks?.length ? [...model.tags, { name: \"webhooks\", label: t(\"webhooks.title\"), anchor: \"webhooks\", operations: model.webhooks }] : model.tags),\n [model.tags, model.webhooks, t],\n );\n\n const tags = useMemo(() => {\n if (!normalized) return groups;\n return groups\n .map((tag) => ({ ...tag, operations: tag.operations.filter((op) => matches(op, normalized, localized)) }))\n .filter((tag) => tag.operations.length > 0);\n }, [groups, normalized, localized]);\n\n const schemas = useMemo(\n () => (normalized ? model.schemas.filter((item) => matchesSchema(item, normalized, localized)) : model.schemas),\n [model.schemas, normalized, localized],\n );\n\n const activeTag = groups.find(\n (tag) => tag.anchor === activeAnchor || tag.operations.some((op) => op.anchor === activeAnchor),\n )?.name;\n const inModels = activeAnchor?.startsWith(\"model/\");\n\n useEffect(() => {\n listRef.current\n ?.querySelector(`[data-nav=\"${cssEscape(activeAnchor ?? \"\")}\"]`)\n ?.scrollIntoView({ block: \"nearest\" });\n }, [activeAnchor]);\n\n function toggle(name) {\n setExpanded((current) => {\n const next = new Set(current);\n if (next.has(name)) next.delete(name);\n else next.add(name);\n return next;\n });\n }\n\n const linkClass = (anchor) =>\n `flex items-center gap-2 rounded-md px-2 py-1.5 text-sm transition ${\n anchor === activeAnchor ? \"bg-primary/10 font-medium text-primary\" : \"text-muted-foreground hover:bg-muted hover:text-foreground\"\n }`;\n\n return (\n <nav className=\"flex h-full flex-col\" aria-label={t(\"sidebar.label\")}>\n <div className=\"p-3\">\n <div className=\"relative\">\n <input\n ref={searchRef}\n type=\"search\"\n value={query}\n onChange={(event) => setQuery(event.target.value)}\n placeholder={t(\"sidebar.search\")}\n className=\"w-full rounded-lg border border-border bg-background py-1.5 ps-3 pe-12 text-sm outline-none focus:border-primary\"\n />\n <kbd className=\"pointer-events-none absolute end-2 top-1/2 -translate-y-1/2 rounded border border-border px-1.5 text-[10px] text-muted-foreground\">\n ⌘K\n </kbd>\n </div>\n </div>\n\n <div ref={listRef} className=\"min-h-0 flex-1 space-y-0.5 overflow-y-auto px-3 pb-6\">\n {!normalized && (\n <a href=\"#introduction\" data-nav=\"introduction\" onClick={onNavigate} className={linkClass(\"introduction\")}>\n {t(\"sidebar.introduction\")}\n </a>\n )}\n\n {tags.map((tag) => {\n const open = Boolean(normalized) || expanded.has(tag.name) || tag.name === activeTag;\n return (\n <div key={tag.name}>\n <button\n type=\"button\"\n onClick={() => toggle(tag.name)}\n aria-expanded={open}\n className=\"flex w-full items-center justify-between rounded-md px-2 py-1.5 text-start text-sm font-medium hover:bg-muted\"\n >\n {tag.label ?? localized(tag, \"name\")}\n <span className={`text-muted-foreground transition ${open ? \"rotate-90\" : \"rtl:-scale-x-100\"}`}>\n <ChevronIcon />\n </span>\n </button>\n {open && (\n <div className=\"mb-2 ms-2 space-y-0.5 border-s border-border ps-2\">\n {tag.operations.map((op) => (\n <a key={op.anchor} href={`#${op.anchor}`} data-nav={op.anchor} onClick={onNavigate} className={linkClass(op.anchor)}>\n <MethodBadge method={op.method} size=\"sm\" />\n <span dir=\"auto\" title={localized(op, \"summary\") || op.path} className={`truncate text-start ${op.deprecated ? \"line-through\" : \"\"}`}>{localized(op, \"summary\") || op.path}</span>\n </a>\n ))}\n </div>\n )}\n </div>\n );\n })}\n\n {showModels && schemas.length > 0 && (\n <div className=\"pt-4\">\n <button\n type=\"button\"\n onClick={() => setModelsOpen(!modelsOpen)}\n className=\"flex w-full items-center justify-between rounded-md px-2 py-1.5 text-start text-xs font-semibold uppercase tracking-wider text-muted-foreground hover:bg-muted\"\n >\n {t(\"models.title\")} ({schemas.length})\n <span className={`transition ${modelsOpen || normalized || inModels ? \"rotate-90\" : \"rtl:-scale-x-100\"}`}>\n <ChevronIcon />\n </span>\n </button>\n {(modelsOpen || normalized || inModels) && (\n <div className=\"ms-2 space-y-0.5 border-s border-border ps-2\">\n {schemas.map((item) => (\n <a key={item.name} href={`#${item.anchor}`} data-nav={item.anchor} onClick={onNavigate} className={linkClass(item.anchor)}>\n <span dir=\"ltr\" className=\"truncate font-mono text-xs\">{item.name}</span>\n </a>\n ))}\n </div>\n )}\n </div>\n )}\n\n {normalized && tags.length === 0 && schemas.length === 0 && (\n <p className=\"px-2 py-4 text-sm text-muted-foreground\">{t(\"sidebar.noResults\")}</p>\n )}\n </div>\n </nav>\n );\n}\n", "\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { useT } from \"./i18n/context\";\nimport { buildRequest, defaultBody, defaultValues, isMultipart } from \"@oaspect/core\";\nimport CodeBlock, { CodeEditor } from \"./code-block\";\nimport MethodBadge, { statusTone } from \"./method-badge\";\nimport { withAuth } from \"./samples\";\nimport { sendDirect, sendViaProxy } from \"./send\";\nimport { useSettings, useSpec } from \"./spec-context\";\nimport { CloseIcon } from \"./icons\";\n\n\n// Methods that never change server state; everything else asks first,\n// because the prefilled example values would overwrite real records.\nconst SAFE_METHODS = new Set([\"GET\", \"HEAD\", \"OPTIONS\"]);\n\n\nconst LOCATIONS = [\n [\"path\", \"Path\"],\n [\"query\", \"Query\"],\n [\"header\", \"Header\"],\n [\"cookie\", \"Cookie\"],\n];\n\nfunction prettyBody(text) {\n try {\n return { code: JSON.stringify(JSON.parse(text), null, 2), language: \"json\" };\n } catch {\n return { code: text, language: \"text\" };\n }\n}\n\n// Modal request runner: edit parameters/body and send the request from the browser.\nexport default function TryIt({ operation, onClose }) {\n const spec = useSpec();\n const { server, authFor, proxyUrl, storage } = useSettings();\n const proxyEnabled = Boolean(proxyUrl);\n const dialog = useRef(null);\n const t = useT();\n const [values, setValues] = useState(() => defaultValues(spec, operation));\n const [{ contentType, body, form = [] }, setBody] = useState(() => defaultBody(spec, operation));\n // multipart: chosen File per form part index (file parts without one are left out).\n const [chosen, setChosen] = useState({});\n const multipart = isMultipart(contentType);\n const [state, setState] = useState({ status: \"idle\" });\n const [skipConfirm, setSkipConfirm] = useState(() => storage.get(\"skip-write-confirm\", null, \"session\") === \"1\");\n // \"proxy\" relays through proxyUrl (no CORS needed); \"direct\" calls from the browser.\n // When the server has the proxy disabled only \"direct\" is available.\n const [preferredMode, setMode] = useState(() => (storage.get(\"request-mode\") === \"direct\" ? \"direct\" : \"proxy\"));\n const mode = proxyEnabled ? preferredMode : \"direct\";\n\n function changeMode(next) {\n setMode(next);\n storage.set(\"request-mode\", next);\n }\n\n // No close() in cleanup: it fires the \"close\" event, which would call\n // onClose and immediately unmount the dialog under StrictMode's double\n // effect run. Unmounting removes the dialog anyway.\n useEffect(() => {\n const node = dialog.current;\n if (node && !node.open) node.showModal();\n }, []);\n\n const sent = form\n .map((field, index) => ({ field, file: chosen[index] }))\n .filter(({ field, file }) => !field.file || file)\n .map(({ field, file }) => ({ field: file ? { name: field.name, file: { name: file.name, type: file.type || undefined } } : field, file }));\n const request = buildRequest(operation, { server, ...withAuth(values, authFor(operation)), body, form: sent.map((item) => item.field), contentType });\n const files = sent.map((item) => item.file ?? null);\n\n function setFormValue(index, value) {\n setBody((current) => ({ ...current, form: current.form.map((field, i) => (i === index ? { ...field, value } : field)) }));\n }\n\n function setValue(location, name, value) {\n setValues((current) => ({ ...current, [location]: { ...current[location], [name]: value } }));\n }\n\n function send(event) {\n event.preventDefault();\n if (!SAFE_METHODS.has(request.method) && storage.get(\"skip-write-confirm\", null, \"session\") !== \"1\") {\n setState({ status: \"confirm\" });\n return;\n }\n execute();\n }\n\n function confirmSend() {\n if (skipConfirm) storage.set(\"skip-write-confirm\", \"1\", \"session\");\n execute();\n }\n\n async function execute() {\n setState({ status: \"loading\" });\n\n try {\n const result = mode === \"proxy\" ? await sendViaProxy(proxyUrl, request, files) : await sendDirect(request, files);\n setState({ ...result, code: result.status, status: \"done\" });\n } catch (error) {\n setState({ status: \"error\", message: error.message });\n }\n }\n\n return (\n <dialog\n ref={dialog}\n onClose={onClose}\n onClick={(event) => event.target === dialog.current && onClose()}\n className=\"m-auto h-[min(90dvh,56rem)] w-[min(96vw,72rem)] overflow-hidden rounded-2xl border border-border bg-background p-0 text-foreground backdrop:bg-black/50 backdrop:backdrop-blur-sm\"\n >\n <form onSubmit={send} className=\"flex h-full flex-col\">\n <header className=\"flex items-center gap-3 border-b border-border px-5 py-3\">\n <MethodBadge method={operation.method} />\n <code dir=\"ltr\" className=\"min-w-0 flex-1 truncate text-start font-mono text-sm\" title={request.url}>\n {request.url}\n </code>\n <button\n type=\"submit\"\n disabled={state.status === \"loading\"}\n className=\"rounded-lg bg-primary px-4 py-1.5 text-sm font-semibold text-primary-foreground hover:opacity-90 disabled:opacity-60\"\n >\n {state.status === \"loading\" ? t(\"tryIt.sending\") : t(\"tryIt.send\")}\n </button>\n <button\n type=\"button\"\n onClick={onClose}\n aria-label={t(\"dialog.close\")}\n className=\"rounded-lg p-1.5 text-muted-foreground hover:bg-muted hover:text-foreground\"\n >\n <CloseIcon className=\"size-4\" />\n </button>\n </header>\n\n <div className=\"grid min-h-0 flex-1 lg:grid-cols-2\">\n <div className=\"min-h-0 space-y-6 overflow-y-auto border-border p-5 lg:border-e\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <p className=\"text-xs text-muted-foreground\">\n {t(\"tryIt.settingsHint\")}\n </p>\n <div className=\"flex rounded-lg border border-border p-0.5 text-xs\" role=\"group\" aria-label={t(\"tryIt.mode.label\")}>\n {[\n [\"proxy\", \"Proxy\"],\n [\"direct\", t(\"tryIt.mode.direct\")],\n ].map(([key, label]) => (\n <button\n key={key}\n type=\"button\"\n onClick={() => changeMode(key)}\n disabled={key === \"proxy\" && !proxyEnabled}\n aria-pressed={mode === key}\n title={\n key === \"direct\"\n ? t(\"tryIt.mode.directHint\")\n : proxyEnabled\n ? t(\"tryIt.mode.proxyHint\")\n : t(\"tryIt.mode.proxyDisabled\")\n }\n className={`rounded-md px-2 py-1 font-medium transition disabled:cursor-not-allowed disabled:opacity-40 ${\n mode === key ? \"bg-foreground text-background\" : \"text-muted-foreground enabled:hover:text-foreground\"\n }`}\n >\n {label}\n </button>\n ))}\n </div>\n </div>\n {LOCATIONS.map(([location, label]) => {\n const params = operation.parameters.filter((param) => param.in === location);\n if (params.length === 0) return null;\n return (\n <fieldset key={location} className=\"space-y-2\">\n <legend className=\"mb-2 text-sm font-semibold\">{label}</legend>\n {params.map((param) => (\n <label key={param.name} className=\"grid grid-cols-[minmax(0,11rem)_minmax(0,1fr)] items-center gap-3\">\n <span className=\"truncate font-mono text-xs\" title={param.name}>\n {param.name}\n {param.required && <span className=\"text-rose-600\"> *</span>}\n </span>\n {param.schema?.enum ? (\n <select\n value={values[location]?.[param.name] ?? \"\"}\n onChange={(event) => setValue(location, param.name, event.target.value)}\n className=\"rounded-md border border-border bg-background px-2 py-1 text-xs\"\n >\n <option value=\"\">—</option>\n {param.schema.enum.map((option) => (\n <option key={String(option)} value={String(option)}>\n {String(option)}\n </option>\n ))}\n </select>\n ) : (\n <input\n value={values[location]?.[param.name] ?? \"\"}\n required={param.required}\n onChange={(event) => setValue(location, param.name, event.target.value)}\n dir=\"ltr\"\n className=\"rounded-md border border-border bg-background px-2 py-1 font-mono text-xs outline-none focus:border-primary\"\n />\n )}\n </label>\n ))}\n </fieldset>\n );\n })}\n\n {contentType && multipart && (\n <fieldset className=\"space-y-2\">\n <legend className=\"mb-2 flex w-full items-center justify-between text-sm font-semibold\">\n Body <span className=\"font-mono text-[11px] font-normal text-muted-foreground\">{contentType}</span>\n </legend>\n {form.map((field, index) => (\n <label key={`${field.name}-${index}`} className=\"grid grid-cols-[minmax(0,11rem)_minmax(0,1fr)] items-center gap-3\">\n <span className=\"truncate font-mono text-xs\" title={field.name}>\n {field.name}\n {field.file && <span className=\"ms-1 rounded bg-muted px-1 text-[10px] text-muted-foreground\">file</span>}\n </span>\n {field.file ? (\n <input\n type=\"file\"\n onChange={(event) => setChosen((current) => ({ ...current, [index]: event.target.files?.[0] }))}\n className=\"text-xs file:me-2 file:rounded-md file:border file:border-border file:bg-background file:px-2 file:py-1 file:text-xs\"\n />\n ) : (\n <input\n value={field.value ?? \"\"}\n onChange={(event) => setFormValue(index, event.target.value)}\n dir=\"ltr\"\n className=\"rounded-md border border-border bg-background px-2 py-1 font-mono text-xs outline-none focus:border-primary\"\n />\n )}\n </label>\n ))}\n <p className=\"text-xs text-muted-foreground\">{t(\"tryIt.fileHint\")}</p>\n </fieldset>\n )}\n\n {contentType && !multipart && (\n <label className=\"block space-y-2\">\n <span className=\"flex items-center justify-between text-sm font-semibold\">\n Body <span className=\"font-mono text-[11px] font-normal text-muted-foreground\">{contentType}</span>\n </span>\n <CodeEditor value={body} onChange={(value) => setBody((current) => ({ ...current, body: value }))} />\n </label>\n )}\n </div>\n\n <div className=\"min-h-0 space-y-4 overflow-y-auto p-5\">\n {state.status === \"confirm\" && (\n <div role=\"alertdialog\" aria-labelledby=\"write-confirm-title\" className=\"space-y-3 rounded-xl border border-amber-500/40 bg-amber-500/10 p-4 text-sm\">\n <p id=\"write-confirm-title\" className=\"font-semibold text-amber-800 dark:text-amber-200\">\n {t(\"tryIt.confirm.title\")}\n </p>\n <p className=\"text-amber-900/80 dark:text-amber-100/80\">\n {t(\"tryIt.confirm.body\", {\n method: request.method,\n host: (() => {\n try {\n return new URL(request.url).host;\n } catch {\n return request.url;\n }\n })(),\n })}\n </p>\n <label className=\"flex items-center gap-2 text-xs text-amber-900/80 dark:text-amber-100/80\">\n <input type=\"checkbox\" checked={skipConfirm} onChange={(event) => setSkipConfirm(event.target.checked)} />\n {t(\"tryIt.confirm.skip\")}\n </label>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n onClick={confirmSend}\n autoFocus\n className=\"rounded-lg bg-amber-600 px-3 py-1.5 text-xs font-semibold text-white hover:bg-amber-700\"\n >\n {t(\"tryIt.confirm.send\")}\n </button>\n <button\n type=\"button\"\n onClick={() => setState({ status: \"idle\" })}\n className=\"rounded-lg border border-border px-3 py-1.5 text-xs font-medium hover:bg-muted\"\n >\n {t(\"tryIt.confirm.cancel\")}\n </button>\n </div>\n </div>\n )}\n {state.status === \"idle\" && (\n <p className=\"text-sm text-muted-foreground\">{t(\"tryIt.idle\")}</p>\n )}\n {state.status === \"loading\" && <p className=\"text-sm text-muted-foreground\">{t(\"tryIt.waiting\")}</p>}\n {state.status === \"error\" && (\n <div className=\"rounded-lg border border-rose-500/30 bg-rose-500/10 p-3 text-sm text-rose-700 dark:text-rose-300\">\n {t(\"tryIt.failed\", { message: state.message })}\n {mode === \"direct\" && ` — ${t(\"tryIt.corsHint\")}`}\n </div>\n )}\n {state.status === \"done\" && (\n <>\n <div className=\"flex items-baseline gap-3\">\n <span className={`font-mono text-lg font-bold ${statusTone(String(state.code))}`}>{state.code}</span>\n <span className=\"text-sm text-muted-foreground\">{state.statusText}</span>\n <span dir=\"ltr\" className=\"ms-auto text-xs text-muted-foreground\">{state.duration} ms</span>\n </div>\n <CodeBlock maxHeight=\"none\" {...prettyBody(state.body)} toolbar={<span className=\"px-2 text-xs text-white/60\">Body</span>} />\n <details className=\"text-xs\">\n <summary className=\"cursor-pointer font-semibold\">Headers ({state.headers.length})</summary>\n <dl className=\"mt-2 grid grid-cols-[auto_minmax(0,1fr)] gap-x-4 gap-y-1 font-mono\">\n {state.headers.map(([key, value]) => (\n <div key={key} className=\"contents\">\n <dt className=\"text-muted-foreground\">{key}</dt>\n <dd className=\"break-all\">{value}</dd>\n </div>\n ))}\n </dl>\n </details>\n </>\n )}\n </div>\n </div>\n </form>\n </dialog>\n );\n}\n", "// Header logo with optional dark-theme variant and label, e.g.\n// <Logo light=\"/logo.svg\" dark=\"/logo-dark.svg\" alt=\"ACME\" label=\"API Docs\" />.\n// Plain <img> elements: logos are small static files from any host.\nexport function Logo({ light, dark, alt = \"\", label }) {\n return (\n <>\n <img src={light} alt={alt} className={`h-6 w-auto max-w-32 ${dark ? \"dark:hidden\" : \"\"}`} />\n {dark && <img src={dark} alt={alt} className=\"hidden h-6 w-auto max-w-32 dark:block\" />}\n {label && <span className=\"hidden text-sm font-medium text-muted-foreground sm:inline\">{label}</span>}\n </>\n );\n}\n", "/* @oaspect/react \u2014 scoped under .oaspect; see https://github.com/oaspect/oaspect */\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n.oaspect {\n --font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --color-amber-100: oklch(96.2% 0.059 95.617);\n --color-amber-200: oklch(92.4% 0.12 95.746);\n --color-amber-300: oklch(87.9% 0.169 91.605);\n --color-amber-400: oklch(82.8% 0.189 84.429);\n --color-amber-500: oklch(76.9% 0.188 70.08);\n --color-amber-600: oklch(66.6% 0.179 58.318);\n --color-amber-700: oklch(55.5% 0.163 48.998);\n --color-amber-800: oklch(47.3% 0.137 46.201);\n --color-amber-900: oklch(41.4% 0.112 45.904);\n --color-emerald-300: oklch(84.5% 0.143 164.978);\n --color-emerald-400: oklch(76.5% 0.177 163.223);\n --color-emerald-500: oklch(69.6% 0.17 162.48);\n --color-emerald-700: oklch(50.8% 0.118 165.612);\n --color-emerald-800: oklch(43.2% 0.095 166.913);\n --color-sky-300: oklch(82.8% 0.111 230.318);\n --color-sky-400: oklch(74.6% 0.16 232.661);\n --color-sky-500: oklch(68.5% 0.169 237.323);\n --color-sky-700: oklch(50% 0.134 242.749);\n --color-sky-800: oklch(44.3% 0.11 240.79);\n --color-violet-300: oklch(81.1% 0.111 293.571);\n --color-violet-500: oklch(60.6% 0.25 292.717);\n --color-violet-800: oklch(43.2% 0.232 292.759);\n --color-rose-300: oklch(81% 0.117 11.638);\n --color-rose-400: oklch(71.2% 0.194 13.428);\n --color-rose-500: oklch(64.5% 0.246 16.439);\n --color-rose-600: oklch(58.6% 0.253 17.585);\n --color-rose-700: oklch(51.4% 0.222 16.935);\n --color-rose-800: oklch(45.5% 0.188 13.697);\n --color-neutral-900: oklch(20.5% 0 none);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-md: 28rem;\n --container-3xl: 48rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 1.875rem;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-tight: -0.025em;\n --tracking-wide: 0.025em;\n --tracking-wider: 0.05em;\n --leading-relaxed: 1.625;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --blur-sm: 8px;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;\n }\n.oaspect *, .oaspect ::after, .oaspect ::before, .oaspect ::backdrop, .oaspect ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n.oaspect {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n.oaspect hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n.oaspect abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n.oaspect h1, .oaspect h2, .oaspect h3, .oaspect h4, .oaspect h5, .oaspect h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n.oaspect a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n.oaspect b, .oaspect strong {\n font-weight: bolder;\n }\n.oaspect code, .oaspect kbd, .oaspect samp, .oaspect pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n.oaspect small {\n font-size: 80%;\n }\n.oaspect sub, .oaspect sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n.oaspect sub {\n bottom: -0.25em;\n }\n.oaspect sup {\n top: -0.5em;\n }\n.oaspect table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n.oaspect :-moz-focusring:where(:not(iframe)) {\n outline: auto;\n }\n.oaspect progress {\n vertical-align: baseline;\n }\n.oaspect summary {\n display: list-item;\n }\n.oaspect ol, .oaspect ul, .oaspect menu {\n list-style: none;\n }\n.oaspect img, .oaspect svg, .oaspect video, .oaspect canvas, .oaspect audio, .oaspect iframe, .oaspect embed, .oaspect object {\n display: block;\n vertical-align: middle;\n }\n.oaspect img, .oaspect video {\n max-width: 100%;\n height: auto;\n }\n.oaspect button, .oaspect input, .oaspect select, .oaspect optgroup, .oaspect textarea, .oaspect ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n.oaspect :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n.oaspect :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n.oaspect ::file-selector-button {\n margin-inline-end: 4px;\n }\n.oaspect ::placeholder {\n opacity: 1;\n }\n@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n .oaspect ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n.oaspect textarea {\n resize: vertical;\n }\n.oaspect ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n.oaspect ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n.oaspect ::-webkit-datetime-edit {\n display: inline-flex;\n }\n.oaspect ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n.oaspect ::-webkit-datetime-edit, .oaspect ::-webkit-datetime-edit-year-field, .oaspect ::-webkit-datetime-edit-month-field, .oaspect ::-webkit-datetime-edit-day-field, .oaspect ::-webkit-datetime-edit-hour-field, .oaspect ::-webkit-datetime-edit-minute-field, .oaspect ::-webkit-datetime-edit-second-field, .oaspect ::-webkit-datetime-edit-millisecond-field, .oaspect ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n.oaspect ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n.oaspect :-moz-ui-invalid {\n box-shadow: none;\n }\n.oaspect button, .oaspect input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), .oaspect ::file-selector-button {\n appearance: button;\n }\n.oaspect ::-webkit-inner-spin-button, .oaspect ::-webkit-outer-spin-button {\n height: auto;\n }\n.oaspect [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n.oaspect .pointer-events-none {\n pointer-events: none;\n }\n.oaspect .invisible {\n visibility: hidden;\n }\n.oaspect .visible {\n visibility: visible;\n }\n.oaspect .absolute {\n position: absolute;\n }\n.oaspect .fixed {\n position: fixed;\n }\n.oaspect .relative {\n position: relative;\n }\n.oaspect .static {\n position: static;\n }\n.oaspect .sticky {\n position: sticky;\n }\n.oaspect .inset-0 {\n inset: 0px;\n }\n.oaspect .inset-y-0 {\n inset-block: 0px;\n }\n.oaspect .start-0 {\n inset-inline-start: calc(var(--spacing) * 0);\n }\n.oaspect .start-2 {\n inset-inline-start: calc(var(--spacing) * 2);\n }\n.oaspect .end-0 {\n inset-inline-end: calc(var(--spacing) * 0);\n }\n.oaspect .end-2 {\n inset-inline-end: calc(var(--spacing) * 2);\n }\n.oaspect .top-0 {\n top: 0px;\n }\n.oaspect .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n.oaspect .top-2 {\n top: calc(var(--spacing) * 2);\n }\n.oaspect .top-14 {\n top: calc(var(--spacing) * 14);\n }\n.oaspect .z-10 {\n z-index: 10;\n }\n.oaspect .z-20 {\n z-index: 20;\n }\n.oaspect .z-30 {\n z-index: 30;\n }\n.oaspect .z-40 {\n z-index: 40;\n }\n.oaspect .z-50 {\n z-index: 50;\n }\n.oaspect .m-0 {\n margin: 0px;\n }\n.oaspect .m-auto {\n margin: auto;\n }\n.oaspect .mx-auto {\n margin-inline: auto;\n }\n.oaspect .ms-1 {\n margin-inline-start: var(--spacing);\n }\n.oaspect .ms-2 {\n margin-inline-start: calc(var(--spacing) * 2);\n }\n.oaspect .ms-7 {\n margin-inline-start: calc(var(--spacing) * 7);\n }\n.oaspect .ms-auto {\n margin-inline-start: auto;\n }\n.oaspect .mt-1 {\n margin-top: var(--spacing);\n }\n.oaspect .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n.oaspect .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n.oaspect .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n.oaspect .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n.oaspect .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n.oaspect .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n.oaspect .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n.oaspect .block {\n display: block;\n }\n.oaspect .contents {\n display: contents;\n }\n.oaspect .flex {\n display: flex;\n }\n.oaspect .grid {\n display: grid;\n }\n.oaspect .hidden {\n display: none;\n }\n.oaspect .inline {\n display: inline;\n }\n.oaspect .inline-block {\n display: inline-block;\n }\n.oaspect .inline-flex {\n display: inline-flex;\n }\n.oaspect .table {\n display: table;\n }\n.oaspect .size-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n height: calc(var(--spacing) * 2.5);\n }\n.oaspect .size-3 {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n.oaspect .size-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n.oaspect .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n.oaspect .size-7 {\n width: calc(var(--spacing) * 7);\n height: calc(var(--spacing) * 7);\n }\n.oaspect .h-6 {\n height: calc(var(--spacing) * 6);\n }\n.oaspect .h-14 {\n height: calc(var(--spacing) * 14);\n }\n.oaspect .h-\\[min\\(90dvh\\,56rem\\)\\] {\n height: min(90dvh, 56rem);\n }\n.oaspect .h-full {\n height: 100%;\n }\n.oaspect .min-h-0 {\n min-height: 0px;\n }\n.oaspect .min-h-40 {\n min-height: calc(var(--spacing) * 40);\n }\n.oaspect .min-h-\\[32rem\\] {\n min-height: 32rem;\n }\n.oaspect .min-h-dvh {\n min-height: 100dvh;\n }\n.oaspect .w-4 {\n width: calc(var(--spacing) * 4);\n }\n.oaspect .w-12 {\n width: calc(var(--spacing) * 12);\n }\n.oaspect .w-72 {\n width: calc(var(--spacing) * 72);\n }\n.oaspect .w-80 {\n width: calc(var(--spacing) * 80);\n }\n.oaspect .w-\\[min\\(96vw\\,72rem\\)\\] {\n width: min(96vw, 72rem);\n }\n.oaspect .w-auto {\n width: auto;\n }\n.oaspect .w-full {\n width: 100%;\n }\n.oaspect .max-w-3xl {\n max-width: var(--container-3xl);\n }\n.oaspect .max-w-32 {\n max-width: calc(var(--spacing) * 32);\n }\n.oaspect .max-w-\\[88rem\\] {\n max-width: 88rem;\n }\n.oaspect .max-w-full {\n max-width: 100%;\n }\n.oaspect .min-w-0 {\n min-width: 0px;\n }\n.oaspect .flex-1 {\n flex: 1;\n }\n.oaspect .shrink-0 {\n flex-shrink: 0;\n }\n.oaspect .basis-full {\n flex-basis: 100%;\n }\n.oaspect .border-collapse {\n border-collapse: collapse;\n }\n.oaspect .-translate-x-full {\n --tw-translate-x: -100%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.oaspect .translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.oaspect .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.oaspect .-translate-y-20 {\n --tw-translate-y: calc(var(--spacing) * -20);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.oaspect .rotate-90 {\n rotate: 90deg;\n }\n.oaspect .cursor-pointer {\n cursor: pointer;\n }\n.oaspect .resize-y {\n resize: vertical;\n }\n.oaspect .\\[scrollbar-width\\:none\\] {\n scrollbar-width: none;\n }\n.oaspect .list-decimal {\n list-style-type: decimal;\n }\n.oaspect .list-disc {\n list-style-type: disc;\n }\n.oaspect .list-none {\n list-style-type: none;\n }\n.oaspect .grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n.oaspect .grid-cols-\\[auto_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: auto minmax(0,1fr);\n }\n.oaspect .grid-cols-\\[minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: minmax(0,1fr);\n }\n.oaspect .grid-cols-\\[minmax\\(0\\,8rem\\)_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: minmax(0,8rem) minmax(0,1fr);\n }\n.oaspect .grid-cols-\\[minmax\\(0\\,11rem\\)_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: minmax(0,11rem) minmax(0,1fr);\n }\n.oaspect .flex-col {\n flex-direction: column;\n }\n.oaspect .flex-wrap {\n flex-wrap: wrap;\n }\n.oaspect .items-baseline {\n align-items: baseline;\n }\n.oaspect .items-center {\n align-items: center;\n }\n.oaspect .items-start {\n align-items: flex-start;\n }\n.oaspect .justify-between {\n justify-content: space-between;\n }\n.oaspect .justify-center {\n justify-content: center;\n }\n.oaspect .gap-1 {\n gap: var(--spacing);\n }\n.oaspect .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n.oaspect .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n.oaspect .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n.oaspect .gap-10 {\n gap: calc(var(--spacing) * 10);\n }\n.oaspect :where(.space-y-0\\.5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n.oaspect :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));\n margin-block-end: calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)));\n }\n.oaspect :where(.space-y-1\\.5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n.oaspect :where(.space-y-2 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n.oaspect :where(.space-y-3 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n.oaspect :where(.space-y-4 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n.oaspect :where(.space-y-6 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n.oaspect .gap-x-2 {\n column-gap: calc(var(--spacing) * 2);\n }\n.oaspect .gap-x-3 {\n column-gap: calc(var(--spacing) * 3);\n }\n.oaspect .gap-x-4 {\n column-gap: calc(var(--spacing) * 4);\n }\n.oaspect .gap-y-0\\.5 {\n row-gap: calc(var(--spacing) * 0.5);\n }\n.oaspect .gap-y-1 {\n row-gap: var(--spacing);\n }\n.oaspect .self-center {\n align-self: center;\n }\n.oaspect .self-start {\n align-self: flex-start;\n }\n.oaspect .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n.oaspect .overflow-auto {\n overflow: auto;\n }\n.oaspect .overflow-hidden {\n overflow: hidden;\n }\n.oaspect .overflow-x-auto {\n overflow-x: auto;\n }\n.oaspect .overflow-y-auto {\n overflow-y: auto;\n }\n.oaspect .rounded {\n border-radius: 0.25rem;\n }\n.oaspect .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n.oaspect .rounded-lg {\n border-radius: var(--radius-lg);\n }\n.oaspect .rounded-md {\n border-radius: var(--radius-md);\n }\n.oaspect .rounded-xl {\n border-radius: var(--radius-xl);\n }\n.oaspect .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n.oaspect .border-s {\n border-inline-start-style: var(--tw-border-style);\n border-inline-start-width: 1px;\n }\n.oaspect .border-s-2 {\n border-inline-start-style: var(--tw-border-style);\n border-inline-start-width: 2px;\n }\n.oaspect .border-s-4 {\n border-inline-start-style: var(--tw-border-style);\n border-inline-start-width: 4px;\n }\n.oaspect .border-e {\n border-inline-end-style: var(--tw-border-style);\n border-inline-end-width: 1px;\n }\n.oaspect .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n.oaspect .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n.oaspect .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n.oaspect .border-amber-500\\/30 {\n border-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-amber-500) 30%, transparent);\n }\n }\n.oaspect .border-amber-500\\/40 {\n border-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-amber-500) 40%, transparent);\n }\n }\n.oaspect .border-border {\n border-color: var(--oaspect-border);\n }\n.oaspect .border-primary {\n border-color: var(--oaspect-primary);\n }\n.oaspect .border-rose-500\\/30 {\n border-color: color-mix(in srgb, oklch(64.5% 0.246 16.439) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-rose-500) 30%, transparent);\n }\n }\n.oaspect .border-white\\/10 {\n border-color: color-mix(in srgb, #fff 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n.oaspect .\\!bg-amber-500\\/15 {\n background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 15%, transparent) !important;\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-amber-500) 15%, transparent) !important;\n }\n }\n.oaspect .bg-amber-500\\/10 {\n background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-amber-500) 10%, transparent);\n }\n }\n.oaspect .bg-amber-500\\/15 {\n background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 15%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-amber-500) 15%, transparent);\n }\n }\n.oaspect .bg-amber-600 {\n background-color: var(--color-amber-600);\n }\n.oaspect .bg-background {\n background-color: var(--oaspect-background);\n }\n.oaspect .bg-background\\/85 {\n background-color: var(--oaspect-background);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--oaspect-background) 85%, transparent);\n }\n }\n.oaspect .bg-black\\/30 {\n background-color: color-mix(in srgb, #000 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 30%, transparent);\n }\n }\n.oaspect .bg-card {\n background-color: var(--oaspect-card);\n }\n.oaspect .bg-code {\n background-color: var(--oaspect-code);\n }\n.oaspect .bg-emerald-500\\/15 {\n background-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 15%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-emerald-500) 15%, transparent);\n }\n }\n.oaspect .bg-foreground {\n background-color: var(--oaspect-foreground);\n }\n.oaspect .bg-muted {\n background-color: var(--oaspect-muted);\n }\n.oaspect .bg-muted\\/60 {\n background-color: var(--oaspect-muted);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--oaspect-muted) 60%, transparent);\n }\n }\n.oaspect .bg-primary {\n background-color: var(--oaspect-primary);\n }\n.oaspect .bg-primary\\/10 {\n background-color: var(--oaspect-primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--oaspect-primary) 10%, transparent);\n }\n }\n.oaspect .bg-rose-500\\/10 {\n background-color: color-mix(in srgb, oklch(64.5% 0.246 16.439) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-rose-500) 10%, transparent);\n }\n }\n.oaspect .bg-rose-500\\/15 {\n background-color: color-mix(in srgb, oklch(64.5% 0.246 16.439) 15%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-rose-500) 15%, transparent);\n }\n }\n.oaspect .bg-sky-500\\/15 {\n background-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 15%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-sky-500) 15%, transparent);\n }\n }\n.oaspect .bg-transparent {\n background-color: transparent;\n }\n.oaspect .bg-violet-500\\/15 {\n background-color: color-mix(in srgb, oklch(60.6% 0.25 292.717) 15%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-violet-500) 15%, transparent);\n }\n }\n.oaspect .bg-white\\/5 {\n background-color: color-mix(in srgb, #fff 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 5%, transparent);\n }\n }\n.oaspect .bg-white\\/15 {\n background-color: color-mix(in srgb, #fff 15%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 15%, transparent);\n }\n }\n.oaspect .p-0 {\n padding: 0px;\n }\n.oaspect .p-0\\.5 {\n padding: calc(var(--spacing) * 0.5);\n }\n.oaspect .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n.oaspect .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n.oaspect .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n.oaspect .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n.oaspect .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n.oaspect .p-10 {\n padding: calc(var(--spacing) * 10);\n }\n.oaspect .px-1 {\n padding-inline: var(--spacing);\n }\n.oaspect .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n.oaspect .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n.oaspect .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n.oaspect .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n.oaspect .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n.oaspect .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n.oaspect .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n.oaspect .py-1 {\n padding-block: var(--spacing);\n }\n.oaspect .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n.oaspect .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n.oaspect .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n.oaspect .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n.oaspect .py-14 {\n padding-block: calc(var(--spacing) * 14);\n }\n.oaspect .ps-1 {\n padding-inline-start: var(--spacing);\n }\n.oaspect .ps-2 {\n padding-inline-start: calc(var(--spacing) * 2);\n }\n.oaspect .ps-3 {\n padding-inline-start: calc(var(--spacing) * 3);\n }\n.oaspect .ps-4 {\n padding-inline-start: calc(var(--spacing) * 4);\n }\n.oaspect .ps-5 {\n padding-inline-start: calc(var(--spacing) * 5);\n }\n.oaspect .pe-7 {\n padding-inline-end: calc(var(--spacing) * 7);\n }\n.oaspect .pe-12 {\n padding-inline-end: calc(var(--spacing) * 12);\n }\n.oaspect .pt-1 {\n padding-top: var(--spacing);\n }\n.oaspect .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n.oaspect .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n.oaspect .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n.oaspect .pt-10 {\n padding-top: calc(var(--spacing) * 10);\n }\n.oaspect .pt-14 {\n padding-top: calc(var(--spacing) * 14);\n }\n.oaspect .pb-1 {\n padding-bottom: var(--spacing);\n }\n.oaspect .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n.oaspect .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n.oaspect .pb-14 {\n padding-bottom: calc(var(--spacing) * 14);\n }\n.oaspect .text-center {\n text-align: center;\n }\n.oaspect .text-start {\n text-align: start;\n }\n.oaspect .align-top {\n vertical-align: top;\n }\n.oaspect .font-mono {\n font-family: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;\n }\n.oaspect .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n.oaspect .text-3xl {\n font-size: var(--text-3xl);\n line-height: var(--tw-leading, var(--text-3xl--line-height));\n }\n.oaspect .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n.oaspect .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n.oaspect .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n.oaspect .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n.oaspect .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n.oaspect .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n.oaspect .text-\\[0\\.85em\\] {\n font-size: 0.85em;\n }\n.oaspect .text-\\[10px\\] {\n font-size: 10px;\n }\n.oaspect .text-\\[11px\\] {\n font-size: 11px;\n }\n.oaspect .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n.oaspect .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n.oaspect .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n.oaspect .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n.oaspect .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n.oaspect .tracking-tight {\n --tw-tracking: var(--tracking-tight);\n letter-spacing: var(--tracking-tight);\n }\n.oaspect .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n.oaspect .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n.oaspect .\\[overflow-wrap\\:anywhere\\] {\n overflow-wrap: anywhere;\n }\n.oaspect .break-words {\n overflow-wrap: break-word;\n }\n.oaspect .break-all {\n word-break: break-all;\n }\n.oaspect .whitespace-nowrap {\n white-space: nowrap;\n }\n.oaspect .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n.oaspect .\\!text-amber-700 {\n color: var(--color-amber-700) !important;\n }\n.oaspect .\\!text-emerald-500 {\n color: var(--color-emerald-500) !important;\n }\n.oaspect .text-amber-400 {\n color: var(--color-amber-400);\n }\n.oaspect .text-amber-700 {\n color: var(--color-amber-700);\n }\n.oaspect .text-amber-800 {\n color: var(--color-amber-800);\n }\n.oaspect .text-amber-900\\/80 {\n color: color-mix(in srgb, oklch(41.4% 0.112 45.904) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-amber-900) 80%, transparent);\n }\n }\n.oaspect .text-background {\n color: var(--oaspect-background);\n }\n.oaspect .text-code-foreground {\n color: var(--oaspect-code-foreground);\n }\n.oaspect .text-emerald-400 {\n color: var(--color-emerald-400);\n }\n.oaspect .text-emerald-700 {\n color: var(--color-emerald-700);\n }\n.oaspect .text-emerald-800 {\n color: var(--color-emerald-800);\n }\n.oaspect .text-foreground {\n color: var(--oaspect-foreground);\n }\n.oaspect .text-muted-foreground {\n color: var(--oaspect-muted-foreground);\n }\n.oaspect .text-primary {\n color: var(--oaspect-primary);\n }\n.oaspect .text-primary-foreground {\n color: var(--oaspect-primary-foreground);\n }\n.oaspect .text-rose-400 {\n color: var(--color-rose-400);\n }\n.oaspect .text-rose-600 {\n color: var(--color-rose-600);\n }\n.oaspect .text-rose-700 {\n color: var(--color-rose-700);\n }\n.oaspect .text-rose-800 {\n color: var(--color-rose-800);\n }\n.oaspect .text-sky-400 {\n color: var(--color-sky-400);\n }\n.oaspect .text-sky-700 {\n color: var(--color-sky-700);\n }\n.oaspect .text-sky-800 {\n color: var(--color-sky-800);\n }\n.oaspect .text-transparent {\n color: transparent;\n }\n.oaspect .text-violet-800 {\n color: var(--color-violet-800);\n }\n.oaspect .text-white {\n color: var(--color-white);\n }\n.oaspect .text-white\\/50 {\n color: color-mix(in srgb, #fff 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-white) 50%, transparent);\n }\n }\n.oaspect .text-white\\/55 {\n color: color-mix(in srgb, #fff 55%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-white) 55%, transparent);\n }\n }\n.oaspect .text-white\\/60 {\n color: color-mix(in srgb, #fff 60%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-white) 60%, transparent);\n }\n }\n.oaspect .uppercase {\n text-transform: uppercase;\n }\n.oaspect .italic {\n font-style: italic;\n }\n.oaspect .line-through {\n text-decoration-line: line-through;\n }\n.oaspect .underline {\n text-decoration-line: underline;\n }\n.oaspect .underline-offset-2 {\n text-underline-offset: 2px;\n }\n.oaspect .caret-white {\n caret-color: var(--color-white);\n }\n.oaspect .accent-primary {\n accent-color: var(--oaspect-primary);\n }\n.oaspect .opacity-0 {\n opacity: 0%;\n }\n.oaspect .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n.oaspect .backdrop-blur {\n --tw-backdrop-blur: blur(8px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n.oaspect .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.oaspect .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n.oaspect .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n.oaspect .\\[unicode-bidi\\:plaintext\\] {\n unicode-bidi: plaintext;\n }\n.oaspect .marker\\:text-muted-foreground ::marker {\n color: var(--oaspect-muted-foreground);\n }\n.oaspect .marker\\:text-muted-foreground::marker {\n color: var(--oaspect-muted-foreground);\n }\n.oaspect .marker\\:text-muted-foreground ::-webkit-details-marker {\n color: var(--oaspect-muted-foreground);\n }\n.oaspect .marker\\:text-muted-foreground::-webkit-details-marker {\n color: var(--oaspect-muted-foreground);\n }\n.oaspect .selection\\:bg-white\\/25 ::selection {\n background-color: color-mix(in srgb, #fff 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 25%, transparent);\n }\n }\n.oaspect .selection\\:bg-white\\/25::selection {\n background-color: color-mix(in srgb, #fff 25%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 25%, transparent);\n }\n }\n.oaspect .file\\:me-2::file-selector-button {\n margin-inline-end: calc(var(--spacing) * 2);\n }\n.oaspect .file\\:rounded-md::file-selector-button {\n border-radius: var(--radius-md);\n }\n.oaspect .file\\:border::file-selector-button {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n.oaspect .file\\:border-border::file-selector-button {\n border-color: var(--oaspect-border);\n }\n.oaspect .file\\:bg-background::file-selector-button {\n background-color: var(--oaspect-background);\n }\n.oaspect .file\\:px-2::file-selector-button {\n padding-inline: calc(var(--spacing) * 2);\n }\n.oaspect .file\\:py-1::file-selector-button {\n padding-block: var(--spacing);\n }\n.oaspect .file\\:text-xs::file-selector-button {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n.oaspect .backdrop\\:bg-black\\/50::backdrop {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n.oaspect .backdrop\\:backdrop-blur-sm::backdrop {\n --tw-backdrop-blur: blur(var(--blur-sm));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n.oaspect .first\\:border-t-0:first-child {\n border-top-style: var(--tw-border-style);\n border-top-width: 0px;\n }\n.oaspect .last\\:border-b-0:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0px;\n }\n.oaspect .first-of-type\\:border-t-0:first-of-type {\n border-top-style: var(--tw-border-style);\n border-top-width: 0px;\n }\n.oaspect .first-of-type\\:pt-0:first-of-type {\n padding-top: 0px;\n }\n.oaspect .focus-within\\:border-primary:focus-within {\n border-color: var(--oaspect-primary);\n }\n@media (hover: hover) {\n .oaspect .hover\\:border-primary:hover {\n border-color: var(--oaspect-primary);\n }\n .oaspect .hover\\:bg-amber-700:hover {\n background-color: var(--color-amber-700);\n }\n .oaspect .hover\\:bg-muted:hover {\n background-color: var(--oaspect-muted);\n }\n .oaspect .hover\\:bg-white\\/10:hover {\n background-color: color-mix(in srgb, #fff 10%, transparent);\n }\n @supports (color: color-mix(in lab, red, red)) {\n .oaspect .hover\\:bg-white\\/10:hover {\n background-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n .oaspect .hover\\:text-foreground:hover {\n color: var(--oaspect-foreground);\n }\n .oaspect .hover\\:text-primary:hover {\n color: var(--oaspect-primary);\n }\n .oaspect .hover\\:text-white:hover {\n color: var(--color-white);\n }\n .oaspect .hover\\:opacity-90:hover {\n opacity: 90%;\n }\n }\n.oaspect .focus\\:translate-y-0:focus {\n --tw-translate-y: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.oaspect .focus\\:border-primary:focus {\n border-color: var(--oaspect-primary);\n }\n.oaspect .focus\\:border-white\\/30:focus {\n border-color: color-mix(in srgb, #fff 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-white) 30%, transparent);\n }\n }\n@media (hover: hover) {\n .oaspect .enabled\\:hover\\:text-foreground:enabled:hover {\n color: var(--oaspect-foreground);\n }\n .oaspect .enabled\\:hover\\:text-primary:enabled:hover {\n color: var(--oaspect-primary);\n }\n }\n.oaspect .disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n }\n.oaspect .disabled\\:opacity-40:disabled {\n opacity: 40%;\n }\n.oaspect .disabled\\:opacity-60:disabled {\n opacity: 60%;\n }\n@media (width >= 40rem) {\n .oaspect .sm\\:inline {\n display: inline;\n }\n .oaspect .sm\\:max-w-md {\n max-width: var(--container-md);\n }\n .oaspect .sm\\:px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n }\n@media (width >= 48rem) {\n .oaspect .md\\:inline {\n display: inline;\n }\n }\n@media (width >= 64rem) {\n .oaspect .lg\\:sticky {\n position: sticky;\n }\n .oaspect .lg\\:hidden {\n display: none;\n }\n .oaspect .lg\\:h-\\[calc\\(100dvh-3\\.5rem\\)\\] {\n height: calc(100dvh - 3.5rem);\n }\n .oaspect .lg\\:translate-x-0 {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .oaspect .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .oaspect .lg\\:border-e {\n border-inline-end-style: var(--tw-border-style);\n border-inline-end-width: 1px;\n }\n }\n@media (width >= 80rem) {\n .oaspect .xl\\:sticky {\n position: sticky;\n }\n .oaspect .xl\\:top-20 {\n top: calc(var(--spacing) * 20);\n }\n .oaspect .xl\\:grid-cols-\\[minmax\\(0\\,1fr\\)_minmax\\(0\\,28rem\\)\\] {\n grid-template-columns: minmax(0,1fr) minmax(0,28rem);\n }\n .oaspect .xl\\:self-start {\n align-self: flex-start;\n }\n .oaspect .xl\\:px-12 {\n padding-inline: calc(var(--spacing) * 12);\n }\n }\n.oaspect .rtl\\:translate-x-full:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-translate-x: 100%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n.oaspect .rtl\\:-scale-x-100:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-scale-x: calc(100% * -1);\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n@media (width >= 64rem) {\n .oaspect .lg\\:rtl\\:translate-x-0:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-translate-x: 0px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n.oaspect .dark\\:block:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n display: block;\n }\n.oaspect .dark\\:hidden:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n display: none;\n }\n.oaspect .dark\\:\\!text-amber-300:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-amber-300) !important;\n }\n.oaspect .dark\\:text-amber-100\\/80:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: color-mix(in srgb, oklch(96.2% 0.059 95.617) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-amber-100) 80%, transparent);\n }\n }\n.oaspect .dark\\:text-amber-200:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-amber-200);\n }\n.oaspect .dark\\:text-amber-300:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-amber-300);\n }\n.oaspect .dark\\:text-amber-400:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-amber-400);\n }\n.oaspect .dark\\:text-emerald-300:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-emerald-300);\n }\n.oaspect .dark\\:text-emerald-400:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-emerald-400);\n }\n.oaspect .dark\\:text-rose-300:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-rose-300);\n }\n.oaspect .dark\\:text-rose-400:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-rose-400);\n }\n.oaspect .dark\\:text-sky-300:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-sky-300);\n }\n.oaspect .dark\\:text-sky-400:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-sky-400);\n }\n.oaspect .dark\\:text-violet-300:where([data-theme=\"dark\"], [data-theme=\"dark\"] *) {\n color: var(--color-violet-300);\n }\n.oaspect .\\[\\&_code\\]\\:whitespace-nowrap code {\n white-space: nowrap;\n }\n.oaspect .\\[\\&\\:\\:-webkit-details-marker\\]\\:hidden::-webkit-details-marker {\n display: none;\n }\n.oaspect .\\[\\&\\>option\\]\\:bg-neutral-900 > option {\n background-color: var(--color-neutral-900);\n }\n.oaspect {\n --oaspect-background: oklch(1 0 0);\n --oaspect-foreground: oklch(0.141 0.005 285.823);\n --oaspect-card: oklch(0.985 0 0);\n --oaspect-muted: oklch(0.967 0.001 286.375);\n --oaspect-border: oklch(0.92 0.004 286.32);\n --oaspect-primary: oklch(0.48 0.16 142);\n --oaspect-primary-foreground: oklch(0.99 0.01 158);\n --oaspect-muted-foreground: oklch(0.5 0.016 285.938);\n --oaspect-code: oklch(0.21 0.006 285.885);\n --oaspect-code-foreground: oklch(0.92 0.004 286.32);\n --oaspect-syntax-key: oklch(0.8 0.1 250);\n --oaspect-syntax-string: oklch(0.82 0.13 142);\n --oaspect-syntax-number: oklch(0.8 0.13 60);\n --oaspect-syntax-literal: oklch(0.75 0.14 330);\n --oaspect-syntax-keyword: oklch(0.74 0.16 300);\n --oaspect-syntax-function: oklch(0.85 0.12 90);\n --oaspect-syntax-variable: oklch(0.78 0.14 25);\n --oaspect-syntax-attr: oklch(0.8 0.1 200);\n --oaspect-syntax-comment: oklch(0.6 0.02 286);\n --oaspect-syntax-type: oklch(0.8 0.11 170);\n color-scheme: light;\n font-family: system-ui, -apple-system, \"Segoe UI\", sans-serif;\n}\n.oaspect[data-theme=\"dark\"], [data-theme=\"dark\"] .oaspect:not([data-theme=\"light\"]) {\n --oaspect-background: oklch(0.141 0.005 285.823);\n --oaspect-foreground: oklch(0.985 0 0);\n --oaspect-card: oklch(0.18 0.006 285.885);\n --oaspect-muted: oklch(0.21 0.006 285.885);\n --oaspect-border: oklch(1 0 0 / 12%);\n --oaspect-primary: oklch(0.72 0.2 142);\n --oaspect-primary-foreground: oklch(0.141 0.005 285.823);\n --oaspect-muted-foreground: oklch(0.705 0.015 286.067);\n --oaspect-code: oklch(0.11 0.004 285.823);\n --oaspect-code-foreground: oklch(0.92 0.004 286.32);\n color-scheme: dark;\n}\n.oaspect .syntax-key {\n color: var(--oaspect-syntax-key);\n}\n.oaspect .syntax-string {\n color: var(--oaspect-syntax-string);\n}\n.oaspect .syntax-number {\n color: var(--oaspect-syntax-number);\n}\n.oaspect .syntax-literal, .oaspect .syntax-constant {\n color: var(--oaspect-syntax-literal);\n}\n.oaspect .syntax-keyword {\n color: var(--oaspect-syntax-keyword);\n}\n.oaspect .syntax-function {\n color: var(--oaspect-syntax-function);\n}\n.oaspect .syntax-variable {\n color: var(--oaspect-syntax-variable);\n}\n.oaspect .syntax-attr {\n color: var(--oaspect-syntax-attr);\n}\n.oaspect .syntax-type {\n color: var(--oaspect-syntax-type);\n}\n.oaspect .syntax-comment {\n color: var(--oaspect-syntax-comment);\n font-style: italic;\n}\n.oaspect :where(h1, h2, h3, h4, h5, h6, p, a, span, li, ol, ul, dl, dt, dd, label, small, strong, em, code, pre, kbd, blockquote, table, th, td, summary, legend, del) {\n color: inherit;\n font-style: inherit;\n letter-spacing: inherit;\n text-transform: inherit;\n text-shadow: inherit;\n text-indent: 0;\n}\n.oaspect :where(em) {\n font-style: italic;\n}\n.oaspect :focus-visible {\n outline: 2px solid var(--oaspect-primary);\n outline-offset: 2px;\n}\n.oaspect label:has(> select.opacity-0:focus-visible) {\n outline: 2px solid var(--oaspect-primary);\n outline-offset: 2px;\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n .oaspect *, .oaspect ::before, .oaspect ::after, .oaspect ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n }\n }\n", "import { Logo } from \"@oaspect/react\";\n\n// Plain-object config \u2192 <ApiReference> props. `logo` may be a URL or\n// { light, dark, alt, label }.\nexport function toProps(config = {}) {\n const { logo, ...props } = config;\n if (typeof logo === \"string\") props.logo = <Logo light={logo} alt={config.title ?? \"\"} />;\n else if (logo && typeof logo === \"object\") props.logo = <Logo {...logo} />;\n return props;\n}\n"],
5
+ "mappings": "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,EACAK,GAAwClE,EAAc7C,CAAY,EACpE4G,EAAuB,YAAc,EACnCJ,GACE3D,EACA7C,EACAyG,EACAC,CACF,GACEE,EAAuB,aAAe,EACxCI,GACEnE,EACA7C,EACAyG,EACAC,GACO1G,EAAa,aAAe,SAAnC,GAA6C,EAC/C,GACND,EAAQ,MAAQsG,GAAmCQ,EAAI7G,CAAY,EACnE,MACF,IAAK,IACHwG,GACE3D,EACA7C,EACAyG,EACAC,CACF,EACA3G,EAAQ,MACNwG,GAA8BvG,EAAa,UAAWA,CAAY,EACpE,MACF,QACEwG,GACE3D,EACA7C,EACAyG,EACAC,CACF,CACJ,CACF,CACA,SAASM,GACPd,EACAxB,EACAuC,EACAC,EACAf,EACA,CAIA,IAHAA,EACEA,KACQzB,EAAY,aAAe,SAAlC,GAA4C,IAC1CA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAI7B,EAAeqD,EACjBlG,EAAe0E,EACf+B,EAAiBQ,EACjBP,EAAuBQ,EACvBnH,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAK,CACxB,IAAK,GACL,IAAK,IACL,IAAK,IACHgH,GACEnE,EACA7C,EACAyG,EACAC,EACAP,CACF,EACArG,GAA0B,EAAGE,CAAY,EACzC,MACF,IAAK,IACH,MACF,IAAK,IACH,IAAIjf,EAAWif,EAAa,UACnBA,EAAa,gBAAtB,KACIjf,EAAS,YAAc,EACrBimB,GACEnE,EACA7C,EACAyG,EACAC,EACAP,CACF,EACAY,GACElE,EACA7C,CACF,GACAjf,EAAS,aAAe,EAC1BimB,GACEnE,EACA7C,EACAyG,EACAC,EACAP,CACF,GACJA,GACEpG,EAAQ,MACRsG,GACErG,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACHgH,GACEnE,EACA7C,EACAyG,EACAC,EACAP,CACF,EACAA,GACEpG,EAAQ,MACRwG,GAA8BvG,EAAa,UAAWA,CAAY,EACpE,MACF,QACEgH,GACEnE,EACA7C,EACAyG,EACAC,EACAP,CACF,CACJ,CACAzB,EAAcA,EAAY,OAC5B,CACF,CACA,SAASqC,GACPb,EACAxB,EACA,CACA,GAAIA,EAAY,aAAe,MAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAI7B,EAAeqD,EACjBlG,EAAe0E,EACf3E,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAK,CACxB,IAAK,IACH+G,GAAwClE,EAAc7C,CAAY,EAClED,EAAQ,MACNsG,GACErG,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACH+G,GAAwClE,EAAc7C,CAAY,EAClED,EAAQ,MACNwG,GAA8BvG,EAAa,UAAWA,CAAY,EACpE,MACF,QACE+G,GAAwClE,EAAc7C,CAAY,CACtE,CACA0E,EAAcA,EAAY,OAC5B,CACJ,CACA,IAAIyC,GAAsB,KAC1B,SAASC,GACP1C,EACA+B,EACAY,EACA,CACA,GAAI3C,EAAY,aAAeyC,GAC7B,IAAKzC,EAAcA,EAAY,MAAgBA,IAAT,MACpC4C,GACE5C,EACA+B,EACAY,CACF,EACG3C,EAAcA,EAAY,OACnC,CACA,SAAS4C,GACPnlC,EACAskC,EACAY,EACA,CACA,OAAQllC,EAAM,IAAK,CACjB,IAAK,IACHilC,GACEjlC,EACAskC,EACAY,CACF,EACAllC,EAAM,MAAQglC,IACHhlC,EAAM,gBAAf,MACAolC,GACEF,EACAzC,GACAziC,EAAM,cACNA,EAAM,aACR,EACF,MACF,IAAK,GACHilC,GACEjlC,EACAskC,EACAY,CACF,EACA,MACF,IAAK,GACL,IAAK,GACH,IAAIG,EAAwB5C,GAC5BA,GAAuBS,GAAiBljC,EAAM,UAAU,aAAa,EACrEilC,GACEjlC,EACAskC,EACAY,CACF,EACAzC,GAAuB4C,EACvB,MACF,IAAK,IACMrlC,EAAM,gBAAf,OACIqlC,EAAwBrlC,EAAM,UACvBqlC,IAAT,MACSA,EAAsB,gBAA/B,MACMA,EAAwBL,GACzBA,GAAsB,SACvBC,GACEjlC,EACAskC,EACAY,CACF,EACCF,GAAsBK,GACvBJ,GACEjlC,EACAskC,EACAY,CACF,GACN,MACF,QACED,GACEjlC,EACAskC,EACAY,CACF,CACJ,CACF,CACA,SAASI,GAAwB/C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/mC,CACR,CACAknC,EAAsBhoB,GACtBA,GAAsC6nB,EAC7BG,IAAT,OACYhoB,KAAT,KACIA,GAAsCgoB,EACvChoB,GAAoC,KAAK,MACvCA,GACAgoB,CACF,EACR,CACAH,EAAazjC,CACf,CAEA,GADA4jC,EAAsB,GACZH,IAAN,EAAkB,QACxB,CACF,CACA,GAAUA,IAAN,EAAkB,CACpBN,GAAkB5E,EAAe,CAAC,EAClC6E,GAAkB7E,EAAe56B,EAAO,EAAG,EAAE,EAC7C,KACF,CACAjH,EAAG,CAGD,OAFA8mC,EAAkBjF,EAClBqF,EAAsBH,EACdG,EAAqB,CAC3B,IAAK,GACL,IAAK,GACH,MAAM,MAAMloC,EAAuB,GAAG,CAAC,EACzC,IAAK,GACH,IAAKiI,EAAQ,WAAaA,EAAO,MACnC,IAAK,GACHy/B,GACEI,EACA7/B,EACAuyB,GACA,CAACmM,EACH,EACA,MAAM3lC,EACR,IAAK,GACHkf,GAAsC,KACtC,MACF,IAAK,GACL,IAAK,GACH,MACF,QACE,MAAM,MAAMlgB,EAAuB,GAAG,CAAC,CAC3C,CACA,IACGiI,EAAQ,YAAcA,IACrB8/B,EAAapE,GAA+B,IAAM/8B,GAAI,EACxD,GAAKmhC,GACL,CAOA,GANAL,GACEI,EACA7/B,EACAuyB,GACA,CAACmM,EACH,EACUx+B,GAAa2/B,EAAiB,EAAG,EAAE,IAAzC,EAA4C,MAAM9mC,EACtDqmC,GAAsBp/B,EACtB6/B,EAAgB,cAAgBO,GAC9BC,GAAoB,KAClB,KACAR,EACAD,EACA3nB,GACA+mB,GACAD,GACA/+B,EACAuyB,GACAsM,GACA/J,GACA4J,GACAuB,EACA,YACA,GACA,CACF,EACAH,CACF,EACA,MAAM/mC,CACR,CACAsnC,GACER,EACAD,EACA3nB,GACA+mB,GACAD,GACA/+B,EACAuyB,GACAsM,GACA/J,GACA4J,GACAuB,EACA,KACA,GACA,CACF,CACF,CACF,CACA,KACF,OAAS,IACTP,GAAsB9E,CAAa,CACrC,CACA,SAASyF,GACPlgC,EACAg2B,EACAmK,EACAC,EACAC,EACAxgC,EACAyB,EAC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,UACL,IAAK,QACL,IAAK,WACL,IAAK,0BACL,IAAK,wBACL,IAAK,iBACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,aACL,IAAK,OACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,YACHtR,GAAwB,OAAOA,GAAtB,YAA4C,OAAOA,GAApB,SACpC27B,EAAW,aAAarqB,EAAK,EAAE,EAC/BqqB,EAAW,gBAAgBrqB,CAAG,EAClC,MACF,IAAK,UACL,IAAK,WACItR,IAAP,GACI27B,EAAW,aAAarqB,EAAK,EAAE,EACxBtR,IAAP,IACUA,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,SACA27B,EAAW,aAAarqB,EAAKtR,CAAK,EAClC27B,EAAW,gBAAgBrqB,CAAG,EACpC,MACF,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,OACKtR,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACA,CAAC,MAAMA,CAAK,GACZ,GAAKA,EACD27B,EAAW,aAAarqB,EAAKtR,CAAK,EAClC27B,EAAW,gBAAgBrqB,CAAG,EAClC,MACF,IAAK,UACL,IAAK,QACKtR,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACA,MAAMA,CAAK,EACP27B,EAAW,gBAAgBrqB,CAAG,EAC9BqqB,EAAW,aAAarqB,EAAKtR,CAAK,EACtC,MACF,IAAK,UACH0b,EAA0B,eAAgBigB,CAAU,EACpDjgB,EAA0B,SAAUigB,CAAU,EAC9CjyB,GAAqBiyB,EAAY,UAAW37B,CAAK,EACjD,MACF,IAAK,eACH6J,GACE8xB,EACA,+BACA,gBACA37B,CACF,EACA,MACF,IAAK,eACH6J,GACE8xB,EACA,+BACA,gBACA37B,CACF,EACA,MACF,IAAK,YACH6J,GACE8xB,EACA,+BACA,aACA37B,CACF,EACA,MACF,IAAK,YACH6J,GACE8xB,EACA,+BACA,aACA37B,CACF,EACA,MACF,IAAK,aACH6J,GACE8xB,EACA,+BACA,cACA37B,CACF,EACA,MACF,IAAK,YACH6J,GACE8xB,EACA,+BACA,aACA37B,CACF,EACA,MACF,IAAK,UACH6J,GACE8xB,EACA,uCACA,WACA37B,CACF,EACA,MACF,IAAK,UACH6J,GACE8xB,EACA,uCACA,WACA37B,CACF,EACA,MACF,IAAK,WACH6J,GACE8xB,EACA,uCACA,YACA37B,CACF,EACA,MACF,IAAK,KACH0J,GAAqBiyB,EAAY,KAAM37B,CAAK,EAC5C,MACF,IAAK,YACL,IAAK,cACH,MACF,SAEI,EAAE,EAAIsR,EAAI,SACDA,EAAI,CAAC,IAAb,KAA0BA,EAAI,CAAC,IAAb,KACVA,EAAI,CAAC,IAAb,KAA0BA,EAAI,CAAC,IAAb,OAElBA,EAAMvE,GAAQ,IAAIuE,CAAG,GAAKA,EACzB5H,GAAqBiyB,EAAYrqB,EAAKtR,CAAK,EACnD,CACF,CACA,SAAS6uC,GAAuBlT,EAAY99B,EAAKyT,EAAKtR,EAAO2N,EAAO4iB,EAAW,CAC7E,OAAQjf,EAAK,CACX,IAAK,QACH9E,GAAkBmvB,EAAY37B,EAAOuwB,CAAS,EAC9C,MACF,IAAK,0BACH,GAAYvwB,GAAR,KAAe,CACjB,GAAiB,OAAOA,GAApB,UAA6B,EAAE,WAAYA,GAC7C,MAAM,MAAM1D,EAAuB,EAAE,CAAC,EAExC,GADAgV,EAAMtR,EAAM,OACAsR,GAAR,KAAa,CACf,GAAY3D,EAAM,UAAd,KAAwB,MAAM,MAAMrR,EAAuB,EAAE,CAAC,EAClEq/B,EAAW,UAAYrqB,CACzB,CACF,CACA,MACF,IAAK,WACU,OAAOtR,GAApB,SACIgM,GAAe2vB,EAAY37B,CAAK,GAClB,OAAOA,GAApB,UAA0C,OAAOA,GAApB,WAC9BgM,GAAe2vB,EAAY,GAAK37B,CAAK,EACzC,MACF,IAAK,WACKA,GAAR,MAAiB0b,EAA0B,SAAUigB,CAAU,EAC/D,MACF,IAAK,cACK37B,GAAR,MAAiB0b,EAA0B,YAAaigB,CAAU,EAClE,MACF,IAAK,UACK37B,GAAR,OAAkB27B,EAAW,QAAUzuB,IACvC,MACF,IAAK,iCACL,IAAK,2BACL,IAAK,YACL,IAAK,MACH,MACF,IAAK,YACL,IAAK,cACH,MACF,QACE,GAAI,CAAClE,GAA6B,eAAesI,CAAG,EAClDhU,EAAG,CACD,GACUgU,EAAI,CAAC,IAAb,KACQA,EAAI,CAAC,IAAb,MACE3D,EAAQ2D,EAAI,SAAS,SAAS,EAC/BzT,EAAMyT,EAAI,MAAM,EAAG3D,EAAQ2D,EAAI,OAAS,EAAI,MAAM,EAClDif,EAAYoL,EAAW/zB,EAAgB,GAAK,KAC5C2oB,EAAoBA,GAAR,KAAoBA,EAAUjf,CAAG,EAAI,KACnC,OAAOif,GAAtB,YACEoL,EAAW,oBAAoB99B,EAAK0yB,EAAW5iB,CAAK,EACvC,OAAO3N,GAAtB,YACA,CACe,OAAOuwB,GAAtB,YACWA,IAAT,OACCjf,KAAOqqB,EACHA,EAAWrqB,CAAG,EAAI,KACnBqqB,EAAW,aAAarqB,CAAG,GAC3BqqB,EAAW,gBAAgBrqB,CAAG,GACpCqqB,EAAW,iBAAiB99B,EAAKmC,EAAO2N,CAAK,EAC7C,MAAMrQ,CACR,CACAgU,KAAOqqB,EACFA,EAAWrqB,CAAG,EAAItR,EACZA,IAAP,GACE27B,EAAW,aAAarqB,EAAK,EAAE,EAC/B5H,GAAqBiyB,EAAYrqB,EAAKtR,CAAK,CACnD,CACN,CACF,CACA,SAASy4B,GAAqBkD,EAAY99B,EAAK8P,EAAO,CACpD,OAAQ9P,EAAK,CACX,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,OACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACH,MACF,IAAK,MACH6d,EAA0B,QAASigB,CAAU,EAC7CjgB,EAA0B,OAAQigB,CAAU,EAC5C,IAAImT,EAAS,GACXC,EAAY,GACZC,EACF,IAAKA,KAAWrhC,EACd,GAAIA,EAAM,eAAeqhC,CAAO,EAAG,CACjC,IAAIrjC,EAAYgC,EAAMqhC,CAAO,EAC7B,GAAYrjC,GAAR,KACF,OAAQqjC,EAAS,CACf,IAAK,MACHF,EAAS,GACT,MACF,IAAK,SACHC,EAAY,GACZ,MACF,IAAK,WACL,IAAK,0BACH,MAAM,MAAMzyC,EAAuB,IAAKuB,CAAG,CAAC,EAC9C,QACE+wC,GAAQjT,EAAY99B,EAAKmxC,EAASrjC,EAAWgC,EAAO,IAAI,CAC5D,CACJ,CACFohC,GACEH,GAAQjT,EAAY99B,EAAK,SAAU8P,EAAM,OAAQA,EAAO,IAAI,EAC9DmhC,GAAUF,GAAQjT,EAAY99B,EAAK,MAAO8P,EAAM,IAAKA,EAAO,IAAI,EAChE,OACF,IAAK,QACH+N,EAA0B,UAAWigB,CAAU,EAC/C,IAAI/7B,EAAgBovC,EAAUrjC,EAAYojC,EAAY,KACpD3jC,EAAU,KACVC,EAAiB,KACnB,IAAKyjC,KAAUnhC,EACb,GAAIA,EAAM,eAAemhC,CAAM,EAAG,CAChC,IAAIG,EAAgBthC,EAAMmhC,CAAM,EAChC,GAAYG,GAAR,KACF,OAAQH,EAAQ,CACd,IAAK,OACHC,EAAYE,EACZ,MACF,IAAK,OACHtjC,EAAYsjC,EACZ,MACF,IAAK,UACH7jC,EAAU6jC,EACV,MACF,IAAK,iBACH5jC,EAAiB4jC,EACjB,MACF,IAAK,QACHD,EAAUC,EACV,MACF,IAAK,eACHrvC,EAAeqvC,EACf,MACF,IAAK,WACL,IAAK,0BACH,GAAYA,GAAR,KACF,MAAM,MAAM3yC,EAAuB,IAAKuB,CAAG,CAAC,EAC9C,MACF,QACE+wC,GAAQjT,EAAY99B,EAAKixC,EAAQG,EAAethC,EAAO,IAAI,CAC/D,CACJ,CACFpC,GACEowB,EACAqT,EACApvC,EACAwL,EACAC,EACAM,EACAojC,EACA,EACF,EACA,OACF,IAAK,SACHrzB,EAA0B,UAAWigB,CAAU,EAC/CmT,EAASnjC,EAAYqjC,EAAU,KAC/B,IAAKD,KAAaphC,EAChB,GACEA,EAAM,eAAeohC,CAAS,IAC5BnvC,EAAe+N,EAAMohC,CAAS,EAAYnvC,GAAR,MAEpC,OAAQmvC,EAAW,CACjB,IAAK,QACHC,EAAUpvC,EACV,MACF,IAAK,eACH+L,EAAY/L,EACZ,MACF,IAAK,WACHkvC,EAASlvC,EACX,QACEgvC,GAAQjT,EAAY99B,EAAKkxC,EAAWnvC,EAAc+N,EAAO,IAAI,CACjE,CACJ9P,EAAMmxC,EACNrhC,EAAQhC,EACRgwB,EAAW,SAAW,CAAC,CAACmT,EAChBjxC,GAAR,KACI4N,GAAckwB,EAAY,CAAC,CAACmT,EAAQjxC,EAAK,EAAE,EACnC8P,GAAR,MAAiBlC,GAAckwB,EAAY,CAAC,CAACmT,EAAQnhC,EAAO,EAAE,EAClE,OACF,IAAK,WACH+N,EAA0B,UAAWigB,CAAU,EAC/CqT,EAAUD,EAAYD,EAAS,KAC/B,IAAKnjC,KAAagC,EAChB,GACEA,EAAM,eAAehC,CAAS,IAC5B/L,EAAe+N,EAAMhC,CAAS,EAAY/L,GAAR,MAEpC,OAAQ+L,EAAW,CACjB,IAAK,QACHmjC,EAASlvC,EACT,MACF,IAAK,eACHmvC,EAAYnvC,EACZ,MACF,IAAK,WACHovC,EAAUpvC,EACV,MACF,IAAK,0BACH,GAAYA,GAAR,KAAsB,MAAM,MAAMtD,EAAuB,EAAE,CAAC,EAChE,MACF,QACEsyC,GAAQjT,EAAY99B,EAAK8N,EAAW/L,EAAc+N,EAAO,IAAI,CACjE,CACJ7B,GAAa6vB,EAAYmT,EAAQC,EAAWC,CAAO,EACnD,OACF,IAAK,SACH,IAAK5jC,KAAWuC,EACd,GACEA,EAAM,eAAevC,CAAO,IAC1B0jC,EAASnhC,EAAMvC,CAAO,EAAY0jC,GAAR,MAE5B,OAAQ1jC,EAAS,CACf,IAAK,WACHuwB,EAAW,SACTmT,GACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,SACF,MACF,QACEF,GAAQjT,EAAY99B,EAAKuN,EAAS0jC,EAAQnhC,EAAO,IAAI,CACzD,CACJ,OACF,IAAK,SACH+N,EAA0B,eAAgBigB,CAAU,EACpDjgB,EAA0B,SAAUigB,CAAU,EAC9CjgB,EAA0B,SAAUigB,CAAU,EAC9CjgB,EAA0B,QAASigB,CAAU,EAC7C,MACF,IAAK,SACL,IAAK,SACHjgB,EAA0B,OAAQigB,CAAU,EAC5C,MACF,IAAK,QACL,IAAK,QACH,IAAKmT,EAAS,EAAGA,EAASnzB,GAAgB,OAAQmzB,IAChDpzB,EAA0BC,GAAgBmzB,CAAM,EAAGnT,CAAU,EAC/D,MACF,IAAK,QACHjgB,EAA0B,QAASigB,CAAU,EAC7CjgB,EAA0B,OAAQigB,CAAU,EAC5C,MACF,IAAK,UACHjgB,EAA0B,SAAUigB,CAAU,EAC9C,MACF,IAAK,QACL,IAAK,SACL,IAAK,OACHjgB,EAA0B,QAASigB,CAAU,EAC3CjgB,EAA0B,OAAQigB,CAAU,EAChD,IAAK,OACL,IAAK,OACL,IAAK,KACL,IAAK,MACL,IAAK,KACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,MACL,IAAK,WACH,IAAKtwB,KAAkBsC,EACrB,GACEA,EAAM,eAAetC,CAAc,IACjCyjC,EAASnhC,EAAMtC,CAAc,EAAYyjC,GAAR,MAEnC,OAAQzjC,EAAgB,CACtB,IAAK,WACL,IAAK,0BACH,MAAM,MAAM/O,EAAuB,IAAKuB,CAAG,CAAC,EAC9C,QACE+wC,GAAQjT,EAAY99B,EAAKwN,EAAgByjC,EAAQnhC,EAAO,IAAI,CAChE,CACJ,OACF,QACE,GAAId,GAAgBhP,CAAG,EAAG,CACxB,IAAKoxC,KAAiBthC,EACpBA,EAAM,eAAeshC,CAAa,IAC9BH,EAASnhC,EAAMshC,CAAa,EACnBH,IAAX,QACED,GACElT,EACA99B,EACAoxC,EACAH,EACAnhC,EACA,MACF,GACN,MACF,CACJ,CACA,IAAK/N,KAAgB+N,EACnBA,EAAM,eAAe/N,CAAY,IAC7BkvC,EAASnhC,EAAM/N,CAAY,EACrBkvC,GAAR,MACEF,GAAQjT,EAAY99B,EAAK+B,EAAckvC,EAAQnhC,EAAO,IAAI,EAClE,CACA,SAASiuB,GAAiBD,EAAY99B,EAAKqxC,EAAWzc,EAAW,CAC/D,OAAQ50B,EAAK,CACX,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,OACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACH,MACF,IAAK,QACH,IAAIqD,EAAO,KACT/B,EAAO,KACPa,EAAQ,KACRJ,EAAe,KACfuL,EAAmB,KACnBC,EAAU,KACVC,EAAiB,KACnB,IAAK2jC,KAAWE,EAAW,CACzB,IAAIC,EAAWD,EAAUF,CAAO,EAChC,GAAIE,EAAU,eAAeF,CAAO,GAAaG,GAAR,KACvC,OAAQH,EAAS,CACf,IAAK,UACH,MACF,IAAK,QACH,MACF,IAAK,eACH7jC,EAAmBgkC,EACrB,QACE1c,EAAU,eAAeuc,CAAO,GAC9BJ,GAAQjT,EAAY99B,EAAKmxC,EAAS,KAAMvc,EAAW0c,CAAQ,CACjE,CACJ,CACA,QAASC,KAAe3c,EAAW,CACjC,IAAIuc,EAAUvc,EAAU2c,CAAW,EAEnC,GADAD,EAAWD,EAAUE,CAAW,EAE9B3c,EAAU,eAAe2c,CAAW,IAC3BJ,GAAR,MAA2BG,GAAR,MAEpB,OAAQC,EAAa,CACnB,IAAK,OACHjwC,EAAO6vC,EACP,MACF,IAAK,OACH9tC,EAAO8tC,EACP,MACF,IAAK,UACH5jC,EAAU4jC,EACV,MACF,IAAK,iBACH3jC,EAAiB2jC,EACjB,MACF,IAAK,QACHhvC,EAAQgvC,EACR,MACF,IAAK,eACHpvC,EAAeovC,EACf,MACF,IAAK,WACL,IAAK,0BACH,GAAYA,GAAR,KACF,MAAM,MAAM1yC,EAAuB,IAAKuB,CAAG,CAAC,EAC9C,MACF,QACEmxC,IAAYG,GACVP,GACEjT,EACA99B,EACAuxC,EACAJ,EACAvc,EACA0c,CACF,CACN,CACJ,CACAlkC,GACE0wB,EACA37B,EACAJ,EACAuL,EACAC,EACAC,EACAlM,EACA+B,CACF,EACA,OACF,IAAK,SACH8tC,EAAUhvC,EAAQJ,EAAewvC,EAAc,KAC/C,IAAKjwC,KAAQ+vC,EACX,GACI/jC,EAAmB+jC,EAAU/vC,CAAI,EACnC+vC,EAAU,eAAe/vC,CAAI,GAAagM,GAAR,KAElC,OAAQhM,EAAM,CACZ,IAAK,QACH,MACF,IAAK,WACH6vC,EAAU7jC,EACZ,QACEsnB,EAAU,eAAetzB,CAAI,GAC3ByvC,GACEjT,EACA99B,EACAsB,EACA,KACAszB,EACAtnB,CACF,CACN,CACJ,IAAKjK,KAAQuxB,EACX,GACItzB,EAAOszB,EAAUvxB,CAAI,EACtBiK,EAAmB+jC,EAAUhuC,CAAI,EAClCuxB,EAAU,eAAevxB,CAAI,IAClB/B,GAAR,MAAwBgM,GAAR,MAEnB,OAAQjK,EAAM,CACZ,IAAK,QACHkuC,EAAcjwC,EACd,MACF,IAAK,eACHS,EAAeT,EACf,MACF,IAAK,WACHa,EAAQb,EACV,QACEA,IAASgM,GACPyjC,GACEjT,EACA99B,EACAqD,EACA/B,EACAszB,EACAtnB,CACF,CACN,CACJtN,EAAM+B,EACNsvC,EAAYlvC,EACZyyB,EAAYuc,EACJI,GAAR,KACI3jC,GAAckwB,EAAY,CAAC,CAACuT,EAAWE,EAAa,EAAE,EACtD,CAAC,CAAC3c,GAAc,CAAC,CAACyc,IACTrxC,GAAR,KACG4N,GAAckwB,EAAY,CAAC,CAACuT,EAAWrxC,EAAK,EAAE,EAC9C4N,GAAckwB,EAAY,CAAC,CAACuT,EAAWA,EAAY,CAAC,EAAI,GAAI,EAAE,GACtE,OACF,IAAK,WACHF,EAAUI,EAAc,KACxB,IAAKxvC,KAAgBsvC,EACnB,GACIhuC,EAAOguC,EAAUtvC,CAAY,EAC/BsvC,EAAU,eAAetvC,CAAY,GAC3BsB,GAAR,MACA,CAACuxB,EAAU,eAAe7yB,CAAY,EAExC,OAAQA,EAAc,CACpB,IAAK,QACH,MACF,IAAK,WACH,MACF,QACEgvC,GAAQjT,EAAY99B,EAAK+B,EAAc,KAAM6yB,EAAWvxB,CAAI,CAChE,CACJ,IAAKlB,KAASyyB,EACZ,GACIvxB,EAAOuxB,EAAUzyB,CAAK,EACvBb,EAAO+vC,EAAUlvC,CAAK,EACvByyB,EAAU,eAAezyB,CAAK,IAAckB,GAAR,MAAwB/B,GAAR,MAEpD,OAAQa,EAAO,CACb,IAAK,QACHovC,EAAcluC,EACd,MACF,IAAK,eACH8tC,EAAU9tC,EACV,MACF,IAAK,WACH,MACF,IAAK,0BACH,GAAYA,GAAR,KAAc,MAAM,MAAM5E,EAAuB,EAAE,CAAC,EACxD,MACF,QACE4E,IAAS/B,GACPyvC,GAAQjT,EAAY99B,EAAKmC,EAAOkB,EAAMuxB,EAAWtzB,CAAI,CAC3D,CACJ0M,GAAe8vB,EAAYyT,EAAaJ,CAAO,EAC/C,OACF,IAAK,SACH,QAASK,KAAeH,EACtB,GACIE,EAAcF,EAAUG,CAAW,EACrCH,EAAU,eAAeG,CAAW,GAC1BD,GAAR,MACA,CAAC3c,EAAU,eAAe4c,CAAW,EAEvC,OAAQA,EAAa,CACnB,IAAK,WACH1T,EAAW,SAAW,GACtB,MACF,QACEiT,GACEjT,EACA99B,EACAwxC,EACA,KACA5c,EACA2c,CACF,CACJ,CACJ,IAAKjkC,KAAoBsnB,EACvB,GACI2c,EAAc3c,EAAUtnB,CAAgB,EACzC6jC,EAAUE,EAAU/jC,CAAgB,EACrCsnB,EAAU,eAAetnB,CAAgB,GACvCikC,IAAgBJ,IACPI,GAAR,MAA+BJ,GAAR,MAE1B,OAAQ7jC,EAAkB,CACxB,IAAK,WACHwwB,EAAW,SACTyT,GACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,SACF,MACF,QACER,GACEjT,EACA99B,EACAsN,EACAikC,EACA3c,EACAuc,CACF,CACJ,CACJ,OACF,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,KACL,IAAK,MACL,IAAK,QACL,IAAK,KACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,MACL,IAAK,WACH,QAASM,KAAeJ,EACrBE,EAAcF,EAAUI,CAAW,EAClCJ,EAAU,eAAeI,CAAW,GAC1BF,GAAR,MACA,CAAC3c,EAAU,eAAe6c,CAAW,GACrCV,GAAQjT,EAAY99B,EAAKyxC,EAAa,KAAM7c,EAAW2c,CAAW,EACxE,IAAKhkC,KAAWqnB,EACd,GACI2c,EAAc3c,EAAUrnB,CAAO,EAChC4jC,EAAUE,EAAU9jC,CAAO,EAC5BqnB,EAAU,eAAernB,CAAO,GAC9BgkC,IAAgBJ,IACPI,GAAR,MAA+BJ,GAAR,MAE1B,OAAQ5jC,EAAS,CACf,IAAK,WACL,IAAK,0BACH,GAAYgkC,GAAR,KACF,MAAM,MAAM9yC,EAAuB,IAAKuB,CAAG,CAAC,EAC9C,MACF,QACE+wC,GACEjT,EACA99B,EACAuN,EACAgkC,EACA3c,EACAuc,CACF,CACJ,CACJ,OACF,QACE,GAAIniC,GAAgBhP,CAAG,EAAG,CACxB,QAAS0xC,KAAeL,EACrBE,EAAcF,EAAUK,CAAW,EAClCL,EAAU,eAAeK,CAAW,GACvBH,IAAX,QACA,CAAC3c,EAAU,eAAe8c,CAAW,GACrCV,GACElT,EACA99B,EACA0xC,EACA,OACA9c,EACA2c,CACF,EACN,IAAK/jC,KAAkBonB,EACpB2c,EAAc3c,EAAUpnB,CAAc,EACpC2jC,EAAUE,EAAU7jC,CAAc,EACnC,CAAConB,EAAU,eAAepnB,CAAc,GACtC+jC,IAAgBJ,GACJI,IAAX,QAAqCJ,IAAX,QAC3BH,GACElT,EACA99B,EACAwN,EACA+jC,EACA3c,EACAuc,CACF,EACN,MACF,CACJ,CACA,QAASQ,KAAeN,EACrBE,EAAcF,EAAUM,CAAW,EAClCN,EAAU,eAAeM,CAAW,GAC1BJ,GAAR,MACA,CAAC3c,EAAU,eAAe+c,CAAW,GACrCZ,GAAQjT,EAAY99B,EAAK2xC,EAAa,KAAM/c,EAAW2c,CAAW,EACxE,IAAKD,KAAY1c,EACd2c,EAAc3c,EAAU0c,CAAQ,EAC9BH,EAAUE,EAAUC,CAAQ,EAC7B,CAAC1c,EAAU,eAAe0c,CAAQ,GAChCC,IAAgBJ,GACPI,GAAR,MAA+BJ,GAAR,MACxBJ,GAAQjT,EAAY99B,EAAKsxC,EAAUC,EAAa3c,EAAWuc,CAAO,CAC1E,CACA,SAASS,GAAuBC,EAAe,CAC7C,OAAQA,EAAe,CACrB,IAAK,MACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACH,MAAO,GACT,QACE,MAAO,EACX,CACF,CACA,SAASC,IAAoB,CAC3B,GAAmB,OAAO,YAAY,kBAAlC,WAAoD,CACtD,QACMC,EAAQ,EACVC,EAAO,EACPC,EAAkB,YAAY,iBAAiB,UAAU,EACzDrzC,EAAI,EACNA,EAAIqzC,EAAgB,OACpBrzC,IACA,CACA,IAAIszC,EAAQD,EAAgBrzC,CAAC,EAC3BuzC,EAAeD,EAAM,aACrBL,EAAgBK,EAAM,cACtBE,EAAWF,EAAM,SACnB,GAAIC,GAAgBC,GAAYR,GAAuBC,CAAa,EAAG,CAGrE,IAFAA,EAAgB,EAChBO,EAAWF,EAAM,YACZtzC,GAAK,EAAGA,EAAIqzC,EAAgB,OAAQrzC,IAAK,CAC5C,IAAIyzC,EAAeJ,EAAgBrzC,CAAC,EAClC0zC,EAAmBD,EAAa,UAClC,GAAIC,EAAmBF,EAAU,MACjC,IAAIG,EAAsBF,EAAa,aACrCG,EAAuBH,EAAa,cACtCE,GACEX,GAAuBY,CAAoB,IACzCH,EAAeA,EAAa,YAC7BR,GACCU,GACCF,EAAeD,EACZ,GACCA,EAAWE,IACXD,EAAeC,IAC1B,CAIA,GAHA,EAAE1zC,EACFozC,GAAS,GAAKG,EAAeN,IAAmBK,EAAM,SAAW,KACjEH,IACI,GAAKA,EAAO,KAClB,CACF,CACA,GAAI,EAAIA,EAAO,OAAOC,EAAOD,EAAQ,GACvC,CACA,OAAO,UAAU,aACbA,EAAQ,UAAU,WAAW,SAAwB,OAAOA,GAApB,UACxCA,EACA,CACN,CACA,IAAIjT,GAAgB,KAClBQ,GAAuB,KACzB,SAAS3E,GAAkC+T,EAAsB,CAC/D,OAAaA,EAAqB,WAA3B,EACHA,EACAA,EAAqB,aAC3B,CACA,SAAShsC,GAAkB+vC,EAAc,CACvC,OAAQA,EAAc,CACpB,IAAK,6BACH,MAAO,GACT,IAAK,qCACH,MAAO,GACT,QACE,MAAO,EACX,CACF,CACA,SAAS9vC,GAAwB+vC,EAAiBpxC,EAAM,CACtD,GAAUoxC,IAAN,EACF,OAAQpxC,EAAM,CACZ,IAAK,MACH,MAAO,GACT,IAAK,OACH,MAAO,GACT,QACE,MAAO,EACX,CACF,OAAaoxC,IAAN,GAA6CpxC,IAApB,gBAC5B,EACAoxC,CACN,CACA,SAASv0B,GAAqB7c,EAAMwO,EAAO,CACzC,OACiBxO,IAAf,YACeA,IAAf,YACa,OAAOwO,EAAM,UAA1B,UACa,OAAOA,EAAM,UAA1B,UACa,OAAOA,EAAM,UAA1B,UACc,OAAOA,EAAM,yBAA1B,UACUA,EAAM,0BAAf,MACQA,EAAM,wBAAwB,QAAtC,IAEN,CACA,IAAI6iC,GAAiC,KACrC,SAASrG,IAA+B,CACtC,IAAIx6B,EAAQ,OAAO,MACnB,OAAIA,GAAwBA,EAAM,OAArB,WACPA,IAAU6gC,GAAuC,IACrDA,GAAiC7gC,EAC1B,KAET6gC,GAAiC,KAC1B,GACT,CACA,IAAI7L,GAAiC,OAAO,YAAtB,WAAmC,WAAa,OACpEkB,GAA+B,OAAO,cAAtB,WAAqC,aAAe,OACpE4K,GAA8B,OAAO,SAAtB,WAAgC,QAAU,OACzD7F,GACiB,OAAO,gBAAtB,WACI,eACgB,OAAO6F,GAAvB,IACE,SAAUtqB,EAAU,CAClB,OAAOsqB,GACJ,QAAQ,IAAI,EACZ,KAAKtqB,CAAQ,EACb,MAAMuqB,EAAqB,CAChC,EACA/L,GACV,SAAS+L,GAAsBz5B,EAAO,CACpC,WAAW,UAAY,CACrB,MAAMA,CACR,CAAC,CACH,CACA,SAASiF,GAAiB/c,EAAM,CAC9B,OAAkBA,IAAX,MACT,CACA,SAASs/B,GAAuBkS,EAAgBC,EAAmB,CACjE,IAAIj0C,EAAOi0C,EACTC,EAAQ,EACV,EAAG,CACD,IAAIC,EAAWn0C,EAAK,YAEpB,GADAg0C,EAAe,YAAYh0C,CAAI,EAC3Bm0C,GAAkBA,EAAS,WAAf,EACd,GAAMn0C,EAAOm0C,EAAS,KAAgBn0C,IAAT,MAA0BA,IAAT,KAAgB,CAC5D,GAAUk0C,IAAN,EAAa,CACfF,EAAe,YAAYG,CAAQ,EACnCpS,GAAiBkS,CAAiB,EAClC,MACF,CACAC,GACF,SACUl0C,IAAR,KACSA,IAAT,MACSA,IAAT,MACSA,IAAT,MACQA,IAAR,IAEAk0C,YACkBl0C,IAAX,OACP6hC,GAAyBmS,EAAe,cAAc,eAAe,UACnDh0C,IAAX,OAAiB,CACxBA,EAAOg0C,EAAe,cAAc,KACpCnS,GAAyB7hC,CAAI,EAC7B,QAASo0C,EAAgBp0C,EAAK,WAAYo0C,GAAiB,CACzD,IAAIC,EAAoBD,EAAc,YACpC99B,EAAW89B,EAAc,SAC3BA,EAAc7oC,EAAuB,GACtB+K,IAAb,UACYA,IAAZ,SACYA,IAAX,QACkB89B,EAAc,IAAI,YAAY,IAA/C,cACFp0C,EAAK,YAAYo0C,CAAa,EAChCA,EAAgBC,CAClB,CACF,MACar0C,IAAX,QACE6hC,GAAyBmS,EAAe,cAAc,IAAI,EAChEh0C,EAAOm0C,CACT,OAASn0C,GACT+hC,GAAiBkS,CAAiB,CACpC,CACA,SAAStQ,GAA+B2Q,EAAkBl5B,EAAU,CAClE,IAAIpb,EAAOs0C,EACXA,EAAmB,EACnB,EAAG,CACD,IAAIH,EAAWn0C,EAAK,YAWpB,GAVMA,EAAK,WAAX,EACIob,GACIpb,EAAK,gBAAkBA,EAAK,MAAM,QACnCA,EAAK,MAAM,QAAU,SACpBA,EAAK,MAAM,QAAUA,EAAK,iBAAmB,GACxCA,EAAK,aAAa,OAAO,IAAhC,IAAqCA,EAAK,gBAAgB,OAAO,GAC7DA,EAAK,WAAX,IACCob,GACKpb,EAAK,aAAeA,EAAK,UAAaA,EAAK,UAAY,IACxDA,EAAK,UAAYA,EAAK,cAAgB,IAC3Cm0C,GAAkBA,EAAS,WAAf,EACd,GAAMn0C,EAAOm0C,EAAS,KAAgBn0C,IAAT,KAC3B,IAAUs0C,IAAN,EAAwB,MACvBA,SAEIt0C,IAAR,KAAyBA,IAAT,MAA0BA,IAAT,MAA0BA,IAAT,MACjDs0C,IACNt0C,EAAOm0C,CACT,OAASn0C,EACX,CACA,SAAS0gC,GAAwB4P,EAAW,CAC1C,IAAI6D,EAAW7D,EAAU,WAEzB,IADA6D,GAAmBA,EAAS,WAAhB,KAA6BA,EAAWA,EAAS,aACtDA,GAAY,CACjB,IAAIn0C,EAAOm0C,EAEX,OADAA,EAAWA,EAAS,YACZn0C,EAAK,SAAU,CACrB,IAAK,OACL,IAAK,OACL,IAAK,OACH0gC,GAAwB1gC,CAAI,EAC5BwL,GAAsBxL,CAAI,EAC1B,SACF,IAAK,SACL,IAAK,QACH,SACF,IAAK,OACH,GAAqBA,EAAK,IAAI,YAAY,IAAtC,aAAyC,QACjD,CACAswC,EAAU,YAAYtwC,CAAI,CAC5B,CACF,CACA,SAASg8B,GAAmBld,EAAUtc,EAAMwO,EAAOygB,EAAmB,CACpE,KAAa3S,EAAS,WAAf,GAA2B,CAChC,IAAIy1B,EAAWvjC,EACf,GAAI8N,EAAS,SAAS,YAAY,IAAMtc,EAAK,YAAY,GACvD,GACE,CAACivB,IACY3S,EAAS,WAArB,SAA8CA,EAAS,OAAtB,UAElC,cACQ2S,GASP,GAAI,CAAC3S,EAASvT,EAAuB,EACxC,OAAQ/I,EAAM,CACZ,IAAK,OACH,GAAI,CAACsc,EAAS,aAAa,UAAU,EAAG,MACxC,OAAOA,EACT,IAAK,OAEH,GADAva,EAAOua,EAAS,aAAa,KAAK,EACbva,IAAjB,cAAyBua,EAAS,aAAa,iBAAiB,EAClE,MACG,GACHva,IAASgwC,EAAS,KAClBz1B,EAAS,aAAa,MAAM,KACjBy1B,EAAS,MAAjB,MAAgCA,EAAS,OAAhB,GACtB,KACAA,EAAS,OACfz1B,EAAS,aAAa,aAAa,KACxBy1B,EAAS,aAAjB,KAA+B,KAAOA,EAAS,cAClDz1B,EAAS,aAAa,OAAO,KAClBy1B,EAAS,OAAjB,KAAyB,KAAOA,EAAS,OAE5C,MACF,OAAOz1B,EACT,IAAK,QACH,GAAIA,EAAS,aAAa,iBAAiB,EAAG,MAC9C,OAAOA,EACT,IAAK,SAEH,GADAva,EAAOua,EAAS,aAAa,KAAK,GAE/Bva,KAAkBgwC,EAAS,KAAjB,KAAuB,KAAOA,EAAS,MAChDz1B,EAAS,aAAa,MAAM,KACjBy1B,EAAS,MAAjB,KAAwB,KAAOA,EAAS,OAC3Cz1B,EAAS,aAAa,aAAa,KACxBy1B,EAAS,aAAjB,KAA+B,KAAOA,EAAS,eACpDhwC,GACAua,EAAS,aAAa,OAAO,GAC7B,CAACA,EAAS,aAAa,UAAU,EAEjC,MACF,OAAOA,EACT,QACE,OAAOA,CACX,UAjDgBtc,IAAZ,SAAiCsc,EAAS,OAAtB,SAA4B,CAClD,IAAIva,EAAegwC,EAAS,MAAjB,KAAwB,KAAO,GAAKA,EAAS,KACxD,GACeA,EAAS,OAAtB,UACAz1B,EAAS,aAAa,MAAM,IAAMva,EAElC,OAAOua,CACX,KAAO,QAAOA,EA4ChB,GADAA,EAAWW,GAAkBX,EAAS,WAAW,EACpCA,IAAT,KAAmB,KACzB,CACA,OAAO,IACT,CACA,SAASmd,GAAuBnd,EAAUxP,EAAMmiB,EAAmB,CACjE,GAAWniB,IAAP,GAAa,OAAO,KACxB,KAAawP,EAAS,WAAf,GASL,IAPSA,EAAS,WAAf,GACaA,EAAS,WAArB,SACaA,EAAS,OAAtB,WACF,CAAC2S,IAGH3S,EAAWW,GAAkBX,EAAS,WAAW,EACpCA,IAAT,MAAmB,OAAO,KAEhC,OAAOA,CACT,CACA,SAASua,GAA4Bva,EAAU2S,EAAmB,CAChE,KAAa3S,EAAS,WAAf,GASL,IAPSA,EAAS,WAAf,GACaA,EAAS,WAArB,SACaA,EAAS,OAAtB,WACF,CAAC2S,IAGH3S,EAAWW,GAAkBX,EAAS,WAAW,EACpCA,IAAT,MAAmB,OAAO,KAEhC,OAAOA,CACT,CACA,SAAS+L,GAA0B/L,EAAU,CAC3C,OAAgBA,EAAS,OAAlB,MAAmCA,EAAS,OAAlB,IACnC,CACA,SAASgM,GAA2BhM,EAAU,CAC5C,OACWA,EAAS,OAAlB,MACUA,EAAS,OAAlB,MAAwCA,EAAS,cAAc,aAArC,SAE/B,CACA,SAASoiB,GAA8BpiB,EAAU0K,EAAU,CACzD,IAAI+T,EAAgBze,EAAS,cAC7B,GAAaA,EAAS,OAAlB,KAAwBA,EAAS,YAAc0K,UACjC1K,EAAS,OAAlB,MAAwCye,EAAc,aAA5B,UACjC/T,EAAS,MACN,CACH,IAAI9H,EAAW,UAAY,CACzB8H,EAAS,EACT+T,EAAc,oBAAoB,mBAAoB7b,CAAQ,CAChE,EACA6b,EAAc,iBAAiB,mBAAoB7b,CAAQ,EAC3D5C,EAAS,YAAc4C,CACzB,CACF,CACA,SAASjC,GAAkBzf,EAAM,CAC/B,KAAeA,GAAR,KAAcA,EAAOA,EAAK,YAAa,CAC5C,IAAIw0C,EAAWx0C,EAAK,SACpB,GAAUw0C,IAAN,GAAwBA,IAAN,EAAgB,MACtC,GAAUA,IAAN,EAAgB,CAElB,GADAA,EAAWx0C,EAAK,KAENw0C,IAAR,KACSA,IAAT,MACSA,IAAT,MACSA,IAAT,MACQA,IAAR,KACSA,IAAT,MACQA,IAAR,IAEA,MACF,GAAaA,IAAT,MAA8BA,IAAT,KAAmB,OAAO,IACrD,CACF,CACA,OAAOx0C,CACT,CACA,IAAIwf,GAA8C,KAClD,SAASF,GAAgD20B,EAAmB,CAC1EA,EAAoBA,EAAkB,YACtC,QAASC,EAAQ,EAAGD,GAAqB,CACvC,GAAUA,EAAkB,WAAxB,EAAkC,CACpC,IAAIQ,EAAOR,EAAkB,KAC7B,GAAaQ,IAAT,MAA0BA,IAAT,KAAe,CAClC,GAAUP,IAAN,EACF,OAAOz0B,GAAkBw0B,EAAkB,WAAW,EACxDC,GACF,MACWO,IAAR,KACUA,IAAT,MACSA,IAAT,MACSA,IAAT,MACQA,IAAR,KACAP,GACN,CACAD,EAAoBA,EAAkB,WACxC,CACA,OAAO,IACT,CACA,SAASpoC,GAA2B6oC,EAAgB,CAClDA,EAAiBA,EAAe,gBAChC,QAASR,EAAQ,EAAGQ,GAAkB,CACpC,GAAUA,EAAe,WAArB,EAA+B,CACjC,IAAID,EAAOC,EAAe,KAC1B,GACUD,IAAR,KACSA,IAAT,MACSA,IAAT,MACSA,IAAT,MACQA,IAAR,IACA,CACA,GAAUP,IAAN,EAAa,OAAOQ,EACxBR,GACF,MAAiBO,IAAT,MAA0BA,IAAT,MAAkBP,GAC7C,CACAQ,EAAiBA,EAAe,eAClC,CACA,OAAO,IACT,CACA,SAAS3Y,GAAyBv5B,EAAMwO,EAAO2jC,EAAuB,CAEpE,OADA3jC,EAAQ6qB,GAAkC8Y,CAAqB,EACvDnyC,EAAM,CACZ,IAAK,OAEH,GADAA,EAAOwO,EAAM,gBACT,CAACxO,EAAM,MAAM,MAAM7C,EAAuB,GAAG,CAAC,EAClD,OAAO6C,EACT,IAAK,OAEH,GADAA,EAAOwO,EAAM,KACT,CAACxO,EAAM,MAAM,MAAM7C,EAAuB,GAAG,CAAC,EAClD,OAAO6C,EACT,IAAK,OAEH,GADAA,EAAOwO,EAAM,KACT,CAACxO,EAAM,MAAM,MAAM7C,EAAuB,GAAG,CAAC,EAClD,OAAO6C,EACT,QACE,MAAM,MAAM7C,EAAuB,GAAG,CAAC,CAC3C,CACF,CACA,SAASkiC,GAAyB/iB,EAAU,CAC1C,QAAS2gB,EAAa3gB,EAAS,WAAY2gB,EAAW,QACpD3gB,EAAS,oBAAoB2gB,EAAW,CAAC,CAAC,EAC5Cj0B,GAAsBsT,CAAQ,CAChC,CACA,IAAI81B,GAAkB,IAAI,IACxBC,GAAiB,IAAI,IACvB,SAASzR,GAAiBkN,EAAW,CACnC,OAAsB,OAAOA,EAAU,aAAhC,WACHA,EAAU,YAAY,EAChBA,EAAU,WAAhB,EACEA,EACAA,EAAU,aAClB,CACA,IAAIwE,GAAqBlyC,GAAwB,EACjDA,GAAwB,EAAI,CAC1B,EAAGmyC,GACH,EAAGC,GACH,EAAGC,GACH,EAAGC,GACH,EAAGC,GACH,EAAGC,GACH,EAAGC,GACH,EAAGC,GACH,EAAGC,EACL,EACA,SAASR,IAAgB,CACvB,IAAIS,EAAuBV,GAAmB,EAAE,EAC9CW,EAAepkC,GAAgB,EACjC,OAAOmkC,GAAwBC,CACjC,CACA,SAAST,GAAiB1G,EAAM,CAC9B,IAAIoH,EAAW5pC,GAAoBwiC,CAAI,EAC9BoH,IAAT,MAA2BA,EAAS,MAAf,GAAiCA,EAAS,OAApB,OACvClhB,GAAmBkhB,CAAQ,EAC3BZ,GAAmB,EAAExG,CAAI,CAC/B,CACA,IAAIqH,GAAiC,OAAO,SAAvB,IAAkC,KAAO,SAC9D,SAASC,GAAaC,EAAKC,EAAMC,EAAa,CAC5C,IAAIxY,EAAgBoY,GACpB,GAAIpY,GAA8B,OAAOuY,GAApB,UAA4BA,EAAM,CACrD,IAAIE,EACF5nC,GAA+C0nC,CAAI,EACrDE,EACE,aAAeH,EAAM,YAAcG,EAAqB,KAC7C,OAAOD,GAApB,WACGC,GAAsB,iBAAmBD,EAAc,MAC1DlB,GAAe,IAAImB,CAAkB,IAClCnB,GAAe,IAAImB,CAAkB,EACrCH,EAAM,CAAE,IAAKA,EAAK,YAAaE,EAAa,KAAMD,CAAK,EAC/CvY,EAAc,cAAcyY,CAAkB,IAAvD,OACIF,EAAOvY,EAAc,cAAc,MAAM,EAC3CzB,GAAqBga,EAAM,OAAQD,CAAG,EACtC1pC,GAAoB2pC,CAAI,EACxBvY,EAAc,KAAK,YAAYuY,CAAI,GACzC,CACF,CACA,SAASb,GAAYa,EAAM,CACzBhB,GAAmB,EAAEgB,CAAI,EACzBF,GAAa,eAAgBE,EAAM,IAAI,CACzC,CACA,SAASZ,GAAWY,EAAMC,EAAa,CACrCjB,GAAmB,EAAEgB,EAAMC,CAAW,EACtCH,GAAa,aAAcE,EAAMC,CAAW,CAC9C,CACA,SAASZ,GAAQW,EAAMG,EAAIvkC,EAAS,CAClCojC,GAAmB,EAAEgB,EAAMG,EAAIvkC,CAAO,EACtC,IAAI6rB,EAAgBoY,GACpB,GAAIpY,GAAiBuY,GAAQG,EAAI,CAC/B,IAAIC,EACF,2BACA9nC,GAA+C6nC,CAAE,EACjD,KACUA,IAAZ,SACIvkC,GAAWA,EAAQ,aACfwkC,GACA,iBACA9nC,GACEsD,EAAQ,WACV,EACA,KACW,OAAOA,EAAQ,YAA5B,WACGwkC,GACC,gBACA9nC,GACEsD,EAAQ,UACV,EACA,OAKLwkC,GACC,UACA9nC,GAA+C0nC,CAAI,EACnD,KACN,IAAInhC,EAAMuhC,EACV,OAAQD,EAAI,CACV,IAAK,QACHthC,EAAMwhC,GAAYL,CAAI,EACtB,MACF,IAAK,SACHnhC,EAAMyhC,GAAaN,CAAI,CAC3B,CACAlB,GAAgB,IAAIjgC,CAAG,IACnBmhC,EAAO30C,GACP,CACE,IAAK,UACL,KACc80C,IAAZ,SAAkBvkC,GAAWA,EAAQ,YAAc,OAASokC,EAC9D,GAAIG,CACN,EACAvkC,CACF,EACAkjC,GAAgB,IAAIjgC,EAAKmhC,CAAI,EACpBvY,EAAc,cAAc2Y,CAAe,IAApD,MACeD,IAAZ,SACC1Y,EAAc,cAAc8Y,GAA6B1hC,CAAG,CAAC,GACjDshC,IAAb,UACC1Y,EAAc,cAAc+Y,GAAyB3hC,CAAG,CAAC,IACzDshC,EAAK1Y,EAAc,cAAc,MAAM,EACzCzB,GAAqBma,EAAI,OAAQH,CAAI,EACrC3pC,GAAoB8pC,CAAE,EACtB1Y,EAAc,KAAK,YAAY0Y,CAAE,GACvC,CACF,CACA,SAASb,GAAcU,EAAMpkC,EAAS,CACpCojC,GAAmB,EAAEgB,EAAMpkC,CAAO,EAClC,IAAI6rB,EAAgBoY,GACpB,GAAIpY,GAAiBuY,EAAM,CACzB,IAAIG,EAAKvkC,GAAwB,OAAOA,EAAQ,IAA5B,SAAiCA,EAAQ,GAAK,SAChEwkC,EACE,iCACA9nC,GAA+C6nC,CAAE,EACjD,YACA7nC,GAA+C0nC,CAAI,EACnD,KACFnhC,EAAMuhC,EACR,OAAQD,EAAI,CACV,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,eACL,IAAK,SACL,IAAK,SACHthC,EAAMyhC,GAAaN,CAAI,CAC3B,CACA,GACE,CAAClB,GAAgB,IAAIjgC,CAAG,IACtBmhC,EAAO30C,GAAO,CAAE,IAAK,gBAAiB,KAAM20C,CAAK,EAAGpkC,CAAO,EAC7DkjC,GAAgB,IAAIjgC,EAAKmhC,CAAI,EACpBvY,EAAc,cAAc2Y,CAAe,IAApD,MACA,CACA,OAAQD,EAAI,CACV,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,eACL,IAAK,SACL,IAAK,SACH,GAAI1Y,EAAc,cAAc+Y,GAAyB3hC,CAAG,CAAC,EAC3D,MACN,CACAshC,EAAK1Y,EAAc,cAAc,MAAM,EACvCzB,GAAqBma,EAAI,OAAQH,CAAI,EACrC3pC,GAAoB8pC,CAAE,EACtB1Y,EAAc,KAAK,YAAY0Y,CAAE,CACnC,CACF,CACF,CACA,SAASX,GAAaQ,EAAMS,EAAY7kC,EAAS,CAC/CojC,GAAmB,EAAEgB,EAAMS,EAAY7kC,CAAO,EAC9C,IAAI6rB,EAAgBoY,GACpB,GAAIpY,GAAiBuY,EAAM,CACzB,IAAIhmC,EAAS7D,GAAqBsxB,CAAa,EAAE,gBAC/C5oB,EAAMwhC,GAAYL,CAAI,EACxBS,EAAaA,GAAc,UAC3B,IAAIja,EAAWxsB,EAAO,IAAI6E,CAAG,EAC7B,GAAI,CAAC2nB,EAAU,CACb,IAAI1R,EAAQ,CAAE,QAAS,EAAG,QAAS,IAAK,EACxC,GACG0R,EAAWiB,EAAc,cACxB8Y,GAA6B1hC,CAAG,CAClC,EAEAiW,EAAM,QAAU,MACb,CACHkrB,EAAO30C,GACL,CAAE,IAAK,aAAc,KAAM20C,EAAM,kBAAmBS,CAAW,EAC/D7kC,CACF,GACCA,EAAUkjC,GAAgB,IAAIjgC,CAAG,IAChC6hC,GAA+BV,EAAMpkC,CAAO,EAC9C,IAAI+kC,EAAQna,EAAWiB,EAAc,cAAc,MAAM,EACzDpxB,GAAoBsqC,CAAI,EACxB3a,GAAqB2a,EAAM,OAAQX,CAAI,EACvCW,EAAK,GAAK,IAAI,QAAQ,SAAU/zB,EAASg0B,EAAQ,CAC/CD,EAAK,OAAS/zB,EACd+zB,EAAK,QAAUC,CACjB,CAAC,EACDD,EAAK,iBAAiB,OAAQ,UAAY,CACxC7rB,EAAM,SAAW,CACnB,CAAC,EACD6rB,EAAK,iBAAiB,QAAS,UAAY,CACzC7rB,EAAM,SAAW,CACnB,CAAC,EACDA,EAAM,SAAW,EACjB+rB,GAAiBra,EAAUia,EAAYhZ,CAAa,CACtD,CACAjB,EAAW,CACT,KAAM,aACN,SAAUA,EACV,MAAO,EACP,MAAO1R,CACT,EACA9a,EAAO,IAAI6E,EAAK2nB,CAAQ,CAC1B,CACF,CACF,CACA,SAAS+Y,GAAcuB,EAAKllC,EAAS,CACnCojC,GAAmB,EAAE8B,EAAKllC,CAAO,EACjC,IAAI6rB,EAAgBoY,GACpB,GAAIpY,GAAiBqZ,EAAK,CACxB,IAAIC,EAAU5qC,GAAqBsxB,CAAa,EAAE,iBAChD5oB,EAAMyhC,GAAaQ,CAAG,EACtBta,EAAWua,EAAQ,IAAIliC,CAAG,EAC5B2nB,IACIA,EAAWiB,EAAc,cAAc+Y,GAAyB3hC,CAAG,CAAC,EACtE2nB,IACIsa,EAAMz1C,GAAO,CAAE,IAAKy1C,EAAK,MAAO,EAAG,EAAGllC,CAAO,GAC9CA,EAAUkjC,GAAgB,IAAIjgC,CAAG,IAChCmiC,GAA2BF,EAAKllC,CAAO,EACxC4qB,EAAWiB,EAAc,cAAc,QAAQ,EAChDpxB,GAAoBmwB,CAAQ,EAC5BR,GAAqBQ,EAAU,OAAQsa,CAAG,EAC1CrZ,EAAc,KAAK,YAAYjB,CAAQ,GACxCA,EAAW,CACV,KAAM,SACN,SAAUA,EACV,MAAO,EACP,MAAO,IACT,EACAua,EAAQ,IAAIliC,EAAK2nB,CAAQ,EAC7B,CACF,CACA,SAASiZ,GAAoBqB,EAAKllC,EAAS,CACzCojC,GAAmB,EAAE8B,EAAKllC,CAAO,EACjC,IAAI6rB,EAAgBoY,GACpB,GAAIpY,GAAiBqZ,EAAK,CACxB,IAAIC,EAAU5qC,GAAqBsxB,CAAa,EAAE,iBAChD5oB,EAAMyhC,GAAaQ,CAAG,EACtBta,EAAWua,EAAQ,IAAIliC,CAAG,EAC5B2nB,IACIA,EAAWiB,EAAc,cAAc+Y,GAAyB3hC,CAAG,CAAC,EACtE2nB,IACIsa,EAAMz1C,GAAO,CAAE,IAAKy1C,EAAK,MAAO,GAAI,KAAM,QAAS,EAAGllC,CAAO,GAC9DA,EAAUkjC,GAAgB,IAAIjgC,CAAG,IAChCmiC,GAA2BF,EAAKllC,CAAO,EACxC4qB,EAAWiB,EAAc,cAAc,QAAQ,EAChDpxB,GAAoBmwB,CAAQ,EAC5BR,GAAqBQ,EAAU,OAAQsa,CAAG,EAC1CrZ,EAAc,KAAK,YAAYjB,CAAQ,GACxCA,EAAW,CACV,KAAM,SACN,SAAUA,EACV,MAAO,EACP,MAAO,IACT,EACAua,EAAQ,IAAIliC,EAAK2nB,CAAQ,EAC7B,CACF,CACA,SAASV,GAAYp5B,EAAMu0C,EAAcr7B,EAAconB,EAAiB,CACtE,IAAI7+B,GAA4BA,EAC9BT,GAAwB,SACtB4/B,GAAiBn/B,CAAwB,EACzC,KACJ,GAAI,CAACA,EAA0B,MAAM,MAAMtE,EAAuB,GAAG,CAAC,EACtE,OAAQ6C,EAAM,CACZ,IAAK,OACL,IAAK,QACH,OAAO,KACT,IAAK,QACH,OAAoB,OAAOkZ,EAAa,YAAjC,UACQ,OAAOA,EAAa,MAAjC,UACIq7B,EAAeZ,GAAYz6B,EAAa,IAAI,EAC7CA,EAAezP,GACdhI,CACF,EAAE,gBACD6+B,EAAkBpnB,EAAa,IAAIq7B,CAAY,EAChDjU,IACIA,EAAkB,CAClB,KAAM,QACN,SAAU,KACV,MAAO,EACP,MAAO,IACT,EACApnB,EAAa,IAAIq7B,EAAcjU,CAAe,GAChDA,GACA,CAAE,KAAM,OAAQ,SAAU,KAAM,MAAO,EAAG,MAAO,IAAK,EAC5D,IAAK,OACH,GACmBpnB,EAAa,MAA9B,cACa,OAAOA,EAAa,MAAjC,UACa,OAAOA,EAAa,YAAjC,SACA,CACAlZ,EAAO2zC,GAAYz6B,EAAa,IAAI,EACpC,IAAIs7B,EAAa/qC,GACbhI,CACF,EAAE,gBACFgzC,EAAeD,EAAW,IAAIx0C,CAAI,EAoCpC,GAnCAy0C,IACIhzC,EACAA,EAAyB,eAAiBA,EAC3CgzC,EAAe,CACd,KAAM,aACN,SAAU,KACV,MAAO,EACP,MAAO,CAAE,QAAS,EAAG,QAAS,IAAK,CACrC,EACAD,EAAW,IAAIx0C,EAAMy0C,CAAY,GAChCD,EAAa/yC,EAAyB,cACrCoyC,GAA6B7zC,CAAI,CACnC,IACE,CAACw0C,EAAW,KACVC,EAAa,SAAWD,EACzBC,EAAa,MAAM,QAAU,GAChCrC,GAAgB,IAAIpyC,CAAI,IACpBkZ,EAAe,CACf,IAAK,UACL,GAAI,QACJ,KAAMA,EAAa,KACnB,YAAaA,EAAa,YAC1B,UAAWA,EAAa,UACxB,MAAOA,EAAa,MACpB,SAAUA,EAAa,SACvB,eAAgBA,EAAa,cAC/B,EACAk5B,GAAgB,IAAIpyC,EAAMkZ,CAAY,EACtCs7B,GACEE,GACEjzC,EACAzB,EACAkZ,EACAu7B,EAAa,KACf,IACFF,GAAyBjU,IAAT,KAClB,MAAM,MAAMnjC,EAAuB,IAAK,EAAE,CAAC,EAC7C,OAAOs3C,CACT,CACA,GAAIF,GAAyBjU,IAAT,KAClB,MAAM,MAAMnjC,EAAuB,IAAK,EAAE,CAAC,EAC7C,OAAO,KACT,IAAK,SACH,OACGo3C,EAAer7B,EAAa,MAC5BA,EAAeA,EAAa,IAChB,OAAOA,GAApB,UACAq7B,GACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACMA,EAAeX,GAAa16B,CAAY,EACzCA,EAAezP,GACdhI,CACF,EAAE,iBACD6+B,EAAkBpnB,EAAa,IAAIq7B,CAAY,EAChDjU,IACIA,EAAkB,CAClB,KAAM,SACN,SAAU,KACV,MAAO,EACP,MAAO,IACT,EACApnB,EAAa,IAAIq7B,EAAcjU,CAAe,GAChDA,GACA,CAAE,KAAM,OAAQ,SAAU,KAAM,MAAO,EAAG,MAAO,IAAK,EAE9D,QACE,MAAM,MAAMnjC,EAAuB,IAAK6C,CAAI,CAAC,CACjD,CACF,CACA,SAAS2zC,GAAYL,EAAM,CACzB,MAAO,SAAW1nC,GAA+C0nC,CAAI,EAAI,GAC3E,CACA,SAASO,GAA6B1hC,EAAK,CACzC,MAAO,0BAA4BA,EAAM,GAC3C,CACA,SAASwiC,GAA4BC,EAAU,CAC7C,OAAOj2C,GAAO,CAAC,EAAGi2C,EAAU,CAC1B,kBAAmBA,EAAS,WAC5B,WAAY,IACd,CAAC,CACH,CACA,SAASF,GAAkB3Z,EAAe5oB,EAAK0iC,EAAczsB,EAAO,CAClE2S,EAAc,cAAc,mCAAqC5oB,EAAM,GAAG,EACrEiW,EAAM,QAAU,GACfjW,EAAM4oB,EAAc,cAAc,MAAM,EACzC3S,EAAM,QAAUjW,EACjBA,EAAI,iBAAiB,OAAQ,UAAY,CACvC,OAAQiW,EAAM,SAAW,CAC3B,CAAC,EACDjW,EAAI,iBAAiB,QAAS,UAAY,CACxC,OAAQiW,EAAM,SAAW,CAC3B,CAAC,EACDkR,GAAqBnnB,EAAK,OAAQ0iC,CAAY,EAC9ClrC,GAAoBwI,CAAG,EACvB4oB,EAAc,KAAK,YAAY5oB,CAAG,EACxC,CACA,SAASyhC,GAAaQ,EAAK,CACzB,MAAO,SAAWxoC,GAA+CwoC,CAAG,EAAI,IAC1E,CACA,SAASN,GAAyB3hC,EAAK,CACrC,MAAO,gBAAkBA,CAC3B,CACA,SAASuuB,GAAgBL,EAAevG,EAAUtrB,EAAO,CAEvD,GADAsrB,EAAS,QACIA,EAAS,WAAlB,KACF,OAAQA,EAAS,KAAM,CACrB,IAAK,QACH,IAAIxd,EAAW+jB,EAAc,cAC3B,qBACEz0B,GAA+C4C,EAAM,IAAI,EACzD,IACJ,EACA,GAAI8N,EACF,OACGwd,EAAS,SAAWxd,EACrB3S,GAAoB2S,CAAQ,EAC5BA,EAEJ,IAAIw4B,EAAan2C,GAAO,CAAC,EAAG6P,EAAO,CACjC,YAAaA,EAAM,KACnB,kBAAmBA,EAAM,WACzB,KAAM,KACN,WAAY,IACd,CAAC,EACD,OAAA8N,GAAY+jB,EAAc,eAAiBA,GAAe,cACxD,OACF,EACA12B,GAAoB2S,CAAQ,EAC5Bgd,GAAqBhd,EAAU,QAASw4B,CAAU,EAClDX,GAAiB73B,EAAU9N,EAAM,WAAY6xB,CAAa,EAClDvG,EAAS,SAAWxd,EAC9B,IAAK,aACHw4B,EAAanB,GAAYnlC,EAAM,IAAI,EACnC,IAAIumC,EAAe1U,EAAc,cAC/BwT,GAA6BiB,CAAU,CACzC,EACA,GAAIC,EACF,OACGjb,EAAS,MAAM,SAAW,EAC1BA,EAAS,SAAWib,EACrBprC,GAAoBorC,CAAY,EAChCA,EAEJz4B,EAAWq4B,GAA4BnmC,CAAK,GAC3CsmC,EAAa1C,GAAgB,IAAI0C,CAAU,IAC1Cd,GAA+B13B,EAAUw4B,CAAU,EACrDC,GACE1U,EAAc,eAAiBA,GAC/B,cAAc,MAAM,EACtB12B,GAAoBorC,CAAY,EAChC,IAAIC,EAAeD,EACnB,OAAAC,EAAa,GAAK,IAAI,QAAQ,SAAU90B,EAASg0B,EAAQ,CACvDc,EAAa,OAAS90B,EACtB80B,EAAa,QAAUd,CACzB,CAAC,EACD5a,GAAqByb,EAAc,OAAQz4B,CAAQ,EACnDwd,EAAS,MAAM,SAAW,EAC1Bqa,GAAiBY,EAAcvmC,EAAM,WAAY6xB,CAAa,EACtDvG,EAAS,SAAWib,EAC9B,IAAK,SAEH,OADAA,EAAenB,GAAaplC,EAAM,GAAG,GAElCsmC,EAAazU,EAAc,cAC1ByT,GAAyBiB,CAAY,CACvC,IAGGjb,EAAS,SAAWgb,EACrBnrC,GAAoBmrC,CAAU,EAC9BA,IAEJx4B,EAAW9N,GACNsmC,EAAa1C,GAAgB,IAAI2C,CAAY,KAC/Cz4B,EAAW3d,GAAO,CAAC,EAAG6P,CAAK,EAC1B8lC,GAA2Bh4B,EAAUw4B,CAAU,GACnDzU,EAAgBA,EAAc,eAAiBA,EAC/CyU,EAAazU,EAAc,cAAc,QAAQ,EACjD12B,GAAoBmrC,CAAU,EAC9Bxb,GAAqBwb,EAAY,OAAQx4B,CAAQ,EACjD+jB,EAAc,KAAK,YAAYyU,CAAU,EACjChb,EAAS,SAAWgb,GAC9B,IAAK,OACH,OAAO,KACT,QACE,MAAM,MAAM33C,EAAuB,IAAK28B,EAAS,IAAI,CAAC,CAC1D,MAEiBA,EAAS,OAA1B,eACSA,EAAS,MAAM,QAAU,KAAhC,IACExd,EAAWwd,EAAS,SACrBA,EAAS,MAAM,SAAW,EAC3Bqa,GAAiB73B,EAAU9N,EAAM,WAAY6xB,CAAa,GAC9D,OAAOvG,EAAS,QAClB,CACA,SAASqa,GAAiB73B,EAAUy3B,EAAYxuC,EAAM,CACpD,QACM0vC,EAAQ1vC,EAAK,iBACb,gEACF,EACAmpB,EAAOumB,EAAM,OAASA,EAAMA,EAAM,OAAS,CAAC,EAAI,KAChDC,EAAQxmB,EACRpxB,EAAI,EACNA,EAAI23C,EAAM,OACV33C,IACA,CACA,IAAIE,EAAOy3C,EAAM33C,CAAC,EAClB,GAAIE,EAAK,QAAQ,aAAeu2C,EAAYmB,EAAQ13C,UAC3C03C,IAAUxmB,EAAM,KAC3B,CACAwmB,EACIA,EAAM,WAAW,aAAa54B,EAAU44B,EAAM,WAAW,GACvDnB,EAAmBxuC,EAAK,WAAX,EAAsBA,EAAK,KAAOA,EACjDwuC,EAAW,aAAaz3B,EAAUy3B,EAAW,UAAU,EAC7D,CACA,SAASC,GAA+BmB,EAAiBN,EAAc,CAC7DM,EAAgB,aAAxB,OACGA,EAAgB,YAAcN,EAAa,aACtCM,EAAgB,gBAAxB,OACGA,EAAgB,eAAiBN,EAAa,gBACzCM,EAAgB,OAAxB,OAAkCA,EAAgB,MAAQN,EAAa,MACzE,CACA,SAASP,GAA2Bc,EAAaP,EAAc,CACrDO,EAAY,aAApB,OACGA,EAAY,YAAcP,EAAa,aAClCO,EAAY,gBAApB,OACGA,EAAY,eAAiBP,EAAa,gBACrCO,EAAY,WAApB,OACGA,EAAY,UAAYP,EAAa,UAC1C,CACA,IAAIlU,GAAY,KAChB,SAASH,GAA4BxgC,EAAMq1C,EAActa,EAAe,CACtE,GAAa4F,KAAT,KAAoB,CACtB,IAAInhB,EAAQ,IAAI,IACZ81B,EAAU3U,GAAY,IAAI,IAC9B2U,EAAO,IAAIva,EAAevb,CAAK,CACjC,MACG81B,EAAS3U,GACPnhB,EAAQ81B,EAAO,IAAIva,CAAa,EACjCvb,IAAWA,EAAQ,IAAI,IAAQ81B,EAAO,IAAIva,EAAevb,CAAK,GAClE,GAAIA,EAAM,IAAIxf,CAAI,EAAG,OAAOwf,EAG5B,IAFAA,EAAM,IAAIxf,EAAM,IAAI,EACpB+6B,EAAgBA,EAAc,qBAAqB/6B,CAAI,EAClDs1C,EAAS,EAAGA,EAASva,EAAc,OAAQua,IAAU,CACxD,IAAI93C,EAAOu9B,EAAcua,CAAM,EAC/B,GACE,EACE93C,EAAKuL,EAAuB,GAC5BvL,EAAKgL,EAAmB,GACZxI,IAAX,QAAoCxC,EAAK,aAAa,KAAK,IAAxC,eAEWA,EAAK,eAAtC,6BACA,CACA,IAAI+3C,EAAU/3C,EAAK,aAAa63C,CAAY,GAAK,GACjDE,EAAUv1C,EAAOu1C,EACjB,IAAI96B,EAAW+E,EAAM,IAAI+1B,CAAO,EAChC96B,EAAWA,EAAS,KAAKjd,CAAI,EAAIgiB,EAAM,IAAI+1B,EAAS,CAAC/3C,CAAI,CAAC,CAC5D,CACF,CACA,OAAOgiB,CACT,CACA,SAASihB,GAAeJ,EAAergC,EAAMsc,EAAU,CACrD+jB,EAAgBA,EAAc,eAAiBA,EAC/CA,EAAc,KAAK,aACjB/jB,EACYtc,IAAZ,QAAmBqgC,EAAc,cAAc,cAAc,EAAI,IACnE,CACF,CACA,SAASxmB,GAAoB7Z,EAAMwO,EAAOgnC,EAAa,CACrD,GAAUA,IAAN,GAA6BhnC,EAAM,UAAd,KAAwB,MAAO,GACxD,OAAQxO,EAAM,CACZ,IAAK,OACL,IAAK,QACH,MAAO,GACT,IAAK,QACH,GACe,OAAOwO,EAAM,YAA1B,UACa,OAAOA,EAAM,MAA1B,UACOA,EAAM,OAAb,GAEA,MACF,MAAO,GACT,IAAK,OACH,GACe,OAAOA,EAAM,KAA1B,UACa,OAAOA,EAAM,MAA1B,UACOA,EAAM,OAAb,IACAA,EAAM,QACNA,EAAM,QAEN,MACF,OAAQA,EAAM,IAAK,CACjB,IAAK,aACH,OACGxO,EAAOwO,EAAM,SACD,OAAOA,EAAM,YAA1B,UAAgDxO,GAAR,KAE5C,QACE,MAAO,EACX,CACF,IAAK,SACH,GACEwO,EAAM,OACS,OAAOA,EAAM,OAA5B,YACa,OAAOA,EAAM,OAA1B,UACA,CAACA,EAAM,QACP,CAACA,EAAM,SACPA,EAAM,KACO,OAAOA,EAAM,KAA1B,SAEA,MAAO,EACb,CACA,MAAO,EACT,CACA,SAASurB,GAAgBD,EAAU,CACjC,MAAO,EAAiBA,EAAS,OAA1B,eAAyCA,EAAS,MAAM,QAAU,KAAhC,EAG3C,CACA,SAASgJ,GAAgB1a,EAAOiY,EAAevG,EAAUtrB,EAAO,CAC9D,GACmBsrB,EAAS,OAA1B,eACc,OAAOtrB,EAAM,OAA1B,UACQ,WAAWA,EAAM,KAAK,EAAE,UAA/B,MACKsrB,EAAS,MAAM,QAAU,KAAhC,EACA,CACA,GAAaA,EAAS,WAAlB,KAA4B,CAC9B,IAAI3nB,EAAMwhC,GAAYnlC,EAAM,IAAI,EAC9B8N,EAAW+jB,EAAc,cACvBwT,GAA6B1hC,CAAG,CAClC,EACF,GAAImK,EAAU,CACZ+jB,EAAgB/jB,EAAS,GAChB+jB,IAAT,MACe,OAAOA,GAApB,UACe,OAAOA,EAAc,MAApC,aACCjY,EAAM,QACNA,EAAQqtB,GAAY,KAAKrtB,CAAK,EAC/BiY,EAAc,KAAKjY,EAAOA,CAAK,GACjC0R,EAAS,MAAM,SAAW,EAC1BA,EAAS,SAAWxd,EACpB3S,GAAoB2S,CAAQ,EAC5B,MACF,CACAA,EAAW+jB,EAAc,eAAiBA,EAC1C7xB,EAAQmmC,GAA4BnmC,CAAK,GACxC2D,EAAMigC,GAAgB,IAAIjgC,CAAG,IAC5B6hC,GAA+BxlC,EAAO2D,CAAG,EAC3CmK,EAAWA,EAAS,cAAc,MAAM,EACxC3S,GAAoB2S,CAAQ,EAC5B,IAAI04B,EAAe14B,EACnB04B,EAAa,GAAK,IAAI,QAAQ,SAAU90B,EAASg0B,EAAQ,CACvDc,EAAa,OAAS90B,EACtB80B,EAAa,QAAUd,CACzB,CAAC,EACD5a,GAAqBhd,EAAU,OAAQ9N,CAAK,EAC5CsrB,EAAS,SAAWxd,CACtB,CACS8L,EAAM,cAAf,OAA+BA,EAAM,YAAc,IAAI,KACvDA,EAAM,YAAY,IAAI0R,EAAUuG,CAAa,GAC5CA,EAAgBvG,EAAS,MAAM,WACvBA,EAAS,MAAM,QAAU,KAAhC,IACC1R,EAAM,QACN0R,EAAW2b,GAAY,KAAKrtB,CAAK,EAClCiY,EAAc,iBAAiB,OAAQvG,CAAQ,EAC/CuG,EAAc,iBAAiB,QAASvG,CAAQ,EACpD,CACF,CACA,IAAI4b,GAA4B,EAChC,SAASxP,GAAuB9d,EAAO6d,EAAe,CACpD,OAAA7d,EAAM,aACEA,EAAM,QAAZ,GACAutB,GAA2BvtB,EAAOA,EAAM,WAAW,EAC9C,EAAIA,EAAM,OAAS,EAAIA,EAAM,SAChC,SAAUwtB,EAAQ,CAChB,IAAIC,EAAkB,WAAW,UAAY,CAG3C,GAFAztB,EAAM,aACJutB,GAA2BvtB,EAAOA,EAAM,WAAW,EACjDA,EAAM,UAAW,CACnB,IAAI0tB,EAAY1tB,EAAM,UACtBA,EAAM,UAAY,KAClB0tB,EAAU,CACZ,CACF,EAAG,IAAM7P,CAAa,EACtB,EAAI7d,EAAM,UACFstB,KAAN,IACCA,GAA4B,MAAQlF,GAAkB,GACzD,IAAIuF,EAAW,WACb,UAAY,CAEV,GADA3tB,EAAM,iBAAmB,GAEjBA,EAAM,QAAZ,IACCA,EAAM,aACLutB,GAA2BvtB,EAAOA,EAAM,WAAW,EACrDA,EAAM,WACN,CACA,IAAI0tB,EAAY1tB,EAAM,UACtBA,EAAM,UAAY,KAClB0tB,EAAU,CACZ,CACF,GACC1tB,EAAM,SAAWstB,GAA4B,GAAK,KACjDzP,CACJ,EACA,OAAA7d,EAAM,UAAYwtB,EACX,UAAY,CACjBxtB,EAAM,UAAY,KAClB,aAAaytB,CAAe,EAC5B,aAAaE,CAAQ,CACvB,CACF,EACA,IACN,CACA,SAASN,IAAc,CAErB,GADA,KAAK,QACK,KAAK,QAAX,IAA2B,KAAK,WAAX,GAAuB,CAAC,KAAK,mBACpD,GAAI,KAAK,YAAaE,GAA2B,KAAM,KAAK,WAAW,UAC9D,KAAK,UAAW,CACvB,IAAIG,EAAY,KAAK,UACrB,KAAK,UAAY,KACjBA,EAAU,CACZ,EACJ,CACA,IAAIE,GAAoB,KACxB,SAASL,GAA2BvtB,EAAO1e,EAAW,CACpD0e,EAAM,YAAc,KACXA,EAAM,YAAf,OACGA,EAAM,QACN4tB,GAAoB,IAAI,IACzBtsC,EAAU,QAAQusC,GAA0B7tB,CAAK,EAChD4tB,GAAoB,KACrBP,GAAY,KAAKrtB,CAAK,EAC1B,CACA,SAAS6tB,GAAyB1wC,EAAMu0B,EAAU,CAChD,GAAI,EAAEA,EAAS,MAAM,QAAU,GAAI,CACjC,IAAIoc,EAAcF,GAAkB,IAAIzwC,CAAI,EAC5C,GAAI2wC,EAAa,IAAIxnB,EAAOwnB,EAAY,IAAI,IAAI,MAC3C,CACHA,EAAc,IAAI,IAClBF,GAAkB,IAAIzwC,EAAM2wC,CAAW,EACvC,QACMjB,EAAQ1vC,EAAK,iBACb,8CACF,EACA,EAAI,EACN,EAAI0vC,EAAM,OACV,IACA,CACA,IAAIz3C,EAAOy3C,EAAM,CAAC,GAELz3C,EAAK,WAAhB,QACcA,EAAK,aAAa,OAAO,IAAvC,aAEA04C,EAAY,IAAI14C,EAAK,QAAQ,WAAYA,CAAI,EAAIkxB,EAAOlxB,EAC5D,CACAkxB,GAAQwnB,EAAY,IAAI,KAAMxnB,CAAI,CACpC,CACAumB,EAAQnb,EAAS,SACjBt8B,EAAOy3C,EAAM,aAAa,iBAAiB,EAC3C,EAAIiB,EAAY,IAAI14C,CAAI,GAAKkxB,EAC7B,IAAMA,GAAQwnB,EAAY,IAAI,KAAMjB,CAAK,EACzCiB,EAAY,IAAI14C,EAAMy3C,CAAK,EAC3B,KAAK,QACLvmB,EAAO+mB,GAAY,KAAK,IAAI,EAC5BR,EAAM,iBAAiB,OAAQvmB,CAAI,EACnCumB,EAAM,iBAAiB,QAASvmB,CAAI,EACpC,EACI,EAAE,WAAW,aAAaumB,EAAO,EAAE,WAAW,GAC5C1vC,EAAaA,EAAK,WAAX,EAAsBA,EAAK,KAAOA,EAC3CA,EAAK,aAAa0vC,EAAO1vC,EAAK,UAAU,GAC5Cu0B,EAAS,MAAM,SAAW,CAC5B,CACF,CACA,IAAIn4B,GAAwB,CAC1B,SAAUxC,GACV,SAAU,KACV,SAAU,KACV,cAAekB,GACf,eAAgBA,GAChB,aAAc,CAChB,EACA,SAAS81C,GACPhgC,EACAzX,EACA03C,EACApjB,EACAqB,EACAI,EACA6U,EACA+M,EACAC,EACA,CACA,KAAK,IAAM,EACX,KAAK,cAAgBngC,EACrB,KAAK,UAAY,KAAK,QAAU,KAAK,gBAAkB,KACvD,KAAK,cAAgB,GACrB,KAAK,aACH,KAAK,KACL,KAAK,eACL,KAAK,QACL,KAAK,oBACH,KACJ,KAAK,iBAAmB,EACxB,KAAK,gBAAkB9P,GAAc,EAAE,EACvC,KAAK,eACH,KAAK,oBACL,KAAK,2BACL,KAAK,aACL,KAAK,UACL,KAAK,YACL,KAAK,eACL,KAAK,aACH,EACJ,KAAK,cAAgBA,GAAc,CAAC,EACpC,KAAK,cAAgBA,GAAc,IAAI,EACvC,KAAK,iBAAmB2sB,EACxB,KAAK,gBAAkBqB,EACvB,KAAK,cAAgBI,EACrB,KAAK,mBAAqB6U,EAC1B,KAAK,YAAc,KACnB,KAAK,iBAAmB,EACxB,KAAK,UAAYgN,EACjB,KAAK,sBAAwB,IAAI,GACnC,CACA,SAASC,GACPpgC,EACAzX,EACA03C,EACAI,EACAC,EACAC,EACA1jB,EACAsjB,EACAjiB,EACAI,EACA6U,EACA+M,EACA,CACA,OAAAlgC,EAAgB,IAAIggC,GAClBhgC,EACAzX,EACA03C,EACApjB,EACAqB,EACAI,EACA6U,EACA+M,EACAC,CACF,EACA53C,EAAM,EACCg4C,IAAP,KAAwBh4C,GAAO,IAC/Bg4C,EAAet9B,GAAqB,EAAG,KAAM,KAAM1a,CAAG,EACtDyX,EAAc,QAAUugC,EACxBA,EAAa,UAAYvgC,EACzBzX,EAAM4gB,GAAY,EAClB5gB,EAAI,WACJyX,EAAc,YAAczX,EAC5BA,EAAI,WACJg4C,EAAa,cAAgB,CAC3B,QAASF,EACT,aAAcJ,EACd,MAAO13C,CACT,EACAymB,GAAsBuxB,CAAY,EAC3BvgC,CACT,CACA,SAASwgC,GAAqBC,EAAiB,CAC7C,OAAKA,GACLA,EAAkB59B,GACX49B,GAFsB59B,EAG/B,CACA,SAAS69B,GACPnN,EACAxjC,EACA6F,EACA+hC,EACA8I,EACA5vB,EACA,CACA4vB,EAAkBD,GAAqBC,CAAe,EAC7C9I,EAAU,UAAnB,KACKA,EAAU,QAAU8I,EACpB9I,EAAU,eAAiB8I,EAChC9I,EAAYzoB,GAAanf,CAAI,EAC7B4nC,EAAU,QAAU,CAAE,QAAS/hC,CAAQ,EACvCib,EAAsBA,IAAX,OAAsB,KAAOA,EAC/BA,IAAT,OAAsB8mB,EAAU,SAAW9mB,GAC3Cjb,EAAUuZ,GAAcokB,EAAWoE,EAAW5nC,CAAI,EACzC6F,IAAT,OACGmhB,GAAsBnhB,EAAS29B,EAAWxjC,CAAI,EAC/Cuf,GAAoB1Z,EAAS29B,EAAWxjC,CAAI,EAChD,CACA,SAAS4wC,GAAkBp5C,EAAOssC,EAAW,CAE3C,GADAtsC,EAAQA,EAAM,cACDA,IAAT,MAA2BA,EAAM,aAAf,KAA2B,CAC/C,IAAIS,EAAIT,EAAM,UACdA,EAAM,UAAkBS,IAAN,GAAWA,EAAI6rC,EAAY7rC,EAAI6rC,CACnD,CACF,CACA,SAAS+M,GAA2Br5C,EAAOssC,EAAW,CACpD8M,GAAkBp5C,EAAOssC,CAAS,GACjCtsC,EAAQA,EAAM,YAAco5C,GAAkBp5C,EAAOssC,CAAS,CACjE,CACA,SAASgN,GAA2Bt5C,EAAO,CACzC,GAAWA,EAAM,MAAb,IAA2BA,EAAM,MAAb,GAAkB,CACxC,IAAI6H,EAAOmT,GAA+Bhb,EAAO,QAAQ,EAChD6H,IAAT,MAAiB2nB,GAAsB3nB,EAAM7H,EAAO,QAAQ,EAC5Dq5C,GAA2Br5C,EAAO,QAAQ,CAC5C,CACF,CACA,SAASu5C,GAAkCv5C,EAAO,CAChD,GAAWA,EAAM,MAAb,IAA2BA,EAAM,MAAb,GAAkB,CACxC,IAAIwI,EAAOwrB,GAAkB,EAC7BxrB,EAAO6B,GAAgC7B,CAAI,EAC3C,IAAIX,EAAOmT,GAA+Bhb,EAAOwI,CAAI,EAC5CX,IAAT,MAAiB2nB,GAAsB3nB,EAAM7H,EAAOwI,CAAI,EACxD6wC,GAA2Br5C,EAAOwI,CAAI,CACxC,CACF,CACA,IAAIu3B,GAAW,GACf,SAAS8P,GACPh6B,EACAi5B,EACAsB,EACA5/B,EACA,CACA,IAAI+f,EAAiB9tB,EAAqB,EAC1CA,EAAqB,EAAI,KACzB,IAAImI,EAAmBlI,GAAwB,EAC/C,GAAI,CACDA,GAAwB,EAAI,EAC3BqtC,GAAcl6B,EAAci5B,EAAkBsB,EAAW5/B,CAAW,CACxE,QAAE,CACC9N,GAAwB,EAAIkI,EAC1BnI,EAAqB,EAAI8tB,CAC9B,CACF,CACA,SAASuf,GACPj6B,EACAi5B,EACAsB,EACA5/B,EACA,CACA,IAAI+f,EAAiB9tB,EAAqB,EAC1CA,EAAqB,EAAI,KACzB,IAAImI,EAAmBlI,GAAwB,EAC/C,GAAI,CACDA,GAAwB,EAAI,EAC3BqtC,GAAcl6B,EAAci5B,EAAkBsB,EAAW5/B,CAAW,CACxE,QAAE,CACC9N,GAAwB,EAAIkI,EAC1BnI,EAAqB,EAAI8tB,CAC9B,CACF,CACA,SAASwf,GACPl6B,EACAi5B,EACAa,EACAn/B,EACA,CACA,GAAIuvB,GAAU,CACZ,IAAIyZ,EAAYC,GAA0BjpC,CAAW,EACrD,GAAagpC,IAAT,KACFxJ,GACEn6B,EACAi5B,EACAt+B,EACAkpC,GACA/J,CACF,EACEgK,GAAuB9jC,EAAcrF,CAAW,UAElDopC,GACEJ,EACA3jC,EACAi5B,EACAa,EACAn/B,CACF,EAEAA,EAAY,gBAAgB,UAE3BmpC,GAAuB9jC,EAAcrF,CAAW,EACjDs+B,EAAmB,GACjB,GAAK+K,GAAyB,QAAQhkC,CAAY,EACpD,CACA,KAAgB2jC,IAAT,MAAsB,CAC3B,IAAIx5C,EAAQ4L,GAAoB4tC,CAAS,EACzC,GAAax5C,IAAT,KACF,OAAQA,EAAM,IAAK,CACjB,IAAK,GAEH,GADAA,EAAQA,EAAM,UACVA,EAAM,QAAQ,cAAc,aAAc,CAC5C,IAAI0H,EAAQD,GAAwBzH,EAAM,YAAY,EACtD,GAAU0H,IAAN,EAAa,CACf,IAAIG,EAAO7H,EAEX,IADA6H,EAAK,cAAgB,EAChBA,EAAK,gBAAkB,EAAGH,GAAS,CACtC,IAAIc,EAAO,GAAM,GAAKtB,GAAMQ,CAAK,EACjCG,EAAK,cAAc,CAAC,GAAKW,EACzBd,GAAS,CAACc,CACZ,CACA4+B,GAAsBpnC,CAAK,GACpB8nB,GAAmB,KAA1B,IACIyV,GAAqCl3B,GAAI,EAAI,IAC/CwiC,GAA8B,EAAG,EAAE,EACvC,CACF,CACA,MACF,IAAK,IACL,IAAK,IACFhhC,EAAOmT,GAA+Bhb,EAAO,CAAC,EACpC6H,IAAT,MAAiB2nB,GAAsB3nB,EAAM7H,EAAO,CAAC,EACrDmR,GAAgB,EAChBkoC,GAA2Br5C,EAAO,CAAC,CACzC,CAUF,GATAA,EAAQy5C,GAA0BjpC,CAAW,EACpCxQ,IAAT,MACEgwC,GACEn6B,EACAi5B,EACAt+B,EACAkpC,GACA/J,CACF,EACE3vC,IAAUw5C,EAAW,MACzBA,EAAYx5C,CACd,CACSw5C,IAAT,MAAsBhpC,EAAY,gBAAgB,CACpD,MACEw/B,GACEn6B,EACAi5B,EACAt+B,EACA,KACAm/B,CACF,CACJ,CACF,CACA,SAAS8J,GAA0BjpC,EAAa,CAC9C,OAAAA,EAAcD,GAAeC,CAAW,EACjCspC,GAA2BtpC,CAAW,CAC/C,CACA,IAAIkpC,GAAoB,KACxB,SAASI,GAA2BtuC,EAAY,CAG9C,GAFAkuC,GAAoB,KACpBluC,EAAaD,GAA2BC,CAAU,EACrCA,IAAT,KAAqB,CACvB,IAAIvL,EAAiBF,GAAuByL,CAAU,EACtD,GAAavL,IAAT,KAAyBuL,EAAa,SACrC,CACH,IAAIxK,EAAMf,EAAe,IACzB,GAAWe,IAAP,GAAY,CAEd,GADAwK,EAAatL,GAA6BD,CAAc,EAC3CuL,IAAT,KAAqB,OAAOA,EAChCA,EAAa,IACf,SAAkBxK,IAAP,GAAY,CAErB,GADAwK,EAAapL,GAA6BH,CAAc,EAC3CuL,IAAT,KAAqB,OAAOA,EAChCA,EAAa,IACf,SAAiBxK,IAAN,EAAW,CACpB,GAAIf,EAAe,UAAU,QAAQ,cAAc,aACjD,OAAaA,EAAe,MAArB,EACHA,EAAe,UAAU,cACzB,KACNuL,EAAa,IACf,MAAOvL,IAAmBuL,IAAeA,EAAa,KACxD,CACF,CACA,OAAAkuC,GAAoBluC,EACb,IACT,CACA,SAASf,GAAiBoL,EAAc,CACtC,OAAQA,EAAc,CACpB,IAAK,eACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,OACL,IAAK,MACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,cACL,IAAK,YACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,SACL,IAAK,kBACL,IAAK,YACL,IAAK,mBACL,IAAK,iBACL,IAAK,oBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,OACL,IAAK,mBACL,IAAK,QACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,cACH,MAAO,GACT,IAAK,OACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACH,MAAO,GACT,IAAK,UACH,OAAQvP,GAAwB,EAAG,CACjC,KAAKC,GACH,MAAO,GACT,KAAKC,GACH,MAAO,GACT,KAAKC,GACL,KAAKC,GACH,MAAO,IACT,KAAKC,GACH,MAAO,WACT,QACE,MAAO,GACX,CACF,QACE,MAAO,GACX,CACF,CACA,IAAIozC,GAA4B,GAC9BC,GAAc,KACdC,GAAa,KACbC,GAAc,KACdC,GAAiB,IAAI,IACrBC,GAAwB,IAAI,IAC5BC,GAAiC,CAAC,EAClCR,GACE,sPAAsP,MACpP,GACF,EACJ,SAASF,GAAuB9jC,EAAcrF,EAAa,CACzD,OAAQqF,EAAc,CACpB,IAAK,UACL,IAAK,WACHmkC,GAAc,KACd,MACF,IAAK,YACL,IAAK,YACHC,GAAa,KACb,MACF,IAAK,YACL,IAAK,WACHC,GAAc,KACd,MACF,IAAK,cACL,IAAK,aACHC,GAAe,OAAO3pC,EAAY,SAAS,EAC3C,MACF,IAAK,oBACL,IAAK,qBACH4pC,GAAsB,OAAO5pC,EAAY,SAAS,CACtD,CACF,CACA,SAAS8pC,GACPC,EACAf,EACA3jC,EACAi5B,EACAa,EACAn/B,EACA,CACA,OACW+pC,IAAT,MACAA,EAAoB,cAAgB/pC,GAGjC+pC,EAAsB,CACrB,UAAWf,EACX,aAAc3jC,EACd,iBAAkBi5B,EAClB,YAAat+B,EACb,iBAAkB,CAACm/B,CAAe,CACpC,EACS6J,IAAT,OACIA,EAAY5tC,GAAoB4tC,CAAS,EAClCA,IAAT,MAAsBF,GAA2BE,CAAS,GAC5De,IAEJA,EAAoB,kBAAoBzL,EACxC0K,EAAYe,EAAoB,iBACvB5K,IAAT,MACS6J,EAAU,QAAQ7J,CAAe,IAAxC,IACA6J,EAAU,KAAK7J,CAAe,EACzB4K,EACT,CACA,SAASX,GACPJ,EACA3jC,EACAi5B,EACAa,EACAn/B,EACA,CACA,OAAQqF,EAAc,CACpB,IAAK,UACH,OACGmkC,GAAcM,GACbN,GACAR,EACA3jC,EACAi5B,EACAa,EACAn/B,CACF,EACA,GAEJ,IAAK,YACH,OACGypC,GAAaK,GACZL,GACAT,EACA3jC,EACAi5B,EACAa,EACAn/B,CACF,EACA,GAEJ,IAAK,YACH,OACG0pC,GAAcI,GACbJ,GACAV,EACA3jC,EACAi5B,EACAa,EACAn/B,CACF,EACA,GAEJ,IAAK,cACH,IAAIgqC,EAAYhqC,EAAY,UAC5B,OAAA2pC,GAAe,IACbK,EACAF,GACEH,GAAe,IAAIK,CAAS,GAAK,KACjChB,EACA3jC,EACAi5B,EACAa,EACAn/B,CACF,CACF,EACO,GACT,IAAK,oBACH,OACGgqC,EAAYhqC,EAAY,UACzB4pC,GAAsB,IACpBI,EACAF,GACEF,GAAsB,IAAII,CAAS,GAAK,KACxChB,EACA3jC,EACAi5B,EACAa,EACAn/B,CACF,CACF,EACA,EAEN,CACA,MAAO,EACT,CACA,SAASiqC,GAA+BC,EAAc,CACpD,IAAIjvC,EAAaF,GAA2BmvC,EAAa,MAAM,EAC/D,GAAajvC,IAAT,KAAqB,CACvB,IAAIxL,EAAiBF,GAAuB0L,CAAU,EACtD,GAAaxL,IAAT,MACF,GAAMwL,EAAaxL,EAAe,IAAawL,IAAP,IACtC,GACIA,EAAavL,GAA6BD,CAAc,EACjDwL,IAAT,KACA,CACAivC,EAAa,UAAYjvC,EACzBf,GAAgBgwC,EAAa,SAAU,UAAY,CACjDnB,GAAkCt5C,CAAc,CAClD,CAAC,EACD,MACF,UACgBwL,IAAP,IACT,GACIA,EAAarL,GAA6BH,CAAc,EACjDwL,IAAT,KACA,CACAivC,EAAa,UAAYjvC,EACzBf,GAAgBgwC,EAAa,SAAU,UAAY,CACjDnB,GAAkCt5C,CAAc,CAClD,CAAC,EACD,MACF,UAEMwL,IAAN,GACAxL,EAAe,UAAU,QAAQ,cAAc,aAC/C,CACAy6C,EAAa,UACLz6C,EAAe,MAArB,EACIA,EAAe,UAAU,cACzB,KACN,MACF,EACJ,CACAy6C,EAAa,UAAY,IAC3B,CACA,SAASC,GAAmCC,EAAa,CACvD,GAAaA,EAAY,YAArB,KAAgC,MAAO,GAC3C,QACMC,EAAmBD,EAAY,iBACnC,EAAIC,EAAiB,QAErB,CACA,IAAIC,EAAgBrB,GAA0BmB,EAAY,WAAW,EACrE,GAAaE,IAAT,KAAwB,CAC1BA,EAAgBF,EAAY,YAC5B,IAAIG,EAAmB,IAAID,EAAc,YACvCA,EAAc,KACdA,CACF,EACAxqC,GAAwByqC,EACxBD,EAAc,OAAO,cAAcC,CAAgB,EACnDzqC,GAAwB,IAC1B,KACE,QACGuqC,EAAmBjvC,GAAoBkvC,CAAa,EAC5CD,IAAT,MACEvB,GAA2BuB,CAAgB,EAC5CD,EAAY,UAAYE,EACzB,GAEJD,EAAiB,MAAM,CACzB,CACA,MAAO,EACT,CACA,SAASG,GAAwCJ,EAAanmC,EAAKwmC,EAAK,CACtEN,GAAmCC,CAAW,GAAKK,EAAI,OAAOxmC,CAAG,CACnE,CACA,SAASymC,IAAwB,CAC/BnB,GAA4B,GACnBC,KAAT,MACEW,GAAmCX,EAAW,IAC7CA,GAAc,MACRC,KAAT,MACEU,GAAmCV,EAAU,IAC5CA,GAAa,MACPC,KAAT,MACES,GAAmCT,EAAW,IAC7CA,GAAc,MACjBC,GAAe,QAAQa,EAAuC,EAC9DZ,GAAsB,QAAQY,EAAuC,CACvE,CACA,SAASG,GAA4BP,EAAaQ,EAAW,CAC3DR,EAAY,YAAcQ,IACtBR,EAAY,UAAY,KAC1Bb,KACIA,GAA4B,GAC9Bz6C,GAAU,0BACRA,GAAU,wBACV47C,EACF,GACN,CACA,IAAIG,GAA2B,KAC/B,SAASC,GAA4BC,EAAoB,CACvDF,KAA6BE,IACzBF,GAA2BE,EAC7Bj8C,GAAU,0BACRA,GAAU,wBACV,UAAY,CACV+7C,KAA6BE,IAC1BF,GAA2B,MAC9B,QAASz7C,EAAI,EAAGA,EAAI27C,EAAmB,OAAQ37C,GAAK,EAAG,CACrD,IAAIwuC,EAAOmN,EAAmB37C,CAAC,EAC7B47C,EAAoBD,EAAmB37C,EAAI,CAAC,EAC5Cw0B,EAAWmnB,EAAmB37C,EAAI,CAAC,EACrC,GAAmB,OAAO47C,GAAtB,WACF,IAAa1B,GAA2B0B,GAAqBpN,CAAI,IAA7D,KACF,SACG,MACP,IAAIoH,EAAW5pC,GAAoBwiC,CAAI,EAC9BoH,IAAT,OACG+F,EAAmB,OAAO37C,EAAG,CAAC,EAC9BA,GAAK,EACNs0B,GACEshB,EACA,CACE,QAAS,GACT,KAAMphB,EACN,OAAQga,EAAK,OACb,OAAQoN,CACV,EACAA,EACApnB,CACF,EACJ,CACF,CACF,EACJ,CACA,SAASyN,GAAiBuZ,EAAW,CACnC,SAASK,EAAQb,EAAa,CAC5B,OAAOO,GAA4BP,EAAaQ,CAAS,CAC3D,CACSpB,KAAT,MAAwBmB,GAA4BnB,GAAaoB,CAAS,EACjEnB,KAAT,MAAuBkB,GAA4BlB,GAAYmB,CAAS,EAC/DlB,KAAT,MAAwBiB,GAA4BjB,GAAakB,CAAS,EAC1EjB,GAAe,QAAQsB,CAAO,EAC9BrB,GAAsB,QAAQqB,CAAO,EACrC,QAAS77C,EAAI,EAAGA,EAAIy6C,GAA+B,OAAQz6C,IAAK,CAC9D,IAAI86C,EAAeL,GAA+Bz6C,CAAC,EACnD86C,EAAa,YAAcU,IAAcV,EAAa,UAAY,KACpE,CACA,KAEE,EAAIL,GAA+B,SACjCz6C,EAAIy6C,GAA+B,CAAC,EAAaz6C,EAAE,YAAX,OAG1C66C,GAA+B76C,CAAC,EACrBA,EAAE,YAAX,MAAwBy6C,GAA+B,MAAM,EAEjE,GADAz6C,GAAKw7C,EAAU,eAAiBA,GAAW,kBAC/Bx7C,GAAR,KACF,IAAK86C,EAAe,EAAGA,EAAe96C,EAAE,OAAQ86C,GAAgB,EAAG,CACjE,IAAItM,EAAOxuC,EAAE86C,CAAY,EACvBc,EAAoB57C,EAAE86C,EAAe,CAAC,EACtCgB,EAAYtN,EAAKrjC,EAAgB,GAAK,KACxC,GAAmB,OAAOywC,GAAtB,WACFE,GAAaJ,GAA4B17C,CAAC,UACnC87C,EAAW,CAClB,IAAI/tB,EAAS,KACb,GAAI6tB,GAAqBA,EAAkB,aAAa,YAAY,GAClE,GACIpN,EAAOoN,EACRE,EAAYF,EAAkBzwC,EAAgB,GAAK,KAEpD4iB,EAAS+tB,EAAU,mBAEN5B,GAA2B1L,CAAI,IAAxC,KAA2C,cAE9CzgB,EAAS+tB,EAAU,OACT,OAAO/tB,GAAtB,WACK/tB,EAAE86C,EAAe,CAAC,EAAI/sB,GACtB/tB,EAAE,OAAO86C,EAAc,CAAC,EAAIA,GAAgB,GACjDY,GAA4B17C,CAAC,CAC/B,CACF,CACJ,CACA,SAAS+7C,IAAsC,CAC7C,SAASC,EAAe9oC,EAAO,CAC7BA,EAAM,cACmBA,EAAM,OAA7B,oBACAA,EAAM,UAAU,CACd,QAAS,UAAY,CACnB,OAAO,IAAI,QAAQ,SAAU0P,EAAS,CACpC,OAAQq5B,EAAiBr5B,CAC3B,CAAC,CACH,EACA,WAAY,SACZ,OAAQ,QACV,CAAC,CACL,CACA,SAASs5B,GAAyB,CACvBD,IAAT,OAA4BA,EAAe,EAAIA,EAAiB,MAChEE,GAAe,WAAWC,EAAqB,EAAE,CACnD,CACA,SAASA,GAAsB,CAC7B,GAAI,CAACD,GAAe,CAAC,WAAW,WAAY,CAC1C,IAAIE,EAAe,WAAW,aAC9BA,GACUA,EAAa,KAArB,MACA,WAAW,SAASA,EAAa,IAAK,CACpC,MAAOA,EAAa,SAAS,EAC7B,KAAM,mBACN,QAAS,SACX,CAAC,CACL,CACF,CACA,GAAiB,OAAO,YAApB,SAAgC,CAClC,IAAIF,EAAc,GAChBF,EAAiB,KACnB,kBAAW,iBAAiB,WAAYD,CAAc,EACtD,WAAW,iBAAiB,kBAAmBE,CAAsB,EACrE,WAAW,iBAAiB,gBAAiBA,CAAsB,EACnE,WAAWE,EAAqB,GAAG,EAC5B,UAAY,CACjBD,EAAc,GACd,WAAW,oBAAoB,WAAYH,CAAc,EACzD,WAAW,oBAAoB,kBAAmBE,CAAsB,EACxE,WAAW,oBAAoB,gBAAiBA,CAAsB,EAC7DD,IAAT,OAA4BA,EAAe,EAAIA,EAAiB,KAClE,CACF,CACF,CACA,SAASK,GAAaC,EAAc,CAClC,KAAK,cAAgBA,CACvB,CACAC,GAAsB,UAAU,OAASF,GAAa,UAAU,OAC9D,SAAUhtC,EAAU,CAClB,IAAIrH,EAAO,KAAK,cAChB,GAAaA,IAAT,KAAe,MAAM,MAAMpI,EAAuB,GAAG,CAAC,EAC1D,IAAIqc,EAAUjU,EAAK,QACjBW,EAAOwrB,GAAkB,EAC3BmlB,GAAoBr9B,EAAStT,EAAM0G,EAAUrH,EAAM,KAAM,IAAI,CAC/D,EACFu0C,GAAsB,UAAU,QAAUF,GAAa,UAAU,QAC/D,UAAY,CACV,IAAIr0C,EAAO,KAAK,cAChB,GAAaA,IAAT,KAAe,CACjB,KAAK,cAAgB,KACrB,IAAIuoC,EAAYvoC,EAAK,cACrBsxC,GAAoBtxC,EAAK,QAAS,EAAG,KAAMA,EAAM,KAAM,IAAI,EAC3DsJ,GAAgB,EAChBi/B,EAAUplC,EAA4B,EAAI,IAC5C,CACF,EACF,SAASoxC,GAAsBD,EAAc,CAC3C,KAAK,cAAgBA,CACvB,CACAC,GAAsB,UAAU,2BAA6B,SAAUxrC,EAAQ,CAC7E,GAAIA,EAAQ,CACV,IAAIpG,EAAiBD,GAAsB,EAC3CqG,EAAS,CAAE,UAAW,KAAM,OAAQA,EAAQ,SAAUpG,CAAe,EACrE,QACM5K,EAAI,EACRA,EAAIy6C,GAA+B,QAC7B7vC,IAAN,GACAA,EAAiB6vC,GAA+Bz6C,CAAC,EAAE,SACnDA,IACD,CACDy6C,GAA+B,OAAOz6C,EAAG,EAAGgR,CAAM,EAC5ChR,IAAN,GAAW66C,GAA+B7pC,CAAM,CAClD,CACF,EACA,IAAIyrC,GAAmD98C,GAAM,QAC7D,GAEE88C,KADA,SAGA,MAAM,MACJ58C,EACE,IACA48C,GACA,QACF,CACF,EACF35C,GAAwB,YAAc,SAAU45C,EAAoB,CAClE,IAAIt8C,EAAQs8C,EAAmB,gBAC/B,GAAet8C,IAAX,OACF,MAAmB,OAAOs8C,EAAmB,QAAzC,WACI,MAAM78C,EAAuB,GAAG,CAAC,GACzC68C,EAAqB,OAAO,KAAKA,CAAkB,EAAE,KAAK,GAAG,EACvD,MAAM78C,EAAuB,IAAK68C,CAAkB,CAAC,GAE7D,OAAAA,EAAqB/7C,GAA8BP,CAAK,EACxDs8C,EACWA,IAAT,KACIv7C,GAAyBu7C,CAAkB,EAC3C,KACNA,EACWA,IAAT,KAA8B,KAAOA,EAAmB,UACnDA,CACT,EACA,IAAIC,GAA+B,CACjC,WAAY,EACZ,QAAS,SACT,oBAAqB,YACrB,qBAAsB95C,EACtB,kBAAmB,QACrB,EACA,GAAoB,OAAO,+BAAvB,MACE+5C,GAA0B,+BAE5B,CAACA,GAAwB,YACzBA,GAAwB,eAExB,GAAI,CACD11C,GAAa01C,GAAwB,OACpCD,EACF,EACGx1C,GAAey1C,EACpB,MAAc,CAAC,CAVb,IAAAA,GAYNn9C,GAAQ,WAAa,SAAU+wC,EAAW5+B,EAAS,CACjD,GAAI,CAAC3R,GAAiBuwC,CAAS,EAAG,MAAM,MAAM3wC,EAAuB,GAAG,CAAC,EACzE,IAAIu5C,EAAe,GACjB1jB,EAAmB,GACnBqB,EAAkBL,GAClBS,EAAgBR,GAChBqV,EAAqBpV,GACvB,OAAShlB,GAAT,OAEUA,EAAQ,sBAAf,KAAuCwnC,EAAe,IAC5CxnC,EAAQ,mBAAnB,SACG8jB,EAAmB9jB,EAAQ,kBACnBA,EAAQ,kBAAnB,SACGmlB,EAAkBnlB,EAAQ,iBAClBA,EAAQ,gBAAnB,SAAqCulB,EAAgBvlB,EAAQ,eAClDA,EAAQ,qBAAnB,SACGo6B,EAAqBp6B,EAAQ,qBAClCA,EAAUqnC,GACRzI,EACA,EACA,GACA,KACA,KACA4I,EACA1jB,EACA,KACAqB,EACAI,EACA6U,EACA+P,EACF,EACAvL,EAAUplC,EAA4B,EAAIwG,EAAQ,QAClD8rB,GAA2B8S,CAAS,EAC7B,IAAI8L,GAAa1qC,CAAO,CACjC,EACAnS,GAAQ,YAAc,SAAU+wC,EAAW0I,EAAiBtnC,EAAS,CACnE,GAAI,CAAC3R,GAAiBuwC,CAAS,EAAG,MAAM,MAAM3wC,EAAuB,GAAG,CAAC,EACzE,IAAIu5C,EAAe,GACjB1jB,EAAmB,GACnBqB,EAAkBL,GAClBS,EAAgBR,GAChBqV,EAAqBpV,GACrBoiB,EAAY,KACd,OAASpnC,GAAT,OAEUA,EAAQ,sBAAf,KAAuCwnC,EAAe,IAC5CxnC,EAAQ,mBAAnB,SACG8jB,EAAmB9jB,EAAQ,kBACnBA,EAAQ,kBAAnB,SACGmlB,EAAkBnlB,EAAQ,iBAClBA,EAAQ,gBAAnB,SAAqCulB,EAAgBvlB,EAAQ,eAClDA,EAAQ,qBAAnB,SACGo6B,EAAqBp6B,EAAQ,oBACrBA,EAAQ,YAAnB,SAAiConC,EAAYpnC,EAAQ,YACvDsnC,EAAkBD,GAChBzI,EACA,EACA,GACA0I,EACQtnC,GAAoB,KAC5BwnC,EACA1jB,EACAsjB,EACAjiB,EACAI,EACA6U,EACA+P,EACF,EACA7C,EAAgB,QAAUG,GAAqB,IAAI,EACnDznC,EAAUsnC,EAAgB,QAC1BE,EAAehlB,GAAkB,EACjCglB,EAAe3uC,GAAgC2uC,CAAY,EAC3D1jB,EAAmB3N,GAAaqxB,CAAY,EAC5C1jB,EAAiB,SAAW,KAC5B1N,GAAcpW,EAAS8jB,EAAkB0jB,CAAY,EACrDxnC,EAAUwnC,EACVF,EAAgB,QAAQ,MAAQtnC,EAChC1I,GAAkBgwC,EAAiBtnC,CAAO,EAC1C41B,GAAsB0R,CAAe,EACrC1I,EAAUplC,EAA4B,EAAI8tC,EAAgB,QAC1Dxb,GAA2B8S,CAAS,EAC7B,IAAIgM,GAAsBtD,CAAe,CAClD,EACAz5C,GAAQ,QAAU,WChrflB,IAAAo9C,GAAAC,GAAA,CAAAC,GAAAC,KAAA,cAEA,SAASC,IAAW,CAElB,GACE,SAAO,+BAAmC,KAC1C,OAAO,+BAA+B,UAAa,YAcrD,GAAI,CAEF,+BAA+B,SAASA,EAAQ,CAClD,OAASC,EAAK,CAGZ,QAAQ,MAAMA,CAAG,CACnB,CACF,CAKED,GAAS,EACTD,GAAO,QAAU,OClCnB,IAAAG,GAAA,GAAAC,GAAAD,GAAA,aAAAE,GAAA,SAAAC,GAAA,YAAAC,KCqCM,IAAAC,EAAA,UAnCNC,EAAkE,UCFlE,IAAMC,GAAQ,OAAO,IAAI,YAAY,EAC/BC,GAAM,OAAO,IAAI,eAAe,EAChCC,GAAM,OAAO,IAAI,UAAU,EAC3BC,GAAO,OAAO,IAAI,WAAW,EAC7BC,GAAS,OAAO,IAAI,aAAa,EACjCC,GAAM,OAAO,IAAI,UAAU,EAC3BC,GAAY,OAAO,IAAI,gBAAgB,EACvCC,GAAWC,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMN,GAC9ES,GAAcD,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAML,GACjFS,GAASF,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMJ,GAC5ES,EAAUH,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMH,GAC7ES,EAAYJ,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMF,GAC/ES,GAASL,GAAS,CAAC,CAACA,GAAQ,OAAOA,GAAS,UAAYA,EAAKF,EAAS,IAAMD,GAClF,SAASS,GAAaN,EAAM,CACxB,GAAIA,GAAQ,OAAOA,GAAS,SACxB,OAAQA,EAAKF,EAAS,EAAG,CACrB,KAAKJ,GACL,KAAKG,GACD,MAAO,EACf,CACJ,MAAO,EACX,CACA,SAASU,EAAOP,EAAM,CAClB,GAAIA,GAAQ,OAAOA,GAAS,SACxB,OAAQA,EAAKF,EAAS,EAAG,CACrB,KAAKN,GACL,KAAKE,GACL,KAAKE,GACL,KAAKC,GACD,MAAO,EACf,CACJ,MAAO,EACX,CACA,IAAMW,GAAaR,IAAUI,EAASJ,CAAI,GAAKM,GAAaN,CAAI,IAAM,CAAC,CAACA,EAAK,OC/B7E,IAAMS,GAAQ,OAAO,aAAa,EAC5BC,GAAO,OAAO,eAAe,EAC7BC,GAAS,OAAO,aAAa,EA+BnC,SAASC,GAAMC,EAAMC,EAAS,CAC1B,IAAMC,EAAWC,GAAYF,CAAO,EAChCG,GAAWJ,CAAI,EACJK,GAAO,KAAML,EAAK,SAAUE,EAAU,OAAO,OAAO,CAACF,CAAI,CAAC,CAAC,IAC3DF,KACPE,EAAK,SAAW,MAGpBK,GAAO,KAAML,EAAME,EAAU,OAAO,OAAO,CAAC,CAAC,CAAC,CACtD,CAKAH,GAAM,MAAQH,GAEdG,GAAM,KAAOF,GAEbE,GAAM,OAASD,GACf,SAASO,GAAOC,EAAKN,EAAMC,EAASM,EAAM,CACtC,IAAMC,EAAOC,GAAYH,EAAKN,EAAMC,EAASM,CAAI,EACjD,GAAIG,EAAOF,CAAI,GAAKG,EAAOH,CAAI,EAC3B,OAAAI,GAAYN,EAAKC,EAAMC,CAAI,EACpBH,GAAOC,EAAKE,EAAMP,EAASM,CAAI,EAE1C,GAAI,OAAOC,GAAS,UAChB,GAAIK,GAAab,CAAI,EAAG,CACpBO,EAAO,OAAO,OAAOA,EAAK,OAAOP,CAAI,CAAC,EACtC,QAAS,EAAI,EAAG,EAAIA,EAAK,MAAM,OAAQ,EAAE,EAAG,CACxC,IAAMc,EAAKT,GAAO,EAAGL,EAAK,MAAM,CAAC,EAAGC,EAASM,CAAI,EACjD,GAAI,OAAOO,GAAO,SACd,EAAIA,EAAK,MACR,IAAIA,IAAOlB,GACZ,OAAOA,GACFkB,IAAOhB,KACZE,EAAK,MAAM,OAAO,EAAG,CAAC,EACtB,GAAK,GAEb,CACJ,SACSW,EAAOX,CAAI,EAAG,CACnBO,EAAO,OAAO,OAAOA,EAAK,OAAOP,CAAI,CAAC,EACtC,IAAMe,EAAKV,GAAO,MAAOL,EAAK,IAAKC,EAASM,CAAI,EAChD,GAAIQ,IAAOnB,GACP,OAAOA,GACFmB,IAAOjB,KACZE,EAAK,IAAM,MACf,IAAMgB,EAAKX,GAAO,QAASL,EAAK,MAAOC,EAASM,CAAI,EACpD,GAAIS,IAAOpB,GACP,OAAOA,GACFoB,IAAOlB,KACZE,EAAK,MAAQ,KACrB,EAEJ,OAAOQ,CACX,CAgCA,eAAeS,GAAWjB,EAAMC,EAAS,CACrC,IAAMC,EAAWC,GAAYF,CAAO,EAChCG,GAAWJ,CAAI,EACJ,MAAMkB,GAAY,KAAMlB,EAAK,SAAUE,EAAU,OAAO,OAAO,CAACF,CAAI,CAAC,CAAC,IACtEF,KACPE,EAAK,SAAW,MAGpB,MAAMkB,GAAY,KAAMlB,EAAME,EAAU,OAAO,OAAO,CAAC,CAAC,CAAC,CACjE,CAKAe,GAAW,MAAQrB,GAEnBqB,GAAW,KAAOpB,GAElBoB,GAAW,OAASnB,GACpB,eAAeoB,GAAYZ,EAAKN,EAAMC,EAASM,EAAM,CACjD,IAAMC,EAAO,MAAMC,GAAYH,EAAKN,EAAMC,EAASM,CAAI,EACvD,GAAIG,EAAOF,CAAI,GAAKG,EAAOH,CAAI,EAC3B,OAAAI,GAAYN,EAAKC,EAAMC,CAAI,EACpBU,GAAYZ,EAAKE,EAAMP,EAASM,CAAI,EAE/C,GAAI,OAAOC,GAAS,UAChB,GAAIK,GAAab,CAAI,EAAG,CACpBO,EAAO,OAAO,OAAOA,EAAK,OAAOP,CAAI,CAAC,EACtC,QAAS,EAAI,EAAG,EAAIA,EAAK,MAAM,OAAQ,EAAE,EAAG,CACxC,IAAMc,EAAK,MAAMI,GAAY,EAAGlB,EAAK,MAAM,CAAC,EAAGC,EAASM,CAAI,EAC5D,GAAI,OAAOO,GAAO,SACd,EAAIA,EAAK,MACR,IAAIA,IAAOlB,GACZ,OAAOA,GACFkB,IAAOhB,KACZE,EAAK,MAAM,OAAO,EAAG,CAAC,EACtB,GAAK,GAEb,CACJ,SACSW,EAAOX,CAAI,EAAG,CACnBO,EAAO,OAAO,OAAOA,EAAK,OAAOP,CAAI,CAAC,EACtC,IAAMe,EAAK,MAAMG,GAAY,MAAOlB,EAAK,IAAKC,EAASM,CAAI,EAC3D,GAAIQ,IAAOnB,GACP,OAAOA,GACFmB,IAAOjB,KACZE,EAAK,IAAM,MACf,IAAMgB,EAAK,MAAME,GAAY,QAASlB,EAAK,MAAOC,EAASM,CAAI,EAC/D,GAAIS,IAAOpB,GACP,OAAOA,GACFoB,IAAOlB,KACZE,EAAK,MAAQ,KACrB,EAEJ,OAAOQ,CACX,CACA,SAASL,GAAYF,EAAS,CAC1B,OAAI,OAAOA,GAAY,WAClBA,EAAQ,YAAcA,EAAQ,MAAQA,EAAQ,OACxC,OAAO,OAAO,CACjB,MAAOA,EAAQ,KACf,IAAKA,EAAQ,KACb,OAAQA,EAAQ,KAChB,IAAKA,EAAQ,IACjB,EAAGA,EAAQ,OAAS,CAChB,IAAKA,EAAQ,MACb,OAAQA,EAAQ,MAChB,IAAKA,EAAQ,KACjB,EAAGA,EAAQ,YAAc,CACrB,IAAKA,EAAQ,WACb,IAAKA,EAAQ,UACjB,EAAGA,CAAO,EAEPA,CACX,CACA,SAASQ,GAAYH,EAAKN,EAAMC,EAASM,EAAM,CAC3C,GAAI,OAAON,GAAY,WACnB,OAAOA,EAAQK,EAAKN,EAAMO,CAAI,EAClC,GAAIY,GAAMnB,CAAI,EACV,OAAOC,EAAQ,MAAMK,EAAKN,EAAMO,CAAI,EACxC,GAAIa,GAAMpB,CAAI,EACV,OAAOC,EAAQ,MAAMK,EAAKN,EAAMO,CAAI,EACxC,GAAII,EAAOX,CAAI,EACX,OAAOC,EAAQ,OAAOK,EAAKN,EAAMO,CAAI,EACzC,GAAIc,EAASrB,CAAI,EACb,OAAOC,EAAQ,SAASK,EAAKN,EAAMO,CAAI,EAC3C,GAAIe,GAAQtB,CAAI,EACZ,OAAOC,EAAQ,QAAQK,EAAKN,EAAMO,CAAI,CAE9C,CACA,SAASK,GAAYN,EAAKC,EAAMP,EAAM,CAClC,IAAMuB,EAAShB,EAAKA,EAAK,OAAS,CAAC,EACnC,GAAIM,GAAaU,CAAM,EACnBA,EAAO,MAAMjB,CAAG,EAAIN,UAEfW,EAAOY,CAAM,EACdjB,IAAQ,MACRiB,EAAO,IAAMvB,EAEbuB,EAAO,MAAQvB,UAEdI,GAAWmB,CAAM,EACtBA,EAAO,SAAWvB,MAEjB,CACD,IAAMwB,EAAKF,GAAQC,CAAM,EAAI,QAAU,SACvC,MAAM,IAAI,MAAM,4BAA4BC,CAAE,SAAS,CAC3D,CACJ,CCnOA,IAAMC,GAAc,CAChB,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,KACT,EACMC,GAAiBC,GAAOA,EAAG,QAAQ,aAAcC,GAAMH,GAAYG,CAAE,CAAC,EACtEC,GAAN,MAAMC,CAAW,CACb,YAAYC,EAAMC,EAAM,CAKpB,KAAK,SAAW,KAEhB,KAAK,OAAS,GACd,KAAK,KAAO,OAAO,OAAO,CAAC,EAAGF,EAAW,YAAaC,CAAI,EAC1D,KAAK,KAAO,OAAO,OAAO,CAAC,EAAGD,EAAW,YAAaE,CAAI,CAC9D,CACA,OAAQ,CACJ,IAAMC,EAAO,IAAIH,EAAW,KAAK,KAAM,KAAK,IAAI,EAChD,OAAAG,EAAK,SAAW,KAAK,SACdA,CACX,CAKA,YAAa,CACT,IAAMC,EAAM,IAAIJ,EAAW,KAAK,KAAM,KAAK,IAAI,EAC/C,OAAQ,KAAK,KAAK,QAAS,CACvB,IAAK,MACD,KAAK,eAAiB,GACtB,MACJ,IAAK,MACD,KAAK,eAAiB,GACtB,KAAK,KAAO,CACR,SAAUA,EAAW,YAAY,SACjC,QAAS,KACb,EACA,KAAK,KAAO,OAAO,OAAO,CAAC,EAAGA,EAAW,WAAW,EACpD,KACR,CACA,OAAOI,CACX,CAKA,IAAIC,EAAMC,EAAS,CACX,KAAK,iBACL,KAAK,KAAO,CAAE,SAAUN,EAAW,YAAY,SAAU,QAAS,KAAM,EACxE,KAAK,KAAO,OAAO,OAAO,CAAC,EAAGA,EAAW,WAAW,EACpD,KAAK,eAAiB,IAE1B,IAAMO,EAAQF,EAAK,KAAK,EAAE,MAAM,QAAQ,EAClCG,EAAOD,EAAM,MAAM,EACzB,OAAQC,EAAM,CACV,IAAK,OAAQ,CACT,GAAID,EAAM,SAAW,IACjBD,EAAQ,EAAG,iDAAiD,EACxDC,EAAM,OAAS,GACf,MAAO,GAEf,GAAM,CAACE,EAAQC,CAAM,EAAIH,EACzB,YAAK,KAAKE,CAAM,EAAIC,EACb,EACX,CACA,IAAK,QAAS,CAEV,GADA,KAAK,KAAK,SAAW,GACjBH,EAAM,SAAW,EACjB,OAAAD,EAAQ,EAAG,iDAAiD,EACrD,GAEX,GAAM,CAACK,CAAO,EAAIJ,EAClB,GAAII,IAAY,OAASA,IAAY,MACjC,YAAK,KAAK,QAAUA,EACb,GAEN,CACD,IAAMC,EAAU,aAAa,KAAKD,CAAO,EACzC,OAAAL,EAAQ,EAAG,4BAA4BK,CAAO,GAAIC,CAAO,EAClD,EACX,CACJ,CACA,QACI,OAAAN,EAAQ,EAAG,qBAAqBE,CAAI,GAAI,EAAI,EACrC,EACf,CACJ,CAOA,QAAQK,EAAQP,EAAS,CACrB,GAAIO,IAAW,IACX,MAAO,IACX,GAAIA,EAAO,CAAC,IAAM,IACd,OAAAP,EAAQ,oBAAoBO,CAAM,EAAE,EAC7B,KAEX,GAAIA,EAAO,CAAC,IAAM,IAAK,CACnB,IAAMC,EAAWD,EAAO,MAAM,EAAG,EAAE,EACnC,OAAIC,IAAa,KAAOA,IAAa,MACjCR,EAAQ,qCAAqCO,CAAM,cAAc,EAC1D,OAEPA,EAAOA,EAAO,OAAS,CAAC,IAAM,KAC9BP,EAAQ,iCAAiC,EACtCQ,EACX,CACA,GAAM,CAAC,CAAEL,EAAQM,CAAM,EAAIF,EAAO,MAAM,iBAAiB,EACpDE,GACDT,EAAQ,OAAOO,CAAM,oBAAoB,EAC7C,IAAMH,EAAS,KAAK,KAAKD,CAAM,EAC/B,GAAIC,EACA,GAAI,CACA,OAAOA,EAAS,mBAAmBK,CAAM,CAC7C,OACOC,EAAO,CACV,OAAAV,EAAQ,OAAOU,CAAK,CAAC,EACd,IACX,CAEJ,OAAIP,IAAW,IACJI,GACXP,EAAQ,0BAA0BO,CAAM,EAAE,EACnC,KACX,CAKA,UAAUI,EAAK,CACX,OAAW,CAACR,EAAQC,CAAM,IAAK,OAAO,QAAQ,KAAK,IAAI,EACnD,GAAIO,EAAI,WAAWP,CAAM,EACrB,OAAOD,EAASb,GAAcqB,EAAI,UAAUP,EAAO,MAAM,CAAC,EAElE,OAAOO,EAAI,CAAC,IAAM,IAAMA,EAAM,KAAKA,CAAG,GAC1C,CACA,SAASC,EAAK,CACV,IAAMC,EAAQ,KAAK,KAAK,SAClB,CAAC,SAAS,KAAK,KAAK,SAAW,KAAK,EAAE,EACtC,CAAC,EACDC,EAAa,OAAO,QAAQ,KAAK,IAAI,EACvCC,EACJ,GAAIH,GAAOE,EAAW,OAAS,GAAKE,EAAOJ,EAAI,QAAQ,EAAG,CACtD,IAAMhB,EAAO,CAAC,EACdqB,GAAML,EAAI,SAAU,CAACM,EAAMC,IAAS,CAC5BH,EAAOG,CAAI,GAAKA,EAAK,MACrBvB,EAAKuB,EAAK,GAAG,EAAI,GACzB,CAAC,EACDJ,EAAW,OAAO,KAAKnB,CAAI,CAC/B,MAEImB,EAAW,CAAC,EAChB,OAAW,CAACZ,EAAQC,CAAM,IAAKU,EACvBX,IAAW,MAAQC,IAAW,uBAE9B,CAACQ,GAAOG,EAAS,KAAKxB,GAAMA,EAAG,WAAWa,CAAM,CAAC,IACjDS,EAAM,KAAK,QAAQV,CAAM,IAAIC,CAAM,EAAE,EAE7C,OAAOS,EAAM,KAAK;AAAA,CAAI,CAC1B,CACJ,EACApB,GAAW,YAAc,CAAE,SAAU,GAAO,QAAS,KAAM,EAC3DA,GAAW,YAAc,CAAE,KAAM,oBAAqB,ECrKtD,SAAS2B,GAAcC,EAAQ,CAC3B,GAAI,sBAAsB,KAAKA,CAAM,EAAG,CAEpC,IAAMC,EAAM,6DADD,KAAK,UAAUD,CAAM,CAC2C,GAC3E,MAAM,IAAI,MAAMC,CAAG,CACvB,CACA,MAAO,EACX,CACA,SAASC,GAAYC,EAAM,CACvB,IAAMC,EAAU,IAAI,IACpB,OAAAC,GAAMF,EAAM,CACR,MAAMG,EAAMC,EAAM,CACVA,EAAK,QACLH,EAAQ,IAAIG,EAAK,MAAM,CAC/B,CACJ,CAAC,EACMH,CACX,CAEA,SAASI,GAAcC,EAAQC,EAAS,CACpC,QAASC,EAAI,GAAS,EAAEA,EAAG,CACvB,IAAMC,EAAO,GAAGH,CAAM,GAAGE,CAAC,GAC1B,GAAI,CAACD,EAAQ,IAAIE,CAAI,EACjB,OAAOA,CACf,CACJ,CACA,SAASC,GAAkBC,EAAKL,EAAQ,CACpC,IAAMM,EAAe,CAAC,EAChBC,EAAgB,IAAI,IACtBC,EAAc,KAClB,MAAO,CACH,SAAWC,GAAW,CAClBH,EAAa,KAAKG,CAAM,EACxBD,IAAgBA,EAAcf,GAAYY,CAAG,GAC7C,IAAMd,EAASQ,GAAcC,EAAQQ,CAAW,EAChD,OAAAA,EAAY,IAAIjB,CAAM,EACfA,CACX,EAMA,WAAY,IAAM,CACd,QAAWkB,KAAUH,EAAc,CAC/B,IAAMI,EAAMH,EAAc,IAAIE,CAAM,EACpC,GAAI,OAAOC,GAAQ,UACfA,EAAI,SACHC,EAASD,EAAI,IAAI,GAAKE,GAAaF,EAAI,IAAI,GAC5CA,EAAI,KAAK,OAASA,EAAI,WAErB,CACD,IAAMG,EAAQ,IAAI,MAAM,4DAA4D,EACpF,MAAAA,EAAM,OAASJ,EACTI,CACV,CACJ,CACJ,EACA,cAAAN,CACJ,CACJ,CC7DA,SAASO,GAAaC,EAASC,EAAKC,EAAKC,EAAK,CAC1C,GAAIA,GAAO,OAAOA,GAAQ,SACtB,GAAI,MAAM,QAAQA,CAAG,EACjB,QAASC,EAAI,EAAGC,EAAMF,EAAI,OAAQC,EAAIC,EAAK,EAAED,EAAG,CAC5C,IAAME,EAAKH,EAAIC,CAAC,EACVG,EAAKR,GAAaC,EAASG,EAAK,OAAOC,CAAC,EAAGE,CAAE,EAE/CC,IAAO,OACP,OAAOJ,EAAIC,CAAC,EACPG,IAAOD,IACZH,EAAIC,CAAC,EAAIG,EACjB,SAEKJ,aAAe,IACpB,QAAWK,KAAK,MAAM,KAAKL,EAAI,KAAK,CAAC,EAAG,CACpC,IAAMG,EAAKH,EAAI,IAAIK,CAAC,EACdD,EAAKR,GAAaC,EAASG,EAAKK,EAAGF,CAAE,EACvCC,IAAO,OACPJ,EAAI,OAAOK,CAAC,EACPD,IAAOD,GACZH,EAAI,IAAIK,EAAGD,CAAE,CACrB,SAEKJ,aAAe,IACpB,QAAWG,KAAM,MAAM,KAAKH,CAAG,EAAG,CAC9B,IAAMI,EAAKR,GAAaC,EAASG,EAAKG,EAAIA,CAAE,EACxCC,IAAO,OACPJ,EAAI,OAAOG,CAAE,EACRC,IAAOD,IACZH,EAAI,OAAOG,CAAE,EACbH,EAAI,IAAII,CAAE,EAElB,KAGA,QAAW,CAACC,EAAGF,CAAE,IAAK,OAAO,QAAQH,CAAG,EAAG,CACvC,IAAMI,EAAKR,GAAaC,EAASG,EAAKK,EAAGF,CAAE,EACvCC,IAAO,OACP,OAAOJ,EAAIK,CAAC,EACPD,IAAOD,IACZH,EAAIK,CAAC,EAAID,EACjB,CAGR,OAAOP,EAAQ,KAAKC,EAAKC,EAAKC,CAAG,CACrC,CCxCA,SAASM,GAAKC,EAAOC,EAAKC,EAAK,CAE3B,GAAI,MAAM,QAAQF,CAAK,EACnB,OAAOA,EAAM,IAAI,CAACG,EAAGC,IAAML,GAAKI,EAAG,OAAOC,CAAC,EAAGF,CAAG,CAAC,EACtD,GAAIF,GAAS,OAAOA,EAAM,QAAW,WAAY,CAE7C,GAAI,CAACE,GAAO,CAACG,GAAUL,CAAK,EACxB,OAAOA,EAAM,OAAOC,EAAKC,CAAG,EAChC,IAAMI,EAAO,CAAE,WAAY,EAAG,MAAO,EAAG,IAAK,MAAU,EACvDJ,EAAI,QAAQ,IAAIF,EAAOM,CAAI,EAC3BJ,EAAI,SAAWK,GAAO,CAClBD,EAAK,IAAMC,EACX,OAAOL,EAAI,QACf,EACA,IAAMK,EAAMP,EAAM,OAAOC,EAAKC,CAAG,EACjC,OAAIA,EAAI,UACJA,EAAI,SAASK,CAAG,EACbA,CACX,CACA,OAAI,OAAOP,GAAU,UAAY,CAACE,GAAK,KAC5B,OAAOF,CAAK,EAChBA,CACX,CC9BA,IAAMQ,GAAN,KAAe,CACX,YAAYC,EAAM,CACd,OAAO,eAAe,KAAMC,GAAW,CAAE,MAAOD,CAAK,CAAC,CAC1D,CAEA,OAAQ,CACJ,IAAME,EAAO,OAAO,OAAO,OAAO,eAAe,IAAI,EAAG,OAAO,0BAA0B,IAAI,CAAC,EAC9F,OAAI,KAAK,QACLA,EAAK,MAAQ,KAAK,MAAM,MAAM,GAC3BA,CACX,CAEA,KAAKC,EAAK,CAAE,SAAAC,EAAU,cAAAC,EAAe,SAAAC,EAAU,QAAAC,CAAQ,EAAI,CAAC,EAAG,CAC3D,GAAI,CAACC,GAAWL,CAAG,EACf,MAAM,IAAI,UAAU,iCAAiC,EACzD,IAAMM,EAAM,CACR,QAAS,IAAI,IACb,IAAAN,EACA,KAAM,GACN,SAAUC,IAAa,GACvB,aAAc,GACd,cAAe,OAAOC,GAAkB,SAAWA,EAAgB,GACvE,EACMK,EAAMC,GAAK,KAAM,GAAIF,CAAG,EAC9B,GAAI,OAAOH,GAAa,WACpB,OAAW,CAAE,MAAAM,EAAO,IAAAF,CAAI,IAAKD,EAAI,QAAQ,OAAO,EAC5CH,EAASI,EAAKE,CAAK,EAC3B,OAAO,OAAOL,GAAY,WACpBM,GAAaN,EAAS,CAAE,GAAIG,CAAI,EAAG,GAAIA,CAAG,EAC1CA,CACV,CACJ,EC7BA,IAAMI,GAAN,cAAoBC,EAAS,CACzB,YAAYC,EAAQ,CAChB,MAAMC,EAAK,EACX,KAAK,OAASD,EACd,OAAO,eAAe,KAAM,MAAO,CAC/B,KAAM,CACF,MAAM,IAAI,MAAM,8BAA8B,CAClD,CACJ,CAAC,CACL,CAKA,QAAQE,EAAKC,EAAK,CACd,GAAIA,GAAK,gBAAkB,EACvB,MAAM,IAAI,eAAe,8BAA8B,EAC3D,IAAIC,EACAD,GAAK,kBACLC,EAAQD,EAAI,mBAGZC,EAAQ,CAAC,EACTC,GAAMH,EAAK,CACP,KAAM,CAACI,EAAMC,IAAS,EACdC,GAAQD,CAAI,GAAKE,GAAUF,CAAI,IAC/BH,EAAM,KAAKG,CAAI,CACvB,CACJ,CAAC,EACGJ,IACAA,EAAI,kBAAoBC,IAEhC,IAAIM,EACJ,QAAWH,KAAQH,EAAO,CACtB,GAAIG,IAAS,KACT,MACAA,EAAK,SAAW,KAAK,SACrBG,EAAQH,EAChB,CACA,GAAIG,GAASP,EAAK,CACd,GAAM,CAAE,QAAAQ,EAAS,IAAAT,EAAK,cAAAU,CAAc,EAAIT,EACpCU,EAAOF,EAAQ,IAAID,CAAK,EAO5B,GANKG,IAEDC,GAAKJ,EAAO,KAAMP,CAAG,EACrBU,EAAOF,EAAQ,IAAID,CAAK,GAGxBG,GAAM,MAAQ,OAAW,CACzB,IAAME,EAAM,yDACZ,MAAM,IAAI,eAAeA,CAAG,CAChC,CACA,GAAIH,GAAiB,IACjBC,EAAK,OAAS,EACVA,EAAK,aAAe,IACpBA,EAAK,WAAaG,GAAcd,EAAKQ,EAAOC,CAAO,GACnDE,EAAK,MAAQA,EAAK,WAAaD,GAAe,CAC9C,IAAMG,EAAM,+DACZ,MAAM,IAAI,eAAeA,CAAG,CAChC,CAER,CACA,OAAOL,CACX,CACA,OAAOO,EAAMd,EAAK,CACd,GAAI,CAACA,EACD,MAAO,CAAE,OAAQ,KAAK,MAAO,EACjC,IAAMH,EAAS,KAAK,QAAQG,EAAI,IAAKA,CAAG,EACxC,GAAI,CAACH,EAAQ,CACT,IAAMe,EAAM,+DAA+D,KAAK,MAAM,GACtF,MAAM,IAAI,eAAeA,CAAG,CAChC,CACA,OAAOZ,EAAI,QAAQ,IAAIH,CAAM,EAAE,GACnC,CACA,SAASG,EAAKe,EAAYC,EAAc,CACpC,IAAMC,EAAM,IAAI,KAAK,MAAM,GAC3B,GAAIjB,EAAK,CAEL,GADAkB,GAAc,KAAK,MAAM,EACrBlB,EAAI,QAAQ,kBAAoB,CAACA,EAAI,QAAQ,IAAI,KAAK,MAAM,EAAG,CAC/D,IAAMY,EAAM,+DAA+D,KAAK,MAAM,GACtF,MAAM,IAAI,MAAMA,CAAG,CACvB,CACA,GAAIZ,EAAI,YACJ,MAAO,GAAGiB,CAAG,GACrB,CACA,OAAOA,CACX,CACJ,EACA,SAASJ,GAAcd,EAAKK,EAAMI,EAAS,CACvC,GAAIH,GAAQD,CAAI,EAAG,CACf,IAAMP,EAASO,EAAK,QAAQL,CAAG,EACzBoB,EAASX,GAAWX,GAAUW,EAAQ,IAAIX,CAAM,EACtD,OAAOsB,EAASA,EAAO,MAAQA,EAAO,WAAa,CACvD,SACSC,GAAahB,CAAI,EAAG,CACzB,IAAIiB,EAAQ,EACZ,QAAWC,KAAQlB,EAAK,MAAO,CAC3B,IAAMmB,EAAIV,GAAcd,EAAKuB,EAAMd,CAAO,EACtCe,EAAIF,IACJA,EAAQE,EAChB,CACA,OAAOF,CACX,SACSG,EAAOpB,CAAI,EAAG,CACnB,IAAMqB,EAAKZ,GAAcd,EAAKK,EAAK,IAAKI,CAAO,EACzCkB,EAAKb,GAAcd,EAAKK,EAAK,MAAOI,CAAO,EACjD,OAAO,KAAK,IAAIiB,EAAIC,CAAE,CAC1B,CACA,MAAO,EACX,CC/GA,IAAMC,GAAiBC,GAAU,CAACA,GAAU,OAAOA,GAAU,YAAc,OAAOA,GAAU,SACtFC,EAAN,cAAqBC,EAAS,CAC1B,YAAYF,EAAO,CACf,MAAMG,EAAM,EACZ,KAAK,MAAQH,CACjB,CACA,OAAOI,EAAKC,EAAK,CACb,OAAOA,GAAK,KAAO,KAAK,MAAQC,GAAK,KAAK,MAAOF,EAAKC,CAAG,CAC7D,CACA,UAAW,CACP,OAAO,OAAO,KAAK,KAAK,CAC5B,CACJ,EACAJ,EAAO,aAAe,eACtBA,EAAO,cAAgB,gBACvBA,EAAO,MAAQ,QACfA,EAAO,aAAe,eACtBA,EAAO,aAAe,eCjBtB,IAAMM,GAAmB,qBACzB,SAASC,GAAcC,EAAOC,EAASC,EAAM,CACzC,GAAID,EAAS,CACT,IAAME,EAAQD,EAAK,OAAOE,GAAKA,EAAE,MAAQH,CAAO,EAC1CI,EAASF,EAAM,KAAKC,GAAK,CAACA,EAAE,MAAM,GAAKD,EAAM,CAAC,EACpD,GAAI,CAACE,EACD,MAAM,IAAI,MAAM,OAAOJ,CAAO,YAAY,EAC9C,OAAOI,CACX,CACA,OAAOH,EAAK,KAAKE,GAAKA,EAAE,WAAWJ,CAAK,GAAK,CAACI,EAAE,MAAM,CAC1D,CACA,SAASE,GAAWN,EAAOC,EAASM,EAAK,CAGrC,GAFIC,GAAWR,CAAK,IAChBA,EAAQA,EAAM,UACdS,EAAOT,CAAK,EACZ,OAAOA,EACX,GAAIU,EAAOV,CAAK,EAAG,CACf,IAAMW,EAAMJ,EAAI,OAAOK,EAAG,EAAE,aAAaL,EAAI,OAAQ,KAAMA,CAAG,EAC9D,OAAAI,EAAI,MAAM,KAAKX,CAAK,EACbW,CACX,EACIX,aAAiB,QACjBA,aAAiB,QACjBA,aAAiB,SAChB,OAAO,OAAW,KAAeA,aAAiB,UAGnDA,EAAQA,EAAM,QAAQ,GAE1B,GAAM,CAAE,sBAAAa,EAAuB,SAAAC,EAAU,SAAAC,EAAU,OAAAC,EAAQ,cAAAC,CAAc,EAAIV,EAGzEW,EACJ,GAAIL,GAAyBb,GAAS,OAAOA,GAAU,SAAU,CAE7D,GADAkB,EAAMD,EAAc,IAAIjB,CAAK,EACzBkB,EACA,OAAAA,EAAI,SAAWA,EAAI,OAASJ,EAASd,CAAK,GACnC,IAAImB,GAAMD,EAAI,MAAM,EAG3BA,EAAM,CAAE,OAAQ,KAAM,KAAM,IAAK,EACjCD,EAAc,IAAIjB,EAAOkB,CAAG,CAEpC,CACIjB,GAAS,WAAW,IAAI,IACxBA,EAAUH,GAAmBG,EAAQ,MAAM,CAAC,GAChD,IAAII,EAASN,GAAcC,EAAOC,EAASe,EAAO,IAAI,EACtD,GAAI,CAACX,EAAQ,CAKT,GAJIL,GAAS,OAAOA,EAAM,QAAW,aAEjCA,EAAQA,EAAM,OAAO,GAErB,CAACA,GAAS,OAAOA,GAAU,SAAU,CACrC,IAAMoB,EAAO,IAAIC,EAAOrB,CAAK,EAC7B,OAAIkB,IACAA,EAAI,KAAOE,GACRA,CACX,CACAf,EACIL,aAAiB,IACXgB,EAAOJ,EAAG,EACV,OAAO,YAAY,OAAOZ,CAAK,EAC3BgB,EAAOM,EAAG,EACVN,EAAOJ,EAAG,CAC5B,CACIG,IACAA,EAASV,CAAM,EACf,OAAOE,EAAI,UAEf,IAAMa,EAAOf,GAAQ,WACfA,EAAO,WAAWE,EAAI,OAAQP,EAAOO,CAAG,EACxC,OAAOF,GAAQ,WAAW,MAAS,WAC/BA,EAAO,UAAU,KAAKE,EAAI,OAAQP,EAAOO,CAAG,EAC5C,IAAIc,EAAOrB,CAAK,EAC1B,OAAIC,EACAmB,EAAK,IAAMnB,EACLI,EAAO,UACbe,EAAK,IAAMf,EAAO,KAClBa,IACAA,EAAI,KAAOE,GACRA,CACX,CCjFA,SAASG,GAAmBC,EAAQC,EAAMC,EAAO,CAC7C,IAAIC,EAAID,EACR,QAASE,EAAIH,EAAK,OAAS,EAAGG,GAAK,EAAG,EAAEA,EAAG,CACvC,IAAMC,EAAIJ,EAAKG,CAAC,EAChB,GAAI,OAAOC,GAAM,UAAY,OAAO,UAAUA,CAAC,GAAKA,GAAK,EAAG,CACxD,IAAMC,EAAI,CAAC,EACXA,EAAED,CAAC,EAAIF,EACPA,EAAIG,CACR,MAEIH,EAAI,IAAI,IAAI,CAAC,CAACE,EAAGF,CAAC,CAAC,CAAC,CAE5B,CACA,OAAOI,GAAWJ,EAAG,OAAW,CAC5B,sBAAuB,GACvB,cAAe,GACf,SAAU,IAAM,CACZ,MAAM,IAAI,MAAM,8CAA8C,CAClE,EACA,OAAAH,EACA,cAAe,IAAI,GACvB,CAAC,CACL,CAGA,IAAMQ,GAAeP,GAASA,GAAQ,MACjC,OAAOA,GAAS,UAAY,CAAC,CAACA,EAAK,OAAO,QAAQ,EAAE,EAAE,KAAK,EAAE,KAC5DQ,GAAN,cAAyBC,EAAS,CAC9B,YAAYC,EAAMX,EAAQ,CACtB,MAAMW,CAAI,EACV,OAAO,eAAe,KAAM,SAAU,CAClC,MAAOX,EACP,aAAc,GACd,WAAY,GACZ,SAAU,EACd,CAAC,CACL,CAMA,MAAMA,EAAQ,CACV,IAAMY,EAAO,OAAO,OAAO,OAAO,eAAe,IAAI,EAAG,OAAO,0BAA0B,IAAI,CAAC,EAC9F,OAAIZ,IACAY,EAAK,OAASZ,GAClBY,EAAK,MAAQA,EAAK,MAAM,IAAIC,GAAMC,EAAOD,CAAE,GAAKE,EAAOF,CAAE,EAAIA,EAAG,MAAMb,CAAM,EAAIa,CAAE,EAC9E,KAAK,QACLD,EAAK,MAAQ,KAAK,MAAM,MAAM,GAC3BA,CACX,CAMA,MAAMX,EAAMC,EAAO,CACf,GAAIM,GAAYP,CAAI,EAChB,KAAK,IAAIC,CAAK,MACb,CACD,GAAM,CAACc,EAAK,GAAGC,CAAI,EAAIhB,EACjBiB,EAAO,KAAK,IAAIF,EAAK,EAAI,EAC/B,GAAIG,GAAaD,CAAI,EACjBA,EAAK,MAAMD,EAAMf,CAAK,UACjBgB,IAAS,QAAa,KAAK,OAChC,KAAK,IAAIF,EAAKjB,GAAmB,KAAK,OAAQkB,EAAMf,CAAK,CAAC,MAE1D,OAAM,IAAI,MAAM,+BAA+Bc,CAAG,qBAAqBC,CAAI,EAAE,CACrF,CACJ,CAKA,SAAShB,EAAM,CACX,GAAM,CAACe,EAAK,GAAGC,CAAI,EAAIhB,EACvB,GAAIgB,EAAK,SAAW,EAChB,OAAO,KAAK,OAAOD,CAAG,EAC1B,IAAME,EAAO,KAAK,IAAIF,EAAK,EAAI,EAC/B,GAAIG,GAAaD,CAAI,EACjB,OAAOA,EAAK,SAASD,CAAI,EAEzB,MAAM,IAAI,MAAM,+BAA+BD,CAAG,qBAAqBC,CAAI,EAAE,CACrF,CAMA,MAAMhB,EAAMmB,EAAY,CACpB,GAAM,CAACJ,EAAK,GAAGC,CAAI,EAAIhB,EACjBiB,EAAO,KAAK,IAAIF,EAAK,EAAI,EAC/B,OAAIC,EAAK,SAAW,EACT,CAACG,GAAcC,EAASH,CAAI,EAAIA,EAAK,MAAQA,EAE7CC,GAAaD,CAAI,EAAIA,EAAK,MAAMD,EAAMG,CAAU,EAAI,MACnE,CACA,iBAAiBE,EAAa,CAC1B,OAAO,KAAK,MAAM,MAAMJ,GAAQ,CAC5B,GAAI,CAACH,EAAOG,CAAI,EACZ,MAAO,GACX,IAAMK,EAAIL,EAAK,MACf,OAAQK,GAAK,MACRD,GACGD,EAASE,CAAC,GACVA,EAAE,OAAS,MACX,CAACA,EAAE,eACH,CAACA,EAAE,SACH,CAACA,EAAE,GACf,CAAC,CACL,CAIA,MAAMtB,EAAM,CACR,GAAM,CAACe,EAAK,GAAGC,CAAI,EAAIhB,EACvB,GAAIgB,EAAK,SAAW,EAChB,OAAO,KAAK,IAAID,CAAG,EACvB,IAAME,EAAO,KAAK,IAAIF,EAAK,EAAI,EAC/B,OAAOG,GAAaD,CAAI,EAAIA,EAAK,MAAMD,CAAI,EAAI,EACnD,CAKA,MAAMhB,EAAMC,EAAO,CACf,GAAM,CAACc,EAAK,GAAGC,CAAI,EAAIhB,EACvB,GAAIgB,EAAK,SAAW,EAChB,KAAK,IAAID,EAAKd,CAAK,MAElB,CACD,IAAMgB,EAAO,KAAK,IAAIF,EAAK,EAAI,EAC/B,GAAIG,GAAaD,CAAI,EACjBA,EAAK,MAAMD,EAAMf,CAAK,UACjBgB,IAAS,QAAa,KAAK,OAChC,KAAK,IAAIF,EAAKjB,GAAmB,KAAK,OAAQkB,EAAMf,CAAK,CAAC,MAE1D,OAAM,IAAI,MAAM,+BAA+Bc,CAAG,qBAAqBC,CAAI,EAAE,CACrF,CACJ,CACJ,ECzIA,IAAMO,GAAoBC,GAAQA,EAAI,QAAQ,kBAAmB,GAAG,EACpE,SAASC,GAAcC,EAASC,EAAQ,CACpC,MAAI,QAAQ,KAAKD,CAAO,EACbA,EAAQ,UAAU,CAAC,EACvBC,EAASD,EAAQ,QAAQ,aAAcC,CAAM,EAAID,CAC5D,CACA,IAAME,GAAc,CAACJ,EAAKG,EAAQD,IAAYF,EAAI,SAAS;AAAA,CAAI,EACzDC,GAAcC,EAASC,CAAM,EAC7BD,EAAQ,SAAS;AAAA,CAAI,EACjB;AAAA,EAAOD,GAAcC,EAASC,CAAM,GACnCH,EAAI,SAAS,GAAG,EAAI,GAAK,KAAOE,ECjB3C,IAAMG,GAAY,OACZC,GAAa,QACbC,GAAc,SAMpB,SAASC,GAAcC,EAAMC,EAAQC,EAAO,OAAQ,CAAE,cAAAC,EAAe,UAAAC,EAAY,GAAI,gBAAAC,EAAkB,GAAI,OAAAC,EAAQ,WAAAC,CAAW,EAAI,CAAC,EAAG,CAClI,GAAI,CAACH,GAAaA,EAAY,EAC1B,OAAOJ,EACPI,EAAYC,IACZA,EAAkB,GACtB,IAAMG,EAAU,KAAK,IAAI,EAAIH,EAAiB,EAAID,EAAYH,EAAO,MAAM,EAC3E,GAAID,EAAK,QAAUQ,EACf,OAAOR,EACX,IAAMS,EAAQ,CAAC,EACTC,EAAe,CAAC,EAClBC,EAAMP,EAAYH,EAAO,OACzB,OAAOE,GAAkB,WACrBA,EAAgBC,EAAY,KAAK,IAAI,EAAGC,CAAe,EACvDI,EAAM,KAAK,CAAC,EAEZE,EAAMP,EAAYD,GAE1B,IAAIS,EACAC,EACAC,EAAW,GACXC,EAAI,GACJC,EAAW,GACXC,EAAS,GACTf,IAASL,KACTkB,EAAIG,GAAyBlB,EAAMe,EAAGd,EAAO,MAAM,EAC/Cc,IAAM,KACNJ,EAAMI,EAAIP,IAElB,QAASW,EAAKA,EAAKnB,EAAMe,GAAK,CAAE,GAAK,CACjC,GAAIb,IAASJ,IAAeqB,IAAO,KAAM,CAErC,OADAH,EAAWD,EACHf,EAAKe,EAAI,CAAC,EAAG,CACjB,IAAK,IACDA,GAAK,EACL,MACJ,IAAK,IACDA,GAAK,EACL,MACJ,IAAK,IACDA,GAAK,EACL,MACJ,QACIA,GAAK,CACb,CACAE,EAASF,CACb,CACA,GAAII,IAAO;AAAA,EACHjB,IAASL,KACTkB,EAAIG,GAAyBlB,EAAMe,EAAGd,EAAO,MAAM,GACvDU,EAAMI,EAAId,EAAO,OAASO,EAC1BI,EAAQ,WAEP,CACD,GAAIO,IAAO,KACPN,GACAA,IAAS,KACTA,IAAS;AAAA,GACTA,IAAS,IAAM,CAEf,IAAMO,EAAOpB,EAAKe,EAAI,CAAC,EACnBK,GAAQA,IAAS,KAAOA,IAAS;AAAA,GAAQA,IAAS,MAClDR,EAAQG,EAChB,CACA,GAAIA,GAAKJ,EACL,GAAIC,EACAH,EAAM,KAAKG,CAAK,EAChBD,EAAMC,EAAQJ,EACdI,EAAQ,eAEHV,IAASJ,GAAa,CAE3B,KAAOe,IAAS,KAAOA,IAAS,KAC5BA,EAAOM,EACPA,EAAKnB,EAAMe,GAAK,CAAE,EAClBD,EAAW,GAGf,IAAMO,EAAIN,EAAIE,EAAS,EAAIF,EAAI,EAAIC,EAAW,EAE9C,GAAIN,EAAaW,CAAC,EACd,OAAOrB,EACXS,EAAM,KAAKY,CAAC,EACZX,EAAaW,CAAC,EAAI,GAClBV,EAAMU,EAAIb,EACVI,EAAQ,MACZ,MAEIE,EAAW,EAGvB,CACAD,EAAOM,CACX,CAGA,GAFIL,GAAYP,GACZA,EAAW,EACXE,EAAM,SAAW,EACjB,OAAOT,EACPM,GACAA,EAAO,EACX,IAAIgB,EAAMtB,EAAK,MAAM,EAAGS,EAAM,CAAC,CAAC,EAChC,QAASM,EAAI,EAAGA,EAAIN,EAAM,OAAQ,EAAEM,EAAG,CACnC,IAAMQ,EAAOd,EAAMM,CAAC,EACdJ,EAAMF,EAAMM,EAAI,CAAC,GAAKf,EAAK,OAC7BuB,IAAS,EACTD,EAAM;AAAA,EAAKrB,CAAM,GAAGD,EAAK,MAAM,EAAGW,CAAG,CAAC,IAElCT,IAASJ,IAAeY,EAAaa,CAAI,IACzCD,GAAO,GAAGtB,EAAKuB,CAAI,CAAC,MACxBD,GAAO;AAAA,EAAKrB,CAAM,GAAGD,EAAK,MAAMuB,EAAO,EAAGZ,CAAG,CAAC,GAEtD,CACA,OAAOW,CACX,CAKA,SAASJ,GAAyBlB,EAAMe,EAAGd,EAAQ,CAC/C,IAAIU,EAAMI,EACNS,EAAQT,EAAI,EACZI,EAAKnB,EAAKwB,CAAK,EACnB,KAAOL,IAAO,KAAOA,IAAO,KACxB,GAAIJ,EAAIS,EAAQvB,EACZkB,EAAKnB,EAAK,EAAEe,CAAC,MAEZ,CACD,GACII,EAAKnB,EAAK,EAAEe,CAAC,QACRI,GAAMA,IAAO;AAAA,GACtBR,EAAMI,EACNS,EAAQT,EAAI,EACZI,EAAKnB,EAAKwB,CAAK,CACnB,CAEJ,OAAOb,CACX,CC5IA,IAAMc,GAAiB,CAACC,EAAKC,KAAa,CACtC,cAAeA,EAAUD,EAAI,OAAO,OAASA,EAAI,cACjD,UAAWA,EAAI,QAAQ,UACvB,gBAAiBA,EAAI,QAAQ,eACjC,GAGME,GAA0BC,GAAQ,mBAAmB,KAAKA,CAAG,EACnE,SAASC,GAAoBD,EAAKE,EAAWC,EAAc,CACvD,GAAI,CAACD,GAAaA,EAAY,EAC1B,MAAO,GACX,IAAME,EAAQF,EAAYC,EACpBE,EAASL,EAAI,OACnB,GAAIK,GAAUD,EACV,MAAO,GACX,QAAS,EAAI,EAAGE,EAAQ,EAAG,EAAID,EAAQ,EAAE,EACrC,GAAIL,EAAI,CAAC,IAAM;AAAA,EAAM,CACjB,GAAI,EAAIM,EAAQF,EACZ,MAAO,GAEX,GADAE,EAAQ,EAAI,EACRD,EAASC,GAASF,EAClB,MAAO,EACf,CAEJ,MAAO,EACX,CACA,SAASG,GAAmBC,EAAOX,EAAK,CACpC,IAAMY,EAAO,KAAK,UAAUD,CAAK,EACjC,GAAIX,EAAI,QAAQ,mBACZ,OAAOY,EACX,GAAM,CAAE,YAAAC,CAAY,EAAIb,EAClBc,EAAqBd,EAAI,QAAQ,+BACjCe,EAASf,EAAI,SAAWE,GAAuBS,CAAK,EAAI,KAAO,IACjER,EAAM,GACNM,EAAQ,EACZ,QAASO,EAAI,EAAGC,EAAKL,EAAKI,CAAC,EAAGC,EAAIA,EAAKL,EAAK,EAAEI,CAAC,EAQ3C,GAPIC,IAAO,KAAOL,EAAKI,EAAI,CAAC,IAAM,MAAQJ,EAAKI,EAAI,CAAC,IAAM,MAEtDb,GAAOS,EAAK,MAAMH,EAAOO,CAAC,EAAI,MAC9BA,GAAK,EACLP,EAAQO,EACRC,EAAK,MAELA,IAAO,KACP,OAAQL,EAAKI,EAAI,CAAC,EAAG,CACjB,IAAK,IACD,CACIb,GAAOS,EAAK,MAAMH,EAAOO,CAAC,EAC1B,IAAME,EAAON,EAAK,OAAOI,EAAI,EAAG,CAAC,EACjC,OAAQE,EAAM,CACV,IAAK,OACDf,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,IAAK,OACDA,GAAO,MACP,MACJ,QACQe,EAAK,OAAO,EAAG,CAAC,IAAM,KACtBf,GAAO,MAAQe,EAAK,OAAO,CAAC,EAE5Bf,GAAOS,EAAK,OAAOI,EAAG,CAAC,CACnC,CACAA,GAAK,EACLP,EAAQO,EAAI,CAChB,CACA,MACJ,IAAK,IACD,GAAIH,GACAD,EAAKI,EAAI,CAAC,IAAM,KAChBJ,EAAK,OAASE,EACdE,GAAK,MAEJ,CAGD,IADAb,GAAOS,EAAK,MAAMH,EAAOO,CAAC,EAAI;AAAA;AAAA,EACvBJ,EAAKI,EAAI,CAAC,IAAM,MACnBJ,EAAKI,EAAI,CAAC,IAAM,KAChBJ,EAAKI,EAAI,CAAC,IAAM,KAChBb,GAAO;AAAA,EACPa,GAAK,EAETb,GAAOY,EAEHH,EAAKI,EAAI,CAAC,IAAM,MAChBb,GAAO,MACXa,GAAK,EACLP,EAAQO,EAAI,CAChB,CACA,MACJ,QACIA,GAAK,CACb,CAER,OAAAb,EAAMM,EAAQN,EAAMS,EAAK,MAAMH,CAAK,EAAIG,EACjCC,EACDV,EACAgB,GAAchB,EAAKY,EAAQK,GAAarB,GAAeC,EAAK,EAAK,CAAC,CAC5E,CACA,SAASqB,GAAmBV,EAAOX,EAAK,CACpC,GAAIA,EAAI,QAAQ,cAAgB,IAC3BA,EAAI,aAAeW,EAAM,SAAS;AAAA,CAAI,GACvC,kBAAkB,KAAKA,CAAK,EAE5B,OAAOD,GAAmBC,EAAOX,CAAG,EACxC,IAAMe,EAASf,EAAI,SAAWE,GAAuBS,CAAK,EAAI,KAAO,IAC/DW,EAAM,IAAMX,EAAM,QAAQ,KAAM,IAAI,EAAE,QAAQ,OAAQ;AAAA,EAAOI,CAAM,EAAE,EAAI,IAC/E,OAAOf,EAAI,YACLsB,EACAH,GAAcG,EAAKP,EAAQQ,GAAWxB,GAAeC,EAAK,EAAK,CAAC,CAC1E,CACA,SAASwB,GAAab,EAAOX,EAAK,CAC9B,GAAM,CAAE,YAAAyB,CAAY,EAAIzB,EAAI,QACxB0B,EACJ,GAAID,IAAgB,GAChBC,EAAKhB,OACJ,CACD,IAAMiB,EAAYhB,EAAM,SAAS,GAAG,EAC9BiB,EAAYjB,EAAM,SAAS,GAAG,EAChCgB,GAAa,CAACC,EACdF,EAAKL,GACAO,GAAa,CAACD,EACnBD,EAAKhB,GAELgB,EAAKD,EAAcJ,GAAqBX,EAChD,CACA,OAAOgB,EAAGf,EAAOX,CAAG,CACxB,CAGA,IAAI6B,GACJ,GAAI,CACAA,GAAmB,IAAI,OAAO;AAAA;AAAA;AAAA,KAA0B,GAAG,CAC/D,MACM,CACFA,GAAmB,cACvB,CACA,SAASC,GAAY,CAAE,QAAAC,EAAS,KAAAC,EAAM,MAAArB,CAAM,EAAGX,EAAKiC,EAAWC,EAAa,CACxE,GAAM,CAAE,WAAAC,EAAY,cAAAC,EAAe,UAAA/B,CAAU,EAAIL,EAAI,QAGrD,GAAI,CAACmC,GAAc,YAAY,KAAKxB,CAAK,EACrC,OAAOa,GAAab,EAAOX,CAAG,EAElC,IAAMe,EAASf,EAAI,SACdA,EAAI,kBAAoBE,GAAuBS,CAAK,EAAI,KAAO,IAC9D0B,EAAUF,IAAe,UACzB,GACAA,IAAe,UAAYH,IAASM,EAAO,aACvC,GACAN,IAASM,EAAO,cACZ,GACA,CAAClC,GAAoBO,EAAON,EAAWU,EAAO,MAAM,EAClE,GAAI,CAACJ,EACD,OAAO0B,EAAU;AAAA,EAAQ;AAAA,EAE7B,IAAIE,EACAC,EACJ,IAAKA,EAAW7B,EAAM,OAAQ6B,EAAW,EAAG,EAAEA,EAAU,CACpD,IAAMvB,EAAKN,EAAM6B,EAAW,CAAC,EAC7B,GAAIvB,IAAO;AAAA,GAAQA,IAAO,KAAQA,IAAO,IACrC,KACR,CACA,IAAIwB,EAAM9B,EAAM,UAAU6B,CAAQ,EAC5BE,EAAWD,EAAI,QAAQ;AAAA,CAAI,EAC7BC,IAAa,GACbH,EAAQ,IAEH5B,IAAU8B,GAAOC,IAAaD,EAAI,OAAS,GAChDF,EAAQ,IACJL,GACAA,EAAY,GAGhBK,EAAQ,GAERE,IACA9B,EAAQA,EAAM,MAAM,EAAG,CAAC8B,EAAI,MAAM,EAC9BA,EAAIA,EAAI,OAAS,CAAC,IAAM;AAAA,IACxBA,EAAMA,EAAI,MAAM,EAAG,EAAE,GACzBA,EAAMA,EAAI,QAAQZ,GAAkB,KAAKd,CAAM,EAAE,GAGrD,IAAI4B,EAAiB,GACjBC,EACAC,EAAa,GACjB,IAAKD,EAAW,EAAGA,EAAWjC,EAAM,OAAQ,EAAEiC,EAAU,CACpD,IAAM3B,EAAKN,EAAMiC,CAAQ,EACzB,GAAI3B,IAAO,IACP0B,EAAiB,WACZ1B,IAAO;AAAA,EACZ4B,EAAaD,MAEb,MACR,CACA,IAAInC,EAAQE,EAAM,UAAU,EAAGkC,EAAaD,EAAWC,EAAa,EAAID,CAAQ,EAC5EnC,IACAE,EAAQA,EAAM,UAAUF,EAAM,MAAM,EACpCA,EAAQA,EAAM,QAAQ,OAAQ,KAAKM,CAAM,EAAE,GAI/C,IAAI+B,GAAUH,EAFK5B,EAAS,IAAM,IAEU,IAAMwB,EAMlD,GALIR,IACAe,GAAU,IAAMV,EAAcL,EAAQ,QAAQ,aAAc,GAAG,CAAC,EAC5DE,GACAA,EAAU,GAEd,CAACI,EAAS,CACV,IAAMU,EAAcpC,EACf,QAAQ,OAAQ;AAAA,GAAM,EACtB,QAAQ,iDAAkD,MAAM,EAEhE,QAAQ,OAAQ,KAAKI,CAAM,EAAE,EAC9BiC,EAAkB,GAChBC,EAAclD,GAAeC,EAAK,EAAI,EACxCmC,IAAe,UAAYH,IAASM,EAAO,eAC3CW,EAAY,WAAa,IAAM,CAC3BD,EAAkB,EACtB,GAEJ,IAAME,EAAO/B,GAAc,GAAGV,CAAK,GAAGsC,CAAW,GAAGN,CAAG,GAAI1B,EAAQoC,GAAYF,CAAW,EAC1F,GAAI,CAACD,EACD,MAAO,IAAIF,CAAM;AAAA,EAAK/B,CAAM,GAAGmC,CAAI,EAC3C,CACA,OAAAvC,EAAQA,EAAM,QAAQ,OAAQ,KAAKI,CAAM,EAAE,EACpC,IAAI+B,CAAM;AAAA,EAAK/B,CAAM,GAAGN,CAAK,GAAGE,CAAK,GAAG8B,CAAG,EACtD,CACA,SAASW,GAAYC,EAAMrD,EAAKiC,EAAWC,EAAa,CACpD,GAAM,CAAE,KAAAF,EAAM,MAAArB,CAAM,EAAI0C,EAClB,CAAE,aAAAC,EAAc,YAAAzC,EAAa,OAAAE,EAAQ,WAAAwC,EAAY,OAAAC,CAAO,EAAIxD,EAClE,GAAKa,GAAeF,EAAM,SAAS;AAAA,CAAI,GAClC6C,GAAU,WAAW,KAAK7C,CAAK,EAChC,OAAOa,GAAab,EAAOX,CAAG,EAElC,GAAI,oFAAoF,KAAKW,CAAK,EAO9F,OAAOE,GAAe2C,GAAU,CAAC7C,EAAM,SAAS;AAAA,CAAI,EAC9Ca,GAAab,EAAOX,CAAG,EACvB8B,GAAYuB,EAAMrD,EAAKiC,EAAWC,CAAW,EAEvD,GAAI,CAACrB,GACD,CAAC2C,GACDxB,IAASM,EAAO,OAChB3B,EAAM,SAAS;AAAA,CAAI,EAEnB,OAAOmB,GAAYuB,EAAMrD,EAAKiC,EAAWC,CAAW,EAExD,GAAIhC,GAAuBS,CAAK,EAAG,CAC/B,GAAII,IAAW,GACX,OAAAf,EAAI,iBAAmB,GAChB8B,GAAYuB,EAAMrD,EAAKiC,EAAWC,CAAW,EAEnD,GAAIrB,GAAeE,IAAWwC,EAC/B,OAAO/B,GAAab,EAAOX,CAAG,CAEtC,CACA,IAAMG,EAAMQ,EAAM,QAAQ,OAAQ;AAAA,EAAOI,CAAM,EAAE,EAIjD,GAAIuC,EAAc,CACd,IAAMG,EAAQC,GAAQA,EAAI,SAAWA,EAAI,MAAQ,yBAA2BA,EAAI,MAAM,KAAKvD,CAAG,EACxF,CAAE,OAAAwD,EAAQ,KAAAC,CAAK,EAAI5D,EAAI,IAAI,OACjC,GAAI4D,EAAK,KAAKH,CAAI,GAAKE,GAAQ,KAAKF,CAAI,EACpC,OAAOjC,GAAab,EAAOX,CAAG,CACtC,CACA,OAAOa,EACDV,EACAgB,GAAchB,EAAKY,EAAQQ,GAAWxB,GAAeC,EAAK,EAAK,CAAC,CAC1E,CACA,SAAS6D,GAAgBR,EAAMrD,EAAKiC,EAAWC,EAAa,CACxD,GAAM,CAAE,YAAArB,EAAa,OAAA2C,CAAO,EAAIxD,EAC1B8D,EAAK,OAAOT,EAAK,OAAU,SAC3BA,EACA,OAAO,OAAO,CAAC,EAAGA,EAAM,CAAE,MAAO,OAAOA,EAAK,KAAK,CAAE,CAAC,EACvD,CAAE,KAAArB,CAAK,EAAIqB,EACXrB,IAASM,EAAO,cAEZ,kDAAkD,KAAKwB,EAAG,KAAK,IAC/D9B,EAAOM,EAAO,cAEtB,IAAMyB,EAAcC,GAAU,CAC1B,OAAQA,EAAO,CACX,KAAK1B,EAAO,aACZ,KAAKA,EAAO,cACR,OAAOzB,GAAe2C,EAChBhC,GAAasC,EAAG,MAAO9D,CAAG,EAC1B8B,GAAYgC,EAAI9D,EAAKiC,EAAWC,CAAW,EACrD,KAAKI,EAAO,aACR,OAAO5B,GAAmBoD,EAAG,MAAO9D,CAAG,EAC3C,KAAKsC,EAAO,aACR,OAAOjB,GAAmByC,EAAG,MAAO9D,CAAG,EAC3C,KAAKsC,EAAO,MACR,OAAOc,GAAYU,EAAI9D,EAAKiC,EAAWC,CAAW,EACtD,QACI,OAAO,IACf,CACJ,EACIZ,EAAMyC,EAAW/B,CAAI,EACzB,GAAIV,IAAQ,KAAM,CACd,GAAM,CAAE,eAAA2C,EAAgB,kBAAAC,CAAkB,EAAIlE,EAAI,QAC5CmE,EAAKtD,GAAeoD,GAAmBC,EAE7C,GADA5C,EAAMyC,EAAWI,CAAC,EACd7C,IAAQ,KACR,MAAM,IAAI,MAAM,mCAAmC6C,CAAC,EAAE,CAC9D,CACA,OAAO7C,CACX,CCxUA,SAAS8C,GAAuBC,EAAKC,EAAS,CAC1C,IAAMC,EAAM,OAAO,OAAO,CACtB,WAAY,GACZ,cAAeC,GACf,eAAgB,KAChB,kBAAmB,QACnB,WAAY,KACZ,mBAAoB,GACpB,+BAAgC,GAChC,SAAU,QACV,sBAAuB,GACvB,UAAW,GACX,UAAW,GACX,gBAAiB,GACjB,QAAS,OACT,WAAY,GACZ,YAAa,KACb,cAAe,GACf,QAAS,OACT,iBAAkB,EACtB,EAAGH,EAAI,OAAO,gBAAiBC,CAAO,EAClCG,EACJ,OAAQF,EAAI,gBAAiB,CACzB,IAAK,QACDE,EAAS,GACT,MACJ,IAAK,OACDA,EAAS,GACT,MACJ,QACIA,EAAS,IACjB,CACA,MAAO,CACH,QAAS,IAAI,IACb,IAAAJ,EACA,sBAAuBE,EAAI,sBAAwB,IAAM,GACzD,OAAQ,GACR,WAAY,OAAOA,EAAI,QAAW,SAAW,IAAI,OAAOA,EAAI,MAAM,EAAI,KACtE,OAAAE,EACA,QAASF,CACb,CACJ,CACA,SAASG,GAAaC,EAAMC,EAAM,CAC9B,GAAIA,EAAK,IAAK,CACV,IAAMC,EAAQF,EAAK,OAAOG,GAAKA,EAAE,MAAQF,EAAK,GAAG,EACjD,GAAIC,EAAM,OAAS,EACf,OAAOA,EAAM,KAAKC,GAAKA,EAAE,SAAWF,EAAK,MAAM,GAAKC,EAAM,CAAC,CACnE,CACA,IAAIE,EACAC,EACJ,GAAIC,EAASL,CAAI,EAAG,CAChBI,EAAMJ,EAAK,MACX,IAAIC,EAAQF,EAAK,OAAOG,GAAKA,EAAE,WAAWE,CAAG,CAAC,EAC9C,GAAIH,EAAM,OAAS,EAAG,CAClB,IAAMK,EAAYL,EAAM,OAAOC,GAAKA,EAAE,IAAI,EACtCI,EAAU,OAAS,IACnBL,EAAQK,EAChB,CACAH,EACIF,EAAM,KAAKC,GAAKA,EAAE,SAAWF,EAAK,MAAM,GAAKC,EAAM,KAAKC,GAAK,CAACA,EAAE,MAAM,CAC9E,MAEIE,EAAMJ,EACNG,EAASJ,EAAK,KAAKG,GAAKA,EAAE,WAAaE,aAAeF,EAAE,SAAS,EAErE,GAAI,CAACC,EAAQ,CACT,IAAMI,EAAOH,GAAK,aAAa,OAASA,IAAQ,KAAO,OAAS,OAAOA,GACvE,MAAM,IAAI,MAAM,wBAAwBG,CAAI,QAAQ,CACxD,CACA,OAAOJ,CACX,CAEA,SAASK,GAAeC,EAAMN,EAAQ,CAAE,QAAAO,EAAS,IAAAjB,CAAI,EAAG,CACpD,GAAI,CAACA,EAAI,WACL,MAAO,GACX,IAAMkB,EAAQ,CAAC,EACTC,GAAUP,EAASI,CAAI,GAAKI,GAAaJ,CAAI,IAAMA,EAAK,OAC1DG,GAAUE,GAAcF,CAAM,IAC9BF,EAAQ,IAAIE,CAAM,EAClBD,EAAM,KAAK,IAAIC,CAAM,EAAE,GAE3B,IAAMG,EAAMN,EAAK,MAAQN,EAAO,QAAU,KAAOA,EAAO,KACxD,OAAIY,GACAJ,EAAM,KAAKlB,EAAI,WAAW,UAAUsB,CAAG,CAAC,EACrCJ,EAAM,KAAK,GAAG,CACzB,CACA,SAASK,GAAUhB,EAAMiB,EAAKC,EAAWC,EAAa,CAClD,GAAIC,EAAOpB,CAAI,EACX,OAAOA,EAAK,SAASiB,EAAKC,EAAWC,CAAW,EACpD,GAAIE,GAAQrB,CAAI,EAAG,CACf,GAAIiB,EAAI,IAAI,WACR,OAAOjB,EAAK,SAASiB,CAAG,EAC5B,GAAIA,EAAI,iBAAiB,IAAIjB,CAAI,EAC7B,MAAM,IAAI,UAAU,yDAAyD,EAGzEiB,EAAI,gBACJA,EAAI,gBAAgB,IAAIjB,CAAI,EAE5BiB,EAAI,gBAAkB,IAAI,IAAI,CAACjB,CAAI,CAAC,EACxCA,EAAOA,EAAK,QAAQiB,EAAI,GAAG,CAEnC,CACA,IAAId,EACEM,EAAOa,EAAOtB,CAAI,EAClBA,EACAiB,EAAI,IAAI,WAAWjB,EAAM,CAAE,SAAU,GAAMG,EAAS,CAAG,CAAC,EAC9DA,IAAWA,EAASL,GAAamB,EAAI,IAAI,OAAO,KAAMR,CAAI,GAC1D,IAAME,EAAQH,GAAeC,EAAMN,EAAQc,CAAG,EAC1CN,EAAM,OAAS,IACfM,EAAI,eAAiBA,EAAI,eAAiB,GAAKN,EAAM,OAAS,GAClE,IAAMY,EAAM,OAAOpB,EAAO,WAAc,WAClCA,EAAO,UAAUM,EAAMQ,EAAKC,EAAWC,CAAW,EAClDd,EAASI,CAAI,EACTe,GAAgBf,EAAMQ,EAAKC,EAAWC,CAAW,EACjDV,EAAK,SAASQ,EAAKC,EAAWC,CAAW,EACnD,OAAKR,EAEEN,EAASI,CAAI,GAAKc,EAAI,CAAC,IAAM,KAAOA,EAAI,CAAC,IAAM,IAChD,GAAGZ,CAAK,IAAIY,CAAG,GACf,GAAGZ,CAAK;AAAA,EAAKM,EAAI,MAAM,GAAGM,CAAG,GAHxBA,CAIf,CCzHA,SAASE,GAAc,CAAE,IAAAC,EAAK,MAAAC,CAAM,EAAGC,EAAKC,EAAWC,EAAa,CAChE,GAAM,CAAE,cAAAC,EAAe,IAAAC,EAAK,OAAAC,EAAQ,WAAAC,EAAY,QAAS,CAAE,cAAAC,EAAe,UAAAC,EAAW,WAAAC,CAAW,CAAE,EAAIT,EAClGU,EAAcC,EAAOb,CAAG,GAAKA,EAAI,SAAY,KACjD,GAAIW,EAAY,CACZ,GAAIC,EACA,MAAM,IAAI,MAAM,kDAAkD,EAEtE,GAAIE,GAAad,CAAG,GAAM,CAACa,EAAOb,CAAG,GAAK,OAAOA,GAAQ,SAAW,CAChE,IAAMe,EAAM,6DACZ,MAAM,IAAI,MAAMA,CAAG,CACvB,CACJ,CACA,IAAIC,EAAc,CAACL,IACd,CAACX,GACGY,GAAcX,GAAS,MAAQ,CAACC,EAAI,QACrCY,GAAad,CAAG,IACfiB,EAASjB,CAAG,EACPA,EAAI,OAASkB,EAAO,cAAgBlB,EAAI,OAASkB,EAAO,cACxD,OAAOlB,GAAQ,WAC7BE,EAAM,OAAO,OAAO,CAAC,EAAGA,EAAK,CACzB,cAAe,GACf,YAAa,CAACc,IAAgBL,GAAc,CAACN,GAC7C,OAAQE,EAASC,CACrB,CAAC,EACD,IAAIW,EAAiB,GACjBC,EAAY,GACZC,EAAMC,GAAUtB,EAAKE,EAAK,IAAOiB,EAAiB,GAAO,IAAOC,EAAY,EAAK,EACrF,GAAI,CAACJ,GAAe,CAACd,EAAI,QAAUmB,EAAI,OAAS,KAAM,CAClD,GAAIV,EACA,MAAM,IAAI,MAAM,8EAA8E,EAClGK,EAAc,EAClB,CACA,GAAId,EAAI,QACJ,GAAIG,GAAiBJ,GAAS,KAC1B,OAAIkB,GAAkBhB,GAClBA,EAAU,EACPkB,IAAQ,GAAK,IAAML,EAAc,KAAKK,CAAG,GAAKA,UAGnDhB,GAAiB,CAACM,GAAgBV,GAAS,MAAQe,EACzD,OAAAK,EAAM,KAAKA,CAAG,GACVT,GAAc,CAACO,EACfE,GAAOE,GAAYF,EAAKnB,EAAI,OAAQO,EAAcG,CAAU,CAAC,EAExDQ,GAAahB,GAClBA,EAAY,EACTiB,EAEPF,IACAP,EAAa,MACbI,GACIJ,IACAS,GAAOE,GAAYF,EAAKnB,EAAI,OAAQO,EAAcG,CAAU,CAAC,GACjES,EAAM,KAAKA,CAAG;AAAA,EAAKd,CAAM,MAGzBc,EAAM,GAAGA,CAAG,IACRT,IACAS,GAAOE,GAAYF,EAAKnB,EAAI,OAAQO,EAAcG,CAAU,CAAC,IAErE,IAAIY,EAAKC,EAAKC,EACVb,EAAOZ,CAAK,GACZuB,EAAM,CAAC,CAACvB,EAAM,YACdwB,EAAMxB,EAAM,cACZyB,EAAezB,EAAM,UAGrBuB,EAAM,GACNC,EAAM,KACNC,EAAe,KACXzB,GAAS,OAAOA,GAAU,WAC1BA,EAAQK,EAAI,WAAWL,CAAK,IAEpCC,EAAI,YAAc,GACd,CAACc,GAAe,CAACJ,GAAcK,EAAShB,CAAK,IAC7CC,EAAI,cAAgBmB,EAAI,OAAS,GACrCD,EAAY,GACR,CAACV,GACDF,EAAW,QAAU,GACrB,CAACN,EAAI,QACL,CAACc,GACDW,GAAM1B,CAAK,GACX,CAACA,EAAM,MACP,CAACA,EAAM,KACP,CAACA,EAAM,SAEPC,EAAI,OAASA,EAAI,OAAO,UAAU,CAAC,GAEvC,IAAI0B,EAAmB,GACjBC,EAAWP,GAAUrB,EAAOC,EAAK,IAAO0B,EAAmB,GAAO,IAAOR,EAAY,EAAK,EAC5FU,EAAK,IACT,GAAIlB,GAAcY,GAAOC,EAAK,CAE1B,GADAK,EAAKN,EAAM;AAAA,EAAO,GACdC,EAAK,CACL,IAAMM,EAAKtB,EAAcgB,CAAG,EAC5BK,GAAM;AAAA,EAAKE,GAAcD,EAAI7B,EAAI,MAAM,CAAC,EAC5C,CACI2B,IAAa,IAAM,CAAC3B,EAAI,OACpB4B,IAAO;AAAA,GAAQJ,IACfI,EAAK;AAAA;AAAA,GAGTA,GAAM;AAAA,EAAK5B,EAAI,MAAM,EAE7B,SACS,CAACc,GAAeF,GAAab,CAAK,EAAG,CAC1C,IAAMgC,EAAMJ,EAAS,CAAC,EAChBK,EAAML,EAAS,QAAQ;AAAA,CAAI,EAC3BM,EAAaD,IAAQ,GACrBE,EAAOlC,EAAI,QAAUD,EAAM,MAAQA,EAAM,MAAM,SAAW,EAChE,GAAIkC,GAAc,CAACC,EAAM,CACrB,IAAIC,GAAe,GACnB,GAAIF,IAAeF,IAAQ,KAAOA,IAAQ,KAAM,CAC5C,IAAIK,EAAMT,EAAS,QAAQ,GAAG,EAC1BI,IAAQ,KACRK,IAAQ,IACRA,EAAMJ,GACNL,EAASS,EAAM,CAAC,IAAM,MACtBA,EAAMT,EAAS,QAAQ,IAAKS,EAAM,CAAC,IAEnCA,IAAQ,IAAMJ,EAAMI,KACpBD,GAAe,GACvB,CACKA,KACDP,EAAK;AAAA,EAAK5B,EAAI,MAAM,GAC5B,CACJ,MACS2B,IAAa,IAAMA,EAAS,CAAC,IAAM;AAAA,KACxCC,EAAK,IAET,OAAAT,GAAOS,EAAKD,EACR3B,EAAI,OACA0B,GAAoBzB,GACpBA,EAAU,EAETuB,GAAgB,CAACE,EACtBP,GAAOE,GAAYF,EAAKnB,EAAI,OAAQO,EAAciB,CAAY,CAAC,EAE1DN,GAAahB,GAClBA,EAAY,EAETiB,CACX,CC/IA,SAASkB,GAAKC,EAAUC,EAAS,EACzBD,IAAa,SAAWA,IAAa,SACrC,QAAQ,KAAKC,CAAO,CAE5B,CCEA,IAAMC,GAAY,KACZC,GAAQ,CACV,SAAUC,GAASA,IAAUF,IACxB,OAAOE,GAAU,UAAYA,EAAM,cAAgBF,GACxD,QAAS,MACT,IAAK,0BACL,KAAM,OACN,QAAS,IAAM,OAAO,OAAO,IAAIG,EAAO,OAAOH,EAAS,CAAC,EAAG,CACxD,WAAYI,EAChB,CAAC,EACD,UAAW,IAAMJ,EACrB,EACMK,GAAa,CAACC,EAAKC,KAASN,GAAM,SAASM,CAAG,GAC/CC,EAASD,CAAG,IACR,CAACA,EAAI,MAAQA,EAAI,OAASJ,EAAO,QAClCF,GAAM,SAASM,EAAI,KAAK,IAC5BD,GAAK,IAAI,OAAO,KAAK,KAAKG,GAAOA,EAAI,MAAQR,GAAM,KAAOQ,EAAI,OAAO,EACzE,SAASL,GAAgBE,EAAKI,EAAKR,EAAO,CACtC,IAAMS,EAASC,GAAkBN,EAAKJ,CAAK,EAC3C,GAAIW,GAAMF,CAAM,EACZ,QAAWG,KAAMH,EAAO,MACpBI,GAAWT,EAAKI,EAAKI,CAAE,UACtB,MAAM,QAAQH,CAAM,EACzB,QAAWG,KAAMH,EACbI,GAAWT,EAAKI,EAAKI,CAAE,OAE3BC,GAAWT,EAAKI,EAAKC,CAAM,CACnC,CACA,SAASI,GAAWT,EAAKI,EAAKR,EAAO,CACjC,IAAMS,EAASC,GAAkBN,EAAKJ,CAAK,EAC3C,GAAI,CAACc,GAAML,CAAM,EACb,MAAM,IAAI,MAAM,2CAA2C,EAC/D,IAAMM,EAASN,EAAO,OAAO,KAAML,EAAK,GAAG,EAC3C,OAAW,CAACC,EAAKL,CAAK,IAAKe,EACnBP,aAAe,IACVA,EAAI,IAAIH,CAAG,GACZG,EAAI,IAAIH,EAAKL,CAAK,EAEjBQ,aAAe,IACpBA,EAAI,IAAIH,CAAG,EAEL,OAAO,UAAU,eAAe,KAAKG,EAAKH,CAAG,GACnD,OAAO,eAAeG,EAAKH,EAAK,CAC5B,MAAAL,EACA,SAAU,GACV,WAAY,GACZ,aAAc,EAClB,CAAC,EAGT,OAAOQ,CACX,CACA,SAASE,GAAkBN,EAAKJ,EAAO,CACnC,OAAOI,GAAOY,GAAQhB,CAAK,EAAIA,EAAM,QAAQI,EAAI,IAAKA,CAAG,EAAIJ,CACjE,CC1DA,SAASiB,GAAeC,EAAKC,EAAK,CAAE,IAAAC,EAAK,MAAAC,CAAM,EAAG,CAC9C,GAAIC,EAAOF,CAAG,GAAKA,EAAI,WACnBA,EAAI,WAAWF,EAAKC,EAAKE,CAAK,UAEzBE,GAAWL,EAAKE,CAAG,EACxBI,GAAgBN,EAAKC,EAAKE,CAAK,MAC9B,CACD,IAAMI,EAAQC,GAAKN,EAAK,GAAIF,CAAG,EAC/B,GAAIC,aAAe,IACfA,EAAI,IAAIM,EAAOC,GAAKL,EAAOI,EAAOP,CAAG,CAAC,UAEjCC,aAAe,IACpBA,EAAI,IAAIM,CAAK,MAEZ,CACD,IAAME,EAAYC,GAAaR,EAAKK,EAAOP,CAAG,EACxCW,EAAUH,GAAKL,EAAOM,EAAWT,CAAG,EACtCS,KAAaR,EACb,OAAO,eAAeA,EAAKQ,EAAW,CAClC,MAAOE,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EAClB,CAAC,EAEDV,EAAIQ,CAAS,EAAIE,CACzB,CACJ,CACA,OAAOV,CACX,CACA,SAASS,GAAaR,EAAKK,EAAOP,EAAK,CACnC,GAAIO,IAAU,KACV,MAAO,GAEX,GAAI,OAAOA,GAAU,SACjB,OAAO,OAAOA,CAAK,EACvB,GAAIH,EAAOF,CAAG,GAAKF,GAAK,IAAK,CACzB,IAAMY,EAASC,GAAuBb,EAAI,IAAK,CAAC,CAAC,EACjDY,EAAO,QAAU,IAAI,IACrB,QAAWE,KAAQd,EAAI,QAAQ,KAAK,EAChCY,EAAO,QAAQ,IAAIE,EAAK,MAAM,EAClCF,EAAO,OAAS,GAChBA,EAAO,eAAiB,GACxB,IAAMG,EAASb,EAAI,SAASU,CAAM,EAClC,GAAI,CAACZ,EAAI,aAAc,CACnB,IAAIgB,EAAU,KAAK,UAAUD,CAAM,EAC/BC,EAAQ,OAAS,KACjBA,EAAUA,EAAQ,UAAU,EAAG,EAAE,EAAI,QACzCC,GAAKjB,EAAI,IAAI,QAAQ,SAAU,kFAAkFgB,CAAO,0CAA0C,EAClKhB,EAAI,aAAe,EACvB,CACA,OAAOe,CACX,CACA,OAAO,KAAK,UAAUR,CAAK,CAC/B,CCvDA,SAASW,GAAWC,EAAKC,EAAOC,EAAK,CACjC,IAAMC,EAAIC,GAAWJ,EAAK,OAAWE,CAAG,EAClCG,EAAID,GAAWH,EAAO,OAAWC,CAAG,EAC1C,OAAO,IAAII,GAAKH,EAAGE,CAAC,CACxB,CACA,IAAMC,GAAN,MAAMC,CAAK,CACP,YAAYP,EAAKC,EAAQ,KAAM,CAC3B,OAAO,eAAe,KAAMO,GAAW,CAAE,MAAOC,EAAK,CAAC,EACtD,KAAK,IAAMT,EACX,KAAK,MAAQC,CACjB,CACA,MAAMS,EAAQ,CACV,GAAI,CAAE,IAAAV,EAAK,MAAAC,CAAM,EAAI,KACrB,OAAIU,EAAOX,CAAG,IACVA,EAAMA,EAAI,MAAMU,CAAM,GACtBC,EAAOV,CAAK,IACZA,EAAQA,EAAM,MAAMS,CAAM,GACvB,IAAIH,EAAKP,EAAKC,CAAK,CAC9B,CACA,OAAOW,EAAGV,EAAK,CACX,IAAMW,EAAOX,GAAK,SAAW,IAAI,IAAQ,CAAC,EAC1C,OAAOY,GAAeZ,EAAKW,EAAM,IAAI,CACzC,CACA,SAASX,EAAKa,EAAWC,EAAa,CAClC,OAAOd,GAAK,IACNe,GAAc,KAAMf,EAAKa,EAAWC,CAAW,EAC/C,KAAK,UAAU,IAAI,CAC7B,CACJ,EC7BA,SAASE,GAAoBC,EAAYC,EAAKC,EAAS,CAGnD,OAFaD,EAAI,QAAUD,EAAW,KACbG,GAA0BC,IAClCJ,EAAYC,EAAKC,CAAO,CAC7C,CACA,SAASE,GAAyB,CAAE,QAAAC,EAAS,MAAAC,CAAM,EAAGL,EAAK,CAAE,gBAAAM,EAAiB,UAAAC,EAAW,WAAAC,EAAY,YAAAC,EAAa,UAAAC,CAAU,EAAG,CAC3H,GAAM,CAAE,OAAAC,EAAQ,QAAS,CAAE,cAAAC,CAAc,CAAE,EAAIZ,EACzCa,EAAU,OAAO,OAAO,CAAC,EAAGb,EAAK,CAAE,OAAQQ,EAAY,KAAM,IAAK,CAAC,EACrEM,EAAY,GACVC,EAAQ,CAAC,EACf,QAASC,EAAI,EAAGA,EAAIX,EAAM,OAAQ,EAAEW,EAAG,CACnC,IAAMC,EAAOZ,EAAMW,CAAC,EAChBZ,EAAU,KACd,GAAIc,EAAOD,CAAI,EACP,CAACH,GAAaG,EAAK,aACnBF,EAAM,KAAK,EAAE,EACjBI,GAAiBnB,EAAKe,EAAOE,EAAK,cAAeH,CAAS,EACtDG,EAAK,UACLb,EAAUa,EAAK,iBAEdG,EAAOH,CAAI,EAAG,CACnB,IAAMI,EAAKH,EAAOD,EAAK,GAAG,EAAIA,EAAK,IAAM,KACrCI,IACI,CAACP,GAAaO,EAAG,aACjBN,EAAM,KAAK,EAAE,EACjBI,GAAiBnB,EAAKe,EAAOM,EAAG,cAAeP,CAAS,EAEhE,CACAA,EAAY,GACZ,IAAIQ,EAAMC,GAAUN,EAAMJ,EAAS,IAAOT,EAAU,KAAO,IAAOU,EAAY,EAAK,EAC/EV,IACAkB,GAAOE,GAAYF,EAAKd,EAAYI,EAAcR,CAAO,CAAC,GAC1DU,GAAaV,IACbU,EAAY,IAChBC,EAAM,KAAKT,EAAkBgB,CAAG,CACpC,CACA,IAAIA,EACJ,GAAIP,EAAM,SAAW,EACjBO,EAAMf,EAAU,MAAQA,EAAU,QAEjC,CACDe,EAAMP,EAAM,CAAC,EACb,QAASC,EAAI,EAAGA,EAAID,EAAM,OAAQ,EAAEC,EAAG,CACnC,IAAMS,EAAOV,EAAMC,CAAC,EACpBM,GAAOG,EAAO;AAAA,EAAKd,CAAM,GAAGc,CAAI,GAAK;AAAA,CACzC,CACJ,CACA,OAAIrB,GACAkB,GAAO;AAAA,EAAOI,GAAcd,EAAcR,CAAO,EAAGO,CAAM,EACtDD,GACAA,EAAU,GAETI,GAAaL,GAClBA,EAAY,EACTa,CACX,CACA,SAASpB,GAAwB,CAAE,MAAAG,CAAM,EAAGL,EAAK,CAAE,UAAAO,EAAW,WAAAC,CAAW,EAAG,CACxE,GAAM,CAAE,OAAAG,EAAQ,WAAAgB,EAAY,sBAAuBC,EAAW,QAAS,CAAE,cAAAhB,CAAc,CAAE,EAAIZ,EAC7FQ,GAAcmB,EACd,IAAMd,EAAU,OAAO,OAAO,CAAC,EAAGb,EAAK,CACnC,OAAQQ,EACR,OAAQ,GACR,KAAM,IACV,CAAC,EACGqB,EAAa,GACbC,EAAe,EACbf,EAAQ,CAAC,EACf,QAASC,EAAI,EAAGA,EAAIX,EAAM,OAAQ,EAAEW,EAAG,CACnC,IAAMC,EAAOZ,EAAMW,CAAC,EAChBZ,EAAU,KACd,GAAIc,EAAOD,CAAI,EACPA,EAAK,aACLF,EAAM,KAAK,EAAE,EACjBI,GAAiBnB,EAAKe,EAAOE,EAAK,cAAe,EAAK,EAClDA,EAAK,UACLb,EAAUa,EAAK,iBAEdG,EAAOH,CAAI,EAAG,CACnB,IAAMI,EAAKH,EAAOD,EAAK,GAAG,EAAIA,EAAK,IAAM,KACrCI,IACIA,EAAG,aACHN,EAAM,KAAK,EAAE,EACjBI,GAAiBnB,EAAKe,EAAOM,EAAG,cAAe,EAAK,EAChDA,EAAG,UACHQ,EAAa,KAErB,IAAME,EAAKb,EAAOD,EAAK,KAAK,EAAIA,EAAK,MAAQ,KACzCc,GACIA,EAAG,UACH3B,EAAU2B,EAAG,SACbA,EAAG,gBACHF,EAAa,KAEZZ,EAAK,OAAS,MAAQI,GAAI,UAC/BjB,EAAUiB,EAAG,QAErB,CACIjB,IACAyB,EAAa,IACjB,IAAIP,EAAMC,GAAUN,EAAMJ,EAAS,IAAOT,EAAU,IAAK,EACzDyB,IAAeA,EAAad,EAAM,OAASe,GAAgBR,EAAI,SAAS;AAAA,CAAI,GACxEN,EAAIX,EAAM,OAAS,EACnBiB,GAAO,IAEFtB,EAAI,QAAQ,gBACbA,EAAI,QAAQ,UAAY,IACxB6B,IAAeA,EAAad,EAAM,OAAO,CAACiB,EAAKP,IAASO,EAAMP,EAAK,OAAS,EAAG,CAAC,GAC3EH,EAAI,OAAS,GACdtB,EAAI,QAAQ,YAEhB6B,IACAP,GAAO,MAGXlB,IACAkB,GAAOE,GAAYF,EAAKd,EAAYI,EAAcR,CAAO,CAAC,GAC9DW,EAAM,KAAKO,CAAG,EACdQ,EAAef,EAAM,MACzB,CACA,GAAM,CAAE,MAAAkB,EAAO,IAAAC,CAAI,EAAI3B,EACvB,GAAIQ,EAAM,SAAW,EACjB,OAAOkB,EAAQC,EAGf,GAAI,CAACL,EAAY,CACb,IAAMM,EAAMpB,EAAM,OAAO,CAACiB,EAAKP,IAASO,EAAMP,EAAK,OAAS,EAAG,CAAC,EAChEI,EAAa7B,EAAI,QAAQ,UAAY,GAAKmC,EAAMnC,EAAI,QAAQ,SAChE,CACA,GAAI6B,EAAY,CACZ,IAAIP,EAAMW,EACV,QAAWR,KAAQV,EACfO,GAAOG,EAAO;AAAA,EAAKE,CAAU,GAAGhB,CAAM,GAAGc,CAAI,GAAK;AAAA,EACtD,MAAO,GAAGH,CAAG;AAAA,EAAKX,CAAM,GAAGuB,CAAG,EAClC,KAEI,OAAO,GAAGD,CAAK,GAAGL,CAAS,GAAGb,EAAM,KAAK,GAAG,CAAC,GAAGa,CAAS,GAAGM,CAAG,EAG3E,CACA,SAASf,GAAiB,CAAE,OAAAR,EAAQ,QAAS,CAAE,cAAAC,CAAc,CAAE,EAAGG,EAAOX,EAASU,EAAW,CAGzF,GAFIV,GAAWU,IACXV,EAAUA,EAAQ,QAAQ,OAAQ,EAAE,GACpCA,EAAS,CACT,IAAMgC,EAAKV,GAAcd,EAAcR,CAAO,EAAGO,CAAM,EACvDI,EAAM,KAAKqB,EAAG,UAAU,CAAC,CAC7B,CACJ,CC/IA,SAASC,GAASC,EAAOC,EAAK,CAC1B,IAAMC,EAAIC,EAASF,CAAG,EAAIA,EAAI,MAAQA,EACtC,QAAWG,KAAMJ,EACb,GAAIK,EAAOD,CAAE,IACLA,EAAG,MAAQH,GAAOG,EAAG,MAAQF,GAE7BC,EAASC,EAAG,GAAG,GAAKA,EAAG,IAAI,QAAUF,GACrC,OAAOE,CAIvB,CACA,IAAME,GAAN,cAAsBC,EAAW,CAC7B,WAAW,SAAU,CACjB,MAAO,uBACX,CACA,YAAYC,EAAQ,CAChB,MAAMC,GAAKD,CAAM,EACjB,KAAK,MAAQ,CAAC,CAClB,CAKA,OAAO,KAAKA,EAAQE,EAAKC,EAAK,CAC1B,GAAM,CAAE,cAAAC,EAAe,SAAAC,CAAS,EAAIF,EAC9BG,EAAM,IAAI,KAAKN,CAAM,EACrBO,EAAM,CAACd,EAAKe,IAAU,CACxB,GAAI,OAAOH,GAAa,WACpBG,EAAQH,EAAS,KAAKH,EAAKT,EAAKe,CAAK,UAChC,MAAM,QAAQH,CAAQ,GAAK,CAACA,EAAS,SAASZ,CAAG,EACtD,QACAe,IAAU,QAAaJ,IACvBE,EAAI,MAAM,KAAKG,GAAWhB,EAAKe,EAAOL,CAAG,CAAC,CAClD,EACA,GAAID,aAAe,IACf,OAAW,CAACT,EAAKe,CAAK,IAAKN,EACvBK,EAAId,EAAKe,CAAK,UAEbN,GAAO,OAAOA,GAAQ,SAC3B,QAAWT,KAAO,OAAO,KAAKS,CAAG,EAC7BK,EAAId,EAAKS,EAAIT,CAAG,CAAC,EAEzB,OAAI,OAAOO,EAAO,gBAAmB,YACjCM,EAAI,MAAM,KAAKN,EAAO,cAAc,EAEjCM,CACX,CAOA,IAAII,EAAMC,EAAW,CACjB,IAAIC,EACAf,EAAOa,CAAI,EACXE,EAAQF,EACH,CAACA,GAAQ,OAAOA,GAAS,UAAY,EAAE,QAASA,GAErDE,EAAQ,IAAIC,GAAKH,EAAMA,GAAM,KAAK,EAGlCE,EAAQ,IAAIC,GAAKH,EAAK,IAAKA,EAAK,KAAK,EACzC,IAAMI,EAAOvB,GAAS,KAAK,MAAOqB,EAAM,GAAG,EACrCG,EAAc,KAAK,QAAQ,eACjC,GAAID,EAAM,CACN,GAAI,CAACH,EACD,MAAM,IAAI,MAAM,OAAOC,EAAM,GAAG,cAAc,EAE9CjB,EAASmB,EAAK,KAAK,GAAKE,GAAcJ,EAAM,KAAK,EACjDE,EAAK,MAAM,MAAQF,EAAM,MAEzBE,EAAK,MAAQF,EAAM,KAC3B,SACSG,EAAa,CAClB,IAAME,EAAI,KAAK,MAAM,UAAUC,GAAQH,EAAYH,EAAOM,CAAI,EAAI,CAAC,EAC/DD,IAAM,GACN,KAAK,MAAM,KAAKL,CAAK,EAErB,KAAK,MAAM,OAAOK,EAAG,EAAGL,CAAK,CACrC,MAEI,KAAK,MAAM,KAAKA,CAAK,CAE7B,CACA,OAAOnB,EAAK,CACR,IAAMG,EAAKL,GAAS,KAAK,MAAOE,CAAG,EACnC,OAAKG,EAEO,KAAK,MAAM,OAAO,KAAK,MAAM,QAAQA,CAAE,EAAG,CAAC,EAC5C,OAAS,EAFT,EAGf,CACA,IAAIH,EAAK0B,EAAY,CAEjB,IAAMC,EADK7B,GAAS,KAAK,MAAOE,CAAG,GAClB,MACjB,OAAQ,CAAC0B,GAAcxB,EAASyB,CAAI,EAAIA,EAAK,MAAQA,IAAS,MAClE,CACA,IAAI3B,EAAK,CACL,MAAO,CAAC,CAACF,GAAS,KAAK,MAAOE,CAAG,CACrC,CACA,IAAIA,EAAKe,EAAO,CACZ,KAAK,IAAI,IAAIK,GAAKpB,EAAKe,CAAK,EAAG,EAAI,CACvC,CAMA,OAAOa,EAAGlB,EAAKmB,EAAM,CACjB,IAAMhB,EAAMgB,EAAO,IAAIA,EAASnB,GAAK,SAAW,IAAI,IAAQ,CAAC,EACzDA,GAAK,UACLA,EAAI,SAASG,CAAG,EACpB,QAAWY,KAAQ,KAAK,MACpBK,GAAepB,EAAKG,EAAKY,CAAI,EACjC,OAAOZ,CACX,CACA,SAASH,EAAKqB,EAAWC,EAAa,CAClC,GAAI,CAACtB,EACD,OAAO,KAAK,UAAU,IAAI,EAC9B,QAAWe,KAAQ,KAAK,MACpB,GAAI,CAACrB,EAAOqB,CAAI,EACZ,MAAM,IAAI,MAAM,sCAAsC,KAAK,UAAUA,CAAI,CAAC,UAAU,EAE5F,MAAI,CAACf,EAAI,eAAiB,KAAK,iBAAiB,EAAK,IACjDA,EAAM,OAAO,OAAO,CAAC,EAAGA,EAAK,CAAE,cAAe,EAAK,CAAC,GACjDuB,GAAoB,KAAMvB,EAAK,CAClC,gBAAiB,GACjB,UAAW,CAAE,MAAO,IAAK,IAAK,GAAI,EAClC,WAAYA,EAAI,QAAU,GAC1B,YAAAsB,EACA,UAAAD,CACJ,CAAC,CACL,CACJ,EC1IA,IAAMG,GAAM,CACR,WAAY,MACZ,QAAS,GACT,UAAWC,GACX,IAAK,wBACL,QAAQD,EAAKE,EAAS,CAClB,OAAKC,GAAMH,CAAG,GACVE,EAAQ,iCAAiC,EACtCF,CACX,EACA,WAAY,CAACI,EAAQC,EAAKC,IAAQL,GAAQ,KAAKG,EAAQC,EAAKC,CAAG,CACnE,ECPA,IAAMC,GAAN,cAAsBC,EAAW,CAC7B,WAAW,SAAU,CACjB,MAAO,uBACX,CACA,YAAYC,EAAQ,CAChB,MAAMC,GAAKD,CAAM,EACjB,KAAK,MAAQ,CAAC,CAClB,CACA,IAAIE,EAAO,CACP,KAAK,MAAM,KAAKA,CAAK,CACzB,CASA,OAAOC,EAAK,CACR,IAAMC,EAAMC,GAAYF,CAAG,EAC3B,OAAI,OAAOC,GAAQ,SACR,GACC,KAAK,MAAM,OAAOA,EAAK,CAAC,EACzB,OAAS,CACxB,CACA,IAAID,EAAKG,EAAY,CACjB,IAAMF,EAAMC,GAAYF,CAAG,EAC3B,GAAI,OAAOC,GAAQ,SACf,OACJ,IAAMG,EAAK,KAAK,MAAMH,CAAG,EACzB,MAAO,CAACE,GAAcE,EAASD,CAAE,EAAIA,EAAG,MAAQA,CACpD,CAOA,IAAIJ,EAAK,CACL,IAAMC,EAAMC,GAAYF,CAAG,EAC3B,OAAO,OAAOC,GAAQ,UAAYA,EAAM,KAAK,MAAM,MACvD,CAQA,IAAID,EAAKD,EAAO,CACZ,IAAME,EAAMC,GAAYF,CAAG,EAC3B,GAAI,OAAOC,GAAQ,SACf,MAAM,IAAI,MAAM,+BAA+BD,CAAG,GAAG,EACzD,IAAMM,EAAO,KAAK,MAAML,CAAG,EACvBI,EAASC,CAAI,GAAKC,GAAcR,CAAK,EACrCO,EAAK,MAAQP,EAEb,KAAK,MAAME,CAAG,EAAIF,CAC1B,CACA,OAAOS,EAAGC,EAAK,CACX,IAAMC,EAAM,CAAC,EACTD,GAAK,UACLA,EAAI,SAASC,CAAG,EACpB,IAAIC,EAAI,EACR,QAAWC,KAAQ,KAAK,MACpBF,EAAI,KAAKG,GAAKD,EAAM,OAAOD,GAAG,EAAGF,CAAG,CAAC,EACzC,OAAOC,CACX,CACA,SAASD,EAAKK,EAAWC,EAAa,CAClC,OAAKN,EAEEO,GAAoB,KAAMP,EAAK,CAClC,gBAAiB,KACjB,UAAW,CAAE,MAAO,IAAK,IAAK,GAAI,EAClC,YAAaA,EAAI,QAAU,IAAM,KACjC,YAAAM,EACA,UAAAD,CACJ,CAAC,EAPU,KAAK,UAAU,IAAI,CAQlC,CACA,OAAO,KAAKjB,EAAQoB,EAAKR,EAAK,CAC1B,GAAM,CAAE,SAAAS,CAAS,EAAIT,EACfC,EAAM,IAAI,KAAKb,CAAM,EAC3B,GAAIoB,GAAO,OAAO,YAAY,OAAOA,CAAG,EAAG,CACvC,IAAIN,EAAI,EACR,QAASP,KAAMa,EAAK,CAChB,GAAI,OAAOC,GAAa,WAAY,CAChC,IAAMlB,EAAMiB,aAAe,IAAMb,EAAK,OAAOO,GAAG,EAChDP,EAAKc,EAAS,KAAKD,EAAKjB,EAAKI,CAAE,CACnC,CACAM,EAAI,MAAM,KAAKS,GAAWf,EAAI,OAAWK,CAAG,CAAC,CACjD,CACJ,CACA,OAAOC,CACX,CACJ,EACA,SAASR,GAAYF,EAAK,CACtB,IAAIC,EAAMI,EAASL,CAAG,EAAIA,EAAI,MAAQA,EACtC,OAAIC,GAAO,OAAOA,GAAQ,WACtBA,EAAM,OAAOA,CAAG,GACb,OAAOA,GAAQ,UAAY,OAAO,UAAUA,CAAG,GAAKA,GAAO,EAC5DA,EACA,IACV,CC3GA,IAAMmB,GAAM,CACR,WAAY,MACZ,QAAS,GACT,UAAWC,GACX,IAAK,wBACL,QAAQD,EAAKE,EAAS,CAClB,OAAKC,GAAMH,CAAG,GACVE,EAAQ,kCAAkC,EACvCF,CACX,EACA,WAAY,CAACI,EAAQC,EAAKC,IAAQL,GAAQ,KAAKG,EAAQC,EAAKC,CAAG,CACnE,ECZA,IAAMC,GAAS,CACX,SAAUC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,wBACL,QAASC,GAAOA,EAChB,UAAUC,EAAMC,EAAKC,EAAWC,EAAa,CACzC,OAAAF,EAAM,OAAO,OAAO,CAAE,aAAc,EAAK,EAAGA,CAAG,EACxCG,GAAgBJ,EAAMC,EAAKC,EAAWC,CAAW,CAC5D,CACJ,ECTA,IAAME,GAAU,CACZ,SAAUC,GAASA,GAAS,KAC5B,WAAY,IAAM,IAAIC,EAAO,IAAI,EACjC,QAAS,GACT,IAAK,yBACL,KAAM,wBACN,QAAS,IAAM,IAAIA,EAAO,IAAI,EAC9B,UAAW,CAAC,CAAE,OAAAC,CAAO,EAAGC,IAAQ,OAAOD,GAAW,UAAYH,GAAQ,KAAK,KAAKG,CAAM,EAChFA,EACAC,EAAI,QAAQ,OACtB,ECVA,IAAMC,GAAU,CACZ,SAAUC,GAAS,OAAOA,GAAU,UACpC,QAAS,GACT,IAAK,yBACL,KAAM,oCACN,QAASC,GAAO,IAAIC,EAAOD,EAAI,CAAC,IAAM,KAAOA,EAAI,CAAC,IAAM,GAAG,EAC3D,UAAU,CAAE,OAAAE,EAAQ,MAAAH,CAAM,EAAGI,EAAK,CAC9B,GAAID,GAAUJ,GAAQ,KAAK,KAAKI,CAAM,EAAG,CACrC,IAAME,EAAKF,EAAO,CAAC,IAAM,KAAOA,EAAO,CAAC,IAAM,IAC9C,GAAIH,IAAUK,EACV,OAAOF,CACf,CACA,OAAOH,EAAQI,EAAI,QAAQ,QAAUA,EAAI,QAAQ,QACrD,CACJ,EChBA,SAASE,GAAgB,CAAE,OAAAC,EAAQ,kBAAAC,EAAmB,IAAAC,EAAK,MAAAC,CAAM,EAAG,CAChE,GAAI,OAAOA,GAAU,SACjB,OAAO,OAAOA,CAAK,EACvB,IAAMC,EAAM,OAAOD,GAAU,SAAWA,EAAQ,OAAOA,CAAK,EAC5D,GAAI,CAAC,SAASC,CAAG,EACb,OAAO,MAAMA,CAAG,EAAI,OAASA,EAAM,EAAI,QAAU,OACrD,IAAIC,EAAI,OAAO,GAAGF,EAAO,EAAE,EAAI,KAAO,KAAK,UAAUA,CAAK,EAC1D,GAAI,CAACH,GACDC,IACC,CAACC,GAAOA,IAAQ,4BACjB,QAAQ,KAAKG,CAAC,GACd,CAACA,EAAE,SAAS,GAAG,EAAG,CAClB,IAAIC,EAAID,EAAE,QAAQ,GAAG,EACjBC,EAAI,IACJA,EAAID,EAAE,OACNA,GAAK,KAET,IAAIE,EAAIN,GAAqBI,EAAE,OAASC,EAAI,GAC5C,KAAOC,KAAM,GACTF,GAAK,GACb,CACA,OAAOA,CACX,CCnBA,IAAMG,GAAW,CACb,SAAUC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,iDACN,QAASC,GAAOA,EAAI,MAAM,EAAE,EAAE,YAAY,IAAM,MAC1C,IACAA,EAAI,CAAC,IAAM,IACP,OAAO,kBACP,OAAO,kBACjB,UAAWC,EACf,EACMC,GAAW,CACb,SAAUH,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,OAAQ,MACR,KAAM,yDACN,QAASC,GAAO,WAAWA,CAAG,EAC9B,UAAUG,EAAM,CACZ,IAAMC,EAAM,OAAOD,EAAK,KAAK,EAC7B,OAAO,SAASC,CAAG,EAAIA,EAAI,cAAc,EAAIH,GAAgBE,CAAI,CACrE,CACJ,EACME,GAAQ,CACV,SAAUN,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,qCACN,QAAQC,EAAK,CACT,IAAMG,EAAO,IAAIG,EAAO,WAAWN,CAAG,CAAC,EACjCO,EAAMP,EAAI,QAAQ,GAAG,EAC3B,OAAIO,IAAQ,IAAMP,EAAIA,EAAI,OAAS,CAAC,IAAM,MACtCG,EAAK,kBAAoBH,EAAI,OAASO,EAAM,GACzCJ,CACX,EACA,UAAWF,EACf,ECtCA,IAAMO,GAAeC,GAAU,OAAOA,GAAU,UAAY,OAAO,UAAUA,CAAK,EAC5EC,GAAa,CAACC,EAAKC,EAAQC,EAAO,CAAE,YAAAC,CAAY,IAAOA,EAAc,OAAOH,CAAG,EAAI,SAASA,EAAI,UAAUC,CAAM,EAAGC,CAAK,EAC9H,SAASE,GAAaC,EAAMH,EAAOI,EAAQ,CACvC,GAAM,CAAE,MAAAR,CAAM,EAAIO,EAClB,OAAIR,GAAYC,CAAK,GAAKA,GAAS,EACxBQ,EAASR,EAAM,SAASI,CAAK,EACjCK,GAAgBF,CAAI,CAC/B,CACA,IAAMG,GAAS,CACX,SAAUV,GAASD,GAAYC,CAAK,GAAKA,GAAS,EAClD,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,aACN,QAAS,CAACE,EAAKS,EAAUC,IAAQX,GAAWC,EAAK,EAAG,EAAGU,CAAG,EAC1D,UAAWL,GAAQD,GAAaC,EAAM,EAAG,IAAI,CACjD,EACMM,GAAM,CACR,SAAUd,GACV,QAAS,GACT,IAAK,wBACL,KAAM,gBACN,QAAS,CAACG,EAAKS,EAAUC,IAAQX,GAAWC,EAAK,EAAG,GAAIU,CAAG,EAC3D,UAAWH,EACf,EACMK,GAAS,CACX,SAAUd,GAASD,GAAYC,CAAK,GAAKA,GAAS,EAClD,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,mBACN,QAAS,CAACE,EAAKS,EAAUC,IAAQX,GAAWC,EAAK,EAAG,GAAIU,CAAG,EAC3D,UAAWL,GAAQD,GAAaC,EAAM,GAAI,IAAI,CAClD,EC3BA,IAAMQ,GAAS,CACXC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACJ,EChBA,SAASC,GAAYC,EAAO,CACxB,OAAO,OAAOA,GAAU,UAAY,OAAO,UAAUA,CAAK,CAC9D,CACA,IAAMC,GAAgB,CAAC,CAAE,MAAAD,CAAM,IAAM,KAAK,UAAUA,CAAK,EACnDE,GAAc,CAChB,CACI,SAAUF,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,wBACL,QAASG,GAAOA,EAChB,UAAWF,EACf,EACA,CACI,SAAUD,GAASA,GAAS,KAC5B,WAAY,IAAM,IAAII,EAAO,IAAI,EACjC,QAAS,GACT,IAAK,yBACL,KAAM,SACN,QAAS,IAAM,KACf,UAAWH,EACf,EACA,CACI,SAAUD,GAAS,OAAOA,GAAU,UACpC,QAAS,GACT,IAAK,yBACL,KAAM,iBACN,QAASG,GAAOA,IAAQ,OACxB,UAAWF,EACf,EACA,CACI,SAAUF,GACV,QAAS,GACT,IAAK,wBACL,KAAM,wBACN,QAAS,CAACI,EAAKE,EAAU,CAAE,YAAAC,CAAY,IAAMA,EAAc,OAAOH,CAAG,EAAI,SAASA,EAAK,EAAE,EACzF,UAAW,CAAC,CAAE,MAAAH,CAAM,IAAMD,GAAYC,CAAK,EAAIA,EAAM,SAAS,EAAI,KAAK,UAAUA,CAAK,CAC1F,EACA,CACI,SAAUA,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,yDACN,QAASG,GAAO,WAAWA,CAAG,EAC9B,UAAWF,EACf,CACJ,EACMM,GAAY,CACd,QAAS,GACT,IAAK,GACL,KAAM,IACN,QAAQJ,EAAKK,EAAS,CAClB,OAAAA,EAAQ,2BAA2B,KAAK,UAAUL,CAAG,CAAC,EAAE,EACjDA,CACX,CACJ,EACMM,GAAS,CAACC,GAAKC,EAAG,EAAE,OAAOT,GAAaK,EAAS,ECxDvD,IAAMK,GAAS,CACX,SAAUC,GAASA,aAAiB,WACpC,QAAS,GACT,IAAK,2BASL,QAAQC,EAAKC,EAAS,CAClB,GAAI,OAAO,MAAS,WAAY,CAE5B,IAAMC,EAAM,KAAKF,EAAI,QAAQ,UAAW,EAAE,CAAC,EACrCG,EAAS,IAAI,WAAWD,EAAI,MAAM,EACxC,QAASE,EAAI,EAAGA,EAAIF,EAAI,OAAQ,EAAEE,EAC9BD,EAAOC,CAAC,EAAIF,EAAI,WAAWE,CAAC,EAChC,OAAOD,CACX,KAEI,QAAAF,EAAQ,0FAA0F,EAC3FD,CAEf,EACA,UAAU,CAAE,QAAAK,EAAS,KAAAC,EAAM,MAAAP,CAAM,EAAGQ,EAAKC,EAAWC,EAAa,CAC7D,GAAI,CAACV,EACD,MAAO,GACX,IAAMW,EAAMX,EACRG,EACJ,GAAI,OAAO,MAAS,WAAY,CAC5B,IAAIS,EAAI,GACR,QAASP,EAAI,EAAGA,EAAIM,EAAI,OAAQ,EAAEN,EAC9BO,GAAK,OAAO,aAAaD,EAAIN,CAAC,CAAC,EACnCF,EAAM,KAAKS,CAAC,CAChB,KAEI,OAAM,IAAI,MAAM,0FAA0F,EAG9G,GADAL,IAASA,EAAOM,EAAO,eACnBN,IAASM,EAAO,aAAc,CAC9B,IAAMC,EAAY,KAAK,IAAIN,EAAI,QAAQ,UAAYA,EAAI,OAAO,OAAQA,EAAI,QAAQ,eAAe,EAC3FO,EAAI,KAAK,KAAKZ,EAAI,OAASW,CAAS,EACpCE,EAAQ,IAAI,MAAMD,CAAC,EACzB,QAASV,EAAI,EAAGY,EAAI,EAAGZ,EAAIU,EAAG,EAAEV,EAAGY,GAAKH,EACpCE,EAAMX,CAAC,EAAIF,EAAI,OAAOc,EAAGH,CAAS,EAEtCX,EAAMa,EAAM,KAAKT,IAASM,EAAO,cAAgB;AAAA,EAAO,GAAG,CAC/D,CACA,OAAOK,GAAgB,CAAE,QAAAZ,EAAS,KAAAC,EAAM,MAAOJ,CAAI,EAAGK,EAAKC,EAAWC,CAAW,CACrF,CACJ,EClDA,SAASS,GAAaC,EAAKC,EAAS,CAChC,GAAIC,GAAMF,CAAG,EACT,QAASG,EAAI,EAAGA,EAAIH,EAAI,MAAM,OAAQ,EAAEG,EAAG,CACvC,IAAIC,EAAOJ,EAAI,MAAMG,CAAC,EACtB,GAAI,CAAAE,EAAOD,CAAI,EAEV,IAAIE,GAAMF,CAAI,EAAG,CACdA,EAAK,MAAM,OAAS,GACpBH,EAAQ,gDAAgD,EAC5D,IAAMM,EAAOH,EAAK,MAAM,CAAC,GAAK,IAAII,GAAK,IAAIC,EAAO,IAAI,CAAC,EAKvD,GAJIL,EAAK,gBACLG,EAAK,IAAI,cAAgBA,EAAK,IAAI,cAC5B,GAAGH,EAAK,aAAa;AAAA,EAAKG,EAAK,IAAI,aAAa,GAChDH,EAAK,eACXA,EAAK,QAAS,CACd,IAAMM,EAAKH,EAAK,OAASA,EAAK,IAC9BG,EAAG,QAAUA,EAAG,QACV,GAAGN,EAAK,OAAO;AAAA,EAAKM,EAAG,OAAO,GAC9BN,EAAK,OACf,CACAA,EAAOG,CACX,CACAP,EAAI,MAAMG,CAAC,EAAIE,EAAOD,CAAI,EAAIA,EAAO,IAAII,GAAKJ,CAAI,EACtD,MAGAH,EAAQ,kCAAkC,EAC9C,OAAOD,CACX,CACA,SAASW,GAAYC,EAAQC,EAAUC,EAAK,CACxC,GAAM,CAAE,SAAAC,CAAS,EAAID,EACfE,EAAQ,IAAIC,GAAQL,CAAM,EAChCI,EAAM,IAAM,0BACZ,IAAI,EAAI,EACR,GAAIH,GAAY,OAAO,YAAY,OAAOA,CAAQ,EAC9C,QAASK,KAAML,EAAU,CACjB,OAAOE,GAAa,aACpBG,EAAKH,EAAS,KAAKF,EAAU,OAAO,GAAG,EAAGK,CAAE,GAChD,IAAIC,EAAKC,EACT,GAAI,MAAM,QAAQF,CAAE,EAChB,GAAIA,EAAG,SAAW,EACdC,EAAMD,EAAG,CAAC,EACVE,EAAQF,EAAG,CAAC,MAGZ,OAAM,IAAI,UAAU,gCAAgCA,CAAE,EAAE,UAEvDA,GAAMA,aAAc,OAAQ,CACjC,IAAMG,EAAO,OAAO,KAAKH,CAAE,EAC3B,GAAIG,EAAK,SAAW,EAChBF,EAAME,EAAK,CAAC,EACZD,EAAQF,EAAGC,CAAG,MAGd,OAAM,IAAI,UAAU,oCAAoCE,EAAK,MAAM,OAAO,CAElF,MAEIF,EAAMD,EAEVF,EAAM,MAAM,KAAKM,GAAWH,EAAKC,EAAON,CAAG,CAAC,CAChD,CACJ,OAAOE,CACX,CACA,IAAMA,GAAQ,CACV,WAAY,MACZ,QAAS,GACT,IAAK,0BACL,QAASjB,GACT,WAAYY,EAChB,ECrEA,IAAMY,GAAN,MAAMC,UAAiBC,EAAQ,CAC3B,aAAc,CACV,MAAM,EACN,KAAK,IAAMC,GAAQ,UAAU,IAAI,KAAK,IAAI,EAC1C,KAAK,OAASA,GAAQ,UAAU,OAAO,KAAK,IAAI,EAChD,KAAK,IAAMA,GAAQ,UAAU,IAAI,KAAK,IAAI,EAC1C,KAAK,IAAMA,GAAQ,UAAU,IAAI,KAAK,IAAI,EAC1C,KAAK,IAAMA,GAAQ,UAAU,IAAI,KAAK,IAAI,EAC1C,KAAK,IAAMF,EAAS,GACxB,CAKA,OAAOG,EAAGC,EAAK,CACX,GAAI,CAACA,EACD,OAAO,MAAM,OAAOD,CAAC,EACzB,IAAME,EAAM,IAAI,IACZD,GAAK,UACLA,EAAI,SAASC,CAAG,EACpB,QAAWC,KAAQ,KAAK,MAAO,CAC3B,IAAIC,EAAKC,EAQT,GAPIC,EAAOH,CAAI,GACXC,EAAMG,GAAKJ,EAAK,IAAK,GAAIF,CAAG,EAC5BI,EAAQE,GAAKJ,EAAK,MAAOC,EAAKH,CAAG,GAGjCG,EAAMG,GAAKJ,EAAM,GAAIF,CAAG,EAExBC,EAAI,IAAIE,CAAG,EACX,MAAM,IAAI,MAAM,8CAA8C,EAClEF,EAAI,IAAIE,EAAKC,CAAK,CACtB,CACA,OAAOH,CACX,CACA,OAAO,KAAKM,EAAQC,EAAUR,EAAK,CAC/B,IAAMS,EAAQC,GAAYH,EAAQC,EAAUR,CAAG,EACzCW,EAAO,IAAI,KACjB,OAAAA,EAAK,MAAQF,EAAM,MACZE,CACX,CACJ,EACAhB,GAAS,IAAM,yBACf,IAAMgB,GAAO,CACT,WAAY,MACZ,SAAUP,GAASA,aAAiB,IACpC,UAAWT,GACX,QAAS,GACT,IAAK,yBACL,QAAQiB,EAAKC,EAAS,CAClB,IAAMJ,EAAQK,GAAaF,EAAKC,CAAO,EACjCE,EAAW,CAAC,EAClB,OAAW,CAAE,IAAAZ,CAAI,IAAKM,EAAM,MACpBO,EAASb,CAAG,IACRY,EAAS,SAASZ,EAAI,KAAK,EAC3BU,EAAQ,iDAAiDV,EAAI,KAAK,EAAE,EAGpEY,EAAS,KAAKZ,EAAI,KAAK,GAInC,OAAO,OAAO,OAAO,IAAIR,GAAYc,CAAK,CAC9C,EACA,WAAY,CAACF,EAAQC,EAAUR,IAAQL,GAAS,KAAKY,EAAQC,EAAUR,CAAG,CAC9E,ECrEA,SAASiB,GAAc,CAAE,MAAAC,EAAO,OAAAC,CAAO,EAAGC,EAAK,CAE3C,OAAID,IADYD,EAAQG,GAAUC,IACZ,KAAK,KAAKH,CAAM,EAC3BA,EACJD,EAAQE,EAAI,QAAQ,QAAUA,EAAI,QAAQ,QACrD,CACA,IAAMC,GAAU,CACZ,SAAUH,GAASA,IAAU,GAC7B,QAAS,GACT,IAAK,yBACL,KAAM,6CACN,QAAS,IAAM,IAAIK,EAAO,EAAI,EAC9B,UAAWN,EACf,EACMK,GAAW,CACb,SAAUJ,GAASA,IAAU,GAC7B,QAAS,GACT,IAAK,yBACL,KAAM,+CACN,QAAS,IAAM,IAAIK,EAAO,EAAK,EAC/B,UAAWN,EACf,ECpBA,IAAMO,GAAW,CACb,SAAUC,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,iDACN,QAAUC,GAAQA,EAAI,MAAM,EAAE,EAAE,YAAY,IAAM,MAC5C,IACAA,EAAI,CAAC,IAAM,IACP,OAAO,kBACP,OAAO,kBACjB,UAAWC,EACf,EACMC,GAAW,CACb,SAAUH,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,OAAQ,MACR,KAAM,wDACN,QAAUC,GAAQ,WAAWA,EAAI,QAAQ,KAAM,EAAE,CAAC,EAClD,UAAUG,EAAM,CACZ,IAAMC,EAAM,OAAOD,EAAK,KAAK,EAC7B,OAAO,SAASC,CAAG,EAAIA,EAAI,cAAc,EAAIH,GAAgBE,CAAI,CACrE,CACJ,EACME,GAAQ,CACV,SAAUN,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,KAAM,oCACN,QAAQC,EAAK,CACT,IAAMG,EAAO,IAAIG,EAAO,WAAWN,EAAI,QAAQ,KAAM,EAAE,CAAC,CAAC,EACnDO,EAAMP,EAAI,QAAQ,GAAG,EAC3B,GAAIO,IAAQ,GAAI,CACZ,IAAMC,EAAIR,EAAI,UAAUO,EAAM,CAAC,EAAE,QAAQ,KAAM,EAAE,EAC7CC,EAAEA,EAAE,OAAS,CAAC,IAAM,MACpBL,EAAK,kBAAoBK,EAAE,OACnC,CACA,OAAOL,CACX,EACA,UAAWF,EACf,ECzCA,IAAMQ,GAAeC,GAAU,OAAOA,GAAU,UAAY,OAAO,UAAUA,CAAK,EAClF,SAASC,GAAWC,EAAKC,EAAQC,EAAO,CAAE,YAAAC,CAAY,EAAG,CACrD,IAAMC,EAAOJ,EAAI,CAAC,EAIlB,IAHII,IAAS,KAAOA,IAAS,OACzBH,GAAU,GACdD,EAAMA,EAAI,UAAUC,CAAM,EAAE,QAAQ,KAAM,EAAE,EACxCE,EAAa,CACb,OAAQD,EAAO,CACX,IAAK,GACDF,EAAM,KAAKA,CAAG,GACd,MACJ,IAAK,GACDA,EAAM,KAAKA,CAAG,GACd,MACJ,IAAK,IACDA,EAAM,KAAKA,CAAG,GACd,KACR,CACA,IAAMK,EAAI,OAAOL,CAAG,EACpB,OAAOI,IAAS,IAAM,OAAO,EAAE,EAAIC,EAAIA,CAC3C,CACA,IAAMA,EAAI,SAASL,EAAKE,CAAK,EAC7B,OAAOE,IAAS,IAAM,GAAKC,EAAIA,CACnC,CACA,SAASC,GAAaC,EAAML,EAAOM,EAAQ,CACvC,GAAM,CAAE,MAAAV,CAAM,EAAIS,EAClB,GAAIV,GAAYC,CAAK,EAAG,CACpB,IAAME,EAAMF,EAAM,SAASI,CAAK,EAChC,OAAOJ,EAAQ,EAAI,IAAMU,EAASR,EAAI,OAAO,CAAC,EAAIQ,EAASR,CAC/D,CACA,OAAOS,GAAgBF,CAAI,CAC/B,CACA,IAAMG,GAAS,CACX,SAAUb,GACV,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,mBACN,QAAS,CAACG,EAAKW,EAAUC,IAAQb,GAAWC,EAAK,EAAG,EAAGY,CAAG,EAC1D,UAAWL,GAAQD,GAAaC,EAAM,EAAG,IAAI,CACjD,EACMM,GAAS,CACX,SAAUhB,GACV,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,kBACN,QAAS,CAACG,EAAKW,EAAUC,IAAQb,GAAWC,EAAK,EAAG,EAAGY,CAAG,EAC1D,UAAWL,GAAQD,GAAaC,EAAM,EAAG,GAAG,CAChD,EACMO,GAAM,CACR,SAAUjB,GACV,QAAS,GACT,IAAK,wBACL,KAAM,sBACN,QAAS,CAACG,EAAKW,EAAUC,IAAQb,GAAWC,EAAK,EAAG,GAAIY,CAAG,EAC3D,UAAWH,EACf,EACMM,GAAS,CACX,SAAUlB,GACV,QAAS,GACT,IAAK,wBACL,OAAQ,MACR,KAAM,yBACN,QAAS,CAACG,EAAKW,EAAUC,IAAQb,GAAWC,EAAK,EAAG,GAAIY,CAAG,EAC3D,UAAWL,GAAQD,GAAaC,EAAM,GAAI,IAAI,CAClD,EChEA,IAAMS,GAAN,MAAMC,UAAgBC,EAAQ,CAC1B,YAAYC,EAAQ,CAChB,MAAMA,CAAM,EACZ,KAAK,IAAMF,EAAQ,GACvB,CACA,IAAIG,EAAK,CACL,IAAIC,EACAC,EAAOF,CAAG,EACVC,EAAOD,EACFA,GACL,OAAOA,GAAQ,UACf,QAASA,GACT,UAAWA,GACXA,EAAI,QAAU,KACdC,EAAO,IAAIE,GAAKH,EAAI,IAAK,IAAI,EAE7BC,EAAO,IAAIE,GAAKH,EAAK,IAAI,EAChBI,GAAS,KAAK,MAAOH,EAAK,GAAG,GAEtC,KAAK,MAAM,KAAKA,CAAI,CAC5B,CAKA,IAAID,EAAKK,EAAU,CACf,IAAMJ,EAAOG,GAAS,KAAK,MAAOJ,CAAG,EACrC,MAAO,CAACK,GAAYH,EAAOD,CAAI,EACzBK,EAASL,EAAK,GAAG,EACbA,EAAK,IAAI,MACTA,EAAK,IACTA,CACV,CACA,IAAID,EAAKO,EAAO,CACZ,GAAI,OAAOA,GAAU,UACjB,MAAM,IAAI,MAAM,iEAAiE,OAAOA,CAAK,EAAE,EACnG,IAAMC,EAAOJ,GAAS,KAAK,MAAOJ,CAAG,EACjCQ,GAAQ,CAACD,EACT,KAAK,MAAM,OAAO,KAAK,MAAM,QAAQC,CAAI,EAAG,CAAC,EAExC,CAACA,GAAQD,GACd,KAAK,MAAM,KAAK,IAAIJ,GAAKH,CAAG,CAAC,CAErC,CACA,OAAOS,EAAGC,EAAK,CACX,OAAO,MAAM,OAAOD,EAAGC,EAAK,GAAG,CACnC,CACA,SAASA,EAAKC,EAAWC,EAAa,CAClC,GAAI,CAACF,EACD,OAAO,KAAK,UAAU,IAAI,EAC9B,GAAI,KAAK,iBAAiB,EAAI,EAC1B,OAAO,MAAM,SAAS,OAAO,OAAO,CAAC,EAAGA,EAAK,CAAE,cAAe,EAAK,CAAC,EAAGC,EAAWC,CAAW,EAE7F,MAAM,IAAI,MAAM,qCAAqC,CAC7D,CACA,OAAO,KAAKb,EAAQc,EAAUH,EAAK,CAC/B,GAAM,CAAE,SAAAI,CAAS,EAAIJ,EACfK,EAAM,IAAI,KAAKhB,CAAM,EAC3B,GAAIc,GAAY,OAAO,YAAY,OAAOA,CAAQ,EAC9C,QAASN,KAASM,EACV,OAAOC,GAAa,aACpBP,EAAQO,EAAS,KAAKD,EAAUN,EAAOA,CAAK,GAChDQ,EAAI,MAAM,KAAKC,GAAWT,EAAO,KAAMG,CAAG,CAAC,EAEnD,OAAOK,CACX,CACJ,EACAnB,GAAQ,IAAM,wBACd,IAAMmB,GAAM,CACR,WAAY,MACZ,SAAUR,GAASA,aAAiB,IACpC,UAAWX,GACX,QAAS,GACT,IAAK,wBACL,WAAY,CAACG,EAAQc,EAAUH,IAAQd,GAAQ,KAAKG,EAAQc,EAAUH,CAAG,EACzE,QAAQO,EAAKC,EAAS,CAClB,GAAIC,GAAMF,CAAG,EAAG,CACZ,GAAIA,EAAI,iBAAiB,EAAI,EACzB,OAAO,OAAO,OAAO,IAAIrB,GAAWqB,CAAG,EAEvCC,EAAQ,qCAAqC,CACrD,MAEIA,EAAQ,iCAAiC,EAC7C,OAAOD,CACX,CACJ,ECvFA,SAASG,GAAiBC,EAAKC,EAAU,CACrC,IAAMC,EAAOF,EAAI,CAAC,EACZG,EAAQD,IAAS,KAAOA,IAAS,IAAMF,EAAI,UAAU,CAAC,EAAIA,EAC1DI,EAAOC,GAAMJ,EAAW,OAAOI,CAAC,EAAI,OAAOA,CAAC,EAC5CC,EAAMH,EACP,QAAQ,KAAM,EAAE,EAChB,MAAM,GAAG,EACT,OAAO,CAACG,EAAKC,IAAMD,EAAMF,EAAI,EAAE,EAAIA,EAAIG,CAAC,EAAGH,EAAI,CAAC,CAAC,EACtD,OAAQF,IAAS,IAAME,EAAI,EAAE,EAAIE,EAAMA,CAC3C,CAMA,SAASE,GAAqBC,EAAM,CAChC,GAAI,CAAE,MAAAC,CAAM,EAAID,EACZL,EAAOC,GAAMA,EACjB,GAAI,OAAOK,GAAU,SACjBN,EAAMC,GAAK,OAAOA,CAAC,UACd,MAAMK,CAAK,GAAK,CAAC,SAASA,CAAK,EACpC,OAAOC,GAAgBF,CAAI,EAC/B,IAAIP,EAAO,GACPQ,EAAQ,IACRR,EAAO,IACPQ,GAASN,EAAI,EAAE,GAEnB,IAAMQ,EAAMR,EAAI,EAAE,EACZD,EAAQ,CAACO,EAAQE,CAAG,EAC1B,OAAIF,EAAQ,GACRP,EAAM,QAAQ,CAAC,GAGfO,GAASA,EAAQP,EAAM,CAAC,GAAKS,EAC7BT,EAAM,QAAQO,EAAQE,CAAG,EACrBF,GAAS,KACTA,GAASA,EAAQP,EAAM,CAAC,GAAKS,EAC7BT,EAAM,QAAQO,CAAK,IAGnBR,EACJC,EACK,IAAIE,GAAK,OAAOA,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EACnC,KAAK,GAAG,EACR,QAAQ,aAAc,EAAE,CAErC,CACA,IAAMQ,GAAU,CACZ,SAAUH,GAAS,OAAOA,GAAU,UAAY,OAAO,UAAUA,CAAK,EACtE,QAAS,GACT,IAAK,wBACL,OAAQ,OACR,KAAM,uCACN,QAAS,CAACV,EAAKc,EAAU,CAAE,YAAAC,CAAY,IAAMhB,GAAiBC,EAAKe,CAAW,EAC9E,UAAWP,EACf,EACMQ,GAAY,CACd,SAAUN,GAAS,OAAOA,GAAU,SACpC,QAAS,GACT,IAAK,0BACL,OAAQ,OACR,KAAM,gDACN,QAASV,GAAOD,GAAiBC,EAAK,EAAK,EAC3C,UAAWQ,EACf,EACMS,GAAY,CACd,SAAUP,GAASA,aAAiB,KACpC,QAAS,GACT,IAAK,8BAIL,KAAM,OAAO,2JAKJ,EACT,QAAQV,EAAK,CACT,IAAMkB,EAAQlB,EAAI,MAAMiB,GAAU,IAAI,EACtC,GAAI,CAACC,EACD,MAAM,IAAI,MAAM,sDAAsD,EAC1E,GAAM,CAAC,CAAEC,EAAMC,EAAOC,EAAKC,EAAMC,EAAQC,CAAM,EAAIN,EAAM,IAAI,MAAM,EAC7DO,EAAWP,EAAM,CAAC,EAAI,QAAQA,EAAM,CAAC,EAAI,MAAM,OAAO,EAAG,CAAC,CAAC,EAAI,EACjEQ,EAAO,KAAK,IAAIP,EAAMC,EAAQ,EAAGC,EAAKC,GAAQ,EAAGC,GAAU,EAAGC,GAAU,EAAGC,CAAQ,EACjFE,EAAKT,EAAM,CAAC,EAClB,GAAIS,GAAMA,IAAO,IAAK,CAClB,IAAI,EAAI5B,GAAiB4B,EAAI,EAAK,EAC9B,KAAK,IAAI,CAAC,EAAI,KACd,GAAK,IACTD,GAAQ,IAAQ,CACpB,CACA,OAAO,IAAI,KAAKA,CAAI,CACxB,EACA,UAAW,CAAC,CAAE,MAAAhB,CAAM,IAAMA,GAAO,YAAY,EAAE,QAAQ,sBAAuB,EAAE,GAAK,EACzF,ECpFA,IAAMkB,GAAS,CACXC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACJ,ECnBA,IAAMC,GAAU,IAAI,IAAI,CACpB,CAAC,OAAQC,EAAM,EACf,CAAC,WAAY,CAACC,GAAKC,GAAKC,EAAM,CAAC,EAC/B,CAAC,OAAQH,EAAQ,EACjB,CAAC,SAAUA,EAAQ,EACnB,CAAC,WAAYA,EAAQ,CACzB,CAAC,EACKI,GAAa,CACf,OAAAC,GACA,KAAMC,GACN,MAAAC,GACA,SAAAC,GACA,SAAAC,GACA,UAAAC,GACA,IAAAC,GACA,OAAAC,GACA,OAAAC,GACA,QAAAC,GACA,IAAAb,GACA,MAAAc,GACA,KAAMC,GACN,KAAAC,GACA,MAAAC,GACA,IAAAhB,GACA,IAAAiB,GACA,UAAAC,EACJ,EACMC,GAAgB,CAClB,2BAA4BhB,GAC5B,0BAA2BU,GAC3B,yBAA0BE,GAC1B,0BAA2BC,GAC3B,wBAAyBC,GACzB,8BAA+BC,EACnC,EACA,SAASE,GAAQC,EAAYC,EAAYC,EAAa,CAClD,IAAMC,EAAa3B,GAAQ,IAAIyB,CAAU,EACzC,GAAIE,GAAc,CAACH,EACf,OAAOE,GAAe,CAACC,EAAW,SAASX,EAAK,EAC1CW,EAAW,OAAOX,EAAK,EACvBW,EAAW,MAAM,EAE3B,IAAIC,EAAOD,EACX,GAAI,CAACC,EACD,GAAI,MAAM,QAAQJ,CAAU,EACxBI,EAAO,CAAC,MACP,CACD,IAAMC,EAAO,MAAM,KAAK7B,GAAQ,KAAK,CAAC,EACjC,OAAO8B,GAAOA,IAAQ,QAAQ,EAC9B,IAAIA,GAAO,KAAK,UAAUA,CAAG,CAAC,EAC9B,KAAK,IAAI,EACd,MAAM,IAAI,MAAM,mBAAmBL,CAAU,iBAAiBI,CAAI,6BAA6B,CACnG,CAEJ,GAAI,MAAM,QAAQL,CAAU,EACxB,QAAWO,KAAOP,EACdI,EAAOA,EAAK,OAAOG,CAAG,OAErB,OAAOP,GAAe,aAC3BI,EAAOJ,EAAWI,EAAK,MAAM,CAAC,GAElC,OAAIF,IACAE,EAAOA,EAAK,OAAOZ,EAAK,GACrBY,EAAK,OAAO,CAACA,EAAMG,IAAQ,CAC9B,IAAMC,EAAS,OAAOD,GAAQ,SAAW1B,GAAW0B,CAAG,EAAIA,EAC3D,GAAI,CAACC,EAAQ,CACT,IAAMC,EAAU,KAAK,UAAUF,CAAG,EAC5BF,EAAO,OAAO,KAAKxB,EAAU,EAC9B,IAAIyB,GAAO,KAAK,UAAUA,CAAG,CAAC,EAC9B,KAAK,IAAI,EACd,MAAM,IAAI,MAAM,sBAAsBG,CAAO,gBAAgBJ,CAAI,EAAE,CACvE,CACA,OAAKD,EAAK,SAASI,CAAM,GACrBJ,EAAK,KAAKI,CAAM,EACbJ,CACX,EAAG,CAAC,CAAC,CACT,CCvFA,IAAMM,GAAsB,CAACC,EAAGC,IAAMD,EAAE,IAAMC,EAAE,IAAM,GAAKD,EAAE,IAAMC,EAAE,IAAM,EAAI,EACzEC,GAAN,MAAMC,CAAO,CACT,YAAY,CAAE,OAAAC,EAAQ,WAAAC,EAAY,MAAAC,EAAO,iBAAAC,EAAkB,OAAAC,EAAQ,eAAAC,EAAgB,iBAAAC,CAAiB,EAAG,CACnG,KAAK,OAAS,MAAM,QAAQN,CAAM,EAC5BO,GAAQP,EAAQ,QAAQ,EACxBA,EACIO,GAAQ,KAAMP,CAAM,EACpB,KACV,KAAK,KAAQ,OAAOI,GAAW,UAAYA,GAAW,OACtD,KAAK,UAAYD,EAAmBK,GAAgB,CAAC,EACrD,KAAK,KAAOD,GAAQN,EAAY,KAAK,KAAMC,CAAK,EAChD,KAAK,gBAAkBI,GAAoB,KAC3C,OAAO,eAAe,KAAMG,GAAK,CAAE,MAAOC,EAAI,CAAC,EAC/C,OAAO,eAAe,KAAMC,GAAQ,CAAE,MAAOC,EAAO,CAAC,EACrD,OAAO,eAAe,KAAMC,GAAK,CAAE,MAAOC,EAAI,CAAC,EAE/C,KAAK,eACD,OAAOT,GAAmB,WACpBA,EACAA,IAAmB,GACfV,GACA,IAClB,CACA,OAAQ,CACJ,IAAMoB,EAAO,OAAO,OAAOhB,EAAO,UAAW,OAAO,0BAA0B,IAAI,CAAC,EACnF,OAAAgB,EAAK,KAAO,KAAK,KAAK,MAAM,EACrBA,CACX,CACJ,EC9BA,SAASC,GAAkBC,EAAKC,EAAS,CACrC,IAAMC,EAAQ,CAAC,EACXC,EAAgBF,EAAQ,aAAe,GAC3C,GAAIA,EAAQ,aAAe,IAASD,EAAI,WAAY,CAChD,IAAMI,EAAMJ,EAAI,WAAW,SAASA,CAAG,EACnCI,GACAF,EAAM,KAAKE,CAAG,EACdD,EAAgB,IAEXH,EAAI,WAAW,WACpBG,EAAgB,GACxB,CACIA,GACAD,EAAM,KAAK,KAAK,EACpB,IAAMG,EAAMC,GAAuBN,EAAKC,CAAO,EACzC,CAAE,cAAAM,CAAc,EAAIF,EAAI,QAC9B,GAAIL,EAAI,cAAe,CACfE,EAAM,SAAW,GACjBA,EAAM,QAAQ,EAAE,EACpB,IAAMM,EAAKD,EAAcP,EAAI,aAAa,EAC1CE,EAAM,QAAQO,GAAcD,EAAI,EAAE,CAAC,CACvC,CACA,IAAIE,EAAY,GACZC,EAAiB,KACrB,GAAIX,EAAI,SAAU,CACd,GAAIY,EAAOZ,EAAI,QAAQ,EAAG,CAGtB,GAFIA,EAAI,SAAS,aAAeG,GAC5BD,EAAM,KAAK,EAAE,EACbF,EAAI,SAAS,cAAe,CAC5B,IAAMQ,EAAKD,EAAcP,EAAI,SAAS,aAAa,EACnDE,EAAM,KAAKO,GAAcD,EAAI,EAAE,CAAC,CACpC,CAEAH,EAAI,iBAAmB,CAAC,CAACL,EAAI,QAC7BW,EAAiBX,EAAI,SAAS,OAClC,CACA,IAAMa,EAAcF,EAAiB,OAAY,IAAOD,EAAY,GAChEI,EAAOC,GAAUf,EAAI,SAAUK,EAAK,IAAOM,EAAiB,KAAOE,CAAW,EAC9EF,IACAG,GAAQE,GAAYF,EAAM,GAAIP,EAAcI,CAAc,CAAC,IAC1DG,EAAK,CAAC,IAAM,KAAOA,EAAK,CAAC,IAAM,MAChCZ,EAAMA,EAAM,OAAS,CAAC,IAAM,MAG5BA,EAAMA,EAAM,OAAS,CAAC,EAAI,OAAOY,CAAI,GAGrCZ,EAAM,KAAKY,CAAI,CACvB,MAEIZ,EAAM,KAAKa,GAAUf,EAAI,SAAUK,CAAG,CAAC,EAE3C,GAAIL,EAAI,YAAY,OAChB,GAAIA,EAAI,QAAS,CACb,IAAMQ,EAAKD,EAAcP,EAAI,OAAO,EAChCQ,EAAG,SAAS;AAAA,CAAI,GAChBN,EAAM,KAAK,KAAK,EAChBA,EAAM,KAAKO,GAAcD,EAAI,EAAE,CAAC,GAGhCN,EAAM,KAAK,OAAOM,CAAE,EAAE,CAE9B,MAEIN,EAAM,KAAK,KAAK,MAGnB,CACD,IAAIe,EAAKjB,EAAI,QACTiB,GAAMP,IACNO,EAAKA,EAAG,QAAQ,OAAQ,EAAE,GAC1BA,KACK,CAACP,GAAaC,IAAmBT,EAAMA,EAAM,OAAS,CAAC,IAAM,IAC9DA,EAAM,KAAK,EAAE,EACjBA,EAAM,KAAKO,GAAcF,EAAcU,CAAE,EAAG,EAAE,CAAC,EAEvD,CACA,OAAOf,EAAM,KAAK;AAAA,CAAI,EAAI;AAAA,CAC9B,CCtEA,IAAMgB,GAAN,MAAMC,CAAS,CACX,YAAYC,EAAOC,EAAUC,EAAS,CAElC,KAAK,cAAgB,KAErB,KAAK,QAAU,KAEf,KAAK,OAAS,CAAC,EAEf,KAAK,SAAW,CAAC,EACjB,OAAO,eAAe,KAAMC,GAAW,CAAE,MAAOC,EAAI,CAAC,EACrD,IAAIC,EAAY,KACZ,OAAOJ,GAAa,YAAc,MAAM,QAAQA,CAAQ,EACxDI,EAAYJ,EAEPC,IAAY,QAAaD,IAC9BC,EAAUD,EACVA,EAAW,QAEf,IAAMK,EAAM,OAAO,OAAO,CACtB,YAAa,GACb,iBAAkB,GAClB,SAAU,OACV,aAAc,GACd,OAAQ,GACR,WAAY,GACZ,WAAY,GACZ,QAAS,KACb,EAAGJ,CAAO,EACV,KAAK,QAAUI,EACf,GAAI,CAAE,QAAAC,CAAQ,EAAID,EACdJ,GAAS,aACT,KAAK,WAAaA,EAAQ,YAAY,WAAW,EAC7C,KAAK,WAAW,KAAK,WACrBK,EAAU,KAAK,WAAW,KAAK,UAGnC,KAAK,WAAa,IAAIC,GAAW,CAAE,QAAAD,CAAQ,CAAC,EAChD,KAAK,UAAUA,EAASL,CAAO,EAE/B,KAAK,SACDF,IAAU,OAAY,KAAO,KAAK,WAAWA,EAAOK,EAAWH,CAAO,CAC9E,CAMA,OAAQ,CACJ,IAAMO,EAAO,OAAO,OAAOV,EAAS,UAAW,CAC3C,CAACI,EAAS,EAAG,CAAE,MAAOC,EAAI,CAC9B,CAAC,EACD,OAAAK,EAAK,cAAgB,KAAK,cAC1BA,EAAK,QAAU,KAAK,QACpBA,EAAK,OAAS,KAAK,OAAO,MAAM,EAChCA,EAAK,SAAW,KAAK,SAAS,MAAM,EACpCA,EAAK,QAAU,OAAO,OAAO,CAAC,EAAG,KAAK,OAAO,EACzC,KAAK,aACLA,EAAK,WAAa,KAAK,WAAW,MAAM,GAC5CA,EAAK,OAAS,KAAK,OAAO,MAAM,EAEhCA,EAAK,SAAWC,EAAO,KAAK,QAAQ,EAC9B,KAAK,SAAS,MAAMD,EAAK,MAAM,EAC/B,KAAK,SACP,KAAK,QACLA,EAAK,MAAQ,KAAK,MAAM,MAAM,GAC3BA,CACX,CAEA,IAAIT,EAAO,CACHW,GAAiB,KAAK,QAAQ,GAC9B,KAAK,SAAS,IAAIX,CAAK,CAC/B,CAEA,MAAMY,EAAMZ,EAAO,CACXW,GAAiB,KAAK,QAAQ,GAC9B,KAAK,SAAS,MAAMC,EAAMZ,CAAK,CACvC,CAUA,YAAYa,EAAMC,EAAM,CACpB,GAAI,CAACD,EAAK,OAAQ,CACd,IAAME,EAAOC,GAAY,IAAI,EAC7BH,EAAK,OAED,CAACC,GAAQC,EAAK,IAAID,CAAI,EAAIG,GAAcH,GAAQ,IAAKC,CAAI,EAAID,CACrE,CACA,OAAO,IAAII,GAAML,EAAK,MAAM,CAChC,CACA,WAAWb,EAAOC,EAAUC,EAAS,CACjC,IAAIG,EACJ,GAAI,OAAOJ,GAAa,WACpBD,EAAQC,EAAS,KAAK,CAAE,GAAID,CAAM,EAAG,GAAIA,CAAK,EAC9CK,EAAYJ,UAEP,MAAM,QAAQA,CAAQ,EAAG,CAC9B,IAAMkB,EAAYC,GAAM,OAAOA,GAAM,UAAYA,aAAa,QAAUA,aAAa,OAC/EC,EAAQpB,EAAS,OAAOkB,CAAQ,EAAE,IAAI,MAAM,EAC9CE,EAAM,OAAS,IACfpB,EAAWA,EAAS,OAAOoB,CAAK,GACpChB,EAAYJ,CAChB,MACSC,IAAY,QAAaD,IAC9BC,EAAUD,EACVA,EAAW,QAEf,GAAM,CAAE,sBAAAqB,EAAuB,aAAAC,EAAc,KAAAC,EAAM,cAAAC,EAAe,SAAAC,EAAU,IAAAC,CAAI,EAAIzB,GAAW,CAAC,EAC1F,CAAE,SAAA0B,EAAU,WAAAC,EAAY,cAAAC,CAAc,EAAIC,GAAkB,KAElER,GAAgB,GAAG,EACbS,EAAM,CACR,sBAAuBV,GAAyB,GAChD,cAAeG,GAAiB,GAChC,SAAAG,EACA,SAAAF,EACA,SAAUrB,EACV,OAAQ,KAAK,OACb,cAAAyB,CACJ,EACMjB,EAAOoB,GAAWjC,EAAO2B,EAAKK,CAAG,EACvC,OAAIR,GAAQU,GAAarB,CAAI,IACzBA,EAAK,KAAO,IAChBgB,EAAW,EACJhB,CACX,CAKA,WAAWsB,EAAKnC,EAAOE,EAAU,CAAC,EAAG,CACjC,IAAMkC,EAAI,KAAK,WAAWD,EAAK,KAAMjC,CAAO,EACtCkB,EAAI,KAAK,WAAWpB,EAAO,KAAME,CAAO,EAC9C,OAAO,IAAImC,GAAKD,EAAGhB,CAAC,CACxB,CAKA,OAAOe,EAAK,CACR,OAAOxB,GAAiB,KAAK,QAAQ,EAAI,KAAK,SAAS,OAAOwB,CAAG,EAAI,EACzE,CAKA,SAASvB,EAAM,CACX,OAAI0B,GAAY1B,CAAI,EACZ,KAAK,UAAY,KACV,IAEX,KAAK,SAAW,KACT,IAEJD,GAAiB,KAAK,QAAQ,EAC/B,KAAK,SAAS,SAASC,CAAI,EAC3B,EACV,CAMA,IAAIuB,EAAKI,EAAY,CACjB,OAAOL,GAAa,KAAK,QAAQ,EAC3B,KAAK,SAAS,IAAIC,EAAKI,CAAU,EACjC,MACV,CAMA,MAAM3B,EAAM2B,EAAY,CACpB,OAAID,GAAY1B,CAAI,EACT,CAAC2B,GAAcC,EAAS,KAAK,QAAQ,EACtC,KAAK,SAAS,MACd,KAAK,SACRN,GAAa,KAAK,QAAQ,EAC3B,KAAK,SAAS,MAAMtB,EAAM2B,CAAU,EACpC,MACV,CAIA,IAAIJ,EAAK,CACL,OAAOD,GAAa,KAAK,QAAQ,EAAI,KAAK,SAAS,IAAIC,CAAG,EAAI,EAClE,CAIA,MAAMvB,EAAM,CACR,OAAI0B,GAAY1B,CAAI,EACT,KAAK,WAAa,OACtBsB,GAAa,KAAK,QAAQ,EAAI,KAAK,SAAS,MAAMtB,CAAI,EAAI,EACrE,CAKA,IAAIuB,EAAKnC,EAAO,CACR,KAAK,UAAY,KAEjB,KAAK,SAAWyC,GAAmB,KAAK,OAAQ,CAACN,CAAG,EAAGnC,CAAK,EAEvDW,GAAiB,KAAK,QAAQ,GACnC,KAAK,SAAS,IAAIwB,EAAKnC,CAAK,CAEpC,CAKA,MAAMY,EAAMZ,EAAO,CACXsC,GAAY1B,CAAI,EAEhB,KAAK,SAAWZ,EAEX,KAAK,UAAY,KAEtB,KAAK,SAAWyC,GAAmB,KAAK,OAAQ,MAAM,KAAK7B,CAAI,EAAGZ,CAAK,EAElEW,GAAiB,KAAK,QAAQ,GACnC,KAAK,SAAS,MAAMC,EAAMZ,CAAK,CAEvC,CAQA,UAAUO,EAASL,EAAU,CAAC,EAAG,CACzB,OAAOK,GAAY,WACnBA,EAAU,OAAOA,CAAO,GAC5B,IAAID,EACJ,OAAQC,EAAS,CACb,IAAK,MACG,KAAK,WACL,KAAK,WAAW,KAAK,QAAU,MAE/B,KAAK,WAAa,IAAIC,GAAW,CAAE,QAAS,KAAM,CAAC,EACvDF,EAAM,CAAE,iBAAkB,GAAO,OAAQ,UAAW,EACpD,MACJ,IAAK,MACL,IAAK,OACG,KAAK,WACL,KAAK,WAAW,KAAK,QAAUC,EAE/B,KAAK,WAAa,IAAIC,GAAW,CAAE,QAAAD,CAAQ,CAAC,EAChDD,EAAM,CAAE,iBAAkB,GAAM,OAAQ,MAAO,EAC/C,MACJ,KAAK,KACG,KAAK,YACL,OAAO,KAAK,WAChBA,EAAM,KACN,MACJ,QAAS,CACL,IAAMoC,EAAK,KAAK,UAAUnC,CAAO,EACjC,MAAM,IAAI,MAAM,+DAA+DmC,CAAE,EAAE,CACvF,CACJ,CAEA,GAAIxC,EAAQ,kBAAkB,OAC1B,KAAK,OAASA,EAAQ,eACjBI,EACL,KAAK,OAAS,IAAIqC,GAAO,OAAO,OAAOrC,EAAKJ,CAAO,CAAC,MAEpD,OAAM,IAAI,MAAM,qEAAqE,CAC7F,CAEA,KAAK,CAAE,KAAA0C,EAAM,QAAAC,EAAS,SAAAC,EAAU,cAAAC,EAAe,SAAAnB,EAAU,QAAAoB,CAAQ,EAAI,CAAC,EAAG,CACrE,IAAMhB,EAAM,CACR,QAAS,IAAI,IACb,IAAK,KACL,KAAM,CAACY,EACP,SAAUE,IAAa,GACvB,aAAc,GACd,cAAe,OAAOC,GAAkB,SAAWA,EAAgB,GACvE,EACME,EAAMC,GAAK,KAAK,SAAUL,GAAW,GAAIb,CAAG,EAClD,GAAI,OAAOJ,GAAa,WACpB,OAAW,CAAE,MAAAuB,EAAO,IAAAF,CAAI,IAAKjB,EAAI,QAAQ,OAAO,EAC5CJ,EAASqB,EAAKE,CAAK,EAC3B,OAAO,OAAOH,GAAY,WACpBI,GAAaJ,EAAS,CAAE,GAAIC,CAAI,EAAG,GAAIA,CAAG,EAC1CA,CACV,CAOA,OAAOJ,EAASjB,EAAU,CACtB,OAAO,KAAK,KAAK,CAAE,KAAM,GAAM,QAAAiB,EAAS,SAAU,GAAO,SAAAjB,CAAS,CAAC,CACvE,CAEA,SAAS1B,EAAU,CAAC,EAAG,CACnB,GAAI,KAAK,OAAO,OAAS,EACrB,MAAM,IAAI,MAAM,4CAA4C,EAChE,GAAI,WAAYA,IACX,CAAC,OAAO,UAAUA,EAAQ,MAAM,GAAK,OAAOA,EAAQ,MAAM,GAAK,GAAI,CACpE,IAAMmD,EAAI,KAAK,UAAUnD,EAAQ,MAAM,EACvC,MAAM,IAAI,MAAM,mDAAmDmD,CAAC,EAAE,CAC1E,CACA,OAAOC,GAAkB,KAAMpD,CAAO,CAC1C,CACJ,EACA,SAASS,GAAiB4C,EAAU,CAChC,GAAIrB,GAAaqB,CAAQ,EACrB,MAAO,GACX,MAAM,IAAI,MAAM,iDAAiD,CACrE,CC5UA,IAAMC,GAAN,cAAwB,KAAM,CAC1B,YAAYC,EAAMC,EAAKC,EAAMC,EAAS,CAClC,MAAM,EACN,KAAK,KAAOH,EACZ,KAAK,KAAOE,EACZ,KAAK,QAAUC,EACf,KAAK,IAAMF,CACf,CACJ,EACMG,GAAN,cAA6BL,EAAU,CACnC,YAAYE,EAAKC,EAAMC,EAAS,CAC5B,MAAM,iBAAkBF,EAAKC,EAAMC,CAAO,CAC9C,CACJ,EACME,GAAN,cAA0BN,EAAU,CAChC,YAAYE,EAAKC,EAAMC,EAAS,CAC5B,MAAM,cAAeF,EAAKC,EAAMC,CAAO,CAC3C,CACJ,EACMG,GAAgB,CAACC,EAAKC,IAAQC,GAAU,CAC1C,GAAIA,EAAM,IAAI,CAAC,IAAM,GACjB,OACJA,EAAM,QAAUA,EAAM,IAAI,IAAIR,GAAOO,EAAG,QAAQP,CAAG,CAAC,EACpD,GAAM,CAAE,KAAAS,EAAM,IAAAC,CAAI,EAAIF,EAAM,QAAQ,CAAC,EACrCA,EAAM,SAAW,YAAYC,CAAI,YAAYC,CAAG,GAChD,IAAIC,EAAKD,EAAM,EACXE,EAAUN,EACT,UAAUC,EAAG,WAAWE,EAAO,CAAC,EAAGF,EAAG,WAAWE,CAAI,CAAC,EACtD,QAAQ,WAAY,EAAE,EAE3B,GAAIE,GAAM,IAAMC,EAAQ,OAAS,GAAI,CACjC,IAAMC,EAAY,KAAK,IAAIF,EAAK,GAAIC,EAAQ,OAAS,EAAE,EACvDA,EAAU,SAAMA,EAAQ,UAAUC,CAAS,EAC3CF,GAAME,EAAY,CACtB,CAIA,GAHID,EAAQ,OAAS,KACjBA,EAAUA,EAAQ,UAAU,EAAG,EAAE,EAAI,UAErCH,EAAO,GAAK,OAAO,KAAKG,EAAQ,UAAU,EAAGD,CAAE,CAAC,EAAG,CAEnD,IAAIG,EAAOR,EAAI,UAAUC,EAAG,WAAWE,EAAO,CAAC,EAAGF,EAAG,WAAWE,EAAO,CAAC,CAAC,EACrEK,EAAK,OAAS,KACdA,EAAOA,EAAK,UAAU,EAAG,EAAE,EAAI;AAAA,GACnCF,EAAUE,EAAOF,CACrB,CACA,GAAI,OAAO,KAAKA,CAAO,EAAG,CACtB,IAAIG,EAAQ,EACNC,EAAMR,EAAM,QAAQ,CAAC,EACvBQ,GAAK,OAASP,GAAQO,EAAI,IAAMN,IAChCK,EAAQ,KAAK,IAAI,EAAG,KAAK,IAAIC,EAAI,IAAMN,EAAK,GAAKC,CAAE,CAAC,GAExD,IAAMM,EAAU,IAAI,OAAON,CAAE,EAAI,IAAI,OAAOI,CAAK,EACjDP,EAAM,SAAW;AAAA;AAAA,EAAQI,CAAO;AAAA,EAAKK,CAAO;AAAA,CAChD,CACJ,ECtDA,SAASC,GAAaC,EAAQ,CAAE,KAAAC,EAAM,UAAAC,EAAW,KAAAC,EAAM,OAAAC,EAAQ,QAAAC,EAAS,aAAAC,EAAc,eAAAC,CAAe,EAAG,CACpG,IAAIC,EAAc,GACdC,EAAYF,EACZG,EAAWH,EACXI,EAAU,GACVC,EAAa,GACbC,EAAa,GACbC,EAAW,GACXC,EAAM,KACNC,EAAS,KACTC,EAAM,KACNC,EAAmB,KACnBC,EAAQ,KACRC,EAAQ,KACRC,EAAQ,KACZ,QAAWC,KAAStB,EAchB,OAbIc,IACIQ,EAAM,OAAS,SACfA,EAAM,OAAS,WACfA,EAAM,OAAS,SACfjB,EAAQiB,EAAM,OAAQ,eAAgB,uEAAuE,EACjHR,EAAW,IAEXC,IACIN,GAAaa,EAAM,OAAS,WAAaA,EAAM,OAAS,WACxDjB,EAAQU,EAAK,gBAAiB,qCAAqC,EAEvEA,EAAM,MAEFO,EAAM,KAAM,CAChB,IAAK,QAIG,CAACrB,IACAC,IAAc,aAAeC,GAAM,OAAS,oBAC7CmB,EAAM,OAAO,SAAS,GAAI,IAC1BP,EAAMO,GAEVZ,EAAW,GACX,MACJ,IAAK,UAAW,CACPA,GACDL,EAAQiB,EAAO,eAAgB,wEAAwE,EAC3G,IAAMC,EAAKD,EAAM,OAAO,UAAU,CAAC,GAAK,IACnCX,EAGDA,GAAWC,EAAaW,EAFxBZ,EAAUY,EAGdX,EAAa,GACbH,EAAY,GACZ,KACJ,CACA,IAAK,UACGA,EACIE,EACAA,GAAWW,EAAM,QACZ,CAACF,GAASlB,IAAc,kBAC7BM,EAAc,IAGlBI,GAAcU,EAAM,OACxBb,EAAY,GACZI,EAAa,IACTG,GAAUC,KACVC,EAAmBI,GACvBZ,EAAW,GACX,MACJ,IAAK,SACGM,GACAX,EAAQiB,EAAO,mBAAoB,oCAAoC,EACvEA,EAAM,OAAO,SAAS,GAAG,GACzBjB,EAAQiB,EAAM,OAASA,EAAM,OAAO,OAAS,EAAG,YAAa,kCAAmC,EAAI,EACxGN,EAASM,EACTD,IAAUA,EAAQC,EAAM,QACxBb,EAAY,GACZC,EAAW,GACXI,EAAW,GACX,MACJ,IAAK,MAAO,CACJG,GACAZ,EAAQiB,EAAO,gBAAiB,iCAAiC,EACrEL,EAAMK,EACND,IAAUA,EAAQC,EAAM,QACxBb,EAAY,GACZC,EAAW,GACXI,EAAW,GACX,KACJ,CACA,KAAKZ,GAEGc,GAAUC,IACVZ,EAAQiB,EAAO,iBAAkB,sCAAsCA,EAAM,MAAM,YAAY,EAC/FF,GACAf,EAAQiB,EAAO,mBAAoB,cAAcA,EAAM,MAAM,OAAOrB,GAAQ,YAAY,EAAE,EAC9FmB,EAAQE,EACRb,EACIP,IAAc,gBAAkBA,IAAc,mBAClDQ,EAAW,GACX,MACJ,IAAK,QACD,GAAIT,EAAM,CACFkB,GACAd,EAAQiB,EAAO,mBAAoB,mBAAmBrB,CAAI,EAAE,EAChEkB,EAAQG,EACRb,EAAY,GACZC,EAAW,GACX,KACJ,CAEJ,QACIL,EAAQiB,EAAO,mBAAoB,cAAcA,EAAM,IAAI,QAAQ,EACnEb,EAAY,GACZC,EAAW,EACnB,CAEJ,IAAMc,EAAOxB,EAAOA,EAAO,OAAS,CAAC,EAC/ByB,EAAMD,EAAOA,EAAK,OAASA,EAAK,OAAO,OAASpB,EACtD,OAAIU,GACAX,GACAA,EAAK,OAAS,SACdA,EAAK,OAAS,WACdA,EAAK,OAAS,UACbA,EAAK,OAAS,UAAYA,EAAK,SAAW,KAC3CE,EAAQF,EAAK,OAAQ,eAAgB,uEAAuE,EAE5GY,IACEN,GAAaM,EAAI,QAAUT,GACzBH,GAAM,OAAS,aACfA,GAAM,OAAS,cACnBE,EAAQU,EAAK,gBAAiB,qCAAqC,EAChE,CACH,MAAAI,EACA,MAAAC,EACA,YAAAZ,EACA,QAAAG,EACA,WAAAE,EACA,OAAAG,EACA,IAAAC,EACA,iBAAAC,EACA,IAAAO,EACA,MAAOJ,GAASI,CACpB,CACJ,CC/IA,SAASC,GAAgBC,EAAK,CAC1B,GAAI,CAACA,EACD,OAAO,KACX,OAAQA,EAAI,KAAM,CACd,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBACD,GAAIA,EAAI,OAAO,SAAS;AAAA,CAAI,EACxB,MAAO,GACX,GAAIA,EAAI,KACJ,QAAWC,KAAMD,EAAI,IACjB,GAAIC,EAAG,OAAS,UACZ,MAAO,GACnB,MAAO,GACX,IAAK,kBACD,QAAWC,KAAMF,EAAI,MAAO,CACxB,QAAWC,KAAMC,EAAG,MAChB,GAAID,EAAG,OAAS,UACZ,MAAO,GACf,GAAIC,EAAG,KACH,QAAWD,KAAMC,EAAG,IAChB,GAAID,EAAG,OAAS,UACZ,MAAO,GACnB,GAAIF,GAAgBG,EAAG,GAAG,GAAKH,GAAgBG,EAAG,KAAK,EACnD,MAAO,EACf,CACA,MAAO,GACX,QACI,MAAO,EACf,CACJ,CC7BA,SAASC,GAAgBC,EAAQC,EAAIC,EAAS,CAC1C,GAAID,GAAI,OAAS,kBAAmB,CAChC,IAAME,EAAMF,EAAG,IAAI,CAAC,EAChBE,EAAI,SAAWH,IACdG,EAAI,SAAW,KAAOA,EAAI,SAAW,MACtCC,GAAgBH,CAAE,GAElBC,EAAQC,EAAK,aADD,yDACoB,EAAI,CAE5C,CACJ,CCVA,SAASE,GAAYC,EAAKC,EAAOC,EAAQ,CACrC,GAAM,CAAE,WAAAC,CAAW,EAAIH,EAAI,QAC3B,GAAIG,IAAe,GACf,MAAO,GACX,IAAMC,EAAU,OAAOD,GAAe,WAChCA,EACA,CAACE,EAAGC,IAAMD,IAAMC,GAAMC,EAASF,CAAC,GAAKE,EAASD,CAAC,GAAKD,EAAE,QAAUC,EAAE,MACxE,OAAOL,EAAM,KAAKO,GAAQJ,EAAQI,EAAK,IAAKN,CAAM,CAAC,CACvD,CCHA,IAAMO,GAAc,kDACpB,SAASC,GAAgB,CAAE,YAAAC,EAAa,iBAAAC,CAAiB,EAAGC,EAAKC,EAAIC,EAASC,EAAK,CAC/E,IAAMC,EAAYD,GAAK,WAAaE,GAC9BC,EAAM,IAAIF,EAAUJ,EAAI,MAAM,EAChCA,EAAI,SACJA,EAAI,OAAS,IACjB,IAAIO,EAASN,EAAG,OACZO,EAAa,KACjB,QAAWC,KAAYR,EAAG,MAAO,CAC7B,GAAM,CAAE,MAAAS,EAAO,IAAAC,EAAK,IAAAC,EAAK,MAAAC,CAAM,EAAIJ,EAE7BK,EAAWC,GAAaL,EAAO,CACjC,UAAW,mBACX,KAAMC,GAAOC,IAAM,CAAC,EACpB,OAAAL,EACA,QAAAL,EACA,aAAcD,EAAG,OACjB,eAAgB,EACpB,CAAC,EACKe,EAAc,CAACF,EAAS,MAC9B,GAAIE,EAAa,CAOb,GANIL,IACIA,EAAI,OAAS,YACbT,EAAQK,EAAQ,wBAAyB,yDAAyD,EAC7F,WAAYI,GAAOA,EAAI,SAAWV,EAAG,QAC1CC,EAAQK,EAAQ,aAAcX,EAAW,GAE7C,CAACkB,EAAS,QAAU,CAACA,EAAS,KAAO,CAACF,EAAK,CAC3CJ,EAAaM,EAAS,IAClBA,EAAS,UACLR,EAAI,QACJA,EAAI,SAAW;AAAA,EAAOQ,EAAS,QAE/BR,EAAI,QAAUQ,EAAS,SAE/B,QACJ,EACIA,EAAS,kBAAoBG,GAAgBN,CAAG,IAChDT,EAAQS,GAAOD,EAAMA,EAAM,OAAS,CAAC,EAAG,yBAA0B,2CAA2C,CAErH,MACSI,EAAS,OAAO,SAAWb,EAAG,QACnCC,EAAQK,EAAQ,aAAcX,EAAW,EAG7CI,EAAI,MAAQ,GACZ,IAAMkB,EAAWJ,EAAS,IACpBK,EAAUR,EACVb,EAAYE,EAAKW,EAAKG,EAAUZ,CAAO,EACvCH,EAAiBC,EAAKkB,EAAUR,EAAO,KAAMI,EAAUZ,CAAO,EAChEF,EAAI,OAAO,QACXoB,GAAgBnB,EAAG,OAAQU,EAAKT,CAAO,EAC3CF,EAAI,MAAQ,GACRqB,GAAYrB,EAAKM,EAAI,MAAOa,CAAO,GACnCjB,EAAQgB,EAAU,gBAAiB,yBAAyB,EAEhE,IAAMI,EAAaP,GAAaH,GAAO,CAAC,EAAG,CACvC,UAAW,gBACX,KAAMC,EACN,OAAQM,EAAQ,MAAM,CAAC,EACvB,QAAAjB,EACA,aAAcD,EAAG,OACjB,eAAgB,CAACU,GAAOA,EAAI,OAAS,cACzC,CAAC,EAED,GADAJ,EAASe,EAAW,IAChBA,EAAW,MAAO,CACdN,IACIH,GAAO,OAAS,aAAe,CAACS,EAAW,YAC3CpB,EAAQK,EAAQ,wBAAyB,qDAAqD,EAC9FP,EAAI,QAAQ,QACZc,EAAS,MAAQQ,EAAW,MAAM,OAAS,MAC3CpB,EAAQiB,EAAQ,MAAO,sBAAuB,6FAA6F,GAGnJ,IAAMI,EAAYV,EACZf,EAAYE,EAAKa,EAAOS,EAAYpB,CAAO,EAC3CH,EAAiBC,EAAKO,EAAQK,EAAK,KAAMU,EAAYpB,CAAO,EAC9DF,EAAI,OAAO,QACXoB,GAAgBnB,EAAG,OAAQY,EAAOX,CAAO,EAC7CK,EAASgB,EAAU,MAAM,CAAC,EAC1B,IAAMC,EAAO,IAAIC,GAAKN,EAASI,CAAS,EACpCvB,EAAI,QAAQ,mBACZwB,EAAK,SAAWf,GACpBH,EAAI,MAAM,KAAKkB,CAAI,CACvB,KACK,CAEGR,GACAd,EAAQiB,EAAQ,MAAO,eAAgB,qDAAqD,EAC5FG,EAAW,UACPH,EAAQ,QACRA,EAAQ,SAAW;AAAA,EAAOG,EAAW,QAErCH,EAAQ,QAAUG,EAAW,SAErC,IAAME,EAAO,IAAIC,GAAKN,CAAO,EACzBnB,EAAI,QAAQ,mBACZwB,EAAK,SAAWf,GACpBH,EAAI,MAAM,KAAKkB,CAAI,CACvB,CACJ,CACA,OAAIhB,GAAcA,EAAaD,GAC3BL,EAAQM,EAAY,aAAc,mCAAmC,EACzEF,EAAI,MAAQ,CAACL,EAAG,OAAQM,EAAQC,GAAcD,CAAM,EAC7CD,CACX,CC5GA,SAASoB,GAAgB,CAAE,YAAAC,EAAa,iBAAAC,CAAiB,EAAGC,EAAKC,EAAIC,EAASC,EAAK,CAC/E,IAAMC,EAAYD,GAAK,WAAaE,GAC9BC,EAAM,IAAIF,EAAUJ,EAAI,MAAM,EAChCA,EAAI,SACJA,EAAI,OAAS,IACbA,EAAI,QACJA,EAAI,MAAQ,IAChB,IAAIO,EAASN,EAAG,OACZO,EAAa,KACjB,OAAW,CAAE,MAAAC,EAAO,MAAAC,CAAM,IAAKT,EAAG,MAAO,CACrC,IAAMU,EAAQC,GAAaH,EAAO,CAC9B,UAAW,eACX,KAAMC,EACN,OAAAH,EACA,QAAAL,EACA,aAAcD,EAAG,OACjB,eAAgB,EACpB,CAAC,EACD,GAAI,CAACU,EAAM,MACP,GAAIA,EAAM,QAAUA,EAAM,KAAOD,EACzBA,GAAO,OAAS,YAChBR,EAAQS,EAAM,IAAK,aAAc,kDAAkD,EAEnFT,EAAQK,EAAQ,eAAgB,mCAAmC,MAEtE,CACDC,EAAaG,EAAM,IACfA,EAAM,UACNL,EAAI,QAAUK,EAAM,SACxB,QACJ,CAEJ,IAAME,EAAOH,EACPZ,EAAYE,EAAKU,EAAOC,EAAOT,CAAO,EACtCH,EAAiBC,EAAKW,EAAM,IAAKF,EAAO,KAAME,EAAOT,CAAO,EAC9DF,EAAI,OAAO,QACXc,GAAgBb,EAAG,OAAQS,EAAOR,CAAO,EAC7CK,EAASM,EAAK,MAAM,CAAC,EACrBP,EAAI,MAAM,KAAKO,CAAI,CACvB,CACA,OAAAP,EAAI,MAAQ,CAACL,EAAG,OAAQM,EAAQC,GAAcD,CAAM,EAC7CD,CACX,CC9CA,SAASS,GAAWC,EAAKC,EAAQC,EAAUC,EAAS,CAChD,IAAIC,EAAU,GACd,GAAIJ,EAAK,CACL,IAAIK,EAAW,GACXC,EAAM,GACV,QAAWC,KAASP,EAAK,CACrB,GAAM,CAAE,OAAAQ,EAAQ,KAAAC,CAAK,EAAIF,EACzB,OAAQE,EAAM,CACV,IAAK,QACDJ,EAAW,GACX,MACJ,IAAK,UAAW,CACRH,GAAY,CAACG,GACbF,EAAQI,EAAO,eAAgB,wEAAwE,EAC3G,IAAMG,EAAKF,EAAO,UAAU,CAAC,GAAK,IAC7BJ,EAGDA,GAAWE,EAAMI,EAFjBN,EAAUM,EAGdJ,EAAM,GACN,KACJ,CACA,IAAK,UACGF,IACAE,GAAOE,GACXH,EAAW,GACX,MACJ,QACIF,EAAQI,EAAO,mBAAoB,cAAcE,CAAI,cAAc,CAC3E,CACAR,GAAUO,EAAO,MACrB,CACJ,CACA,MAAO,CAAE,QAAAJ,EAAS,OAAAH,CAAO,CAC7B,CCzBA,IAAMU,GAAW,4DACXC,GAAWC,GAAUA,IAAUA,EAAM,OAAS,aAAeA,EAAM,OAAS,aAClF,SAASC,GAAsB,CAAE,YAAAC,EAAa,iBAAAC,CAAiB,EAAGC,EAAKC,EAAIC,EAASC,EAAK,CACrF,IAAMC,EAAQH,EAAG,MAAM,SAAW,IAC5BI,EAASD,EAAQ,WAAa,gBAC9BE,EAAaH,GAAK,YAAcC,EAAQG,GAAUC,IAClDC,EAAO,IAAIH,EAAUN,EAAI,MAAM,EACrCS,EAAK,KAAO,GACZ,IAAMC,EAASV,EAAI,OACfU,IACAV,EAAI,OAAS,IACbA,EAAI,QACJA,EAAI,MAAQ,IAChB,IAAIW,EAASV,EAAG,OAASA,EAAG,MAAM,OAAO,OACzC,QAASW,EAAI,EAAGA,EAAIX,EAAG,MAAM,OAAQ,EAAEW,EAAG,CACtC,IAAMC,EAAWZ,EAAG,MAAMW,CAAC,EACrB,CAAE,MAAAE,EAAO,IAAAC,EAAK,IAAAC,EAAK,MAAAC,CAAM,EAAIJ,EAC7BK,EAAQC,GAAaL,EAAO,CAC9B,KAAMT,EACN,UAAW,mBACX,KAAMU,GAAOC,IAAM,CAAC,EACpB,OAAAL,EACA,QAAAT,EACA,aAAcD,EAAG,OACjB,eAAgB,EACpB,CAAC,EACD,GAAI,CAACiB,EAAM,MAAO,CACd,GAAI,CAACA,EAAM,QAAU,CAACA,EAAM,KAAO,CAACF,GAAO,CAACC,EAAO,CAC3CL,IAAM,GAAKM,EAAM,MACjBhB,EAAQgB,EAAM,MAAO,mBAAoB,mBAAmBb,CAAM,EAAE,EAC/DO,EAAIX,EAAG,MAAM,OAAS,GAC3BC,EAAQgB,EAAM,MAAO,mBAAoB,4BAA4Bb,CAAM,EAAE,EAC7Ea,EAAM,UACFT,EAAK,QACLA,EAAK,SAAW;AAAA,EAAOS,EAAM,QAE7BT,EAAK,QAAUS,EAAM,SAE7BP,EAASO,EAAM,IACf,QACJ,CACI,CAACd,GAASJ,EAAI,QAAQ,QAAUoB,GAAgBL,CAAG,GACnDb,EAAQa,EACR,yBAA0B,kEAAkE,CACpG,CACA,GAAIH,IAAM,EACFM,EAAM,OACNhB,EAAQgB,EAAM,MAAO,mBAAoB,mBAAmBb,CAAM,EAAE,UAGnEa,EAAM,OACPhB,EAAQgB,EAAM,MAAO,eAAgB,qBAAqBb,CAAM,QAAQ,EACxEa,EAAM,QAAS,CACf,IAAIG,EAAkB,GACtBC,EAAM,QAAWC,KAAMT,EACnB,OAAQS,EAAG,KAAM,CACb,IAAK,QACL,IAAK,QACD,MACJ,IAAK,UACDF,EAAkBE,EAAG,OAAO,UAAU,CAAC,EACvC,MAAMD,EACV,QACI,MAAMA,CACd,CAEJ,GAAID,EAAiB,CACjB,IAAIG,EAAOf,EAAK,MAAMA,EAAK,MAAM,OAAS,CAAC,EACvCgB,EAAOD,CAAI,IACXA,EAAOA,EAAK,OAASA,EAAK,KAC1BA,EAAK,QACLA,EAAK,SAAW;AAAA,EAAOH,EAEvBG,EAAK,QAAUH,EACnBH,EAAM,QAAUA,EAAM,QAAQ,UAAUG,EAAgB,OAAS,CAAC,CACtE,CACJ,CAEJ,GAAI,CAACjB,GAAS,CAACY,GAAO,CAACE,EAAM,MAAO,CAGhC,IAAMQ,EAAYT,EACZnB,EAAYE,EAAKiB,EAAOC,EAAOhB,CAAO,EACtCH,EAAiBC,EAAKkB,EAAM,IAAKF,EAAK,KAAME,EAAOhB,CAAO,EAChEO,EAAK,MAAM,KAAKiB,CAAS,EACzBf,EAASe,EAAU,MAAM,CAAC,EACtB/B,GAAQsB,CAAK,GACbf,EAAQwB,EAAU,MAAO,gBAAiBhC,EAAQ,CAC1D,KACK,CAGDM,EAAI,MAAQ,GACZ,IAAM2B,EAAWT,EAAM,IACjBU,EAAUb,EACVjB,EAAYE,EAAKe,EAAKG,EAAOhB,CAAO,EACpCH,EAAiBC,EAAK2B,EAAUb,EAAO,KAAMI,EAAOhB,CAAO,EAC7DP,GAAQoB,CAAG,GACXb,EAAQ0B,EAAQ,MAAO,gBAAiBlC,EAAQ,EACpDM,EAAI,MAAQ,GAEZ,IAAM6B,EAAaV,GAAaH,GAAO,CAAC,EAAG,CACvC,KAAMX,EACN,UAAW,gBACX,KAAMY,EACN,OAAQW,EAAQ,MAAM,CAAC,EACvB,QAAA1B,EACA,aAAcD,EAAG,OACjB,eAAgB,EACpB,CAAC,EACD,GAAI4B,EAAW,OACX,GAAI,CAACzB,GAAS,CAACc,EAAM,OAASlB,EAAI,QAAQ,OAAQ,CAC9C,GAAIgB,EACA,QAAWO,KAAMP,EAAK,CAClB,GAAIO,IAAOM,EAAW,MAClB,MACJ,GAAIN,EAAG,OAAS,UAAW,CACvBrB,EAAQqB,EAAI,yBAA0B,kEAAkE,EACxG,KACJ,CACJ,CACAL,EAAM,MAAQW,EAAW,MAAM,OAAS,MACxC3B,EAAQ2B,EAAW,MAAO,sBAAuB,6FAA6F,CACtJ,OAEKZ,IACD,WAAYA,GAASA,EAAM,SAAS,CAAC,IAAM,IAC3Cf,EAAQe,EAAO,eAAgB,4BAA4BZ,CAAM,EAAE,EAEnEH,EAAQ2B,EAAW,MAAO,eAAgB,0BAA0BxB,CAAM,QAAQ,GAG1F,IAAMqB,EAAYT,EACZnB,EAAYE,EAAKiB,EAAOY,EAAY3B,CAAO,EAC3C2B,EAAW,MACP9B,EAAiBC,EAAK6B,EAAW,IAAKb,EAAK,KAAMa,EAAY3B,CAAO,EACpE,KACNwB,EACI/B,GAAQsB,CAAK,GACbf,EAAQwB,EAAU,MAAO,gBAAiBhC,EAAQ,EAEjDmC,EAAW,UACZD,EAAQ,QACRA,EAAQ,SAAW;AAAA,EAAOC,EAAW,QAErCD,EAAQ,QAAUC,EAAW,SAErC,IAAMC,GAAO,IAAIC,GAAKH,EAASF,CAAS,EAGxC,GAFI1B,EAAI,QAAQ,mBACZ8B,GAAK,SAAWjB,GAChBT,EAAO,CACP,IAAM4B,EAAMvB,EACRwB,GAAYjC,EAAKgC,EAAI,MAAOJ,CAAO,GACnC1B,EAAQyB,EAAU,gBAAiB,yBAAyB,EAChEK,EAAI,MAAM,KAAKF,EAAI,CACvB,KACK,CACD,IAAME,EAAM,IAAIzB,GAAQP,EAAI,MAAM,EAClCgC,EAAI,KAAO,GACXA,EAAI,MAAM,KAAKF,EAAI,EACnB,IAAMI,IAAYR,GAAaE,GAAS,MACxCI,EAAI,MAAQ,CAACJ,EAAQ,MAAM,CAAC,EAAGM,GAAS,CAAC,EAAGA,GAAS,CAAC,CAAC,EACvDzB,EAAK,MAAM,KAAKuB,CAAG,CACvB,CACArB,EAASe,EAAYA,EAAU,MAAM,CAAC,EAAIG,EAAW,GACzD,CACJ,CACA,IAAMM,EAAc/B,EAAQ,IAAM,IAC5B,CAACgC,EAAI,GAAGC,CAAE,EAAIpC,EAAG,IACnBqC,EAAQ3B,EACZ,GAAIyB,GAAI,SAAWD,EACfG,EAAQF,EAAG,OAASA,EAAG,OAAO,WAC7B,CACD,IAAMG,EAAOlC,EAAO,CAAC,EAAE,YAAY,EAAIA,EAAO,UAAU,CAAC,EACnDmC,EAAM9B,EACN,GAAG6B,CAAI,oBAAoBJ,CAAW,GACtC,GAAGI,CAAI,qEAAqEJ,CAAW,GAC7FjC,EAAQS,EAAQD,EAAS,eAAiB,aAAc8B,CAAG,EACvDJ,GAAMA,EAAG,OAAO,SAAW,GAC3BC,EAAG,QAAQD,CAAE,CACrB,CACA,GAAIC,EAAG,OAAS,EAAG,CACf,IAAMI,EAAMC,GAAWL,EAAIC,EAAOtC,EAAI,QAAQ,OAAQE,CAAO,EACzDuC,EAAI,UACAhC,EAAK,QACLA,EAAK,SAAW;AAAA,EAAOgC,EAAI,QAE3BhC,EAAK,QAAUgC,EAAI,SAE3BhC,EAAK,MAAQ,CAACR,EAAG,OAAQqC,EAAOG,EAAI,MAAM,CAC9C,MAEIhC,EAAK,MAAQ,CAACR,EAAG,OAAQqC,EAAOA,CAAK,EAEzC,OAAO7B,CACX,CCpMA,SAASkC,GAAkBC,EAAIC,EAAKC,EAAOC,EAASC,EAASC,EAAK,CAC9D,IAAMC,EAAOJ,EAAM,OAAS,YACtBK,GAAgBP,EAAIC,EAAKC,EAAOC,EAASE,CAAG,EAC5CH,EAAM,OAAS,YACXM,GAAgBR,EAAIC,EAAKC,EAAOC,EAASE,CAAG,EAC5CI,GAAsBT,EAAIC,EAAKC,EAAOC,EAASE,CAAG,EACtDK,EAAOJ,EAAK,YAGlB,OAAIF,IAAY,KAAOA,IAAYM,EAAK,SACpCJ,EAAK,IAAMI,EAAK,QACTJ,IAEPF,IACAE,EAAK,IAAMF,GACRE,EACX,CACA,SAASK,GAAkBX,EAAIC,EAAKC,EAAOU,EAAOT,EAAS,CACvD,IAAMU,EAAWD,EAAM,IACjBR,EAAWS,EAEXZ,EAAI,WAAW,QAAQY,EAAS,OAAQC,GAAOX,EAAQU,EAAU,qBAAsBC,CAAG,CAAC,EAD3F,KAEN,GAAIZ,EAAM,OAAS,YAAa,CAC5B,GAAM,CAAE,OAAAa,EAAQ,iBAAkBC,CAAG,EAAIJ,EACnCK,EAAWF,GAAUF,EACrBE,EAAO,OAASF,EAAS,OACrBE,EACAF,EACHE,GAAUF,EACbI,IAAa,CAACD,GAAMA,EAAG,OAASC,EAAS,SAEzCd,EAAQc,EAAU,eADF,4CACyB,CAEjD,CACA,IAAMC,EAAUhB,EAAM,OAAS,YACzB,MACAA,EAAM,OAAS,YACX,MACAA,EAAM,MAAM,SAAW,IACnB,MACA,MAGd,GAAI,CAACW,GACD,CAACT,GACDA,IAAY,KACXA,IAAYe,GAAQ,SAAWD,IAAY,OAC3Cd,IAAYgB,GAAQ,SAAWF,IAAY,MAC5C,OAAOnB,GAAkBC,EAAIC,EAAKC,EAAOC,EAASC,CAAO,EAE7D,IAAIC,EAAMJ,EAAI,OAAO,KAAK,KAAKoB,GAAKA,EAAE,MAAQjB,GAAWiB,EAAE,aAAeH,CAAO,EACjF,GAAI,CAACb,EAAK,CACN,IAAMiB,EAAKrB,EAAI,OAAO,UAAUG,CAAO,EACvC,GAAIkB,GAAI,aAAeJ,EACnBjB,EAAI,OAAO,KAAK,KAAK,OAAO,OAAO,CAAC,EAAGqB,EAAI,CAAE,QAAS,EAAM,CAAC,CAAC,EAC9DjB,EAAMiB,MAGN,QAAIA,EACAnB,EAAQU,EAAU,sBAAuB,GAAGS,EAAG,GAAG,aAAaJ,CAAO,4BAA4BI,EAAG,YAAc,QAAQ,GAAI,EAAI,EAGnInB,EAAQU,EAAU,qBAAsB,mBAAmBT,CAAO,GAAI,EAAI,EAEvEL,GAAkBC,EAAIC,EAAKC,EAAOC,EAASC,CAAO,CAEjE,CACA,IAAME,EAAOP,GAAkBC,EAAIC,EAAKC,EAAOC,EAASC,EAASC,CAAG,EAC9DkB,EAAMlB,EAAI,UAAUC,EAAMQ,GAAOX,EAAQU,EAAU,qBAAsBC,CAAG,EAAGb,EAAI,OAAO,GAAKK,EAC/FkB,EAAOC,EAAOF,CAAG,EACjBA,EACA,IAAIG,EAAOH,CAAG,EACpB,OAAAC,EAAK,MAAQlB,EAAK,MAClBkB,EAAK,IAAMpB,EACPC,GAAK,SACLmB,EAAK,OAASnB,EAAI,QACfmB,CACX,CCnFA,SAASG,GAAmBC,EAAKC,EAAQC,EAAS,CAC9C,IAAMC,EAAQF,EAAO,OACfG,EAASC,GAAuBJ,EAAQD,EAAI,QAAQ,OAAQE,CAAO,EACzE,GAAI,CAACE,EACD,MAAO,CAAE,MAAO,GAAI,KAAM,KAAM,QAAS,GAAI,MAAO,CAACD,EAAOA,EAAOA,CAAK,CAAE,EAC9E,IAAMG,EAAOF,EAAO,OAAS,IAAMG,EAAO,aAAeA,EAAO,cAC1DC,EAAQP,EAAO,OAASQ,GAAWR,EAAO,MAAM,EAAI,CAAC,EAEvDS,EAAaF,EAAM,OACvB,QAASG,EAAIH,EAAM,OAAS,EAAGG,GAAK,EAAG,EAAEA,EAAG,CACxC,IAAMC,EAAUJ,EAAMG,CAAC,EAAE,CAAC,EAC1B,GAAIC,IAAY,IAAMA,IAAY,KAC9BF,EAAaC,MAEb,MACR,CAEA,GAAID,IAAe,EAAG,CAClB,IAAMG,EAAQT,EAAO,QAAU,KAAOI,EAAM,OAAS,EAC/C;AAAA,EAAK,OAAO,KAAK,IAAI,EAAGA,EAAM,OAAS,CAAC,CAAC,EACzC,GACFM,EAAMX,EAAQC,EAAO,OACzB,OAAIH,EAAO,SACPa,GAAOb,EAAO,OAAO,QAClB,CAAE,MAAAY,EAAO,KAAAP,EAAM,QAASF,EAAO,QAAS,MAAO,CAACD,EAAOW,EAAKA,CAAG,CAAE,CAC5E,CAEA,IAAIC,EAAad,EAAO,OAASG,EAAO,OACpCY,EAASf,EAAO,OAASG,EAAO,OAChCa,EAAe,EACnB,QAASN,EAAI,EAAGA,EAAID,EAAY,EAAEC,EAAG,CACjC,GAAM,CAACO,EAAQN,CAAO,EAAIJ,EAAMG,CAAC,EACjC,GAAIC,IAAY,IAAMA,IAAY,KAC1BR,EAAO,SAAW,GAAKc,EAAO,OAASH,IACvCA,EAAaG,EAAO,YAEvB,CACGA,EAAO,OAASH,GAEhBb,EAAQc,EAASE,EAAO,OAAQ,eADhB,iGACuC,EAEvDd,EAAO,SAAW,IAClBW,EAAaG,EAAO,QACxBD,EAAeN,EACXI,IAAe,GAAK,CAACf,EAAI,QAEzBE,EAAQc,EAAQ,aADA,qDACqB,EAEzC,KACJ,CACAA,GAAUE,EAAO,OAASN,EAAQ,OAAS,CAC/C,CAEA,QAASD,EAAIH,EAAM,OAAS,EAAGG,GAAKD,EAAY,EAAEC,EAC1CH,EAAMG,CAAC,EAAE,CAAC,EAAE,OAASI,IACrBL,EAAaC,EAAI,GAEzB,IAAIE,EAAQ,GACRM,EAAM,GACNC,EAAmB,GAEvB,QAAST,EAAI,EAAGA,EAAIM,EAAc,EAAEN,EAChCE,GAASL,EAAMG,CAAC,EAAE,CAAC,EAAE,MAAMI,CAAU,EAAI;AAAA,EAC7C,QAASJ,EAAIM,EAAcN,EAAID,EAAY,EAAEC,EAAG,CAC5C,GAAI,CAACO,EAAQN,CAAO,EAAIJ,EAAMG,CAAC,EAC/BK,GAAUE,EAAO,OAASN,EAAQ,OAAS,EAC3C,IAAMS,EAAOT,EAAQA,EAAQ,OAAS,CAAC,IAAM,KAI7C,GAHIS,IACAT,EAAUA,EAAQ,MAAM,EAAG,EAAE,GAE7BA,GAAWM,EAAO,OAASH,EAAY,CAIvC,IAAMO,EAAU,2DAHJlB,EAAO,OACb,iCACA,YACwE,GAC9EF,EAAQc,EAASJ,EAAQ,QAAUS,EAAO,EAAI,GAAI,aAAcC,CAAO,EACvEJ,EAAS,EACb,CACIZ,IAASC,EAAO,eAChBM,GAASM,EAAMD,EAAO,MAAMH,CAAU,EAAIH,EAC1CO,EAAM;AAAA,GAEDD,EAAO,OAASH,GAAcH,EAAQ,CAAC,IAAM,KAE9CO,IAAQ,IACRA,EAAM;AAAA,EACD,CAACC,GAAoBD,IAAQ;AAAA,IAClCA,EAAM;AAAA;AAAA,GACVN,GAASM,EAAMD,EAAO,MAAMH,CAAU,EAAIH,EAC1CO,EAAM;AAAA,EACNC,EAAmB,IAEdR,IAAY,GAEbO,IAAQ;AAAA,EACRN,GAAS;AAAA,EAETM,EAAM;AAAA,GAGVN,GAASM,EAAMP,EACfO,EAAM,IACNC,EAAmB,GAE3B,CACA,OAAQhB,EAAO,MAAO,CAClB,IAAK,IACD,MACJ,IAAK,IACD,QAASO,EAAID,EAAYC,EAAIH,EAAM,OAAQ,EAAEG,EACzCE,GAAS;AAAA,EAAOL,EAAMG,CAAC,EAAE,CAAC,EAAE,MAAMI,CAAU,EAC5CF,EAAMA,EAAM,OAAS,CAAC,IAAM;AAAA,IAC5BA,GAAS;AAAA,GACb,MACJ,QACIA,GAAS;AAAA,CACjB,CACA,IAAMC,EAAMX,EAAQC,EAAO,OAASH,EAAO,OAAO,OAClD,MAAO,CAAE,MAAAY,EAAO,KAAAP,EAAM,QAASF,EAAO,QAAS,MAAO,CAACD,EAAOW,EAAKA,CAAG,CAAE,CAC5E,CACA,SAAST,GAAuB,CAAE,OAAAW,EAAQ,MAAAO,CAAM,EAAGC,EAAQtB,EAAS,CAEhE,GAAIqB,EAAM,CAAC,EAAE,OAAS,sBAClB,OAAArB,EAAQqB,EAAM,CAAC,EAAG,aAAc,+BAA+B,EACxD,KAEX,GAAM,CAAE,OAAAE,CAAO,EAAIF,EAAM,CAAC,EACpBG,EAAOD,EAAO,CAAC,EACjBP,EAAS,EACTS,EAAQ,GACRC,EAAQ,GACZ,QAASjB,EAAI,EAAGA,EAAIc,EAAO,OAAQ,EAAEd,EAAG,CACpC,IAAMkB,EAAKJ,EAAOd,CAAC,EACnB,GAAI,CAACgB,IAAUE,IAAO,KAAOA,IAAO,KAChCF,EAAQE,MACP,CACD,IAAMC,EAAI,OAAOD,CAAE,EACf,CAACX,GAAUY,EACXZ,EAASY,EACJF,IAAU,KACfA,EAAQZ,EAASL,EACzB,CACJ,CACIiB,IAAU,IACV1B,EAAQ0B,EAAO,mBAAoB,kDAAkDH,CAAM,EAAE,EACjG,IAAIM,EAAW,GACXC,EAAU,GACVC,EAASR,EAAO,OACpB,QAASd,EAAI,EAAGA,EAAIY,EAAM,OAAQ,EAAEZ,EAAG,CACnC,IAAMuB,EAAQX,EAAMZ,CAAC,EACrB,OAAQuB,EAAM,KAAM,CAChB,IAAK,QACDH,EAAW,GAEf,IAAK,UACDE,GAAUC,EAAM,OAAO,OACvB,MACJ,IAAK,UACGV,GAAU,CAACO,GAEX7B,EAAQgC,EAAO,eADC,wEACsB,EAE1CD,GAAUC,EAAM,OAAO,OACvBF,EAAUE,EAAM,OAAO,UAAU,CAAC,EAClC,MACJ,IAAK,QACDhC,EAAQgC,EAAO,mBAAoBA,EAAM,OAAO,EAChDD,GAAUC,EAAM,OAAO,OACvB,MAEJ,QAAS,CACL,IAAMZ,EAAU,4CAA4CY,EAAM,IAAI,GACtEhC,EAAQgC,EAAO,mBAAoBZ,CAAO,EAC1C,IAAMa,EAAKD,EAAM,OACbC,GAAM,OAAOA,GAAO,WACpBF,GAAUE,EAAG,OACrB,CACJ,CACJ,CACA,MAAO,CAAE,KAAAT,EAAM,OAAAR,EAAQ,MAAAS,EAAO,QAAAK,EAAS,OAAAC,CAAO,CAClD,CAEA,SAASxB,GAAWgB,EAAQ,CACxB,IAAMW,EAAQX,EAAO,MAAM,QAAQ,EAC7BY,EAAQD,EAAM,CAAC,EACfE,EAAID,EAAM,MAAM,OAAO,EAIvB7B,EAAQ,CAHA8B,IAAI,CAAC,EACb,CAACA,EAAE,CAAC,EAAGD,EAAM,MAAMC,EAAE,CAAC,EAAE,MAAM,CAAC,EAC/B,CAAC,GAAID,CAAK,CACI,EACpB,QAAS1B,EAAI,EAAGA,EAAIyB,EAAM,OAAQzB,GAAK,EACnCH,EAAM,KAAK,CAAC4B,EAAMzB,CAAC,EAAGyB,EAAMzB,EAAI,CAAC,CAAC,CAAC,EACvC,OAAOH,CACX,CChMA,SAAS+B,GAAkBC,EAAQC,EAAQC,EAAS,CAChD,GAAM,CAAE,OAAAC,EAAQ,KAAAC,EAAM,OAAAC,EAAQ,IAAAC,CAAI,EAAIN,EAClCO,EACAC,EACEC,EAAW,CAACC,EAAKC,EAAMC,IAAQV,EAAQC,EAASO,EAAKC,EAAMC,CAAG,EACpE,OAAQR,EAAM,CACV,IAAK,SACDG,EAAQM,EAAO,MACfL,EAAQM,GAAWT,EAAQI,CAAQ,EACnC,MACJ,IAAK,uBACDF,EAAQM,EAAO,aACfL,EAAQO,GAAkBV,EAAQI,CAAQ,EAC1C,MACJ,IAAK,uBACDF,EAAQM,EAAO,aACfL,EAAQQ,GAAkBX,EAAQI,CAAQ,EAC1C,MAEJ,QACI,OAAAP,EAAQF,EAAQ,mBAAoB,4CAA4CI,CAAI,EAAE,EAC/E,CACH,MAAO,GACP,KAAM,KACN,QAAS,GACT,MAAO,CAACD,EAAQA,EAASE,EAAO,OAAQF,EAASE,EAAO,MAAM,CAClE,CACR,CACA,IAAMY,EAAWd,EAASE,EAAO,OAC3Ba,EAAKC,GAAWb,EAAKW,EAAUhB,EAAQC,CAAO,EACpD,MAAO,CACH,MAAAM,EACA,KAAMD,EACN,QAASW,EAAG,QACZ,MAAO,CAACf,EAAQc,EAAUC,EAAG,MAAM,CACvC,CACJ,CACA,SAASJ,GAAWT,EAAQH,EAAS,CACjC,IAAIkB,EAAU,GACd,OAAQf,EAAO,CAAC,EAAG,CAEf,IAAK,IACDe,EAAU,kBACV,MACJ,IAAK,IACDA,EAAU,6BACV,MACJ,IAAK,IACDA,EAAU,kCACV,MACJ,IAAK,IACL,IAAK,IAAK,CACNA,EAAU,0BAA0Bf,EAAO,CAAC,CAAC,GAC7C,KACJ,CACA,IAAK,IACL,IAAK,IAAK,CACNe,EAAU,sBAAsBf,EAAO,CAAC,CAAC,GACzC,KACJ,CACJ,CACA,OAAIe,GACAlB,EAAQ,EAAG,mBAAoB,iCAAiCkB,CAAO,EAAE,EACtEC,GAAYhB,CAAM,CAC7B,CACA,SAASU,GAAkBV,EAAQH,EAAS,CACxC,OAAIG,EAAOA,EAAO,OAAS,CAAC,IAAM,KAAOA,EAAO,SAAW,IACvDH,EAAQG,EAAO,OAAQ,eAAgB,wBAAwB,EAC5DgB,GAAYhB,EAAO,MAAM,EAAG,EAAE,CAAC,EAAE,QAAQ,MAAO,GAAG,CAC9D,CACA,SAASgB,GAAYhB,EAAQ,CACzB,IAAMiB,EAAO,eACTC,EAAQD,EAAK,KAAKjB,CAAM,EAC5B,GAAI,CAACkB,EACD,OAAOlB,EAQX,IAAImB,EAASC,EACb,GAAI,CACAD,EAAU,IAAI,OAAO,iBAAmB,EACxCC,EAAW,IAAI,OAAO,yBAA6B,GAAG,CAC1D,MACM,CACFD,EAAU,UACVC,EAAW,kBACf,CACA,IAAIC,EAAMH,EAAM,CAAC,EAAE,QAAQC,EAAS,EAAE,EAClCG,EAAM,IACNC,EAAMN,EAAK,UACf,KAAQC,EAAQD,EAAK,KAAKjB,CAAM,GAAI,CAChC,IAAMwB,EAAKN,EAAM,CAAC,EAAE,QAAQE,EAAU,EAAE,EACpCI,IAAO,GACHF,IAAQ;AAAA,EACRD,GAAOC,EAEPA,EAAM;AAAA,GAGVD,GAAOC,EAAME,EACbF,EAAM,KAEVC,EAAMN,EAAK,SACf,CACA,IAAMQ,EAAO,eACb,OAAAA,EAAK,UAAYF,EACjBL,EAAQO,EAAK,KAAKzB,CAAM,EACjBqB,EAAMC,GAAOJ,IAAQ,CAAC,GAAK,GACtC,CACA,SAASP,GAAkBX,EAAQH,EAAS,CACxC,IAAIwB,EAAM,GACV,QAASK,EAAI,EAAGA,EAAI1B,EAAO,OAAS,EAAG,EAAE0B,EAAG,CACxC,IAAMC,EAAK3B,EAAO0B,CAAC,EACnB,GAAI,EAAAC,IAAO,MAAQ3B,EAAO0B,EAAI,CAAC,IAAM;AAAA,GAErC,GAAIC,IAAO;AAAA,EAAM,CACb,GAAM,CAAE,KAAAC,EAAM,OAAA9B,CAAO,EAAI+B,GAAY7B,EAAQ0B,CAAC,EAC9CL,GAAOO,EACPF,EAAI5B,CACR,SACS6B,IAAO,KAAM,CAClB,IAAIG,EAAO9B,EAAO,EAAE0B,CAAC,EACfK,EAAKC,GAAYF,CAAI,EAC3B,GAAIC,EACAV,GAAOU,UACFD,IAAS;AAAA,EAGd,IADAA,EAAO9B,EAAO0B,EAAI,CAAC,EACZI,IAAS,KAAOA,IAAS,KAC5BA,EAAO9B,EAAO,EAAE0B,EAAI,CAAC,UAEpBI,IAAS,MAAQ9B,EAAO0B,EAAI,CAAC,IAAM;AAAA,EAGxC,IADAI,EAAO9B,EAAO,EAAE0B,EAAI,CAAC,EACdI,IAAS,KAAOA,IAAS,KAC5BA,EAAO9B,EAAO,EAAE0B,EAAI,CAAC,UAEpBI,IAAS,KAAOA,IAAS,KAAOA,IAAS,IAAK,CACnD,IAAMG,EAASH,IAAS,IAAM,EAAIA,IAAS,IAAM,EAAI,EACrDT,GAAOa,GAAclC,EAAQ0B,EAAI,EAAGO,EAAQpC,CAAO,EACnD6B,GAAKO,CACT,KACK,CACD,IAAME,EAAMnC,EAAO,OAAO0B,EAAI,EAAG,CAAC,EAClC7B,EAAQ6B,EAAI,EAAG,gBAAiB,2BAA2BS,CAAG,EAAE,EAChEd,GAAOc,CACX,CACJ,SACSR,IAAO,KAAOA,IAAO,IAAM,CAEhC,IAAMS,EAAUV,EACZI,EAAO9B,EAAO0B,EAAI,CAAC,EACvB,KAAOI,IAAS,KAAOA,IAAS,KAC5BA,EAAO9B,EAAO,EAAE0B,EAAI,CAAC,EACrBI,IAAS;AAAA,GAAQ,EAAEA,IAAS,MAAQ9B,EAAO0B,EAAI,CAAC,IAAM;AAAA,KACtDL,GAAOK,EAAIU,EAAUpC,EAAO,MAAMoC,EAASV,EAAI,CAAC,EAAIC,EAC5D,MAEIN,GAAOM,CAEf,CACA,OAAI3B,EAAOA,EAAO,OAAS,CAAC,IAAM,KAAOA,EAAO,SAAW,IACvDH,EAAQG,EAAO,OAAQ,eAAgB,wBAAwB,EAC5DqB,CACX,CAKA,SAASQ,GAAY7B,EAAQF,EAAQ,CACjC,IAAI8B,EAAO,GACPD,EAAK3B,EAAOF,EAAS,CAAC,EAC1B,MAAO6B,IAAO,KAAOA,IAAO,KAAQA,IAAO;AAAA,GAAQA,IAAO,OAClD,EAAAA,IAAO,MAAQ3B,EAAOF,EAAS,CAAC,IAAM;AAAA,IAEtC6B,IAAO;AAAA,IACPC,GAAQ;AAAA,GACZ9B,GAAU,EACV6B,EAAK3B,EAAOF,EAAS,CAAC,EAE1B,OAAK8B,IACDA,EAAO,KACJ,CAAE,KAAAA,EAAM,OAAA9B,CAAO,CAC1B,CACA,IAAMkC,GAAc,CAChB,EAAK,KACL,EAAG,OACH,EAAG,KACH,EAAG,OACH,EAAG,KACH,EAAG;AAAA,EACH,EAAG,KACH,EAAG,IACH,EAAG,KACH,EAAG,OACH,EAAG,OACH,EAAG,SACH,EAAG,SACH,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,KACN,IAAM,GACV,EACA,SAASE,GAAclC,EAAQF,EAAQmC,EAAQpC,EAAS,CACpD,IAAMkC,EAAK/B,EAAO,OAAOF,EAAQmC,CAAM,EAEjC3B,EADKyB,EAAG,SAAWE,GAAU,iBAAiB,KAAKF,CAAE,EACzC,SAASA,EAAI,EAAE,EAAI,IACrC,GAAI,CACA,OAAO,OAAO,cAAczB,CAAI,CACpC,MACM,CACF,IAAM6B,EAAMnC,EAAO,OAAOF,EAAS,EAAGmC,EAAS,CAAC,EAChD,OAAApC,EAAQC,EAAS,EAAG,gBAAiB,2BAA2BqC,CAAG,EAAE,EAC9DA,CACX,CACJ,CC1NA,SAASE,GAAcC,EAAKC,EAAOC,EAAUC,EAAS,CAClD,GAAM,CAAE,MAAAC,EAAO,KAAAC,EAAM,QAAAC,EAAS,MAAAC,CAAM,EAAIN,EAAM,OAAS,eACjDO,GAAmBR,EAAKC,EAAOE,CAAO,EACtCM,GAAkBR,EAAOD,EAAI,QAAQ,OAAQG,CAAO,EACpDO,EAAUR,EACVF,EAAI,WAAW,QAAQE,EAAS,OAAQS,GAAOR,EAAQD,EAAU,qBAAsBS,CAAG,CAAC,EAC3F,KACFC,EACAZ,EAAI,QAAQ,YAAcA,EAAI,MAC9BY,EAAMZ,EAAI,OAAOa,EAAM,EAElBH,EACLE,EAAME,GAAoBd,EAAI,OAAQI,EAAOM,EAASR,EAAUC,CAAO,EAClEF,EAAM,OAAS,SACpBW,EAAMG,GAAoBf,EAAKI,EAAOH,EAAOE,CAAO,EAEpDS,EAAMZ,EAAI,OAAOa,EAAM,EAC3B,IAAIG,EACJ,GAAI,CACA,IAAMC,EAAML,EAAI,QAAQR,EAAOO,GAAOR,EAAQD,GAAYD,EAAO,qBAAsBU,CAAG,EAAGX,EAAI,OAAO,EACxGgB,EAASE,EAASD,CAAG,EAAIA,EAAM,IAAIE,EAAOF,CAAG,CACjD,OACOG,EAAO,CACV,IAAMT,EAAMS,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,EACjEjB,EAAQD,GAAYD,EAAO,qBAAsBU,CAAG,EACpDK,EAAS,IAAIG,EAAOf,CAAK,CAC7B,CACA,OAAAY,EAAO,MAAQT,EACfS,EAAO,OAASZ,EACZC,IACAW,EAAO,KAAOX,GACdK,IACAM,EAAO,IAAMN,GACbE,EAAI,SACJI,EAAO,OAASJ,EAAI,QACpBN,IACAU,EAAO,QAAUV,GACdU,CACX,CACA,SAASF,GAAoBO,EAAQjB,EAAOM,EAASR,EAAUC,EAAS,CACpE,GAAIO,IAAY,IACZ,OAAOW,EAAOR,EAAM,EACxB,IAAMS,EAAgB,CAAC,EACvB,QAAWV,KAAOS,EAAO,KACrB,GAAI,CAACT,EAAI,YAAcA,EAAI,MAAQF,EAC/B,GAAIE,EAAI,SAAWA,EAAI,KACnBU,EAAc,KAAKV,CAAG,MAEtB,QAAOA,EAGnB,QAAWA,KAAOU,EACd,GAAIV,EAAI,MAAM,KAAKR,CAAK,EACpB,OAAOQ,EACf,IAAMW,EAAKF,EAAO,UAAUX,CAAO,EACnC,OAAIa,GAAM,CAACA,EAAG,YAGVF,EAAO,KAAK,KAAK,OAAO,OAAO,CAAC,EAAGE,EAAI,CAAE,QAAS,GAAO,KAAM,MAAU,CAAC,CAAC,EACpEA,IAEXpB,EAAQD,EAAU,qBAAsB,mBAAmBQ,CAAO,GAAIA,IAAY,uBAAuB,EAClGW,EAAOR,EAAM,EACxB,CACA,SAASE,GAAoB,CAAE,MAAAS,EAAO,WAAAC,EAAY,OAAAJ,CAAO,EAAGjB,EAAOH,EAAOE,EAAS,CAC/E,IAAMS,EAAMS,EAAO,KAAK,KAAKT,IAAQA,EAAI,UAAY,IAASY,GAASZ,EAAI,UAAY,QACnFA,EAAI,MAAM,KAAKR,CAAK,CAAC,GAAKiB,EAAOR,EAAM,EAC3C,GAAIQ,EAAO,OAAQ,CACf,IAAMK,EAASL,EAAO,OAAO,KAAKT,GAAOA,EAAI,SAAWA,EAAI,MAAM,KAAKR,CAAK,CAAC,GACzEiB,EAAOR,EAAM,EACjB,GAAID,EAAI,MAAQc,EAAO,IAAK,CACxB,IAAMC,EAAKF,EAAW,UAAUb,EAAI,GAAG,EACjCgB,EAAKH,EAAW,UAAUC,EAAO,GAAG,EACpCf,EAAM,iCAAiCgB,CAAE,OAAOC,CAAE,GACxDzB,EAAQF,EAAO,qBAAsBU,EAAK,EAAI,CAClD,CACJ,CACA,OAAOC,CACX,CCnFA,SAASiB,GAAoBC,EAAQC,EAAQC,EAAK,CAC9C,GAAID,EAAQ,CACRC,IAAQA,EAAMD,EAAO,QACrB,QAASE,EAAID,EAAM,EAAGC,GAAK,EAAG,EAAEA,EAAG,CAC/B,IAAIC,EAAKH,EAAOE,CAAC,EACjB,OAAQC,EAAG,KAAM,CACb,IAAK,QACL,IAAK,UACL,IAAK,UACDJ,GAAUI,EAAG,OAAO,OACpB,QACR,CAIA,IADAA,EAAKH,EAAO,EAAEE,CAAC,EACRC,GAAI,OAAS,SAChBJ,GAAUI,EAAG,OAAO,OACpBA,EAAKH,EAAO,EAAEE,CAAC,EAEnB,KACJ,CACJ,CACA,OAAOH,CACX,CChBA,IAAMK,GAAK,CAAE,YAAAC,GAAa,iBAAAC,EAAiB,EAC3C,SAASD,GAAYE,EAAKC,EAAOC,EAAOC,EAAS,CAC7C,IAAMC,EAAQJ,EAAI,MACZ,CAAE,YAAAK,EAAa,QAAAC,EAAS,OAAAC,EAAQ,IAAAC,CAAI,EAAIN,EAC1CO,EACAC,EAAa,GACjB,OAAQT,EAAM,KAAM,CAChB,IAAK,QACDQ,EAAOE,GAAaX,EAAKC,EAAOE,CAAO,GACnCI,GAAUC,IACVL,EAAQF,EAAO,cAAe,+CAA+C,EACjF,MACJ,IAAK,SACL,IAAK,uBACL,IAAK,uBACL,IAAK,eACDQ,EAAOG,GAAcZ,EAAKC,EAAOO,EAAKL,CAAO,EACzCI,IACAE,EAAK,OAASF,EAAO,OAAO,UAAU,CAAC,GAC3C,MACJ,IAAK,YACL,IAAK,YACL,IAAK,kBACD,GAAI,CACAE,EAAOI,GAAkBhB,GAAIG,EAAKC,EAAOC,EAAOC,CAAO,EACnDI,IACAE,EAAK,OAASF,EAAO,OAAO,UAAU,CAAC,EAC/C,OACOO,EAAO,CAEV,IAAMC,EAAUD,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,EACrEX,EAAQF,EAAO,sBAAuBc,CAAO,CACjD,CACA,MACJ,QAAS,CACL,IAAMA,EAAUd,EAAM,OAAS,QACzBA,EAAM,QACN,4BAA4BA,EAAM,IAAI,IAC5CE,EAAQF,EAAO,mBAAoBc,CAAO,EAC1CL,EAAa,EACjB,CACJ,CACA,OAAAD,IAASA,EAAOV,GAAiBC,EAAKC,EAAM,OAAQ,OAAW,KAAMC,EAAOC,CAAO,GAC/EI,GAAUE,EAAK,SAAW,IAC1BN,EAAQI,EAAQ,YAAa,kCAAkC,EAC/DH,GACAJ,EAAI,QAAQ,aACX,CAACgB,EAASP,CAAI,GACX,OAAOA,EAAK,OAAU,UACrBA,EAAK,KAAOA,EAAK,MAAQ,0BAE9BN,EAAQK,GAAOP,EAAO,iBADV,2CAC+B,EAE3CI,IACAI,EAAK,YAAc,IACnBH,IACIL,EAAM,OAAS,UAAYA,EAAM,SAAW,GAC5CQ,EAAK,QAAUH,EAEfG,EAAK,cAAgBH,GAGzBN,EAAI,QAAQ,kBAAoBU,IAChCD,EAAK,SAAWR,GACbQ,CACX,CACA,SAASV,GAAiBC,EAAKiB,EAAQC,EAAQC,EAAK,CAAE,YAAAd,EAAa,QAAAC,EAAS,OAAAC,EAAQ,IAAAC,EAAK,IAAAY,CAAI,EAAGjB,EAAS,CACrG,IAAMF,EAAQ,CACV,KAAM,SACN,OAAQoB,GAAoBJ,EAAQC,EAAQC,CAAG,EAC/C,OAAQ,GACR,OAAQ,EACZ,EACMV,EAAOG,GAAcZ,EAAKC,EAAOO,EAAKL,CAAO,EACnD,OAAII,IACAE,EAAK,OAASF,EAAO,OAAO,UAAU,CAAC,EACnCE,EAAK,SAAW,IAChBN,EAAQI,EAAQ,YAAa,kCAAkC,GAEnEF,IACAI,EAAK,YAAc,IACnBH,IACAG,EAAK,QAAUH,EACfG,EAAK,MAAM,CAAC,EAAIW,GAEbX,CACX,CACA,SAASE,GAAa,CAAE,QAAAW,CAAQ,EAAG,CAAE,OAAAL,EAAQ,OAAAM,EAAQ,IAAAH,CAAI,EAAGjB,EAAS,CACjE,IAAMqB,EAAQ,IAAIC,GAAMF,EAAO,UAAU,CAAC,CAAC,EACvCC,EAAM,SAAW,IACjBrB,EAAQc,EAAQ,YAAa,iCAAiC,EAC9DO,EAAM,OAAO,SAAS,GAAG,GACzBrB,EAAQc,EAASM,EAAO,OAAS,EAAG,YAAa,iCAAkC,EAAI,EAC3F,IAAMG,EAAWT,EAASM,EAAO,OAC3BI,EAAKC,GAAWR,EAAKM,EAAUJ,EAAQ,OAAQnB,CAAO,EAC5D,OAAAqB,EAAM,MAAQ,CAACP,EAAQS,EAAUC,EAAG,MAAM,EACtCA,EAAG,UACHH,EAAM,QAAUG,EAAG,SAChBH,CACX,CCrGA,SAASK,GAAWC,EAASC,EAAY,CAAE,OAAAC,EAAQ,MAAAC,EAAO,MAAAC,EAAO,IAAAC,CAAI,EAAGC,EAAS,CAC7E,IAAMC,EAAO,OAAO,OAAO,CAAE,YAAaN,CAAW,EAAGD,CAAO,EACzDQ,EAAM,IAAIC,GAAS,OAAWF,CAAI,EAClCG,EAAM,CACR,MAAO,GACP,OAAQ,GACR,WAAYF,EAAI,WAChB,QAASA,EAAI,QACb,OAAQA,EAAI,MAChB,EACMG,EAAQC,GAAaT,EAAO,CAC9B,UAAW,YACX,KAAMC,GAASC,IAAM,CAAC,EACtB,OAAAH,EACA,QAAAI,EACA,aAAc,EACd,eAAgB,EACpB,CAAC,EACGK,EAAM,QACNH,EAAI,WAAW,SAAW,GACtBJ,IACCA,EAAM,OAAS,aAAeA,EAAM,OAAS,cAC9C,CAACO,EAAM,YACPL,EAAQK,EAAM,IAAK,eAAgB,uEAAuE,GAGlHH,EAAI,SAAWJ,EACTS,GAAYH,EAAKN,EAAOO,EAAOL,CAAO,EACtCQ,GAAiBJ,EAAKC,EAAM,IAAKR,EAAO,KAAMQ,EAAOL,CAAO,EAClE,IAAMS,EAAaP,EAAI,SAAS,MAAM,CAAC,EACjCQ,EAAKC,GAAWZ,EAAKU,EAAY,GAAOT,CAAO,EACrD,OAAIU,EAAG,UACHR,EAAI,QAAUQ,EAAG,SACrBR,EAAI,MAAQ,CAACN,EAAQa,EAAYC,EAAG,MAAM,EACnCR,CACX,CCjCA,SAASU,GAAYC,EAAK,CACtB,GAAI,OAAOA,GAAQ,SACf,MAAO,CAACA,EAAKA,EAAM,CAAC,EACxB,GAAI,MAAM,QAAQA,CAAG,EACjB,OAAOA,EAAI,SAAW,EAAIA,EAAM,CAACA,EAAI,CAAC,EAAGA,EAAI,CAAC,CAAC,EACnD,GAAM,CAAE,OAAAC,EAAQ,OAAAC,CAAO,EAAIF,EAC3B,MAAO,CAACC,EAAQA,GAAU,OAAOC,GAAW,SAAWA,EAAO,OAAS,EAAE,CAC7E,CACA,SAASC,GAAaC,EAAS,CAC3B,IAAIC,EAAU,GACVC,EAAY,GACZC,EAAiB,GACrB,QAASC,EAAI,EAAGA,EAAIJ,EAAQ,OAAQ,EAAEI,EAAG,CACrC,IAAMN,EAASE,EAAQI,CAAC,EACxB,OAAQN,EAAO,CAAC,EAAG,CACf,IAAK,IACDG,IACKA,IAAY,GAAK,GAAKE,EAAiB;AAAA;AAAA,EAAS;AAAA,IAC5CL,EAAO,UAAU,CAAC,GAAK,KAChCI,EAAY,GACZC,EAAiB,GACjB,MACJ,IAAK,IACGH,EAAQI,EAAI,CAAC,IAAI,CAAC,IAAM,MACxBA,GAAK,GACTF,EAAY,GACZ,MACJ,QAESA,IACDC,EAAiB,IACrBD,EAAY,EACpB,CACJ,CACA,MAAO,CAAE,QAAAD,EAAS,eAAAE,CAAe,CACrC,CAYA,IAAME,GAAN,KAAe,CACX,YAAYC,EAAU,CAAC,EAAG,CACtB,KAAK,IAAM,KACX,KAAK,aAAe,GACpB,KAAK,QAAU,CAAC,EAChB,KAAK,OAAS,CAAC,EACf,KAAK,SAAW,CAAC,EACjB,KAAK,QAAU,CAACR,EAAQS,EAAMC,EAASC,IAAY,CAC/C,IAAMC,EAAMf,GAAYG,CAAM,EAC1BW,EACA,KAAK,SAAS,KAAK,IAAIE,GAAYD,EAAKH,EAAMC,CAAO,CAAC,EAEtD,KAAK,OAAO,KAAK,IAAII,GAAeF,EAAKH,EAAMC,CAAO,CAAC,CAC/D,EAEA,KAAK,WAAa,IAAIK,GAAW,CAAE,QAASP,EAAQ,SAAW,KAAM,CAAC,EACtE,KAAK,QAAUA,CACnB,CACA,SAASQ,EAAKC,EAAU,CACpB,GAAM,CAAE,QAAAd,EAAS,eAAAE,CAAe,EAAIJ,GAAa,KAAK,OAAO,EAE7D,GAAIE,EAAS,CACT,IAAMe,EAAKF,EAAI,SACf,GAAIC,EACAD,EAAI,QAAUA,EAAI,QAAU,GAAGA,EAAI,OAAO;AAAA,EAAKb,CAAO,GAAKA,UAEtDE,GAAkBW,EAAI,WAAW,UAAY,CAACE,EACnDF,EAAI,cAAgBb,UAEfgB,GAAaD,CAAE,GAAK,CAACA,EAAG,MAAQA,EAAG,MAAM,OAAS,EAAG,CAC1D,IAAIE,EAAKF,EAAG,MAAM,CAAC,EACfG,EAAOD,CAAE,IACTA,EAAKA,EAAG,KACZ,IAAME,EAAKF,EAAG,cACdA,EAAG,cAAgBE,EAAK,GAAGnB,CAAO;AAAA,EAAKmB,CAAE,GAAKnB,CAClD,KACK,CACD,IAAMmB,EAAKJ,EAAG,cACdA,EAAG,cAAgBI,EAAK,GAAGnB,CAAO;AAAA,EAAKmB,CAAE,GAAKnB,CAClD,CACJ,CACA,GAAIc,EAAU,CACV,QAAS,EAAI,EAAG,EAAI,KAAK,OAAO,OAAQ,EAAE,EACtCD,EAAI,OAAO,KAAK,KAAK,OAAO,CAAC,CAAC,EAClC,QAAS,EAAI,EAAG,EAAI,KAAK,SAAS,OAAQ,EAAE,EACxCA,EAAI,SAAS,KAAK,KAAK,SAAS,CAAC,CAAC,CAC1C,MAEIA,EAAI,OAAS,KAAK,OAClBA,EAAI,SAAW,KAAK,SAExB,KAAK,QAAU,CAAC,EAChB,KAAK,OAAS,CAAC,EACf,KAAK,SAAW,CAAC,CACrB,CAMA,YAAa,CACT,MAAO,CACH,QAASf,GAAa,KAAK,OAAO,EAAE,QACpC,WAAY,KAAK,WACjB,OAAQ,KAAK,OACb,SAAU,KAAK,QACnB,CACJ,CAOA,CAAC,QAAQsB,EAAQC,EAAW,GAAOC,EAAY,GAAI,CAC/C,QAAWC,KAASH,EAChB,MAAO,KAAK,KAAKG,CAAK,EAC1B,MAAO,KAAK,IAAIF,EAAUC,CAAS,CACvC,CAEA,CAAC,KAAKC,EAAO,CACT,OAAQA,EAAM,KAAM,CAChB,IAAK,YACD,KAAK,WAAW,IAAIA,EAAM,OAAQ,CAAC3B,EAAQW,EAASC,IAAY,CAC5D,IAAMC,EAAMf,GAAY6B,CAAK,EAC7Bd,EAAI,CAAC,GAAKb,EACV,KAAK,QAAQa,EAAK,gBAAiBF,EAASC,CAAO,CACvD,CAAC,EACD,KAAK,QAAQ,KAAKe,EAAM,MAAM,EAC9B,KAAK,aAAe,GACpB,MACJ,IAAK,WAAY,CACb,IAAMV,EAAMW,GAAW,KAAK,QAAS,KAAK,WAAYD,EAAO,KAAK,OAAO,EACrE,KAAK,cAAgB,CAACV,EAAI,WAAW,UACrC,KAAK,QAAQU,EAAO,eAAgB,iDAAiD,EACzF,KAAK,SAASV,EAAK,EAAK,EACpB,KAAK,MACL,MAAM,KAAK,KACf,KAAK,IAAMA,EACX,KAAK,aAAe,GACpB,KACJ,CACA,IAAK,kBACL,IAAK,QACD,MACJ,IAAK,UACL,IAAK,UACD,KAAK,QAAQ,KAAKU,EAAM,MAAM,EAC9B,MACJ,IAAK,QAAS,CACV,IAAME,EAAMF,EAAM,OACZ,GAAGA,EAAM,OAAO,KAAK,KAAK,UAAUA,EAAM,MAAM,CAAC,GACjDA,EAAM,QACNG,EAAQ,IAAIf,GAAejB,GAAY6B,CAAK,EAAG,mBAAoBE,CAAG,EACxE,KAAK,cAAgB,CAAC,KAAK,IAC3B,KAAK,OAAO,KAAKC,CAAK,EAEtB,KAAK,IAAI,OAAO,KAAKA,CAAK,EAC9B,KACJ,CACA,IAAK,UAAW,CACZ,GAAI,CAAC,KAAK,IAAK,CACX,IAAMD,EAAM,gDACZ,KAAK,OAAO,KAAK,IAAId,GAAejB,GAAY6B,CAAK,EAAG,mBAAoBE,CAAG,CAAC,EAChF,KACJ,CACA,KAAK,IAAI,WAAW,OAAS,GAC7B,IAAME,EAAMC,GAAWL,EAAM,IAAKA,EAAM,OAASA,EAAM,OAAO,OAAQ,KAAK,IAAI,QAAQ,OAAQ,KAAK,OAAO,EAE3G,GADA,KAAK,SAAS,KAAK,IAAK,EAAI,EACxBI,EAAI,QAAS,CACb,IAAMZ,EAAK,KAAK,IAAI,QACpB,KAAK,IAAI,QAAUA,EAAK,GAAGA,CAAE;AAAA,EAAKY,EAAI,OAAO,GAAKA,EAAI,OAC1D,CACA,KAAK,IAAI,MAAM,CAAC,EAAIA,EAAI,OACxB,KACJ,CACA,QACI,KAAK,OAAO,KAAK,IAAIhB,GAAejB,GAAY6B,CAAK,EAAG,mBAAoB,qBAAqBA,EAAM,IAAI,EAAE,CAAC,CACtH,CACJ,CAOA,CAAC,IAAIF,EAAW,GAAOC,EAAY,GAAI,CACnC,GAAI,KAAK,IACL,KAAK,SAAS,KAAK,IAAK,EAAI,EAC5B,MAAM,KAAK,IACX,KAAK,IAAM,aAEND,EAAU,CACf,IAAMQ,EAAO,OAAO,OAAO,CAAE,YAAa,KAAK,UAAW,EAAG,KAAK,OAAO,EACnEhB,EAAM,IAAIiB,GAAS,OAAWD,CAAI,EACpC,KAAK,cACL,KAAK,QAAQP,EAAW,eAAgB,uCAAuC,EACnFT,EAAI,MAAQ,CAAC,EAAGS,EAAWA,CAAS,EACpC,KAAK,SAAST,EAAK,EAAK,EACxB,MAAMA,CACV,CACJ,CACJ,ECxNA,IAAMkB,GAAQ,OAAO,aAAa,EAC5BC,GAAO,OAAO,eAAe,EAC7BC,GAAS,OAAO,aAAa,EA6BnC,SAASC,GAAMC,EAAKC,EAAS,CACrB,SAAUD,GAAOA,EAAI,OAAS,aAC9BA,EAAM,CAAE,MAAOA,EAAI,MAAO,MAAOA,EAAI,KAAM,GAC/CE,GAAO,OAAO,OAAO,CAAC,CAAC,EAAGF,EAAKC,CAAO,CAC1C,CAKAF,GAAM,MAAQH,GAEdG,GAAM,KAAOF,GAEbE,GAAM,OAASD,GAEfC,GAAM,WAAa,CAACC,EAAKG,IAAS,CAC9B,IAAIC,EAAOJ,EACX,OAAW,CAACK,EAAOC,CAAK,IAAKH,EAAM,CAC/B,IAAMI,EAAMH,IAAOC,CAAK,EACxB,GAAIE,GAAO,UAAWA,EAClBH,EAAOG,EAAI,MAAMD,CAAK,MAGtB,OACR,CACA,OAAOF,CACX,EAMAL,GAAM,iBAAmB,CAACC,EAAKG,IAAS,CACpC,IAAMK,EAAST,GAAM,WAAWC,EAAKG,EAAK,MAAM,EAAG,EAAE,CAAC,EAChDE,EAAQF,EAAKA,EAAK,OAAS,CAAC,EAAE,CAAC,EAC/BM,EAAOD,IAASH,CAAK,EAC3B,GAAII,GAAQ,UAAWA,EACnB,OAAOA,EACX,MAAM,IAAI,MAAM,6BAA6B,CACjD,EACA,SAASP,GAAOC,EAAMC,EAAMH,EAAS,CACjC,IAAIS,EAAOT,EAAQG,EAAMD,CAAI,EAC7B,GAAI,OAAOO,GAAS,SAChB,OAAOA,EACX,QAAWL,IAAS,CAAC,MAAO,OAAO,EAAG,CAClC,IAAMM,EAAQP,EAAKC,CAAK,EACxB,GAAIM,GAAS,UAAWA,EAAO,CAC3B,QAASC,EAAI,EAAGA,EAAID,EAAM,MAAM,OAAQ,EAAEC,EAAG,CACzC,IAAMC,EAAKX,GAAO,OAAO,OAAOC,EAAK,OAAO,CAAC,CAACE,EAAOO,CAAC,CAAC,CAAC,CAAC,EAAGD,EAAM,MAAMC,CAAC,EAAGX,CAAO,EACnF,GAAI,OAAOY,GAAO,SACdD,EAAIC,EAAK,MACR,IAAIA,IAAOjB,GACZ,OAAOA,GACFiB,IAAOf,KACZa,EAAM,MAAM,OAAOC,EAAG,CAAC,EACvBA,GAAK,GAEb,CACI,OAAOF,GAAS,YAAcL,IAAU,QACxCK,EAAOA,EAAKN,EAAMD,CAAI,EAC9B,CACJ,CACA,OAAO,OAAOO,GAAS,WAAaA,EAAKN,EAAMD,CAAI,EAAIO,CAC3D,CCzFA,IAAMI,GAAM,SAENC,GAAW,IAEXC,GAAW,IAEXC,GAAS,IA0Bf,SAASC,GAAUC,EAAQ,CACvB,OAAQA,EAAQ,CACZ,KAAKC,GACD,MAAO,kBACX,KAAKC,GACD,MAAO,WACX,KAAKC,GACD,MAAO,iBACX,KAAKC,GACD,MAAO,SACX,IAAK,MACD,MAAO,YACX,IAAK,MACD,MAAO,UACX,IAAK,GACL,IAAK;AAAA,EACL,IAAK;AAAA,EACD,MAAO,UACX,IAAK,IACD,MAAO,eACX,IAAK,IACD,MAAO,mBACX,IAAK,IACD,MAAO,gBACX,IAAK,IACD,MAAO,iBACX,IAAK,IACD,MAAO,eACX,IAAK,IACD,MAAO,iBACX,IAAK,IACD,MAAO,eACX,IAAK,IACD,MAAO,OACf,CACA,OAAQJ,EAAO,CAAC,EAAG,CACf,IAAK,IACL,IAAK,IACD,MAAO,QACX,IAAK,IACD,MAAO,UACX,IAAK,IACD,MAAO,iBACX,IAAK,IACD,MAAO,QACX,IAAK,IACD,MAAO,SACX,IAAK,IACD,MAAO,MACX,IAAK,IACD,MAAO,uBACX,IAAK,IACD,MAAO,uBACX,IAAK,IACL,IAAK,IACD,MAAO,qBACf,CACA,OAAO,IACX,CC1BA,SAASK,GAAQC,EAAI,CACjB,OAAQA,EAAI,CACR,KAAK,OACL,IAAK,IACL,IAAK;AAAA,EACL,IAAK,KACL,IAAK,IACD,MAAO,GACX,QACI,MAAO,EACf,CACJ,CACA,IAAMC,GAAY,IAAI,IAAI,wBAAwB,EAC5CC,GAAW,IAAI,IAAI,mFAAmF,EACtGC,GAAqB,IAAI,IAAI,OAAO,EACpCC,GAAqB,IAAI,IAAI;AAAA,IAAc,EAC3CC,GAAmBL,GAAO,CAACA,GAAMI,GAAmB,IAAIJ,CAAE,EAgB1DM,GAAN,KAAY,CACR,aAAc,CAKV,KAAK,MAAQ,GAMb,KAAK,kBAAoB,GAMzB,KAAK,gBAAkB,GAEvB,KAAK,OAAS,GAKd,KAAK,QAAU,GAEf,KAAK,UAAY,EAKjB,KAAK,WAAa,EAElB,KAAK,YAAc,EAEnB,KAAK,WAAa,KAElB,KAAK,KAAO,KAEZ,KAAK,IAAM,CACf,CAOA,CAAC,IAAIC,EAAQC,EAAa,GAAO,CAC7B,GAAID,EAAQ,CACR,GAAI,OAAOA,GAAW,SAClB,MAAM,UAAU,wBAAwB,EAC5C,KAAK,OAAS,KAAK,OAAS,KAAK,OAASA,EAASA,EACnD,KAAK,WAAa,IACtB,CACA,KAAK,MAAQ,CAACC,EACd,IAAIC,EAAO,KAAK,MAAQ,SACxB,KAAOA,IAASD,GAAc,KAAK,SAAS,CAAC,IACzCC,EAAO,MAAO,KAAK,UAAUA,CAAI,CACzC,CACA,WAAY,CACR,IAAIC,EAAI,KAAK,IACTV,EAAK,KAAK,OAAOU,CAAC,EACtB,KAAOV,IAAO,KAAOA,IAAO,KACxBA,EAAK,KAAK,OAAO,EAAEU,CAAC,EACxB,MAAI,CAACV,GAAMA,IAAO,KAAOA,IAAO;AAAA,EACrB,GACPA,IAAO,KACA,KAAK,OAAOU,EAAI,CAAC,IAAM;AAAA,EAC3B,EACX,CACA,OAAOC,EAAG,CACN,OAAO,KAAK,OAAO,KAAK,IAAMA,CAAC,CACnC,CACA,eAAeC,EAAQ,CACnB,IAAIZ,EAAK,KAAK,OAAOY,CAAM,EAC3B,GAAI,KAAK,WAAa,EAAG,CACrB,IAAIC,EAAS,EACb,KAAOb,IAAO,KACVA,EAAK,KAAK,OAAO,EAAEa,EAASD,CAAM,EACtC,GAAIZ,IAAO,KAAM,CACb,IAAMS,EAAO,KAAK,OAAOI,EAASD,EAAS,CAAC,EAC5C,GAAIH,IAAS;AAAA,GAAS,CAACA,GAAQ,CAAC,KAAK,MACjC,OAAOG,EAASC,EAAS,CACjC,CACA,OAAOb,IAAO;AAAA,GAAQa,GAAU,KAAK,YAAe,CAACb,GAAM,CAAC,KAAK,MAC3DY,EAASC,EACT,EACV,CACA,GAAIb,IAAO,KAAOA,IAAO,IAAK,CAC1B,IAAMc,EAAK,KAAK,OAAO,OAAOF,EAAQ,CAAC,EACvC,IAAKE,IAAO,OAASA,IAAO,QAAUf,GAAQ,KAAK,OAAOa,EAAS,CAAC,CAAC,EACjE,MAAO,EACf,CACA,OAAOA,CACX,CACA,SAAU,CACN,IAAIG,EAAM,KAAK,WAKf,OAJI,OAAOA,GAAQ,UAAaA,IAAQ,IAAMA,EAAM,KAAK,OACrDA,EAAM,KAAK,OAAO,QAAQ;AAAA,EAAM,KAAK,GAAG,EACxC,KAAK,WAAaA,GAElBA,IAAQ,GACD,KAAK,MAAQ,KAAK,OAAO,UAAU,KAAK,GAAG,EAAI,MACtD,KAAK,OAAOA,EAAM,CAAC,IAAM,OACzBA,GAAO,GACJ,KAAK,OAAO,UAAU,KAAK,IAAKA,CAAG,EAC9C,CACA,SAASJ,EAAG,CACR,OAAO,KAAK,IAAMA,GAAK,KAAK,OAAO,MACvC,CACA,QAAQK,EAAO,CACX,YAAK,OAAS,KAAK,OAAO,UAAU,KAAK,GAAG,EAC5C,KAAK,IAAM,EACX,KAAK,WAAa,KAClB,KAAK,KAAOA,EACL,IACX,CACA,KAAKL,EAAG,CACJ,OAAO,KAAK,OAAO,OAAO,KAAK,IAAKA,CAAC,CACzC,CACA,CAAC,UAAUF,EAAM,CACb,OAAQA,EAAM,CACV,IAAK,SACD,OAAO,MAAO,KAAK,YAAY,EACnC,IAAK,aACD,OAAO,MAAO,KAAK,eAAe,EACtC,IAAK,cACD,OAAO,MAAO,KAAK,gBAAgB,EACvC,IAAK,MACD,OAAO,MAAO,KAAK,cAAc,EACrC,IAAK,OACD,OAAO,MAAO,KAAK,oBAAoB,EAC3C,IAAK,gBACD,OAAO,MAAO,KAAK,kBAAkB,EACzC,IAAK,eACD,OAAO,MAAO,KAAK,iBAAiB,EACxC,IAAK,eACD,OAAO,MAAO,KAAK,iBAAiB,CAC5C,CACJ,CACA,CAAC,aAAc,CACX,IAAIQ,EAAO,KAAK,QAAQ,EACxB,GAAIA,IAAS,KACT,OAAO,KAAK,QAAQ,QAAQ,EAKhC,GAJIA,EAAK,CAAC,IAAMC,KACZ,MAAO,KAAK,UAAU,CAAC,EACvBD,EAAOA,EAAK,UAAU,CAAC,GAEvBA,EAAK,CAAC,IAAM,IAAK,CACjB,IAAIE,EAASF,EAAK,OACdG,EAAKH,EAAK,QAAQ,GAAG,EACzB,KAAOG,IAAO,IAAI,CACd,IAAMpB,EAAKiB,EAAKG,EAAK,CAAC,EACtB,GAAIpB,IAAO,KAAOA,IAAO,IAAM,CAC3BmB,EAASC,EAAK,EACd,KACJ,MAEIA,EAAKH,EAAK,QAAQ,IAAKG,EAAK,CAAC,CAErC,CACA,OAAa,CACT,IAAMpB,EAAKiB,EAAKE,EAAS,CAAC,EAC1B,GAAInB,IAAO,KAAOA,IAAO,IACrBmB,GAAU,MAEV,MACR,CACA,IAAMR,GAAK,MAAO,KAAK,UAAUQ,CAAM,IAAM,MAAO,KAAK,WAAW,EAAI,GACxE,aAAO,KAAK,UAAUF,EAAK,OAASN,CAAC,EACrC,KAAK,YAAY,EACV,QACX,CACA,GAAI,KAAK,UAAU,EAAG,CAClB,IAAMU,EAAK,MAAO,KAAK,WAAW,EAAI,EACtC,aAAO,KAAK,UAAUJ,EAAK,OAASI,CAAE,EACtC,MAAO,KAAK,YAAY,EACjB,QACX,CACA,aAAMC,GACC,MAAO,KAAK,eAAe,CACtC,CACA,CAAC,gBAAiB,CACd,IAAMtB,EAAK,KAAK,OAAO,CAAC,EACxB,GAAI,CAACA,GAAM,CAAC,KAAK,MACb,OAAO,KAAK,QAAQ,YAAY,EACpC,GAAIA,IAAO,KAAOA,IAAO,IAAK,CAC1B,GAAI,CAAC,KAAK,OAAS,CAAC,KAAK,SAAS,CAAC,EAC/B,OAAO,KAAK,QAAQ,YAAY,EACpC,IAAMuB,EAAI,KAAK,KAAK,CAAC,EACrB,IAAKA,IAAM,OAASA,IAAM,QAAUxB,GAAQ,KAAK,OAAO,CAAC,CAAC,EACtD,aAAO,KAAK,UAAU,CAAC,EACvB,KAAK,YAAc,EACnB,KAAK,WAAa,EACXwB,IAAM,MAAQ,MAAQ,QAErC,CACA,YAAK,YAAc,MAAO,KAAK,WAAW,EAAK,EAC3C,KAAK,WAAa,KAAK,aAAe,CAACxB,GAAQ,KAAK,OAAO,CAAC,CAAC,IAC7D,KAAK,WAAa,KAAK,aACpB,MAAO,KAAK,gBAAgB,CACvC,CACA,CAAC,iBAAkB,CACf,GAAM,CAACyB,EAAKC,CAAG,EAAI,KAAK,KAAK,CAAC,EAC9B,GAAI,CAACA,GAAO,CAAC,KAAK,MACd,OAAO,KAAK,QAAQ,aAAa,EACrC,IAAKD,IAAQ,KAAOA,IAAQ,KAAOA,IAAQ,MAAQzB,GAAQ0B,CAAG,EAAG,CAC7D,IAAMd,GAAK,MAAO,KAAK,UAAU,CAAC,IAAM,MAAO,KAAK,WAAW,EAAI,GACnE,YAAK,WAAa,KAAK,YAAc,EACrC,KAAK,aAAeA,EACb,aACX,CACA,MAAO,KACX,CACA,CAAC,eAAgB,CACb,MAAO,KAAK,WAAW,EAAI,EAC3B,IAAMM,EAAO,KAAK,QAAQ,EAC1B,GAAIA,IAAS,KACT,OAAO,KAAK,QAAQ,KAAK,EAC7B,IAAI,EAAI,MAAO,KAAK,eAAe,EACnC,OAAQA,EAAK,CAAC,EAAG,CACb,IAAK,IACD,MAAO,KAAK,UAAUA,EAAK,OAAS,CAAC,EAEzC,KAAK,OACD,aAAO,KAAK,YAAY,EACjB,MAAO,KAAK,eAAe,EACtC,IAAK,IACL,IAAK,IACD,aAAO,KAAK,UAAU,CAAC,EACvB,KAAK,QAAU,GACf,KAAK,UAAY,EACV,OACX,IAAK,IACL,IAAK,IAED,aAAO,KAAK,UAAU,CAAC,EAChB,MACX,IAAK,IACD,aAAO,KAAK,UAAUZ,EAAe,EAC9B,MACX,IAAK,IACL,IAAK,IACD,OAAO,MAAO,KAAK,kBAAkB,EACzC,IAAK,IACL,IAAK,IACD,UAAK,MAAO,KAAK,uBAAuB,EACxC,GAAK,MAAO,KAAK,WAAW,EAAI,EAChC,MAAO,KAAK,UAAUY,EAAK,OAAS,CAAC,EACrC,MAAO,KAAK,YAAY,EACjB,MAAO,KAAK,iBAAiB,EACxC,QACI,OAAO,MAAO,KAAK,iBAAiB,CAC5C,CACJ,CACA,CAAC,qBAAsB,CACnB,IAAIS,EAAIL,EACJR,EAAS,GACb,GACIa,EAAK,MAAO,KAAK,YAAY,EACzBA,EAAK,GACLL,EAAK,MAAO,KAAK,WAAW,EAAK,EACjC,KAAK,YAAcR,EAASQ,GAG5BA,EAAK,EAETA,GAAM,MAAO,KAAK,WAAW,EAAI,QAC5BK,EAAKL,EAAK,GACnB,IAAMJ,EAAO,KAAK,QAAQ,EAC1B,GAAIA,IAAS,KACT,OAAO,KAAK,QAAQ,MAAM,EAC9B,IAAKJ,IAAW,IAAMA,EAAS,KAAK,YAAcI,EAAK,CAAC,IAAM,KACzDJ,IAAW,IACPI,EAAK,WAAW,KAAK,GAAKA,EAAK,WAAW,KAAK,IAChDlB,GAAQkB,EAAK,CAAC,CAAC,IAOf,EAHoBJ,IAAW,KAAK,WAAa,GACjD,KAAK,YAAc,IAClBI,EAAK,CAAC,IAAM,KAAOA,EAAK,CAAC,IAAM,MAGhC,YAAK,UAAY,EACjB,MAAMU,GACC,MAAO,KAAK,eAAe,EAG1C,IAAIhB,EAAI,EACR,KAAOM,EAAKN,CAAC,IAAM,KACfA,GAAK,MAAO,KAAK,UAAU,CAAC,EAC5BA,GAAK,MAAO,KAAK,WAAW,EAAI,EAChC,KAAK,QAAU,GAGnB,OADAA,GAAK,MAAO,KAAK,eAAe,EACxBM,EAAKN,CAAC,EAAG,CACb,KAAK,OACD,MAAO,OACX,IAAK,IACD,aAAO,KAAK,UAAUM,EAAK,OAASN,CAAC,EAC9B,OACX,IAAK,IACL,IAAK,IACD,aAAO,KAAK,UAAU,CAAC,EACvB,KAAK,QAAU,GACf,KAAK,WAAa,EACX,OACX,IAAK,IACL,IAAK,IACD,aAAO,KAAK,UAAU,CAAC,EACvB,KAAK,QAAU,GACf,KAAK,WAAa,EACX,KAAK,UAAY,OAAS,MACrC,IAAK,IACD,aAAO,KAAK,UAAUN,EAAe,EAC9B,OACX,IAAK,IACL,IAAK,IACD,YAAK,QAAU,GACR,MAAO,KAAK,kBAAkB,EACzC,IAAK,IAAK,CACN,IAAMI,EAAO,KAAK,OAAO,CAAC,EAC1B,GAAI,KAAK,SAAWV,GAAQU,CAAI,GAAKA,IAAS,IAC1C,YAAK,QAAU,GACf,MAAO,KAAK,UAAU,CAAC,EACvB,MAAO,KAAK,WAAW,EAAI,EACpB,MAEf,CAEA,QACI,YAAK,QAAU,GACR,MAAO,KAAK,iBAAiB,CAC5C,CACJ,CACA,CAAC,mBAAoB,CACjB,IAAMmB,EAAQ,KAAK,OAAO,CAAC,EACvBb,EAAM,KAAK,OAAO,QAAQa,EAAO,KAAK,IAAM,CAAC,EACjD,GAAIA,IAAU,IACV,KAAOb,IAAQ,IAAM,KAAK,OAAOA,EAAM,CAAC,IAAM,KAC1CA,EAAM,KAAK,OAAO,QAAQ,IAAKA,EAAM,CAAC,MAI1C,MAAOA,IAAQ,IAAI,CACf,IAAIJ,EAAI,EACR,KAAO,KAAK,OAAOI,EAAM,EAAIJ,CAAC,IAAM,MAChCA,GAAK,EACT,GAAIA,EAAI,IAAM,EACV,MACJI,EAAM,KAAK,OAAO,QAAQ,IAAKA,EAAM,CAAC,CAC1C,CAGJ,IAAMc,EAAK,KAAK,OAAO,UAAU,EAAGd,CAAG,EACnCW,EAAKG,EAAG,QAAQ;AAAA,EAAM,KAAK,GAAG,EAClC,GAAIH,IAAO,GAAI,CACX,KAAOA,IAAO,IAAI,CACd,IAAMN,EAAK,KAAK,eAAeM,EAAK,CAAC,EACrC,GAAIN,IAAO,GACP,MACJM,EAAKG,EAAG,QAAQ;AAAA,EAAMT,CAAE,CAC5B,CACIM,IAAO,KAEPX,EAAMW,GAAMG,EAAGH,EAAK,CAAC,IAAM,KAAO,EAAI,GAE9C,CACA,GAAIX,IAAQ,GAAI,CACZ,GAAI,CAAC,KAAK,MACN,OAAO,KAAK,QAAQ,eAAe,EACvCA,EAAM,KAAK,OAAO,MACtB,CACA,aAAO,KAAK,YAAYA,EAAM,EAAG,EAAK,EAC/B,KAAK,UAAY,OAAS,KACrC,CACA,CAAC,wBAAyB,CACtB,KAAK,kBAAoB,GACzB,KAAK,gBAAkB,GACvB,IAAIL,EAAI,KAAK,IACb,OAAa,CACT,IAAMV,EAAK,KAAK,OAAO,EAAEU,CAAC,EAC1B,GAAIV,IAAO,IACP,KAAK,gBAAkB,WAClBA,EAAK,KAAOA,GAAM,IACvB,KAAK,kBAAoB,OAAOA,CAAE,EAAI,UACjCA,IAAO,IACZ,KACR,CACA,OAAO,MAAO,KAAK,UAAUA,GAAMD,GAAQC,CAAE,GAAKA,IAAO,GAAG,CAChE,CACA,CAAC,kBAAmB,CAChB,IAAI0B,EAAK,KAAK,IAAM,EAChBb,EAAS,EACTb,EACJ8B,EAAM,QAAS,EAAI,KAAK,IAAM9B,EAAK,KAAK,OAAO,CAAC,EAAI,EAAE,EAClD,OAAQA,EAAI,CACR,IAAK,IACDa,GAAU,EACV,MACJ,IAAK;AAAA,EACDa,EAAK,EACLb,EAAS,EACT,MACJ,IAAK,KAAM,CACP,IAAMJ,EAAO,KAAK,OAAO,EAAI,CAAC,EAC9B,GAAI,CAACA,GAAQ,CAAC,KAAK,MACf,OAAO,KAAK,QAAQ,cAAc,EACtC,GAAIA,IAAS;AAAA,EACT,KACR,CACA,QACI,MAAMqB,CACd,CAEJ,GAAI,CAAC9B,GAAM,CAAC,KAAK,MACb,OAAO,KAAK,QAAQ,cAAc,EACtC,GAAIa,GAAU,KAAK,WAAY,CACvB,KAAK,oBAAsB,GAC3B,KAAK,WAAaA,EAElB,KAAK,WACD,KAAK,mBAAqB,KAAK,aAAe,EAAI,EAAI,KAAK,YAEnE,EAAG,CACC,IAAMO,EAAK,KAAK,eAAeM,EAAK,CAAC,EACrC,GAAIN,IAAO,GACP,MACJM,EAAK,KAAK,OAAO,QAAQ;AAAA,EAAMN,CAAE,CACrC,OAASM,IAAO,IAChB,GAAIA,IAAO,GAAI,CACX,GAAI,CAAC,KAAK,MACN,OAAO,KAAK,QAAQ,cAAc,EACtCA,EAAK,KAAK,OAAO,MACrB,CACJ,CAGA,IAAIhB,EAAIgB,EAAK,EAEb,IADA1B,EAAK,KAAK,OAAOU,CAAC,EACXV,IAAO,KACVA,EAAK,KAAK,OAAO,EAAEU,CAAC,EACxB,GAAIV,IAAO,IAAM,CACb,KAAOA,IAAO,KAAQA,IAAO,KAAOA,IAAO,MAAQA,IAAO;AAAA,GACtDA,EAAK,KAAK,OAAO,EAAEU,CAAC,EACxBgB,EAAKhB,EAAI,CACb,SACS,CAAC,KAAK,gBACX,EAAG,CACC,IAAI,EAAIgB,EAAK,EACT1B,EAAK,KAAK,OAAO,CAAC,EAClBA,IAAO,OACPA,EAAK,KAAK,OAAO,EAAE,CAAC,GACxB,IAAM+B,EAAW,EACjB,KAAO/B,IAAO,KACVA,EAAK,KAAK,OAAO,EAAE,CAAC,EACxB,GAAIA,IAAO;AAAA,GAAQ,GAAK,KAAK,KAAO,EAAI,EAAIa,EAASkB,EACjDL,EAAK,MAEL,MACR,OAAS,IAEb,aAAMM,GACN,MAAO,KAAK,YAAYN,EAAK,EAAG,EAAI,EAC7B,MAAO,KAAK,eAAe,CACtC,CACA,CAAC,kBAAmB,CAChB,IAAMO,EAAS,KAAK,UAAY,EAC5BlB,EAAM,KAAK,IAAM,EACjBL,EAAI,KAAK,IAAM,EACfV,EACJ,KAAQA,EAAK,KAAK,OAAO,EAAEU,CAAC,GACxB,GAAIV,IAAO,IAAK,CACZ,IAAMS,EAAO,KAAK,OAAOC,EAAI,CAAC,EAC9B,GAAIX,GAAQU,CAAI,GAAMwB,GAAU9B,GAAmB,IAAIM,CAAI,EACvD,MACJM,EAAML,CACV,SACSX,GAAQC,CAAE,EAAG,CAClB,IAAIS,EAAO,KAAK,OAAOC,EAAI,CAAC,EAU5B,GATIV,IAAO,OACHS,IAAS;AAAA,GACTC,GAAK,EACLV,EAAK;AAAA,EACLS,EAAO,KAAK,OAAOC,EAAI,CAAC,GAGxBK,EAAML,GAEVD,IAAS,KAAQwB,GAAU9B,GAAmB,IAAIM,CAAI,EACtD,MACJ,GAAIT,IAAO;AAAA,EAAM,CACb,IAAMoB,EAAK,KAAK,eAAeV,EAAI,CAAC,EACpC,GAAIU,IAAO,GACP,MACJV,EAAI,KAAK,IAAIA,EAAGU,EAAK,CAAC,CAC1B,CACJ,KACK,CACD,GAAIa,GAAU9B,GAAmB,IAAIH,CAAE,EACnC,MACJe,EAAML,CACV,CAEJ,MAAI,CAACV,GAAM,CAAC,KAAK,MACN,KAAK,QAAQ,cAAc,GACtC,MAAMgC,GACN,MAAO,KAAK,YAAYjB,EAAM,EAAG,EAAI,EAC9BkB,EAAS,OAAS,MAC7B,CACA,CAAC,UAAUtB,EAAG,CACV,OAAIA,EAAI,GACJ,MAAM,KAAK,OAAO,OAAO,KAAK,IAAKA,CAAC,EACpC,KAAK,KAAOA,EACLA,GAEJ,CACX,CACA,CAAC,YAAYD,EAAGwB,EAAY,CACxB,IAAMX,EAAI,KAAK,OAAO,MAAM,KAAK,IAAKb,CAAC,EACvC,OAAIa,GACA,MAAMA,EACN,KAAK,KAAOA,EAAE,OACPA,EAAE,SAEJW,IACL,KAAM,IACH,EACX,CACA,CAAC,gBAAiB,CACd,IAAIvB,EAAI,EACRmB,EAAM,OAAa,CACf,OAAQ,KAAK,OAAO,CAAC,EAAG,CACpB,IAAK,IACDnB,GAAK,MAAO,KAAK,QAAQ,EACzBA,GAAK,MAAO,KAAK,WAAW,EAAI,EAChC,SAASmB,EACb,IAAK,IACDnB,GAAK,MAAO,KAAK,UAAUN,EAAe,EAC1CM,GAAK,MAAO,KAAK,WAAW,EAAI,EAChC,SAASmB,EACb,IAAK,IACL,IAAK,IACL,IAAK,IAAK,CACN,IAAMG,EAAS,KAAK,UAAY,EAC1BR,EAAM,KAAK,OAAO,CAAC,EACzB,GAAI1B,GAAQ0B,CAAG,GAAMQ,GAAU9B,GAAmB,IAAIsB,CAAG,EAAI,CACpDQ,EAEI,KAAK,UACV,KAAK,QAAU,IAFf,KAAK,WAAa,KAAK,YAAc,EAGzCtB,GAAK,MAAO,KAAK,UAAU,CAAC,EAC5BA,GAAK,MAAO,KAAK,WAAW,EAAI,EAChC,SAASmB,CACb,CACJ,CACJ,CACA,MAAMA,CACV,CACA,OAAOnB,CACX,CACA,CAAC,SAAU,CACP,GAAI,KAAK,OAAO,CAAC,IAAM,IAAK,CACxB,IAAID,EAAI,KAAK,IAAM,EACfV,EAAK,KAAK,OAAOU,CAAC,EACtB,KAAO,CAACX,GAAQC,CAAE,GAAKA,IAAO,KAC1BA,EAAK,KAAK,OAAO,EAAEU,CAAC,EACxB,OAAO,MAAO,KAAK,YAAYV,IAAO,IAAMU,EAAI,EAAIA,EAAG,EAAK,CAChE,KACK,CACD,IAAIA,EAAI,KAAK,IAAM,EACfV,EAAK,KAAK,OAAOU,CAAC,EACtB,KAAOV,GACH,GAAIE,GAAS,IAAIF,CAAE,EACfA,EAAK,KAAK,OAAO,EAAEU,CAAC,UACfV,IAAO,KACZC,GAAU,IAAI,KAAK,OAAOS,EAAI,CAAC,CAAC,GAChCT,GAAU,IAAI,KAAK,OAAOS,EAAI,CAAC,CAAC,EAChCV,EAAK,KAAK,OAAQU,GAAK,CAAE,MAGzB,OAER,OAAO,MAAO,KAAK,YAAYA,EAAG,EAAK,CAC3C,CACJ,CACA,CAAC,aAAc,CACX,IAAMV,EAAK,KAAK,OAAO,KAAK,GAAG,EAC/B,OAAIA,IAAO;AAAA,EACA,MAAO,KAAK,UAAU,CAAC,EACzBA,IAAO,MAAQ,KAAK,OAAO,CAAC,IAAM;AAAA,EAChC,MAAO,KAAK,UAAU,CAAC,EAEvB,CACf,CACA,CAAC,WAAWmC,EAAW,CACnB,IAAIzB,EAAI,KAAK,IAAM,EACfV,EACJ,GACIA,EAAK,KAAK,OAAO,EAAEU,CAAC,QACfV,IAAO,KAAQmC,GAAanC,IAAO,KAC5C,IAAMW,EAAID,EAAI,KAAK,IACnB,OAAIC,EAAI,IACJ,MAAM,KAAK,OAAO,OAAO,KAAK,IAAKA,CAAC,EACpC,KAAK,IAAMD,GAERC,CACX,CACA,CAAC,UAAUyB,EAAM,CACb,IAAI1B,EAAI,KAAK,IACTV,EAAK,KAAK,OAAOU,CAAC,EACtB,KAAO,CAAC0B,EAAKpC,CAAE,GACXA,EAAK,KAAK,OAAO,EAAEU,CAAC,EACxB,OAAO,MAAO,KAAK,YAAYA,EAAG,EAAK,CAC3C,CACJ,ECzsBA,IAAM2B,GAAN,KAAkB,CACd,aAAc,CACV,KAAK,WAAa,CAAC,EAKnB,KAAK,WAAcC,GAAW,KAAK,WAAW,KAAKA,CAAM,EAMzD,KAAK,QAAWA,GAAW,CACvB,IAAIC,EAAM,EACNC,EAAO,KAAK,WAAW,OAC3B,KAAOD,EAAMC,GAAM,CACf,IAAMC,EAAOF,EAAMC,GAAS,EACxB,KAAK,WAAWC,CAAG,EAAIH,EACvBC,EAAME,EAAM,EAEZD,EAAOC,CACf,CACA,GAAI,KAAK,WAAWF,CAAG,IAAMD,EACzB,MAAO,CAAE,KAAMC,EAAM,EAAG,IAAK,CAAE,EACnC,GAAIA,IAAQ,EACR,MAAO,CAAE,KAAM,EAAG,IAAKD,CAAO,EAClC,IAAMI,EAAQ,KAAK,WAAWH,EAAM,CAAC,EACrC,MAAO,CAAE,KAAMA,EAAK,IAAKD,EAASI,EAAQ,CAAE,CAChD,CACJ,CACJ,ECjCA,SAASC,GAAcC,EAAMC,EAAM,CAC/B,QAASC,EAAI,EAAGA,EAAIF,EAAK,OAAQ,EAAEE,EAC/B,GAAIF,EAAKE,CAAC,EAAE,OAASD,EACjB,MAAO,GACf,MAAO,EACX,CACA,SAASE,GAAkBH,EAAM,CAC7B,QAASE,EAAI,EAAGA,EAAIF,EAAK,OAAQ,EAAEE,EAC/B,OAAQF,EAAKE,CAAC,EAAE,KAAM,CAClB,IAAK,QACL,IAAK,UACL,IAAK,UACD,MACJ,QACI,OAAOA,CACf,CAEJ,MAAO,EACX,CACA,SAASE,GAAYC,EAAO,CACxB,OAAQA,GAAO,KAAM,CACjB,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBACL,IAAK,kBACD,MAAO,GACX,QACI,MAAO,EACf,CACJ,CACA,SAASC,GAAaC,EAAQ,CAC1B,OAAQA,EAAO,KAAM,CACjB,IAAK,WACD,OAAOA,EAAO,MAClB,IAAK,YAAa,CACd,IAAMC,EAAKD,EAAO,MAAMA,EAAO,MAAM,OAAS,CAAC,EAC/C,OAAOC,EAAG,KAAOA,EAAG,KACxB,CACA,IAAK,YACD,OAAOD,EAAO,MAAMA,EAAO,MAAM,OAAS,CAAC,EAAE,MAEjD,QACI,MAAO,CAAC,CAChB,CACJ,CAEA,SAASE,GAAsBC,EAAM,CACjC,GAAIA,EAAK,SAAW,EAChB,MAAO,CAAC,EACZ,IAAIR,EAAIQ,EAAK,OACbC,EAAM,KAAO,EAAET,GAAK,GAChB,OAAQQ,EAAKR,CAAC,EAAE,KAAM,CAClB,IAAK,YACL,IAAK,mBACL,IAAK,gBACL,IAAK,eACL,IAAK,UACD,MAAMS,CACd,CAEJ,KAAOD,EAAK,EAAER,CAAC,GAAG,OAAS,SAAS,CAGpC,OAAOQ,EAAK,OAAOR,EAAGQ,EAAK,MAAM,CACrC,CACA,SAASE,GAAeC,EAAQC,EAAQ,CAEpC,GAAIA,EAAO,OAAS,IAChB,MAAM,UAAU,KAAK,MAAMD,EAAQC,CAAM,MAEzC,SAASZ,EAAI,EAAGA,EAAIY,EAAO,OAAQ,EAAEZ,EACjCW,EAAO,KAAKC,EAAOZ,CAAC,CAAC,CACjC,CACA,SAASa,GAAgBC,EAAI,CACzB,GAAIA,EAAG,MAAM,OAAS,iBAClB,QAAWR,KAAMQ,EAAG,MACZR,EAAG,KACH,CAACA,EAAG,OACJ,CAACT,GAAcS,EAAG,MAAO,kBAAkB,GAC3C,CAACT,GAAcS,EAAG,IAAK,eAAe,IAClCA,EAAG,MACHA,EAAG,MAAQA,EAAG,KAClB,OAAOA,EAAG,IACNJ,GAAYI,EAAG,KAAK,EAChBA,EAAG,MAAM,IACTI,GAAeJ,EAAG,MAAM,IAAKA,EAAG,GAAG,EAEnCA,EAAG,MAAM,IAAMA,EAAG,IAGtBI,GAAeJ,EAAG,MAAOA,EAAG,GAAG,EACnC,OAAOA,EAAG,IAI1B,CA4BA,IAAMS,GAAN,KAAa,CAKT,YAAYC,EAAW,CAEnB,KAAK,UAAY,GAEjB,KAAK,SAAW,GAEhB,KAAK,OAAS,EAEd,KAAK,OAAS,EAEd,KAAK,UAAY,GAEjB,KAAK,MAAQ,CAAC,EAEd,KAAK,OAAS,GAEd,KAAK,KAAO,GAEZ,KAAK,MAAQ,IAAIC,GACjB,KAAK,UAAYD,CACrB,CASA,CAAC,MAAMJ,EAAQM,EAAa,GAAO,CAC3B,KAAK,WAAa,KAAK,SAAW,GAClC,KAAK,UAAU,CAAC,EACpB,QAAWC,KAAU,KAAK,MAAM,IAAIP,EAAQM,CAAU,EAClD,MAAO,KAAK,KAAKC,CAAM,EACtBD,IACD,MAAO,KAAK,IAAI,EACxB,CAIA,CAAC,KAAKN,EAAQ,CAEV,GADA,KAAK,OAASA,EACV,KAAK,SAAU,CACf,KAAK,SAAW,GAChB,MAAO,KAAK,KAAK,EACjB,KAAK,QAAUA,EAAO,OACtB,MACJ,CACA,IAAMb,EAAOqB,GAAUR,CAAM,EAC7B,GAAKb,EAKA,GAAIA,IAAS,SACd,KAAK,UAAY,GACjB,KAAK,SAAW,GAChB,KAAK,KAAO,aAEX,CAGD,OAFA,KAAK,KAAOA,EACZ,MAAO,KAAK,KAAK,EACTA,EAAM,CACV,IAAK,UACD,KAAK,UAAY,GACjB,KAAK,OAAS,EACV,KAAK,WACL,KAAK,UAAU,KAAK,OAASa,EAAO,MAAM,EAC9C,MACJ,IAAK,QACG,KAAK,WAAaA,EAAO,CAAC,IAAM,MAChC,KAAK,QAAUA,EAAO,QAC1B,MACJ,IAAK,mBACL,IAAK,gBACL,IAAK,eACG,KAAK,YACL,KAAK,QAAUA,EAAO,QAC1B,MACJ,IAAK,WACL,IAAK,iBACD,OACJ,QACI,KAAK,UAAY,EACzB,CACA,KAAK,QAAUA,EAAO,MAC1B,KArCW,CACP,IAAMS,EAAU,qBAAqBT,CAAM,GAC3C,MAAO,KAAK,IAAI,CAAE,KAAM,QAAS,OAAQ,KAAK,OAAQ,QAAAS,EAAS,OAAAT,CAAO,CAAC,EACvE,KAAK,QAAUA,EAAO,MAC1B,CAkCJ,CAEA,CAAC,KAAM,CACH,KAAO,KAAK,MAAM,OAAS,GACvB,MAAO,KAAK,IAAI,CACxB,CACA,IAAI,aAAc,CAOd,MANW,CACP,KAAM,KAAK,KACX,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,OAAQ,KAAK,MACjB,CAEJ,CACA,CAAC,MAAO,CACJ,IAAMU,EAAM,KAAK,KAAK,CAAC,EACvB,GAAI,KAAK,OAAS,WAAaA,GAAK,OAAS,UAAW,CACpD,KAAO,KAAK,MAAM,OAAS,GACvB,MAAO,KAAK,IAAI,EACpB,KAAK,MAAM,KAAK,CACZ,KAAM,UACN,OAAQ,KAAK,OACb,OAAQ,KAAK,MACjB,CAAC,EACD,MACJ,CACA,GAAI,CAACA,EACD,OAAO,MAAO,KAAK,OAAO,EAC9B,OAAQA,EAAI,KAAM,CACd,IAAK,WACD,OAAO,MAAO,KAAK,SAASA,CAAG,EACnC,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBACD,OAAO,MAAO,KAAK,OAAOA,CAAG,EACjC,IAAK,eACD,OAAO,MAAO,KAAK,YAAYA,CAAG,EACtC,IAAK,YACD,OAAO,MAAO,KAAK,SAASA,CAAG,EACnC,IAAK,YACD,OAAO,MAAO,KAAK,cAAcA,CAAG,EACxC,IAAK,kBACD,OAAO,MAAO,KAAK,eAAeA,CAAG,EACzC,IAAK,UACD,OAAO,MAAO,KAAK,YAAYA,CAAG,CAC1C,CAEA,MAAO,KAAK,IAAI,CACpB,CACA,KAAKC,EAAG,CACJ,OAAO,KAAK,MAAM,KAAK,MAAM,OAASA,CAAC,CAC3C,CACA,CAAC,IAAIC,EAAO,CACR,IAAMrB,EAAQqB,GAAS,KAAK,MAAM,IAAI,EAEtC,GAAI,CAACrB,EAED,KAAM,CAAE,KAAM,QAAS,OAAQ,KAAK,OAAQ,OAAQ,GAAI,QADxC,6BACgD,UAE3D,KAAK,MAAM,SAAW,EAC3B,MAAMA,MAEL,CACD,IAAMmB,EAAM,KAAK,KAAK,CAAC,EAWvB,OAVInB,EAAM,OAAS,eAEfA,EAAM,OAAS,WAAYmB,EAAMA,EAAI,OAAS,EAEzCnB,EAAM,OAAS,mBAAqBmB,EAAI,OAAS,aAEtDnB,EAAM,OAAS,GAEfA,EAAM,OAAS,mBACfU,GAAgBV,CAAK,EACjBmB,EAAI,KAAM,CACd,IAAK,WACDA,EAAI,MAAQnB,EACZ,MACJ,IAAK,eACDmB,EAAI,MAAM,KAAKnB,CAAK,EACpB,MACJ,IAAK,YAAa,CACd,IAAMG,EAAKgB,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EACzC,GAAIhB,EAAG,MAAO,CACVgB,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,EAAG,IAAKnB,EAAO,IAAK,CAAC,CAAE,CAAC,EACjD,KAAK,UAAY,GACjB,MACJ,SACSG,EAAG,IACRA,EAAG,MAAQH,MAEV,CACD,OAAO,OAAOG,EAAI,CAAE,IAAKH,EAAO,IAAK,CAAC,CAAE,CAAC,EACzC,KAAK,UAAY,CAACG,EAAG,YACrB,MACJ,CACA,KACJ,CACA,IAAK,YAAa,CACd,IAAMA,EAAKgB,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EACrChB,EAAG,MACHgB,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,EAAG,MAAOnB,CAAM,CAAC,EAE1CG,EAAG,MAAQH,EACf,KACJ,CACA,IAAK,kBAAmB,CACpB,IAAMG,EAAKgB,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EACrC,CAAChB,GAAMA,EAAG,MACVgB,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,EAAG,IAAKnB,EAAO,IAAK,CAAC,CAAE,CAAC,EAC5CG,EAAG,IACRA,EAAG,MAAQH,EAEX,OAAO,OAAOG,EAAI,CAAE,IAAKH,EAAO,IAAK,CAAC,CAAE,CAAC,EAC7C,MACJ,CAEA,QACI,MAAO,KAAK,IAAI,EAChB,MAAO,KAAK,IAAIA,CAAK,CAC7B,CACA,IAAKmB,EAAI,OAAS,YACdA,EAAI,OAAS,aACbA,EAAI,OAAS,eACZnB,EAAM,OAAS,aAAeA,EAAM,OAAS,aAAc,CAC5D,IAAMsB,EAAOtB,EAAM,MAAMA,EAAM,MAAM,OAAS,CAAC,EAC3CsB,GACA,CAACA,EAAK,KACN,CAACA,EAAK,OACNA,EAAK,MAAM,OAAS,GACpBxB,GAAkBwB,EAAK,KAAK,IAAM,KACjCtB,EAAM,SAAW,GACdsB,EAAK,MAAM,MAAMC,GAAMA,EAAG,OAAS,WAAaA,EAAG,OAASvB,EAAM,MAAM,KACxEmB,EAAI,OAAS,WACbA,EAAI,IAAMG,EAAK,MAEfH,EAAI,MAAM,KAAK,CAAE,MAAOG,EAAK,KAAM,CAAC,EACxCtB,EAAM,MAAM,OAAO,GAAI,CAAC,EAEhC,CACJ,CACJ,CACA,CAAC,QAAS,CACN,OAAQ,KAAK,KAAM,CACf,IAAK,iBACD,KAAM,CAAE,KAAM,YAAa,OAAQ,KAAK,OAAQ,OAAQ,KAAK,MAAO,EACpE,OACJ,IAAK,kBACL,IAAK,QACL,IAAK,UACL,IAAK,UACD,MAAM,KAAK,YACX,OACJ,IAAK,WACL,IAAK,YAAa,CACd,IAAMwB,EAAM,CACR,KAAM,WACN,OAAQ,KAAK,OACb,MAAO,CAAC,CACZ,EACI,KAAK,OAAS,aACdA,EAAI,MAAM,KAAK,KAAK,WAAW,EACnC,KAAK,MAAM,KAAKA,CAAG,EACnB,MACJ,CACJ,CACA,KAAM,CACF,KAAM,QACN,OAAQ,KAAK,OACb,QAAS,cAAc,KAAK,IAAI,wBAChC,OAAQ,KAAK,MACjB,CACJ,CACA,CAAC,SAASA,EAAK,CACX,GAAIA,EAAI,MACJ,OAAO,MAAO,KAAK,QAAQA,CAAG,EAClC,OAAQ,KAAK,KAAM,CACf,IAAK,YAAa,CACV1B,GAAkB0B,EAAI,KAAK,IAAM,IACjC,MAAO,KAAK,IAAI,EAChB,MAAO,KAAK,KAAK,GAGjBA,EAAI,MAAM,KAAK,KAAK,WAAW,EACnC,MACJ,CACA,IAAK,SACL,IAAK,MACL,IAAK,QACL,IAAK,UACL,IAAK,UACDA,EAAI,MAAM,KAAK,KAAK,WAAW,EAC/B,MACR,CACA,IAAMC,EAAK,KAAK,gBAAgBD,CAAG,EAC/BC,EACA,KAAK,MAAM,KAAKA,CAAE,EAElB,KAAM,CACF,KAAM,QACN,OAAQ,KAAK,OACb,QAAS,cAAc,KAAK,IAAI,0BAChC,OAAQ,KAAK,MACjB,CAER,CACA,CAAC,OAAOC,EAAQ,CACZ,GAAI,KAAK,OAAS,gBAAiB,CAC/B,IAAMrB,EAAOJ,GAAa,KAAK,KAAK,CAAC,CAAC,EAChC0B,EAAQvB,GAAsBC,CAAI,EACpCuB,EACAF,EAAO,KACPE,EAAMF,EAAO,IACbE,EAAI,KAAK,KAAK,WAAW,EACzB,OAAOF,EAAO,KAGdE,EAAM,CAAC,KAAK,WAAW,EAC3B,IAAMC,EAAM,CACR,KAAM,YACN,OAAQH,EAAO,OACf,OAAQA,EAAO,OACf,MAAO,CAAC,CAAE,MAAAC,EAAO,IAAKD,EAAQ,IAAAE,CAAI,CAAC,CACvC,EACA,KAAK,UAAY,GACjB,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAAIC,CACxC,MAEI,MAAO,KAAK,QAAQH,CAAM,CAClC,CACA,CAAC,YAAYA,EAAQ,CACjB,OAAQ,KAAK,KAAM,CACf,IAAK,QACL,IAAK,UACL,IAAK,UACDA,EAAO,MAAM,KAAK,KAAK,WAAW,EAClC,OACJ,IAAK,SAKD,GAJAA,EAAO,OAAS,KAAK,OAErB,KAAK,UAAY,GACjB,KAAK,OAAS,EACV,KAAK,UAAW,CAChB,IAAII,EAAK,KAAK,OAAO,QAAQ;AAAA,CAAI,EAAI,EACrC,KAAOA,IAAO,GACV,KAAK,UAAU,KAAK,OAASA,CAAE,EAC/BA,EAAK,KAAK,OAAO,QAAQ;AAAA,EAAMA,CAAE,EAAI,CAE7C,CACA,MAAO,KAAK,IAAI,EAChB,MAEJ,QACI,MAAO,KAAK,IAAI,EAChB,MAAO,KAAK,KAAK,CACzB,CACJ,CACA,CAAC,SAASD,EAAK,CACX,IAAM1B,EAAK0B,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EAEzC,OAAQ,KAAK,KAAM,CACf,IAAK,UAED,GADA,KAAK,UAAY,GACb1B,EAAG,MAAO,CACV,IAAM4B,EAAM,QAAS5B,EAAG,MAAQA,EAAG,MAAM,IAAM,QAClC,MAAM,QAAQ4B,CAAG,EAAIA,EAAIA,EAAI,OAAS,CAAC,EAAI,SAC9C,OAAS,UACfA,GAAK,KAAK,KAAK,WAAW,EAE1BF,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,CAAE,CAAC,CACpD,MACS1B,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,EAG5BA,EAAG,MAAM,KAAK,KAAK,WAAW,EAElC,OACJ,IAAK,QACL,IAAK,UACD,GAAIA,EAAG,MACH0B,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,CAAE,CAAC,UAEvC1B,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,MAE3B,CACD,GAAI,KAAK,kBAAkBA,EAAG,MAAO0B,EAAI,MAAM,EAAG,CAE9C,IAAME,EADOF,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,GACzB,OAAO,IACzB,GAAI,MAAM,QAAQE,CAAG,EAAG,CACpBxB,GAAewB,EAAK5B,EAAG,KAAK,EAC5B4B,EAAI,KAAK,KAAK,WAAW,EACzBF,EAAI,MAAM,IAAI,EACd,MACJ,CACJ,CACA1B,EAAG,MAAM,KAAK,KAAK,WAAW,CAClC,CACA,MACR,CACA,GAAI,KAAK,QAAU0B,EAAI,OAAQ,CAC3B,IAAMG,EAAc,CAAC,KAAK,WAAa,KAAK,SAAWH,EAAI,OACrDI,EAAaD,IACd7B,EAAG,KAAOA,EAAG,cACd,KAAK,OAAS,eAEdwB,EAAQ,CAAC,EACb,GAAIM,GAAc9B,EAAG,KAAO,CAACA,EAAG,MAAO,CACnC,IAAM2B,EAAK,CAAC,EACZ,QAASjC,EAAI,EAAGA,EAAIM,EAAG,IAAI,OAAQ,EAAEN,EAAG,CACpC,IAAM0B,EAAKpB,EAAG,IAAIN,CAAC,EACnB,OAAQ0B,EAAG,KAAM,CACb,IAAK,UACDO,EAAG,KAAKjC,CAAC,EACT,MACJ,IAAK,QACD,MACJ,IAAK,UACG0B,EAAG,OAASM,EAAI,SAChBC,EAAG,OAAS,GAChB,MACJ,QACIA,EAAG,OAAS,CACpB,CACJ,CACIA,EAAG,QAAU,IACbH,EAAQxB,EAAG,IAAI,OAAO2B,EAAG,CAAC,CAAC,EACnC,CACA,OAAQ,KAAK,KAAM,CACf,IAAK,SACL,IAAK,MACGG,GAAc9B,EAAG,OACjBwB,EAAM,KAAK,KAAK,WAAW,EAC3BE,EAAI,MAAM,KAAK,CAAE,MAAAF,CAAM,CAAC,EACxB,KAAK,UAAY,IAEZxB,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,EAG5BA,EAAG,MAAM,KAAK,KAAK,WAAW,EAElC,OACJ,IAAK,mBACG,CAACA,EAAG,KAAO,CAACA,EAAG,aACfA,EAAG,MAAM,KAAK,KAAK,WAAW,EAC9BA,EAAG,YAAc,IAEZ8B,GAAc9B,EAAG,OACtBwB,EAAM,KAAK,KAAK,WAAW,EAC3BE,EAAI,MAAM,KAAK,CAAE,MAAAF,EAAO,YAAa,EAAK,CAAC,GAG3C,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAO,CAAC,KAAK,WAAW,EAAG,YAAa,EAAK,CAAC,CAC5D,CAAC,EAEL,KAAK,UAAY,GACjB,OACJ,IAAK,gBACD,GAAIxB,EAAG,YACH,GAAKA,EAAG,IAcH,GAAIA,EAAG,MACR0B,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,EAAG,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,UAE3DnC,GAAcS,EAAG,IAAK,eAAe,EAC1C,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAwB,EAAO,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,CACzD,CAAC,UAEI5B,GAAYI,EAAG,GAAG,GACvB,CAACT,GAAcS,EAAG,IAAK,SAAS,EAAG,CACnC,IAAMwB,EAAQvB,GAAsBD,EAAG,KAAK,EACtC+B,EAAM/B,EAAG,IACTyB,EAAMzB,EAAG,IACfyB,EAAI,KAAK,KAAK,WAAW,EAEzB,OAAOzB,EAAG,IAEV,OAAOA,EAAG,IACV,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAwB,EAAO,IAAAO,EAAK,IAAAN,CAAI,CAAC,CAC/B,CAAC,CACL,MACSD,EAAM,OAAS,EAEpBxB,EAAG,IAAMA,EAAG,IAAI,OAAOwB,EAAO,KAAK,WAAW,EAG9CxB,EAAG,IAAI,KAAK,KAAK,WAAW,UA9CxBT,GAAcS,EAAG,MAAO,SAAS,EACjC,OAAO,OAAOA,EAAI,CAAE,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,MAEvD,CACD,IAAMwB,EAAQvB,GAAsBD,EAAG,KAAK,EAC5C,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAwB,EAAO,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,CACzD,CAAC,CACL,MAuCCxB,EAAG,IAGCA,EAAG,OAAS8B,EACjBJ,EAAI,MAAM,KAAK,CAAE,MAAAF,EAAO,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,EAEvDjC,GAAcS,EAAG,IAAK,eAAe,EAC1C,KAAK,MAAM,KAAK,CACZ,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAO,CAAC,EAAG,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,CAC7D,CAAC,EAGDA,EAAG,IAAI,KAAK,KAAK,WAAW,EAd5B,OAAO,OAAOA,EAAI,CAAE,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,EAiBhE,KAAK,UAAY,GACjB,OACJ,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBAAwB,CACzB,IAAMgC,EAAK,KAAK,WAAW,KAAK,IAAI,EAChCF,GAAc9B,EAAG,OACjB0B,EAAI,MAAM,KAAK,CAAE,MAAAF,EAAO,IAAKQ,EAAI,IAAK,CAAC,CAAE,CAAC,EAC1C,KAAK,UAAY,IAEZhC,EAAG,IACR,KAAK,MAAM,KAAKgC,CAAE,GAGlB,OAAO,OAAOhC,EAAI,CAAE,IAAKgC,EAAI,IAAK,CAAC,CAAE,CAAC,EACtC,KAAK,UAAY,IAErB,MACJ,CACA,QAAS,CACL,IAAMV,EAAK,KAAK,gBAAgBI,CAAG,EACnC,GAAIJ,EAAI,CACJ,GAAIA,EAAG,OAAS,aACZ,GAAI,CAACtB,EAAG,aACJA,EAAG,KACH,CAACT,GAAcS,EAAG,IAAK,SAAS,EAAG,CACnC,MAAO,KAAK,IAAI,CACZ,KAAM,QACN,OAAQ,KAAK,OACb,QAAS,iDACT,OAAQ,KAAK,MACjB,CAAC,EACD,MACJ,OAEK6B,GACLH,EAAI,MAAM,KAAK,CAAE,MAAAF,CAAM,CAAC,EAE5B,KAAK,MAAM,KAAKF,CAAE,EAClB,MACJ,CACJ,CACJ,CACJ,CACA,MAAO,KAAK,IAAI,EAChB,MAAO,KAAK,KAAK,CACrB,CACA,CAAC,cAAcW,EAAK,CAChB,IAAMjC,EAAKiC,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,EACzC,OAAQ,KAAK,KAAM,CACf,IAAK,UACD,GAAIjC,EAAG,MAAO,CACV,IAAM4B,EAAM,QAAS5B,EAAG,MAAQA,EAAG,MAAM,IAAM,QAClC,MAAM,QAAQ4B,CAAG,EAAIA,EAAIA,EAAI,OAAS,CAAC,EAAI,SAC9C,OAAS,UACfA,GAAK,KAAK,KAAK,WAAW,EAE1BK,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,CAAE,CAAC,CACpD,MAEIjC,EAAG,MAAM,KAAK,KAAK,WAAW,EAClC,OACJ,IAAK,QACL,IAAK,UACD,GAAIA,EAAG,MACHiC,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,CAAE,CAAC,MAC3C,CACD,GAAI,KAAK,kBAAkBjC,EAAG,MAAOiC,EAAI,MAAM,EAAG,CAE9C,IAAML,EADOK,EAAI,MAAMA,EAAI,MAAM,OAAS,CAAC,GACzB,OAAO,IACzB,GAAI,MAAM,QAAQL,CAAG,EAAG,CACpBxB,GAAewB,EAAK5B,EAAG,KAAK,EAC5B4B,EAAI,KAAK,KAAK,WAAW,EACzBK,EAAI,MAAM,IAAI,EACd,MACJ,CACJ,CACAjC,EAAG,MAAM,KAAK,KAAK,WAAW,CAClC,CACA,OACJ,IAAK,SACL,IAAK,MACD,GAAIA,EAAG,OAAS,KAAK,QAAUiC,EAAI,OAC/B,MACJjC,EAAG,MAAM,KAAK,KAAK,WAAW,EAC9B,OACJ,IAAK,eACD,GAAI,KAAK,SAAWiC,EAAI,OACpB,MACAjC,EAAG,OAAST,GAAcS,EAAG,MAAO,cAAc,EAClDiC,EAAI,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,CAAE,CAAC,EAE5CjC,EAAG,MAAM,KAAK,KAAK,WAAW,EAClC,MACR,CACA,GAAI,KAAK,OAASiC,EAAI,OAAQ,CAC1B,IAAMX,EAAK,KAAK,gBAAgBW,CAAG,EACnC,GAAIX,EAAI,CACJ,KAAK,MAAM,KAAKA,CAAE,EAClB,MACJ,CACJ,CACA,MAAO,KAAK,IAAI,EAChB,MAAO,KAAK,KAAK,CACrB,CACA,CAAC,eAAed,EAAI,CAChB,IAAMR,EAAKQ,EAAG,MAAMA,EAAG,MAAM,OAAS,CAAC,EACvC,GAAI,KAAK,OAAS,iBAAkB,CAChC,IAAIQ,EACJ,GACI,MAAO,KAAK,IAAI,EAChBA,EAAM,KAAK,KAAK,CAAC,QACZA,GAAK,OAAS,kBAC3B,SACSR,EAAG,IAAI,SAAW,EAAG,CAC1B,OAAQ,KAAK,KAAM,CACf,IAAK,QACL,IAAK,mBACG,CAACR,GAAMA,EAAG,IACVQ,EAAG,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,CAAE,CAAC,EAE3CR,EAAG,MAAM,KAAK,KAAK,WAAW,EAClC,OACJ,IAAK,gBACG,CAACA,GAAMA,EAAG,MACVQ,EAAG,MAAM,KAAK,CAAE,MAAO,CAAC,EAAG,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,EAC1DR,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,EAE5B,OAAO,OAAOA,EAAI,CAAE,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,EAC5D,OACJ,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,MACG,CAACA,GAAMA,EAAG,MACVQ,EAAG,MAAM,KAAK,CAAE,MAAO,CAAC,KAAK,WAAW,CAAE,CAAC,EACtCR,EAAG,IACRA,EAAG,IAAI,KAAK,KAAK,WAAW,EAE5BA,EAAG,MAAM,KAAK,KAAK,WAAW,EAClC,OACJ,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBAAwB,CACzB,IAAMgC,EAAK,KAAK,WAAW,KAAK,IAAI,EAChC,CAAChC,GAAMA,EAAG,MACVQ,EAAG,MAAM,KAAK,CAAE,MAAO,CAAC,EAAG,IAAKwB,EAAI,IAAK,CAAC,CAAE,CAAC,EACxChC,EAAG,IACR,KAAK,MAAM,KAAKgC,CAAE,EAElB,OAAO,OAAOhC,EAAI,CAAE,IAAKgC,EAAI,IAAK,CAAC,CAAE,CAAC,EAC1C,MACJ,CACA,IAAK,eACL,IAAK,eACDxB,EAAG,IAAI,KAAK,KAAK,WAAW,EAC5B,MACR,CACA,IAAMc,EAAK,KAAK,gBAAgBd,CAAE,EAE9Bc,EACA,KAAK,MAAM,KAAKA,CAAE,GAElB,MAAO,KAAK,IAAI,EAChB,MAAO,KAAK,KAAK,EAEzB,KACK,CACD,IAAMvB,EAAS,KAAK,KAAK,CAAC,EAC1B,GAAIA,EAAO,OAAS,cACd,KAAK,OAAS,iBAAmBA,EAAO,SAAWS,EAAG,QACnD,KAAK,OAAS,WACX,CAACT,EAAO,MAAMA,EAAO,MAAM,OAAS,CAAC,EAAE,KAC/C,MAAO,KAAK,IAAI,EAChB,MAAO,KAAK,KAAK,UAEZ,KAAK,OAAS,iBACnBA,EAAO,OAAS,kBAAmB,CACnC,IAAMG,EAAOJ,GAAaC,CAAM,EAC1ByB,EAAQvB,GAAsBC,CAAI,EACxCK,GAAgBC,CAAE,EAClB,IAAMiB,EAAMjB,EAAG,IAAI,OAAO,EAAGA,EAAG,IAAI,MAAM,EAC1CiB,EAAI,KAAK,KAAK,WAAW,EACzB,IAAMC,EAAM,CACR,KAAM,YACN,OAAQlB,EAAG,OACX,OAAQA,EAAG,OACX,MAAO,CAAC,CAAE,MAAAgB,EAAO,IAAKhB,EAAI,IAAAiB,CAAI,CAAC,CACnC,EACA,KAAK,UAAY,GACjB,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,EAAIC,CACxC,MAEI,MAAO,KAAK,QAAQlB,CAAE,CAE9B,CACJ,CACA,WAAWf,EAAM,CACb,GAAI,KAAK,UAAW,CAChB,IAAIkC,EAAK,KAAK,OAAO,QAAQ;AAAA,CAAI,EAAI,EACrC,KAAOA,IAAO,GACV,KAAK,UAAU,KAAK,OAASA,CAAE,EAC/BA,EAAK,KAAK,OAAO,QAAQ;AAAA,EAAMA,CAAE,EAAI,CAE7C,CACA,MAAO,CACH,KAAAlC,EACA,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,OAAQ,KAAK,MACjB,CACJ,CACA,gBAAgBM,EAAQ,CACpB,OAAQ,KAAK,KAAM,CACf,IAAK,QACL,IAAK,SACL,IAAK,uBACL,IAAK,uBACD,OAAO,KAAK,WAAW,KAAK,IAAI,EACpC,IAAK,sBACD,MAAO,CACH,KAAM,eACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,KAAK,WAAW,EACxB,OAAQ,EACZ,EACJ,IAAK,iBACL,IAAK,iBACD,MAAO,CACH,KAAM,kBACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,KAAK,YACZ,MAAO,CAAC,EACR,IAAK,CAAC,CACV,EACJ,IAAK,eACD,MAAO,CACH,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAO,CAAC,KAAK,WAAW,CAAE,CAAC,CACzC,EACJ,IAAK,mBAAoB,CACrB,KAAK,UAAY,GACjB,IAAMG,EAAOJ,GAAaC,CAAM,EAC1ByB,EAAQvB,GAAsBC,CAAI,EACxC,OAAAsB,EAAM,KAAK,KAAK,WAAW,EACpB,CACH,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAA,EAAO,YAAa,EAAK,CAAC,CACxC,CACJ,CACA,IAAK,gBAAiB,CAClB,KAAK,UAAY,GACjB,IAAMtB,EAAOJ,GAAaC,CAAM,EAC1ByB,EAAQvB,GAAsBC,CAAI,EACxC,MAAO,CACH,KAAM,YACN,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,CAAC,CAAE,MAAAsB,EAAO,IAAK,KAAM,IAAK,CAAC,KAAK,WAAW,CAAE,CAAC,CACzD,CACJ,CACJ,CACA,OAAO,IACX,CACA,kBAAkBA,EAAOU,EAAQ,CAG7B,OAFI,KAAK,OAAS,WAEd,KAAK,QAAUA,EACR,GACJV,EAAM,MAAMJ,GAAMA,EAAG,OAAS,WAAaA,EAAG,OAAS,OAAO,CACzE,CACA,CAAC,YAAYe,EAAQ,CACb,KAAK,OAAS,aACVA,EAAO,IACPA,EAAO,IAAI,KAAK,KAAK,WAAW,EAEhCA,EAAO,IAAM,CAAC,KAAK,WAAW,EAC9B,KAAK,OAAS,YACd,MAAO,KAAK,IAAI,GAE5B,CACA,CAAC,QAAQtC,EAAO,CACZ,OAAQ,KAAK,KAAM,CACf,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,eACL,IAAK,eACL,IAAK,gBACD,MAAO,KAAK,IAAI,EAChB,MAAO,KAAK,KAAK,EACjB,MACJ,IAAK,UACD,KAAK,UAAY,GAErB,IAAK,QACL,IAAK,UACL,QAEQA,EAAM,IACNA,EAAM,IAAI,KAAK,KAAK,WAAW,EAE/BA,EAAM,IAAM,CAAC,KAAK,WAAW,EAC7B,KAAK,OAAS,YACd,MAAO,KAAK,IAAI,EAC5B,CACJ,CACJ,ECp8BA,SAASuC,GAAaC,EAAS,CAC3B,IAAMC,EAAeD,EAAQ,eAAiB,GAE9C,MAAO,CAAE,YADWA,EAAQ,aAAgBC,GAAgB,IAAIC,IAAkB,KAC5D,aAAAD,CAAa,CACvC,CAyBA,SAASE,GAAcC,EAAQC,EAAU,CAAC,EAAG,CACzC,GAAM,CAAE,YAAAC,EAAa,aAAAC,CAAa,EAAIC,GAAaH,CAAO,EACpDI,EAAS,IAAIC,GAAOJ,GAAa,UAAU,EAC3CK,EAAW,IAAIC,GAASP,CAAO,EAEjCQ,EAAM,KACV,QAAWC,KAAQH,EAAS,QAAQF,EAAO,MAAML,CAAM,EAAG,GAAMA,EAAO,MAAM,EACzE,GAAI,CAACS,EACDA,EAAMC,UACDD,EAAI,QAAQ,WAAa,SAAU,CACxCA,EAAI,OAAO,KAAK,IAAIE,GAAeD,EAAK,MAAM,MAAM,EAAG,CAAC,EAAG,gBAAiB,yEAAyE,CAAC,EACtJ,KACJ,CAEJ,OAAIP,GAAgBD,IAChBO,EAAI,OAAO,QAAQG,GAAcZ,EAAQE,CAAW,CAAC,EACrDO,EAAI,SAAS,QAAQG,GAAcZ,EAAQE,CAAW,CAAC,GAEpDO,CACX,CACA,SAASI,GAAMC,EAAKC,EAASd,EAAS,CAClC,IAAIe,EACA,OAAOD,GAAY,WACnBC,EAAWD,EAENd,IAAY,QAAac,GAAW,OAAOA,GAAY,WAC5Dd,EAAUc,GAEd,IAAMN,EAAMV,GAAce,EAAKb,CAAO,EACtC,GAAI,CAACQ,EACD,OAAO,KAEX,GADAA,EAAI,SAAS,QAAQQ,GAAWC,GAAKT,EAAI,QAAQ,SAAUQ,CAAO,CAAC,EAC/DR,EAAI,OAAO,OAAS,EAAG,CACvB,GAAIA,EAAI,QAAQ,WAAa,SACzB,MAAMA,EAAI,OAAO,CAAC,EAElBA,EAAI,OAAS,CAAC,CACtB,CACA,OAAOA,EAAI,KAAK,OAAO,OAAO,CAAE,QAASO,CAAS,EAAGf,CAAO,CAAC,CACjE,CCxEO,SAASkB,GAAeC,EAAqBC,EAAmB,CACrE,GAAI,SAAOA,GAAQ,UAAY,CAACA,EAAI,WAAW,IAAI,GAEnD,OAAOA,EACJ,MAAM,CAAC,EACP,MAAM,GAAG,EACT,IAAKC,GAASA,EAAK,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,CAAC,EAC1D,OAAO,CAACC,EAAMC,IAAQD,IAAOC,CAAG,EAAGJ,CAAI,CAC5C,CAEO,SAASK,GAAQJ,EAAqB,CAC3C,OAAOA,EAAI,MAAM,GAAG,EAAE,IAAI,GAAKA,CACjC,CAGO,SAASK,GAAMN,EAAqBG,EAAkD,CAC3F,IAAIF,EACAM,EAAO,EAEX,KAAOJ,GAAM,MAAQI,IAAS,IAC5BN,EAAME,EAAK,KACXA,EAAOJ,GAAeC,EAAMC,CAAG,EAGjC,MAAO,CAAE,KAAME,GAAQ,CAAC,EAAG,IAAAF,CAAI,CACjC,CC1BA,SAASO,GAAUC,EAAuBC,EAAuB,CAC/D,OAAW,CAACN,EAAKO,CAAK,IAAK,OAAO,QAAQD,CAAM,EAC1CN,IAAQ,aACVK,EAAO,WAAa,CAAE,GAAGA,EAAO,WAAY,GAAGE,CAAM,EAC5CP,IAAQ,WACjBK,EAAO,SAAW,CAAC,GAAG,IAAI,IAAI,CAAC,GAAIA,EAAO,UAAY,CAAC,EAAI,GAAGE,CAAK,CAAC,CAAC,EAErEF,EAAOL,CAAG,EAAIO,CAGpB,CAKO,SAASC,GAAcZ,EAAqBa,EAAgC,CACjF,GAAM,CAAE,KAAAV,EAAM,IAAAF,CAAI,EAAIK,GAAMN,EAAMa,CAAK,EACnCC,EAASX,EACTY,EAAOd,EAAMI,GAAQJ,CAAG,EAAI,OAEhC,GAAI,MAAM,QAAQa,EAAO,KAAK,EAAG,CAC/B,GAAM,CAAE,MAAAE,EAAO,GAAGC,CAAK,EAAIH,EACrBI,EAAwB,CAAC,EAE/B,QAAWhB,KAAQc,EACjBR,GAAUU,EAAQN,GAAcZ,EAAME,CAAI,EAAE,MAAM,EAEpDM,GAAUU,EAAQD,CAAI,EAElB,CAACF,GAAQC,EAAM,SAAW,GAAKA,EAAM,CAAC,EAAE,OAC1CD,EAAOV,GAAQW,EAAM,CAAC,EAAE,IAAI,GAE9BF,EAASI,CACX,CAEA,MAAO,CAAE,OAAAJ,EAAQ,KAAAC,CAAK,CACxB,CAEO,SAASI,GAAUL,EAA+B,CACvD,OAAIA,EAAO,KAAa,MAAM,QAAQA,EAAO,IAAI,EAAIA,EAAO,KAAK,KAAK,KAAK,EAAIA,EAAO,KAClFA,EAAO,YAAcA,EAAO,qBAA6B,SACzDA,EAAO,MAAc,QACrBA,EAAO,MAAc,QACrBA,EAAO,MAAc,QAClB,KACT,CAGO,SAASM,GAAUpB,EAAqBc,EAAuBC,EAAuB,CAC3F,IAAMM,EAAOF,GAAUL,CAAM,EAE7B,GAAIO,IAAS,SAAWP,EAAO,MAAO,CACpC,IAAMQ,EAAOV,GAAcZ,EAAMc,EAAO,KAAK,EAC7C,MAAO,SAASQ,EAAK,MAAQF,GAAUpB,EAAMsB,EAAK,MAAM,CAAC,GAC3D,CACA,OAAID,IAAS,UAAYN,EAAaA,EAClCD,EAAO,OAAe,GAAGO,CAAI,IAAIP,EAAO,MAAM,IAC3CO,CACT,CAEO,SAASE,GAAcT,EAAiC,CAC7D,IAAMU,EAAiB,CAAC,EAClBC,EAAM,CAACC,EAAef,IAAmBA,IAAU,QAAaa,EAAK,KAAK,GAAGE,CAAK,IAAIf,CAAK,EAAE,EAEnG,OAAAc,EAAI,aAAcX,EAAO,SAAS,EAClCW,EAAI,aAAcX,EAAO,SAAS,EAClCW,EAAIX,EAAO,mBAAqB,GAAO,IAAM,SAAKA,EAAO,OAAO,EAChEW,EAAIX,EAAO,mBAAqB,GAAO,IAAM,SAAKA,EAAO,OAAO,EAE5D,OAAOA,EAAO,kBAAqB,UAAUW,EAAI,IAAKX,EAAO,gBAAgB,EAC7E,OAAOA,EAAO,kBAAqB,UAAUW,EAAI,IAAKX,EAAO,gBAAgB,EACjFW,EAAI,cAAeX,EAAO,UAAU,EACpCW,EAAI,YAAaX,EAAO,QAAQ,EAChCW,EAAI,YAAaX,EAAO,QAAQ,EAC5BA,EAAO,aAAaU,EAAK,KAAK,cAAc,EAEzCA,CACT,CAGO,SAASG,GAAW3B,EAAqBc,EAAuC,CAGrF,GAFaK,GAAUL,CAAM,IAEhB,SAAWA,EAAO,MAAO,CACpC,IAAMQ,EAAOV,GAAcZ,EAAMc,EAAO,KAAK,EAC7C,OAAOa,GAAW3B,EAAMsB,EAAK,MAAM,EAAI,CAAE,KAAM,QAAS,GAAGA,CAAK,EAAI,IACtE,CACA,GAAIR,EAAO,OAASA,EAAO,MAAO,CAChC,IAAMc,GAAYd,EAAO,OAASA,EAAO,OAAO,IAAKe,GAAYjB,GAAcZ,EAAM6B,CAAO,CAAC,EAC7F,MAAO,CAAE,KAAMf,EAAO,MAAQ,QAAU,QAAS,SAAAc,CAAS,CAC5D,CACA,GAAId,EAAO,YAAc,OAAO,KAAKA,EAAO,UAAU,EAAE,OAAS,EAC/D,MAAO,CAAE,KAAM,YAAa,EAE9B,GAAIA,EAAO,sBAAwB,OAAOA,EAAO,sBAAyB,SAAU,CAClF,IAAMH,EAAQC,GAAcZ,EAAMc,EAAO,oBAAoB,EAC7D,OAAOa,GAAW3B,EAAMW,EAAM,MAAM,EAAI,CAAE,KAAM,MAAO,GAAGA,CAAM,EAAI,IACtE,CACA,OAAO,IACT,CClGA,IAAMmB,GAAyC,CAC7C,YAAa,uBACb,KAAM,aACN,KAAM,WACN,MAAO,mBACP,IAAK,sBACL,IAAK,sBACL,KAAM,uCACN,KAAM,cACN,KAAM,MACN,SAAU,WACV,KAAM,cACR,EAIO,SAASC,GAAkB/B,EAAqBa,EAAgBmB,EAAoB,IAAI,IAAOC,EAAQ,EAAQ,CACpH,GAAI,CAACpB,GAASoB,EAAQ,EAAG,OAEzB,GAAM,CAAE,OAAAnB,EAAQ,KAAAC,CAAK,EAAIH,GAAcZ,EAAMa,CAAK,EAClD,GAAIE,GAAQiB,EAAK,IAAIjB,CAAI,EAAG,MAAO,CAAC,EACpC,IAAMmB,EAAWnB,EAAO,IAAI,IAAIiB,CAAI,EAAE,IAAIjB,CAAI,EAAIiB,EAElD,GAAIlB,EAAO,UAAY,OAAW,OAAOA,EAAO,QAChD,GAAI,MAAM,QAAQA,EAAO,QAAQ,GAAKA,EAAO,SAAS,OAAQ,OAAOA,EAAO,SAAS,CAAC,EACtF,GAAIA,EAAO,UAAY,OAAW,OAAOA,EAAO,QAChD,GAAI,MAAM,QAAQA,EAAO,IAAI,GAAKA,EAAO,KAAK,OAAQ,OAAOA,EAAO,KAAK,CAAC,EAC1E,GAAIA,EAAO,QAAU,OAAW,OAAOA,EAAO,MAE9C,IAAMc,EAAWd,EAAO,OAASA,EAAO,MACxC,GAAIc,GAAU,OAAQ,OAAOG,GAAkB/B,EAAM4B,EAAS,CAAC,EAAGM,EAAUD,EAAQ,CAAC,EAErF,OAAQd,GAAUL,CAAM,EAAG,CACzB,IAAK,SAAU,CACb,IAAMqB,EAAkC,CAAC,EACzC,OAAW,CAAC/B,EAAKO,CAAK,IAAK,OAAO,QAAQG,EAAO,YAAc,CAAC,CAAC,EAC3DF,GAAcZ,EAAMW,CAAK,EAAE,OAAO,YACtCwB,EAAO/B,CAAG,EAAI2B,GAAkB/B,EAAMW,EAAOuB,EAAUD,EAAQ,CAAC,GAElE,MAAI,CAACnB,EAAO,YAAc,OAAOA,EAAO,sBAAyB,WAC/DqB,EAAO,IAAMJ,GAAkB/B,EAAMc,EAAO,qBAAsBoB,EAAUD,EAAQ,CAAC,GAEhFE,CACT,CACA,IAAK,QACH,OAAOrB,EAAO,MAAQ,CAACiB,GAAkB/B,EAAMc,EAAO,MAAOoB,EAAUD,EAAQ,CAAC,CAAC,EAAI,CAAC,EACxF,IAAK,UACH,OAAOnB,EAAO,SAAW,EAC3B,IAAK,SACH,OAAOA,EAAO,SAAW,EAC3B,IAAK,UACH,MAAO,GACT,IAAK,SACH,OAAOgB,GAAehB,EAAO,MAAM,GAAK,SAC1C,QACE,OAAO,IACX,CACF,CAIO,SAASsB,GAAapC,EAAqBqC,EAAuC,CACvF,GAAI,CAACA,EAAO,OACZ,GAAIA,EAAM,UAAY,OAAW,OAAOA,EAAM,QAE9C,IAAMC,EAAQD,EAAM,UAAY,OAAO,OAAOA,EAAM,QAAQ,EAAE,CAAC,EAC/D,OAAIC,EAAchC,GAAMN,EAAMsC,CAAK,EAAE,KAAK,MAEnCP,GAAkB/B,EAAMqC,EAAM,MAAM,CAC7C,CAGO,SAASE,GAAcvC,EAAqBqC,EAAsF,CACvI,OAAKA,GAAO,SAEL,OAAO,QAAQA,EAAM,QAAQ,EAAE,IAAI,CAAC,CAACjC,EAAKO,CAAK,IAAM,CAC1D,GAAM,CAAE,KAAAR,CAAK,EAAIG,GAAMN,EAAMW,CAAK,EAClC,MAAO,CAAE,IAAAP,EAAK,QAASD,EAAK,SAAWC,EAAK,MAAOD,EAAK,KAAM,CAChE,CAAC,EAL4B,CAAC,CAMhC,CChFO,IAAMqC,GAA6B,CAAC,MAAO,MAAO,OAAQ,SAAU,UAAW,OAAQ,QAAS,OAAO,EAEvG,SAASC,GAAQ9B,EAAwB,CAC9C,OAAO,OAAOA,CAAK,EAChB,YAAY,EACZ,QAAQ,QAAS,EAAE,EACnB,QAAQ,cAAe,GAAG,EAC1B,QAAQ,WAAY,EAAE,CAC3B,CAEO,IAAM+B,GAAa3B,GAAyB,OAAO0B,GAAQ1B,CAAI,CAAC,GAC1D4B,GAAe5B,GAAyB,SAASA,CAAI,GAElE,SAAS6B,GAAgBC,EAAgBC,EAAcC,EAAsB,CAC3E,MAAO,aAAaA,EAAcN,GAAQM,CAAW,EAAI,GAAGF,CAAM,IAAIJ,GAAQK,CAAI,CAAC,EAAE,EACvF,CAIA,SAASE,GAAgBhD,EAAqBiD,EAAwB,CAAC,EAAGC,EAAsB,CAAC,EAAG,CAClG,IAAMC,EAAQ,IAAI,IAElB,QAAWC,IAAO,CAAC,GAAGH,EAAY,GAAGC,CAAQ,EAAG,CAC9C,GAAM,CAAE,KAAA/C,CAAK,EAAIG,GAAMN,EAAMoD,CAAG,EAC5BjD,EAAK,MAAMgD,EAAM,IAAI,GAAGhD,EAAK,EAAE,IAAIA,EAAK,IAAI,GAAIA,CAAI,CAC1D,CACA,MAAO,CAAC,GAAGgD,EAAM,OAAO,CAAC,CAC3B,CAEA,SAASE,GAAarD,EAAqBsD,EAAuB,CAAC,EAAe,CAChF,OAAO,OAAO,QAAQA,CAAK,EAAE,IAAI,CAAC,CAACvC,EAAMqC,CAAG,IAAM,CAChD,GAAM,CAAE,KAAAjD,CAAK,EAAIG,GAAMN,EAAMoD,CAAG,EAChC,MAAO,CACL,KAAArC,EACA,YAAaZ,EAAK,YAClB,aAAcA,EAAK,aACnB,WAAYA,EAAK,YAAc,CAAC,EAChC,YAAaA,EAAK,YAClB,YAAaA,EAAK,aAAe,EACnC,CACF,CAAC,CACH,CAEA,SAASoD,GAAiBvD,EAAqBwD,EAA2B,CAAC,EAAmB,CAC5F,OAAO,OAAO,QAAQA,CAAS,EAAE,IAAI,CAAC,CAACC,EAAQL,CAAG,IAAM,CACtD,GAAM,CAAE,KAAAjD,CAAK,EAAIG,GAAMN,EAAMoD,CAAG,EAChC,MAAO,CACL,OAAAK,EACA,YAAatD,EAAK,aAAe,GACjC,SAAUA,EAAK,QAAQ,EACvB,QAASA,EAAK,SAAW,CAAC,EAC1B,QAAS,OAAO,YACd,OAAO,QAAQA,EAAK,SAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAACC,EAAKO,CAAK,IAAM,CAACP,EAAKE,GAAMN,EAAMW,CAAK,EAAE,IAAI,CAAC,CACzF,EACA,MAAO0C,GAAarD,EAAMG,EAAK,KAAK,CACtC,CACF,CAAC,CACH,CAIA,SAASuD,GACP1D,EACA6C,EACAC,EACAa,EACAC,EACAC,EACAC,EACW,CACX,IAAMC,EAAcH,EAAG,YAActD,GAAMN,EAAM4D,EAAG,WAAW,EAAE,KAAO,KAClEI,EAASH,IAAS,YAAcjB,GAAgBC,EAAQC,EAAMc,EAAG,WAAW,EAAI,GAAGE,CAAY,IAAIrB,GAAQmB,EAAG,aAAe,GAAGd,CAAI,IAAID,CAAM,EAAE,CAAC,GACvJ,MAAO,CACL,OAAAmB,EACA,KAAAH,EACA,OAAAhB,EACA,KAAAC,EACA,QAASc,EAAG,SAAW,GACvB,YAAaA,EAAG,aAAe,GAC/B,SAAUA,EAAG,QAAQ,EACrB,YAAaA,EAAG,YAChB,WAAY,EAAQA,EAAG,WACvB,KAAMA,EAAG,MAAM,OAASA,EAAG,KAAO,CAAC,SAAS,EAC5C,WAAYZ,GAAgBhD,EAAM2D,EAAS,WAAYC,EAAG,UAAU,EACpE,YAAAG,EACA,UAAWR,GAAiBvD,EAAM4D,EAAG,SAAS,EAC9C,UAAWC,IAAS,WAAa,CAAC,EAAII,GAAiBjE,EAAM4D,EAAG,UAAWI,CAAM,EACjF,SAAUJ,EAAG,UAAY5D,EAAK,UAAY,CAAC,EAC3C,QAAS4D,EAAG,SAAWD,EAAS,SAAW3D,EAAK,SAAW,CAAC,CAC9D,CACF,CAEA,SAASkE,GAAalE,EAAuB8C,EAAcxB,EAAeuC,EAAyBC,EAAmC,CACpI,IAAMH,EAAWrD,GAAMN,EAAMsB,CAAI,EAAE,KACnC,OAAOkB,GAAa,OAAQK,GAAWc,EAASd,CAAM,CAAC,EAAE,IAAKA,GAC5Da,GAAe1D,EAAM6C,EAAQC,EAAMa,EAAUA,EAASd,CAAM,EAAGgB,EAAMC,CAAY,CACnF,CACF,CAGA,SAASG,GAAiBjE,EAAuBmE,EAA2B,CAAC,EAAGC,EAAsC,CACpH,OAAO,OAAO,QAAQD,CAAS,EAAE,IAAI,CAAC,CAACpD,EAAMqC,CAAG,IAAM,CACpD,GAAM,CAAE,KAAAjD,CAAK,EAAIG,GAAMN,EAAMoD,CAAG,EAC1BiB,EAAa,OAAO,QAAQlE,CAAI,EACnC,OAAO,CAAC,CAACmE,CAAU,IAAM,CAACA,EAAW,WAAW,IAAI,CAAC,EACrD,QAAQ,CAAC,CAACA,EAAYhD,CAAI,IAAM4C,GAAalE,EAAMsE,EAAYhD,EAAM,WAAY,GAAG8C,CAAY,aAAa3B,GAAQ1B,CAAI,CAAC,EAAE,CAAC,EAChI,MAAO,CAAE,KAAAA,EAAM,WAAAsD,CAAW,CAC5B,CAAC,CACH,CAIO,SAASE,GAAWvE,EAAiC,CAC1D,IAAMwE,EAAU,IAAI,KAA4BxE,EAAK,MAAQ,CAAC,GAAG,IAAKyE,GAAQ,CAACA,EAAI,KAAMA,CAAG,CAAC,CAAC,EACxFC,EAAS,IAAI,IAAyB,CAAC,GAAGF,EAAQ,KAAK,CAAC,EAAE,IAAKzD,GAAS,CAACA,EAAM,CAAC,CAAC,CAAC,CAAC,EACnFsD,EAA0B,CAAC,EAEjC,OAAW,CAACvB,EAAMxB,CAAI,IAAK,OAAO,QAAQtB,EAAK,OAAS,CAAC,CAAC,EACxD,QAAW2E,KAAaT,GAAalE,EAAM8C,EAAMxB,EAAM,YAAa,WAAW,EAAG,CAChF+C,EAAW,KAAKM,CAAS,EACzB,QAAWF,KAAOE,EAAU,KACrBD,EAAO,IAAID,CAAG,GAAGC,EAAO,IAAID,EAAK,CAAC,CAAC,EACxCC,EAAO,IAAID,CAAG,EAAG,KAAKE,CAAS,CAEnC,CAIF,IAAMC,EAAW,OAAO,QAAuB5E,EAAK,UAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAACe,EAAMO,CAAI,IACtF4C,GAAalE,EAAMe,EAAMO,EAAM,UAAW,WAAWmB,GAAQ1B,CAAI,CAAC,EAAE,CACtE,EAEM8D,EAAO,CAAC,GAAGH,EAAO,QAAQ,CAAC,EAC9B,OAAO,CAAC,CAAC,CAAElD,CAAI,IAAMA,EAAK,OAAS,CAAC,EACpC,IAAI,CAAC,CAACT,EAAMS,CAAI,KAAO,CACtB,KAAAT,EACA,OAAQ2B,GAAU3B,CAAI,EACtB,YAAayD,EAAQ,IAAIzD,CAAI,GAAG,aAAe,GAG/C,SAAUyD,EAAQ,IAAIzD,CAAI,IAAI,QAAQ,EACtC,WAAYS,CACd,EAAE,EAEEsD,EAAU,OAAO,QAAuB9E,EAAK,YAAY,SAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAACe,EAAMD,CAAM,KAAO,CACrG,KAAAC,EACA,OAAQ4B,GAAY5B,CAAI,EACxB,OAAAD,CACF,EAAE,EAEF,MAAO,CACL,QAASd,EAAK,SAAWA,EAAK,SAAW,GACzC,KAAMA,EAAK,MAAQ,CAAC,EACpB,QAASA,EAAK,SAAS,OAASA,EAAK,QAAU,CAAC,CAAE,IAAK,GAAI,CAAC,EAC5D,gBAAiBA,EAAK,YAAY,iBAAmB,CAAC,EACtD,KAAA6E,EACA,WAAAR,EACA,SAAAO,EACA,QAAAE,CACF,CACF,CAGO,SAASC,GAAUC,EAAsBC,EAAiC,CAAC,EAAW,CAC3F,OAAOD,EAAO,IAAI,QAAQ,eAAgB,CAACE,EAAO9E,IAAgB6E,EAAO7E,CAAG,GAAK4E,EAAO,YAAY5E,CAAG,GAAG,SAAW8E,CAAK,CAC5H,CAGO,SAASC,GAAWC,EAAiBC,EAAuC,CACjF,GAAIA,EAAK,YAAa,OAAOD,EAAM,WAAW,KAAMT,GAAcA,EAAU,cAAgBU,EAAK,WAAW,EAC5G,IAAMH,EAAQ,6BAA6B,KAAKG,EAAK,cAAgB,EAAE,EACvE,GAAI,CAACH,EAAO,OACZ,IAAMpC,EAAOoC,EAAM,CAAC,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,EAC5D,OAAOE,EAAM,WAAW,KAAMT,GAAcA,EAAU,OAAS7B,GAAQ6B,EAAU,SAAWO,EAAM,CAAC,CAAC,CACtG,CC5KO,SAASI,GAAcC,EAAmC,CAAC,EAAuB,CACvF,IAAMC,EAAQ,OAAO,KAAKD,CAAO,EACjC,OAAOC,EAAM,KAAMnE,GAAS,QAAQ,KAAKA,CAAI,CAAC,GAAKmE,EAAM,CAAC,CAC5D,CAEO,SAASC,GAAiBzF,EAAqB0F,EAA2B,CAC/E,GAAIA,EAAM,UAAY,OAAW,OAAOA,EAAM,QAC9C,IAAMpD,EAAQoD,EAAM,UAAY,OAAO,OAAOA,EAAM,QAAQ,EAAE,CAAC,EAC/D,OAAIpD,GAAO,QAAU,OAAkBA,EAAM,MACtCP,GAAkB/B,EAAM0F,EAAM,MAAM,CAC7C,CAIO,SAASC,GAAc3F,EAAqB2E,EAAuC,OACxF,IAAMM,EAA0B,CAAE,KAAM,CAAC,EAAG,MAAO,CAAC,EAAG,OAAQ,CAAC,EAAG,OAAQ,CAAC,CAAE,EAE9E,QAAWS,KAASf,EAAU,WAAY,CACxC,IAAMiB,EAAUH,GAAiBzF,EAAM0F,CAAK,EACtCG,EAAUH,EAAM,KAAO,QAAUA,EAAM,SAC7CT,EAAAa,EAAOJ,EAAM,MAAbT,EAAAa,GAAqB,CAAC,GACtBb,EAAOS,EAAM,EAAE,EAAEA,EAAM,IAAI,EAAIG,GAAWD,IAAY,QAAaA,IAAY,KAAO,OAAOA,CAAO,EAAI,EAC1G,CACA,OAAOX,CACT,CAUO,IAAMc,GAAeC,GAAgC,yBAAyB,KAAKA,GAAe,EAAE,EAErGC,GAAYnF,GAChBA,EAAO,OAAS,WAAaA,EAAO,SAAW,UAAYA,EAAO,SAAW,UAAY,EAAQA,EAAO,kBAMnG,SAASoF,GAAYlG,EAAqBqC,EAA+C,CAC9F,GAAM,CAAE,OAAAvB,CAAO,EAAIF,GAAcZ,EAAMqC,GAAO,QAAU,CAAC,CAAC,EACpDuD,EAAUxD,GAAapC,EAAMqC,CAAK,GAAK,CAAC,EACxC8D,EAAsB,CAAC,EAE7B,OAAW,CAACpF,EAAMqC,CAAG,IAAK,OAAO,QAAuBtC,EAAO,YAAc,CAAC,CAAC,EAAG,CAChF,IAAMsF,EAAWxF,GAAcZ,EAAMoD,CAAG,EAAE,OACpCiD,EAAQD,EAAS,OAAS,SAAWA,EAAS,MAAQxF,GAAcZ,EAAMoG,EAAS,KAAK,EAAE,OAAS,KACzG,GAAIH,GAASG,CAAQ,GAAMC,GAASJ,GAASI,CAAK,EAAI,CACpDF,EAAO,KAAK,CAAE,KAAApF,EAAM,KAAM,CAAE,KAAM,GAAGA,CAAI,OAAQ,KAAMsB,GAAO,WAAWtB,CAAI,GAAG,WAAY,CAAE,CAAC,EAC/F,QACF,CACA,IAAMJ,EAASiF,EAAoC7E,CAAI,EACvD,QAAWuF,KAAS,MAAM,QAAQ3F,CAAK,EAAIA,EAAQ,CAACA,CAAK,EAC5B2F,GAAU,MACrCH,EAAO,KAAK,CAAE,KAAApF,EAAM,MAAO,OAAOuF,GAAU,SAAW,KAAK,UAAUA,CAAK,EAAI,OAAOA,CAAK,CAAE,CAAC,CAElG,CACA,OAAOH,CACT,CAEO,SAASI,GAAYvG,EAAqB2E,EAAmC,CAClF,IAAMY,EAAUZ,EAAU,aAAa,QACjCtD,EAAOiE,GAAcC,CAAO,EAClC,GAAI,CAAClE,EAAM,MAAO,CAAE,YAAa,KAAM,KAAM,EAAG,EAEhD,GAAI0E,GAAY1E,CAAI,EAAG,MAAO,CAAE,YAAaA,EAAM,KAAM,GAAI,KAAM6E,GAAYlG,EAAMuF,EAAQlE,CAAI,CAAC,CAAE,EAEpG,IAAMuE,EAAUxD,GAAapC,EAAMuF,EAAQlE,CAAI,CAAC,EAChD,OAAIuE,IAAY,OAAkB,CAAE,YAAavE,EAAM,KAAM,EAAG,EACzD,CAAE,YAAaA,EAAM,KAAM,yBAAyB,KAAKA,CAAI,EAAImF,GAAWZ,CAAO,EAAI,KAAK,UAAUA,EAAS,KAAM,CAAC,CAAE,CACjI,CAIO,SAASY,GAAW7F,EAAwB,CACjD,GAAI,CAACA,GAAS,OAAOA,GAAU,UAAY,MAAM,QAAQA,CAAK,EAAG,MAAO,GACxE,IAAM8F,EAAS,IAAI,gBACnB,OAAW,CAACrG,EAAKkB,CAAI,IAAK,OAAO,QAAQX,CAAgC,EACvE,QAAW2F,KAAS,MAAM,QAAQhF,CAAI,EAAIA,EAAO,CAACA,CAAI,EACzBgF,GAAU,MACrCG,EAAO,OAAOrG,EAAK,OAAOkG,GAAU,SAAW,KAAK,UAAUA,CAAK,EAAI,OAAOA,CAAK,CAAC,EAGxF,OAAOG,EAAO,SAAS,CACzB,CAaO,SAASC,GACd/B,EACA,CAAE,OAAAK,EAAQ,OAAAC,EAAQ,KAAA0B,EAAM,KAAAC,EAAM,YAAAZ,EAAa,QAAAa,EAAU,CAAC,CAAE,EAC3C,CACb,IAAMC,GAAQ9B,EAASD,GAAUC,CAAM,EAAI,IAAI,QAAQ,OAAQ,EAAE,EAC3DlC,EAAO6B,EAAU,KAAK,QAAQ,eAAgB,CAACO,EAAO9E,IAAQ,CAClE,IAAMO,EAAQsE,EAAO,OAAO7E,CAAG,EAC/B,OAAOO,EAAQ,mBAAmBA,CAAK,EAAIuE,CAC7C,CAAC,EAEK6B,EAAQ,IAAI,gBAClB,OAAW,CAAC3G,EAAKO,CAAK,IAAK,OAAO,QAAQsE,EAAO,OAAS,CAAC,CAAC,EACtDtE,IAAU,IAAIoG,EAAM,OAAO3G,EAAKO,CAAK,EAE3C,IAAMqG,EAASD,EAAM,SAAS,EAExBE,EAAqC,CAAE,GAAGJ,CAAQ,EACxD,OAAW,CAACzG,EAAKO,CAAK,IAAK,OAAO,QAAQsE,EAAO,QAAU,CAAC,CAAC,EACvDtE,IAAU,KAAIsG,EAAW7G,CAAG,EAAIO,GAEtC,IAAMuG,EAAU,OAAO,QAAQjC,EAAO,QAAU,CAAC,CAAC,EAC/C,OAAO,CAAC,CAAC,CAAEtE,CAAK,IAAMA,IAAU,EAAE,EAClC,IAAI,CAAC,CAACP,EAAKO,CAAK,IAAM,GAAGP,CAAG,IAAIO,CAAK,EAAE,EACvC,KAAK,IAAI,EACRuG,IAASD,EAAW,OAASC,GAEjC,IAAMC,EAAc,CAAC,CAAC,MAAO,MAAM,EAAE,SAASxC,EAAU,MAAM,EACxDyC,EAAYD,GAAe,EAAQP,GAAM,QAAWb,GAAYC,CAAW,EAC3EqB,EAAU,CAACD,GAAaD,GAAe,EAAQR,EACjDU,GAAWrB,IAAaiB,EAAW,cAAc,EAAIjB,GAEzD,IAAMsB,EAAuB,CAC3B,OAAQ3C,EAAU,OAAO,YAAY,EACrC,IAAK,GAAGmC,CAAI,GAAGhE,CAAI,GAAGkE,EAAS,IAAIA,EAAO,QAAQ,OAAQ,GAAG,EAAE,QAAQ,OAAQ,GAAG,CAAC,GAAK,EAAE,GAC1F,QAASC,EACT,KAAMI,EAAUV,EAAO,MACzB,EACA,OAAIS,IAAWE,EAAQ,KAAOV,GACvBU,CACT,CCxIA,IAAMC,EAAM5G,GAAmB,KAAK,UAAU,OAAOA,CAAK,CAAC,EACrD6G,GAAM7G,GAAmB,IAAI,OAAOA,CAAK,EAAE,QAAQ,MAAO,MAAM,EAAE,QAAQ,KAAM,KAAK,CAAC,IACtF8G,GAAc9G,GAAmB,IAAI,OAAOA,CAAK,EAAE,QAAQ,KAAM,OAAO,CAAC,IACzE+G,GAAW/G,GAAmB,IAAI,OAAOA,CAAK,EAAE,QAAQ,KAAM,IAAI,CAAC,IACnEgH,GAAahH,GAAmB6G,GAAG7G,CAAK,EAAE,QAAQ,MAAO,KAAK,EAC9DiH,GAAejH,GAAmB4G,EAAG5G,CAAK,EAAE,QAAQ,MAAO,KAAK,EAChEkH,GAAS,CAACC,EAAcC,IAAmBD,EAAK,MAAM;CAAI,EAAE,KAAK;EAAKC,CAAM,EAAE,EAC9EC,GAAcnF,GAAmBA,EAAO,OAAO,CAAC,EAAIA,EAAO,MAAM,CAAC,EAAE,YAAY,EAChFC,GAAQmF,GAAqB,KAAKA,EAAM,KAAM,IAAI,GAClDC,GAAYD,GAAqBA,EAAM,KAAM,MAAQ,2BACrDE,GAASvB,GAAsBA,EAAK,OAAQqB,GAAUA,EAAM,IAAI,EAChEG,GAASxB,GAAsBA,EAAK,OAAQqB,GAAU,CAACA,EAAM,IAAI,EACjEI,GAAcxB,GAAoC,OAAO,QAAQA,CAAO,EACxEyB,GAAW,CAAC3H,EAAgB4H,IAAgBV,GAAO,KAAK,UAAUlH,EAAO,KAAM,CAAC,EAAG4H,CAAG,EAE5F,SAASC,GAASC,EAAa,CAC7B,GAAI,CACF,OAAO,IAAI,IAAIA,CAAG,CACpB,MAAQ,CACN,OAAO,IAAI,IAAIA,EAAK,kBAAkB,CACxC,CACF,CAEA,IAAMC,GAAO,CAACC,EAAiBb,IAAiB,GAAGa,CAAO,IAAIb,CAAI,GAKlE,SAASc,GAAK,CAAE,OAAA/F,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAC9D,IAAMiC,EAAQ,CAAC,kBAAkBhG,CAAM,GAAI,SAAS4E,GAAWgB,CAAG,CAAC,EAAE,EACrE,OAAW,CAACrI,EAAKO,CAAK,IAAK0H,GAAWxB,CAAO,EAAGgC,EAAM,KAAK,YAAYpB,GAAW,GAAGrH,CAAG,KAAKO,CAAK,EAAE,CAAC,EAAE,EAEvG,QAAWsH,KAASrB,EAClBiC,EAAM,KAAKZ,EAAM,KAAO,UAAUR,GAAW,GAAGQ,EAAM,IAAI,KAAKnF,GAAKmF,CAAK,CAAC,EAAE,CAAC,GAAK,iBAAiBR,GAAW,GAAGQ,EAAM,IAAI,IAAIA,EAAM,OAAS,EAAE,EAAE,CAAC,EAAE,EAEvJ,OAAOY,EAAM,KAAK;GAAS,CAC7B,CAEA,SAASC,GAAO,CAAE,OAAAjG,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAChE,IAAMiC,EAAQ,CAAC,oBAAoBhG,CAAM,IAAI4E,GAAWgB,CAAG,CAAC,EAAE,EAC9D,OAAW,CAACrI,EAAKO,CAAK,IAAK0H,GAAWxB,CAAO,EAAGgC,EAAM,KAAKpB,GAAW,GAAGrH,CAAG,IAAIO,CAAK,EAAE,CAAC,EACxF,QAAWsH,KAASrB,EAAMiC,EAAM,KAAKpB,GAAWQ,EAAM,KAAO,GAAGA,EAAM,IAAI,IAAInF,GAAKmF,CAAK,CAAC,GAAK,GAAGA,EAAM,IAAI,IAAIA,EAAM,OAAS,EAAE,EAAE,CAAC,EACnI,OAAOY,EAAM,KAAK;GAAS,CAC7B,CAKA,SAASE,GAASnC,EAAmBzG,EAAe,CAClD,IAAM6I,EAAQ,CAAC,8BAA8B,EAC7C,QAAWf,KAASrB,EACbqB,EAAM,KACF9H,EAAM6I,EAAM,KAAK,eAAezB,EAAGU,EAAM,IAAI,CAAC,sBAAsBV,EAAGzE,GAAKmF,CAAK,CAAC,CAAC,MAAMV,EAAGU,EAAM,KAAK,IAAI,CAAC,IAAI,EACpHe,EAAM,KAAK,eAAezB,EAAGU,EAAM,IAAI,CAAC,8DAA8D,EAF1Fe,EAAM,KAAK,eAAezB,EAAGU,EAAM,IAAI,CAAC,KAAKV,EAAGU,EAAM,OAAS,EAAE,CAAC,IAAI,EAIzF,OAAOe,CACT,CAEA,IAAMC,GAAerC,GAAuBuB,GAAMvB,CAAI,EAAE,OAAS,CAAC,wCAAyC,EAAE,EAAI,CAAC,EAElH,SAASsC,GAAY/I,EAAe,CAClC,MAAO,CAAC,CAAE,OAAA0C,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,IAAmB,CAC3D,IAAMuC,EAAU,CAAC,aAAa5B,EAAG1E,CAAM,CAAC,GAAG,EAC3C,OAAIwF,GAAWxB,CAAO,EAAE,QAAQsC,EAAQ,KAAK,cAAcb,GAASzB,EAAS,IAAI,CAAC,GAAG,EACrFsC,EAAQ,KAAK,eAAe,EACrB,CACL,GAAIhJ,EAAO8I,GAAYrC,CAAI,EAAI,CAAC,EAChC,GAAGmC,GAASnC,EAAMzG,CAAI,EACtB,GACA,gCAAgCoH,EAAGkB,CAAG,CAAC,MACvC,GAAGU,EACH,MACA,GACA,sCACA,oBACF,EAAE,KAAK;CAAI,CACb,CACF,CAEA,SAASC,GAAMjJ,EAAe,CAC5B,MAAO,CAAC,CAAE,OAAA0C,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,IAAmB,CAC3D,IAAMuC,EAAU,CAAC,aAAa5B,EAAG1E,CAAM,CAAC,IAAK,UAAU0E,EAAGkB,CAAG,CAAC,GAAG,EACjE,OAAIJ,GAAWxB,CAAO,EAAE,QAAQsC,EAAQ,KAAK,cAAcb,GAASzB,EAAS,IAAI,CAAC,GAAG,EACrFsC,EAAQ,KAAK,eAAe,EACrB,CACL,6BACA,GAAIhJ,GAAQgI,GAAMvB,CAAI,EAAE,OAAS,CAAC,uCAAuC,EAAI,CAAC,EAC9E,GACA,GAAGmC,GAASnC,EAAMzG,CAAI,EACtB,GACA,yCACA,GAAGgJ,EACH,MACA,GACA,oBACF,EAAE,KAAK;CAAI,CACb,CACF,CAEA,SAASE,GAAO,CAAE,OAAAxG,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAChE,IAAMuC,EAAU,CAAC,UAAU5B,EAAGkB,CAAG,CAAC,IAAK,aAAalB,EAAG1E,CAAM,CAAC,GAAG,EACjE,OAAIwF,GAAWxB,CAAO,EAAE,QAAQsC,EAAQ,KAAK,cAAcb,GAASzB,EAAS,IAAI,CAAC,GAAG,EACrFsC,EAAQ,KAAK,gBAAiB,wBAAyB,uBAAuB,EACvE,CAAC,GAAGJ,GAASnC,EAAM,EAAK,EAAG,GAAI,WAAY,GAAGuC,EAAS,0BAA2B,2BAA4B,KAAK,EAAE,KAAK;CAAI,CACvI,CAEA,SAASG,GAAI,CAAE,OAAAzG,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAC7D,MAAO,CACL,GAAGmC,GAASnC,EAAM,EAAK,EACvB,GACA,oCACA,YAAYW,EAAG1E,CAAM,CAAC,KAAK0E,EAAGkB,CAAG,CAAC,KAClC,GAAGJ,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,wBAAwB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,IAAI,EAC9F,GACA,uCACA,mCACA,MACA,GACA,iBACF,EAAE,KAAK;CAAI,CACb,CAEA,SAAS4I,GAAO,CAAE,OAAA1G,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAChE,IAAMuC,EAAU,CAAC,aAAa5B,EAAG1E,CAAM,CAAC,GAAG,EAC3C,OAAIwF,GAAWxB,CAAO,EAAE,QAAQsC,EAAQ,KAAK,cAAcb,GAASzB,EAAS,IAAI,CAAC,GAAG,EACrFsC,EAAQ,KAAK,eAAe,EACrB,CACL,8CACA,GAAIhB,GAAMvB,CAAI,EAAE,OAAS,CAAC,uCAAuC,EAAI,CAAC,EACtE,GACA,GAAGmC,GAASnC,EAAM,EAAI,EACtB,GACA,8CAA8CW,EAAGkB,CAAG,CAAC,MACrD,GAAGU,EACH,MACA,GACA,6CACF,EAAE,KAAK;CAAI,CACb,CAKA,IAAMK,GAAY7I,GAAmB,KAAK,UAAU,OAAOA,CAAK,CAAC,EAEjE,SAAS8I,GAAaC,EAAiB,CACrC,MAAO,CAAC,CAAE,OAAA7G,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,IAAmB,CAC3D,IAAMoC,EAAQ,CAAC,UAAUU,CAAO,GAAI,GAAI,SAASF,GAASf,CAAG,CAAC,EAAE,EAC1DkB,EAAO,CAACH,GAAS3G,CAAM,EAAG,KAAK,EACjCwF,GAAWxB,CAAO,EAAE,SACtBmC,EAAM,KAAK,cAAcX,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,GAAG6I,GAASpJ,CAAG,CAAC,KAAKoJ,GAAS7I,CAAK,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,EACxHgJ,EAAK,KAAK,iBAAiB,GAI7B,IAAMC,EAAU,IAAI,IACpB,QAAW3B,KAASG,GAAMxB,CAAI,EAAGgD,EAAQ,IAAI3B,EAAM,KAAM,CAAC,GAAI2B,EAAQ,IAAI3B,EAAM,IAAI,GAAK,CAAC,EAAIA,EAAM,OAAS,EAAE,CAAC,EAChH,GAAI2B,EAAQ,KAAM,CAChB,IAAMC,EAAU,CAAC,GAAGD,CAAO,EAAE,IAAI,CAAC,CAAC7I,EAAMkE,CAAM,IAAM,GAAGuE,GAASzI,CAAI,CAAC,KAAKkE,EAAO,OAAS,EAAI,IAAIA,EAAO,IAAIuE,EAAQ,EAAE,KAAK,IAAI,CAAC,IAAMA,GAASvE,EAAO,CAAC,CAAC,CAAC,EAAE,EAC7J+D,EAAM,KAAK,WAAWa,EAAQ,KAAK,IAAI,CAAC,GAAG,EAC3CF,EAAK,KAAK,WAAW,CACvB,CACA,IAAMG,EAAa3B,GAAMvB,CAAI,EAC7B,OAAAoC,EAAM,KACJ,YAAYc,EAAW,IAAK7B,GAAU,IAAIuB,GAASvB,EAAM,IAAI,CAAC,MAAMuB,GAASvB,EAAM,KAAM,IAAI,CAAC,UAAUuB,GAAS1G,GAAKmF,CAAK,CAAC,CAAC,YAAYuB,GAAStB,GAASD,CAAK,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,GACpL,EACA0B,EAAK,KAAK,aAAa,EACvBX,EAAM,KAAK,GAAI,cAAcU,CAAO,YAAYC,EAAK,KAAK,IAAI,CAAC,IAAK,GAAI,wBAAwB,EACzFX,EAAM,KAAK;CAAI,CACxB,CACF,CAKA,SAASe,GAAQ,CAAE,OAAAlH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CACjE,IAAMoC,EAAQ,CACZ,QACA,GACA,uBACA,GACA,6BACA,sBAAsBxB,GAAGiB,CAAG,CAAC,IAC7B,sCACA,gCAAgCjB,GAAG3E,CAAM,CAAC,GAC5C,EACMmH,EAAc3B,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,WAAW6G,GAAG,GAAGpH,CAAG,KAAKO,CAAK,EAAE,CAAC,GAAG,EAC9FqJ,EAAY,QAAQhB,EAAM,KAAK,8BAA+B,GAAGgB,EAAa,QAAQ,EAC1F,IAAMC,EAAQrD,EAAK,IAAKqB,GAAUA,EAAM,IAAI,EAC5C,OAAI,IAAI,IAAIgC,CAAK,EAAE,OAASA,EAAM,QAChCjB,EAAM,OAAO,EAAG,EAAG,GAAI,qHAAqH,EAE9IA,EAAM,KACJ,8BACA,GAAGpC,EAAK,IAAKqB,GACXA,EAAM,KACF,WAAWT,GAAGS,EAAM,IAAI,CAAC,oBAAoBT,GAAG1E,GAAKmF,CAAK,CAAC,CAAC,KAAKT,GAAGU,GAASD,CAAK,CAAC,CAAC,KAAKT,GAAGS,EAAM,KAAK,IAAI,CAAC,KAC5G,WAAWT,GAAGS,EAAM,IAAI,CAAC,OAAOT,GAAGS,EAAM,OAAS,EAAE,CAAC,GAC3D,EACA,SACA,MACA,GACA,gCACA,qBACA,GACA,iBACF,EACOe,EAAM,KAAK;CAAI,CACxB,CAEA,SAASkB,GAAO,CAAE,OAAArH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAChE,IAAMuC,EAAoB,CAAC,EAC3B,OAAId,GAAWxB,CAAO,EAAE,QACtBsC,EAAQ,KAAK,qBAAsB,GAAGd,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,WAAW6G,GAAGpH,CAAG,CAAC,OAAOoH,GAAG7G,CAAK,CAAC,GAAG,EAAG,QAAQ,EAElIwI,EAAQ,KACN,uBACA,GAAGvC,EAAK,IAAKqB,GACXA,EAAM,KACF,sBAAsBT,GAAGS,EAAM,IAAI,CAAC,yBAAyBT,GAAG1E,GAAKmF,CAAK,CAAC,CAAC,yBAAyBT,GAAGS,EAAM,KAAK,IAAI,CAAC,KACxH,sBAAsBT,GAAGS,EAAM,IAAI,CAAC,mBAAmBT,GAAGS,EAAM,OAAS,EAAE,CAAC,IAClF,EACA,QACF,EACO,CACL,QACA,GACA,iCACA,GACA,wCACA,GACA,gCAAgCT,GAAG3E,CAAM,CAAC,KAAK2E,GAAGiB,CAAG,CAAC;EAAQU,EAAQ,KAAK;CAAI,CAAC;KAChF,GACA,4BACF,EAAE,KAAK;CAAI,CACb,CAKA,SAASgB,GAAG,CAAE,OAAAtH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAC5D,IAAMkD,EAAa3B,GAAMvB,CAAI,EACvBD,EAAiB,CAAC,2BAA6B,sCAAuC,EAC5F,QAAWsB,KAASrB,EAAM,CACxB,GAAI,CAACqB,EAAM,KAAM,CACftB,EAAK,KAAK,sBAAuBY,EAAGU,EAAM,IAAI,CAAC,KAAKV,EAAGU,EAAM,OAAS,EAAE,CAAC,GAAG,EAC5E,QACF,CACA,IAAMmC,EAAW,OAAOzD,EAAK,MAAM,GACnCA,EAAK,KACH,GACA,IAAKyD,CAAQ,oBAAoB7C,EAAGzE,GAAKmF,CAAK,CAAC,CAAC,IAChD,mBACA,eACA,KACA,UAAWmC,CAAQ,WACnB,QAASA,CAAQ,gCAAgC7C,EAAGU,EAAM,IAAI,CAAC,KAAKV,EAAGU,EAAM,KAAK,IAAI,CAAC,IACvF,gBAAiBmC,CAAQ,KAAKA,CAAQ,GACxC,CACF,CACA,OAAAzD,EAAK,KAAK,iBAAkB,EAGrB,CACL,eACA,GACA,WACA,GANc,CAAC,UAAW,QAAS,OAAQ,mBAAoB,aAAc,GAAImD,EAAW,OAAS,CAAC,MAAM,EAAI,CAAC,CAAE,EAMxG,IAAKxI,GAAS,IAAKA,CAAI,EAAE,EACpC,IACA,GACA,gBACA,GAAGqF,EACH,GACA,8BAA+BY,EAAG1E,CAAM,CAAC,KAAK0E,EAAGkB,CAAG,CAAC,UACrD,gEACA,GAAGJ,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,mBAAoB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,GAAG,EACzF,GACA,0CACA,mBACA,eACA,KACA,0BACA,GACA,mCACA,6BACA,GACF,EAAE,KAAK;CAAI,CACb,CAEA,SAAS0J,GAAW,CAAE,OAAAxH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CACpE,MAAO,CACL,4CACA,GACA,iDACA,mCACA,GAAGA,EAAK,IAAKqB,GACXA,EAAM,KACF,wBAAwBV,EAAGU,EAAM,IAAI,CAAC,KAAKV,EAAGU,EAAM,KAAK,IAAI,CAAC,iCAAiCV,EAAGzE,GAAKmF,CAAK,CAAC,CAAC,sBAAsBV,EAAGW,GAASD,CAAK,CAAC,CAAC,MACvJ,wBAAwBV,EAAGU,EAAM,IAAI,CAAC,KAAKV,EAAGU,EAAM,OAAS,EAAE,CAAC,GACtE,EACA,gBACA,0CACA,YAAYV,EAAGkB,CAAG,CAAC,IACnB,eAAelB,EAAG1E,CAAM,CAAC,UACzB,GAAGwF,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,kBAAkB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,GAAG,EACvF,gBACA,GACA,yDACA,+CACF,EAAE,KAAK;CAAI,CACb,CAEA,SAAS2J,GAAa,CAAE,OAAAzH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CACtE,MAAO,CACL,8BACA,GACA,qCACA,mCACA,GAAGA,EAAK,IAAKqB,GACXA,EAAM,KACF,wBAAwBL,GAAYK,EAAM,IAAI,CAAC,KAAKL,GAAYK,EAAM,KAAK,IAAI,CAAC,UAAUL,GAAY9E,GAAKmF,CAAK,CAAC,CAAC,mBAAmBL,GAAYM,GAASD,CAAK,CAAC,CAAC,mBACjK,wBAAwBL,GAAYK,EAAM,IAAI,CAAC,KAAKL,GAAYK,EAAM,OAAS,EAAE,CAAC,GACxF,EACA,eACA,kCACA,YAAYL,GAAYa,CAAG,CAAC,IAC5B,eAAeb,GAAY/E,CAAM,CAAC,UAClC,GAAGwF,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,kBAAkBiH,GAAYxH,CAAG,CAAC,KAAKwH,GAAYjH,CAAK,CAAC,GAAG,EACzG,eACA,GACA,mDACA,kCACF,EAAE,KAAK;CAAI,CACb,CAEA,SAAS4J,GAAiB,CAAE,OAAA1H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAC1E,IAAMoC,EAAQ,CAAC,iCAAkC,kDAAkD,EACnG,QAAWf,KAASrB,EAClBoC,EAAM,KACJf,EAAM,KACF,4CAA4CV,EAAGzE,GAAKmF,CAAK,CAAC,CAAC,OAAOV,EAAGU,EAAM,IAAI,CAAC,KAAKV,EAAGU,EAAM,KAAK,IAAI,CAAC,KACxG,8BAA8BV,EAAGU,EAAM,OAAS,EAAE,CAAC,MAAMV,EAAGU,EAAM,IAAI,CAAC,IAC7E,EAEF,OAAAe,EAAM,KAAK,GAAI,uCAAwC,IAAK,+BAA+BzB,EAAG1E,CAAM,CAAC,KAAM,4BAA4B0E,EAAGkB,CAAG,CAAC,IAAI,EAC9IJ,GAAWxB,CAAO,EAAE,QACtBmC,EAAM,KAAK,gBAAiB,QAAS,GAAGX,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,aAAa4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,KAAK,EAAG,QAAQ,EAEtIqI,EAAM,KACJ,sBACA,KACA,GACA,wDACA,gEACF,EACOA,EAAM,KAAK;CAAI,CACxB,CAEA,SAASwB,GAAU,CAAE,OAAA3H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CACnE,MAAO,CACL,mBACA,GACA,+BAA+BW,EAAGkB,CAAG,CAAC,KACtC,4CAA4CT,GAAWnF,CAAM,CAAC,KAC9D,0CACA,GAAGwF,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,qBAAqB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,IAAI,EAC3F,GAAGiG,EAAK,IAAKqB,GACXA,EAAM,KAAO,mBAAmBV,EAAGU,EAAM,IAAI,CAAC,KAAKV,EAAGzE,GAAKmF,CAAK,CAAC,CAAC,KAAO,wBAAwBV,EAAGU,EAAM,IAAI,CAAC,KAAKV,EAAGU,EAAM,OAAS,EAAE,CAAC,IAC3I,EACA,GACA,qDACA,sCACF,EAAE,KAAK;CAAI,CACb,CAEA,SAASwC,GAAK,CAAE,OAAA5H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAC9D,IAAMoC,EAAQ,CAAC,gBAAiB,qBAAsB,GAAI,aAAaxB,GAAGiB,CAAG,CAAC,IAAK,GAAI,0CAA0C,EAC7HD,GAASC,CAAG,EAAE,WAAa,UAAUO,EAAM,KAAK,qBAAqB,EACzEA,EAAM,KAAK,GAAI,wBAAwBhB,GAAWnF,CAAM,CAAC,WAAW,EACpE,OAAW,CAACzC,EAAKO,CAAK,IAAK0H,GAAWxB,CAAO,EAAGmC,EAAM,KAAK,WAAWxB,GAAGpH,CAAG,CAAC,OAAOoH,GAAG7G,CAAK,CAAC,EAAE,EAC/F,IAAMkI,EAAQjC,EAAK,IAAKqB,GAAWA,EAAM,KAAO,IAAIT,GAAGS,EAAM,IAAI,CAAC,eAAeT,GAAG1E,GAAKmF,CAAK,CAAC,CAAC,KAAO,IAAIT,GAAGS,EAAM,IAAI,CAAC,KAAKT,GAAGS,EAAM,OAAS,EAAE,CAAC,GAAI,EACvJ,OAAAe,EAAM,KAAK,qBAAqBH,EAAM,KAAK,IAAI,CAAC,4BAA6B,GAAI,mCAAoC,yBAAyB,EACvIG,EAAM,KAAK;CAAI,CACxB,CAEA,SAAS0B,GAAM,CAAE,OAAA7H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAC/D,IAAMoC,EAAQ,CACZ,oBACA,GACA,yBAAyBzB,EAAGkB,CAAG,CAAC,KAChC,qCACA,wBAAwBlB,EAAG1E,CAAM,CAAC,EACpC,EACA,OAAW,CAACzC,EAAKO,CAAK,IAAK0H,GAAWxB,CAAO,EAAGmC,EAAM,KAAK,oBAAoBzB,EAAG5G,CAAK,CAAC,yBAAyB4G,EAAGnH,CAAG,CAAC,GAAG,EAC3H4I,EAAM,KACJ,GACA,kDACA,qGACA,GACA,mBACF,EACA,QAAWf,KAASrB,EAAM,CACxB,IAAM7F,EAAO,KAAK,UAAUkH,EAAM,IAAI,EAAE,MAAM,EAAG,EAAE,EACnD,GAAIA,EAAM,KAAM,CACd,IAAM0C,EAAW,KAAK,UAAU1C,EAAM,KAAK,IAAI,EAAE,MAAM,EAAG,EAAE,EAC5De,EAAM,KACJ,4EAA4EjI,CAAI,oBAAoB4J,CAAQ,0BAA0BzC,GAASD,CAAK,CAAC,qCACrJ,yDAAyDV,EAAGzE,GAAKmF,CAAK,CAAC,CAAC,MACxE,2CACF,CACF,KAAO,CACL,IAAMtH,EAAQ,KAAK,UAAUsH,EAAM,OAAS,EAAE,EAAE,MAAM,EAAG,EAAE,EAC3De,EAAM,KAAK,4EAA4EjI,CAAI,kBAAkBJ,CAAK,8BAA8B,CAClJ,CACF,CACA,OAAAqI,EAAM,KACJ,4DACA,0BACA,GACA,iEACA,8CACF,EACOA,EAAM,KAAK;CAAI,CACxB,CAEA,SAAS4B,GAAK,CAAE,OAAA/H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAC9D,IAAMoC,EAAQ,CAAC,2CAA4C,GAAI,qBAAqB,EACpFA,EAAM,KAAK,2CAA2CrB,GAAU9E,CAAM,CAAC,eAAe8E,GAAUc,CAAG,CAAC,KAAK,EACrGJ,GAAWxB,CAAO,EAAE,QACtBmC,EAAM,KAAK,6BAA8B,GAAGX,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,OAAOgH,GAAUvH,CAAG,CAAC,KAAKuH,GAAUhH,CAAK,CAAC,GAAG,EAAG,OAAO,EAG/I,IAAMkK,EAAS,IAAI,IACnB,QAAW5C,KAASG,GAAMxB,CAAI,EAAGiE,EAAO,IAAI5C,EAAM,MAAO4C,EAAO,IAAI5C,EAAM,IAAI,GAAK,GAAK,CAAC,EACzF,QAAWA,KAASrB,EACdqB,EAAM,KAAMe,EAAM,KAAK,yDAAyDrB,GAAUM,EAAM,IAAI,CAAC,KAAKN,GAAU7E,GAAKmF,CAAK,CAAC,CAAC,KAAK,EAChI4C,EAAO,IAAI5C,EAAM,IAAI,EAAK,EAAGe,EAAM,KAAK,qDAAqDrB,GAAUM,EAAM,IAAI,CAAC,KAAKN,GAAUM,EAAM,OAAS,EAAE,CAAC,KAAK,EAC5Je,EAAM,KAAK,oBAAoBrB,GAAUM,EAAM,IAAI,CAAC,OAAON,GAAUM,EAAM,OAAS,EAAE,CAAC,GAAG,EAEjG,OAAAe,EAAM,KAAK,GAAI,2CAA4C,kDAAmD,GAAG,EAC1GA,EAAM,KAAK;CAAI,CACxB,CAEA,SAAS8B,GAAK,CAAE,OAAAjI,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CAE9D,IAAMmE,EADW,CAAC,MAAO,OAAQ,MAAO,SAAU,OAAQ,UAAW,QAAS,OAAO,EACzD,SAASlI,CAAM,EAAI,oBAAoBA,CAAM,GAAK,gCAAgC0E,EAAG1E,CAAM,CAAC,KACxH,MAAO,CACL,0CACA,iBACA,8DACA,2CACA,GACA,iDACA,GAAG+D,EAAK,IAAKqB,GACXA,EAAM,KACF,iBAAiBV,EAAGU,EAAM,IAAI,CAAC,mDAAmDV,EAAGzE,GAAKmF,CAAK,CAAC,CAAC,iBAAiBV,EAAGU,EAAM,KAAK,IAAI,CAAC,KACrI,iBAAiBV,EAAGU,EAAM,IAAI,CAAC,KAAKV,EAAGU,EAAM,OAAS,EAAE,CAAC,GAC/D,EACA,YACA,GACA,4BACA,oBAAoB8C,CAAU,KAAKxD,EAAGkB,CAAG,CAAC,IAC1C,GAAGJ,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,mBAAmB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,GAAG,EACxF,2BACA,kBACA,mBACA,GACA,8CACA,aACA,GACF,EAAE,KAAK;CAAI,CACb,CAEA,SAASqK,GAAQ,CAAE,OAAAnI,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CACjE,IAAMoC,EAAQ,CACZ,yBACA,GACA,mBACA,mCACA,GACA,mDAAmDzB,EAAG1E,CAAM,CAAC,KAC7D,yCAAyC0E,EAAGkB,CAAG,CAAC,KAChD,GACA,uCACA,GAAGJ,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,0CAA0C4G,EAAG,GAAGnH,CAAG,KAAKO,CAAK,EAAE,CAAC,IAAI,EACjH,yDACA,GACA,4CACA,wBACF,EACA,QAAWsH,KAASrB,EAClBoC,EAAM,KAAK,oCAAqC,0BAA0BzB,EAAGU,EAAM,IAAI,CAAC,IAAI,EAC5Fe,EAAM,KAAKf,EAAM,KAAO,8BAA8BV,EAAGzE,GAAKmF,CAAK,CAAC,CAAC,KAAO,0BAA0BV,EAAGU,EAAM,OAAS,EAAE,CAAC,0BAA0B,EAEvJ,OAAAe,EAAM,KACJ,oDACA,GACA,4CACA,GACA,0BACA,kCACA,6BACA,sBACA,GACF,EACOA,EAAM,KAAK;CAAI,CACxB,CAEA,SAASiC,GAAW,CAAE,OAAApI,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CACpE,IAAMoC,EAAkB,CAAC,yBAAyB,EAC5CW,EAAO,CAAC,QAAQjC,GAAQe,CAAG,CAAC,GAAI,WAAW5F,CAAM,EAAE,EACrDwF,GAAWxB,CAAO,EAAE,SACtBmC,EAAM,KAAK,gBAAiB,GAAGX,GAAWxB,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,OAAO+G,GAAQtH,CAAG,CAAC,MAAMsH,GAAQ/G,CAAK,CAAC,EAAE,EAAG,GAAG,EACxHgJ,EAAK,KAAK,mBAAmB,GAG/B,IAAMC,EAAU,IAAI,IACpB,QAAW3B,KAASrB,EAAM,CACxB,IAAMjG,EAAQsH,EAAM,KAAO,mBAAmBP,GAAQ5E,GAAKmF,CAAK,CAAC,CAAC,IAAMP,GAAQO,EAAM,OAAS,EAAE,EACjG2B,EAAQ,IAAI3B,EAAM,KAAM,CAAC,GAAI2B,EAAQ,IAAI3B,EAAM,IAAI,GAAK,CAAC,EAAItH,CAAK,CAAC,CACrE,CACA,OAAAqI,EAAM,KACJ,aACA,GAAG,CAAC,GAAGY,CAAO,EAAE,IAAI,CAAC,CAAC7I,EAAMkE,CAAM,IAAM,OAAOyC,GAAQ3G,CAAI,CAAC,MAAMkE,EAAO,OAAS,EAAI,KAAKA,EAAO,KAAK,IAAI,CAAC,IAAMA,EAAO,CAAC,CAAC,EAAE,EAC7H,IACA,EACF,EACA0E,EAAK,KAAK,aAAa,EACvBX,EAAM,KAAK,iCAAiCW,EAAK,KAAK,GAAG,CAAC,GAAI,sCAAsC,EAC7FX,EAAM,KAAK;CAAI,CACxB,CAEA,IAAMkC,GAAW,mBAEjB,SAASC,GAAQ,CAAE,OAAAtI,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAD,EAAO,CAAC,CAAE,EAAgB,CACjE,IAAMnG,EAAS+H,GAASC,CAAG,EACrBO,EAAQ,CAAC,GAAGnG,CAAM,IAAIpC,EAAO,QAAQ,GAAGA,EAAO,MAAM,YAAa,SAASA,EAAO,IAAI,EAAE,EAC9F,OAAW,CAACL,EAAKO,CAAK,IAAK0H,GAAWxB,CAAO,EAAGmC,EAAM,KAAK,GAAG5I,CAAG,KAAKO,CAAK,EAAE,EAC7EqI,EAAM,KAAK,+CAA+CkC,EAAQ,GAAI,EAAE,EACxE,QAAWjD,KAASrB,EAClBoC,EAAM,KAAK,KAAKkC,EAAQ,EAAE,EACtBjD,EAAM,KACRe,EAAM,KAAK,yCAAyCf,EAAM,IAAI,gBAAgBA,EAAM,KAAK,IAAI,IAAK,iBAAiBC,GAASD,CAAK,CAAC,GAAI,GAAI,gBAAgBA,EAAM,KAAK,IAAI,GAAG,EAE5Ke,EAAM,KAAK,yCAAyCf,EAAM,IAAI,IAAK,GAAIA,EAAM,OAAS,EAAE,EAG5F,OAAAe,EAAM,KAAK,KAAKkC,EAAQ,IAAI,EACrBlC,EAAM,KAAK;CAAI,CACxB,CAGO,IAAMoC,GAAuE,CAClF,aAAcxC,GACd,aAAc,IAAMF,GAAK,IAAK,uEAAuE,EACrG,eAAgBI,GAChB,mBAAoBI,GAAY,EAAK,EACrC,mBAAoBE,GAAM,EAAK,EAC/B,oBAAqBC,GACrB,iBAAkBC,GAClB,aAAcJ,GAAY,EAAI,EAC9B,aAAcE,GAAM,EAAI,EACxB,cAAeG,GACf,YAAa,IAAMb,GAAK,KAAM,gFAAgF,EAC9G,kBAAmBe,GAAa,UAAU,EAC1C,eAAgBA,GAAa,OAAO,EACpC,qBAAsB,IAAMf,GAAK,IAAK,oFAAoF,EAC1H,WAAYqB,GACZ,aAAcG,GACd,YAAaC,GACb,kBAAmB,IAAMzB,GAAK,KAAM,2EAA2E,EAC/G,cAAe2B,GACf,gBAAiBC,GACjB,oBAAqBC,GACrB,mBAAoBC,GACpB,cAAeC,GACf,mBAAoBC,GACpB,YAAaE,GACb,eAAgBE,GAChB,YAAaE,GACb,wBAAyBC,GACzB,WAAYE,EACd,ECrkBM5D,EAAM5G,GAAU,KAAK,UAAU,OAAOA,CAAK,CAAC,EAC5C6G,GAAM7G,GAAU,IAAI,OAAOA,CAAK,EAAE,QAAQ,MAAO,MAAM,EAAE,QAAQ,KAAM,KAAK,CAAC,IAC7E8G,GAAc9G,GAAU,IAAI,OAAOA,CAAK,EAAE,QAAQ,KAAM,OAAO,CAAC,IAChE+G,GAAW/G,GAAU,IAAI,OAAOA,CAAK,EAAE,QAAQ,KAAM,IAAI,CAAC,IAC1DgH,GAAahH,GAAU6G,GAAG7G,CAAK,EAAE,QAAQ,MAAO,KAAK,EACrDiH,GAAejH,GAAU4G,EAAG5G,CAAK,EAAE,QAAQ,MAAO,KAAK,EAEvDkH,GAAS,CAACC,EAAMC,IAAWD,EAAK,MAAM;CAAI,EAAE,KAAK;EAAKC,CAAM,EAAE,EAEpE,SAASsD,GAAU1E,EAAM,CACvB,GAAIA,IAAS,OACb,GAAI,CACF,OAAO,KAAK,MAAMA,CAAI,CACxB,MAAQ,CACN,MACF,CACF,CAGA,IAAM2E,GAAW3E,GAAS,CACxB,IAAM4E,EAAOF,GAAU1E,CAAI,EAC3B,OAAO4E,IAAS,OAAY5E,EAAO,KAAK,UAAU4E,CAAI,CACxD,EAEMC,GAAiB3E,GACrB,OAAO,QAAQA,CAAO,EAAE,KAAK,CAAC,CAACzG,CAAG,IAAMA,EAAI,YAAY,IAAM,cAAc,IAAI,CAAC,EAE7EqL,GAAsB5E,GAC1B,OAAO,YAAY,OAAO,QAAQA,CAAO,EAAE,OAAO,CAAC,CAACzG,CAAG,IAAMA,EAAI,YAAY,IAAM,cAAc,CAAC,EAEpG,SAASoI,GAASC,EAAK,CACrB,GAAI,CACF,OAAO,IAAI,IAAIA,CAAG,CACpB,MAAQ,CACN,OAAO,IAAI,IAAIA,EAAK,kBAAkB,CACxC,CACF,CAEA,IAAMT,GAAcnF,GAAWA,EAAO,OAAO,CAAC,EAAIA,EAAO,MAAM,CAAC,EAAE,YAAY,EAG9E,SAAS6I,GAAS/K,EAAO4H,EAAM,GAAI,CACjC,GAAI5H,IAAU,KAAM,MAAO,OAC3B,GAAIA,IAAU,GAAM,MAAO,OAC3B,GAAIA,IAAU,GAAO,MAAO,QAC5B,GAAI,OAAOA,GAAU,SAAU,OAAO,KAAK,UAAUA,CAAK,EAC1D,IAAMgL,EAAO,GAAGpD,CAAG,OACnB,GAAI,MAAM,QAAQ5H,CAAK,EACrB,OAAOA,EAAM,OAAS;EAAMA,EAAM,IAAKW,GAASqK,EAAOD,GAASpK,EAAMqK,CAAI,CAAC,EAAE,KAAK;CAAK,CAAC;EAAMpD,CAAG,IAAM,KAEzG,IAAMsB,EAAU,OAAO,QAAQlJ,CAAK,EACpC,OAAOkJ,EAAQ,OACX;EAAMA,EAAQ,IAAI,CAAC,CAACzJ,EAAKkB,CAAI,IAAM,GAAGqK,CAAI,GAAG,KAAK,UAAUvL,CAAG,CAAC,KAAKsL,GAASpK,EAAMqK,CAAI,CAAC,EAAE,EAAE,KAAK;CAAK,CAAC;EAAMpD,CAAG,IACjH,IACN,CAEA,SAASqD,GAAMjL,EAAO4H,EAAM,GAAI,CAC9B,GAAI5H,IAAU,KAAM,MAAO,OAC3B,GAAI,OAAOA,GAAU,WAAa,OAAOA,GAAU,SAAU,OAAO,OAAOA,CAAK,EAChF,GAAI,OAAOA,GAAU,SAAU,OAAO6G,GAAG7G,CAAK,EAE9C,GAAI,CAAC,MAAM,QAAQA,CAAK,GAAK,OAAO,KAAKA,CAAK,EAAE,SAAW,EAAG,MAAO,cACrE,IAAMgL,EAAO,GAAGpD,CAAG,OACblC,EAAQ,MAAM,QAAQ1F,CAAK,EAC7BA,EAAM,IAAKW,GAASqK,EAAOC,GAAMtK,EAAMqK,CAAI,CAAC,EAC5C,OAAO,QAAQhL,CAAK,EAAE,IAAI,CAAC,CAACP,EAAKkB,CAAI,IAAM,GAAGqK,CAAI,GAAGnE,GAAGpH,CAAG,CAAC,OAAOwL,GAAMtK,EAAMqK,CAAI,CAAC,EAAE,EAC1F,OAAOtF,EAAM,OAAS;EAAMA,EAAM,KAAK;CAAK,CAAC;EAAMkC,CAAG,IAAM,IAC9D,CAEA,SAASsD,GAAOlL,EAAO4H,EAAM,GAAI,CAC/B,GAAI5H,IAAU,KAAM,MAAO,MAC3B,GAAI,OAAOA,GAAU,WAAa,OAAOA,GAAU,SAAU,OAAO,OAAOA,CAAK,EAChF,GAAI,OAAOA,GAAU,SAAU,OAAO6G,GAAG7G,CAAK,EAC9C,IAAMgL,EAAO,GAAGpD,CAAG,KACnB,GAAI,MAAM,QAAQ5H,CAAK,EACrB,OAAOA,EAAM,OAAS;EAAMA,EAAM,IAAKW,GAASqK,EAAOE,GAAOvK,EAAMqK,CAAI,CAAC,EAAE,KAAK;CAAK,CAAC;EAAKpD,CAAG,IAAM,KAEtG,IAAMsB,EAAU,OAAO,QAAQlJ,CAAK,EACpC,OAAOkJ,EAAQ,OACX;EAAMA,EAAQ,IAAI,CAAC,CAACzJ,EAAKkB,CAAI,IAAM,GAAGqK,CAAI,GAAGnE,GAAGpH,CAAG,CAAC,OAAOyL,GAAOvK,EAAMqK,CAAI,CAAC,EAAE,EAAE,KAAK;CAAK,CAAC;EAAKpD,CAAG,IACpG,IACN,CAEA,IAAMD,GAAW,CAAC3H,EAAO4H,IAAQV,GAAO,KAAK,UAAUlH,EAAO,KAAM,CAAC,EAAG4H,CAAG,EAG3E,SAASuD,GAAOnF,EAAM4B,EAAK,CACzB,IAAMgD,EAAOF,GAAU1E,CAAI,EAC3B,OAAO4E,IAAS,OAAYhE,EAAGZ,CAAI,EAAI,kBAAkB2B,GAASiD,EAAMhD,CAAG,CAAC,GAC9E,CAKA,SAASK,GAAK,CAAE,OAAA/F,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACzD,IAAMkC,EAAQ,CAAC,kBAAkBhG,CAAM,GAAI,SAAS4E,GAAWgB,CAAG,CAAC,EAAE,EACrE,OAAW,CAACrI,EAAKO,CAAK,IAAK,OAAO,QAAQkG,CAAO,EAAGgC,EAAM,KAAK,YAAYpB,GAAW,GAAGrH,CAAG,KAAKO,CAAK,EAAE,CAAC,EAAE,EAC3G,OAAIgG,IAAS,QAAWkC,EAAM,KAAK,UAAUpB,GAAWd,CAAI,CAAC,EAAE,EACxDkC,EAAM,KAAK;GAAS,CAC7B,CAEA,SAASkD,GAAK,CAAE,OAAAlJ,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACzD,IAAMkC,EAAQ,CAAC,eAAgB,YAAYhG,CAAM,EAAE,EACnD,OAAW,CAACzC,EAAKO,CAAK,IAAK,OAAO,QAAQkG,CAAO,EAAGgC,EAAM,KAAK,YAAYpB,GAAW,GAAGrH,CAAG,KAAKO,CAAK,EAAE,CAAC,EAAE,EAC3G,OAAIgG,IAAS,QAAWkC,EAAM,KAAK,eAAepB,GAAWd,CAAI,CAAC,EAAE,EACpEkC,EAAM,KAAK,sBAAuBpB,GAAWgB,CAAG,CAAC,EAC1CI,EAAM,KAAK;GAAS,CAC7B,CAEA,SAASC,GAAO,CAAE,OAAAjG,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC3D,IAAMqF,EAAU,QAAQnJ,CAAM,IAAI4E,GAAWgB,CAAG,CAAC,GAC3CI,EAAQ,CAAClC,IAAS,OAAY,eAAec,GAAWd,CAAI,CAAC,MAAMqF,CAAO,GAAKA,CAAO,EAC5F,OAAW,CAAC5L,EAAKO,CAAK,IAAK,OAAO,QAAQkG,CAAO,EAAGgC,EAAM,KAAKpB,GAAW,GAAGrH,CAAG,IAAIO,CAAK,EAAE,CAAC,EAC5F,OAAOkI,EAAM,KAAK;GAAS,CAC7B,CAKA,SAASK,GAAY,CAAE,OAAArG,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAChE,IAAMwC,EAAU,CAAC,aAAa5B,EAAG1E,CAAM,CAAC,GAAG,EAC3C,OAAI,OAAO,KAAKgE,CAAO,EAAE,QAAQsC,EAAQ,KAAK,cAAcb,GAASzB,EAAS,IAAI,CAAC,GAAG,EAClFF,IAAS,QAAWwC,EAAQ,KAAK,WAAW2C,GAAOnF,EAAM,IAAI,CAAC,GAAG,EAC9D,CAAC,gCAAgCY,EAAGkB,CAAG,CAAC,MAAO,GAAGU,EAAS,MAAO,GAAI,sCAAuC,oBAAoB,EAAE,KAAK;CAAI,CACrJ,CAEA,SAASC,GAAM,CAAE,OAAAvG,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC1D,IAAMwC,EAAU,CAAC,aAAa5B,EAAG1E,CAAM,CAAC,IAAK,UAAU0E,EAAGkB,CAAG,CAAC,GAAG,EAEjE,GADI,OAAO,KAAK5B,CAAO,EAAE,QAAQsC,EAAQ,KAAK,cAAcb,GAASzB,EAAS,IAAI,CAAC,GAAG,EAClFF,IAAS,OAAW,CACtB,IAAM4E,EAAOF,GAAU1E,CAAI,EAC3BwC,EAAQ,KAAK,WAAWoC,IAAS,OAAYhE,EAAGZ,CAAI,EAAI2B,GAASiD,EAAM,IAAI,CAAC,GAAG,CACjF,CACA,MAAO,CAAC,6BAA8B,GAAI,yCAA0C,GAAGpC,EAAS,MAAO,GAAI,oBAAoB,EAAE,KAAK;CAAI,CAC5I,CAEA,SAASE,GAAO,CAAE,OAAAxG,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC3D,IAAMwC,EAAU,CAAC,UAAU5B,EAAGkB,CAAG,CAAC,IAAK,aAAalB,EAAG1E,CAAM,CAAC,GAAG,EACjE,OAAI,OAAO,KAAKgE,CAAO,EAAE,QAAQsC,EAAQ,KAAK,cAAcb,GAASzB,EAAS,IAAI,CAAC,GAAG,EAClFF,IAAS,QAAWwC,EAAQ,KAAK,WAAW2C,GAAOnF,EAAM,IAAI,CAAC,GAAG,EAC9D,CAAC,WAAY,GAAGwC,EAAS,0BAA2B,2BAA4B,KAAK,EAAE,KAAK;CAAI,CACzG,CAEA,SAASG,GAAI,CAAE,OAAAzG,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACxD,MAAO,CACL,oCACA,YAAYY,EAAG1E,CAAM,CAAC,KAAK0E,EAAGkB,CAAG,CAAC,KAClC,GAAG,OAAO,QAAQ5B,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,wBAAwB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,IAAI,EAClG,GACA,uCACA,mCACA,MACA,GACAgG,IAAS,OAAY,YAAYmF,GAAOnF,EAAM,EAAE,CAAC,KAAO,aAC1D,EAAE,KAAK;CAAI,CACb,CAEA,SAAS4C,GAAO,CAAE,OAAA1G,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC3D,IAAMwC,EAAU,CAAC,aAAa5B,EAAG1E,CAAM,CAAC,GAAG,EAC3C,OAAI,OAAO,KAAKgE,CAAO,EAAE,QAAQsC,EAAQ,KAAK,cAAcb,GAASzB,EAAS,IAAI,CAAC,GAAG,EAClFF,IAAS,QAAWwC,EAAQ,KAAK,WAAW2C,GAAOnF,EAAM,IAAI,CAAC,GAAG,EAC9D,CACL,oCACA,GACA,8CAA8CY,EAAGkB,CAAG,CAAC,MACrD,GAAGU,EACH,MACA,GACA,6CACF,EAAE,KAAK;CAAI,CACb,CAEA,SAAS8C,GAAS,CAAE,OAAApJ,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC7D,IAAMuF,EAAM1D,GAASC,CAAG,EAAE,WAAa,SAAW,QAAU,OACtDU,EAAU,CAAC,aAAa5B,EAAG1E,CAAM,CAAC,GAAG,EAC3C,OAAI,OAAO,KAAKgE,CAAO,EAAE,QAAQsC,EAAQ,KAAK,cAAcb,GAASzB,EAAS,IAAI,CAAC,GAAG,EAC/E,CACL,UAAUqF,CAAG,eAAeA,CAAG,KAC/B,GACA,eAAeA,CAAG,YAAY3E,EAAGkB,CAAG,CAAC,MACrC,GAAGU,EACH,gBACA,mBACA,gDACA,4CACA,MACA,GACA,GAAIxC,IAAS,OAAY,CAAC,aAAamF,GAAOnF,EAAM,EAAE,CAAC,IAAI,EAAI,CAAC,EAChE,YACF,EAAE,KAAK;CAAI,CACb,CAKA,SAAS8C,GAAaC,EAAS,CAC7B,MAAO,CAAC,CAAE,OAAA7G,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,IAAmB,CACtD,IAAM4E,EAAOF,GAAU1E,CAAI,EACrBqC,EAAQ,CAAC,UAAUU,CAAO,GAAI,GAAI,SAASnC,EAAGkB,CAAG,CAAC,EAAE,EACpDkB,EAAO,CAACpC,EAAG1E,CAAM,EAAG,KAAK,EAE/B,OAAI,OAAO,KAAKgE,CAAO,EAAE,SACvBmC,EAAM,KAAK,aAAa0C,GAAS7E,CAAO,CAAC,EAAE,EAC3C8C,EAAK,KAAK,iBAAiB,GAEzB4B,IAAS,QACXvC,EAAM,KAAK,aAAa0C,GAASH,CAAI,CAAC,EAAE,EACxC5B,EAAK,KAAK,cAAc,GACfhD,IAAS,SAClBqC,EAAM,KAAK,aAAazB,EAAGZ,CAAI,CAAC,EAAE,EAClCgD,EAAK,KAAK,cAAc,GAE1BX,EAAM,KAAK,GAAI,cAAcU,CAAO,YAAYC,EAAK,KAAK,IAAI,CAAC,IAAK,GAAI,wBAAwB,EACzFX,EAAM,KAAK;CAAI,CACxB,CACF,CAEA,SAASmD,GAAiB,CAAE,OAAAtJ,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACrE,IAAMlG,EAAS+H,GAASC,CAAG,EACrB2D,EAAa3L,EAAO,WAAa,SAAW,kBAAoB,iBAChE8K,EAAOF,GAAU1E,CAAI,EACrBqC,EAAQ,CAAC,oBAAoB,EAC/BuC,IAAS,QAAWvC,EAAM,KAAK,aAAa,EAChDA,EAAM,KAAK,GAAI,sBAAsBoD,CAAU,IAAI7E,EAAG9G,EAAO,IAAI,CAAC,GAAG,EAErE,IAAI4L,EAAU,OACd,OAAId,IAAS,QACXvC,EAAM,KAAK,wBAAwB0C,GAASH,CAAI,CAAC,GAAG,EACpDc,EAAU,WACD1F,IAAS,SAClBqC,EAAM,KAAK,aAAazB,EAAGZ,CAAI,CAAC,EAAE,EAClC0F,EAAU,WAEZrD,EAAM,KAAK,aAAa0C,GAAS7E,CAAO,CAAC,EAAE,EAC3CmC,EAAM,KACJ,GACA,gBAAgBzB,EAAG1E,CAAM,CAAC,KAAK0E,EAAG9G,EAAO,SAAWA,EAAO,MAAM,CAAC,KAAK4L,CAAO,aAC9E,2BACA,GACA,mCACF,EACOrD,EAAM,KAAK;CAAI,CACxB,CAKA,SAASe,GAAQ,CAAE,OAAAlH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC5D,IAAM4E,EAAOF,GAAU1E,CAAI,EACrBqC,EAAQ,CACZ,QACA,GACA,uBACA,GACA,6BACA,sBAAsBxB,GAAGiB,CAAG,CAAC,IAC7B,sCACA,gCAAgCjB,GAAG3E,CAAM,CAAC,GAC5C,EACMmH,EAAc,OAAO,QAAQnD,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,WAAW6G,GAAG,GAAGpH,CAAG,KAAKO,CAAK,EAAE,CAAC,GAAG,EACtG,OAAIqJ,EAAY,QAAQhB,EAAM,KAAK,8BAA+B,GAAGgB,EAAa,QAAQ,EACtFuB,IAAS,OAAWvC,EAAM,KAAK,yCAAyC4C,GAAML,EAAM,MAAM,CAAC,IAAI,EAC1F5E,IAAS,QAAWqC,EAAM,KAAK,6BAA6BxB,GAAGb,CAAI,CAAC,GAAG,EAChFqC,EAAM,KAAK,MAAO,GAAI,gCAAiC,qBAAsB,GAAI,iBAAiB,EAC3FA,EAAM,KAAK;CAAI,CACxB,CAEA,SAASkB,GAAO,CAAE,OAAArH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC3D,IAAM4E,EAAOF,GAAU1E,CAAI,EACrBwC,EAAoB,CAAC,EACrBmD,EAAcf,IAAS,OAAYE,GAAmB5E,CAAO,EAAIA,EACvE,OAAI,OAAO,KAAKyF,CAAW,EAAE,QAAQnD,EAAQ,KAAK,oBAAoByC,GAAMU,EAAa,MAAM,CAAC,GAAG,EAC/Ff,IAAS,OAAWpC,EAAQ,KAAK,iBAAiByC,GAAML,EAAM,MAAM,CAAC,GAAG,EACnE5E,IAAS,QAAWwC,EAAQ,KAAK,iBAAiB3B,GAAGb,CAAI,CAAC,GAAG,EAE/D,CACL,QACA,GACA,iCACA,GACA,wCACA,GACAwC,EAAQ,OACJ,gCAAgC3B,GAAG3E,CAAM,CAAC,KAAK2E,GAAGiB,CAAG,CAAC;EAAQU,EAAQ,KAAK;CAAI,CAAC;KAChF,gCAAgC3B,GAAG3E,CAAM,CAAC,KAAK2E,GAAGiB,CAAG,CAAC,KAC1D,GACA,4BACF,EAAE,KAAK;CAAI,CACb,CAKA,SAAS0B,GAAG,CAAE,OAAAtH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACvD,IAAMU,EAAUV,IAAS,OACnB4F,EAAUlF,GAAW,CAACV,EAAK,SAAS,GAAG,EAAI,KAAKA,CAAI,KAAOU,EAAUE,EAAGZ,CAAI,EAAI,GAGtF,MAAO,CACL,eACA,GACA,WACA,GANc,CAAC,QAAS,OAAQ,aAAc,GAAIU,EAAU,CAAC,WAAW,EAAI,CAAC,CAAE,EAMpE,IAAK/F,GAAS,IAAKA,CAAI,EAAE,EACpC,IACA,GACA,gBACA,GAAI+F,EAAU,CAAC,iCAAkCkF,CAAO,IAAK,EAAE,EAAI,CAAC,EACpE,8BAA+BhF,EAAG1E,CAAM,CAAC,KAAK0E,EAAGkB,CAAG,CAAC,KAAKpB,EAAU,UAAY,KAAK,IACrF,GAAI,OAAO,KAAKR,CAAO,EAAE,OAAS,CAAC,GAAI,GAAG,OAAO,QAAQA,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,mBAAoB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,GAAG,CAAC,EAAI,CAAC,EAC1I,GACA,0CACA,mBACA,eACA,KACA,0BACA,GACA,mCACA,6BACA,GACF,EAAE,KAAK;CAAI,CACb,CAGA,IAAM6L,GAAY,CAAC7F,EAAM4B,IAAQ;EAAQA,CAAG,GAAGV,GAAOlB,EAAM4B,CAAG,CAAC;EAAKA,CAAG,MAExE,SAASkE,GAAe,CAAE,OAAA5J,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACnE,IAAM+F,EACJ/F,IAAS,OACL,uCAAuC6F,GAAU7F,EAAK,QAAQ,MAAO,MAAM,EAAG,UAAU,CAAC,IACzF,sCACN,MAAO,CACL,uBACA,mCACA,oCACA,qCACA,GACA,iDACA,uBAAuBY,EAAGkB,CAAG,CAAC,KAC9B,GAAG,OAAO,QAAQ5B,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,eAAe4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,GAAG,EACxF,eAAe4G,EAAG1E,CAAM,CAAC,KAAK6J,CAAS,IACvC,gBACA,GACA,6DACA,4DACA,GACA,sCACF,EAAE,KAAK;CAAI,CACb,CAEA,SAASrC,GAAW,CAAE,OAAAxH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC/D,IAAMU,EAAUV,IAAS,OACzB,MAAO,CACL,4CACA,GACA,GAAIU,EACA,CACE,yCAAyCE,EAAGiE,GAAc3E,CAAO,GAAK,YAAY,CAAC,KACnF,yCAAyCU,EAAG+D,GAAQ3E,CAAI,CAAC,CAAC,eAC5D,EACA,CAAC,EACL,0CACA,YAAYY,EAAGkB,CAAG,CAAC,IACnB,eAAelB,EAAG1E,CAAM,CAAC,KAAKwE,EAAU,OAAS,MAAM,IACvD,GAAG,OAAO,QAAQR,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,kBAAkB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,GAAG,EAC3F,gBACA,GACA,yDACA,+CACF,EAAE,KAAK;CAAI,CACb,CAEA,SAAS2J,GAAa,CAAE,OAAAzH,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACjE,IAAMU,EAAUV,IAAS,OACzB,MAAO,CACL,8BACA,GACA,GAAIU,EACA,CACE,mBAAmBO,GAAY4D,GAAc3E,CAAO,GAAK,YAAY,CAAC,iBACtE;EAAmBF,EAAK,QAAQ,MAAO,IAAM,QAAQ,CAAC;0CACxD,EACA,CAAC,EACL,kCACA,YAAYiB,GAAYa,CAAG,CAAC,IAC5B,eAAeb,GAAY/E,CAAM,CAAC,KAAKwE,EAAU,OAAS,MAAM,IAChE,GAAG,OAAO,QAAQR,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,kBAAkBiH,GAAYxH,CAAG,CAAC,KAAKwH,GAAYjH,CAAK,CAAC,GAAG,EAC7G,eACA,GACA,mDACA,kCACF,EAAE,KAAK;CAAI,CACb,CAEA,SAAS4J,GAAiB,CAAE,OAAA1H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACrE,IAAMgG,EAAiB,OAAO,QAAQlB,GAAmB5E,CAAO,CAAC,EAC3Db,EAAcwF,GAAc3E,CAAO,EACnCmC,EAAQ,CACZ,iCACA,GACA,iCACA,uCACA,IACA,+BAA+BzB,EAAG1E,CAAM,CAAC,KACzC,4BAA4B0E,EAAGkB,CAAG,CAAC,IACrC,EACA,OAAIkE,EAAe,QACjB3D,EAAM,KAAK,gBAAiB,QAAS,GAAG2D,EAAe,IAAI,CAAC,CAACvM,EAAKO,CAAK,IAAM,aAAa4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,KAAK,EAAG,QAAQ,EAE7HgG,IAAS,SACXqC,EAAM,KAAK,mCAAmCwD,GAAU7F,EAAM,UAAU,CAAC,GAAG,EACxEX,GACFgD,EAAM,KACJ,QACA,oBACA,YACA,sDAAsDzB,EAAGvB,CAAW,CAAC,IACrE,YACA,OACF,GAGJgD,EAAM,KACJ,KACA,GACA,wDACA,gEACF,EACOA,EAAM,KAAK;CAAI,CACxB,CAEA,SAASwB,GAAU,CAAE,OAAA3H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC9D,IAAMX,EAAcwF,GAAc3E,CAAO,GAAK,mBAC9C,MAAO,CACL,mBACA,GACA,+BAA+BU,EAAGkB,CAAG,CAAC,KACtC,4CAA4CT,GAAWnF,CAAM,CAAC,KAC9D,GAAG,OAAO,QAAQ4I,GAAmB5E,CAAO,CAAC,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,qBAAqB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,IAAI,EACnH,GAAIgG,IAAS,OAAY,CAAC,yBAAyBY,EAAG+D,GAAQ3E,CAAI,CAAC,CAAC,KAAKY,EAAGvB,CAAW,CAAC,IAAI,EAAI,CAAC,EACjG,GACA,qDACA,sCACF,EAAE,KAAK;CAAI,CACb,CAEA,SAASyE,GAAK,CAAE,OAAA5H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACzD,IAAM4E,EAAOF,GAAU1E,CAAI,EACrBqC,EAAQ,CAAC,gBAAiB,oBAAoB,EAChDuC,IAAS,QAAWvC,EAAM,KAAK,gBAAgB,EACnDA,EAAM,KAAK,GAAI,aAAaxB,GAAGiB,CAAG,CAAC,IAAK,GAAI,0CAA0C,EAClFD,GAASC,CAAG,EAAE,WAAa,UAAUO,EAAM,KAAK,qBAAqB,EACzEA,EAAM,KAAK,GAAI,wBAAwBhB,GAAWnF,CAAM,CAAC,WAAW,EACpE,OAAW,CAACzC,EAAKO,CAAK,IAAK,OAAO,QAAQkG,CAAO,EAAGmC,EAAM,KAAK,WAAWxB,GAAGpH,CAAG,CAAC,OAAOoH,GAAG7G,CAAK,CAAC,EAAE,EACnG,OAAI4K,IAAS,OAAWvC,EAAM,KAAK,4BAA4B6C,GAAON,CAAI,CAAC,GAAG,EACrE5E,IAAS,QAAWqC,EAAM,KAAK,kBAAkBxB,GAAGb,CAAI,CAAC,EAAE,EACpEqC,EAAM,KAAK,GAAI,mCAAoC,yBAAyB,EACrEA,EAAM,KAAK;CAAI,CACxB,CAEA,SAAS0B,GAAM,CAAE,OAAA7H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC1D,IAAMqC,EAAQ,CAAC,oBAAqB,GAAI,yBAAyBzB,EAAGkB,CAAG,CAAC,KAAM,qCAAsC,wBAAwBlB,EAAG1E,CAAM,CAAC,EAAE,EAClJgH,EAAU,OAAO,QAAQhD,CAAO,EACtC,OAAIgD,EAAQ,QACVb,EAAM,KAAK,kCAAmC,GAAGa,EAAQ,IAAI,CAAC,CAACzJ,EAAKO,CAAK,IAAM,OAAO4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,GAAG,EAAG,GAAG,EAElHgG,IAAS,QAAWqC,EAAM,KAAK;EAA2BrC,EAAK,QAAQ,MAAO,MAAM,CAAC;uBAA0B,EACnHqC,EAAM,KAAK,GAAI,iEAAkE,8CAA8C,EACxHA,EAAM,KAAK;CAAI,CACxB,CAEA,SAAS4B,GAAK,CAAE,OAAA/H,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CACzD,IAAMkD,EAAU,OAAO,QAAQhD,CAAO,EAChCmC,EAAQ,CAAC,2CAA4C,GAAI,qBAAqB,EACpF,OAAAA,EAAM,KAAK,kCAAkCrB,GAAU9E,CAAM,CAAC,eAAe8E,GAAUc,CAAG,CAAC,KAAK,EAC5FoB,EAAQ,QACVb,EAAM,KAAK,6BAA8B,GAAGa,EAAQ,IAAI,CAAC,CAACzJ,EAAKO,CAAK,IAAM,OAAOgH,GAAUvH,CAAG,CAAC,KAAKuH,GAAUhH,CAAK,CAAC,GAAG,EAAG,OAAO,EAE/HgG,IAAS,QAAWqC,EAAM,KAAK;EAA0BrC,CAAI;KAAQ,EACzEqC,EAAM,KAAK,GAAI,2CAA4C,kDAAmD,GAAG,EAC1GA,EAAM,KAAK;CAAI,CACxB,CAEA,SAAS8B,GAAK,CAAE,OAAAjI,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAEzD,IAAMoE,EADW,CAAC,MAAO,OAAQ,MAAO,SAAU,OAAQ,UAAW,QAAS,OAAO,EACzD,SAASlI,CAAM,EACvC,oBAAoBA,CAAM,GAC1B,gCAAgC0E,EAAG1E,CAAM,CAAC,aAC1C+J,EAAS,IACb,KAAOjG,IAAS,QAAaA,EAAK,SAAS,IAAIiG,CAAM,EAAE,GAAGA,GAAU,IAEpE,MAAO,CACL,iBACA,kDACA,2CACA,GACA,4BACA,oBAAoB7B,CAAU,KAAKxD,EAAGkB,CAAG,CAAC,IAC1C,GAAG,OAAO,QAAQ5B,CAAO,EAAE,IAAI,CAAC,CAACzG,EAAKO,CAAK,IAAM,mBAAmB4G,EAAGnH,CAAG,CAAC,KAAKmH,EAAG5G,CAAK,CAAC,GAAG,EAC5F,GAAIgG,IAAS,OAAY,CAAC,kBAAkBiG,CAAM,IAAIjG,CAAI,IAAIiG,CAAM,GAAG,EAAI,CAAC,EAC5E,kBACA,mBACA,GACA,8CACA,aACA,GACF,EAAE,KAAK;CAAI,CACb,CAEA,SAAS5B,GAAQ,CAAE,OAAAnI,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC5D,IAAMkD,EAAU,OAAO,QAAQhD,CAAO,EACtC,MAAO,CACL,yBACA,GACA,mBACA,mCACA,GACA,mDAAmDU,EAAG1E,CAAM,CAAC,KAC7D,yCAAyC0E,EAAGkB,CAAG,CAAC,KAChD,GACA,uCACA,GAAGoB,EAAQ,IAAI,CAAC,CAACzJ,EAAKO,CAAK,IAAM,0CAA0C4G,EAAG,GAAGnH,CAAG,KAAKO,CAAK,EAAE,CAAC,IAAI,EACrG,yDACA,GAAIgG,IAAS,OAAY,CAAC,GAAI,gDAAgDY,EAAG+D,GAAQ3E,CAAI,CAAC,CAAC,IAAI,EAAI,CAAC,EACxG,GACA,4CACA,GACA,kCACA,6BACA,sBACA,GACF,EAAE,KAAK;CAAI,CACb,CAEA,SAASsE,GAAW,CAAE,OAAApI,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC/D,IAAMkD,EAAU,OAAO,QAAQ4B,GAAmB5E,CAAO,CAAC,EACpDb,EAAcwF,GAAc3E,CAAO,EACnCmC,EAAkB,CAAC,EACnBW,EAAO,CAAC,QAAQjC,GAAQe,CAAG,CAAC,GAAI,WAAW5F,CAAM,EAAE,EAEzD,OAAIgH,EAAQ,SACVb,EAAM,KAAK,gBAAiB,GAAGa,EAAQ,IAAI,CAAC,CAACzJ,EAAKO,CAAK,IAAM,OAAO+G,GAAQtH,CAAG,CAAC,MAAMsH,GAAQ/G,CAAK,CAAC,EAAE,EAAG,GAAG,EAC5GgJ,EAAK,KAAK,mBAAmB,GAE3B3D,GAAa2D,EAAK,KAAK,gBAAgBjC,GAAQ1B,CAAW,CAAC,EAAE,EAC7DW,IAAS,SACXqC,EAAM,KAAK;EAAerC,CAAI;GAAM,EACpCgD,EAAK,KAAK,aAAa,GAErBX,EAAM,QAAQA,EAAM,KAAK,EAAE,EAC/BA,EAAM,KAAK,iCAAiCW,EAAK,KAAK,GAAG,CAAC,GAAI,sCAAsC,EAC7FX,EAAM,KAAK;CAAI,CACxB,CAEA,SAASmC,GAAQ,CAAE,OAAAtI,EAAQ,IAAA4F,EAAK,QAAA5B,EAAS,KAAAF,CAAK,EAAgB,CAC5D,IAAMlG,EAAS+H,GAASC,CAAG,EACrBO,EAAQ,CAAC,GAAGnG,CAAM,IAAIpC,EAAO,QAAQ,GAAGA,EAAO,MAAM,YAAa,SAASA,EAAO,IAAI,EAAE,EAC9F,OAAW,CAACL,EAAKO,CAAK,IAAK,OAAO,QAAQkG,CAAO,EAAGmC,EAAM,KAAK,GAAG5I,CAAG,KAAKO,CAAK,EAAE,EACjF,OAAIgG,IAAS,QAAWqC,EAAM,KAAK,mBAAmB,IAAI,YAAY,EAAE,OAAOrC,CAAI,EAAE,MAAM,GAAI,GAAIA,CAAI,EAChGqC,EAAM,KAAK;CAAI,CACxB,CAKA,IAAM6D,GAA+B,CACnC,CACE,IAAK,QACL,MAAO,QACP,UAAW,QACX,QAAS,CACP,CAAE,IAAK,OAAQ,MAAO,OAAQ,MAAOjE,EAAK,EAC1C,CAAE,IAAK,OAAQ,MAAO,OAAQ,MAAOmD,EAAK,EAC1C,CAAE,IAAK,SAAU,MAAO,SAAU,MAAOjD,EAAO,CAClD,CACF,EACA,CACE,IAAK,aACL,MAAO,aACP,UAAW,aACX,QAAS,CACP,CAAE,IAAK,QAAS,MAAO,QAAS,MAAOI,EAAY,EACnD,CAAE,IAAK,QAAS,MAAO,QAAS,MAAOE,EAAM,EAC7C,CAAE,IAAK,SAAU,MAAO,SAAU,MAAOC,EAAO,EAChD,CAAE,IAAK,MAAO,MAAO,MAAO,MAAOC,EAAI,CACzC,CACF,EACA,CACE,IAAK,OACL,MAAO,UACP,UAAW,aACX,QAAS,CACP,CAAE,IAAK,QAAS,MAAO,QAAS,MAAOJ,EAAY,EACnD,CAAE,IAAK,QAAS,MAAO,QAAS,MAAOE,EAAM,EAC7C,CAAE,IAAK,SAAU,MAAO,SAAU,MAAOG,EAAO,EAChD,CAAE,IAAK,OAAQ,MAAO,OAAQ,MAAO0C,EAAS,CAChD,CACF,EACA,CACE,IAAK,SACL,MAAO,SACP,UAAW,SACX,QAAS,CACP,CAAE,IAAK,WAAY,MAAO,WAAY,MAAOxC,GAAa,UAAU,CAAE,EACtE,CAAE,IAAK,QAAS,MAAO,QAAS,MAAOA,GAAa,OAAO,CAAE,EAC7D,CAAE,IAAK,cAAe,MAAO,cAAe,MAAO0C,EAAiB,CACtE,CACF,EACA,CACE,IAAK,MACL,MAAO,MACP,UAAW,MACX,QAAS,CACP,CAAE,IAAK,OAAQ,MAAO,OAAQ,MAAOpC,EAAQ,EAC7C,CAAE,IAAK,SAAU,MAAO,SAAU,MAAOG,EAAO,CAClD,CACF,EACA,CAAE,IAAK,KAAM,MAAO,KAAM,UAAW,KAAM,QAAS,CAAC,CAAE,IAAK,SAAU,MAAO,WAAY,MAAOC,EAAG,CAAC,CAAE,EACtG,CACE,IAAK,OACL,MAAO,OACP,UAAW,OACX,QAAS,CACP,CAAE,IAAK,aAAc,MAAO,aAAc,MAAOsC,EAAe,EAChE,CAAE,IAAK,SAAU,MAAO,SAAU,MAAOpC,EAAW,CACtD,CACF,EACA,CAAE,IAAK,SAAU,MAAO,SAAU,UAAW,SAAU,QAAS,CAAC,CAAE,IAAK,SAAU,MAAO,SAAU,MAAOC,EAAa,CAAC,CAAE,EAC1H,CACE,IAAK,SACL,MAAO,KACP,UAAW,SACX,QAAS,CACP,CAAE,IAAK,aAAc,MAAO,aAAc,MAAOC,EAAiB,EAClE,CAAE,IAAK,YAAa,MAAO,YAAa,MAAOC,EAAU,CAC3D,CACF,EACA,CAAE,IAAK,OAAQ,MAAO,OAAQ,UAAW,OAAQ,QAAS,CAAC,CAAE,IAAK,SAAU,MAAO,WAAY,MAAOC,EAAK,CAAC,CAAE,EAC9G,CAAE,IAAK,QAAS,MAAO,QAAS,UAAW,QAAS,QAAS,CAAC,CAAE,IAAK,aAAc,MAAO,aAAc,MAAOC,EAAM,CAAC,CAAE,EACxH,CAAE,IAAK,OAAQ,MAAO,OAAQ,UAAW,OAAQ,QAAS,CAAC,CAAE,IAAK,OAAQ,MAAO,OAAQ,MAAOE,EAAK,CAAC,CAAE,EACxG,CAAE,IAAK,OAAQ,MAAO,OAAQ,UAAW,OAAQ,QAAS,CAAC,CAAE,IAAK,UAAW,MAAO,UAAW,MAAOE,EAAK,CAAC,CAAE,EAC9G,CAAE,IAAK,IAAK,MAAO,IAAK,UAAW,IAAK,QAAS,CAAC,CAAE,IAAK,UAAW,MAAO,UAAW,MAAOE,EAAQ,CAAC,CAAE,EACxG,CACE,IAAK,aACL,MAAO,aACP,UAAW,aACX,QAAS,CAAC,CAAE,IAAK,aAAc,MAAO,oBAAqB,MAAOC,EAAW,CAAC,CAChF,EACA,CAAE,IAAK,OAAQ,MAAO,OAAQ,UAAW,OAAQ,QAAS,CAAC,CAAE,IAAK,MAAO,MAAO,WAAY,MAAOE,EAAQ,CAAC,CAAE,CAChH,EAGa2B,GAAuCD,GAAU,IAAKE,IAAc,CAC/E,GAAGA,EACH,QAASA,EAAS,QAAQ,IAAKC,GAAW,CACxC,IAAM5F,EAAYgE,GAAmB,GAAG2B,EAAS,GAAG,IAAIC,EAAO,GAAG,EAAE,EACpE,MAAO,CAAE,GAAGA,EAAQ,MAAQ1F,GAA0BA,EAAQ,MAAQF,EAAYA,EAAUE,CAAO,EAAI0F,EAAO,MAAM1F,CAAO,CAAG,CAChI,CAAC,CACH,EAAE,EAGK,SAAS2F,GAAeC,EAAkH,CAC/I,GAAM,CAACC,EAAaC,CAAS,EAAI,OAAOF,GAAa,EAAE,EAAE,MAAM,GAAG,EAC5DH,EAAWD,GAAkB,KAAMxL,GAASA,EAAK,MAAQ6L,CAAW,GAAKL,GAAkB,CAAC,EAC5FE,EAASD,EAAS,QAAQ,KAAMzL,GAASA,EAAK,MAAQ8L,CAAS,GAAKL,EAAS,QAAQ,CAAC,EAC5F,MAAO,CAAE,SAAAA,EAAU,OAAAC,EAAQ,UAAW,GAAGD,EAAS,GAAG,IAAIC,EAAO,GAAG,EAAG,CACxE,CCppBO,SAASK,GAASlN,EAAwC8H,EAAeqF,EAAsB,CACpG,IAAMC,EAAepN,IAAO,QAAQ,EACpC,GAAIoN,GAAgBD,EAAQ,CAC1B,IAAM7M,EAAS,OAAO6M,CAAM,EAAE,YAAY,EACpCxG,EAAOrG,EAAO,MAAM,GAAG,EAAE,CAAC,EAChC,OAAW,CAACgE,EAAKQ,CAAM,IAAK,OAAO,QAAQsI,CAAY,EAAG,CACxD,IAAMC,EAAa/I,EAAI,YAAY,EAAE,QAAQ,IAAK,GAAG,EACrD,IAAK+I,IAAe/M,GAAU+M,IAAe1G,IAAS,OAAO7B,IAASgD,CAAK,GAAM,SAAU,OAAOhD,EAAOgD,CAAK,CAChH,CACF,CACA,OAAO9H,IAAO8H,CAAK,CACrB,CCGA,IAAMwF,GAAQ,yCACRC,GAAY,8HACZC,GAAiB,uBACjBC,GAAkB,sBAClBC,GAAU,sDACVC,GAAiB,wCACjBC,GAAa,aACbC,GAAY,0CACZC,GAAkB,gEAElBC,GAAWC,GAASA,EAAK,KAAK,IAAM,GACpCC,GAAYD,GAASA,EAAK,MAAM,KAAK,EAAE,CAAC,EAAE,OAC1CE,GAAcF,GAASA,EAAK,QAAQ,MAAO,MAAM,EAKvD,SAASG,GAASH,EAAM,CACtB,IAAII,EAAMJ,EAAK,KAAK,EAChBI,EAAI,WAAW,GAAG,IAAGA,EAAMA,EAAI,MAAM,CAAC,GACtCA,EAAI,SAAS,GAAG,GAAK,CAACA,EAAI,SAAS,KAAK,IAAGA,EAAMA,EAAI,MAAM,EAAG,EAAE,GAEpE,IAAMC,EAAkB,CAAC,EACrBC,EAAU,GACVC,EAAS,GACb,QAASC,EAAQ,EAAGA,EAAQJ,EAAI,OAAQI,GAAS,EAAG,CAClD,IAAMC,EAAOL,EAAII,CAAK,EAClBC,IAAS,MAAQL,EAAII,EAAQ,CAAC,IAAM,KACtCF,GAAW,IACXE,GAAS,GACAC,IAAS,KAClBF,EAAS,CAACA,EACVD,GAAWG,GACFA,IAAS,KAAO,CAACF,GAC1BF,EAAM,KAAKC,EAAQ,KAAK,CAAC,EACzBA,EAAU,IAEVA,GAAWG,CAEf,CACA,OAAAJ,EAAM,KAAKC,EAAQ,KAAK,CAAC,EAClBD,CACT,CAEA,SAASK,GAAa7F,EAAO2F,EAAO,CAClC,OACEA,EAAQ,EAAI3F,EAAM,QAClBA,EAAM2F,CAAK,EAAE,SAAS,GAAG,GACzBV,GAAgB,KAAKjF,EAAM2F,EAAQ,CAAC,CAAC,GACrCL,GAAStF,EAAM2F,CAAK,CAAC,EAAE,SAAWL,GAAStF,EAAM2F,EAAQ,CAAC,CAAC,EAAE,MAEjE,CAEA,SAASG,GAAW9F,EAAO2F,EAAO,CAChC,IAAMI,EAAST,GAAStF,EAAM2F,CAAK,CAAC,EAC9BK,EAAQV,GAAStF,EAAM2F,EAAQ,CAAC,CAAC,EAAE,IAAKM,GAA6C,CACzF,IAAMC,EAAOD,EAAK,WAAW,GAAG,EAC1BE,EAAQF,EAAK,SAAS,GAAG,EAC/B,OAAOC,GAAQC,EAAQ,SAAWA,EAAQ,QAAUD,EAAO,OAAS,IACtE,CAAC,EAEKE,EAAyB,CAAC,EAC5BzD,EAAOgD,EAAQ,EACnB,KAAOhD,EAAO3C,EAAM,QAAU,CAACkF,GAAQlF,EAAM2C,CAAI,CAAC,GAAK3C,EAAM2C,CAAI,EAAE,SAAS,GAAG,GAAG,CAChF,IAAM6C,EAAQF,GAAStF,EAAM2C,CAAI,CAAC,EAClCyD,EAAK,KAAKL,EAAO,IAAI,CAACM,EAAGC,IAAWC,GAAYf,EAAMc,CAAM,GAAK,EAAE,CAAC,CAAC,EACrE3D,GAAQ,CACV,CAEA,MAAO,CACL,MAAO,CAAE,KAAM,QAAkB,MAAAqD,EAAO,OAAQD,EAAO,IAAKE,GAASM,GAAYN,CAAI,CAAC,EAAG,KAAAG,CAAK,EAC9F,KAAAzD,CACF,CACF,CAKA,SAAS6D,GAAWrB,EAAM,CACxB,IAAMjJ,EAAQ8I,GAAU,KAAKG,CAAI,EACjC,GAAI,CAACjJ,EAAO,OAAO,KACnB,GAAM,CAAC,CAAE2C,EAAQ4H,EAAQC,EAASzO,CAAI,EAAIiE,EACpCyK,EAAU,KAAK,KAAKF,CAAM,EAE1BG,EAAMF,EAAQ,SAAW,GAAKA,EAAQ,OAAS,EAAI,EAAIA,EAAQ,OACrE,MAAO,CACL,OAAQ7H,EAAO,OACf,QAAA8H,EACA,OAAQA,EAAUF,EAAO,MAAM,EAAE,EAAIA,EACrC,MAAOE,EAAU,OAAO,SAASF,EAAQ,EAAE,EAAI,KAC/C,cAAe5H,EAAO,OAAS4H,EAAO,OAASG,EAC/C,UAAWF,EAAQ,OAAS,EAAI,GAAG,IAAI,OAAOA,EAAQ,OAAS,CAAC,CAAC,GAAGzO,CAAI,GAAKA,CAC/E,CACF,CAEA,SAAS4O,GAAU7G,EAAO2F,EAAO,CAC/B,IAAMmB,EAAQN,GAAWxG,EAAM2F,CAAK,CAAC,EAC/BtI,EAAoB,CAAC,EACvB0J,EAAQ,GACRpE,EAAOgD,EAEX,KAAOhD,EAAO3C,EAAM,QAAQ,CAC1B,IAAMyG,EAASD,GAAWxG,EAAM2C,CAAI,CAAC,EACrC,GAAI,CAAC8D,GAAUA,EAAO,UAAYK,EAAM,SAAWL,EAAO,SAAWK,EAAM,QAAUL,EAAO,QAAUK,EAAM,cAAe,MAE3H,IAAMvK,EAAU,CAACkK,EAAO,SAAS,EACjC9D,GAAQ,EACR,IAAIqE,EAAW,GAEf,KAAOrE,EAAO3C,EAAM,QAAQ,CAC1B,IAAMmF,EAAOnF,EAAM2C,CAAI,EACvB,GAAIuC,GAAQC,CAAI,EAAG,CACjB6B,EAAW,GACXzK,EAAQ,KAAK,EAAE,EACfoG,GAAQ,EACR,QACF,CACA,GAAIyC,GAASD,CAAI,GAAKsB,EAAO,cAAe,CAC1ClK,EAAQ,KAAK4I,EAAK,MAAMsB,EAAO,aAAa,CAAC,EAC7C9D,GAAQ,EACR,QACF,CAEA,GAAI,CAACqE,GAAY,CAACR,GAAWrB,CAAI,GAAK,CAAC8B,GAAYjH,EAAO2C,CAAI,EAAG,CAC/DpG,EAAQ,KAAK4I,EAAK,KAAK,CAAC,EACxBxC,GAAQ,EACR,QACF,CACA,KACF,CAEA,KAAOpG,EAAQ,QAAU2I,GAAQ3I,EAAQA,EAAQ,OAAS,CAAC,CAAC,GAAGA,EAAQ,IAAI,EACvEyK,GAAYrE,EAAO3C,EAAM,QAAUwG,GAAWxG,EAAM2C,CAAI,CAAC,GAAG,SAAWmE,EAAM,SAAQC,EAAQ,IAC7FxK,EAAQ,KAAK,CAAC4I,EAAM+B,IAAchC,GAAQC,CAAI,GAAK+B,EAAY3K,EAAQ,OAAS,CAAC,IAAGwK,EAAQ,IAEhG,IAAII,EAA0B,KACxBC,EAAO,qBAAqB,KAAK7K,EAAQ,CAAC,CAAC,EASjD,GARI6K,IACFD,EAAUC,EAAK,CAAC,IAAM,IACtB7K,EAAQ,CAAC,EAAIA,EAAQ,CAAC,EAAE,MAAM6K,EAAK,CAAC,EAAE,MAAM,GAG9C/J,EAAM,KAAK,CAAE,QAAA8J,EAAS,SAAUE,GAAY9K,CAAO,CAAE,CAAC,EAGlDyK,GAAY,EAAErE,EAAO3C,EAAM,QAAUwG,GAAWxG,EAAM2C,CAAI,CAAC,GAAI,KACrE,CAEA,MAAO,CACL,MAAO,CAAE,KAAM,OAAiB,QAASmE,EAAM,QAAS,MAAOA,EAAM,MAAO,MAAAC,EAAO,MAAA1J,CAAM,EACzF,KAAAsF,CACF,CACF,CAKA,SAASsE,GAAYjH,EAAO2F,EAAO,CACjC,IAAMR,EAAOnF,EAAM2F,CAAK,EACxB,OACElB,GAAM,KAAKU,CAAI,GACfT,GAAU,KAAKS,CAAI,GACnBN,GAAQ,KAAKM,CAAI,GACjBL,GAAe,KAAKK,CAAI,GACxBJ,GAAW,KAAKI,CAAI,GACpBU,GAAa7F,EAAO2F,CAAK,CAE7B,CAIA,SAAS2B,GAAoBtH,EAAO2F,EAAO,CACzC,GAAIsB,GAAYjH,EAAO2F,CAAK,EAAG,MAAO,GACtC,IAAMc,EAASD,GAAWxG,EAAM2F,CAAK,CAAC,EACtC,MAAO,GAAQc,GAAUA,EAAO,UAAU,KAAK,IAAM,CAACA,EAAO,SAAWA,EAAO,QAAU,GAC3F,CAEO,SAASY,GAAYrH,EAAkC,CAC5D,IAAMuH,EAA0B,CAAC,EAC7B5B,EAAQ,EAEZ,KAAOA,EAAQ3F,EAAM,QAAQ,CAC3B,IAAMmF,EAAOnF,EAAM2F,CAAK,EAExB,GAAIT,GAAQC,CAAI,EAAG,CACjBQ,GAAS,EACT,QACF,CAEA,IAAM6B,EAAQ/C,GAAM,KAAKU,CAAI,EAC7B,GAAIqC,EAAO,CACT,GAAM,CAAC,CAAEf,EAAQ1C,CAAQ,EAAIyD,EACvB3I,EAASuG,GAASD,CAAI,EACtBsC,EAAiB,CAAC,EAExB,IADA9B,GAAS,EACFA,EAAQ3F,EAAM,QAAQ,CAC3B,IAAM0H,EAAU1H,EAAM2F,CAAK,EAAE,KAAK,EAClC,GAAI+B,EAAQ,WAAWjB,EAAO,CAAC,EAAE,OAAOA,EAAO,MAAM,CAAC,GAAK,UAAU,KAAKiB,CAAO,EAAG,MACpFD,EAAK,KAAKzH,EAAM2F,CAAK,EAAE,MAAM,KAAK,IAAI9G,EAAQuG,GAASpF,EAAM2F,CAAK,CAAC,CAAC,CAAC,CAAC,EACtEA,GAAS,CACX,CACAA,GAAS,EACT4B,EAAO,KAAK,CAAE,KAAM,OAAQ,SAAUxD,EAAS,YAAY,EAAG,KAAM0D,EAAK,KAAK;CAAI,CAAE,CAAC,EACrF,QACF,CAEA,IAAME,EAAOjD,GAAU,KAAKS,CAAI,EAChC,GAAIwC,EAAM,CACR,IAAMC,EAAkB,CAAC,EACrB3O,EAAQ,EACZ0M,GAAS,EACT,IAAIkC,EAAyB,KAC7B,KAAOlC,EAAQ3F,EAAM,QAAQ,CAC3B,IAAMyF,EAAUzF,EAAM2F,CAAK,EACrB6B,EAAQ/C,GAAM,KAAKgB,CAAO,EAEhC,GADI+B,IAAU,CAACK,GAAWpC,EAAQ,KAAK,EAAE,WAAWoC,CAAO,KAAIA,EAAUA,EAAU,KAAOL,EAAM,CAAC,GAC7F,CAACK,GACH,GAAIlD,GAAe,KAAKc,CAAO,EAAGxM,GAAS,UAClC2L,GAAgB,KAAKa,CAAO,GAAK,EAAExM,IAAU,EAAG,MAE3D2O,EAAM,KAAKnC,CAAO,EAClBE,GAAS,CACX,CACAA,GAAS,EACT4B,EAAO,KAAK,CACV,KAAM,OACN,QAASI,EAAK,CAAC,EAAE,MAAM,GAAG,EAAE,IAAKrP,GAASwP,GAAaxP,CAAI,CAAC,EAC5D,SAAU+O,GAAYO,CAAK,CAC7B,CAAC,EACD,QACF,CAEA,IAAMG,EAAUlD,GAAQ,KAAKM,CAAI,EACjC,GAAI4C,EAAS,CACXR,EAAO,KAAK,CAAE,KAAM,UAAW,MAAOQ,EAAQ,CAAC,EAAE,OAAQ,SAAUxB,GAAYwB,EAAQ,CAAC,GAAK,EAAE,CAAE,CAAC,EAClGpC,GAAS,EACT,QACF,CAEA,GAAIb,GAAe,KAAKK,CAAI,EAAG,CAC7BoC,EAAO,KAAK,CAAE,KAAM,IAAK,CAAC,EAC1B5B,GAAS,EACT,QACF,CAEA,GAAIZ,GAAW,KAAKI,CAAI,EAAG,CACzB,IAAM6C,EAAmB,CAAC,EAC1B,KAAOrC,EAAQ3F,EAAM,QAAU,CAACkF,GAAQlF,EAAM2F,CAAK,CAAC,GAClDqC,EAAO,KAAKhI,EAAM2F,CAAK,EAAE,QAAQZ,GAAY,EAAE,CAAC,EAChDY,GAAS,EAEX4B,EAAO,KAAK,CAAE,KAAM,aAAc,SAAUF,GAAYW,CAAM,CAAE,CAAC,EACjE,QACF,CAEA,GAAInC,GAAa7F,EAAO2F,CAAK,EAAG,CAC9B,GAAM,CAAE,MAAAsC,EAAO,KAAAtF,CAAK,EAAImD,GAAW9F,EAAO2F,CAAK,EAC/C4B,EAAO,KAAKU,CAAK,EACjBtC,EAAQhD,EACR,QACF,CAEA,GAAI6D,GAAWrB,CAAI,EAAG,CACpB,GAAM,CAAE,MAAA8C,EAAO,KAAAtF,CAAK,EAAIkE,GAAU7G,EAAO2F,CAAK,EAC9C4B,EAAO,KAAKU,CAAK,EACjBtC,EAAQhD,EACR,QACF,CAEA,IAAMuF,EAAY,CAAC/C,EAAK,KAAK,CAAC,EAE9B,IADAQ,GAAS,EACFA,EAAQ3F,EAAM,QAAU,CAACkF,GAAQlF,EAAM2F,CAAK,CAAC,GAAK,CAAC2B,GAAoBtH,EAAO2F,CAAK,GACxFuC,EAAU,KAAKlI,EAAM2F,CAAK,EAAE,KAAK,CAAC,EAClCA,GAAS,EAGX,IAAMvL,EAAM8N,EAAU,IAAI,CAACpJ,EAAMoI,IAAc,CAC7C,IAAMiB,EAAWnI,EAAM2F,EAAQuC,EAAU,OAAShB,CAAS,EAC3D,MAAO,SAAS,KAAKiB,CAAQ,EAAI,GAAGrJ,CAAI,KAAOA,CACjD,CAAC,EACDyI,EAAO,KAAK,CAAE,KAAM,YAAa,SAAUhB,GAAYnM,EAAI,KAAK;CAAI,CAAC,CAAE,CAAC,CAC1E,CAEA,OAAOmN,CACT,CAKA,IAAMa,GAAc,wCACdC,GAAW,0CACXC,GAAW,uCAGjB,SAASC,GAAezJ,EAAM0J,EAAO,CACnC,IAAIvP,EAAQ,EACZ,QAAS0M,EAAQ6C,EAAO7C,EAAQ7G,EAAK,OAAQ6G,GAAS,EAAG,CACvD,IAAMC,EAAO9G,EAAK6G,CAAK,EACvB,GAAIC,IAAS,KAAMD,GAAS,UACnBC,IAAS,IAAK,CACrB,IAAM6C,EAAM3J,EAAK,QAAQ,IAAK6G,EAAQ,CAAC,EACnC8C,IAAQ,KAAI9C,EAAQ8C,EAC1B,SAAW7C,IAAS,IAAK3M,GAAS,UACzB2M,IAAS,KAAO,EAAE3M,IAAU,EAAG,OAAO0M,CACjD,CACA,MAAO,EACT,CAGA,SAASxJ,GAAW2C,EAAM0J,EAAO,CAC/B,GAAI1J,EAAK0J,CAAK,IAAM,IAAK,OAAO,KAChC,IAAI7C,EAAQ6C,EAAQ,EACpB,KAAO1J,EAAK6G,CAAK,IAAM,KAAKA,GAAS,EAErC,IAAI+C,EAAO,GACX,GAAI5J,EAAK6G,CAAK,IAAM,IAAK,CACvB,IAAM8C,EAAM3J,EAAK,QAAQ,IAAK6G,CAAK,EACnC,GAAI8C,IAAQ,GAAI,OAAO,KACvBC,EAAO5J,EAAK,MAAM6G,EAAQ,EAAG8C,CAAG,EAChC9C,EAAQ8C,EAAM,CAChB,KAAO,CACL,IAAIxP,EAAQ,EACZ,KAAO0M,EAAQ7G,EAAK,QAAQ,CAC1B,IAAM8G,EAAO9G,EAAK6G,CAAK,EACvB,GAAIC,IAAS,MAAQwC,GAAY,KAAKtJ,EAAK6G,EAAQ,CAAC,GAAK,EAAE,EAAG,CAC5D+C,GAAQ5J,EAAK6G,EAAQ,CAAC,EACtBA,GAAS,EACT,QACF,CACA,GAAI,KAAK,KAAKC,CAAI,EAAG,MAErB,GADIA,IAAS,MAAK3M,GAAS,GACvB2M,IAAS,IAAK,CAChB,GAAI3M,IAAU,EAAG,MACjBA,GAAS,CACX,CACAyP,GAAQ9C,EACRD,GAAS,CACX,CACF,CAEA,KAAO7G,EAAK6G,CAAK,IAAM,KAAKA,GAAS,EACrC,IAAIgD,EACEC,EAAQ9J,EAAK6G,CAAK,EACxB,GAAIiD,IAAU,KAAOA,IAAU,IAAK,CAClC,IAAMH,EAAM3J,EAAK,QAAQ8J,EAAOjD,EAAQ,CAAC,EACzC,GAAI8C,IAAQ,GAAI,OAAO,KAGvB,IAFAE,EAAQ7J,EAAK,MAAM6G,EAAQ,EAAG8C,CAAG,EACjC9C,EAAQ8C,EAAM,EACP3J,EAAK6G,CAAK,IAAM,KAAKA,GAAS,CACvC,CAEA,OAAO7G,EAAK6G,CAAK,IAAM,IAAM,CAAE,KAAA+C,EAAM,MAAAC,EAAO,IAAKhD,EAAQ,CAAE,EAAI,IACjE,CAIA,SAASkD,GAAiB/J,EAAMgK,EAAWC,EAAM,CAC/C,IAAIpD,EAAQoD,EACZ,MAAQpD,EAAQ7G,EAAK,QAAQgK,EAAWnD,CAAK,KAAO,IAAI,CACtD,IAAMqD,EAASlK,EAAK6G,EAAQ,CAAC,EACvBsD,EAAQnK,EAAK6G,EAAQmD,EAAU,MAAM,EACrCI,EAAUJ,EAAU,SAAW,IAAMG,IAAUH,GAAaE,IAAWF,GACvEK,EAAUH,IAAW,KACrBI,EAAYN,EAAU,CAAC,IAAM,KAAO,KAAK,KAAKG,GAAS,EAAE,EAC/D,GAAItD,EAAQoD,GAAQ,CAAC,KAAK,KAAKC,CAAM,GAAK,CAACE,GAAW,CAACC,GAAW,CAACC,EAAW,OAAOzD,EACrFA,GAASuD,EAAU,EAAI,CACzB,CACA,MAAO,EACT,CAEA,SAASG,GAASC,EAAO3R,EAAO,CAC9B,IAAM4R,EAAOD,EAAMA,EAAM,OAAS,CAAC,EAC/BC,GAAM,OAAS,OAAQA,EAAK,OAAS5R,EACpC2R,EAAM,KAAK,CAAE,KAAM,OAAQ,MAAA3R,CAAM,CAAC,CACzC,CAIO,SAAS4O,GAAYzH,EAAc,CAAE,MAAAxE,EAAQ,EAAK,EAAyB,CAAC,EAAiB,CAClG,IAAMgP,EAAsB,CAAC,EACzB3D,EAAQ,EAEZ,KAAOA,EAAQ7G,EAAK,QAAQ,CAC1B,IAAM8G,EAAO9G,EAAK6G,CAAK,EACjB1N,EAAO6G,EAAK,MAAM6G,CAAK,EAG7B,GAAIC,IAAS,MAAQwC,GAAY,KAAKtJ,EAAK6G,EAAQ,CAAC,GAAK,EAAE,EAAG,CAC5D0D,GAASC,EAAOxK,EAAK6G,EAAQ,CAAC,CAAC,EAC/BA,GAAS,EACT,QACF,CAGA,GAAIC,IAAS;EAAM,CACjB,IAAM4D,EAAO,cAAc,KAAK1K,EAAK,MAAM,EAAG6G,CAAK,CAAC,EACpD,GAAI6D,GAAQF,EAAMA,EAAM,OAAS,CAAC,GAAG,OAAS,OAAQ,CACpD,IAAMC,EAAOD,EAAMA,EAAM,OAAS,CAAC,EACnCC,EAAK,MAAQA,EAAK,MAAM,QAAQ,cAAe,EAAE,CACnD,CACIC,EAAMF,EAAM,KAAK,CAAE,KAAM,IAAK,CAAC,EAC9BD,GAASC,EAAO,GAAG,EACxB3D,GAAS,EACT,QACF,CAGA,GAAIC,IAAS,IAAK,CAChB,IAAM6D,EAAM,MAAM,KAAKxR,CAAI,EAAG,CAAC,EACzByP,EAAU,IAAI,OAAO,UAAU+B,CAAG,SAAU,GAAG,EACrD/B,EAAQ,UAAY/B,EAAQ8D,EAAI,OAChC,IAAMvN,EAAQwL,EAAQ,KAAK5I,CAAI,EAC/B,GAAI5C,EAAO,CACT,IAAIvE,EAAQmH,EAAK,MAAM6G,EAAQ8D,EAAI,OAAQvN,EAAM,KAAK,EAAE,QAAQ,MAAO,GAAG,EACtE,SAAS,KAAKvE,CAAK,GAAKA,EAAM,KAAK,IAAGA,EAAQA,EAAM,MAAM,EAAG,EAAE,GACnE2R,EAAM,KAAK,CAAE,KAAM,OAAQ,MAAA3R,CAAM,CAAC,EAClCgO,EAAQzJ,EAAM,MAAQuN,EAAI,MAC5B,MACEJ,GAASC,EAAOG,CAAG,EACnB9D,GAAS8D,EAAI,OAEf,QACF,CAGA,GAAKnP,GAASsL,IAAS,KAASA,IAAS,KAAO9G,EAAK6G,EAAQ,CAAC,IAAM,IAAM,CACxE,IAAM+D,EAAQ9D,IAAS,IACjB+D,EAAOD,EAAQ/D,EAAQ,EAAIA,EAC3BiE,EAAQrB,GAAezJ,EAAM6K,CAAI,EACjClS,EAASmS,IAAU,GAAKzN,GAAW2C,EAAM8K,EAAQ,CAAC,EAAI,KAC5D,GAAInS,EAAQ,CACV,IAAMiB,EAAQoG,EAAK,MAAM6K,EAAO,EAAGC,CAAK,EACxCN,EAAM,KACJI,EACI,CAAE,KAAM,QAAS,IAAKjS,EAAO,KAAM,IAAKiB,EAAO,MAAOjB,EAAO,KAAM,EACnE,CAAE,KAAM,OAAQ,KAAMA,EAAO,KAAM,MAAOA,EAAO,MAAO,SAAU8O,GAAY7N,EAAO,CAAE,MAAO,EAAM,CAAC,CAAE,CAC7G,EACAiN,EAAQlO,EAAO,IACf,QACF,CACF,CAGA,IAAMoS,EAAWvP,GAASsL,IAAS,IAAM0C,GAAS,KAAKrQ,CAAI,EAAI,KAC/D,GAAI4R,EAAU,CACZP,EAAM,KAAK,CAAE,KAAM,OAAQ,KAAMO,EAAS,CAAC,EAAG,SAAU,CAAC,CAAE,KAAM,OAAQ,MAAOA,EAAS,CAAC,EAAE,QAAQ,WAAY,EAAE,CAAE,CAAC,CAAE,CAAC,EACxHlE,GAASkE,EAAS,CAAC,EAAE,OACrB,QACF,CACA,GAAIvP,GAASsL,IAAS,KAAO,CAAC,KAAK,KAAK9G,EAAK6G,EAAQ,CAAC,GAAK,EAAE,EAAG,CAC9D,IAAMlG,EAAM4I,GAAS,KAAKpQ,CAAI,EAC9B,GAAIwH,EAAK,CACP6J,EAAM,KAAK,CAAE,KAAM,OAAQ,KAAM7J,EAAI,CAAC,EAAG,SAAU,CAAC,CAAE,KAAM,OAAQ,MAAOA,EAAI,CAAC,CAAE,CAAC,CAAE,CAAC,EACtFkG,GAASlG,EAAI,CAAC,EAAE,OAChB,QACF,CACF,CAGA,IAAMqJ,EAAY,CAAC,KAAM,KAAM,IAAI,EAAE,KAAMxQ,GAASL,EAAK,WAAWK,CAAI,CAAC,IAAMsN,IAAS,KAAOA,IAAS,IAAMA,EAAO,MAC/GkE,EAAehB,GAAa7Q,EAAK6Q,EAAU,MAAM,GAAK,CAAC,KAAK,KAAK7Q,EAAK6Q,EAAU,MAAM,CAAC,EACvFiB,EAAa,KAAK,KAAKjL,EAAK6G,EAAQ,CAAC,GAAK,EAAE,EAClD,GAAImD,GAAagB,GAAgB,EAAEhB,EAAU,CAAC,IAAM,KAAOiB,GAAa,CACtE,IAAMtB,EAAMI,GAAiB/J,EAAMgK,EAAWnD,EAAQmD,EAAU,MAAM,EACtE,GAAIL,IAAQ,GAAI,CACd,IAAMpQ,EAAOyQ,IAAc,KAAO,MAAQA,EAAU,SAAW,EAAI,SAAW,KAC9EQ,EAAM,KAAK,CAAE,KAAAjR,EAAM,SAAUkO,GAAYzH,EAAK,MAAM6G,EAAQmD,EAAU,OAAQL,CAAG,EAAG,CAAE,MAAAnO,CAAM,CAAC,CAAE,CAAC,EAChGqL,EAAQ8C,EAAMK,EAAU,OACxB,QACF,CACF,CAEAO,GAASC,EAAOR,GAAa,CAACgB,EAAehB,EAAYlD,CAAI,EAC7DD,GAASmD,GAAa,CAACgB,EAAehB,EAAU,OAAS,CAC3D,CAEA,OAAOQ,CACT,CAEA,SAASxB,GAAarM,EAAK,CACzB,OAAOA,EAAI,KAAK,EAAE,QAAQ,IAAK,GAAG,EAAE,YAAY,CAClD,CAGA,SAASuO,GAAQvO,EAAK6I,EAAQ,CAC5B,OAAO7I,IAAQ6I,GAAU7I,EAAI,MAAM,GAAG,EAAE,CAAC,IAAM6I,EAAO,MAAM,GAAG,EAAE,CAAC,CACpE,CAOO,SAAS2F,GAAa1C,EAAyBjD,EAAgB4F,EAAsB,CAAC,IAAI,EAAoB,CACnH,IAAM/Q,EAA0B,CAAC,EAC7BwM,EAAQ,EAEZ,KAAOA,EAAQ4B,EAAO,QAAQ,CAC5B,IAAMU,EAAQV,EAAO5B,CAAK,EAC1B,GAAIsC,EAAM,OAAS,OAAQ,CACzB9O,EAAO,KAAK8O,CAAK,EACjBtC,GAAS,EACT,QACF,CAEA,IAAMwE,EAAqB,CAAC,EAC5B,KAAOxE,EAAQ4B,EAAO,QAAUA,EAAO5B,CAAK,EAAE,OAAS,QAAQwE,EAAM,KAAK5C,EAAO5B,GAAO,CAAc,EAEtG,IAAMlO,EAASqQ,GAAaxD,CAAM,EAC5B8F,EACJD,EAAM,KAAM7R,GAASA,EAAK,QAAQ,KAAMmD,GAAQA,IAAQhE,CAAM,CAAC,GAC/D0S,EAAM,KAAM7R,GAASA,EAAK,QAAQ,KAAMmD,GAAQuO,GAAQvO,EAAKhE,CAAM,CAAC,CAAC,GACrEyS,EAAU,IAAKG,GAAaF,EAAM,KAAM7R,GAASA,EAAK,QAAQ,KAAMmD,GAAQuO,GAAQvO,EAAKqM,GAAauC,CAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,GAChIF,EAAM,CAAC,EAEThR,EAAO,KAAK,CACV,KAAM,gBACN,OAAQiR,EAAO,QAAQ,KAAM3O,GAAQuO,GAAQvO,EAAKhE,CAAM,CAAC,GAAK2S,EAAO,QAAQ,CAAC,EAC9E,SAAUH,GAAaG,EAAO,SAAU9F,EAAQ4F,CAAS,CAC3D,CAAC,CACH,CAEA,OAAO/Q,CACT,CAEO,SAASmR,GAAc5S,EAAkC,CAC9D,OAAKA,EACE2P,GAAYhC,GAAW,OAAO3N,CAAM,EAAE,QAAQ,SAAU;CAAI,CAAC,EAAE,MAAM;CAAI,CAAC,EAD7D,CAAC,CAEvB,CAIO,SAAS6S,GAAQ9K,EAAc,CAAE,MAAAiK,EAAQ,EAAM,EAAyB,CAAC,EAAkB,CAChG,IAAM/R,EAAQ,OAAO8H,GAAO,EAAE,EAAE,KAAK,EAGrC,MAFI,mCAAmC,KAAK9H,CAAK,GAC7C,CAAC+R,GAAS,YAAY,KAAK/R,CAAK,GAChC,CAAC,uBAAuB,KAAKA,CAAK,GAAK,CAACA,EAAM,WAAW,IAAI,EAAUA,EACpE,IACT,CC/iBA,IAAM6S,GAAgB,uBAChBC,GAAgB,qBAChBC,GAAS,wCAETC,GAASnS,GAAmB,IAAI,OAAO,SAASA,EAAK,KAAK,GAAG,CAAC,OAAQ,GAAG,EAEzEqL,GAAoC,CACxC,KAAM,CACJ,CAAC,MAAO,8BAA8B,EACtC,CAAC,SAAU2G,EAAa,EACxB,CAAC,SAAUE,EAAM,EACjB,CAAC,UAAWC,GAAM,CAAC,OAAQ,QAAS,MAAM,CAAC,CAAC,CAC9C,EACA,MAAO,CACL,CAAC,UAAW,UAAU,EAGtB,CAAC,SAAU,MAAM,EACjB,CAAC,SAAU,UAAU,EACrB,CAAC,SAAUH,EAAa,EACxB,CAAC,UAAW,wCAAwC,EACpD,CAAC,OAAQ,8BAA8B,EACvC,CAAC,WAAY,cAAc,CAC7B,EACA,WAAY,CACV,CAAC,UAAW,8BAA8B,EAC1C,CAAC,SAAU,oBAAoB,EAC/B,CAAC,MAAO,8BAA8B,EACtC,CAAC,SAAUA,EAAa,EACxB,CAAC,SAAUC,EAAa,EACxB,CAAC,MAAO,kCAAkC,EAC1C,CAAC,UAAWE,GAAM,CAAC,QAAS,MAAO,MAAO,QAAS,QAAS,WAAY,SAAU,MAAO,KAAM,OAAQ,SAAU,OAAQ,QAAQ,CAAC,CAAC,EACnI,CAAC,UAAWA,GAAM,CAAC,OAAQ,QAAS,OAAQ,WAAW,CAAC,CAAC,EACzD,CAAC,WAAY,8BAA8B,EAC3C,CAAC,SAAUD,EAAM,CACnB,EACA,IAAK,CACH,CAAC,UAAW,sCAAsC,EAClD,CAAC,UAAW,aAAa,EACzB,CAAC,SAAUF,EAAa,EACxB,CAAC,SAAUC,EAAa,EACxB,CAAC,WAAY,QAAQ,EACrB,CAAC,WAAY,yBAAyB,EACtC,CAAC,UAAWE,GAAM,CAAC,OAAQ,SAAU,MAAO,WAAY,KAAM,OAAQ,MAAO,OAAO,CAAC,CAAC,EACtF,CAAC,UAAWA,GAAM,CAAC,OAAQ,QAAS,MAAM,CAAC,CAAC,EAC5C,CAAC,WAAY,0BAA0B,EACvC,CAAC,SAAUD,EAAM,CACnB,EACA,OAAQ,CACN,CAAC,UAAW,UAAU,EACtB,CAAC,SAAUF,EAAa,EACxB,CAAC,SAAUC,EAAa,EACxB,CAAC,UAAWE,GAAM,CAAC,SAAU,OAAQ,KAAM,MAAO,SAAU,KAAM,OAAQ,MAAO,KAAM,QAAS,MAAM,CAAC,CAAC,EACxG,CAAC,UAAWA,GAAM,CAAC,OAAQ,QAAS,MAAM,CAAC,CAAC,EAC5C,CAAC,OAAQ,mBAAmB,EAC5B,CAAC,WAAY,0BAA0B,EACvC,CAAC,SAAUD,EAAM,CACnB,CACF,EAEME,GAAY,+BACZC,GAAgB,kBAChBC,GAAO,qBACPC,GAAO,2BAIb,SAASC,GAAQ,CACf,SAAAC,EACA,SAAAC,EAAW,CAAC,OAAQ,QAAS,MAAM,EACnC,QAAAC,EAAU,CAAC,EACX,MAAAC,EAAQ,CAAC,CACX,EAKW,CACT,MAAO,CACL,CAAC,UAAWR,EAAS,EACrB,GAAGO,EAAQ,IAAKE,GAAgB,CAAC,SAAUA,CAAK,CAAC,EACjD,CAAC,SAAUb,EAAa,EACxB,CAAC,SAAUC,EAAa,EACxB,GAAGW,EACH,CAAC,UAAWT,GAAMM,CAAQ,CAAC,EAC3B,CAAC,UAAWN,GAAMO,CAAQ,CAAC,EAC3B,CAAC,WAAYH,EAAI,EACjB,CAAC,OAAQD,EAAI,EACb,CAAC,SAAUJ,EAAM,CACnB,CACF,CAEA,OAAO,OAAO7G,GAAW,CACvB,GAAImH,GAAQ,CACV,SAAU,CAAC,UAAW,SAAU,OAAQ,MAAO,QAAS,KAAM,OAAQ,SAAU,QAAS,MAAO,QAAS,OAAQ,SAAU,KAAM,MAAO,MAAM,EAC9I,SAAU,CAAC,OAAQ,QAAS,KAAK,EACjC,QAAS,CAAC,UAAU,CACtB,CAAC,EACD,KAAMA,GAAQ,CACZ,SAAU,CAAC,SAAU,UAAW,MAAO,SAAU,UAAW,QAAS,SAAU,OAAQ,QAAS,MAAO,SAAU,SAAU,MAAO,OAAO,EACzI,QAAS,CAACH,EAAa,CACzB,CAAC,EACD,OAAQG,GAAQ,CACd,SAAU,CAAC,SAAU,MAAO,MAAO,MAAO,SAAU,KAAM,OAAQ,QAAS,QAAQ,EACnF,QAAS,CAACH,EAAa,CACzB,CAAC,EACD,OAAQG,GAAQ,CACd,SAAU,CAAC,QAAS,MAAO,MAAO,QAAS,QAAS,SAAU,SAAU,QAAS,SAAU,MAAM,EACjG,QAAS,CAACH,EAAa,CACzB,CAAC,EACD,MAAOG,GAAQ,CACb,SAAU,CAAC,SAAU,MAAO,MAAO,MAAO,QAAS,OAAQ,SAAU,KAAM,MAAM,EACjF,SAAU,CAAC,OAAQ,QAAS,KAAK,EACjC,QAAS,CAACH,EAAa,CACzB,CAAC,EACD,KAAMG,GAAQ,CACZ,SAAU,CAAC,SAAU,KAAM,QAAS,MAAO,OAAQ,QAAS,QAAS,QAAQ,EAC7E,QAAS,CAAC,mBAAmB,CAC/B,CAAC,EACD,KAAMA,GAAQ,CACZ,SAAU,CAAC,MAAO,MAAO,MAAO,KAAM,QAAS,QAAS,MAAO,SAAU,OAAQ,QAAS,QAAQ,EAClG,QAAS,CAAC,oBAAoB,EAC9B,MAAO,CACL,CAAC,OAAQ,cAAc,EACvB,CAAC,WAAY,eAAe,CAC9B,CACF,CAAC,EACD,EAAGA,GAAQ,CACT,SAAU,CAAC,MAAO,OAAQ,OAAQ,SAAU,SAAU,KAAM,OAAQ,QAAS,QAAQ,EACrF,SAAU,CAAC,MAAM,EACjB,MAAO,CACL,CAAC,UAAW,wBAAwB,EACpC,CAAC,WAAY,yBAAyB,CACxC,CACF,CAAC,EACD,KAAM,CACJ,CAAC,UAAW,UAAU,EACtB,CAAC,SAAUR,EAAa,EACxB,CAAC,SAAUC,EAAa,EACxB,CAAC,UAAW,OAAO,EACnB,CAAC,UAAWE,GAAM,CAAC,UAAW,MAAO,MAAO,KAAM,KAAM,OAAQ,OAAQ,SAAU,KAAK,CAAC,CAAC,EACzF,CAAC,UAAWA,GAAM,CAAC,OAAQ,QAAS,KAAK,CAAC,CAAC,EAC3C,CAAC,OAAQG,EAAI,EACb,CAAC,SAAUJ,EAAM,CACnB,EACA,WAAY,CACV,CAAC,UAAW,UAAU,EACtB,CAAC,SAAU,4BAA4B,EACvC,CAAC,SAAU,iBAAiB,EAC5B,CAAC,SAAUF,EAAa,EACxB,CAAC,UAAW,0BAA0B,EACtC,CAAC,WAAY,QAAQ,EACrB,CAAC,WAAY,iCAAiC,EAC9C,CAAC,OAAQ,uBAAuB,EAChC,CAAC,SAAUE,EAAM,CACnB,EAEA,KAAM,CACJ,CAAC,UAAW,0BAA0B,EACtC,CAAC,OAAQ,oBAAoB,EAC7B,CAAC,MAAO,gBAAgB,EACxB,CAAC,MAAO,8BAA8B,EACtC,CAAC,SAAUF,EAAa,EACxB,CAAC,UAAWG,GAAM,CAAC,OAAQ,QAAS,MAAM,CAAC,CAAC,EAC5C,CAAC,SAAUD,EAAM,CACnB,CACF,CAAC,EAED7G,GAAU,KAAOA,GAAU,MAEpB,SAASyH,GAAS7D,EAAc1D,EAA2B,CAChE,IAAMwH,EAAQ1H,GAAUE,CAAQ,EAChC,GAAI,CAACwH,EAAO,MAAO,CAAC,CAAE,KAAM,KAAM,KAAM9D,CAAK,CAAC,EAE9C,IAAM+D,EAAkB,CAAC,EACrBC,EAAQ,GACR9F,EAAQ,EAEZ+F,EAAO,KAAO/F,EAAQ8B,EAAK,QAAQ,CACjC,OAAW,CAACpP,EAAMgT,CAAK,IAAKE,EAAO,CACjCF,EAAM,UAAY1F,EAClB,IAAMzJ,EAAQmP,EAAM,KAAK5D,CAAI,EAC7B,GAAIvL,GAASA,EAAM,CAAC,EAAE,OAAS,EAAG,CAC5BuP,IACFD,EAAO,KAAK,CAAE,KAAM,KAAM,KAAMC,CAAM,CAAC,EACvCA,EAAQ,IAEVD,EAAO,KAAK,CAAE,KAAAnT,EAAM,KAAM6D,EAAM,CAAC,CAAE,CAAC,EACpCyJ,GAASzJ,EAAM,CAAC,EAAE,OAClB,SAASwP,CACX,CACF,CAEA,IAAMC,EAAO,iBACbA,EAAK,UAAYhG,EACjB,IAAMiG,EAAQD,EAAK,KAAKlE,CAAI,EAAG,CAAC,EAChCgE,GAASG,EACTjG,GAASiG,EAAM,MACjB,CACA,OAAIH,GAAOD,EAAO,KAAK,CAAE,KAAM,KAAM,KAAMC,CAAM,CAAC,EAC3CD,CACT,CC/KO,SAASK,GAAqBlQ,EAA+D,CAClG,OAAQA,EAAU,UAAY,CAAC,GAAG,IAAKmQ,IAAiB,CACtD,QAAS,OAAO,KAAKA,CAAW,EAChC,OAAQA,CACV,EAAE,CACJ,CAEA,SAASC,GAAOjN,EAAsB,CACpC,IAAIkN,EAAS,GACb,QAAWC,KAAQ,IAAI,YAAY,EAAE,OAAOnN,CAAI,EAAGkN,GAAU,OAAO,aAAaC,CAAI,EACrF,OAAO,KAAKD,CAAM,CACpB,CAEO,SAASE,GAAcC,EAAmCC,EAA6C,CAC5G,MAAI,CAACD,GAAU,CAACC,EAAmB,GAC/BD,EAAO,OAAS,QAAU,OAAOA,EAAO,MAAM,EAAE,YAAY,IAAM,QAAgB,GAAQC,EAAW,UAAYA,EAAW,UACzH,EAAQA,EAAW,KAC5B,CAEA,SAASC,GAAYxM,EAAkBsM,EAAuBC,EAAwB,CACpF,GAAID,EAAO,OAAS,OAAQ,CAC1B,IAAMtR,EAAO,OAAOsR,EAAO,QAAU,EAAE,EAAE,YAAY,EACjDtR,IAAS,QAASgF,EAAM,QAAQ,cAAgB,SAASkM,GAAO,GAAGK,EAAW,UAAY,EAAE,IAAIA,EAAW,UAAY,EAAE,EAAE,CAAC,GACvHvR,IAAS,SAAUgF,EAAM,QAAQ,cAAgB,UAAUuM,EAAW,KAAK,GAC/EvM,EAAM,QAAQ,cAAgB,GAAGsM,EAAO,MAAM,IAAIC,EAAW,KAAK,EACzE,SAAWD,EAAO,OAAS,SAAU,CACnC,IAAM1U,EAAS0U,EAAO,KAAO,QAAUtM,EAAM,MAAQsM,EAAO,KAAO,SAAWtM,EAAM,QAAUA,EAAM,QACpGpI,EAAO0U,EAAO,IAAI,EAAIC,EAAW,OAAS,EAC5C,MAAWD,EAAO,OAAS,UAAYA,EAAO,OAAS,mBACrDtM,EAAM,QAAQ,cAAgB,UAAUuM,EAAW,KAAK,GAE5D,CAOO,SAASE,GACdC,EACAC,EACAC,EACW,CACX,IAAM5M,EAAmB,CAAE,QAAS,CAAC,EAAG,MAAO,CAAC,EAAG,QAAS,CAAC,CAAE,EACzD6M,EAASF,EAAa,KACzBV,GAAgBA,EAAY,QAAQ,OAAS,GAAKA,EAAY,QAAQ,MAAO/T,GAASmU,GAAcK,EAAQxU,CAAI,EAAG0U,EAAY1U,CAAI,CAAC,CAAC,CACxI,EACA,QAAWA,KAAQ2U,GAAQ,SAAW,CAAC,EAAGL,GAAYxM,EAAO0M,EAAQxU,CAAI,EAAG0U,EAAY1U,CAAI,CAAC,EAC7F,OAAO8H,CACT,CAGO,SAAS8M,GAAeR,EAA+B,CAC5D,GAAIA,EAAO,OAAS,OAAQ,CAC1B,IAAMtR,EAAO,OAAOsR,EAAO,QAAU,EAAE,EACvC,OAAOtR,EAAK,YAAY,IAAM,SAAW,SAASsR,EAAO,aAAe,KAAKA,EAAO,YAAY,IAAM,EAAE,GAAK,QAAQtR,CAAI,EAC3H,CACA,OAAIsR,EAAO,OAAS,SAAiB,YAAYA,EAAO,EAAE,KAAKA,EAAO,IAAI,IACtEA,EAAO,OAAS,SAAiB,cAAc,OAAO,KAAKA,EAAO,OAAS,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IACzFA,EAAO,OAAS,gBAAwB,iBACxCA,EAAO,OAAS,YAAoB,aACjC,OAAOA,EAAO,MAAQ,EAAE,CACjC,CAGO,IAAMS,GAAc,CAAC,oBAAqB,UAAU,EAGpD,SAASC,GAAkBC,EAAwCC,EAAqBX,EAAqC,CAClI,IAAM3O,EAAS,IAAI,gBAAgB,CAAE,WAAYqP,IAAa,WAAa,WAAa,oBAAqB,CAAC,EAC1GA,IAAa,aACfrP,EAAO,IAAI,WAAY2O,EAAW,UAAY,EAAE,EAChD3O,EAAO,IAAI,WAAY2O,EAAW,UAAY,EAAE,GAE9CA,EAAW,QAAQ,KAAK,GAAG3O,EAAO,IAAI,QAAS2O,EAAW,OAAO,KAAK,CAAC,EAE3E,IAAMvO,EAAkC,CAAE,eAAgB,oCAAqC,OAAQ,kBAAmB,EAC1H,OAAIuO,EAAW,WAAUvO,EAAQ,cAAgB,SAASkO,GAAO,GAAGK,EAAW,QAAQ,IAAIA,EAAW,cAAgB,EAAE,EAAE,CAAC,IAEpH,CAAE,OAAQ,OAAQ,IAAK,OAAOW,EAAK,UAAY,EAAE,EAAG,QAAAlP,EAAS,KAAMJ,EAAO,SAAS,CAAE,CAC9F,CC1GA,IAAMuP,GAAmC,CACvC,CAAC,iBAAkB,uBAAuB,EAC1C,CAAC,eAAgB,yBAAyB,CAC5C,EAEMC,GAAc,CAClB,SACA,QACA,OACA,UACA,UACA,UACA,mBACA,mBACA,YACA,YACA,UACA,WACA,WACA,cACA,YACF,EAEMC,GAAa,CAAC,oCAAqC,qBAAqB,EAE9E,SAASC,GAAWlW,EAAamW,EAAqC,CACpE,GAAInW,EAAI,WAAW,eAAe,EAAG,CACnC,IAAMc,EAAOd,EAAI,MAAM,EAAsB,EAC7C,OAAOmW,EAAe,IAAIrV,CAAI,EAAI,8BAA8BA,CAAI,GAAK,2BAA2BA,CAAI,EAC1G,CACA,OAAW,CAACgR,EAAMsE,CAAE,IAAKL,GAAc,GAAI/V,EAAI,WAAW8R,CAAI,EAAG,OAAOsE,EAAKpW,EAAI,MAAM8R,EAAK,MAAM,EAClG,OAAO9R,CACT,CAEO,SAASqW,GAAcxV,EAAkB,CAC9C,GAAI,CAACA,GAAU,OAAOA,GAAW,SAAU,OAAOA,EAClD,GAAI,MAAM,QAAQA,CAAM,EAAG,OAAOA,EAAO,IAAIwV,EAAa,EAE1D,IAAMnU,EAAwB,CAAC,EAC/B,OAAW,CAAC/B,EAAKO,CAAK,IAAK,OAAO,QAAQG,CAAM,EAC9C,OAAQV,EAAK,CACX,IAAK,OACH+B,EAAO,KAAOgU,GAAW,OAAOxV,CAAK,EAAG,IAAI,GAAK,EACjD,MACF,IAAK,aACCA,IAAOwB,EAAO,SAAW,IAC7B,MACF,IAAK,gBACHA,EAAO,cAAgB,OAAOxB,GAAU,SAAW,CAAE,aAAcA,CAAM,EAAIA,EAC7E,MACF,IAAK,aACL,IAAK,oBACHwB,EAAO/B,CAAG,EAAI,OAAO,YAAY,OAAO,QAAQO,CAAe,EAAE,IAAI,CAAC,CAACI,EAAMwV,CAAK,IAAM,CAACxV,EAAMuV,GAAcC,CAAK,CAAC,CAAC,CAAC,EACrH,MACF,IAAK,QACL,IAAK,uBACL,IAAK,MACHpU,EAAO/B,CAAG,EAAI,OAAOO,GAAU,SAAW2V,GAAc3V,CAAK,EAAIA,EACjE,MACF,IAAK,QACL,IAAK,QACL,IAAK,QACHwB,EAAO/B,CAAG,EAAKO,EAAoB,IAAI2V,EAAa,EACpD,MACF,QACEnU,EAAO/B,CAAG,EAAIO,CAClB,CAEF,OAAIwB,EAAO,OAAS,SAClBA,EAAO,KAAO,SACdA,EAAO,OAAS,UAEXA,CACT,CAGA,SAASqU,GAAiBC,EAAyC,CACjE,GAAM,CAAE,KAAApV,EAAM,iBAAAqV,EAAkB,YAAa9Q,EAAS,gBAAA+Q,EAAiB,GAAG1V,CAAK,EAAIwV,EAC7E3V,EAAwBO,IAAS,OAAS,CAAE,KAAM,SAAU,OAAQ,QAAS,EAAI,CAAE,KAAAA,CAAK,EACxFc,EAAwB,CAAC,EAE/B,OAAW,CAAC/B,EAAKO,CAAK,IAAK,OAAO,QAAQM,CAAI,EACxCgV,GAAY,SAAS7V,CAAG,EAAGU,EAAOV,CAAG,EAAIA,IAAQ,QAAUkW,GAAc3V,CAAK,EAAIA,EACjFwB,EAAO/B,CAAG,EAAIO,EAMrB,GAJAwB,EAAO,OAASmU,GAAcxV,CAAM,EAChC8E,IAAY,SAAWzD,EAAO,QAAUyD,GACxC+Q,IAAiBxU,EAAO,gBAAkB,IAE1Cd,IAAS,QAAS,CACpB,IAAMuV,EAASF,GAAoB,MAC/BE,IAAW,QAAS,OAAO,OAAOzU,EAAQ,CAAE,MAAO,OAAQ,QAAS,EAAK,CAAC,EACrEyU,IAAW,MAAO,OAAO,OAAOzU,EAAQ,CAAE,MAAO,iBAAkB,QAAS,EAAM,CAAC,EACnFyU,IAAW,QAAS,OAAO,OAAOzU,EAAQ,CAAE,MAAO,gBAAiB,QAAS,EAAM,CAAC,EACxF,OAAO,OAAOA,EAAQ,CAAE,MAAOsU,EAAU,KAAO,SAAWA,EAAU,KAAO,SAAW,OAAS,SAAU,QAAS,EAAM,CAAC,CACjI,CACA,OAAOtU,CACT,CAEA,SAAS0U,GAAY/V,EAAiB0E,EAAiBsR,EAAsBC,EAAoB,CAC/F,IAAMpQ,EAAsB,CAAE,QAAS,OAAO,YAAYnB,EAAM,IAAKnE,GAAS,CAACA,EAAM,CAAE,OAAQiV,GAAcxV,CAAM,CAAE,CAAC,CAAC,CAAC,CAAE,EAC1H,OAAIgW,IAAanQ,EAAK,YAAcmQ,GAChCC,IAAUpQ,EAAK,SAAW,IACvBA,CACT,CAGA,SAASqQ,GAASC,EAA6BC,EAAoB,CACjE,IAAM1R,EAAQ0R,EAAS,OAAQ7V,GAAS6U,GAAW,SAAS7U,CAAI,CAAC,EAC3D8V,EAAUF,EAAW,KAAMR,GAAcA,EAAU,OAAS,MAAM,EAClEW,EAAe5R,EAAM,OAASA,EAAQ,CAAC2R,EAAU,sBAAwB,mCAAmC,EAC5GrW,EAAwB,CAAE,KAAM,SAAU,WAAY,CAAC,CAAE,EACzDiW,EAAqB,CAAC,EAE5B,QAAWN,KAAaQ,EAAY,CAClC,GAAM,CAAE,OAAQI,CAAe,EAAIb,GAAiB,CAAE,GAAGC,EAAW,GAAI,OAAQ,CAAC,EAC7EA,EAAU,cAAaY,EAAe,YAAcZ,EAAU,aAClE3V,EAAO,WAAW2V,EAAU,IAAI,EAAIY,EAChCZ,EAAU,UAAUM,EAAS,KAAKN,EAAU,IAAI,CACtD,CACA,OAAIM,EAAS,SAAQjW,EAAO,SAAWiW,GAChC,CAAE,QAAS,OAAO,YAAYK,EAAa,IAAK/V,GAAS,CAACA,EAAM,CAAE,OAAAP,CAAO,CAAC,CAAC,CAAC,CAAE,CACvF,CAEA,SAASwW,GAAgBC,EAAyBC,EAAmC,CACnF,GAAID,EAAS,KAAM,MAAO,CAAE,KAAMpB,GAAWoB,EAAS,KAAM,IAAI,GAAK,CAAE,EACvE,GAAM,CAAE,OAAAzW,EAAQ,SAAA2W,EAAU,QAAA5Q,EAAS,GAAG5F,CAAK,EAAIsW,EACzCpV,EAAwB,CAAE,GAAGlB,EAAM,YAAaA,EAAK,aAAe,EAAG,EAU7E,GARI4F,IACF1E,EAAO,QAAU,OAAO,YACtB,OAAO,QAAQ0E,CAAwC,EAAE,IAAI,CAAC,CAAC9F,EAAMgO,CAAM,IAAM,CAC/E,GAAM,CAAE,OAAQ2I,EAAc,YAAAZ,CAAY,EAAIN,GAAiB,CAAE,GAAGzH,EAAQ,GAAI,QAAS,CAAC,EAC1F,MAAO,CAAChO,EAAM,CAAE,GAAI+V,EAAc,CAAE,YAAAA,CAAY,EAAI,CAAC,EAAI,OAAQY,CAAa,CAAC,CACjF,CAAC,CACH,GAEE5W,EAAQ,CACV,IAAM0E,EAAQgS,EAAS,OAASA,EAAW,CAAC,kBAAkB,EAC9DrV,EAAO,QAAU,OAAO,YACtBqD,EAAM,IAAKnE,GAAS,CAACA,EAAM,CAAE,OAAQiV,GAAcxV,CAAM,EAAG,GAAI2W,IAAWpW,CAAI,IAAM,OAAY,CAAE,QAASoW,EAASpW,CAAI,CAAE,EAAI,CAAC,CAAG,CAAC,CAAC,CACvI,CACF,CACA,OAAOc,CACT,CAEA,SAASwV,GAAsBxC,EAAsC,CACnE,IAAM2B,EAAc3B,EAAO,YAAc,CAAE,YAAaA,EAAO,WAAY,EAAI,CAAC,EAChF,GAAIA,EAAO,OAAS,QAAS,MAAO,CAAE,KAAM,OAAQ,OAAQ,QAAS,GAAG2B,CAAY,EACpF,GAAI3B,EAAO,OAAS,SAAU,MAAO,CAAE,KAAM,SAAU,KAAMA,EAAO,KAAM,GAAIA,EAAO,GAAI,GAAG2B,CAAY,EACxG,GAAI3B,EAAO,OAAS,SAAU,CAC5B,IAAMyC,EAASzC,EAAO,QAAU,CAAC,EAQjC,MAAO,CAAE,KAAM,SAAU,MANvB,CACE,SAAU,CAAE,SAAU,CAAE,iBAAkBA,EAAO,iBAAkB,OAAAyC,CAAO,CAAE,EAC5E,SAAU,CAAE,SAAU,CAAE,SAAUzC,EAAO,SAAU,OAAAyC,CAAO,CAAE,EAC5D,YAAa,CAAE,kBAAmB,CAAE,SAAUzC,EAAO,SAAU,OAAAyC,CAAO,CAAE,EACxE,WAAY,CAAE,kBAAmB,CAAE,iBAAkBzC,EAAO,iBAAkB,SAAUA,EAAO,SAAU,OAAAyC,CAAO,CAAE,CACpH,EAAEzC,EAAO,IAAc,GAAK,CAAC,EACO,GAAG2B,CAAY,CACvD,CACA,MAAO,CAAE,GAAG3B,CAAO,CACrB,CAEA,IAAM0C,GAAmB,CAACC,EAAoBrB,IAC5CA,EAAU,MAAM,WAAW,eAAe,EAAIqB,EAAI,aAAarB,EAAU,KAAK,MAAM,EAAsB,CAAC,GAAKA,EAAYA,EAGvH,SAASsB,GAAgBD,EAAqC,CACnE,IAAM1B,EAAiB,IAAI,IACzB,OAAO,QAAQ0B,EAAI,YAAc,CAAC,CAAC,EAChC,OAAO,CAAC,CAAC,CAAErB,CAAS,IAAqBA,EAAU,KAAO,MAAM,EAChE,IAAI,CAAC,CAAC1V,CAAI,IAAMA,CAAI,CACzB,EACMiX,EAA2BF,EAAI,UAAY,CAAC,kBAAkB,EAC9DG,EAA2BH,EAAI,UAAY,CAAC,kBAAkB,EAE9DvC,EAAoBuC,EAAI,SAAS,OAASA,EAAI,QAAU,CAAC,OAAO,EAChEI,EAAUJ,EAAI,KAChBvC,EAAQ,IAAKJ,IAAY,CAAE,IAAK,GAAGA,CAAM,MAAM2C,EAAI,IAAI,GAAGA,EAAI,UAAY,EAAE,EAAG,EAAE,EACjF,CAAC,CAAE,IAAKA,EAAI,UAAY,GAAI,CAAC,EAE3BK,EAA4B,CAAC,EAInC,GAHIL,EAAI,cACNK,EAAW,QAAU,OAAO,YAAY,OAAO,QAAQL,EAAI,WAAW,EAAE,IAAI,CAAC,CAAC/W,EAAMD,CAAM,IAAM,CAACC,EAAMuV,GAAcxV,CAAM,CAAC,CAAC,CAAC,GAE5HgX,EAAI,WACN,OAAW,CAAC/W,EAAM0V,CAAS,IAAK,OAAO,QAAQqB,EAAI,UAA2C,EACxFrB,EAAU,KAAO,QAClB0B,EAAW,gBAAXA,EAAW,cAAkB,CAAC,IAAGpX,CAAI,EAAI8V,GAAYJ,EAAU,OAAQuB,EAAgBvB,EAAU,YAAaA,EAAU,QAAQ,EACxHA,EAAU,KAAO,cACzB0B,EAAW,aAAXA,EAAW,WAAe,CAAC,IAAGpX,CAAI,EAAIyV,GAAiBC,CAAS,GAInEqB,EAAI,YACNK,EAAW,UAAY,OAAO,YAC5B,OAAO,QAAQL,EAAI,SAA0C,EAAE,IAAI,CAAC,CAAC/W,EAAMwW,CAAQ,IAAM,CAACxW,EAAMuW,GAAgBC,EAAUU,CAAc,CAAC,CAAC,CAC5I,GAEEH,EAAI,sBACNK,EAAW,gBAAkB,OAAO,YAClC,OAAO,QAAQL,EAAI,mBAAoD,EAAE,IAAI,CAAC,CAAC/W,EAAMoU,CAAM,IAAM,CAACpU,EAAM4W,GAAsBxC,CAAM,CAAC,CAAC,CACxI,GAGF,IAAMiD,EAAuC,CAAC,EAC9C,OAAW,CAACtV,EAAMxB,CAAI,IAAK,OAAO,QAASwW,EAAI,OAAS,CAAC,CAAmC,EAAG,CAC7F,IAAMO,EAAkC/W,EAAK,YAAc,CAAC,EACtDqC,EAA0B,CAAC,EAEjC,OAAW,CAACvD,EAAKO,CAAK,IAAK,OAAO,QAAQW,CAAI,EAAG,CAC/C,GAAIlB,IAAQ,cAAgB,OAAOO,GAAU,UAAY,CAAC,CAAC,MAAO,MAAO,OAAQ,SAAU,UAAW,OAAQ,OAAO,EAAE,SAASP,CAAG,EAAG,CAChIA,IAAQ,eAAcuD,EAASvD,CAAG,EAAIO,GAC1C,QACF,CACA,IAAMgE,EAAYhE,EACZ,CAAE,WAAAsW,EAAa,CAAC,EAAG,SAAAC,EAAU,SAAAM,EAAU,UAAAhU,EAAY,CAAC,EAAG,GAAGvC,CAAK,EAAI0D,EACnE2T,EAAuBpB,GAAYc,EACnCO,EAAuBf,GAAYS,EACnCO,EAA2B,CAAE,GAAGvX,CAAK,EAGrCC,EAAS,IAAI,IACnB,QAAWkC,KAAO,CAAC,GAAGiV,EAAgB,GAAGpB,CAAU,EAAG,CACpD,IAAMwB,EAAWZ,GAAiBC,EAAK1U,EAAG,EAC1ClC,EAAO,IAAI,GAAGuX,EAAS,EAAE,IAAIA,EAAS,IAAI,GAAIrV,EAAG,CACnD,CAEA,IAAM2F,EAA4B,CAAC,EAC7B2P,EAAiC,CAAC,EACxC,QAAWtV,MAAOlC,EAAO,OAAO,EAAG,CACjC,IAAMuX,EAAWZ,GAAiBC,EAAK1U,EAAG,EACtCqV,EAAS,KAAO,OAClBD,EAAU,YAAcpV,GAAI,KACxB,CAAE,KAAM+S,GAAW/S,GAAI,KAAMgT,CAAc,CAAE,EAC7CS,GAAY4B,EAAS,OAAQH,EAAW,OAAQjX,IAAS,CAAC6U,GAAW,SAAS7U,EAAI,CAAC,EAAE,OAASiX,EAAW,OAAQjX,IAAS,CAAC6U,GAAW,SAAS7U,EAAI,CAAC,EAAI,CAAC,kBAAkB,EAAGoX,EAAS,YAAaA,EAAS,QAAQ,EAChNA,EAAS,KAAO,WACzB1P,EAAS,KAAK0P,CAAQ,EAEtBC,EAAc,KAAKtV,GAAI,KAAO,CAAE,KAAM+S,GAAW/S,GAAI,KAAMgT,CAAc,CAAE,EAAII,GAAiBpT,EAAG,CAAC,CAExG,CACI2F,EAAS,SAAQyP,EAAU,YAAcxB,GAASjO,EAAUuP,CAAU,GACtEI,EAAc,SAAQF,EAAU,WAAaE,GAEjDF,EAAU,UAAY,OAAO,YAC3B,OAAO,QAAQhV,CAA0C,EAAE,IAAI,CAAC,CAACC,GAAQ8T,CAAQ,IAAM,CAAC9T,GAAQ6T,GAAgBC,EAAUgB,CAAU,CAAC,CAAC,CACxI,EACA5U,EAASvD,CAAG,EAAIoY,CAClB,CACAJ,EAAMtV,CAAI,EAAIa,CAChB,CAEA,IAAMxB,EAA0B,CAAE,QAAS,QAAS,KAAM2V,EAAI,MAAQ,CAAE,MAAO,MAAO,QAAS,EAAG,EAAG,QAAAI,EAAS,MAAAE,CAAM,EACpH,QAAWhY,IAAO,CAAC,OAAQ,WAAY,cAAc,EAAO0X,EAAI1X,CAAG,IAAM,SAAW+B,EAAO/B,CAAG,EAAI0X,EAAI1X,CAAG,GACzG,OAAW,CAACA,EAAKO,CAAK,IAAK,OAAO,QAAQmX,CAAG,EAAO1X,EAAI,WAAW,IAAI,IAAG+B,EAAO/B,CAAG,EAAIO,GACxF,OAAI,OAAO,KAAKwX,CAAU,EAAE,SAAQhW,EAAO,WAAagW,GACjDhW,CACT,CE9PO,IAAMwW,GAAe,qBAWtBC,GAAc3Y,GAAgB,CAACA,EAAI,WAAW,GAAG,EAGhD,SAAS4Y,GAAgB1Y,EAAwB,CACtD,GAAI,CAACA,GAAQ,OAAOA,GAAS,SAAU,MAAO,GAC9C,GAAI,MAAM,QAAQA,CAAI,EAAG,OAAOA,EAAK,KAAK0Y,EAAe,EACzD,IAAM5Y,EAAOE,EAAuB,KACpC,OAAI,OAAOF,GAAQ,UAAY2Y,GAAW3Y,CAAG,EAAU,GAChD,OAAO,OAAOE,CAAI,EAAE,KAAK0Y,EAAe,CACjD,CAEA,eAAsBC,GAAoBhB,EAAsB,CAAE,QAAAiB,EAAS,KAAAC,EAAM,aAAAC,EAAe,GAAI,EAAiD,CACnJ,GAAI,CAACJ,GAAgBf,CAAG,EAAG,OAAOA,EAElC,IAAMoB,EAAY,IAAI,IAChBC,EAAU,IAAI,IACdC,EAAiC,CAAC,EAClCC,EAAW,IAAI,IAErB,SAASC,EAAK7Q,EAAa,CACzB,GAAI,CAACyQ,EAAU,IAAIzQ,CAAG,EAAG,CACvB,GAAIyQ,EAAU,MAAQD,EAAc,MAAM,IAAI,MAAM,aAAaA,CAAY,gCAAgC,EAC7GC,EAAU,IAAIzQ,EAAKuQ,EAAKvQ,CAAG,EAAE,KAAMX,GAASyR,GAAUzR,CAAI,CAAC,CAAC,CAC9D,CACA,OAAOoR,EAAU,IAAIzQ,CAAG,CAC1B,CAEA,SAAS+Q,EAAO/Q,EAAagR,EAAiB,CAC5C,IAAMC,EAAUD,EAAQ,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,IAAI,GAAKhR,EAAI,MAAM,GAAG,EAAE,IAAI,EAAG,QAAQ,mBAAoB,EAAE,EAC1G3B,EAAO,mBAAmB4S,EAAQ,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,CAAC,EAAE,QAAQ,WAAY,GAAG,GAAK,WACzGtZ,EAAM0G,EACV,QAAS6H,EAAQ,EAAG0K,EAAS,IAAIjZ,CAAG,EAAGuO,GAAS,EAAGvO,EAAM,GAAG0G,CAAI,IAAI6H,CAAK,GACzE,OAAA0K,EAAS,IAAIjZ,CAAG,EACTA,CACT,CAEA,eAAeuZ,EAAMlR,EAAagR,EAAkC,CAClE,IAAMG,EAAK,GAAGnR,CAAG,IAAIgR,CAAO,GACtBI,EAAWV,EAAQ,IAAIS,CAAE,EAC/B,GAAIC,EAAU,OAAOA,EACrB,IAAMzZ,EAAMoZ,EAAO/Q,EAAKgR,CAAO,EAC/BN,EAAQ,IAAIS,EAAIxZ,CAAG,EAEnB,IAAMK,EAASgZ,EAAU1Z,GAAgB,MAAMuZ,EAAK7Q,CAAG,EAAqB,IAAIgR,CAAO,EAAE,EAAI,MAAMH,EAAK7Q,CAAG,EAC3G,GAAIhI,IAAW,OAAW,MAAM,IAAI,MAAM,GAAGmZ,CAAE,YAAY,EAC3D,OAAAR,EAAMhZ,CAAG,EAAI,MAAM0Z,EAAKrZ,EAAQgI,EAAK,EAAK,EACnCrI,CACT,CAEA,eAAe0Z,EAAK3Z,EAAe2G,EAAciT,EAAmC,CAClF,GAAI,CAAC5Z,GAAQ,OAAOA,GAAS,SAAU,OAAOA,EAC9C,GAAI,MAAM,QAAQA,CAAI,EAAG,OAAO,QAAQ,IAAIA,EAAK,IAAKmB,GAASwY,EAAKxY,EAAMwF,EAAMiT,CAAM,CAAC,CAAC,EAExF,IAAMC,EAAS7Z,EACf,GAAI,OAAO6Z,EAAO,MAAS,WAAapB,GAAWoB,EAAO,IAAI,GAAK,CAACD,GAAS,CAC3E,GAAM,CAACE,EAAMR,EAAU,EAAE,EAAIO,EAAO,KAAK,MAAM,GAAG,EAC5CvR,EAAMwR,EAAO,IAAI,IAAIA,EAAMnT,CAAI,EAAE,KAAOA,EACxC1G,EAAM,MAAMuZ,EAAMlR,EAAKgR,EAAQ,WAAW,GAAG,EAAIA,EAAUA,EAAU,IAAIA,CAAO,GAAK,EAAE,EACvF,CAAE,KAAMS,EAAM,GAAGC,CAAS,EAAIH,EACpC,MAAO,CAAE,GAAK,MAAMF,EAAKK,EAAUrT,EAAMiT,CAAM,EAAsB,KAAM,gBAAgBpB,EAAY,IAAIvY,CAAG,EAAG,CACnH,CAEA,IAAM+B,EAAwB,CAAC,EAC/B,OAAW,CAAC/B,EAAKO,CAAK,IAAK,OAAO,QAAQqZ,CAAM,EAAG7X,EAAO/B,CAAG,EAAI,MAAM0Z,EAAKnZ,EAAOmG,EAAMiT,CAAM,EAC/F,OAAO5X,CACT,CAEA,IAAMsW,EAAY,MAAMqB,EAAKhC,EAAKiB,EAAS,EAAI,EAC/C,OAAAN,EAAS,WAAa,CAAE,GAAGA,EAAS,WAAY,CAACE,EAAY,EAAGS,CAAM,EAC/DX,CACT,CDrFO,SAASc,GAAUzR,EAAuB,CAC/C,IAAMsS,EAAUtS,EAAK,UAAU,EAC/B,GAAIsS,EAAQ,WAAW,GAAG,GAAKA,EAAQ,WAAW,GAAG,EACnD,GAAI,CACF,OAAO,KAAK,MAAMtS,CAAI,CACxB,OAASuS,EAAO,CACd,MAAM,IAAI,MAAM,iBAAkBA,EAAgB,OAAO,EAAE,CAC7D,CAEF,GAAI,CACF,OAAOC,GAAUxS,EAAM,CAAE,cAAe,GAAK,CAAC,CAChD,OAASuS,EAAO,CACd,MAAM,IAAI,MAAM,iBAAkBA,EAAgB,OAAO,EAAE,CAC7D,CACF,CAEO,SAASE,GAAkB5Z,EAA0C,CAC1E,IAAMmX,EAAMnX,EACZ,MAAO,GAAQmX,GAAO,OAAOA,GAAQ,WAAaA,EAAI,SAAWA,EAAI,UAAYA,EAAI,MACvF,CAGO,SAAS0C,GAAc1C,EAAuC,CACnE,OAAO,OAAOA,EAAI,SAAW,EAAE,EAAE,WAAW,GAAG,EAAIC,GAAgBD,CAAG,EAAIA,CAC5E,CAGO,SAAS2C,GAAa3S,EAA+B,CAC1D,IAAMgQ,EAAMyB,GAAUzR,CAAI,EAC1B,GAAI,CAACyS,GAAkBzC,CAAG,EAAG,MAAM,IAAI,MAAM,mEAAmE,EAChH,OAAO0C,GAAc1C,CAAG,CAC1B,CAMA,eAAsB4C,GAAS5S,EAAcqB,EAAiE,CAC5G,IAAM2O,EAAM2C,GAAa3S,CAAI,EAC7B,MAAI,CAACqB,GAAS,MAAQ,CAACA,EAAQ,QAAgB2O,EACxCgB,GAAoBhB,EAAK3O,CAA6B,CAC/D,CEvBS,IAAAwR,GAAA,UAzBTC,GAA0E,UCD1E,IAAMC,GAAW,CACf,mBAAoB,0DACpB,gBAAiB,iEACjB,oBAAqB,wHACrB,iBAAkB,mMAClB,gBAAiB,gEACjB,qBAAsB,kgBACtB,cAAe,qIACf,aAAc,mDACd,mBAAoB,iIACpB,gBAAiB,sEACjB,0BAA2B,oEAC3B,oBAAqB,uCACrB,mBAAoB,6CACpB,uBAAwB,mXACxB,8BAA+B,2KAC/B,cAAe,8CACf,YAAa,qBACb,eAAgB,iCAChB,kBAAmB,gEACnB,cAAe,6CACf,cAAe,+FACf,eAAgB,gEAChB,iBAAkB,wEAClB,kBAAmB,sEACnB,eAAgB,yDAChB,eAAgB,6CAChB,eAAgB,6CAChB,sBAAuB,gHACvB,kBAAmB,6CACnB,wBAAyB,8CACzB,sBAAuB,+DACvB,qBAAsB,iCACtB,6BAA8B,6CAC9B,uBAAwB,eACxB,gBAAiB,4JACjB,gBAAiB,8FACjB,cAAe,kFACf,eAAgB,oGAChB,mBAAoB,4EACpB,kBAAmB,iCACnB,iBAAkB,0DAClB,iBAAkB,4BAClB,kBAAmB,sEACnB,cAAe,iGACf,gBAAiB,kCACjB,uBAAwB,iCACxB,gBAAiB,6CACjB,oBAAqB,0HACrB,iBAAkB,4IAClB,kBAAmB,uCACnB,oBAAqB,iCACrB,oBAAqB,2EACrB,iBAAkB,yDAClB,cAAe,yCACf,iBAAkB,iFAClB,eAAgB,uCAChB,gBAAiB,odACjB,kBAAmB,0HACnB,eAAgB,2GAChB,sBAAuB,sFACvB,qBAAsB,6VACtB,uBAAwB,iCACxB,qBAAsB,8EACtB,qBAAsB,kJACtB,sBAAuB,iJACvB,iBAAkB,yTAClB,eAAgB,0GAChB,iBAAkB,gRAClB,aAAc,uIACd,oBAAqB,iCACrB,wBAAyB,sQACzB,mBAAoB,4EACpB,2BAA4B,kJAC5B,uBAAwB,8RACxB,aAAc,2BACd,aAAc,iCACd,gBAAiB,4EACjB,qBAAsB,yLACtB,gBAAiB,iHACjB,gBAAiB,sSACjB,mBAAoB,6CACpB,iBAAkB,qEACpB,EAEOC,GAAQD,GCrFf,IAAME,GAAW,CACf,mBAAoB,eACpB,gBAAiB,YACjB,oBAAqB,sBACrB,iBAAkB,6DAClB,gBAAiB,WACjB,qBAAsB,mGACtB,cAAe,2BACf,aAAc,iBACd,mBAAoB,gCACpB,gBAAiB,WACjB,0BAA2B,mBAC3B,oBAAqB,SACrB,mBAAoB,aACpB,uBAAwB,oGACxB,8BAA+B,kDAC/B,cAAe,SACf,YAAa,OACb,eAAgB,QAChB,kBAAmB,kBACnB,cAAe,OACf,cAAe,kBACf,eAAgB,eAChB,iBAAkB,4BAClB,kBAAmB,YACnB,eAAgB,SAChB,eAAgB,SAChB,eAAgB,SAChB,sBAAuB,YACvB,kBAAmB,QACnB,wBAAyB,eACzB,sBAAuB,YACvB,qBAAsB,WACtB,6BAA8B,WAC9B,uBAAwB,KACxB,gBAAiB,oBACjB,gBAAiB,oBACjB,cAAe,kBACf,eAAgB,mBAChB,mBAAoB,aACpB,kBAAmB,WACnB,iBAAkB,WAClB,iBAAkB,WAClB,kBAAmB,YACnB,cAAe,qBACf,gBAAiB,UACjB,uBAAwB,eACxB,gBAAiB,gBACjB,oBAAqB,oBACrB,iBAAkB,6BAClB,kBAAmB,SACnB,oBAAqB,WACrB,oBAAqB,mCACrB,iBAAkB,UAClB,cAAe,eACf,iBAAkB,gBAClB,eAAgB,SAChB,gBAAiB,+FACjB,kBAAmB,+BACnB,eAAgB,yBAChB,sBAAuB,oCACvB,qBAAsB,kGACtB,uBAAwB,SACxB,qBAAsB,cACtB,qBAAsB,+BACtB,sBAAuB,+BACvB,iBAAkB,8DAClB,eAAgB,4BAChB,iBAAkB,iEAClB,aAAc,8CACd,oBAAqB,SACrB,wBAAyB,kDACzB,mBAAoB,eACpB,2BAA4B,wCAC5B,uBAAwB,4DACxB,aAAc,MACd,aAAc,OACd,gBAAiB,gBACjB,qBAAsB,6DACtB,gBAAiB,6BACjB,gBAAiB,4CACjB,mBAAoB,UACpB,iBAAkB,UACpB,EAEOC,GAAQD,GCrFf,IAAME,GAAW,CACf,mBAAoB,eACpB,gBAAiB,WACjB,oBAAqB,iCACrB,iBAAkB,kGAClB,gBAAiB,aACjB,qBAAsB,2KACtB,cAAe,oDACf,aAAc,wBACd,mBAAoB,qCACpB,gBAAiB,+BACjB,0BAA2B,oBAC3B,oBAAqB,SACrB,mBAAoB,qBACpB,uBAAwB,wIACxB,8BAA+B,uDAC/B,cAAe,kBACf,YAAa,UACb,eAAgB,QAChB,kBAAmB,yBACnB,cAAe,UACf,cAAe,8BACf,eAAgB,iCAChB,iBAAkB,wCAClB,kBAAmB,WACnB,eAAgB,OAChB,eAAgB,QAChB,eAAgB,WAChB,sBAAuB,eACvB,kBAAmB,wBACnB,wBAAyB,eACzB,sBAAuB,gBACvB,qBAAsB,gBACtB,6BAA8B,8BAC9B,uBAAwB,OACxB,gBAAiB,uBACjB,gBAAiB,uBACjB,cAAe,qBACf,eAAgB,sBAChB,mBAAoB,oBACpB,kBAAmB,iBACnB,iBAAkB,mBAClB,iBAAkB,YAClB,kBAAmB,kBACnB,cAAe,0CACf,gBAAiB,iBACjB,uBAAwB,aACxB,gBAAiB,mBACjB,oBAAqB,4BACrB,iBAAkB,2BAClB,kBAAmB,eACnB,oBAAqB,MACrB,oBAAqB,4CACrB,iBAAkB,kBAClB,cAAe,gBACf,iBAAkB,mBAClB,eAAgB,SAChB,gBAAiB,sHACjB,kBAAmB,+BACnB,eAAgB,iCAChB,sBAAuB,iCACvB,qBAAsB,gKACtB,uBAAwB,YACxB,qBAAsB,oBACtB,qBAAsB,2BACtB,sBAAuB,2CACvB,iBAAkB,qEAClB,eAAgB,yCAChB,iBAAkB,gEAClB,aAAc,2EACd,oBAAqB,gBACrB,wBAAyB,uEACzB,mBAAoB,mBACpB,2BAA4B,iCAC5B,uBAAwB,+DACxB,aAAc,OACd,aAAc,YACd,gBAAiB,wBACjB,qBAAsB,gFACtB,gBAAiB,8BACjB,gBAAiB,+DACjB,mBAAoB,WACpB,iBAAkB,aACpB,EAEOC,GAAQD,GC/ER,IAAME,GAAoB,CAAE,GAAAC,GAAI,GAAAC,GAAI,GAAAC,EAAG,EAEjCC,GAAe,CAC1B,GAAI,UACJ,GAAI,eACJ,GAAI,4CACN,EAEMC,GAAgB,IAAI,IAAI,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,CAAC,EAEnF,SAASC,GAAYC,EAAQ,CAClC,OAAOF,GAAc,IAAI,OAAOE,GAAU,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,EAAI,MAAQ,KACvF,CAGO,SAASC,GAAcC,EAAY,CAAC,EAAG,CAC5C,IAAMC,EAAS,CAAC,EAChB,QAAWH,KAAU,IAAI,IAAI,CAAC,GAAG,OAAO,KAAKP,EAAiB,EAAG,GAAG,OAAO,KAAKS,CAAS,CAAC,CAAC,EACzFC,EAAOH,CAAM,EAAI,CAAE,GAAGP,GAAkBO,CAAM,EAAG,GAAGE,EAAUF,CAAM,CAAE,EAExE,OAAOG,CACT,CAIO,SAASC,GAAUC,EAAUL,EAAQM,EAAKC,EAAQ,CACvD,IAAMC,EAAO,OAAOR,GAAU,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,EACxCS,EAAQJ,EAASL,CAAM,IAAIM,CAAG,GAAKD,EAASG,CAAI,IAAIF,CAAG,GAAKD,EAAS,KAAKC,CAAG,GAAKA,EACxF,OAAKC,EAEEE,EAAM,QAAQ,aAAc,CAACC,EAAOC,IACzC,OAAO,UAAU,eAAe,KAAKJ,EAAQI,CAAI,EAAI,OAAOJ,EAAOI,CAAI,CAAC,EAAID,CAC9E,EAJoBD,CAKtB,CJlCA,IAAMG,MAAgB,kBAAc,CAClC,OAAQ,KACR,UAAW,IAAM,CAAC,EAClB,SAAU,CAAC,CACb,CAAC,EAIM,SAASC,GAAe,CAAE,OAAQC,EAAY,cAAAC,EAAgB,KAAM,eAAAC,EAAgB,SAAAC,EAAU,SAAAC,CAAS,EAAG,CAC/G,GAAM,CAACC,EAAcC,CAAe,KAAI,aAASL,CAAa,EACxDM,EAASP,GAAcK,EAEvBG,KAAY,gBACfC,GAAS,CACJT,IAAe,QAAWM,EAAgBG,CAAI,EAClDP,IAAiBO,CAAI,CACvB,EACA,CAACT,EAAYE,CAAc,CAC7B,EAEMQ,KAAQ,YAAQ,KAAO,CAAE,OAAAH,EAAQ,UAAAC,EAAW,SAAAL,CAAS,GAAI,CAACI,EAAQC,EAAWL,CAAQ,CAAC,EAC5F,SAAO,QAACL,GAAc,SAAd,CAAuB,MAAAY,EAAe,SAAAN,CAAA,CAAS,CACzD,CAEO,SAASO,IAAY,CAC1B,SAAO,eAAWb,EAAa,EAAE,MACnC,CAEO,SAASc,IAAe,CAC7B,SAAO,eAAWd,EAAa,EAAE,SACnC,CAEO,SAASe,IAAsB,CACpC,OAAO,OAAO,QAAK,eAAWf,EAAa,EAAE,QAAQ,CACvD,CAEO,SAASgB,GAAO,CACrB,GAAM,CAAE,OAAAP,EAAQ,SAAAJ,CAAS,KAAI,eAAWL,EAAa,EACrD,SAAO,gBAAY,CAACiB,EAAKC,IAAWC,GAAUd,EAAUI,EAAQQ,EAAKC,CAAM,EAAG,CAACT,EAAQJ,CAAQ,CAAC,CAClG,CAGO,SAASe,IAAe,CAC7B,IAAMX,EAASI,GAAU,EACzB,SAAO,gBAAY,CAACQ,EAAMC,IAAUC,GAASF,EAAMC,EAAOb,CAAM,EAAG,CAACA,CAAM,CAAC,CAC7E,CKjDA,IAAAe,GAA+D,UAGlDC,MAAc,kBAAc,EAAK,EAOvC,SAASC,GAAgBC,EAAKC,EAAQ,GAAO,CAClD,IAAMC,KAAO,eAAWJ,EAAW,EAC7B,CAACK,EAAMC,CAAO,KAAI,aAAS,CAACF,GAAQD,CAAK,EAE/C,uBAAU,IAAM,CACd,GAAIE,GAAQ,CAACH,EAAI,QAAS,OAC1B,IAAMK,EAAW,IAAI,qBAClBC,GAAY,CACPA,EAAQ,KAAMC,GAAUA,EAAM,cAAc,IAC9CH,EAAQ,EAAI,EACZC,EAAS,WAAW,EAExB,EACA,CAAE,WAAY,YAAa,CAC7B,EACA,OAAAA,EAAS,QAAQL,EAAI,OAAO,EACrB,IAAMK,EAAS,WAAW,CACnC,EAAG,CAACF,EAAMH,CAAG,CAAC,EAEPG,CACT,CAMO,SAASK,GAAeC,EAAI,CACjC,IAAMC,EAAS,SAAS,eAAeD,CAAE,EACzC,GAAI,CAACC,EAAQ,OACbA,EAAO,eAAe,EACtB,IAAIC,EAAOD,EAAO,sBAAsB,EAAE,IAC1C,QAAWE,IAAS,CAAC,GAAI,IAAK,IAAK,GAAG,EACpC,WAAW,IAAM,CACf,IAAMC,EAAMH,EAAO,sBAAsB,EAAE,IACvC,KAAK,IAAIG,EAAMF,CAAI,EAAI,GAAGD,EAAO,eAAe,EACpDC,EAAOD,EAAO,sBAAsB,EAAE,GACxC,EAAGE,CAAK,CAEZ,CC9CA,SAASE,GAAOC,EAAM,CACpB,GAAI,CACF,OAAOA,IAAS,UAAY,OAAO,eAAiB,OAAO,YAC7D,MAAQ,CACN,OAAO,IACT,CACF,CAEO,SAASC,GAAcC,EAAS,UAAW,CAChD,IAAMC,EAAOC,GAAS,GAAGF,CAAM,IAAIE,CAAI,GAEvC,MAAO,CACL,IAAIA,EAAMC,EAAW,KAAML,EAAO,QAAS,CACzC,GAAI,CACF,OAAOD,GAAOC,CAAI,GAAG,QAAQG,EAAIC,CAAI,CAAC,GAAKC,CAC7C,MAAQ,CACN,OAAOA,CACT,CACF,EACA,IAAID,EAAME,EAAON,EAAO,QAAS,CAC/B,GAAI,CACEM,GAAU,MAA+BA,IAAU,GAAIP,GAAOC,CAAI,GAAG,WAAWG,EAAIC,CAAI,CAAC,EACxFL,GAAOC,CAAI,GAAG,QAAQG,EAAIC,CAAI,EAAGE,CAAK,CAC7C,MAAQ,CAER,CACF,CACF,CACF,CCFc,IAAAC,EAAA,UC8BC,IAAAC,EAAA,UArDfC,GAAwB,UCElB,IAAAC,GAAA,UAPNC,GAAiC,UAI1B,SAASC,GAAY,CAAE,KAAAC,EAAM,SAAAC,CAAS,EAAG,CAC9C,OAAOC,GAASF,EAAMC,CAAQ,EAAE,IAAI,CAACE,EAAOC,IAC1CD,EAAM,QACJ,QAAC,OAAA,CAAiB,UAAW,UAAUA,EAAM,IAAI,GAC9C,SAAAA,EAAM,IAAA,EADEC,CAEX,EAEAD,EAAM,IAEV,CACF,CAEO,SAASE,GAAW,CAAE,KAAAC,EAAM,UAAAC,EAAY,EAAG,EAAG,CACnD,GAAM,CAACC,EAAQC,CAAS,KAAI,aAAS,EAAK,EACpCC,EAAIC,EAAK,EAEf,eAAeC,GAAO,CACpB,GAAI,CACF,MAAM,UAAU,UAAU,UAAUN,CAAI,EACxCG,EAAU,EAAI,EACd,WAAW,IAAMA,EAAU,EAAK,EAAG,IAAI,CACzC,MAAQ,CAER,CACF,CAEA,IAAMI,EAAiBH,EAATF,EAAW,cAAmB,WAAN,EAEtC,SACE,QAAC,SAAA,CACC,KAAK,SACL,QAASI,EACT,aAAYC,EACZ,MAAOA,EACP,UAAW,iFAAiFN,CAAS,IACnGC,EAAS,oBAAsB,EACjC,GAEA,YAAA,QAAC,MAAA,CACC,QAAQ,YACR,cAAY,OACZ,UAAU,SACV,KAAK,OACL,OAAO,eACP,YAAY,IACZ,cAAc,QACd,eAAe,QAEd,SAAAA,KACC,QAAC,OAAA,CAAK,EAAE,iBAAA,CAAkB,KAE1B,SAAA,YAAA,CACE,SAAA,IAAA,QAAC,OAAA,CAAK,EAAE,IAAI,EAAE,IAAI,MAAM,KAAK,OAAO,KAAK,GAAG,GAAA,CAAI,KAChD,QAAC,OAAA,CAAK,EAAE,yDAAA,CAA0D,CAAA,CAAA,CACpE,CAAA,CAEJ,CAAA,CACF,CAEJ,CAIe,SAARM,GAA2B,CAAE,KAAAd,EAAM,SAAAC,EAAW,OAAQ,QAAAc,EAAS,QAAAC,EAAS,UAAAC,EAAY,OAAQ,EAAG,CACpG,SAEE,SAAC,MAAA,CAAI,IAAI,MAAM,UAAU,+EACvB,SAAA,IAAA,SAAC,MAAA,CAAI,UAAU,+DACb,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,kGACZ,SAAAF,CAAA,CACH,KACA,SAAC,MAAA,CAAI,UAAU,mCACZ,SAAA,CAAAC,KACD,QAACX,GAAA,CAAW,KAAML,EAAM,UAAU,kDAAA,CAAmD,CAAA,CAAA,CACvF,CAAA,CAAA,CACF,KACA,QAAC,MAAA,CAAI,UAAU,sDAAsD,MAAO,CAAE,UAAAiB,CAAU,EACtF,YAAA,QAAC,OAAA,CACC,YAAA,QAAClB,GAAA,CAAY,KAAAC,EAAY,SAAAC,CAAA,CAAoB,CAAA,CAC/C,CAAA,CACF,CAAA,CAAA,CACF,CAEJ,CAEO,SAASiB,GAAW,CAAE,OAAAC,EAAQ,QAAAC,EAAS,SAAAC,CAAS,EAAG,CACxD,SACE,QAAC,SAAA,CACC,KAAK,SACL,QAAAD,EACA,UAAW,uDACTD,EAAS,yBAA2B,gCACtC,GAEC,SAAAE,CAAA,CACH,CAEJ,CAIO,SAASC,GAAW,CAAE,MAAAC,EAAO,SAAAC,EAAU,SAAAvB,EAAW,OAAQ,KAAAwB,EAAO,EAAG,EAAG,CAC5E,IAAMC,KAAQ,WAAO,IAAI,EACnBC,EAAS,4EAEf,SACE,SAAC,MAAA,CAAI,IAAI,MAAM,UAAU,oHACvB,SAAA,IAAA,QAAC,MAAA,CAAI,IAAKD,EAAO,cAAY,OAAO,UAAW,wDAAwDC,CAAM,GAC3G,YAAA,QAAC5B,GAAA,CAAY,KAAM,GAAGwB,CAAK;EAAM,SAAAtB,CAAA,CAAoB,CAAA,CACvD,KACA,QAAC,WAAA,CACC,MAAAsB,EACA,SAAWK,GAAUJ,EAASI,EAAM,OAAO,KAAK,EAChD,SAAWA,GAAU,CACnBF,EAAM,QAAQ,UAAYE,EAAM,OAAO,SACzC,EACA,WAAY,GACZ,KAAAH,EACA,UAAW,iHAAiHE,CAAM,EAAA,CACpI,CAAA,CAAA,CACF,CAEJ,CDnHA,IAAME,GAAiB,CACrB,KAAM,OACN,GAAI,QACJ,KAAM,QACN,MAAO,QACP,IAAK,QACL,KAAM,QACN,GAAI,aACJ,WAAY,aACZ,GAAI,aACJ,WAAY,aACZ,IAAK,MACL,GAAI,SACJ,OAAQ,SACR,GAAI,KACJ,KAAM,OACN,OAAQ,SACR,GAAI,SACJ,GAAI,SACJ,OAAQ,SACR,GAAI,OACJ,KAAM,OACN,MAAO,QACP,KAAM,OACN,KAAM,OACN,GAAI,OACJ,EAAG,IACH,WAAY,aACZ,IAAK,aACL,KAAM,MACR,EAEMC,GAAiB,CACrB,EAAG,oBACH,EAAG,wBACH,EAAG,0BACH,EAAG,wBACH,EAAG,wBACH,EAAG,+CACL,EAEA,SAASC,GAAO,CAAE,MAAAC,CAAM,EAAG,CACzB,OAAOA,EAAM,IAAI,CAACC,EAAMC,IAAU,CAChC,OAAQD,EAAK,KAAM,CACjB,IAAK,OACH,OAAOA,EAAK,MACd,IAAK,KACH,SAAO,OAAC,KAAA,CAAA,EAAQC,CAAO,EACzB,IAAK,OACH,SACE,OAAC,OAAA,CAAiB,IAAI,MAAM,UAAU,uDACnC,SAAAD,EAAK,KAAA,EADGC,CAEX,EAEJ,IAAK,SACH,SACE,OAAC,SAAA,CAAmB,UAAU,gCAC5B,YAAA,OAACH,GAAA,CAAO,MAAOE,EAAK,QAAA,CAAU,CAAA,EADnBC,CAEb,EAEJ,IAAK,KACH,SACE,OAAC,KAAA,CACC,YAAA,OAACH,GAAA,CAAO,MAAOE,EAAK,QAAA,CAAU,CAAA,EADvBC,CAET,EAEJ,IAAK,MACH,SACE,OAAC,MAAA,CACC,YAAA,OAACH,GAAA,CAAO,MAAOE,EAAK,QAAA,CAAU,CAAA,EADtBC,CAEV,EAEJ,IAAK,OAAQ,CACX,IAAMC,EAAOC,GAAQH,EAAK,IAAI,EAC9B,GAAI,CAACE,EAAM,SAAO,OAACJ,GAAA,CAAmB,MAAOE,EAAK,QAAA,EAAnBC,CAA6B,EAC5D,IAAMG,EAAW,YAAY,KAAKF,CAAI,EACtC,SACE,OAAC,IAAA,CAEC,KAAAA,EACA,MAAOF,EAAK,MACX,GAAII,EAAW,CAAE,OAAQ,SAAU,IAAK,YAAa,EAAI,CAAC,EAC3D,UAAU,4CAEV,YAAA,OAACN,GAAA,CAAO,MAAOE,EAAK,QAAA,CAAU,CAAA,EANzBC,CAOP,CAEJ,CACA,IAAK,QAAS,CACZ,IAAMI,EAAMF,GAAQH,EAAK,IAAK,CAAE,MAAO,EAAK,CAAC,EAC7C,OAAKK,KAEE,OAAC,MAAA,CAAgB,IAAAA,EAAU,IAAKL,EAAK,IAAK,MAAOA,EAAK,MAAO,QAAQ,OAAO,UAAU,oCAAA,EAA5EC,CAAiH,EAFjHD,EAAK,GAGxB,CACA,QACE,OAAO,IACX,CACF,CAAC,CACH,CAEA,SAASM,GAAO,CAAE,OAAAC,EAAQ,MAAAC,EAAQ,EAAM,EAAG,CACzC,OAAOD,EAAO,IAAI,CAACE,EAAOR,IAAU,CAClC,OAAQQ,EAAM,KAAM,CAClB,IAAK,UAAW,CAEd,IAAMC,EAAM,IAAI,KAAK,IAAID,EAAM,MAAQ,EAAG,CAAC,CAAC,GAC5C,SACE,OAACC,EAAA,CAAgB,IAAI,OAAO,UAAW,GAAGb,GAAeY,EAAM,KAAK,CAAC,wBACnE,YAAA,OAACX,GAAA,CAAO,MAAOW,EAAM,QAAA,CAAU,CAAA,EADvBR,CAEV,CAEJ,CACA,IAAK,YACH,OAAOO,KACL,OAACV,GAAA,CAAmB,MAAOW,EAAM,QAAA,EAApBR,CAA8B,KAE3C,OAAC,IAAA,CAAc,IAAI,OACjB,YAAA,OAACH,GAAA,CAAO,MAAOW,EAAM,QAAA,CAAU,CAAA,EADzBR,CAER,EAEJ,IAAK,OACH,SACE,OAACU,GAAA,CAEC,KAAMF,EAAM,KACZ,SAAUb,GAAea,EAAM,QAAQ,GAAK,OAC5C,QAASA,EAAM,aAAY,OAAC,OAAA,CAAK,UAAU,2CAA4C,SAAAA,EAAM,QAAA,CAAS,CAAA,EAHjGR,CAIP,EAEJ,IAAK,aACH,SACE,OAAC,aAAA,CAAuB,UAAU,iDAChC,YAAA,OAACK,GAAA,CAAO,OAAQG,EAAM,QAAA,CAAU,CAAA,EADjBR,CAEjB,EAEJ,IAAK,KACH,SAAO,OAAC,KAAA,CAAe,UAAU,eAAA,EAAjBA,CAAiC,EACnD,IAAK,gBACH,SACE,OAAC,MAAA,CAAgB,KAAMQ,EAAM,OAAQ,UAAU,YAC7C,YAAA,OAACH,GAAA,CAAO,OAAQG,EAAM,SAAU,MAAAD,CAAA,CAAc,CAAA,EADtCP,CAEV,EAEJ,IAAK,OAAQ,CACX,IAAMW,EAAOH,EAAM,QAAU,KAAO,KAC9BI,EAAOJ,EAAM,MAAM,KAAMK,GAASA,EAAK,UAAY,IAAI,EAC7D,SACE,OAACF,EAAA,CAEC,IAAI,OACJ,MAAOH,EAAM,SAAWA,EAAM,QAAU,EAAIA,EAAM,MAAQ,OAC1D,UAAW,eAAeI,EAAO,OAAS,QAAQJ,EAAM,QAAU,eAAiB,WAAW,EAAE,gCAE/F,SAAAA,EAAM,MAAM,IAAI,CAACK,EAAMC,OACtB,QAAC,KAAA,CAAmB,UAAW,GAAGN,EAAM,MAAQ,YAAc,WAAW,IAAIK,EAAK,UAAY,KAAO,mCAAqC,EAAE,GACzI,SAAA,CAAAA,EAAK,UAAY,SAChB,OAAC,QAAA,CAAM,KAAK,WAAW,QAASA,EAAK,QAAS,SAAQ,GAAC,SAAQ,GAAC,UAAU,qBAAA,CAAsB,KAElG,OAAC,MAAA,CAAI,UAAWA,EAAK,UAAY,KAAO,2BAA6B,WACnE,YAAA,OAACR,GAAA,CAAO,OAAQQ,EAAK,SAAU,MAAO,CAACL,EAAM,OAASK,EAAK,SAAS,SAAW,CAAA,CAAG,CAAA,CACpF,CAAA,CAAA,EANOC,CAOT,CACD,CAAA,EAdId,CAeP,CAEJ,CACA,IAAK,QACH,SAGE,OAAC,MAAA,CAAgB,IAAI,OAAO,UAAU,kDACpC,YAAA,QAAC,QAAA,CAAM,IAAI,OAAO,UAAU,uEAC1B,SAAA,IAAA,OAAC,QAAA,CAAM,UAAU,cACf,YAAA,OAAC,KAAA,CACE,SAAAQ,EAAM,OAAO,IAAI,CAACO,EAAMC,OACvB,OAAC,KAAA,CAEC,IAAI,OACJ,MAAOR,EAAM,MAAMQ,CAAM,EAAI,CAAE,UAAWR,EAAM,MAAMQ,CAAM,CAAE,EAAI,OAClE,UAAU,4EAEV,YAAA,OAACnB,GAAA,CAAO,MAAOkB,CAAA,CAAM,CAAA,EALhBC,CAMP,CACD,CAAA,CACH,CAAA,CACF,KACA,OAAC,QAAA,CACE,SAAAR,EAAM,KAAK,IAAI,CAACS,EAAKC,OACpB,OAAC,KAAA,CAAkB,UAAU,yCAC1B,SAAAD,EAAI,IAAI,CAACF,EAAMC,OACd,OAAC,KAAA,CAEC,IAAI,OACJ,MAAOR,EAAM,MAAMQ,CAAM,EAAI,CAAE,UAAWR,EAAM,MAAMQ,CAAM,CAAE,EAAI,OAClE,UAAU,sBAEV,YAAA,OAACnB,GAAA,CAAO,MAAOkB,CAAA,CAAM,CAAA,EALhBC,CAMP,CACD,CAAA,EAVME,CAWT,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAAA,EAhCQlB,CAiCV,EAEJ,QACE,OAAO,IACX,CACF,CAAC,CACH,CAEe,SAARmB,GAA0B,CAAE,OAAAC,EAAQ,UAAAC,EAAY,EAAG,EAAG,CAC3D,IAAMC,EAASC,GAAU,EACnBjB,KAAS,YAAQ,IAAMkB,GAAaC,GAAcL,CAAM,EAAGE,CAAM,EAAG,CAACF,EAAQE,CAAM,CAAC,EAC1F,OAAIhB,EAAO,SAAW,EAAU,QAG9B,OAAC,MAAA,CAAI,UAAW,qCAAqCe,CAAS,GAC5D,YAAA,OAAChB,GAAA,CAAO,OAAAC,CAAA,CAAgB,CAAA,CAC1B,CAEJ,CExOA,IAAAoB,GAA0C,UAE7BC,MAAc,kBAAc,IAAI,EAEtC,SAASC,IAAU,CACxB,SAAO,eAAWD,EAAW,CAC/B,CAGO,IAAME,MAAe,kBAAc,IAAI,EAEvC,SAASC,IAAW,CACzB,SAAO,eAAWD,EAAY,CAChC,CAIO,IAAME,MAAkB,kBAAc,IAAI,EAE1C,SAASC,IAAc,CAC5B,SAAO,eAAWD,EAAe,CACnC,CCTI,IAAAE,EAAA,UAZJC,GAAyB,UCIzB,SAASC,GAAWC,EAAMC,EAAO,CAC/B,IAAMC,EAAO,IAAI,SACjB,OAAAF,EAAK,QAAQ,CAACG,EAAOC,IAAU,CACzBD,EAAM,KAAMD,EAAK,OAAOC,EAAM,KAAMF,EAAMG,CAAK,EAAGD,EAAM,KAAK,IAAI,EAChED,EAAK,OAAOC,EAAM,KAAMA,EAAM,OAAS,EAAE,CAChD,CAAC,EACMD,CACT,CAEA,eAAeG,GAASC,EAAM,CAC5B,IAAMC,EAAQ,IAAI,WAAW,MAAMD,EAAK,YAAY,CAAC,EACjDE,EAAS,GACb,QAASC,EAAS,EAAGA,EAASF,EAAM,OAAQE,GAAU,MACpDD,GAAU,OAAO,aAAa,GAAGD,EAAM,SAASE,EAAQA,EAAS,KAAM,CAAC,EAE1E,OAAO,KAAKD,CAAM,CACpB,CAGA,eAAsBE,GAAWC,EAASV,EAAO,CAC/C,IAAMW,EAAU,YAAY,IAAI,EAC1BC,EAAW,MAAM,MAAMF,EAAQ,IAAK,CACxC,OAAQA,EAAQ,OAChB,QAASA,EAAQ,QACjB,KAAMA,EAAQ,KAAOZ,GAAWY,EAAQ,KAAMV,CAAK,EAAIU,EAAQ,IACjE,CAAC,EACD,MAAO,CACL,OAAQE,EAAS,OACjB,WAAYA,EAAS,WACrB,SAAU,KAAK,MAAM,YAAY,IAAI,EAAID,CAAO,EAChD,QAAS,CAAC,GAAGC,EAAS,QAAQ,QAAQ,CAAC,EACvC,KAAM,MAAMA,EAAS,KAAK,CAC5B,CACF,CAIA,eAAsBC,GAAaC,EAAUJ,EAASV,EAAO,CAC3D,IAAMe,EAAU,CAAE,GAAGL,CAAQ,EACzBA,EAAQ,OACVK,EAAQ,KAAO,MAAM,QAAQ,IAC3BL,EAAQ,KAAK,IAAI,MAAOR,EAAOC,IAC7BD,EAAM,KAAO,CAAE,KAAMA,EAAM,KAAM,KAAM,CAAE,GAAGA,EAAM,KAAM,KAAM,MAAME,GAASJ,EAAMG,CAAK,CAAC,CAAE,CAAE,EAAID,CACnG,CACF,GAOF,IAAMc,EAAS,MALE,MAAM,MAAMF,EAAU,CACrC,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAUC,CAAO,CAC9B,CAAC,GAC6B,KAAK,EACnC,GAAIC,EAAO,MAAO,MAAM,IAAI,MAAMA,EAAO,KAAK,EAC9C,OAAOA,CACT,CAGO,SAASC,GAAYP,EAAS,CAAE,SAAAI,EAAU,MAAAd,EAAQ,CAAC,CAAE,EAAI,CAAC,EAAG,CAClE,OAAOc,EAAWD,GAAaC,EAAUJ,EAASV,CAAK,EAAIS,GAAWC,EAASV,CAAK,CACtF,CDxDA,IAAMkB,GACJ,uHAEF,SAASC,GAAM,CAAE,MAAAC,EAAO,MAAAC,EAAO,SAAAC,EAAU,OAAAC,EAAS,GAAO,YAAAC,CAAY,EAAG,CACtE,SACE,QAAC,QAAA,CAAM,UAAU,kBACf,SAAA,IAAA,OAAC,OAAA,CAAK,UAAU,gCAAiC,SAAAJ,CAAA,CAAM,KACvD,OAAC,QAAA,CACC,KAAMG,EAAS,WAAa,OAC5B,MAAOF,GAAS,GAChB,SAAWI,GAAUH,EAASG,EAAM,OAAO,KAAK,EAChD,YAAAD,EACA,aAAa,MACb,IAAI,MACJ,UAAWN,EAAA,CACb,CAAA,CAAA,CACF,CAEJ,CAIA,SAASQ,GAAa,CAAE,KAAAC,EAAM,OAAAC,EAAQ,WAAAC,CAAW,EAAG,CAClD,GAAM,CAAE,cAAAC,EAAe,SAAAC,CAAS,EAAIC,GAAY,EAC1CC,EAAIC,EAAK,EACTC,EAAQC,GAAY,OAAQC,GAAST,EAAO,QAAQS,CAAI,CAAC,EACzD,CAACA,EAAMC,CAAO,KAAI,aAASH,EAAM,CAAC,CAAC,EACnC,CAACI,EAAOC,CAAQ,KAAI,aAAS,CAAE,OAAQ,MAAO,CAAC,EACrD,GAAI,CAACH,EAAM,OAAO,KAElB,eAAeI,GAAe,CAC5BD,EAAS,CAAE,OAAQ,SAAU,CAAC,EAC9B,GAAI,CACF,IAAME,EAAS,MAAMC,GAAYC,GAAkBP,EAAMT,EAAO,MAAMS,CAAI,EAAGR,GAAc,CAAC,CAAC,EAAG,CAAE,SAAAE,CAAS,CAAC,EACtGc,EAAO,KAAK,MAAMH,EAAO,MAAQ,IAAI,EAC3C,GAAIA,EAAO,QAAU,KAAO,CAACG,EAAK,aAAc,MAAM,IAAI,MAAMA,EAAK,mBAAqBA,EAAK,OAAS,QAAQH,EAAO,MAAM,EAAE,EAC/HZ,EAAcH,EAAM,CAAE,MAAOkB,EAAK,YAAa,CAAC,EAChDL,EAAS,CAAE,OAAQ,MAAO,CAAC,CAC7B,OAASM,EAAO,CACdN,EAAS,CAAE,OAAQ,QAAS,QAASM,EAAM,OAAQ,CAAC,CACtD,CACF,CAEA,IAAMC,EAAOC,GAAS3B,GAAUS,EAAcH,EAAM,CAAE,CAACqB,CAAG,EAAG3B,CAAM,CAAC,EACpE,SACE,QAAC,MAAA,CAAI,UAAU,8DACZ,SAAA,CAAAc,EAAM,OAAS,MACd,OAAC,SAAA,CAAO,MAAOE,EAAM,SAAWZ,GAAUa,EAAQb,EAAM,OAAO,KAAK,EAAG,UAAWP,GAC/E,SAAAiB,EAAM,IAAKc,MACV,OAAC,SAAA,CAAmB,SAAAA,CAAA,EAAPA,CAAY,CAC1B,CAAA,CACH,KAEF,OAAC9B,GAAA,CAAM,MAAM,YAAY,MAAOU,GAAY,SAAU,SAAUkB,EAAI,UAAU,CAAA,CAAG,KACjF,OAAC5B,GAAA,CAAM,MAAM,gBAAgB,MAAOU,GAAY,aAAc,SAAUkB,EAAI,cAAc,EAAG,OAAM,EAAA,CAAC,EACnGV,IAAS,eACR,QAAA,WAAA,CACE,SAAA,IAAA,OAAClB,GAAA,CAAM,MAAOc,EAAE,eAAe,EAAG,MAAOJ,GAAY,SAAU,SAAUkB,EAAI,UAAU,CAAA,CAAG,KAC1F,OAAC5B,GAAA,CAAM,MAAOc,EAAE,eAAe,EAAG,MAAOJ,GAAY,SAAU,SAAUkB,EAAI,UAAU,EAAG,OAAM,EAAA,CAAC,CAAA,CAAA,CACnG,KAEF,OAAC5B,GAAA,CACC,MAAOc,EAAE,aAAa,EACtB,MAAOJ,GAAY,OACnB,SAAUkB,EAAI,QAAQ,EACtB,YAAa,OAAO,KAAKnB,EAAO,MAAMS,CAAI,EAAE,QAAU,CAAC,CAAC,EAAE,KAAK,GAAG,CAAA,CACpE,KACA,OAAC,SAAA,CACC,KAAK,SACL,QAASI,EACT,SAAUF,EAAM,SAAW,UAC3B,UAAU,4HAET,SAAAA,EAAM,SAAW,UAAYN,EAAE,mBAAmB,EAAIA,EAAE,eAAe,CAAA,CAC1E,EACCM,EAAM,SAAW,YAAW,OAAC,IAAA,CAAE,UAAU,2CAA4C,SAAAN,EAAE,mBAAoB,CAAE,MAAOM,EAAM,OAAQ,CAAC,CAAA,CAAE,CAAA,CAAA,CACxI,CAEJ,CAEA,SAASW,GAAa,CAAE,KAAAvB,EAAM,OAAAC,CAAO,EAAG,CACtC,GAAM,CAAE,YAAAuB,EAAa,cAAArB,CAAc,EAAIE,GAAY,EAC7CC,EAAIC,EAAK,EACTL,EAAasB,EAAYxB,CAAI,EAC7BoB,EAAOC,GAAS3B,GAAUS,EAAcH,EAAM,CAAE,CAACqB,CAAG,EAAG3B,CAAM,CAAC,EAEpE,OAAIO,EAAO,OAAS,QAAU,OAAOA,EAAO,MAAM,EAAE,YAAY,IAAM,WAElE,QAAA,WAAA,CACE,SAAA,IAAA,OAACT,GAAA,CAAM,MAAOc,EAAE,eAAe,EAAG,MAAOJ,GAAY,SAAU,SAAUkB,EAAI,UAAU,CAAA,CAAG,KAC1F,OAAC5B,GAAA,CAAM,MAAOc,EAAE,eAAe,EAAG,MAAOJ,GAAY,SAAU,SAAUkB,EAAI,UAAU,EAAG,OAAM,EAAA,CAAC,CAAA,CAAA,CACnG,EAGAnB,EAAO,OAAS,YAAiB,OAACT,GAAA,CAAM,MAAOS,EAAO,KAAM,MAAOC,GAAY,MAAO,SAAUkB,EAAI,OAAO,EAAG,OAAM,EAAA,CAAC,EACrHnB,EAAO,OAAS,UAAYA,EAAO,OAAS,mBAE5C,QAAA,WAAA,CACE,SAAA,IAAA,OAACT,GAAA,CAAM,MAAOc,EAAE,kBAAkB,EAAG,MAAOJ,GAAY,MAAO,SAAUkB,EAAI,OAAO,EAAG,OAAM,EAAA,CAAC,EAC7FnB,EAAO,OAAS,aAAY,OAACF,GAAA,CAAa,KAAAC,EAAY,OAAAC,EAAgB,WAAAC,CAAA,CAAwB,EAC9FD,EAAO,OAAS,UAAY,CAACQ,GAAY,KAAMC,GAAST,EAAO,QAAQS,CAAI,CAAC,MAC3E,OAAC,IAAA,CAAE,UAAU,gCAAiC,SAAAJ,EAAE,oBAAoB,CAAA,CAAE,CAAA,CAAA,CAE1E,EAGAL,EAAO,OAAS,eAAoB,OAAC,IAAA,CAAE,UAAU,gCAAiC,SAAAK,EAAE,gBAAgB,CAAA,CAAE,KACnG,OAACd,GAAA,CAAM,MAAM,QAAQ,MAAOU,GAAY,MAAO,SAAUkB,EAAI,OAAO,EAAG,OAAM,EAAA,CAAC,CACvF,CAGe,SAARK,GAA2B,CAAE,QAAAC,CAAQ,EAAG,CAC7C,IAAM,EAAInB,EAAK,EACf,SACE,QAAC,MAAA,CAAI,UAAU,YACb,SAAA,IAAA,OAAC,KAAA,CAAG,UAAU,8CAA+C,SAAA,EAAE,YAAY,CAAA,CAAE,EAC5E,OAAO,QAAQmB,CAAO,EAAE,IAAI,CAAC,CAAC1B,EAAMC,CAAM,OACzC,QAAC,WAAA,CAAoB,UAAU,oFAC7B,SAAA,IAAA,QAAC,SAAA,CAAO,UAAU,sCAChB,SAAA,IAAA,OAAC,OAAA,CAAK,UAAU,kCAAmC,SAAAD,CAAA,CAAK,KACxD,OAAC,OAAA,CAAK,UAAU,oCAAqC,SAAA2B,GAAe1B,CAAM,CAAA,CAAE,CAAA,CAAA,CAC9E,KACA,OAAC2B,GAAA,CAAS,OAAQ3B,EAAO,YAAa,UAAU,+BAAA,CAAgC,KAChF,OAACsB,GAAA,CAAa,KAAAvB,EAAY,OAAAC,CAAA,CAAgB,CAAA,CAAA,EAN7BD,CAOf,CACD,CAAA,CAAA,CACH,CAEJ,CJlIA,SAAS6B,GAAaC,EAAM,CAC1B,IAAMC,EAAO,IAAI,KAAK,CAAC,KAAK,UAAUD,EAAM,KAAM,CAAC,CAAC,EAAG,CAAE,KAAM,kBAAmB,CAAC,EAC7EE,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,KAAO,IAAI,gBAAgBD,CAAI,EACpCC,EAAK,SAAW,eAChBA,EAAK,MAAM,EACX,IAAI,gBAAgBA,EAAK,IAAI,CAC/B,CAEe,SAARC,GAAuB,CAAE,KAAAH,EAAM,MAAAI,CAAM,EAAG,CAC7C,GAAM,CAAE,QAAAC,EAAS,YAAAC,EAAa,eAAAC,EAAgB,aAAAC,EAAc,gBAAAC,EAAiB,MAAAC,EAAO,SAAAC,EAAU,eAAAC,EAAgB,eAAAC,EAAgB,YAAAC,EAAa,gBAAAC,CAAgB,EAAIC,GAAY,EACrKC,EAAa,OAAO,KAAKF,GAAmB,CAAC,CAAC,EAAE,OAAS,EACzDG,EAAY,OAAO,QAAQN,GAAgB,WAAa,CAAC,CAAC,EAC1D,CAAE,KAAAO,CAAK,EAAIf,EACXgB,EAAIC,EAAK,EACTC,EAAYC,GAAa,EAE/B,SACE,OAAC,UAAA,CAAQ,GAAG,eAAe,cAAW,GAAC,UAAU,qCAC/C,YAAA,QAAC,MAAA,CAAI,UAAU,qFACb,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,UACb,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,uBACZ,SAAA,CAAAJ,EAAK,YACJ,QAAC,OAAA,CAAK,UAAU,kFAAkF,SAAA,CAAA,IAAEA,EAAK,OAAA,CAAA,CAAQ,EAElHf,EAAM,YACL,QAAC,OAAA,CAAK,UAAU,0EAA0E,SAAA,CAAA,WAASA,EAAM,OAAA,CAAA,CAAQ,CAAA,CAAA,CAErH,KACA,OAAC,KAAA,CAAG,UAAU,yCAA0C,SAAAkB,EAAUH,EAAM,OAAO,GAAK,KAAA,CAAM,KAI1F,OAAC,KAAA,CAAG,UAAU,0CACX,SAAA,CACC,CAACC,EAAE,iBAAiB,EAAGhB,EAAM,WAAW,MAAM,EAC9C,CAACgB,EAAE,cAAc,EAAGhB,EAAM,KAAK,MAAM,EACrC,CAACgB,EAAE,cAAc,EAAGhB,EAAM,QAAQ,MAAM,CAC1C,EAAE,IAAI,CAAC,CAACoB,EAAOC,CAAK,OAClB,QAAC,MAAA,CAAgB,UAAU,8CACzB,SAAA,IAAA,OAAC,KAAA,CAAG,UAAU,gCAAiC,SAAAD,CAAA,CAAM,KACrD,OAAC,KAAA,CAAG,UAAU,yBAA0B,SAAAC,CAAA,CAAM,CAAA,CAAA,EAFtCD,CAGV,CACD,CAAA,CACH,KAEA,QAAC,MAAA,CAAI,UAAU,oCACb,SAAA,IAAA,OAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMzB,GAAaC,CAAI,EAChC,UAAU,kGAET,SAAAoB,EAAE,gBAAgB,CAAA,CACrB,EACCD,EAAK,SAAS,UACb,OAAC,IAAA,CAAE,KAAM,UAAUA,EAAK,QAAQ,KAAK,GAAI,UAAU,sFAChD,SAAAA,EAAK,QAAQ,MAAQA,EAAK,QAAQ,KAAA,CACrC,CAAA,CAAA,CAEJ,KAEA,OAACO,GAAA,CAAS,OAAQJ,EAAUH,EAAM,aAAa,EAAG,UAAU,sCAAA,CAAuC,CAAA,CAAA,CACrG,KAEA,QAAC,QAAA,CAAM,UAAU,4EACf,SAAA,IAAA,OAAC,KAAA,CAAG,UAAU,wBAAyB,SAAAC,EAAE,kBAAkB,CAAA,CAAE,KAC7D,QAAC,QAAA,CAAM,UAAU,kBACf,SAAA,IAAA,OAAC,OAAA,CAAK,UAAU,gCAAiC,SAAAA,EAAE,mBAAmB,CAAA,CAAE,KACxE,QAAC,SAAA,CACC,MAAOd,EACP,SAAWqB,GAAUpB,EAAe,OAAOoB,EAAM,OAAO,KAAK,CAAC,EAC9D,IAAI,MACJ,UAAU,qFAET,SAAA,CAAAtB,EAAQ,IAAI,CAACuB,EAAQC,OACpB,QAAC,SAAA,CAAwB,MAAOA,EAC7B,SAAA,CAAAD,EAAO,IACPA,EAAO,YAAc,WAAMA,EAAO,WAAW,GAAK,EAAA,CAAA,EAFxCA,EAAO,GAGpB,CACD,KACD,OAAC,SAAA,CAAO,MAAO,GAAK,SAAAR,EAAE,yBAAyB,CAAA,CAAE,CAAA,CAAA,CACnD,CAAA,CAAA,CACF,EACCF,EAAU,IAAI,CAAC,CAACY,EAAMC,CAAQ,OAC7B,QAAC,QAAA,CAAiB,UAAU,mEAC1B,SAAA,IAAA,OAAC,OAAA,CAAK,UAAU,mDAAmD,MAAOA,EAAS,aAAeD,EAC/F,SAAA,IAAIA,CAAI,GAAA,CACX,EACCC,EAAS,MAAM,UACd,OAAC,SAAA,CACC,MAAOlB,EAAeiB,CAAI,GAAKC,EAAS,SAAW,GACnD,SAAWJ,GAAUb,EAAYgB,EAAMH,EAAM,OAAO,KAAK,EACzD,IAAI,MACJ,UAAU,4EAET,SAAAI,EAAS,KAAK,IAAKC,MAClB,OAAC,SAAA,CAAqB,SAAAA,CAAA,EAATA,CAAgB,CAC9B,CAAA,CACH,KAEA,OAAC,QAAA,CACC,MAAOnB,EAAeiB,CAAI,GAAK,GAC/B,YAAaC,EAAS,SAAW,GACjC,SAAWJ,GAAUb,EAAYgB,EAAMH,EAAM,OAAO,KAAK,EACzD,IAAI,MACJ,UAAU,6GAAA,CACZ,CAAA,CAAA,EAtBQG,CAwBZ,CACD,EACAxB,IAAgB,OACf,OAAC,QAAA,CACC,KAAK,MACL,MAAOE,EACP,SAAWmB,GAAUlB,EAAgBkB,EAAM,OAAO,KAAK,EACvD,YAAY,0BACZ,IAAI,MACJ,UAAU,sHAAA,CACZ,EAEDV,KACC,OAACgB,GAAA,CAAU,QAASlB,CAAA,CAAiB,KAEvC,QAAC,QAAA,CAAM,UAAU,kBACf,SAAA,IAAA,OAAC,OAAA,CAAK,UAAU,gCAAgC,SAAA,cAAA,CAAY,KAC5D,OAAC,QAAA,CACC,KAAK,WACL,MAAOL,EACP,SAAWiB,GAAUhB,EAASgB,EAAM,OAAO,KAAK,EAChD,YAAaP,EAAE,6BAA6B,EAC5C,aAAa,MACb,UAAU,sHAAA,CACZ,CAAA,CAAA,CACF,KAEA,OAAC,IAAA,CAAE,UAAU,gCACV,SAAAA,EAAE,sBAAsB,CAAA,CAC3B,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAEJ,CMzII,IAAAc,GAAA,UAVJC,GAA6B,UCWzB,IAAAC,EAAA,UAXJC,GAAyB,UCGrB,IAAAC,GAAA,UAFJ,SAASC,GAAK,CAAE,UAAAC,EAAY,SAAU,SAAAC,EAAU,YAAAC,EAAc,CAAE,EAAG,CACjE,SACE,QAAC,MAAA,CACC,QAAQ,YACR,cAAY,OACZ,UAAU,QACV,UAAAF,EACA,KAAK,OACL,OAAO,eACP,YAAAE,EACA,cAAc,QACd,eAAe,QAEd,SAAAD,CAAA,CACH,CAEJ,CAGO,SAASE,GAAY,CAAE,UAAAH,EAAY,UAAW,EAAG,CACtD,SACE,QAACD,GAAA,CAAK,UAAAC,EAAsB,YAAa,IACvC,YAAA,QAAC,OAAA,CAAK,EAAE,eAAA,CAAgB,CAAA,CAC1B,CAEJ,CAEO,SAASI,GAAS,CAAE,UAAAJ,CAAU,EAAG,CACtC,SACE,QAACD,GAAA,CAAK,UAAAC,EACJ,YAAA,QAAC,OAAA,CAAK,EAAE,yBAAA,CAA0B,CAAA,CACpC,CAEJ,CAEO,SAASK,GAAQ,CAAE,UAAAL,CAAU,EAAG,CACrC,SACE,SAACD,GAAA,CAAK,UAAAC,EACJ,SAAA,IAAA,QAAC,SAAA,CAAO,GAAG,KAAK,GAAG,KAAK,EAAE,GAAA,CAAI,KAC9B,QAAC,OAAA,CAAK,EAAE,sHAAA,CAAuH,CAAA,CAAA,CACjI,CAEJ,CAEO,SAASM,GAAS,CAAE,UAAAN,CAAU,EAAG,CACtC,SACE,QAACD,GAAA,CAAK,UAAAC,EACJ,YAAA,QAAC,OAAA,CAAK,EAAE,oCAAA,CAAqC,CAAA,CAC/C,CAEJ,CAEO,SAASO,GAAU,CAAE,UAAAP,CAAU,EAAG,CACvC,SACE,QAACD,GAAA,CAAK,UAAAC,EACJ,YAAA,QAAC,OAAA,CAAK,EAAE,sBAAA,CAAuB,CAAA,CACjC,CAEJ,CAEO,SAASQ,GAAS,CAAE,UAAAR,EAAY,QAAS,EAAG,CACjD,SACE,QAAC,MAAA,CAAI,QAAQ,YAAY,cAAY,OAAO,UAAU,QAAQ,UAAAA,EAAsB,KAAK,eACvF,YAAA,QAAC,OAAA,CAAK,EAAE,6EAAA,CAA8E,CAAA,CACxF,CAEJ,CAEO,SAASS,GAAS,CAAE,UAAAT,CAAU,EAAG,CACtC,SACE,SAACD,GAAA,CAAK,UAAAC,EACJ,SAAA,IAAA,QAAC,OAAA,CAAK,EAAE,IAAI,EAAE,KAAK,MAAM,KAAK,OAAO,KAAK,GAAG,GAAA,CAAI,KACjD,QAAC,OAAA,CAAK,EAAE,yBAAA,CAA0B,CAAA,CAAA,CACpC,CAEJ,CDnEA,SAASU,GAAK,CAAE,SAAAC,EAAU,UAAAC,EAAY,EAAG,EAAG,CAC1C,SACE,OAAC,OAAA,CAAK,IAAI,MAAM,UAAW,iFAAiFA,CAAS,GAClH,SAAAD,CAAA,CACH,CAEJ,CAEA,IAAME,GAAeC,GAAW,OAAOA,GAAU,SAAW,IAAIA,CAAK,IAAM,KAAK,UAAUA,CAAK,EAGxF,SAASC,GAAa,CAAE,OAAAC,EAAQ,KAAAC,EAAM,YAAAC,EAAa,SAAAC,EAAU,WAAAC,EAAY,MAAAC,CAAM,EAAG,CACvF,IAAMC,EAAOC,GAAQ,EACfC,EAAIC,EAAK,EACTC,EAAYC,GAAa,EACzBC,EAAcC,GAAcb,CAAM,EAClCc,EAAOZ,GAAeQ,EAAUV,EAAQ,aAAa,EAE3D,SACE,QAAA,WAAA,CACE,SAAA,IAAA,OAAC,OAAA,CAAK,IAAI,MAAM,UAAU,0CACvB,SAAAC,GAAQD,EAAO,cACd,OAAC,IAAA,CAAE,KAAM,IAAIe,GAAYd,CAAI,CAAC,GAAI,UAAU,qBACzC,SAAAe,GAAUV,EAAMN,EAAQC,CAAI,CAAA,CAC/B,EAEAe,GAAUV,EAAMN,EAAQC,CAAI,CAAA,CAEhC,EACCE,MAAY,OAAC,OAAA,CAAK,UAAU,2DAA2D,SAAA,UAAA,CAAQ,EAC/FH,EAAO,aAAY,OAACN,GAAA,CAAK,SAAA,UAAA,CAAQ,EACjCM,EAAO,aAAY,OAACN,GAAA,CAAK,SAAA,WAAA,CAAS,EAClCM,EAAO,cAAa,OAACN,GAAA,CAAK,SAAA,YAAA,CAAU,GACnCU,GAAcJ,EAAO,gBACrB,OAACN,GAAA,CAAK,UAAU,wDAAwD,SAAA,YAAA,CAAU,EAEnFW,GAECS,GAAQd,EAAO,MAAQY,EAAY,OAAS,GAAKZ,EAAO,SAAWA,EAAO,UAAY,QAAaA,EAAO,UAAY,YACtH,QAAC,MAAA,CAAI,UAAU,4BACb,SAAA,IAAA,OAACiB,GAAA,CAAS,OAAQH,EAAM,UAAU,uBAAA,CAAwB,EACzDd,EAAO,SACN,QAAC,MAAA,CAAI,UAAU,kEACb,SAAA,IAAA,OAAC,OAAA,CAAM,SAAAQ,EAAE,eAAe,CAAA,CAAE,EACzBR,EAAO,KAAK,IAAKF,MAChB,OAACJ,GAAA,CAA0B,SAAAG,GAAYC,CAAK,CAAA,EAAjC,OAAOA,CAAK,CAAuB,CAC/C,CAAA,CAAA,CACH,GAEAc,EAAY,OAAS,GAAKZ,EAAO,aACjC,QAAC,MAAA,CAAI,UAAU,uBACZ,SAAA,CAAAY,EAAY,IAAKM,MAChB,OAACxB,GAAA,CAAiB,SAAAwB,CAAA,EAAPA,CAAY,CACxB,EACAlB,EAAO,YAAW,QAACN,GAAA,CAAK,SAAA,CAAA,YAAUM,EAAO,OAAA,CAAA,CAAQ,CAAA,CAAA,CACpD,EAEDA,EAAO,UAAY,WAClB,QAAC,MAAA,CAAI,UAAU,gCACZ,SAAA,CAAAQ,EAAE,gBAAgB,EAAE,OAAC,OAACd,GAAA,CAAM,SAAAG,GAAYG,EAAO,OAAO,CAAA,CAAE,CAAA,CAAA,CAC3D,EAEDA,EAAO,UAAY,WAClB,QAAC,MAAA,CAAI,UAAU,gCACZ,SAAA,CAAAQ,EAAE,gBAAgB,EAAE,OAAC,OAACd,GAAA,CAAM,SAAAG,GAAYG,EAAO,OAAO,CAAA,CAAE,CAAA,CAAA,CAC3D,CAAA,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAEJ,CAEA,SAASmB,GAAY,CAAE,KAAAlB,EAAM,IAAAmB,EAAK,SAAAjB,EAAU,MAAAkB,EAAO,KAAAC,CAAK,EAAG,CACzD,IAAMhB,EAAOC,GAAQ,EACf,CAAE,OAAAP,EAAQ,KAAMuB,CAAQ,EAAIC,GAAclB,EAAMc,CAAG,EACnDK,EAAWF,GAAWD,EAAK,IAAIC,CAAO,EACtCG,EAASD,EAAW,KAAOE,GAAWrB,EAAMN,CAAM,EAClD,CAAC4B,EAAMC,CAAO,KAAI,aAAS,EAAK,EAChCrB,EAAIC,EAAK,EAEf,SACE,QAAC,MAAA,CAAI,UAAU,+CACb,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,gDACZ,SAAA,CAAAiB,KACC,QAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMG,EAAQ,CAACD,CAAI,EAC5B,gBAAeA,EACf,UAAU,+EAEV,SAAA,IAAA,OAAC,OAAA,CAAK,UAAW,sCAAsCA,EAAO,YAAc,kBAAkB,GAC5F,YAAA,OAACE,GAAA,CAAY,UAAU,QAAA,CAAS,CAAA,CAClC,EACC7B,CAAA,CAAA,CACH,KAEA,OAAC,OAAA,CAAK,UAAU,kCAAmC,SAAAA,CAAA,CAAK,KAE1D,OAACF,GAAA,CACC,OAAAC,EACA,KAAMuB,EACN,SAAApB,EACA,MAAOsB,MAAY,QAAC/B,GAAA,CAAK,SAAA,CAAA,UAAGc,EAAE,iBAAiB,CAAA,CAAA,CAAE,CAAA,CACnD,CAAA,CAAA,CACF,EACCkB,GAAUE,MACT,OAAC,MAAA,CAAI,UAAU,0CACb,YAAA,OAACG,GAAA,CAAW,OAAA/B,EAAgB,OAAA0B,EAAgB,MAAOL,EAAQ,EAAG,KAAME,EAAU,IAAI,IAAID,CAAI,EAAE,IAAIC,CAAO,EAAID,CAAA,CAAM,CAAA,CACnH,CAAA,CAAA,CAEJ,CAEJ,CAEA,SAASS,GAAW,CAAE,OAAA/B,EAAQ,OAAA0B,EAAQ,MAAAL,EAAO,KAAAC,CAAK,EAAG,CACnD,IAAMhB,EAAOC,GAAQ,EACf,CAACyB,EAASC,CAAU,KAAI,aAAS,CAAC,EAClCzB,EAAIC,EAAK,EAEf,GAAIiB,EAAO,OAAS,aAAc,CAChC,IAAMvB,EAAW,IAAI,IAAIH,EAAO,UAAY,CAAC,CAAC,EAC9C,SACE,OAAC,MAAA,CACE,SAAA,OAAO,QAAQA,EAAO,UAAU,EAAE,IAAI,CAAC,CAACkC,EAAKpC,CAAK,OACjD,OAACqB,GAAA,CAAsB,KAAMe,EAAK,IAAKpC,EAAO,SAAUK,EAAS,IAAI+B,CAAG,EAAG,MAAAb,EAAc,KAAAC,CAAA,EAAvEY,CAAmF,CACtG,CAAA,CACH,CAEJ,CAEA,GAAIR,EAAO,OAAS,SAAWA,EAAO,OAAS,MAAO,CACpD,IAAMS,EAAQR,GAAWrB,EAAMoB,EAAO,MAAM,EAC5C,SACE,QAAC,MAAA,CACC,SAAA,IAAA,QAAC,IAAA,CAAE,UAAU,qCACV,SAAA,CAAAA,EAAO,OAAS,QAAUlB,EAAE,kBAAkB,EAAIA,EAAE,iBAAiB,EAAE,QAAE,OAAC,OAAA,CAAK,IAAI,MAAM,UAAU,YAAa,SAAAkB,EAAO,MAAQV,GAAUV,EAAMoB,EAAO,MAAM,CAAA,CAAE,CAAA,CAAA,CACjK,KACA,OAACK,GAAA,CACC,OAAQL,EAAO,OACf,OAAQS,EACR,MAAAd,EACA,KAAMK,EAAO,KAAO,IAAI,IAAIJ,CAAI,EAAE,IAAII,EAAO,IAAI,EAAIJ,CAAA,CACvD,CAAA,CAAA,CACF,CAEJ,CAGA,IAAMc,EAAUV,EAAO,SAASM,CAAO,GAAKN,EAAO,SAAS,CAAC,EACvDS,EAAQR,GAAWrB,EAAM8B,EAAQ,MAAM,EAC7C,SACE,QAAC,MAAA,CACC,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,yCACb,SAAA,IAAA,QAAC,OAAA,CAAK,UAAU,gCAAiC,SAAA,CAAAV,EAAO,KAAK,GAAA,CAAA,CAAC,EAC7DA,EAAO,SAAS,IAAI,CAACR,EAAMmB,OAC1B,OAAC,SAAA,CAEC,KAAK,SACL,QAAS,IAAMJ,EAAWI,CAAK,EAC/B,UAAW,kEACTA,IAAUL,EAAU,8BAAgC,2DACtD,GAEC,SAAAd,EAAK,MAAQA,EAAK,OAAO,OAASF,GAAUV,EAAMY,EAAK,MAAM,CAAA,EAPzDmB,CAQP,CACD,CAAA,CAAA,CACH,EACCF,KACC,OAACJ,GAAA,CAAW,OAAQK,EAAQ,OAAQ,OAAQD,EAAO,MAAAd,EAAc,KAAAC,CAAA,CAAY,KAE7E,OAAC,MAAA,CAAI,UAAU,2CACb,YAAA,OAACvB,GAAA,CAAa,OAAQqC,EAAQ,OAAQ,KAAMA,EAAQ,IAAA,CAAM,CAAA,CAC5D,CAAA,CAAA,CAEJ,CAEJ,CAIe,SAARE,GAA4B,CAAE,OAAQlB,EAAK,UAAAmB,CAAU,EAAG,CAC7D,IAAMjC,EAAOC,GAAQ,EACfG,EAAYC,GAAa,EACzB6B,EAAWhB,GAAclB,EAAMc,CAAG,EAClC,CAAE,OAAApB,CAAO,EAAIwC,EACbvC,EAAOuC,EAAS,MAAQD,EACxBb,EAASC,GAAWrB,EAAMN,CAAM,EAChCsB,EAAOrB,EAAO,IAAI,IAAI,CAACA,CAAI,CAAC,EAAI,IAAI,IAE1C,OAAKyB,KASH,QAAC,MAAA,CACE,SAAA,CAAA1B,EAAO,gBAAe,OAACiB,GAAA,CAAS,OAAQP,EAAUV,EAAQ,aAAa,EAAG,UAAU,4BAAA,CAA6B,KAClH,OAAC+B,GAAA,CAAW,OAAA/B,EAAgB,OAAA0B,EAAgB,MAAO,EAAG,KAAAJ,CAAA,CAAY,CAAA,CAAA,CACpE,KAVE,OAAC,MAAA,CAAI,UAAU,2CACb,YAAA,OAACvB,GAAA,CAAa,OAAAC,EAAgB,KAAAC,CAAA,CAAY,CAAA,CAC5C,CAUN,CDhNA,SAASwC,GAAM,CAAE,KAAAC,CAAK,EAAG,CACvB,IAAMC,KAAM,WAAO,IAAI,EACjBC,EAAOC,GAAgBF,CAAG,EAEhC,SACE,SAAC,UAAA,CAAQ,IAAAA,EAAU,GAAID,EAAK,OAAQ,cAAW,GAAC,UAAW,wCAAwCE,EAAO,GAAK,UAAU,GACvH,SAAA,IAAA,QAAC,KAAA,CAAG,UAAU,6DACZ,YAAA,QAAC,IAAA,CAAE,KAAM,IAAIF,EAAK,MAAM,GAAI,UAAU,qBACnC,SAAAA,EAAK,IAAA,CACR,CAAA,CACF,EACCE,MACC,QAAC,MAAA,CAAI,UAAU,OACb,YAAA,QAACE,GAAA,CAAW,OAAQJ,EAAK,OAAQ,UAAWA,EAAK,IAAA,CAAM,CAAA,CACzD,CAAA,CAAA,CAEJ,CAEJ,CAEA,SAASK,GAAO,CAAE,QAAAC,CAAQ,EAAG,CAC3B,IAAM,EAAIC,EAAK,EACf,OAAID,EAAQ,SAAW,EAAU,QAG/B,SAAC,UAAA,CAAQ,UAAU,QACjB,SAAA,IAAA,QAAC,KAAA,CAAG,UAAU,oCAAqC,SAAA,EAAE,cAAc,CAAA,CAAE,KACrE,QAAC,MAAA,CAAI,UAAU,iBACZ,SAAAA,EAAQ,IAAKN,MACZ,QAACD,GAAA,CAAsB,KAAAC,CAAA,EAAXA,EAAK,IAAkB,CACpC,CAAA,CACH,CAAA,CAAA,CACF,CAEJ,CAEA,IAAOQ,MAAQ,SAAKH,EAAM,EGnBtB,IAAAI,EAAA,UAtBJC,GAAuC,UCUnC,IAAAC,GAAA,UAZEC,GAAgB,CACpB,IAAK,+CACL,KAAM,2DACN,IAAK,qDACL,MAAO,wDACP,OAAQ,iDACV,EAEe,SAARC,GAA6B,CAAE,OAAAC,EAAQ,KAAAC,EAAO,IAAK,EAAG,CAG3D,SACE,QAAC,OAAA,CACC,UAAW,6FAJAA,IAAS,KAAO,0BAA4B,mBAIuD,IAC5GH,GAAcE,CAAM,GAAK,gCAC3B,GAEC,SAAAA,IAAW,UAAYC,IAAS,KAAO,MAAQD,CAAA,CAClD,CAEJ,CAIO,SAASE,GAAWC,EAAQ,CAAE,OAAAC,EAAS,EAAM,EAAI,CAAC,EAAG,CAC1D,OAAIA,EACE,KAAK,KAAKD,CAAM,EAAU,mBAC1B,KAAK,KAAKA,CAAM,EAAU,eAC1B,KAAK,KAAKA,CAAM,EAAU,iBAC1B,KAAK,KAAKA,CAAM,EAAU,gBACvB,gBAEL,KAAK,KAAKA,CAAM,EAAU,yCAC1B,KAAK,KAAKA,CAAM,EAAU,iCAC1B,KAAK,KAAKA,CAAM,EAAU,qCAC1B,KAAK,KAAKA,CAAM,EAAU,mCACvB,uBACT,CChBQ,IAAAE,GAAA,UAnBRC,GAAkC,UASlC,SAASC,GAAc,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,CAAS,EAAG,CAC1D,SACE,QAAC,SAAA,CACC,aAAYH,EACZ,MAAOA,EACP,MAAAC,EACA,SAAWG,GAAUD,EAASC,EAAM,OAAO,KAAK,EAChD,UAAU,+MAET,SAAAF,EAAQ,IAAI,CAAC,CAACG,EAAKC,CAAI,OACtB,QAAC,SAAA,CAAiB,MAAOD,EACtB,SAAAC,CAAA,EADUD,CAEb,CACD,CAAA,CACH,CAEJ,CAGO,SAASE,GAASC,EAAQC,EAAM,CACrC,MAAO,CACL,OAAQ,CAAE,GAAGD,EAAQ,MAAO,CAAE,GAAGA,EAAO,MAAO,GAAGC,EAAK,KAAM,EAAG,OAAQ,CAAE,GAAGD,EAAO,OAAQ,GAAGC,EAAK,OAAQ,CAAE,EAC9G,QAASA,EAAK,OAChB,CACF,CAEO,SAASC,GAAc,CAAE,UAAAC,EAAW,MAAAC,CAAM,EAAG,CAClD,IAAMC,EAAOC,GAAQ,EACf,CAAE,OAAAC,EAAQ,QAAAC,EAAS,SAAAC,EAAU,YAAAC,CAAY,EAAIC,GAAY,EACzDC,EAAIC,EAAK,EAETC,KAAU,YACd,IACEC,GAAaZ,EAAW,CACtB,OAAAI,EACA,GAAGR,GAASiB,GAAcX,EAAMF,CAAS,EAAGK,EAAQL,CAAS,CAAC,EAC9D,GAAGc,GAAYZ,EAAMF,CAAS,CAChC,CAAC,EACH,CAACE,EAAMF,EAAWI,EAAQC,CAAO,CACnC,EAEM,CAAE,SAAUU,EAAS,OAAAC,CAAO,EAAIC,GAAeX,CAAQ,EACvDY,EAAkBxB,GAAQa,EAAYU,GAAevB,CAAG,EAAE,SAAS,EAEzE,SACE,QAACyB,GAAA,CACC,SAAUJ,EAAQ,UAClB,KAAMC,EAAO,MAAML,CAAO,EAC1B,WACE,SAAA,YAAA,CACE,SAAA,IAAA,QAACvB,GAAA,CACC,MAAOqB,EAAE,mBAAmB,EAC5B,MAAOM,EAAQ,IACf,SAAUG,EACV,QAASE,GAAkB,IAAKC,GAAS,CAACA,EAAK,IAAKA,EAAK,KAAK,CAAC,CAAA,CACjE,EACCN,EAAQ,QAAQ,OAAS,MACxB,QAAC3B,GAAA,CACC,MAAOqB,EAAE,iBAAiB,EAC1B,MAAOO,EAAO,IACd,SAAWtB,GAAQa,EAAY,GAAGQ,EAAQ,GAAG,IAAIrB,CAAG,EAAE,EACtD,QAASqB,EAAQ,QAAQ,IAAKM,GAAS,CAACA,EAAK,IAAKA,EAAK,KAAK,CAAC,CAAA,CAC/D,CAAA,CAAA,CAEJ,EAEF,QACEpB,MACA,SAAC,SAAA,CACC,KAAK,SACL,QAASA,EACT,UAAU,oIAET,SAAA,CAAAQ,EAAE,YAAY,KACf,QAACa,GAAA,CAAS,UAAU,2BAAA,CAA4B,CAAA,CAAA,CAClD,CAAA,CAGJ,CAEJ,CAEO,SAASC,GAAe,CAAE,UAAAvB,CAAU,EAAG,CAC5C,IAAME,EAAOC,GAAQ,EACfqB,EAAWxB,EAAU,UAAU,OAAQyB,GAAaC,GAAcD,EAAS,OAAO,CAAC,EACnF,CAACE,EAAQC,CAAS,KAAI,aAASJ,EAAS,CAAC,GAAG,MAAM,EAClD,CAACK,EAAYC,CAAa,KAAI,aAAS,IAAI,EAEjD,GAAIN,EAAS,SAAW,EAAG,OAAO,KAElC,IAAMC,EAAWD,EAAS,KAAMH,GAASA,EAAK,SAAWM,CAAM,GAAKH,EAAS,CAAC,EACxEO,EAAQN,EAAS,QAAQC,GAAcD,EAAS,OAAO,CAAC,EACxDO,EAAQC,GAAc/B,EAAM6B,CAAK,EACjCG,EAAWF,EAAM,KAAMX,GAASA,EAAK,MAAQQ,CAAU,GAAKG,EAAM,CAAC,EACnE1C,EAAQ4C,EAAWA,EAAS,MAAQC,GAAajC,EAAM6B,CAAK,EAElE,SACE,SAAC,MAAA,CAAI,UAAU,YACb,SAAA,IAAA,QAACZ,GAAA,CACC,KAAM7B,IAAU,OAAY,GAAK,KAAK,UAAUA,EAAO,KAAM,CAAC,EAC9D,QAASkC,EAAS,IAAKH,MACrB,QAACe,GAAA,CAEC,OAAQf,EAAK,SAAWI,EAAS,OACjC,QAAS,IAAM,CACbG,EAAUP,EAAK,MAAM,EACrBS,EAAc,IAAI,CACpB,EAEA,YAAA,QAAC,OAAA,CAAK,UAAWT,EAAK,SAAWI,EAAS,OAAS,GAAKY,GAAWhB,EAAK,OAAQ,CAAE,OAAQ,EAAK,CAAC,EAAI,SAAAA,EAAK,MAAA,CAAO,CAAA,EAP3GA,EAAK,MAQZ,CACD,CAAA,CACH,EACCW,EAAM,OAAS,MACd,QAAC,SAAA,CACC,MAAOE,GAAU,IACjB,SAAWzC,GAAUqC,EAAcrC,EAAM,OAAO,KAAK,EACrD,UAAU,2EAET,SAAAuC,EAAM,IAAKX,MACV,QAAC,SAAA,CAAsB,MAAOA,EAAK,IAChC,SAAAA,EAAK,OAAA,EADKA,EAAK,GAElB,CACD,CAAA,CACH,CAAA,CAAA,CAEJ,CAEJ,CF5HA,IAAMiB,GAAe,CACnB,CAAC,OAAQ,aAAa,EACtB,CAAC,QAAS,cAAc,EACxB,CAAC,SAAU,eAAe,EAC1B,CAAC,SAAU,eAAe,CAC5B,EAEA,SAASC,GAAa,CAAE,SAAAC,EAAU,MAAAC,CAAM,EAAG,CACzC,SACE,QAAC,MAAA,CAAI,UAAU,gFACb,SAAA,IAAA,OAAC,KAAA,CAAG,UAAU,wBAAyB,SAAAD,CAAA,CAAS,EAC/CC,CAAA,CAAA,CACH,CAEJ,CAEA,SAASC,GAAW,CAAE,WAAAC,CAAW,EAAG,CAClC,IAAMC,EAAOC,GAAQ,EACfC,EAAIC,EAAK,EACTC,EAAYC,GAAa,EAE/B,OAAOX,GAAa,IAAI,CAAC,CAACY,EAAUC,CAAK,IAAM,CAC7C,IAAMC,EAAOT,EAAW,OAAQU,GAAUA,EAAM,KAAOH,CAAQ,EAC/D,OAAIE,EAAK,SAAW,EAAU,QAG5B,QAAC,MAAA,CACC,SAAA,IAAA,OAACb,GAAA,CAAc,SAAAO,EAAEK,CAAK,CAAA,CAAE,EACvBC,EAAK,IAAKC,GAAU,CACnB,GAAM,CAAE,OAAAC,EAAQ,KAAAC,CAAK,EAAIC,GAAcZ,EAAMS,EAAM,QAAU,CAAC,CAAC,EAC/D,SACE,QAAC,MAAA,CAAqB,UAAU,6FAC9B,SAAA,IAAA,OAAC,OAAA,CAAK,UAAU,kCAAmC,SAAAA,EAAM,IAAA,CAAK,KAC9D,OAACI,GAAA,CACC,OAAQJ,EAAM,UAAY,OAAY,CAAE,GAAGC,EAAQ,QAASD,EAAM,OAAQ,EAAIC,EAC9E,KAAAC,EACA,YAAaP,EAAUK,EAAO,aAAa,EAC3C,SAAUA,EAAM,SAChB,WAAYA,EAAM,UAAA,CACpB,CAAA,CAAA,EARQA,EAAM,IAShB,CAEJ,CAAC,CAAA,CAAA,EAhBOH,CAiBV,CAEJ,CAAC,CACH,CAEA,SAASQ,GAAY,CAAE,QAAAC,CAAQ,EAAG,CAChC,IAAMC,EAAQ,OAAO,KAAKD,CAAO,EAC3B,CAACE,EAAMC,CAAO,KAAI,aAASC,GAAcJ,CAAO,CAAC,EACjDb,EAAIC,EAAK,EACTiB,EAAQL,EAAQE,CAAI,EAE1B,SACE,QAAC,MAAA,CACE,SAAA,CAAAD,EAAM,OAAS,MACd,OAAC,SAAA,CACC,MAAOC,EACP,SAAWI,GAAUH,EAAQG,EAAM,OAAO,KAAK,EAC/C,UAAU,iFAET,SAAAL,EAAM,IAAKM,MACV,OAAC,SAAA,CAAmB,SAAAA,CAAA,EAAPA,CAAY,CAC1B,CAAA,CACH,EAEDF,GAAO,UAAS,OAACG,GAAA,CAAW,OAAQH,EAAM,MAAA,CAAQ,KAAK,OAAC,IAAA,CAAE,UAAU,gCAAiC,SAAAlB,EAAE,aAAa,CAAA,CAAE,CAAA,CAAA,CACzH,CAEJ,CAGA,SAASsB,GAAM,CAAE,MAAAC,CAAM,EAAG,CACxB,IAAM,EAAItB,EAAK,EACTuB,EAAQC,GAAS,EACjBvB,EAAYC,GAAa,EAE/B,SACE,QAAC,MAAA,CACC,SAAA,IAAA,OAAC,IAAA,CAAE,UAAU,mDAAoD,SAAA,EAAE,iBAAiB,CAAA,CAAE,EACrFoB,EAAM,IAAKG,GAAS,CACnB,IAAMC,EAASH,EAAQI,GAAWJ,EAAOE,CAAI,EAAI,OAC3C7B,EAAa,OAAO,QAAQ6B,EAAK,UAAU,EACjD,SACE,QAAC,MAAA,CAAoB,UAAU,yDAC7B,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,8CACb,SAAA,IAAA,OAAC,OAAA,CAAK,UAAU,0BAA2B,SAAAA,EAAK,IAAA,CAAK,KACrD,OAAC,OAAA,CAAK,UAAU,wBAAwB,SAAA,QAAA,CAAC,EACxCC,KACC,OAAC,IAAA,CAAE,KAAM,IAAIA,EAAO,MAAM,GAAI,UAAU,4CACrC,SAAAzB,EAAUyB,EAAQ,SAAS,GAAKA,EAAO,aAAe,GAAGA,EAAO,OAAO,YAAY,CAAC,IAAIA,EAAO,IAAI,EAAA,CACtG,KAEA,OAAC,OAAA,CAAK,IAAI,MAAM,UAAU,0CAA2C,SAAAD,EAAK,aAAeA,EAAK,YAAA,CAAa,CAAA,CAAA,CAE/G,KACA,OAACG,GAAA,CAAS,OAAQH,EAAK,YAAa,UAAU,uBAAA,CAAwB,EACrE7B,EAAW,OAAS,MACnB,OAAC,KAAA,CAAG,IAAI,MAAM,UAAU,0EACrB,SAAAA,EAAW,IAAI,CAAC,CAACY,EAAMqB,CAAU,OAChC,QAAC,MAAA,CAAe,UAAU,WACxB,SAAA,IAAA,OAAC,KAAA,CAAG,UAAU,gBAAiB,SAAArB,CAAA,CAAK,KACpC,OAAC,KAAA,CAAG,UAAU,kCAAmC,SAAA,OAAOqB,GAAe,SAAWA,EAAa,KAAK,UAAUA,CAAU,CAAA,CAAE,CAAA,CAAA,EAFlHrB,CAGV,CACD,CAAA,CACH,CAAA,CAAA,EArBMiB,EAAK,IAuBf,CAEJ,CAAC,CAAA,CAAA,CACH,CAEJ,CAEA,SAASK,GAAY,CAAE,SAAAC,EAAU,YAAAC,CAAY,EAAG,CAC9C,IAAM/B,EAAYC,GAAa,EACzB,CAAC+B,EAAMC,CAAO,KAAI,aAASF,CAAW,EACtCG,EAAU,OAAO,KAAKJ,EAAS,OAAO,EAAE,OAAS,EACjDK,EAAU,OAAO,QAAQL,EAAS,OAAO,EACzCT,EAAQS,EAAS,OAAS,CAAC,EAC3BM,EAAaF,GAAWC,EAAQ,OAAS,GAAKd,EAAM,OAAS,EAEnE,SACE,QAAC,MAAA,CAAI,UAAU,0CACb,SAAA,IAAA,QAAC,SAAA,CACC,KAAK,SACL,SAAU,CAACe,EACX,QAAS,IAAMH,EAAQ,CAACD,CAAI,EAC5B,UAAU,8EAEV,SAAA,IAAA,OAAC,OAAA,CAAK,UAAW,4CAA4CI,EAAa,GAAK,WAAW,IAAIJ,EAAO,YAAc,kBAAkB,GACnI,YAAA,OAACK,GAAA,CAAA,CAAY,CAAA,CACf,KACA,OAAC,OAAA,CAAK,UAAW,+BAA+BC,GAAWR,EAAS,MAAM,CAAC,GAAK,SAAAA,EAAS,MAAA,CAAO,KAChG,OAAC,OAAA,CAAK,IAAI,OAAO,UAAU,gCAAiC,SAAA9B,EAAU8B,EAAU,aAAa,CAAA,CAAE,CAAA,CAAA,CACjG,EACCE,GAAQI,MACP,QAAC,MAAA,CAAI,UAAU,sBACZ,SAAA,CAAAD,EAAQ,OAAS,MAChB,QAAC,MAAA,CACC,SAAA,IAAA,OAAC,IAAA,CAAE,UAAU,mDAAmD,SAAA,SAAA,CAAO,EACtEA,EAAQ,IAAI,CAAC,CAAC5B,EAAMgC,CAAM,OACzB,QAAC,MAAA,CAAe,UAAU,2CACxB,SAAA,IAAA,OAAC,OAAA,CAAK,UAAU,kCAAmC,SAAAhC,CAAA,CAAK,KACxD,OAACE,GAAA,CAAa,OAAQ8B,EAAO,QAAU,CAAC,EAAG,YAAavC,EAAUuC,EAAQ,aAAa,CAAA,CAAG,CAAA,CAAA,EAFlFhC,CAGV,CACD,CAAA,CAAA,CACH,EAED2B,MAAW,OAACxB,GAAA,CAAY,QAASoB,EAAS,OAAA,CAAS,EACnDT,EAAM,OAAS,MAAK,OAACD,GAAA,CAAM,MAAAC,CAAA,CAAc,CAAA,CAAA,CAC5C,CAAA,CAAA,CAEJ,CAEJ,CAGA,SAASmB,GAAS,CAAE,UAAAC,CAAU,EAAG,CAC/B,GAAM,CAACT,EAAMC,CAAO,KAAI,aAAS,EAAK,EAChCjC,EAAYC,GAAa,EACzBH,EAAIC,EAAK,EAEf,SACE,QAAC,MAAA,CAAI,UAAU,0CACb,SAAA,IAAA,QAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMkC,EAAQ,CAACD,CAAI,EAC5B,gBAAeA,EACf,UAAU,oEAEV,SAAA,IAAA,OAAC,OAAA,CAAK,UAAW,gCAAgCA,EAAO,YAAc,kBAAkB,GACtF,YAAA,OAACK,GAAA,CAAA,CAAY,CAAA,CACf,KACA,OAACK,GAAA,CAAY,OAAQD,EAAU,OAAQ,KAAK,IAAA,CAAK,KACjD,OAAC,OAAA,CAAK,IAAI,MAAM,UAAU,qCAAsC,SAAAA,EAAU,IAAA,CAAK,KAC/E,OAAC,OAAA,CAAK,IAAI,OAAO,UAAU,yCAA0C,SAAAzC,EAAUyC,EAAW,SAAS,CAAA,CAAE,CAAA,CAAA,CACvG,EACCT,MACC,QAAC,MAAA,CAAI,UAAU,sBACb,SAAA,IAAA,OAACL,GAAA,CAAS,OAAQ3B,EAAUyC,EAAW,aAAa,CAAA,CAAG,EACtDA,EAAU,aAAa,YACtB,QAAC,MAAA,CACC,SAAA,IAAA,OAAC,IAAA,CAAE,UAAU,mDAAoD,SAAA3C,EAAE,uBAAuB,CAAA,CAAE,KAC5F,OAACY,GAAA,CAAY,QAAS+B,EAAU,YAAY,OAAA,CAAS,CAAA,CAAA,CACvD,EAEDA,EAAU,UAAU,OAAS,MAC5B,QAAC,MAAA,CACC,SAAA,IAAA,OAAC,IAAA,CAAE,UAAU,mDAAoD,SAAA3C,EAAE,qBAAqB,CAAA,CAAE,EACzF2C,EAAU,UAAU,IAAKX,MACxB,OAACD,GAAA,CAAkC,SAAAC,EAAoB,YAAa,EAAA,EAAlDA,EAAS,MAAgD,CAC5E,CAAA,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAEJ,CAGA,SAASa,GAAc,CAAE,UAAAF,CAAU,EAAG,CACpC,IAAM7C,EAAOC,GAAQ,EACfC,EAAIC,EAAK,EACTY,EAAU8B,EAAU,aAAa,QACjC5B,EAAOE,GAAcJ,CAAO,EAClC,GAAI,CAACE,EAAM,OAAO,KAClB,IAAM+B,EAAUC,GAAajD,EAAMe,EAAQE,CAAI,CAAC,EAChD,OAAI+B,IAAY,OAAkB,QAGhC,OAACE,GAAA,CACC,KAAM,OAAOF,GAAY,SAAWA,EAAU,KAAK,UAAUA,EAAS,KAAM,CAAC,EAC7E,WAAS,OAAC,OAAA,CAAK,UAAU,yCAA0C,SAAA9C,EAAE,kBAAkB,CAAA,CAAE,CAAA,CAC3F,CAEJ,CAGA,SAASiD,GAAa,CAAE,UAAAN,CAAU,EAAG,CACnC,IAAM,EAAI1C,EAAK,EACTiD,EAAeC,GAAqBR,CAAS,EACnD,GAAI,CAACO,EAAa,OAAQ,OAAO,KACjC,IAAME,EAAWF,EAAa,KAAMG,GAAgBA,EAAY,QAAQ,SAAW,CAAC,EAC9EC,EAAeJ,EAAa,OAAQG,GAAgBA,EAAY,QAAQ,MAAM,EAEpF,SACE,QAAC,IAAA,CAAE,UAAU,yEACX,SAAA,IAAA,OAACE,GAAA,CAAS,UAAU,UAAA,CAAW,KAC/B,OAAC,OAAA,CAAM,SAAA,EAAE,oBAAoB,CAAA,CAAE,EAC9BD,EAAa,IAAI,CAACD,EAAaG,OAC9B,QAAC,OAAA,CAAiB,UAAU,4BACzB,SAAA,CAAAA,EAAQ,MAAK,OAAC,OAAA,CAAM,SAAA,EAAE,sBAAsB,CAAA,CAAE,KAC/C,OAAC,OAAA,CAAK,IAAI,MAAM,UAAU,qDACvB,SAAAH,EAAY,QAAQ,IAAK5C,GAAU4C,EAAY,OAAO5C,CAAI,GAAG,OAAS,GAAGA,CAAI,KAAK4C,EAAY,OAAO5C,CAAI,EAAE,KAAK,IAAI,CAAC,IAAMA,CAAK,EAAE,KAAK,KAAK,CAAA,CAC/I,CAAA,CAAA,EAJS+C,CAKX,CACD,EACAJ,MAAY,QAAC,OAAA,CAAK,SAAA,CAAA,IAAE,EAAE,4BAA4B,EAAE,GAAA,CAAA,CAAC,CAAA,CAAA,CACxD,CAEJ,CAEA,SAASK,GAAU,CAAE,UAAAd,EAAW,MAAAe,EAAO,MAAAC,EAAQ,EAAM,EAAG,CACtD,IAAM3D,EAAIC,EAAK,EACTC,EAAYC,GAAa,EACzByD,EAAUjB,EAAU,OAAS,UAC7BkB,KAAM,WAAO,IAAI,EAKvB,OAJaC,GAAgBD,EAAKF,CAAK,KAgBrC,OAAC,UAAA,CAAQ,IAAAE,EAAU,GAAIlB,EAAU,OAAQ,cAAW,GAAC,UAAU,+BAC7D,YAAA,QAAC,MAAA,CAAI,UAAU,qFACb,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,UACb,SAAA,IAAA,QAAC,KAAA,CAAG,UAAU,mGACZ,SAAA,IAAA,OAAC,IAAA,CAAE,KAAM,IAAIA,EAAU,MAAM,GAAI,UAAU,qBACxC,SAAAzC,EAAUyC,EAAW,SAAS,GAAKA,EAAU,IAAA,CAChD,EACCA,EAAU,eACT,OAAC,OAAA,CAAK,UAAU,gGAAgG,SAAA,YAAA,CAEhH,CAAA,CAAA,CAEJ,KACA,QAAC,MAAA,CAAI,IAAI,MAAM,UAAU,mGACvB,SAAA,IAAA,OAACC,GAAA,CAAY,OAAQD,EAAU,MAAA,CAAQ,KACvC,OAAC,OAAA,CAAK,UAAU,4CAA6C,SAAAA,EAAU,IAAA,CAAK,KAC5E,OAACoB,GAAA,CAAW,KAAMpB,EAAU,KAAM,UAAU,4DAAA,CAA6D,CAAA,CAAA,CAC3G,EACCA,EAAU,gBACT,QAAC,IAAA,CAAE,IAAI,MAAM,UAAU,uFAAuF,SAAA,CAAA,gBAAcA,EAAU,WAAA,CAAA,CAAY,KAEpJ,OAACM,GAAA,CAAa,UAAAN,CAAA,CAAsB,KACpC,OAACd,GAAA,CAAS,OAAQ3B,EAAUyC,EAAW,aAAa,EAAG,UAAU,MAAA,CAAO,KAExE,OAAC/C,GAAA,CAAW,WAAY+C,EAAU,UAAA,CAAY,EAE7CA,EAAU,aAAa,YACtB,QAAC,MAAA,CACC,SAAA,IAAA,OAAClD,GAAA,CACC,MACEkD,EAAU,YAAY,aACpB,OAAC,OAAA,CAAK,UAAU,2DAA2D,SAAA,UAAA,CAAQ,EAItF,SAAA3C,EAAE,uBAAuB,CAAA,CAC5B,KACA,OAAC6B,GAAA,CAAS,OAAQ3B,EAAUyC,EAAU,YAAa,aAAa,EAAG,UAAU,4BAAA,CAA6B,KAC1G,OAAC/B,GAAA,CAAY,QAAS+B,EAAU,YAAY,OAAA,CAAS,CAAA,CAAA,CACvD,EAGDA,EAAU,UAAU,OAAS,MAC5B,QAAC,MAAA,CACC,SAAA,IAAA,OAAClD,GAAA,CAAc,SAAAO,EAAE,qBAAqB,CAAA,CAAE,EACvC2C,EAAU,UAAU,IAAI,CAACX,EAAUwB,OAClC,OAACzB,GAAA,CAAkC,SAAAC,EAAoB,YAAawB,IAAU,GAAK,KAAK,KAAKxB,EAAS,MAAM,CAAA,EAA1FA,EAAS,MAAoF,CAChH,CAAA,CAAA,CACH,EAGDW,EAAU,WAAW,OAAS,MAC7B,QAAC,MAAA,CACC,SAAA,IAAA,OAAClD,GAAA,CAAc,SAAAO,EAAE,qBAAqB,CAAA,CAAE,EACvC2C,EAAU,UAAU,IAAKqB,MACxB,QAAC,MAAA,CACC,SAAA,IAAA,OAAC,IAAA,CAAE,UAAU,6DAA8D,SAAAA,EAAS,IAAA,CAAK,EACxFA,EAAS,WAAW,IAAK5C,MACxB,OAACsB,GAAA,CAA2B,UAAWtB,CAAA,EAAxBA,EAAK,MAAyB,CAC9C,CAAA,CAAA,EAJO4C,EAAS,IAKnB,CACD,CAAA,CAAA,CACH,CAAA,CAAA,CAEJ,KAEA,OAAC,QAAA,CAAM,UAAU,sDACd,SAAAJ,KACC,OAACf,GAAA,CAAc,UAAAF,CAAA,CAAsB,KAErC,QAAA,WAAA,CACE,SAAA,IAAA,OAACsB,GAAA,CAAc,UAAAtB,EAAsB,MAAOe,EAAQ,IAAMA,EAAMf,CAAS,EAAI,IAAA,CAAM,KACnF,OAACuB,GAAA,CAAe,UAAAvB,CAAA,CAAsB,CAAA,CAAA,CACxC,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,KAvFE,QAAC,UAAA,CAAQ,IAAAkB,EAAU,GAAIlB,EAAU,OAAQ,cAAW,GAAC,UAAU,6CAC7D,SAAA,IAAA,OAAC,KAAA,CAAG,UAAU,iEAAkE,SAAAzC,EAAUyC,EAAW,SAAS,GAAKA,EAAU,IAAA,CAAK,KAClI,QAAC,IAAA,CAAE,IAAI,MAAM,UAAU,+CACpB,SAAA,CAAAA,EAAU,OAAO,YAAY,EAAE,IAAEA,EAAU,IAAA,CAAA,CAC9C,CAAA,CAAA,CACF,CAoFN,CAEA,IAAOwB,MAAQ,SAAKV,EAAS,EG9QrB,IAAAW,GAAA,UA1FRC,GAAqD,UAQrD,SAASC,GAAQC,EAAWC,EAAOC,EAAW,CAC5C,MAAO,CACLA,EAAUF,EAAW,SAAS,EAC9BA,EAAU,QACVE,EAAUF,EAAW,aAAa,EAClCA,EAAU,YACVA,EAAU,KACVA,EAAU,OACVA,EAAU,YACVG,GAASH,CAAS,EAClB,GAAGA,EAAU,WAAW,IAAKI,GAAcA,EAAU,IAAI,CAC3D,EACG,OAAO,OAAO,EACd,KAAMC,GAAU,OAAOA,CAAK,EAAE,YAAY,EAAE,SAASJ,CAAK,CAAC,CAChE,CAEA,IAAME,GAAYH,GAAcA,EAAU,KAAK,KAAK,GAAG,EAGjDM,GAAaD,GAAW,WAAW,KAAK,OAAS,IAAI,OAAOA,CAAK,EAAI,OAAOA,CAAK,EAAE,QAAQ,SAAU,MAAM,EAEjH,SAASE,GAAcC,EAAMP,EAAOC,EAAW,CAC7C,MAAO,CAACM,EAAK,KAAMN,EAAUM,EAAK,OAAQ,aAAa,EAAGA,EAAK,OAAO,YAAaA,EAAK,OAAO,KAAK,EACjG,OAAO,OAAO,EACd,KAAMH,GAAU,OAAOA,CAAK,EAAE,YAAY,EAAE,SAASJ,CAAK,CAAC,CAChE,CAEe,SAARQ,GAAyB,CAAE,MAAAC,EAAO,aAAAC,EAAc,UAAAC,EAAW,WAAAC,EAAY,WAAAC,EAAa,EAAK,EAAG,CACjG,GAAM,CAACb,EAAOc,CAAQ,KAAI,aAAS,EAAE,EAC/B,CAACC,EAAUC,CAAW,KAAI,aAAS,IAAM,IAAI,GAAK,EAClD,CAACC,EAAYC,CAAa,KAAI,aAAS,EAAK,EAC5CC,KAAU,WAAO,IAAI,EACrBC,EAAIC,EAAK,EACTpB,EAAYqB,GAAa,EACzBC,EAAavB,EAAM,KAAK,EAAE,YAAY,EAGtCwB,KAAS,YACb,IAAOf,EAAM,UAAU,OAAS,CAAC,GAAGA,EAAM,KAAM,CAAE,KAAM,WAAY,MAAOW,EAAE,gBAAgB,EAAG,OAAQ,WAAY,WAAYX,EAAM,QAAS,CAAC,EAAIA,EAAM,KAC1J,CAACA,EAAM,KAAMA,EAAM,SAAUW,CAAC,CAChC,EAEMK,KAAO,YAAQ,IACdF,EACEC,EACJ,IAAKE,IAAS,CAAE,GAAGA,EAAK,WAAYA,EAAI,WAAW,OAAQC,GAAO7B,GAAQ6B,EAAIJ,EAAYtB,CAAS,CAAC,CAAE,EAAE,EACxG,OAAQyB,GAAQA,EAAI,WAAW,OAAS,CAAC,EAHpBF,EAIvB,CAACA,EAAQD,EAAYtB,CAAS,CAAC,EAE5B2B,KAAU,YACd,IAAOL,EAAad,EAAM,QAAQ,OAAQF,GAASD,GAAcC,EAAMgB,EAAYtB,CAAS,CAAC,EAAIQ,EAAM,QACvG,CAACA,EAAM,QAASc,EAAYtB,CAAS,CACvC,EAEM4B,EAAYL,EAAO,KACtBE,GAAQA,EAAI,SAAWhB,GAAgBgB,EAAI,WAAW,KAAMC,GAAOA,EAAG,SAAWjB,CAAY,CAChG,GAAG,KACGoB,EAAWpB,GAAc,WAAW,QAAQ,KAElD,cAAU,IAAM,CACdS,EAAQ,SACJ,cAAc,cAAcd,GAAUK,GAAgB,EAAE,CAAC,IAAI,GAC7D,eAAe,CAAE,MAAO,SAAU,CAAC,CACzC,EAAG,CAACA,CAAY,CAAC,EAEjB,SAASqB,EAAOC,EAAM,CACpBhB,EAAaiB,GAAY,CACvB,IAAMC,EAAO,IAAI,IAAID,CAAO,EAC5B,OAAIC,EAAK,IAAIF,CAAI,EAAGE,EAAK,OAAOF,CAAI,EAC/BE,EAAK,IAAIF,CAAI,EACXE,CACT,CAAC,CACH,CAEA,IAAMC,EAAaC,GACjB,qEACEA,IAAW1B,EAAe,yCAA2C,4DACvE,GAEF,SACE,SAAC,MAAA,CAAI,UAAU,uBAAuB,aAAYU,EAAE,eAAe,EACjE,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,MACb,YAAA,SAAC,MAAA,CAAI,UAAU,WACb,SAAA,IAAA,QAAC,QAAA,CACC,IAAKT,EACL,KAAK,SACL,MAAOX,EACP,SAAWqC,GAAUvB,EAASuB,EAAM,OAAO,KAAK,EAChD,YAAajB,EAAE,gBAAgB,EAC/B,UAAU,kHAAA,CACZ,KACA,QAAC,MAAA,CAAI,UAAU,oIAAoI,SAAA,SAAA,CAEnJ,CAAA,CAAA,CACF,CAAA,CACF,KAEA,SAAC,MAAA,CAAI,IAAKD,EAAS,UAAU,uDAC1B,SAAA,CAAA,CAACI,MACA,QAAC,IAAA,CAAE,KAAK,gBAAgB,WAAS,eAAe,QAASX,EAAY,UAAWuB,EAAU,cAAc,EACrG,SAAAf,EAAE,sBAAsB,CAAA,CAC3B,EAGDK,EAAK,IAAKC,GAAQ,CACjB,IAAMY,EAAO,EAAQf,GAAeR,EAAS,IAAIW,EAAI,IAAI,GAAKA,EAAI,OAASG,EAC3E,SACE,SAAC,MAAA,CACC,SAAA,IAAA,SAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAME,EAAOL,EAAI,IAAI,EAC9B,gBAAeY,EACf,UAAU,gHAET,SAAA,CAAAZ,EAAI,OAASzB,EAAUyB,EAAK,MAAM,KACnC,QAAC,OAAA,CAAK,UAAW,oCAAoCY,EAAO,YAAc,kBAAkB,GAC1F,YAAA,QAACC,GAAA,CAAA,CAAY,CAAA,CACf,CAAA,CAAA,CACF,EACCD,MACC,QAAC,MAAA,CAAI,UAAU,oDACZ,SAAAZ,EAAI,WAAW,IAAKC,MACnB,SAAC,IAAA,CAAkB,KAAM,IAAIA,EAAG,MAAM,GAAI,WAAUA,EAAG,OAAQ,QAASf,EAAY,UAAWuB,EAAUR,EAAG,MAAM,EAChH,SAAA,IAAA,QAACa,GAAA,CAAY,OAAQb,EAAG,OAAQ,KAAK,IAAA,CAAK,KAC1C,QAAC,OAAA,CAAK,IAAI,OAAO,MAAO1B,EAAU0B,EAAI,SAAS,GAAKA,EAAG,KAAM,UAAW,uBAAuBA,EAAG,WAAa,eAAiB,EAAE,GAAK,SAAA1B,EAAU0B,EAAI,SAAS,GAAKA,EAAG,IAAA,CAAK,CAAA,CAAA,EAFrKA,EAAG,MAGX,CACD,CAAA,CACH,CAAA,CAAA,EApBMD,EAAI,IAsBd,CAEJ,CAAC,EAEAb,GAAce,EAAQ,OAAS,MAC9B,SAAC,MAAA,CAAI,UAAU,OACb,SAAA,IAAA,SAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMV,EAAc,CAACD,CAAU,EACxC,UAAU,iKAET,SAAA,CAAAG,EAAE,cAAc,EAAE,KAAGQ,EAAQ,OAAO,OACrC,QAAC,OAAA,CAAK,UAAW,cAAcX,GAAcM,GAAcO,EAAW,YAAc,kBAAkB,GACpG,YAAA,QAACS,GAAA,CAAA,CAAY,CAAA,CACf,CAAA,CAAA,CACF,GACEtB,GAAcM,GAAcO,OAC5B,QAAC,MAAA,CAAI,UAAU,+CACZ,SAAAF,EAAQ,IAAKrB,MACZ,QAAC,IAAA,CAAkB,KAAM,IAAIA,EAAK,MAAM,GAAI,WAAUA,EAAK,OAAQ,QAASK,EAAY,UAAWuB,EAAU5B,EAAK,MAAM,EACtH,YAAA,QAAC,OAAA,CAAK,IAAI,MAAM,UAAU,6BAA8B,SAAAA,EAAK,IAAA,CAAK,CAAA,EAD5DA,EAAK,IAEb,CACD,CAAA,CACH,CAAA,CAAA,CAEJ,EAGDgB,GAAcE,EAAK,SAAW,GAAKG,EAAQ,SAAW,MACrD,QAAC,IAAA,CAAE,UAAU,0CAA2C,SAAAR,EAAE,mBAAmB,CAAA,CAAE,CAAA,CAAA,CAEnF,CAAA,CAAA,CACF,CAEJ,CC5DQ,IAAAqB,EAAA,UA/GRC,GAA4C,UAa5C,IAAMC,GAAe,IAAI,IAAI,CAAC,MAAO,OAAQ,SAAS,CAAC,EAGjDC,GAAY,CAChB,CAAC,OAAQ,MAAM,EACf,CAAC,QAAS,OAAO,EACjB,CAAC,SAAU,QAAQ,EACnB,CAAC,SAAU,QAAQ,CACrB,EAEA,SAASC,GAAWC,EAAM,CACxB,GAAI,CACF,MAAO,CAAE,KAAM,KAAK,UAAU,KAAK,MAAMA,CAAI,EAAG,KAAM,CAAC,EAAG,SAAU,MAAO,CAC7E,MAAQ,CACN,MAAO,CAAE,KAAMA,EAAM,SAAU,MAAO,CACxC,CACF,CAGe,SAARC,GAAuB,CAAE,UAAAC,EAAW,QAAAC,CAAQ,EAAG,CACpD,IAAMC,EAAOC,GAAQ,EACf,CAAE,OAAAC,EAAQ,QAAAC,EAAS,SAAAC,EAAU,QAAAC,CAAQ,EAAIC,GAAY,EACrDC,EAAe,EAAQH,EACvBI,KAAS,WAAO,IAAI,EACpBC,EAAIC,EAAK,EACT,CAACC,EAAQC,CAAS,KAAI,aAAS,IAAMC,GAAcb,EAAMF,CAAS,CAAC,EACnE,CAAC,CAAE,YAAAgB,EAAa,KAAAC,EAAM,KAAAC,EAAO,CAAC,CAAE,EAAGC,CAAO,KAAI,aAAS,IAAMC,GAAYlB,EAAMF,CAAS,CAAC,EAEzF,CAACqB,EAAQC,CAAS,KAAI,aAAS,CAAC,CAAC,EACjCC,EAAYC,GAAYR,CAAW,EACnC,CAACS,EAAOC,CAAQ,KAAI,aAAS,CAAE,OAAQ,MAAO,CAAC,EAC/C,CAACC,EAAaC,CAAc,KAAI,aAAS,IAAMrB,EAAQ,IAAI,qBAAsB,KAAM,SAAS,IAAM,GAAG,EAGzG,CAACsB,EAAeC,CAAO,KAAI,aAAS,IAAOvB,EAAQ,IAAI,cAAc,IAAM,SAAW,SAAW,OAAQ,EACzGwB,EAAOtB,EAAeoB,EAAgB,SAE5C,SAASG,EAAWC,EAAM,CACxBH,EAAQG,CAAI,EACZ1B,EAAQ,IAAI,eAAgB0B,CAAI,CAClC,IAKA,cAAU,IAAM,CACd,IAAMC,EAAOxB,EAAO,QAChBwB,GAAQ,CAACA,EAAK,MAAMA,EAAK,UAAU,CACzC,EAAG,CAAC,CAAC,EAEL,IAAMC,GAAOjB,EACV,IAAI,CAACkB,EAAOC,MAAW,CAAE,MAAAD,EAAO,KAAMf,EAAOgB,EAAK,CAAE,EAAE,EACtD,OAAO,CAAC,CAAE,MAAAD,EAAO,KAAAE,EAAK,IAAM,CAACF,EAAM,MAAQE,EAAI,EAC/C,IAAI,CAAC,CAAE,MAAAF,EAAO,KAAAE,EAAK,KAAO,CAAE,MAAOA,GAAO,CAAE,KAAMF,EAAM,KAAM,KAAM,CAAE,KAAME,GAAK,KAAM,KAAMA,GAAK,MAAQ,MAAU,CAAE,EAAIF,EAAO,KAAAE,EAAK,EAAE,EACrIC,EAAUC,GAAaxC,EAAW,CAAE,OAAAI,EAAQ,GAAGqC,GAAS5B,EAAQR,EAAQL,CAAS,CAAC,EAAG,KAAAiB,EAAM,KAAMkB,GAAK,IAAKO,GAASA,EAAK,KAAK,EAAG,YAAA1B,CAAY,CAAC,EAC9I2B,GAAQR,GAAK,IAAKO,GAASA,EAAK,MAAQ,IAAI,EAElD,SAASE,GAAaP,EAAOQ,GAAO,CAClC1B,EAAS2B,KAAa,CAAE,GAAGA,GAAS,KAAMA,GAAQ,KAAK,IAAI,CAACV,GAAOW,KAAOA,KAAMV,EAAQ,CAAE,GAAGD,GAAO,MAAAS,EAAM,EAAIT,EAAM,CAAE,EAAE,CAC1H,CAEA,SAASY,GAASC,EAAUC,GAAML,GAAO,CACvC/B,EAAWgC,KAAa,CAAE,GAAGA,GAAS,CAACG,CAAQ,EAAG,CAAE,GAAGH,GAAQG,CAAQ,EAAG,CAACC,EAAI,EAAGL,EAAM,CAAE,EAAE,CAC9F,CAEA,SAASM,GAAKC,EAAO,CAEnB,GADAA,EAAM,eAAe,EACjB,CAACzD,GAAa,IAAI4C,EAAQ,MAAM,GAAKhC,EAAQ,IAAI,qBAAsB,KAAM,SAAS,IAAM,IAAK,CACnGmB,EAAS,CAAE,OAAQ,SAAU,CAAC,EAC9B,MACF,CACA2B,GAAQ,CACV,CAEA,SAASC,IAAc,CACjB3B,GAAapB,EAAQ,IAAI,qBAAsB,IAAK,SAAS,EACjE8C,GAAQ,CACV,CAEA,eAAeA,IAAU,CACvB3B,EAAS,CAAE,OAAQ,SAAU,CAAC,EAE9B,GAAI,CACF,IAAM6B,EAASxB,IAAS,QAAU,MAAMyB,GAAalD,EAAUiC,EAASI,EAAK,EAAI,MAAMc,GAAWlB,EAASI,EAAK,EAChHjB,EAAS,CAAE,GAAG6B,EAAQ,KAAMA,EAAO,OAAQ,OAAQ,MAAO,CAAC,CAC7D,OAASG,EAAO,CACdhC,EAAS,CAAE,OAAQ,QAAS,QAASgC,EAAM,OAAQ,CAAC,CACtD,CACF,CAEA,SACE,OAAC,SAAA,CACC,IAAKhD,EACL,QAAAT,EACA,QAAUmD,GAAUA,EAAM,SAAW1C,EAAO,SAAWT,EAAQ,EAC/D,UAAU,oLAEV,YAAA,QAAC,OAAA,CAAK,SAAUkD,GAAM,UAAU,uBAC9B,SAAA,IAAA,QAAC,SAAA,CAAO,UAAU,2DAChB,SAAA,IAAA,OAACQ,GAAA,CAAY,OAAQ3D,EAAU,MAAA,CAAQ,KACvC,OAAC,OAAA,CAAK,IAAI,MAAM,UAAU,uDAAuD,MAAOuC,EAAQ,IAC7F,SAAAA,EAAQ,GAAA,CACX,KACA,OAAC,SAAA,CACC,KAAK,SACL,SAAUd,EAAM,SAAW,UAC3B,UAAU,uHAET,SAAAA,EAAM,SAAW,UAAYd,EAAE,eAAe,EAAIA,EAAE,YAAY,CAAA,CACnE,KACA,OAAC,SAAA,CACC,KAAK,SACL,QAASV,EACT,aAAYU,EAAE,cAAc,EAC5B,UAAU,8EAEV,YAAA,OAACiD,GAAA,CAAU,UAAU,QAAA,CAAS,CAAA,CAChC,CAAA,CAAA,CACF,KAEA,QAAC,MAAA,CAAI,UAAU,qCACb,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,kEACb,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,oDACb,SAAA,IAAA,OAAC,IAAA,CAAE,UAAU,gCACV,SAAAjD,EAAE,oBAAoB,CAAA,CACzB,KACA,OAAC,MAAA,CAAI,UAAU,qDAAqD,KAAK,QAAQ,aAAYA,EAAE,kBAAkB,EAC9G,SAAA,CACC,CAAC,QAAS,OAAO,EACjB,CAAC,SAAUA,EAAE,mBAAmB,CAAC,CACnC,EAAE,IAAI,CAAC,CAACkD,EAAKC,EAAK,OAChB,OAAC,SAAA,CAEC,KAAK,SACL,QAAS,IAAM9B,EAAW6B,CAAG,EAC7B,SAAUA,IAAQ,SAAW,CAACpD,EAC9B,eAAcsB,IAAS8B,EACvB,MAEMlD,EADJkD,IAAQ,SACF,wBACFpD,EACI,uBACA,0BAHqB,EAK/B,UAAW,+FACTsB,IAAS8B,EAAM,gCAAkC,qDACnD,GAEC,SAAAC,EAAA,EAhBID,CAiBP,CACD,CAAA,CACH,CAAA,CAAA,CACF,EACCjE,GAAU,IAAI,CAAC,CAACqD,EAAUa,EAAK,IAAM,CACpC,IAAMC,GAAS/D,EAAU,WAAW,OAAQgE,IAAUA,GAAM,KAAOf,CAAQ,EAC3E,OAAIc,GAAO,SAAW,EAAU,QAE9B,QAAC,WAAA,CAAwB,UAAU,YACjC,SAAA,IAAA,OAAC,SAAA,CAAO,UAAU,6BAA8B,SAAAD,EAAA,CAAM,EACrDC,GAAO,IAAKC,OACX,QAAC,QAAA,CAAuB,UAAU,oEAChC,SAAA,IAAA,QAAC,OAAA,CAAK,UAAU,6BAA6B,MAAOA,GAAM,KACvD,SAAA,CAAAA,GAAM,KACNA,GAAM,aAAY,OAAC,OAAA,CAAK,UAAU,gBAAgB,SAAA,IAAA,CAAE,CAAA,CAAA,CACvD,EACCA,GAAM,QAAQ,QACb,QAAC,SAAA,CACC,MAAOnD,EAAOoC,CAAQ,IAAIe,GAAM,IAAI,GAAK,GACzC,SAAWZ,IAAUJ,GAASC,EAAUe,GAAM,KAAMZ,GAAM,OAAO,KAAK,EACtE,UAAU,kEAEV,SAAA,IAAA,OAAC,SAAA,CAAO,MAAM,GAAG,SAAA,QAAA,CAAC,EACjBY,GAAM,OAAO,KAAK,IAAKC,OACtB,OAAC,SAAA,CAA4B,MAAO,OAAOA,EAAM,EAC9C,SAAA,OAAOA,EAAM,CAAA,EADH,OAAOA,EAAM,CAE1B,CACD,CAAA,CAAA,CACH,KAEA,OAAC,QAAA,CACC,MAAOpD,EAAOoC,CAAQ,IAAIe,GAAM,IAAI,GAAK,GACzC,SAAUA,GAAM,SAChB,SAAWZ,IAAUJ,GAASC,EAAUe,GAAM,KAAMZ,GAAM,OAAO,KAAK,EACtE,IAAI,MACJ,UAAU,6GAAA,CACZ,CAAA,CAAA,EAzBQY,GAAM,IA2BlB,CACD,CAAA,CAAA,EA/BYf,CAgCf,CAEJ,CAAC,EAEAjC,GAAeO,MACd,QAAC,WAAA,CAAS,UAAU,YAClB,SAAA,IAAA,QAAC,SAAA,CAAO,UAAU,sEAAsE,SAAA,CAAA,WACjF,OAAC,OAAA,CAAK,UAAU,0DAA2D,SAAAP,CAAA,CAAY,CAAA,CAAA,CAC9F,EACCE,EAAK,IAAI,CAACkB,EAAOC,QAChB,QAAC,QAAA,CAAqC,UAAU,oEAC9C,SAAA,IAAA,QAAC,OAAA,CAAK,UAAU,6BAA6B,MAAOD,EAAM,KACvD,SAAA,CAAAA,EAAM,KACNA,EAAM,SAAQ,OAAC,OAAA,CAAK,UAAU,+DAA+D,SAAA,MAAA,CAAI,CAAA,CAAA,CACpG,EACCA,EAAM,QACL,OAAC,QAAA,CACC,KAAK,OACL,SAAWgB,IAAU9B,EAAWwB,KAAa,CAAE,GAAGA,GAAS,CAACT,EAAK,EAAGe,GAAM,OAAO,QAAQ,CAAC,CAAE,EAAE,EAC9F,UAAU,sHAAA,CACZ,KAEA,OAAC,QAAA,CACC,MAAOhB,EAAM,OAAS,GACtB,SAAWgB,IAAUR,GAAaP,GAAOe,GAAM,OAAO,KAAK,EAC3D,IAAI,MACJ,UAAU,6GAAA,CACZ,CAAA,CAAA,EAjBQ,GAAGhB,EAAM,IAAI,IAAIC,EAAK,EAmBlC,CACD,KACD,OAAC,IAAA,CAAE,UAAU,gCAAiC,SAAA1B,EAAE,gBAAgB,CAAA,CAAE,CAAA,CAAA,CACpE,EAGDK,GAAe,CAACO,MACf,QAAC,QAAA,CAAM,UAAU,kBACf,SAAA,IAAA,QAAC,OAAA,CAAK,UAAU,0DAA0D,SAAA,CAAA,WACnE,OAAC,OAAA,CAAK,UAAU,0DAA2D,SAAAP,CAAA,CAAY,CAAA,CAAA,CAC9F,KACA,OAACkD,GAAA,CAAW,MAAOjD,EAAM,SAAW4B,GAAU1B,EAAS2B,KAAa,CAAE,GAAGA,GAAS,KAAMD,CAAM,EAAE,CAAA,CAAG,CAAA,CAAA,CACrG,CAAA,CAAA,CAEJ,KAEA,QAAC,MAAA,CAAI,UAAU,wCACZ,SAAA,CAAApB,EAAM,SAAW,cAChB,QAAC,MAAA,CAAI,KAAK,cAAc,kBAAgB,sBAAsB,UAAU,8EACtE,SAAA,IAAA,OAAC,IAAA,CAAE,GAAG,sBAAsB,UAAU,mDACnC,SAAAd,EAAE,qBAAqB,CAAA,CAC1B,KACA,OAAC,IAAA,CAAE,UAAU,2CACV,SAAAA,EAAE,qBAAsB,CACvB,OAAQ4B,EAAQ,OAChB,MAAO,IAAM,CACX,GAAI,CACF,OAAO,IAAI,IAAIA,EAAQ,GAAG,EAAE,IAC9B,MAAQ,CACN,OAAOA,EAAQ,GACjB,CACF,GAAG,CACL,CAAC,CAAA,CACH,KACA,QAAC,QAAA,CAAM,UAAU,2EACf,SAAA,IAAA,OAAC,QAAA,CAAM,KAAK,WAAW,QAASZ,EAAa,SAAWyB,GAAUxB,EAAewB,EAAM,OAAO,OAAO,CAAA,CAAG,EACvGzC,EAAE,oBAAoB,CAAA,CAAA,CACzB,KACA,QAAC,MAAA,CAAI,UAAU,aACb,SAAA,IAAA,OAAC,SAAA,CACC,KAAK,SACL,QAAS2C,GACT,UAAS,GACT,UAAU,0FAET,SAAA3C,EAAE,oBAAoB,CAAA,CACzB,KACA,OAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMe,EAAS,CAAE,OAAQ,MAAO,CAAC,EAC1C,UAAU,iFAET,SAAAf,EAAE,sBAAsB,CAAA,CAC3B,CAAA,CAAA,CACF,CAAA,CAAA,CACF,EAEDc,EAAM,SAAW,WAChB,OAAC,IAAA,CAAE,UAAU,gCAAiC,SAAAd,EAAE,YAAY,CAAA,CAAE,EAE/Dc,EAAM,SAAW,cAAa,OAAC,IAAA,CAAE,UAAU,gCAAiC,SAAAd,EAAE,eAAe,CAAA,CAAE,EAC/Fc,EAAM,SAAW,YAChB,QAAC,MAAA,CAAI,UAAU,mGACZ,SAAA,CAAAd,EAAE,eAAgB,CAAE,QAASc,EAAM,OAAQ,CAAC,EAC5CM,IAAS,UAAY,WAAMpB,EAAE,gBAAgB,CAAC,EAAA,CAAA,CACjD,EAEDc,EAAM,SAAW,WAChB,QAAA,WAAA,CACE,SAAA,IAAA,QAAC,MAAA,CAAI,UAAU,4BACb,SAAA,IAAA,OAAC,OAAA,CAAK,UAAW,+BAA+B0C,GAAW,OAAO1C,EAAM,IAAI,CAAC,CAAC,GAAK,SAAAA,EAAM,IAAA,CAAK,KAC9F,OAAC,OAAA,CAAK,UAAU,gCAAiC,SAAAA,EAAM,UAAA,CAAW,KAClE,QAAC,OAAA,CAAK,IAAI,MAAM,UAAU,wCAAyC,SAAA,CAAAA,EAAM,SAAS,KAAA,CAAA,CAAG,CAAA,CAAA,CACvF,KACA,OAAC2C,GAAA,CAAU,UAAU,OAAQ,GAAGvE,GAAW4B,EAAM,IAAI,EAAG,WAAS,OAAC,OAAA,CAAK,UAAU,6BAA6B,SAAA,MAAA,CAAI,CAAA,CAAS,KAC3H,QAAC,UAAA,CAAQ,UAAU,UACjB,SAAA,IAAA,QAAC,UAAA,CAAQ,UAAU,+BAA+B,SAAA,CAAA,YAAUA,EAAM,QAAQ,OAAO,GAAA,CAAA,CAAC,KAClF,OAAC,KAAA,CAAG,UAAU,qEACX,SAAAA,EAAM,QAAQ,IAAI,CAAC,CAACoC,EAAKhB,EAAK,OAC7B,QAAC,MAAA,CAAc,UAAU,WACvB,SAAA,IAAA,OAAC,KAAA,CAAG,UAAU,wBAAyB,SAAAgB,CAAA,CAAI,KAC3C,OAAC,KAAA,CAAG,UAAU,YAAa,SAAAhB,EAAA,CAAM,CAAA,CAAA,EAFzBgB,CAGV,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAEJ,CxGnTO,IAAMQ,GAAqB,wBAKlC,SAASC,IAAiB,CACxB,IAAMC,EAASC,GAAU,EACnBC,EAAYC,GAAa,EACzBC,EAAUC,GAAoB,EAC9BC,EAAIC,EAAK,EAEf,SAGE,QAAC,QAAA,CACC,MAAOD,EAAE,iBAAiB,EAC1B,UAAU,kKAEV,SAAA,IAAA,QAAC,MAAA,CAAI,QAAQ,YAAY,cAAY,OAAO,UAAU,SAAS,KAAK,OAAO,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QACpJ,SAAA,IAAA,OAAC,SAAA,CAAO,GAAG,KAAK,GAAG,KAAK,EAAE,IAAA,CAAK,KAC/B,OAAC,OAAA,CAAK,EAAE,oGAAA,CAAqG,CAAA,CAAA,CAC/G,KACA,OAAC,OAAA,CAAK,UAAU,YAAa,SAAAN,CAAA,CAAO,KACpC,OAAC,SAAA,CACC,MAAOA,EACP,SAAWQ,GAAUN,EAAUM,EAAM,OAAO,KAAK,EACjD,aAAYF,EAAE,iBAAiB,EAC/B,UAAU,4CAET,SAAAF,EAAQ,IAAKK,MACZ,OAAC,SAAA,CAAkB,MAAOA,EACvB,SAAAC,GAAaD,CAAI,GAAKA,CAAA,EADZA,CAEb,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAEJ,CAEA,SAASE,GAAY,CAAE,MAAAC,EAAO,SAAAC,CAAS,EAAG,CACxC,IAAMP,EAAIC,EAAK,EAEf,SACE,QAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMM,EAASD,IAAU,OAAS,QAAU,MAAM,EAC3D,aAAYN,EAAE,cAAc,EAC5B,MAAOA,EAAE,cAAc,EACvB,UAAU,kFAEV,SAAA,IAAA,OAACQ,GAAA,CAAS,UAAU,oBAAA,CAAqB,KACzC,OAACC,GAAA,CAAQ,UAAU,0BAAA,CAA2B,CAAA,CAAA,CAChD,CAEJ,CAEA,SAASC,GAAW,CAAE,OAAAC,EAAQ,aAAAC,EAAc,MAAAC,EAAO,OAAAC,EAAQ,UAAAC,CAAU,EAAG,CACtE,GAAM,CAACC,EAAOC,CAAQ,KAAI,YAASN,EAAO,OAAS,MAAQA,EAAO,IAAM,EAAE,EACpEO,KAAY,UAAO,IAAI,EACvBC,KAAO,UAAO,IAAI,EAClBC,EAAQ,IAAMD,EAAK,SAAS,gBAAgB,MAAM,EAClDnB,EAAIC,EAAK,EAEf,SACE,QAAC,UAAA,CAAQ,IAAKkB,EAAM,UAAU,WAC5B,SAAA,IAAA,QAAC,UAAA,CACC,MAAOnB,EAAE,cAAc,EACvB,UAAU,sMAEV,SAAA,IAAA,QAAC,MAAA,CAAI,QAAQ,YAAY,cAAY,OAAO,UAAU,SAAS,KAAK,OAAO,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QACpJ,SAAA,IAAA,OAAC,OAAA,CAAK,EAAE,4DAAA,CAA6D,KACrE,OAAC,OAAA,CAAK,EAAE,wCAAA,CAAyC,CAAA,CAAA,CACnD,KACA,OAAC,OAAA,CAAK,UAAU,mBAAoB,SAAAA,EAAE,cAAc,CAAA,CAAE,CAAA,CAAA,CACxD,KACA,QAAC,MAAA,CAAI,UAAU,sGACb,SAAA,IAAA,QAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,CACbe,EAAU,EACVK,EAAM,CACR,EACA,UAAW,+DACTT,EAAO,OAAS,UAAY,8BAAgC,oCAC9D,GAEC,SAAA,CAAAX,EAAE,gBAAgB,EAClBY,MAAgB,OAAC,OAAA,CAAK,UAAU,6DAA8D,SAAAA,CAAA,CAAa,CAAA,CAAA,CAC9G,KACA,QAAC,OAAA,CACC,SAAWV,GAAU,CACnBA,EAAM,eAAe,EACjBc,EAAM,KAAK,IACbH,EAAMG,EAAM,KAAK,CAAC,EAClBI,EAAM,EAEV,EACA,UAAU,YAEV,SAAA,IAAA,OAAC,QAAA,CACC,KAAK,MACL,MAAOJ,EACP,SAAWd,GAAUe,EAASf,EAAM,OAAO,KAAK,EAChD,YAAY,8BACZ,IAAI,MACJ,UAAU,sHAAA,CACZ,KACA,OAAC,SAAA,CAAO,KAAK,SAAS,UAAU,qGAC7B,SAAAF,EAAE,gBAAgB,CAAA,CACrB,CAAA,CAAA,CACF,KACA,OAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMkB,EAAU,SAAS,MAAM,EACxC,UAAU,iHAET,SAAAP,EAAO,OAAS,OAASX,EAAE,cAAe,CAAE,KAAMW,EAAO,IAAK,CAAC,EAAIX,EAAE,mBAAmB,CAAA,CAC3F,KACA,OAAC,QAAA,CACC,IAAKkB,EACL,KAAK,OACL,OAAO,+DACP,UAAU,SACV,SAAWhB,GAAU,CACnB,IAAMmB,EAAOnB,EAAM,OAAO,QAAQ,CAAC,EACnCA,EAAM,OAAO,MAAQ,GACjBmB,IACFP,EAAOO,CAAI,EACXD,EAAM,EAEV,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAEJ,CAGA,eAAeE,GAASC,EAAK,CAC3B,IAAMC,EAAW,MAAM,MAAMD,CAAG,EAChC,GAAI,CAACC,EAAS,GAAI,MAAM,IAAI,MAAM,GAAGD,CAAG,gBAAWC,EAAS,MAAM,EAAE,EACpE,OAAOA,EAAS,KAAK,CACvB,CAEA,SAASC,IAAc,CACrB,GAAI,CACF,OAAO,OAAO,WAAW,8BAA8B,EAAE,QAAU,OAAS,OAC9E,MAAQ,CACN,MAAO,OACT,CACF,CAEA,IAAMC,GAAiB,GACjBC,GAAmB,EAEnBC,GAAmB,CACvB,WAAY,GACZ,iBAAkB,GAClB,YAAa,GACb,MAAO,GACP,OAAQ,EACV,EAEA,SAASC,GAAO,CACd,KAAMC,EACN,QAAAC,EACA,MAAAC,EACA,KAAAC,EACA,cAAAC,EACA,SAAAC,EACA,SAAUC,EACV,eAAAC,EACA,SAAAC,EACA,MAAOC,EACP,KAAAC,CACF,EAAG,CACD,IAAMC,EAAW,CAAE,GAAGb,GAAkB,GAAGQ,CAAiB,EACtDM,KAAU,WAAQ,IAAMC,GAAcT,CAAa,EAAG,CAACA,CAAa,CAAC,EACrEU,KAAU,UAAO,IAAI,EACrBlD,EAASC,GAAU,EACnB,CAACkD,EAAcC,CAAe,KAAI,YAAS,EAAK,KACtD,aAAU,IAAM,CAEdA,EAAgB,EAAQF,EAAQ,SAAS,eAAe,QAAQ,mBAAmB,CAAE,CACvF,EAAG,CAAC,CAAC,EAEL,GAAM,CAACjC,EAAQoC,CAAS,KAAI,YAAS,CAAE,KAAM,SAAU,CAAC,EAElDC,KAAmB,WAAQ,IAAOlB,EAAamB,GAAcnB,CAAU,EAAI,KAAO,CAACA,CAAU,CAAC,EAC9F,CAACoB,EAAMC,CAAO,KAAI,YAASH,CAAgB,EAC3C,CAACI,EAAOC,CAAQ,KAAI,YAAS,EAAE,EAE/B,CAACC,EAAeC,CAAgB,KAAI,YAAS,EAAK,EAClD,CAACC,EAAcC,EAAe,KAAI,YAAS,cAAc,EACzD,CAACC,EAAaC,EAAc,KAAI,YAAS,EAAK,EAC9C,CAACC,GAAcC,EAAe,KAAI,YAAS,IAAI,EAC/CC,MAAY,UAAO,IAAI,EACvB9D,GAAIC,EAAK,EACT8D,GAAYC,GAAa,EAEzB,CAACC,EAAaC,EAAc,KAAI,YAAS,CAAC,EAC1C,CAACC,GAAcC,EAAe,KAAI,YAAS,EAAE,EAE7C,CAACC,GAAiBC,EAAkB,KAAI,YAAS,CAAC,CAAC,EACnD,CAACC,GAAOC,EAAQ,KAAI,YAAS,EAAE,EAE/B,CAACC,GAAaC,EAAc,KAAI,YAAS,CAAC,CAAC,EAC3C,CAACC,GAAUC,EAAW,KAAI,YAASvC,CAAc,EAGjD,CAAC/B,GAAOuE,EAAQ,KAAI,YAAStC,GAAa,IAAI,KAGpD,aAAU,IAAM,CAEdiC,GAAS9B,EAAQ,IAAI,QAAS,EAAE,CAAC,EACjC,GAAI,CACFgC,GAAe,KAAK,MAAMhC,EAAQ,IAAI,cAAe,IAAI,CAAC,GAAK,CAAC,CAAC,CACnE,MAAQ,CAER,CACAkC,GAAYlC,EAAQ,IAAI,WAAYL,CAAc,CAAC,EAC9CE,GAAWsC,GAASnC,EAAQ,IAAI,OAAO,GAAK,SAAS,gBAAgB,QAAQ,OAASjB,GAAY,CAAC,EACxG,IAAMF,EAAMe,EAAW,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAIA,CAAQ,EAAI,KACnFS,EAAUxB,EAAM,CAAE,KAAM,MAAO,IAAAA,CAAI,EAAI,CAAE,KAAM,SAAU,CAAC,CAE5D,EAAG,CAACmB,EAASL,EAAgBC,EAAUC,CAAS,CAAC,KAEjD,aAAU,IAAMG,EAAQ,IAAI,QAAS6B,EAAK,EAAG,CAAC7B,EAAS6B,EAAK,CAAC,KAC7D,aAAU,IAAM7B,EAAQ,IAAI,cAAe,OAAO,KAAK+B,EAAW,EAAE,OAAS,KAAK,UAAUA,EAAW,EAAI,IAAI,EAAG,CAAC/B,EAAS+B,EAAW,CAAC,KACxI,aAAU,IAAM/B,EAAQ,IAAI,WAAYiC,EAAQ,EAAG,CAACjC,EAASiC,EAAQ,CAAC,EAEtE,SAASG,GAAYC,EAAM,CACzBF,GAASE,CAAI,EACbrC,EAAQ,IAAI,QAASqC,CAAI,EAGrB,SAAS,gBAAgB,aAAa,YAAY,IAAG,SAAS,gBAAgB,QAAQ,MAAQA,EACpG,IAIA,aAAU,IAAM,CACd,GAAIpE,EAAO,OAAS,WAAaqC,EAAkB,CAEjDG,EAAQH,CAAgB,EACxBO,EAAiB,EAAK,EACtBF,EAAS,EAAE,EAEX,MACF,CACA,GAAI1C,EAAO,OAAS,WAAaA,EAAO,OAAS,MAAO,OACxD,IAAMY,EAAMZ,EAAO,OAAS,MAAQA,EAAO,IAAMoB,EACjD,GAAI,CAACR,EAAK,OACV,IAAIyD,GAAY,GAEhB,GAAI1C,EAAU,CACZ,IAAM2C,GAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM,EACrDtE,EAAO,OAAS,MAAOsE,GAAO,IAAI3C,EAAUf,CAAG,EAC9C0D,GAAO,OAAO3C,CAAQ,EAC3B,IAAM4C,GAASD,GAAO,SAAS,EAC/B,OAAO,QAAQ,aAAa,KAAM,GAAI,GAAG,OAAO,SAAS,QAAQ,GAAGC,GAAS,IAAIA,EAAM,GAAK,EAAE,GAAG,OAAO,SAAS,IAAI,EAAE,CACzH,CAEA,aAAM3D,CAAG,EACN,KAAK,MAAOC,IAAa,CACxB,GAAI,CAACA,GAAS,GAAI,MAAM,IAAI,MAAM,GAAGD,CAAG,gBAAWC,GAAS,MAAM,EAAE,EACpE,MAAO,CAAE,KAAM,MAAMA,GAAS,KAAK,EAAG,SAAUA,GAAS,QAAQ,IAAIhC,EAAkB,IAAM,UAAW,CAC1G,CAAC,EACA,KAAK,MAAO,CAAE,KAAA2F,GAAM,SAAAC,EAAS,IAAM,CAGlC,IAAMC,GAAO,MAAMC,GAASH,GAAM,CAAE,QAAS,IAAI,IAAI5D,EAAK,OAAO,SAAS,IAAI,EAAE,KAAM,KAAMD,EAAS,CAAC,EACjG0D,KACH7B,EAAQkC,EAAI,EACZ9B,EAAiB6B,EAAQ,EACzB/B,EAAS,EAAE,EAEf,CAAC,EACA,MAAOkC,IAAQ,CAACP,IAAa3B,EAASkC,GAAI,OAAO,CAAC,EAE9C,IAAM,CACXP,GAAY,EACd,CACF,EAAG,CAACrE,EAAQoB,EAASiB,EAAkBV,CAAQ,CAAC,EAEhD,eAAekD,GAASnE,EAAM,CAC5B,GAAI,CACF,IAAMgE,GAAOI,GAAa,MAAMpE,EAAK,KAAK,CAAC,EAC3C0B,EAAU,CAAE,KAAM,OAAQ,KAAM1B,EAAK,IAAK,CAAC,EAC3C8B,EAAQkC,EAAI,EACZ9B,EAAiB,EAAK,EACtBF,EAAS,EAAE,CACb,OAASkC,GAAK,CACZlC,EAAS,CAAE,IAAK,sBAAuB,OAAQ,CAAE,KAAMhC,EAAK,KAAM,MAAOkE,GAAI,OAAQ,CAAE,CAAC,CAC1F,CACF,CAEA,IAAMG,MAAQ,WAAQ,IAAOxC,EAAOyC,GAAWzC,CAAI,EAAI,KAAO,CAACA,CAAI,CAAC,EAE9D0C,GAAcpD,IAAS,IAASA,IAAS,SAAWkD,IAAO,WAAW,QAAU,GAAKhE,GAErFmE,MAAe,WAAQ,IAAM,IAAI,IAAIH,IAAO,WAAW,MAAM,EAAG/D,EAAgB,EAAE,IAAKmE,GAAcA,EAAU,MAAM,CAAC,EAAG,CAACJ,EAAK,CAAC,KAGtI,aAAU,IAAM,CAEdxB,GAAe,CAAC,CAClB,EAAG,CAACwB,EAAK,CAAC,EAEV,IAAMK,MAAU,WAAQ,IAAML,IAAO,iBAAmB,CAAC,EAAG,CAACA,EAAK,CAAC,EAE7DM,MAAW,WAAQ,IAAM,CAC7B,IAAMC,EAAUP,IAAO,SAAW,CAAC,EAC7BQ,GAAWjC,IAAgB,GAAK,CAAE,IAAKE,EAAa,EAAI8B,EAAQhC,CAAW,GAAKgC,EAAQ,CAAC,EACzFE,GAAiB9B,GAAgBJ,CAAW,GAAK,CAAC,EAElDmC,GAASF,GAAW,CAAE,IAAKG,GAAUH,GAAUC,EAAc,CAAE,EAAI,OACzE,MAAO,CACL,QAAAF,EACA,OAAAG,GACA,eAAgBF,GAChB,eAAAC,GACA,YAAa,CAACG,GAAMC,KAClBjC,GAAoBkC,KAAa,CAAE,GAAGA,GAAS,CAACvC,CAAW,EAAG,CAAE,GAAGuC,GAAQvC,CAAW,EAAG,CAACqC,EAAI,EAAGC,EAAM,CAAE,EAAE,EAC7G,YAAAtC,EACA,eAAAC,GACA,aAAAC,GACA,gBAAAC,GACA,MAAAG,GACA,SAAAC,GACA,YAAAC,GACA,cAAe,CAAC6B,GAAMG,KAAU/B,GAAgB8B,KAAa,CAAE,GAAGA,GAAS,CAACF,EAAI,EAAG,CAAE,GAAGE,GAAQF,EAAI,EAAG,GAAGG,EAAM,CAAE,EAAE,EACpH,gBAAiBV,GAGjB,QAAUD,IACR,OAAO,KAAKC,EAAO,EAAE,OACjBW,GAAcX,GAASY,GAAqBb,EAAS,EAAGrB,EAAW,EACnE,CAAE,QAASF,GAAQ,CAAE,cAAe,UAAUA,EAAK,EAAG,EAAI,CAAC,EAAG,MAAO,CAAC,EAAG,QAAS,CAAC,CAAE,EAC3F,SAAAI,GACA,YAAAC,GACA,SAAAzC,EACA,QAAAO,EACA,SAAAD,CACF,CAGF,EAAG,CAACiD,GAAOK,GAAS9B,EAAaE,GAAcE,GAAiBE,GAAOE,GAAaE,GAAUxC,EAAUO,EAASD,EAAS,KAAK,CAAC,KAGhI,aAAU,IAAM,CACd,GAAI,CAACiD,IAAS,CAAC9C,EAAQ,QAAS,OAChC,IAAMgE,EAAW,IAAI,qBAClBC,IAAY,CACX,IAAMC,GAAUD,GAAQ,OAAQE,IAAUA,GAAM,cAAc,EAC1DD,GAAQ,QAAQrD,GAAgBqD,GAAQA,GAAQ,OAAS,CAAC,EAAE,OAAO,EAAE,CAC3E,EACA,CAAE,WAAY,oBAAqB,CACrC,EACAlE,EAAQ,QAAQ,iBAAiB,eAAe,EAAE,QAASoE,IAASJ,EAAS,QAAQI,EAAI,CAAC,EAE1F,IAAMC,GAAS,mBAAmB,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,EAC3DA,IAAQC,GAAeD,EAAM,EAIjC,IAAME,GAAS,IAAMD,GAAe,mBAAmB,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EACrF,cAAO,iBAAiB,aAAcC,EAAM,EAErC,IAAM,CACXP,EAAS,WAAW,EACpB,OAAO,oBAAoB,aAAcO,EAAM,CACjD,CACF,EAAG,CAACzB,EAAK,CAAC,KAGV,aAAU,IAAM,CACd,SAAS0B,EAAMlH,GAAO,EACfA,GAAM,SAAWA,GAAM,UAAYA,GAAM,IAAI,YAAY,IAAM,MAClEA,GAAM,eAAe,EACrByD,GAAe,EAAI,EACnB,sBAAsB,IAAMG,GAAU,SAAS,MAAM,CAAC,EAE1D,CACA,cAAO,iBAAiB,UAAWsD,CAAK,EACjC,IAAM,OAAO,oBAAoB,UAAWA,CAAK,CAC1D,EAAG,CAAC,CAAC,EAEL,IAAMC,MAAe,eAAY,IAAM1D,GAAe,EAAK,EAAG,CAAC,CAAC,EAC1D2D,MAAU,eAAaxB,GAAcjC,GAAgBiC,CAAS,EAAG,CAAC,CAAC,EACnEyB,GAAUvF,IAAU0D,GAAQ3B,GAAU2B,GAAM,KAAM,OAAO,EAAI,IAEnE,SACE,OAAC8B,GAAY,SAAZ,CAAqB,MAAOtE,EAC3B,YAAA,OAACuE,GAAa,SAAb,CAAsB,MAAO/B,GAC9B,YAAA,OAACgC,GAAgB,SAAhB,CAAyB,MAAO1B,GAI/B,YAAA,OAAC,MAAA,CAAI,IAAKpD,EAAS,UAAU,UAAU,aAAYtC,IAAS,OAAW,IAAKqH,GAAYjI,CAAM,EAAG,KAAMA,EACvG,YAAA,QAAC,MAAA,CAAI,UAAU,0CACb,SAAA,IAAA,QAAC,SAAA,CAAO,UAAU,4GAChB,SAAA,IAAA,OAAC,IAAA,CACC,KAAK,mBACL,UAAU,gJAET,SAAAM,GAAE,aAAa,CAAA,CAClB,KACA,OAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM2D,GAAe,CAACD,CAAW,EAC1C,aAAY1D,GAAE,aAAa,EAC3B,UAAU,gDAEV,YAAA,OAAC4H,GAAA,CAAS,UAAU,QAAA,CAAS,CAAA,CAC/B,KACA,OAAC,IAAA,CAAE,KAAK,gBAAgB,UAAU,kCAC/B,SAAA3F,MAAQ,OAAC,OAAA,CAAK,UAAU,iCAAkC,SAAAsF,EAAA,CAAQ,CAAA,CACrE,EACC7B,IAASzD,MACR,QAAC,OAAA,CAAK,UAAU,0DACb,SAAA,CAAAsF,GAAQ,OAAC,QAAC,OAAA,CAAK,UAAU,oBAAoB,SAAA,CAAA,IAAE7B,GAAM,KAAK,OAAA,CAAA,CAAQ,CAAA,CAAA,CACrE,KAEF,QAAC,MAAA,CAAI,UAAU,kCACZ,SAAA,CAAAjD,EAAS,YAAc9B,EAAO,OAAS,cACtC,OAACD,GAAA,CAEC,OAAAC,EACA,aAAcoB,EACd,UAAW,IAAMgB,EAAU,CAAE,KAAM,SAAU,CAAC,EAC9C,MAAQxB,GAAQwB,EAAU,CAAE,KAAM,MAAO,IAAAxB,CAAI,CAAC,EAC9C,OAAQiE,EAAA,EALH,GAAG7E,EAAO,IAAI,IAAIA,EAAO,KAAOA,EAAO,MAAQ,EAAE,EAMxD,EAED8B,EAAS,qBAAoB,OAAChD,GAAA,CAAA,CAAe,EAC7CgD,EAAS,gBAAe,OAACpC,GAAA,CAAY,MAAAC,GAAc,SAAUwE,EAAA,CAAa,CAAA,CAAA,CAC7E,CAAA,CAAA,CACF,EAEC1B,MACC,OAAC,MAAA,CAAI,UAAU,gGACZ,SAAApD,GAAE,kBAAmB,CAAE,MAAO,OAAOoD,GAAU,SAAWpD,GAAEoD,CAAK,EAAIpD,GAAEoD,EAAM,IAAKA,EAAM,MAAM,CAAE,CAAC,CAAA,CACpG,EAGDE,GAAiB3C,EAAO,OAAS,cAChC,OAAC,MAAA,CAAI,UAAU,oGACZ,SAAAX,GAAE,eAAe,CAAA,CACpB,EAGA0F,MAGA,QAAC,MAAA,CAAI,UAAU,OACb,SAAA,IAAA,OAAC,QAAA,CACC,UAAW,oLACThC,EAAc,gBAAkB,wCAClC,GAEA,YAAA,OAACmE,GAAA,CAAQ,MAAAnC,GAAc,aAAAlC,EAA4B,UAAAM,GAAsB,WAAYuD,GAAc,WAAY5E,EAAS,MAAA,CAAQ,CAAA,CAClI,EACCiB,MACC,OAAC,MAAA,CAAI,UAAU,kDAAkD,QAAS2D,GAAc,cAAY,MAAA,CAAO,KAG7G,OAACS,GAAY,SAAZ,CAAqB,MAAOlC,GAE7B,YAAA,OAAC,MAAA,CAAI,GAAG,kBAAkB,SAAU,GAAI,KAAM/C,EAAe,SAAW,OAAQ,aAAYA,EAAe0E,GAAU,OAAW,UAAU,oDACxI,YAAA,QAAC,MAAA,CAAI,UAAU,wBACb,SAAA,IAAA,OAACQ,GAAA,CAAM,KAAA7E,EAAY,MAAAwC,EAAA,CAAc,EAChCA,GAAM,KAAK,IAAKsC,MACf,QAAC,UAAA,CAAuB,GAAIA,EAAI,OAAQ,cAAW,GAAC,UAAU,QAC5D,SAAA,IAAA,OAAC,KAAA,CAAG,UAAU,6DAA8D,SAAAjE,GAAUiE,EAAK,MAAM,CAAA,CAAE,KACnG,OAACC,GAAA,CAAS,OAAQlE,GAAUiE,EAAK,aAAa,EAAG,UAAU,sCAAA,CAAuC,EACjGA,EAAI,WAAW,IAAKlC,OACnB,OAACoC,GAAA,CAEC,UAAApC,GACA,MAAOrD,EAAS,MAAQ6E,GAAU,KAClC,MAAOzB,GAAa,IAAIC,GAAU,MAAM,CAAA,EAHnCA,GAAU,MAIjB,CACD,CAAA,CAAA,EAVWkC,EAAI,IAWlB,CACD,EACAtC,GAAM,SAAS,OAAS,MACvB,QAAC,UAAA,CAAQ,GAAG,WAAW,cAAW,GAAC,UAAU,QAC3C,SAAA,IAAA,OAAC,KAAA,CAAG,UAAU,oCAAqC,SAAA1F,GAAE,gBAAgB,CAAA,CAAE,KACvE,OAAC,IAAA,CAAE,UAAU,+CAAgD,SAAAA,GAAE,eAAe,CAAA,CAAE,EAC/E0F,GAAM,SAAS,IAAKI,MACnB,OAACoC,GAAA,CAAiC,UAAApC,EAAsB,MAAO,IAAA,EAA/CA,EAAU,MAA2C,CACtE,CAAA,CAAA,CACH,EAEDrD,EAAS,WAAU,OAAC0F,GAAA,CAAO,QAASzC,GAAM,OAAA,CAAS,CAAA,CAAA,CACtD,CAAA,CACF,CAAA,CACA,CAAA,CAAA,CACF,EA9CA,CAACtC,MAAS,OAAC,IAAA,CAAE,UAAU,iDAAkD,SAAApD,GAAE,cAAc,CAAA,CAAE,EAiD5F4D,OAAgB,OAACwE,GAAA,CAAgC,UAAWxE,GAAc,QAAS,IAAMC,GAAgB,IAAI,CAAA,EAAjFD,GAAa,MAAuE,CAAA,CAAA,CACnH,CAAA,CACA,CAAA,CACF,CAAA,CACA,CAAA,CACF,CAEJ,CAOO,SAASyE,GAAa,CAC3B,KAAAnF,EACA,QAAAnB,EACA,MAAAC,EACA,KAAAC,EACA,OAAAvC,EACA,cAAA4I,EAAgB,KAChB,eAAAC,EACA,SAAAC,EACA,cAAAtG,EAAgB,UAChB,SAAAC,EAAW,KACX,SAAAM,EACA,eAAAJ,EAAiB,aACjB,SAAAC,EAAW,MACX,MAAAhC,EACA,KAAAkC,EAAO,MACT,EAAG,CACD,IAAMiG,KAAS,WAAQ,IAAMC,GAAcF,CAAQ,EAAG,CAACA,CAAQ,CAAC,EAEhE,SACE,OAACG,GAAA,CAAe,OAAAjJ,EAAgB,cAAA4I,EAA8B,eAAAC,EAAgC,SAAUE,EACtG,YAAA,OAAC5G,GAAA,CACC,KAAAqB,EACA,QAAAnB,EACA,MAAAC,EACA,KAAAC,EACA,cAAAC,EACA,SAAAC,EACA,SAAAM,EACA,eAAAJ,EACA,SAAAC,EACA,MAAAhC,EACA,KAAAkC,CAAA,CACF,CAAA,CACF,CAEJ,CyGvjBI,IAAAoG,GAAA,UAFG,SAASC,GAAK,CAAE,MAAAC,EAAO,KAAAC,EAAM,IAAAC,EAAM,GAAI,MAAAC,CAAM,EAAG,CACrD,SACE,SAAA,YAAA,CACE,SAAA,IAAA,QAAC,MAAA,CAAI,IAAKH,EAAO,IAAAE,EAAU,UAAW,uBAAuBD,EAAO,cAAgB,EAAE,EAAA,CAAI,EACzFA,MAAQ,QAAC,MAAA,CAAI,IAAKA,EAAM,IAAAC,EAAU,UAAU,uCAAA,CAAwC,EACpFC,MAAS,QAAC,OAAA,CAAK,UAAU,6DAA8D,SAAAA,CAAA,CAAM,CAAA,CAAA,CAChG,CAEJ,CCXA,IAAAC,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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",
6
+ "names": ["require_react_jsx_runtime_production", "__commonJSMin", "exports", "REACT_ELEMENT_TYPE", "REACT_FRAGMENT_TYPE", "jsxProd", "type", "config", "maybeKey", "key", "propName", "require_jsx_runtime", "__commonJSMin", "exports", "module", "require_react_production", "__commonJSMin", "exports", "REACT_ELEMENT_TYPE", "REACT_PORTAL_TYPE", "REACT_FRAGMENT_TYPE", "REACT_STRICT_MODE_TYPE", "REACT_PROFILER_TYPE", "REACT_CONSUMER_TYPE", "REACT_CONTEXT_TYPE", "REACT_FORWARD_REF_TYPE", "REACT_SUSPENSE_TYPE", "REACT_MEMO_TYPE", "REACT_LAZY_TYPE", "REACT_ACTIVITY_TYPE", "MAYBE_ITERATOR_SYMBOL", "getIteratorFn", "maybeIterable", "ReactNoopUpdateQueue", "assign", "emptyObject", "Component", "props", "context", "updater", "partialState", "callback", "ComponentDummy", "PureComponent", "pureComponentPrototype", "isArrayImpl", "noop", "ReactSharedInternals", "hasOwnProperty", "ReactElement", "type", "key", "refProp", "cloneAndReplaceKey", "oldElement", "newKey", "isValidElement", "object", "escape", "escaperLookup", "match", "userProvidedKeyEscapeRegex", "getElementKey", "element", "index", "resolveThenable", "thenable", "fulfilledValue", "error", "mapIntoArray", "children", "array", "escapedPrefix", "nameSoFar", "invokeCallback", "c", "nextNamePrefix", "i", "mapChildren", "func", "result", "count", "child", "lazyInitializer", "payload", "ctor", "moduleObject", "reportGlobalError", "event", "Children", "forEachFunc", "forEachContext", "n", "size", "fn", "config", "propName", "childArray", "defaultValue", "childrenLength", "render", "compare", "scope", "prevTransition", "currentTransition", "returnValue", "onStartTransitionFinish", "usable", "action", "initialState", "permalink", "deps", "Context", "value", "initialValue", "create", "ref", "passthrough", "reducer", "initialArg", "init", "subscribe", "getSnapshot", "getServerSnapshot", "require_react", "__commonJSMin", "exports", "module", "require_scheduler_production", "__commonJSMin", "exports", "push", "heap", "node", "index", "a", "parentIndex", "parent", "compare", "peek", "pop", "first", "last", "length", "halfLength", "leftIndex", "left", "rightIndex", "right", "b", "diff", "localPerformance", "localDate", "initialTime", "taskQueue", "timerQueue", "taskIdCounter", "currentTask", "currentPriorityLevel", "isPerformingWork", "isHostCallbackScheduled", "isHostTimeoutScheduled", "needsPaint", "localSetTimeout", "localClearTimeout", "localSetImmediate", "advanceTimers", "currentTime", "timer", "handleTimeout", "isMessageLoopRunning", "schedulePerformWorkUntilDeadline", "firstTimer", "requestHostTimeout", "taskTimeoutID", "frameInterval", "startTime", "shouldYieldToHost", "performWorkUntilDeadline", "hasMoreWork", "previousPriorityLevel", "callback", "continuationCallback", "channel", "port", "ms", "task", "fps", "eventHandler", "priorityLevel", "options", "timeout", "parentPriorityLevel", "require_scheduler", "__commonJSMin", "exports", "module", "require_react_dom_production", "__commonJSMin", "exports", "React", "formatProdErrorMessage", "code", "url", "i", "noop", "Internals", "REACT_PORTAL_TYPE", "createPortal$1", "children", "containerInfo", "implementation", "key", "ReactSharedInternals", "getCrossOriginStringAs", "as", "input", "container", "fn", "previousTransition", "previousUpdatePriority", "href", "options", "crossOrigin", "integrity", "fetchPriority", "form", "a", "action", "initialState", "permalink", "require_react_dom", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_react_dom_client_production", "__commonJSMin", "exports", "Scheduler", "React", "ReactDOM", "formatProdErrorMessage", "code", "url", "i", "isValidContainer", "node", "getNearestMountedFiber", "fiber", "nearestMounted", "getSuspenseInstanceFromFiber", "suspenseState", "getActivityInstanceFromFiber", "activityState", "assertIsMounted", "findCurrentFiberUsingSlowPath", "alternate", "a", "b", "parentA", "parentB", "didFindChild", "child$0", "findCurrentHostFiberImpl", "tag", "assign", "REACT_LEGACY_ELEMENT_TYPE", "REACT_ELEMENT_TYPE", "REACT_PORTAL_TYPE", "REACT_FRAGMENT_TYPE", "REACT_STRICT_MODE_TYPE", "REACT_PROFILER_TYPE", "REACT_CONSUMER_TYPE", "REACT_CONTEXT_TYPE", "REACT_FORWARD_REF_TYPE", "REACT_SUSPENSE_TYPE", "REACT_SUSPENSE_LIST_TYPE", "REACT_MEMO_TYPE", "REACT_LAZY_TYPE", "REACT_ACTIVITY_TYPE", "REACT_MEMO_CACHE_SENTINEL", "MAYBE_ITERATOR_SYMBOL", "getIteratorFn", "maybeIterable", "REACT_CLIENT_REFERENCE", "getComponentNameFromType", "type", "innerType", "isArrayImpl", "ReactSharedInternals", "ReactDOMSharedInternals", "sharedNotPendingObject", "valueStack", "index", "createCursor", "defaultValue", "pop", "cursor", "push", "value", "contextStackCursor", "contextFiberStackCursor", "rootInstanceStackCursor", "hostTransitionProviderCursor", "pushHostContainer", "nextRootInstance", "getOwnHostContext", "getChildHostContextProd", "popHostContainer", "pushHostContext", "context", "JSCompiler_inline_result", "popHostContext", "HostTransitionContext", "prefix", "suffix", "describeBuiltInComponentFrame", "name", "x", "match", "reentry", "describeNativeComponentFrame", "fn", "construct", "previousPrepareStackTrace", "RunInRootFrame", "Fake", "control", "x$1", "x$2", "sample", "namePropDescriptor", "_RunInRootFrame$Deter", "sampleStack", "controlStack", "sampleLines", "controlLines", "frame", "describeFiber", "childFiber", "getStackByFiberInDevAndProd", "workInProgress", "info", "previous", "hasOwnProperty", "scheduleCallback$3", "cancelCallback$1", "shouldYield", "requestPaint", "now", "getCurrentPriorityLevel", "ImmediatePriority", "UserBlockingPriority", "NormalPriority$1", "LowPriority", "IdlePriority", "log$1", "unstable_setDisableYieldValue", "rendererID", "injectedHook", "setIsStrictModeForDevtools", "newIsStrictMode", "clz32", "clz32Fallback", "log", "LN2", "nextTransitionUpdateLane", "nextTransitionDeferredLane", "nextRetryLane", "getHighestPriorityLanes", "lanes", "pendingSyncLanes", "getNextLanes", "root", "wipLanes", "rootHasPendingCommit", "pendingLanes", "nextLanes", "suspendedLanes", "pingedLanes", "nonIdlePendingLanes", "checkIfRootIsPrerendering", "renderLanes", "computeExpirationTime", "lane", "currentTime", "claimNextRetryLane", "createLaneMap", "initial", "laneMap", "markRootUpdated$1", "updateLane", "markRootFinished", "finishedLanes", "remainingLanes", "spawnedLane", "updatedLanes", "suspendedRetryLanes", "previouslyPendingLanes", "entanglements", "expirationTimes", "hiddenUpdates", "index$7", "hiddenUpdatesForLane", "update", "markSpawnedDeferredLane", "entangledLanes", "spawnedLaneIndex", "markRootEntangled", "rootEntangledLanes", "index$8", "getBumpedLaneForHydration", "renderLane", "getBumpedLaneForHydrationByLane", "lanesToEventPriority", "resolveUpdatePriority", "updatePriority", "getEventPriority", "runWithPriority", "priority", "previousPriority", "randomKey", "internalInstanceKey", "internalPropsKey", "internalContainerInstanceKey", "internalEventHandlersKey", "internalEventHandlerListenersKey", "internalEventHandlesSetKey", "internalRootNodeResourcesKey", "internalHoistableMarker", "detachDeletedInstance", "getClosestInstanceFromNode", "targetNode", "targetInst", "parentNode", "getParentHydrationBoundary", "getInstanceFromNode", "getNodeFromInstance", "inst", "getResourcesFromRoot", "resources", "markNodeAsHoistable", "allNativeEvents", "registrationNameDependencies", "registerTwoPhaseEvent", "registrationName", "dependencies", "registerDirectEvent", "VALID_ATTRIBUTE_NAME_REGEX", "illegalAttributeNameCache", "validatedAttributeNameCache", "isAttributeNameSafe", "attributeName", "setValueForAttribute", "prefix$10", "setValueForKnownAttribute", "setValueForNamespacedAttribute", "namespace", "getToStringValue", "isCheckable", "elem", "trackValueOnNode", "valueField", "currentValue", "descriptor", "get", "set", "track", "updateValueIfChanged", "tracker", "lastValue", "getActiveElement", "doc", "escapeSelectorAttributeValueInsideDoubleQuotesRegex", "escapeSelectorAttributeValueInsideDoubleQuotes", "ch", "updateInput", "element", "lastDefaultValue", "checked", "defaultChecked", "setDefaultValue", "initInput", "isHydrating", "updateOptions", "multiple", "propValue", "setDefaultSelected", "updateTextarea", "initTextarea", "children", "setTextContent", "text", "firstChild", "unitlessNumbers", "setValueForStyle", "style", "styleName", "isCustomProperty", "setValueForStyles", "styles", "prevStyles", "styleName$16", "styleName$17", "isCustomElement", "tagName", "aliases", "isJavaScriptProtocol", "sanitizeURL", "noop$1", "currentReplayingEvent", "getEventTarget", "nativeEvent", "restoreTarget", "restoreQueue", "restoreStateOfTarget", "target", "internalInstance", "props", "otherNode", "otherProps", "isInsideEventHandler", "batchedUpdates$1", "flushSyncWork$1", "getListener", "stateNode", "canUseDOM", "passiveBrowserEventsSupported", "options", "startText", "fallbackText", "getData", "start", "startValue", "startLength", "end", "endValue", "endLength", "minEnd", "getEventCharCode", "keyCode", "functionThatReturnsTrue", "functionThatReturnsFalse", "createSyntheticEvent", "Interface", "SyntheticBaseEvent", "reactName", "reactEventType", "nativeEventTarget", "propName", "event", "EventInterface", "SyntheticEvent", "UIEventInterface", "SyntheticUIEvent", "lastMovementX", "lastMovementY", "lastMouseEvent", "MouseEventInterface", "getEventModifierState", "SyntheticMouseEvent", "DragEventInterface", "SyntheticDragEvent", "FocusEventInterface", "SyntheticFocusEvent", "AnimationEventInterface", "SyntheticAnimationEvent", "ClipboardEventInterface", "SyntheticClipboardEvent", "CompositionEventInterface", "SyntheticCompositionEvent", "normalizeKey", "translateToKey", "modifierKeyToProp", "modifierStateGetter", "keyArg", "KeyboardEventInterface", "key", "SyntheticKeyboardEvent", "PointerEventInterface", "SyntheticPointerEvent", "TouchEventInterface", "SyntheticTouchEvent", "TransitionEventInterface", "SyntheticTransitionEvent", "WheelEventInterface", "SyntheticWheelEvent", "ToggleEventInterface", "SyntheticToggleEvent", "END_KEYCODES", "canUseCompositionEvent", "documentMode", "canUseTextInputEvent", "useFallbackCompositionData", "SPACEBAR_CHAR", "hasSpaceKeypress", "isFallbackCompositionEnd", "domEventName", "getDataFromCustomEvent", "isComposing", "getNativeBeforeInputChars", "getFallbackBeforeInputChars", "supportedInputTypes", "isTextInputElement", "nodeName", "createAndAccumulateChangeEvent", "dispatchQueue", "accumulateTwoPhaseListeners", "activeElement$1", "activeElementInst$1", "runEventInBatch", "processDispatchQueue", "getInstIfValueChanged", "getTargetInstForChangeEvent", "isInputEventSupported", "isSupported$jscomp$inline_427", "element$jscomp$inline_428", "JSCompiler_inline_result$jscomp$286", "stopWatchingForValueChange", "handlePropertyChange", "handleEventsForInputEventPolyfill", "getTargetInstForInputEventPolyfill", "getTargetInstForClickEvent", "getTargetInstForInputOrChangeEvent", "is", "y", "objectIs", "shallowEqual", "objA", "objB", "keysA", "keysB", "currentKey", "getLeafNode", "getNodeForCharacterOffset", "offset", "nodeEnd", "containsNode", "outerNode", "innerNode", "getActiveElementDeep", "containerInfo", "hasSelectionCapabilities", "skipSelectionChangeEvent", "activeElement", "activeElementInst", "lastSelection", "mouseDown", "constructSelectEvent", "makePrefixMap", "styleProp", "eventName", "prefixes", "vendorPrefixes", "prefixedEventNames", "getVendorPrefixedEventName", "prefixMap", "ANIMATION_END", "ANIMATION_ITERATION", "ANIMATION_START", "TRANSITION_RUN", "TRANSITION_START", "TRANSITION_CANCEL", "TRANSITION_END", "topLevelEventsToReactNames", "simpleEventPluginEvents", "registerSimpleEvent", "reportGlobalError", "error", "concurrentQueues", "concurrentQueuesIndex", "concurrentlyUpdatedLanes", "finishQueueingConcurrentUpdates", "endIndex", "queue", "pending", "markUpdateLaneFromFiberToRoot", "enqueueUpdate$1", "enqueueConcurrentHookUpdate", "getRootForUpdatedFiber", "enqueueConcurrentRenderForLane", "sourceFiber", "isHidden", "parent", "nestedUpdateCount", "rootWithNestedUpdates", "emptyContextObject", "FiberNode", "pendingProps", "mode", "createFiberImplClass", "shouldConstruct", "Component", "createWorkInProgress", "current", "resetWorkInProgress", "createFiberFromTypeAndProps", "owner", "fiberTag", "isHostHoistableType", "createFiberFromFragment", "elements", "createFiberFromText", "content", "createFiberFromDehydratedFragment", "dehydratedNode", "createFiberFromPortal", "portal", "CapturedStacks", "createCapturedValueAtFiber", "source", "existing", "forkStack", "forkStackIndex", "treeForkProvider", "treeForkCount", "idStack", "idStackIndex", "treeContextProvider", "treeContextId", "treeContextOverflow", "pushTreeFork", "totalChildren", "pushTreeId", "baseIdWithLeadingBit", "baseLength", "length", "numberOfOverflowBits", "pushMaterializedTreeId", "popTreeContext", "restoreSuspendedTreeContext", "suspendedContext", "hydrationParentFiber", "nextHydratableInstance", "hydrationErrors", "rootOrSingletonContext", "HydrationMismatchException", "throwOnHydrationMismatch", "queueHydrationError", "prepareToHydrateHostInstance", "instance", "listenToNonDelegatedEvent", "mediaEventTypes", "checkForUnmatchedText", "popToNextHostParent", "popHydrationState", "JSCompiler_temp", "shouldSetTextContent", "getNextHydratableInstanceAfterHydrationBoundary", "isSingletonScope", "previousHydratableOnEnteringScopedSingleton", "getNextHydratable", "resetHydrationState", "upgradeHydrationErrorsToRecoverable", "queuedErrors", "workInProgressRootRecoverableErrors", "valueCursor", "currentlyRenderingFiber$1", "lastContextDependency", "pushProvider", "providerFiber", "nextValue", "popProvider", "scheduleContextWorkOnParentPath", "propagationRoot", "propagateContextChanges", "contexts", "forcePropagateEntireTree", "list", "nextFiber", "dependency", "propagateParentContextChanges", "isInsidePropagationBailout", "currentParent", "checkIfContextChanged", "currentDependencies", "prepareToReadContext", "readContext", "readContextForConsumer", "readContextDuringReconciliation", "consumer", "AbortControllerLocal", "listeners", "signal", "listener", "scheduleCallback$2", "NormalPriority", "CacheContext", "createCache", "releaseCache", "cache", "currentEntangledListeners", "currentEntangledPendingCount", "currentEntangledLane", "currentEntangledActionThenable", "entangleAsyncAction", "transition", "thenable", "entangledListeners", "requestTransitionLane", "resolve", "pingEngtangledActionScope", "chainThenableValue", "result", "thenableWithOverride", "prevOnStartTransitionFinish", "returnValue", "globalMostRecentTransitionTime", "resumedCache", "peekCacheFromPool", "cacheResumedFromPreviousRender", "workInProgressRoot", "pushTransition", "offscreenWorkInProgress", "prevCachePool", "getSuspendedCache", "cacheFromPool", "SuspenseException", "SuspenseyCommitException", "SuspenseActionException", "noopSuspenseyCommitThenable", "isThenableResolved", "trackUsedThenable", "thenableState", "checkIfUseWrappedInAsyncCatch", "fulfilledValue", "fulfilledThenable", "rejectedThenable", "suspendedThenable", "resolveLazy", "lazyType", "init", "getSuspendedThenable", "rejectedReason", "thenableState$1", "thenableIndexCounter$1", "unwrapThenable", "coerceRef", "throwOnInvalidObjectTypeImpl", "returnFiber", "newChild", "createChildReconciler", "shouldTrackSideEffects", "deleteChild", "childToDelete", "deletions", "deleteRemainingChildren", "currentFirstChild", "mapRemainingChildren", "existingChildren", "useFiber", "placeChild", "newFiber", "lastPlacedIndex", "newIndex", "placeSingleChild", "updateTextNode", "textContent", "updateElement", "elementType", "updateFragment", "updatePortal", "fragment", "createChild", "updateSlot", "oldFiber", "updateFromMap", "newIdx", "reconcileChildrenArray", "newChildren", "resultingFirstChild", "previousNewFiber", "nextOldFiber", "child", "reconcileChildrenIterator", "step", "reconcileChildFibersImpl", "firstChildFiber", "reconcileChildFibers", "mountChildFibers", "hasForceUpdate", "initializeUpdateQueue", "cloneUpdateQueue", "createUpdate", "enqueueUpdate", "updateQueue", "executionContext", "entangleTransitions", "queueLanes", "enqueueCapturedUpdate", "capturedUpdate", "newFirst", "newLast", "clone", "didReadFromEntangledAsyncAction", "suspendIfUpdateReadFromEntangledAsyncAction", "entangledActionThenable", "processUpdateQueue", "workInProgress$jscomp$0", "instance$jscomp$0", "firstBaseUpdate", "lastBaseUpdate", "pendingQueue", "lastPendingUpdate", "firstPendingUpdate", "newState", "isHiddenUpdate", "workInProgressRootRenderLanes", "workInProgressRootSkippedLanes", "callCallback", "callback", "commitCallbacks", "callbacks", "currentTreeHiddenStackCursor", "prevEntangledRenderLanesCursor", "pushHiddenContext", "entangledRenderLanes", "reuseHiddenContextOnStack", "popHiddenContext", "suspenseHandlerStackCursor", "shellBoundary", "pushPrimaryTreeSuspenseHandler", "handler", "suspenseStackCursor", "pushDehydratedActivitySuspenseHandler", "pushOffscreenSuspenseHandler", "reuseSuspenseHandlerOnStack", "popSuspenseHandler", "findFirstSuspended", "row", "state", "isSuspenseInstancePending", "isSuspenseInstanceFallback", "currentlyRenderingFiber", "currentHook", "workInProgressHook", "didScheduleRenderPhaseUpdate", "didScheduleRenderPhaseUpdateDuringThisPass", "shouldDoubleInvokeUserFnsInHooksDEV", "localIdCounter", "thenableIndexCounter", "globalClientIdCounter", "throwInvalidHookError", "areHookInputsEqual", "nextDeps", "prevDeps", "renderWithHooks", "secondArg", "nextRenderLanes", "HooksDispatcherOnMount", "HooksDispatcherOnUpdate", "renderWithHooksAgain", "finishRenderingHooks", "ContextOnlyDispatcher", "didRenderTooFewHooks", "didReceiveUpdate", "numberOfReRenders", "HooksDispatcherOnRerender", "TransitionAwareHostComponent", "dispatcher", "maybeThenable", "useThenable", "checkDidRenderIdHook", "didRenderIdHook", "bailoutHooks", "resetHooksOnUnwind", "mountWorkInProgressHook", "hook", "updateWorkInProgressHook", "nextCurrentHook", "nextWorkInProgressHook", "createFunctionComponentUpdateQueue", "use", "usable", "useMemoCache", "size", "memoCache", "array", "basicStateReducer", "action", "updateReducer", "reducer", "updateReducerImpl", "baseQueue", "baseFirst", "newBaseQueueFirst", "newBaseQueueLast", "didReadFromEntangledAsyncAction$60", "revertLane", "rerenderReducer", "dispatch", "lastRenderPhaseUpdate", "updateSyncExternalStore", "subscribe", "getSnapshot", "getServerSnapshot", "isHydrating$jscomp$0", "snapshotChanged", "updateEffect", "subscribeToStore", "pushSimpleEffect", "updateStoreInstance", "pushStoreConsistencyCheck", "renderedSnapshot", "nextSnapshot", "checkIfSnapshotChanged", "forceStoreRerender", "latestGetSnapshot", "scheduleUpdateOnFiber", "mountStateImpl", "initialState", "initialStateInitializer", "updateOptimisticImpl", "passthrough", "dispatchActionState", "actionQueue", "setPendingState", "setState", "payload", "isRenderPhaseUpdate", "actionNode", "runActionStateAction", "prevState", "prevTransition", "currentTransition", "onStartTransitionFinish", "handleActionReturnValue", "onActionError", "error$66", "nextState", "onActionSuccess", "notifyActionListeners", "last", "actionStateReducer", "oldState", "mountActionState", "initialStateProp", "ssrFormState", "JSCompiler_inline_result$jscomp$0", "inRootOrSingleton", "dispatchSetState", "dispatchOptimisticSetState", "updateActionState", "stateHook", "updateActionStateImpl", "currentStateHook", "actionStateActionEffect", "rerenderActionState", "create", "deps", "updateRef", "mountEffectImpl", "fiberFlags", "hookFlags", "updateEffectImpl", "mountEffect", "useEffectEventImpl", "componentUpdateQueue", "events", "updateEvent", "ref", "updateInsertionEffect", "updateLayoutEffect", "imperativeHandleEffect", "refCleanup", "updateImperativeHandle", "mountDebugValue", "updateCallback", "updateMemo", "nextCreate", "mountDeferredValueImpl", "initialValue", "requestDeferredLane", "updateDeferredValueImpl", "prevValue", "startTransition", "pendingState", "finishedState", "thenableForFinishedState", "dispatchSetStateInternal", "requestUpdateLane", "noop", "startHostTransition", "formFiber", "formData", "ensureFormComponentIsStateful", "requestFormReset$1", "existingStateHook", "initialResetState", "useHostTransitionStatus", "updateId", "updateRefresh", "refreshCache", "provider", "root$69", "dispatchReducerAction", "enqueueRenderPhaseUpdate", "entangleTransitionUpdate", "currentState", "eagerState", "throwIfDuringRender", "initialArg", "identifierPrefix", "idWithLeadingBit", "booleanOrThenable", "applyDerivedStateFromProps", "ctor", "getDerivedStateFromProps", "nextProps", "classComponentUpdater", "checkShouldComponentUpdate", "oldProps", "newProps", "nextContext", "callComponentWillReceiveProps", "resolveClassComponentProps", "baseProps", "propName$73", "defaultOnUncaughtError", "defaultOnCaughtError", "defaultOnRecoverableError", "logUncaughtError", "errorInfo", "onUncaughtError", "e$74", "logCaughtError", "boundary", "onCaughtError", "e$75", "createRootErrorUpdate", "createClassErrorUpdate", "initializeClassErrorUpdate", "getDerivedStateFromError", "legacyErrorBoundariesThatAlreadyFailed", "stack", "throwException", "rootRenderLanes", "renderDidSuspendDelayIfPossible", "workInProgressRootExitStatus", "attachPingListener", "wrapperError", "workInProgressRootConcurrentErrors", "SelectiveHydrationException", "reconcileChildren", "nextChildren", "updateForwardRef", "propsWithoutRef", "bailoutOnAlreadyFinishedWork", "updateMemoComponent", "updateSimpleMemoComponent", "checkScheduledUpdateOrContext", "prevProps", "updateFunctionComponent", "updateOffscreenComponent", "deferHiddenOffscreenComponent", "bailoutOffscreenComponent", "nextBaseLanes", "remainingChildLanes", "mountActivityChildren", "mountWorkInProgressOffscreenFiber", "retryActivityComponentWithoutHydrating", "updateActivityComponent", "didSuspend", "canHydrateHydrationBoundary", "dehydrated", "markRef", "replayFunctionComponent", "updateClassComponent", "contextType", "unresolvedOldProps", "oldContext", "contextType$jscomp$0", "mountHostRootWithoutHydrating", "SUSPENDED_MARKER", "mountSuspenseOffscreenState", "getRemainingWorkInPrimaryTree", "primaryTreeDidDefer", "workInProgressDeferredLane", "updateSuspenseComponent", "showFallback", "nextPrimaryChildren", "mountSuspensePrimaryChildren", "retrySuspenseComponentWithoutHydrating", "digest", "primaryChildren", "offscreenProps", "scheduleSuspenseWorkOnFiber", "initSuspenseListRenderState", "isBackwards", "tail", "lastContentRow", "tailMode", "renderState", "updateSuspenseListComponent", "revealOrder", "suspenseContext", "shouldForceFallback", "attemptEarlyBailoutIfNoScheduledUpdate", "state$102", "didSuspendBefore", "beginWork", "$$typeof", "getResource", "getOwnerDocumentFromRootContainer", "setInitialProperties", "resolveSingletonInstance", "canHydrateInstance", "canHydrateTextInstance", "markUpdate", "preloadInstanceAndSuspendIfNeeded", "shouldRemainOnPreviousScreen", "preloadResourceAndSuspendIfNeeded", "resource", "preloadResource", "scheduleRetryEffect", "retryQueue", "workInProgressSuspendedRetryLanes", "cutOffTailIfNeeded", "hasRenderedATailFallback", "lastTailNode", "lastTailNode$106", "bubbleProperties", "completedWork", "didBailout", "newChildLanes", "subtreeFlags", "child$107", "completeWork", "nextResource", "ownerDocument", "listenToAllSupportedEvents", "workInProgressRootRenderTargetTime", "unwindWork", "unwindInterruptedWork", "interruptedWork", "commitHookEffectListMount", "flags", "finishedWork", "lastEffect", "firstEffect", "captureCommitPhaseError", "commitHookEffectListUnmount", "nearestMountedAncestor$jscomp$0", "destroy", "nearestMountedAncestor", "destroy_", "commitClassCallbacks", "safelyCallComponentWillUnmount", "safelyAttachRef", "instanceToUse", "safelyDetachRef", "error$140", "commitHostMount", "commitHostUpdate", "domElement", "updateProperties", "isHostParent", "getHostSibling", "insertOrAppendPlacementNodeIntoContainer", "before", "insertOrAppendPlacementNode", "commitHostSingletonAcquisition", "singleton", "attributes", "offscreenSubtreeIsHidden", "offscreenSubtreeWasHidden", "needsFormReset", "PossiblyWeakSet", "nextEffect", "commitBeforeMutationEffects", "eventsEnabled", "_enabled", "selection", "anchorOffset", "focusNode", "indexWithinAnchor", "indexWithinFocus", "next", "selectionInformation", "resolvedPrevProps", "clearContainerSparingly", "commitLayoutEffectOnFiber", "finishedRoot", "recursivelyTraverseLayoutEffects", "error$139", "commitActivityHydrationCallbacks", "commitSuspenseHydrationCallbacks", "retryDehydratedSuspenseBoundary", "registerSuspenseInstanceRetry", "prevOffscreenSubtreeWasHidden", "recursivelyTraverseReappearLayoutEffects", "detachFiberAfterEffects", "hostParent", "hostParentIsContainer", "recursivelyTraverseDeletionEffects", "commitDeletionEffectsOnFiber", "deletedFiber", "prevHostParent", "prevHostParentIsContainer", "releaseSingletonInstance", "clearHydrationBoundary", "retryIfBlockedOn", "getRetryCache", "retryCache", "attachSuspenseRetryListeners", "wakeables", "wakeable", "retry", "resolveRetryWakeable", "recursivelyTraverseMutationEffects", "root$jscomp$0", "parentFiber", "commitMutationEffectsOnFiber", "currentHoistableRoot", "commitReconciliationEffects", "hoistableRoot", "currentResource", "maybeNodes", "getHydratableHoistableCache", "mountHoistable", "acquireResource", "tagCaches", "getHoistableRoot", "recursivelyResetForms", "globalMostRecentFallbackTime", "wasHidden", "prevOffscreenSubtreeIsHidden", "recursivelyTraverseDisappearLayoutEffects", "display", "hideOrUnhideDehydratedBoundary", "hostParentFiber", "parent$141", "before$142", "parent$143", "before$144", "finishedRoot$jscomp$0", "includeWorkInProgressEffects", "hiddenCallbacks", "commitOffscreenPassiveMountEffects", "previousCache", "commitCachePassiveMountEffect", "recursivelyTraversePassiveMountEffects", "committedLanes", "committedTransitions", "commitPassiveMountOnFiber", "_finishedWork$memoize2", "id", "onPostCommit", "recursivelyTraverseAtomicPassiveEffects", "recursivelyTraverseReconnectPassiveEffects", "committedLanes$jscomp$0", "committedTransitions$jscomp$0", "suspenseyCommitFlag", "recursivelyAccumulateSuspenseyCommit", "suspendedState", "accumulateSuspenseyCommitOnFiber", "suspendResource", "previousHoistableRoot", "detachAlternateSiblings", "previousFiber", "recursivelyTraversePassiveUnmountEffects", "commitPassiveUnmountEffectsInsideOfDeletedTree_begin", "commitPassiveUnmountOnFiber", "recursivelyTraverseDisconnectPassiveEffects", "deletedSubtreeRoot", "sibling", "DefaultAsyncDispatcher", "resourceType", "cacheForType", "PossiblyWeakMap", "workInProgressSuspendedReason", "workInProgressThrownValue", "workInProgressRootDidSkipSuspendedSiblings", "workInProgressRootIsPrerendering", "workInProgressRootDidAttachPingListener", "workInProgressRootInterleavedUpdatedLanes", "workInProgressRootPingedLanes", "workInProgressRootDidIncludeRecursiveRenderUpdate", "workInProgressTransitions", "pendingEffectsStatus", "pendingEffectsRoot", "pendingFinishedWork", "pendingEffectsLanes", "pendingEffectsRemainingLanes", "pendingPassiveTransitions", "pendingRecoverableErrors", "prepareFreshStack", "markRootSuspended", "ensureRootIsScheduled", "performWorkOnRoot", "forceSync", "shouldTimeSlice", "exitStatus", "renderRootConcurrent", "renderRootSync", "renderWasConcurrent", "isRenderConsistentWithExternalStores", "wasRootDehydrated", "scheduleTimeout", "commitRootWhenReady", "recoverableErrors", "transitions", "didIncludeRenderPhaseUpdate", "didSkipSuspendedSiblings", "suspendedCommitReason", "completedRenderStartTime", "completedRenderEndTime", "timeoutOffset", "waitForCommitToBeReady", "commitRoot", "check", "didAttemptEntireTree", "index$6", "flushSyncWorkAcrossRoots_impl", "resetWorkInProgressStack", "timeoutHandle", "cancelTimeout", "allEntangledLanes", "index$4", "handleThrow", "thrownValue", "pushDispatcher", "prevDispatcher", "pushAsyncDispatcher", "prevAsyncDispatcher", "shouldYieldForPrerendering", "prevExecutionContext", "unitOfWork", "reason", "throwAndUnwindWorkLoop", "workLoopSync", "thrownValue$165", "performUnitOfWork", "replaySuspendedUnitOfWork", "hostFiber", "completeUnitOfWork", "workLoopConcurrentByScheduler", "thrownValue$167", "suspendedReason", "unwindUnitOfWork", "skipSiblings", "flushPendingEffects", "scheduleCallback$1", "flushPassiveEffects", "flushMutationEffects", "flushLayoutEffects", "flushSpawnedWork", "rootMutationHasEffect", "priorSelectionInformation", "curFocusedElem", "priorFocusedElem", "priorSelectionRange", "win", "start$jscomp$0", "end$jscomp$0", "startMarker", "endMarker", "range", "rootHasLayoutEffect", "releaseRootPooledCache", "onRecoverableError", "recoverableError", "renderPriority", "captureCommitPhaseErrorOnRoot", "rootFiber", "pingCache", "threadIDs", "pingSuspendedRoot", "retryTimedOutBoundary", "boundaryFiber", "retryLane", "priorityLevel", "firstScheduledRoot", "lastScheduledRoot", "didScheduleMicrotask", "mightHavePendingSyncWork", "isFlushingWork", "currentEventTransitionLane", "scheduleImmediateRootScheduleTask", "syncTransitionLanes", "onlyLegacy", "didPerformSomeWork", "root$170", "performSyncWorkOnRoot", "processRootScheduleInImmediateTask", "processRootScheduleInMicrotask", "shouldAttemptEagerTransition", "prev", "scheduleTaskForRootDuringMicrotask", "index$5", "expirationTime", "performWorkOnRootViaSchedulerTask", "didTimeout", "originalCallbackNode", "workInProgressRootRenderLanes$jscomp$0", "scheduleMicrotask", "actionScopeLane", "coerceFormActionProp", "actionProp", "createFormDataWithSubmitter", "form", "submitter", "temp", "extractEvents$1", "maybeTargetInst", "i$jscomp$inline_1577", "eventName$jscomp$inline_1578", "domEventName$jscomp$inline_1579", "capitalizedEvent$jscomp$inline_1580", "nonDelegatedEvents", "eventSystemFlags", "_dispatchQueue$i", "previousInstance", "i$jscomp$0", "_dispatchListeners$i", "currentTarget", "targetElement", "listenerSetKey", "addTrappedEventListener", "listenToNativeEvent", "isCapturePhaseListener", "listeningMarker", "rootContainerElement", "targetContainer", "listenerWrapper", "dispatchDiscreteEvent", "dispatchContinuousEvent", "dispatchEvent", "dispatchEventForPluginEventSystem", "targetInst$jscomp$0", "ancestorInst", "nodeTag", "container", "grandTag", "SyntheticEventCtor", "inCapturePhase", "accumulateTargetOnly", "reactEventName", "lastHostComponent", "_instance", "createDispatchListener", "getParent", "tempB", "accumulateEnterLeaveListenersForEvent", "getTargetInstFunc", "handleEventFunc", "fallbackData", "eventType", "targetFiber", "captureName", "_instance2", "common", "_instance3", "NORMALIZE_NEWLINES_REGEX", "NORMALIZE_NULL_AND_REPLACEMENT_REGEX", "normalizeMarkupForTextOrAttribute", "markup", "serverText", "clientText", "setProp", "setPropOnCustomElement", "hasSrc", "hasSrcSet", "propKey", "propValue$184", "lastProps", "lastProp", "propKey$201", "propKey$217", "propKey$222", "propKey$227", "propKey$232", "isLikelyStaticResource", "initiatorType", "estimateBandwidth", "count", "bits", "resourceEntries", "entry", "transferSize", "duration", "overlapEntry", "overlapStartTime", "overlapTransferSize", "overlapInitiatorType", "namespaceURI", "parentNamespace", "currentPopstateTransitionEvent", "localPromise", "handleErrorInNextTick", "parentInstance", "hydrationInstance", "depth", "nextNode", "node$jscomp$0", "nextNode$jscomp$0", "suspenseInstance", "anyProps", "nodeType", "data", "targetInstance", "rootContainerInstance", "preloadPropsMap", "preconnectsSet", "previousDispatcher", "flushSyncWork", "requestFormReset", "prefetchDNS", "preconnect", "preload", "preloadModule", "preinitScript", "preinitStyle", "preinitModuleScript", "previousWasRendering", "wasRendering", "formInst", "globalDocument", "preconnectAs", "rel", "href", "crossOrigin", "limitedEscapedHref", "as", "preloadSelector", "getStyleKey", "getScriptKey", "getStylesheetSelectorFromKey", "getScriptSelectorFromKey", "precedence", "adoptPreloadPropsForStylesheet", "link", "reject", "insertStylesheet", "src", "scripts", "adoptPreloadPropsForScript", "currentProps", "styles$243", "resource$244", "preloadStylesheet", "stylesheetPropsFromRawProps", "rawProps", "preloadProps", "styleProps", "instance$249", "linkInstance", "nodes", "prior", "stylesheetProps", "scriptProps", "keyAttribute", "caches", "nodeKey", "hostContext", "onUnsuspend", "estimatedBytesWithinLimit", "insertSuspendedStylesheets", "commit", "stylesheetTimer", "unsuspend", "imgTimer", "precedencesByRoot", "insertStylesheetIntoRoot", "precedences", "FiberRootNode", "hydrate", "onDefaultTransitionIndicator", "formState", "createFiberRoot", "initialChildren", "hydrationCallbacks", "isStrictMode", "getContextForSubtree", "parentComponent", "updateContainerImpl", "markRetryLaneImpl", "markRetryLaneIfNotHydrated", "attemptContinuousHydration", "attemptHydrationAtCurrentPriority", "blockedOn", "findInstanceBlockingEvent", "return_targetInst", "clearIfContinuousEvent", "queueIfContinuousEvent", "discreteReplayableEvents", "findInstanceBlockingTarget", "hasScheduledReplayAttempt", "queuedFocus", "queuedDrag", "queuedMouse", "queuedPointers", "queuedPointerCaptures", "queuedExplicitHydrationTargets", "accumulateOrCreateContinuousQueuedReplayableEvent", "existingQueuedEvent", "pointerId", "attemptExplicitHydrationTarget", "queuedTarget", "attemptReplayContinuousQueuedEvent", "queuedEvent", "targetContainers", "nextBlockedOn", "nativeEventClone", "attemptReplayContinuousQueuedEventInMap", "map", "replayUnblockedEvents", "scheduleCallbackIfUnblocked", "unblocked", "lastScheduledReplayQueue", "scheduleReplayQueueIfNeeded", "formReplayingQueue", "submitterOrAction", "unblock", "formProps", "defaultOnDefaultTransitionIndicator", "handleNavigate", "pendingResolve", "handleNavigateComplete", "isCancelled", "startFakeNavigation", "currentEntry", "ReactDOMRoot", "internalRoot", "ReactDOMHydrationRoot", "isomorphicReactPackageVersion$jscomp$inline_1840", "componentOrElement", "internals$jscomp$inline_2347", "hook$jscomp$inline_2348", "require_client", "__commonJSMin", "exports", "module", "checkDCE", "err", "standalone_exports", "__export", "hydrate", "init", "VERSION", "import_jsx_runtime", "import_react", "ALIAS", "DOC", "MAP", "PAIR", "SCALAR", "SEQ", "NODE_TYPE", "isAlias", "node", "isDocument", "isMap", "isPair", "isScalar", "isSeq", "isCollection", "isNode", "hasAnchor", "BREAK", "SKIP", "REMOVE", "visit", "node", "visitor", "visitor_", "initVisitor", "isDocument", "visit_", "key", "path", "ctrl", "callVisitor", "isNode", "isPair", "replaceNode", "isCollection", "ci", "ck", "cv", "visitAsync", "visitAsync_", "isMap", "isSeq", "isScalar", "isAlias", "parent", "pt", "escapeChars", "escapeTagName", "tn", "ch", "Directives", "_Directives", "yaml", "tags", "copy", "res", "line", "onError", "parts", "name", "handle", "prefix", "version", "isValid", "source", "verbatim", "suffix", "error", "tag", "doc", "lines", "tagEntries", "tagNames", "isNode", "visit", "_key", "node", "anchorIsValid", "anchor", "msg", "anchorNames", "root", "anchors", "visit", "_key", "node", "findNewAnchor", "prefix", "exclude", "i", "name", "createNodeAnchors", "doc", "aliasObjects", "sourceObjects", "prevAnchors", "source", "ref", "isScalar", "isCollection", "error", "applyReviver", "reviver", "obj", "key", "val", "i", "len", "v0", "v1", "k", "toJS", "value", "arg", "ctx", "v", "i", "hasAnchor", "data", "res", "NodeBase", "type", "NODE_TYPE", "copy", "doc", "mapAsMap", "maxAliasCount", "onAnchor", "reviver", "isDocument", "ctx", "res", "toJS", "count", "applyReviver", "Alias", "NodeBase", "source", "ALIAS", "doc", "ctx", "nodes", "visit", "_key", "node", "isAlias", "hasAnchor", "found", "anchors", "maxAliasCount", "data", "toJS", "msg", "getAliasCount", "_arg", "_onComment", "_onChompKeep", "src", "anchorIsValid", "anchor", "isCollection", "count", "item", "c", "isPair", "kc", "vc", "isScalarValue", "value", "Scalar", "NodeBase", "SCALAR", "arg", "ctx", "toJS", "defaultTagPrefix", "findTagObject", "value", "tagName", "tags", "match", "t", "tagObj", "createNode", "ctx", "isDocument", "isNode", "isPair", "map", "MAP", "aliasDuplicateObjects", "onAnchor", "onTagObj", "schema", "sourceObjects", "ref", "Alias", "node", "Scalar", "SEQ", "collectionFromPath", "schema", "path", "value", "v", "i", "k", "a", "createNode", "isEmptyPath", "Collection", "NodeBase", "type", "copy", "it", "isNode", "isPair", "key", "rest", "node", "isCollection", "keepScalar", "isScalar", "allowScalar", "n", "stringifyComment", "str", "indentComment", "comment", "indent", "lineComment", "FOLD_FLOW", "FOLD_BLOCK", "FOLD_QUOTED", "foldFlowLines", "text", "indent", "mode", "indentAtStart", "lineWidth", "minContentWidth", "onFold", "onOverflow", "endStep", "folds", "escapedFolds", "end", "split", "prev", "overflow", "i", "escStart", "escEnd", "consumeMoreIndentedLines", "ch", "next", "j", "res", "fold", "start", "getFoldOptions", "ctx", "isBlock", "containsDocumentMarker", "str", "lineLengthOverLimit", "lineWidth", "indentLength", "limit", "strLen", "start", "doubleQuotedString", "value", "json", "implicitKey", "minMultiLineLength", "indent", "i", "ch", "code", "foldFlowLines", "FOLD_QUOTED", "singleQuotedString", "res", "FOLD_FLOW", "quotedString", "singleQuote", "qs", "hasDouble", "hasSingle", "blockEndNewlines", "blockString", "comment", "type", "onComment", "onChompKeep", "blockQuote", "commentString", "literal", "Scalar", "chomp", "endStart", "end", "endNlPos", "startWithSpace", "startEnd", "startNlPos", "header", "foldedValue", "literalFallback", "foldOptions", "body", "FOLD_BLOCK", "plainString", "item", "actualString", "indentStep", "inFlow", "test", "tag", "compat", "tags", "stringifyString", "ss", "_stringify", "_type", "defaultKeyType", "defaultStringType", "t", "createStringifyContext", "doc", "options", "opt", "stringifyComment", "inFlow", "getTagObject", "tags", "item", "match", "t", "tagObj", "obj", "isScalar", "testMatch", "name", "stringifyProps", "node", "anchors", "props", "anchor", "isCollection", "anchorIsValid", "tag", "stringify", "ctx", "onComment", "onChompKeep", "isPair", "isAlias", "isNode", "str", "stringifyString", "stringifyPair", "key", "value", "ctx", "onComment", "onChompKeep", "allNullValues", "doc", "indent", "indentStep", "commentString", "indentSeq", "simpleKeys", "keyComment", "isNode", "isCollection", "msg", "explicitKey", "isScalar", "Scalar", "keyCommentDone", "chompKeep", "str", "stringify", "lineComment", "vsb", "vcb", "valueComment", "isSeq", "valueCommentDone", "valueStr", "ws", "cs", "indentComment", "vs0", "nl0", "hasNewline", "flow", "hasPropsLine", "sp0", "warn", "logLevel", "warning", "MERGE_KEY", "merge", "value", "Scalar", "addMergeToJSMap", "isMergeKey", "ctx", "key", "isScalar", "tag", "map", "source", "resolveAliasValue", "isSeq", "it", "mergeValue", "isMap", "srcMap", "isAlias", "addPairToJSMap", "ctx", "map", "key", "value", "isNode", "isMergeKey", "addMergeToJSMap", "jsKey", "toJS", "stringKey", "stringifyKey", "jsValue", "strCtx", "createStringifyContext", "node", "strKey", "jsonStr", "warn", "createPair", "key", "value", "ctx", "k", "createNode", "v", "Pair", "_Pair", "NODE_TYPE", "PAIR", "schema", "isNode", "_", "pair", "addPairToJSMap", "onComment", "onChompKeep", "stringifyPair", "stringifyCollection", "collection", "ctx", "options", "stringifyFlowCollection", "stringifyBlockCollection", "comment", "items", "blockItemPrefix", "flowChars", "itemIndent", "onChompKeep", "onComment", "indent", "commentString", "itemCtx", "chompKeep", "lines", "i", "item", "isNode", "addCommentBefore", "isPair", "ik", "str", "stringify", "lineComment", "line", "indentComment", "indentStep", "fcPadding", "reqNewline", "linesAtValue", "iv", "sum", "start", "end", "len", "ic", "findPair", "items", "key", "k", "isScalar", "it", "isPair", "YAMLMap", "Collection", "schema", "MAP", "obj", "ctx", "keepUndefined", "replacer", "map", "add", "value", "createPair", "pair", "overwrite", "_pair", "Pair", "prev", "sortEntries", "isScalarValue", "i", "item", "keepScalar", "node", "_", "Type", "addPairToJSMap", "onComment", "onChompKeep", "stringifyCollection", "map", "YAMLMap", "onError", "isMap", "schema", "obj", "ctx", "YAMLSeq", "Collection", "schema", "SEQ", "value", "key", "idx", "asItemIndex", "keepScalar", "it", "isScalar", "prev", "isScalarValue", "_", "ctx", "seq", "i", "item", "toJS", "onComment", "onChompKeep", "stringifyCollection", "obj", "replacer", "createNode", "seq", "YAMLSeq", "onError", "isSeq", "schema", "obj", "ctx", "string", "value", "str", "item", "ctx", "onComment", "onChompKeep", "stringifyString", "nullTag", "value", "Scalar", "source", "ctx", "boolTag", "value", "str", "Scalar", "source", "ctx", "sv", "stringifyNumber", "format", "minFractionDigits", "tag", "value", "num", "n", "i", "d", "floatNaN", "value", "str", "stringifyNumber", "floatExp", "node", "num", "float", "Scalar", "dot", "intIdentify", "value", "intResolve", "str", "offset", "radix", "intAsBigInt", "intStringify", "node", "prefix", "stringifyNumber", "intOct", "_onError", "opt", "int", "intHex", "schema", "map", "seq", "string", "nullTag", "boolTag", "intOct", "int", "intHex", "floatNaN", "floatExp", "float", "intIdentify", "value", "stringifyJSON", "jsonScalars", "str", "Scalar", "_onError", "intAsBigInt", "jsonError", "onError", "schema", "map", "seq", "binary", "value", "src", "onError", "str", "buffer", "i", "comment", "type", "ctx", "onComment", "onChompKeep", "buf", "s", "Scalar", "lineWidth", "n", "lines", "o", "stringifyString", "resolvePairs", "seq", "onError", "isSeq", "i", "item", "isPair", "isMap", "pair", "Pair", "Scalar", "cn", "createPairs", "schema", "iterable", "ctx", "replacer", "pairs", "YAMLSeq", "it", "key", "value", "keys", "createPair", "YAMLOMap", "_YAMLOMap", "YAMLSeq", "YAMLMap", "_", "ctx", "map", "pair", "key", "value", "isPair", "toJS", "schema", "iterable", "pairs", "createPairs", "omap", "seq", "onError", "resolvePairs", "seenKeys", "isScalar", "boolStringify", "value", "source", "ctx", "trueTag", "falseTag", "Scalar", "floatNaN", "value", "str", "stringifyNumber", "floatExp", "node", "num", "float", "Scalar", "dot", "f", "intIdentify", "value", "intResolve", "str", "offset", "radix", "intAsBigInt", "sign", "n", "intStringify", "node", "prefix", "stringifyNumber", "intBin", "_onError", "opt", "intOct", "int", "intHex", "YAMLSet", "_YAMLSet", "YAMLMap", "schema", "key", "pair", "isPair", "Pair", "findPair", "keepPair", "isScalar", "value", "prev", "_", "ctx", "onComment", "onChompKeep", "iterable", "replacer", "set", "createPair", "map", "onError", "isMap", "parseSexagesimal", "str", "asBigInt", "sign", "parts", "num", "n", "res", "p", "stringifySexagesimal", "node", "value", "stringifyNumber", "_60", "intTime", "_onError", "intAsBigInt", "floatTime", "timestamp", "match", "year", "month", "day", "hour", "minute", "second", "millisec", "date", "tz", "schema", "map", "seq", "string", "nullTag", "trueTag", "falseTag", "intBin", "intOct", "int", "intHex", "floatNaN", "floatExp", "float", "binary", "merge", "omap", "pairs", "set", "intTime", "floatTime", "timestamp", "schemas", "schema", "map", "seq", "string", "tagsByName", "binary", "boolTag", "float", "floatExp", "floatNaN", "floatTime", "int", "intHex", "intOct", "intTime", "merge", "nullTag", "omap", "pairs", "set", "timestamp", "coreKnownTags", "getTags", "customTags", "schemaName", "addMergeTag", "schemaTags", "tags", "keys", "key", "tag", "tagObj", "tagName", "sortMapEntriesByKey", "a", "b", "Schema", "_Schema", "compat", "customTags", "merge", "resolveKnownTags", "schema", "sortMapEntries", "toStringDefaults", "getTags", "coreKnownTags", "MAP", "map", "SCALAR", "string", "SEQ", "seq", "copy", "stringifyDocument", "doc", "options", "lines", "hasDirectives", "dir", "ctx", "createStringifyContext", "commentString", "cs", "indentComment", "chompKeep", "contentComment", "isNode", "onChompKeep", "body", "stringify", "lineComment", "dc", "Document", "_Document", "value", "replacer", "options", "NODE_TYPE", "DOC", "_replacer", "opt", "version", "Directives", "copy", "isNode", "assertCollection", "path", "node", "name", "prev", "anchorNames", "findNewAnchor", "Alias", "keyToStr", "v", "asStr", "aliasDuplicateObjects", "anchorPrefix", "flow", "keepUndefined", "onTagObj", "tag", "onAnchor", "setAnchors", "sourceObjects", "createNodeAnchors", "ctx", "createNode", "isCollection", "key", "k", "Pair", "isEmptyPath", "keepScalar", "isScalar", "collectionFromPath", "sv", "Schema", "json", "jsonArg", "mapAsMap", "maxAliasCount", "reviver", "res", "toJS", "count", "applyReviver", "s", "stringifyDocument", "contents", "YAMLError", "name", "pos", "code", "message", "YAMLParseError", "YAMLWarning", "prettifyError", "src", "lc", "error", "line", "col", "ci", "lineStr", "trimStart", "prev", "count", "end", "pointer", "resolveProps", "tokens", "flow", "indicator", "next", "offset", "onError", "parentIndent", "startOnNewline", "spaceBefore", "atNewline", "hasSpace", "comment", "commentSep", "hasNewline", "reqSpace", "tab", "anchor", "tag", "newlineAfterProp", "comma", "found", "start", "token", "cb", "last", "end", "containsNewline", "key", "st", "it", "flowIndentCheck", "indent", "fc", "onError", "end", "containsNewline", "mapIncludes", "ctx", "items", "search", "uniqueKeys", "isEqual", "a", "b", "isScalar", "pair", "startColMsg", "resolveBlockMap", "composeNode", "composeEmptyNode", "ctx", "bm", "onError", "tag", "NodeClass", "YAMLMap", "map", "offset", "commentEnd", "collItem", "start", "key", "sep", "value", "keyProps", "resolveProps", "implicitKey", "containsNewline", "keyStart", "keyNode", "flowIndentCheck", "mapIncludes", "valueProps", "valueNode", "pair", "Pair", "resolveBlockSeq", "composeNode", "composeEmptyNode", "ctx", "bs", "onError", "tag", "NodeClass", "YAMLSeq", "seq", "offset", "commentEnd", "start", "value", "props", "resolveProps", "node", "flowIndentCheck", "resolveEnd", "end", "offset", "reqSpace", "onError", "comment", "hasSpace", "sep", "token", "source", "type", "cb", "blockMsg", "isBlock", "token", "resolveFlowCollection", "composeNode", "composeEmptyNode", "ctx", "fc", "onError", "tag", "isMap", "fcName", "NodeClass", "YAMLMap", "YAMLSeq", "coll", "atRoot", "offset", "i", "collItem", "start", "key", "sep", "value", "props", "resolveProps", "containsNewline", "prevItemComment", "loop", "st", "prev", "isPair", "valueNode", "keyStart", "keyNode", "valueProps", "pair", "Pair", "map", "mapIncludes", "endRange", "expectedEnd", "ce", "ee", "cePos", "name", "msg", "end", "resolveEnd", "resolveCollection", "CN", "ctx", "token", "onError", "tagName", "tag", "coll", "resolveBlockMap", "resolveBlockSeq", "resolveFlowCollection", "Coll", "composeCollection", "props", "tagToken", "msg", "anchor", "nl", "lastProp", "expType", "YAMLMap", "YAMLSeq", "t", "kt", "res", "node", "isNode", "Scalar", "resolveBlockScalar", "ctx", "scalar", "onError", "start", "header", "parseBlockScalarHeader", "type", "Scalar", "lines", "splitLines", "chompStart", "i", "content", "value", "end", "trimIndent", "offset", "contentStart", "indent", "sep", "prevMoreIndented", "crlf", "message", "props", "strict", "source", "mode", "chomp", "error", "ch", "n", "hasSpace", "comment", "length", "token", "ts", "split", "first", "m", "resolveFlowScalar", "scalar", "strict", "onError", "offset", "type", "source", "end", "_type", "value", "_onError", "rel", "code", "msg", "Scalar", "plainValue", "singleQuotedValue", "doubleQuotedValue", "valueEnd", "re", "resolveEnd", "badChar", "unfoldLines", "line", "match", "trimEnd", "trimBoth", "res", "sep", "pos", "lm", "last", "i", "ch", "fold", "foldNewline", "next", "cc", "escapeCodes", "length", "parseCharCode", "raw", "wsStart", "composeScalar", "ctx", "token", "tagToken", "onError", "value", "type", "comment", "range", "resolveBlockScalar", "resolveFlowScalar", "tagName", "msg", "tag", "SCALAR", "findScalarTagByName", "findScalarTagByTest", "scalar", "res", "isScalar", "Scalar", "error", "schema", "matchWithTest", "kt", "atKey", "directives", "compat", "ts", "cs", "emptyScalarPosition", "offset", "before", "pos", "i", "st", "CN", "composeNode", "composeEmptyNode", "ctx", "token", "props", "onError", "atKey", "spaceBefore", "comment", "anchor", "tag", "node", "isSrcToken", "composeAlias", "composeScalar", "composeCollection", "error", "message", "isScalar", "offset", "before", "pos", "end", "emptyScalarPosition", "options", "source", "alias", "Alias", "valueEnd", "re", "resolveEnd", "composeDoc", "options", "directives", "offset", "start", "value", "end", "onError", "opts", "doc", "Document", "ctx", "props", "resolveProps", "composeNode", "composeEmptyNode", "contentEnd", "re", "resolveEnd", "getErrorPos", "src", "offset", "source", "parsePrelude", "prelude", "comment", "atComment", "afterEmptyLine", "i", "Composer", "options", "code", "message", "warning", "pos", "YAMLWarning", "YAMLParseError", "Directives", "doc", "afterDoc", "dc", "isCollection", "it", "isPair", "cb", "tokens", "forceDoc", "endOffset", "token", "composeDoc", "msg", "error", "end", "resolveEnd", "opts", "Document", "BREAK", "SKIP", "REMOVE", "visit", "cst", "visitor", "_visit", "path", "item", "field", "index", "tok", "parent", "coll", "ctrl", "token", "i", "ci", "BOM", "DOCUMENT", "FLOW_END", "SCALAR", "tokenType", "source", "BOM", "DOCUMENT", "FLOW_END", "SCALAR", "isEmpty", "ch", "hexDigits", "tagChars", "flowIndicatorChars", "invalidAnchorChars", "isNotAnchorChar", "Lexer", "source", "incomplete", "next", "i", "n", "offset", "indent", "dt", "end", "state", "line", "BOM", "dirEnd", "cs", "sp", "DOCUMENT", "s", "ch0", "ch1", "nl", "FLOW_END", "quote", "qb", "loop", "lastChar", "SCALAR", "inFlow", "allowEmpty", "allowTabs", "test", "LineCounter", "offset", "low", "high", "mid", "start", "includesToken", "list", "type", "i", "findNonEmptyIndex", "isFlowToken", "token", "getPrevProps", "parent", "it", "getFirstKeyStartProps", "prev", "loop", "arrayPushArray", "target", "source", "fixFlowSeqItems", "fc", "Parser", "onNewLine", "Lexer", "incomplete", "lexeme", "tokenType", "message", "top", "n", "error", "last", "st", "doc", "bv", "scalar", "start", "sep", "map", "nl", "end", "atMapIndent", "atNextItem", "key", "fs", "seq", "indent", "docEnd", "parseOptions", "options", "prettyErrors", "LineCounter", "parseDocument", "source", "options", "lineCounter", "prettyErrors", "parseOptions", "parser", "Parser", "composer", "Composer", "doc", "_doc", "YAMLParseError", "prettifyError", "parse", "src", "reviver", "_reviver", "warning", "warn", "resolvePointer", "spec", "ref", "part", "node", "key", "refName", "deref", "hops", "mergeInto", "target", "source", "value", "resolveSchema", "input", "schema", "name", "allOf", "rest", "merged", "inferType", "typeLabel", "type", "item", "constraintsOf", "list", "add", "label", "childrenOf", "variants", "variant", "STRING_FORMATS", "exampleFromSchema", "seen", "depth", "nextSeen", "result", "mediaExample", "media", "named", "mediaExamples", "HTTP_METHODS", "slugify", "tagAnchor", "modelAnchor", "operationAnchor", "method", "path", "operationId", "mergeParameters", "pathParams", "opParams", "byKey", "raw", "resolveLinks", "links", "resolveResponses", "responses", "status", "buildOperation", "pathItem", "op", "kind", "anchorPrefix", "requestBody", "anchor", "resolveCallbacks", "operationsOf", "callbacks", "parentAnchor", "operations", "expression", "buildModel", "tagMeta", "tag", "groups", "operation", "webhooks", "tags", "schemas", "serverUrl", "server", "values", "match", "linkTarget", "model", "link", "jsonMediaType", "content", "types", "parameterExample", "param", "defaultValues", "example", "include", "_a", "isMultipart", "contentType", "isBinary", "defaultForm", "fields", "property", "items", "entry", "defaultBody", "formEncode", "params", "buildRequest", "body", "form", "headers", "base", "query", "search", "allHeaders", "cookies", "canHaveBody", "multipart", "hasBody", "request", "dq", "sq", "shellQuote", "psQuote", "dartQuote", "kotlinQuote", "indent", "text", "prefix", "capitalize", "field", "fileType", "files", "texts", "headerList", "jsObject", "pad", "parseUrl", "url", "note", "comment", "curl", "parts", "httpie", "formData", "lines", "nodeImports", "fetchClient", "options", "axios", "jquery", "xhr", "undici", "pyString", "pythonClient", "library", "args", "grouped", "entries", "fileFields", "phpCurl", "headerLines", "names", "guzzle", "go", "variable", "javaOkHttp", "kotlinOkHttp", "csharpHttpClient", "restSharp", "ruby", "swift", "fileName", "dart", "counts", "rust", "methodExpr", "libcurl", "powershell", "BOUNDARY", "rawHttp", "MULTIPART_BUILDERS", "parseJson", "compact", "json", "contentTypeOf", "withoutContentType", "toPython", "next", "toPhp", "toRuby", "jsBody", "wget", "command", "nodeHttp", "lib", "pythonHttpClient", "connection", "payload", "sentHeaders", "literal", "textBlock", "javaHttpClient", "publisher", "requestHeaders", "hashes", "LANGUAGES", "SNIPPET_LANGUAGES", "language", "client", "resolveSnippet", "selection", "languageKey", "clientKey", "localize", "locale", "translations", "normalized", "FENCE", "LANG_OPEN", "CONTAINER_OPEN", "CONTAINER_CLOSE", "HEADING", "THEMATIC_BREAK", "BLOCKQUOTE", "LIST_ITEM", "TABLE_DELIMITER", "isBlank", "line", "indentOf", "expandTabs", "splitRow", "row", "cells", "current", "inCode", "index", "char", "isTableStart", "parseTable", "header", "align", "cell", "left", "right", "rows", "_", "column", "parseInline", "listMarker", "marker", "spacing", "ordered", "gap", "parseList", "first", "loose", "sawBlank", "startsBlock", "lineIndex", "checked", "task", "parseBlocks", "interruptsParagraph", "blocks", "fence", "code", "closing", "lang", "inner", "inFence", "normalizeTag", "heading", "quoted", "block", "paragraph", "original", "PUNCTUATION", "BARE_URL", "AUTOLINK", "closingBracket", "start", "end", "href", "title", "quote", "closingDelimiter", "delimiter", "from", "before", "after", "doubled", "escaped", "intraword", "pushText", "nodes", "last", "hard", "run", "image", "open", "close", "autolink", "leftFlanking", "wordBefore", "matches", "selectLocale", "fallbacks", "group", "chosen", "fallback", "parseMarkdown", "safeUrl", "STRING_DOUBLE", "STRING_SINGLE", "NUMBER", "words", "C_COMMENT", "TRIPLE_DOUBLE", "TYPE", "CALL", "cFamily", "keywords", "literals", "strings", "extra", "regex", "tokenize", "rules", "tokens", "plain", "outer", "word", "chunk", "securityRequirements", "requirement", "base64", "binary", "byte", "hasCredential", "scheme", "credential", "applyScheme", "applySecurity", "schemes", "requirements", "credentials", "usable", "describeScheme", "TOKEN_FLOWS", "buildTokenRequest", "flowName", "flow", "REF_PREFIXES", "SCHEMA_KEYS", "FORM_TYPES", "convertRef", "bodyParameters", "to", "convertSchema", "child", "convertParameter", "parameter", "collectionFormat", "allowEmptyValue", "format", "bodyContent", "description", "required", "formBody", "parameters", "consumes", "hasFile", "contentTypes", "propertySchema", "convertResponse", "response", "produces", "examples", "headerSchema", "convertSecurityScheme", "scopes", "resolveParameter", "doc", "convertSwagger2", "globalConsumes", "globalProduces", "servers", "components", "paths", "pathParameters", "opConsumes", "opProduces", "converted", "resolved", "outParameters", "EXTERNAL_KEY", "isExternal", "hasExternalRefs", "resolveExternalRefs", "baseUrl", "read", "maxDocuments", "documents", "hoisted", "store", "usedKeys", "load", "parseSpec", "keyFor", "pointer", "segment", "hoist", "id", "existing", "walk", "isRoot", "object", "file", "_ref", "siblings", "trimmed", "error", "parse", "isOpenApiDocument", "normalizeSpec", "loadSpecText", "loadSpec", "import_jsx_runtime", "import_react", "messages", "ar_default", "messages", "en_default", "messages", "tr_default", "BUILT_IN_MESSAGES", "en_default", "tr_default", "ar_default", "LOCALE_NAMES", "RTL_LANGUAGES", "directionOf", "locale", "mergeMessages", "overrides", "merged", "translate", "messages", "key", "params", "base", "value", "match", "name", "LocaleContext", "LocaleProvider", "controlled", "defaultLocale", "onLocaleChange", "messages", "children", "uncontrolled", "setUncontrolled", "locale", "setLocale", "next", "value", "useLocale", "useSetLocale", "useAvailableLocales", "useT", "key", "params", "translate", "useLocalized", "node", "field", "localize", "import_react", "LazyContext", "useNearViewport", "ref", "eager", "lazy", "near", "setNear", "observer", "entries", "entry", "scrollToAnchor", "id", "target", "last", "delay", "top", "access", "kind", "createStorage", "prefix", "key", "name", "fallback", "value", "import_jsx_runtime", "import_jsx_runtime", "import_react", "import_jsx_runtime", "import_react", "Highlighted", "code", "language", "tokenize", "token", "index", "CopyButton", "text", "className", "copied", "setCopied", "t", "useT", "copy", "label", "CodeBlock", "toolbar", "actions", "maxHeight", "ToolbarTab", "active", "onClick", "children", "CodeEditor", "value", "onChange", "rows", "layer", "shared", "event", "CODE_LANGUAGES", "HEADING_STYLES", "Inline", "nodes", "node", "index", "href", "safeUrl", "external", "src", "Blocks", "blocks", "tight", "block", "Tag", "CodeBlock", "List", "task", "item", "itemIndex", "cell", "column", "row", "rowIndex", "Markdown", "source", "className", "locale", "useLocale", "selectLocale", "parseMarkdown", "import_react", "SpecContext", "useSpec", "ModelContext", "useModel", "SettingsContext", "useSettings", "import_jsx_runtime", "import_react", "toFormData", "form", "files", "data", "field", "index", "toBase64", "file", "bytes", "binary", "offset", "sendDirect", "request", "started", "response", "sendViaProxy", "proxyUrl", "payload", "result", "sendRequest", "inputClass", "Field", "label", "value", "onChange", "secret", "placeholder", "event", "TokenRequest", "name", "scheme", "credential", "setCredential", "proxyUrl", "useSettings", "t", "useT", "flows", "TOKEN_FLOWS", "flow", "setFlow", "state", "setState", "requestToken", "result", "sendRequest", "buildTokenRequest", "body", "error", "set", "key", "item", "SchemeFields", "credentials", "AuthPanel", "schemes", "describeScheme", "Markdown", "downloadSpec", "spec", "blob", "link", "Intro", "model", "servers", "serverIndex", "setServerIndex", "customServer", "setCustomServer", "token", "setToken", "selectedServer", "variableValues", "setVariable", "securitySchemes", "useSettings", "hasSchemes", "variables", "info", "t", "useT", "localized", "useLocalized", "label", "value", "Markdown", "event", "server", "index", "name", "variable", "option", "AuthPanel", "import_jsx_runtime", "import_react", "import_jsx_runtime", "import_react", "import_jsx_runtime", "Icon", "className", "children", "strokeWidth", "ChevronIcon", "MenuIcon", "SunIcon", "MoonIcon", "CloseIcon", "PlayIcon", "LockIcon", "Chip", "children", "className", "formatValue", "value", "FieldDetails", "schema", "name", "description", "required", "deprecated", "extra", "spec", "useSpec", "t", "useT", "localized", "useLocalized", "constraints", "constraintsOf", "text", "modelAnchor", "typeLabel", "Markdown", "item", "PropertyRow", "raw", "depth", "seen", "refName", "resolveSchema", "circular", "nested", "childrenOf", "open", "setOpen", "ChevronIcon", "SchemaBody", "variant", "setVariant", "key", "inner", "current", "index", "SchemaTree", "modelName", "resolved", "Model", "item", "ref", "near", "useNearViewport", "SchemaTree", "Models", "schemas", "useT", "models_default", "import_jsx_runtime", "import_react", "import_jsx_runtime", "METHOD_STYLES", "MethodBadge", "method", "size", "statusTone", "status", "onDark", "import_jsx_runtime", "import_react", "ToolbarSelect", "label", "value", "options", "onChange", "event", "key", "text", "withAuth", "values", "auth", "RequestSample", "operation", "onTry", "spec", "useSpec", "server", "authFor", "language", "setLanguage", "useSettings", "t", "useT", "request", "buildRequest", "defaultValues", "defaultBody", "current", "client", "resolveSnippet", "selectLanguage", "CodeBlock", "SNIPPET_LANGUAGES", "item", "PlayIcon", "ResponseSample", "withBody", "response", "jsonMediaType", "status", "setStatus", "exampleKey", "setExampleKey", "media", "named", "mediaExamples", "selected", "mediaExample", "ToolbarTab", "statusTone", "PARAM_GROUPS", "SectionTitle", "children", "aside", "Parameters", "parameters", "spec", "useSpec", "t", "useT", "localized", "useLocalized", "location", "title", "list", "param", "schema", "name", "resolveSchema", "FieldDetails", "MediaSchema", "content", "types", "type", "setType", "jsonMediaType", "media", "event", "item", "SchemaTree", "Links", "links", "model", "useModel", "link", "target", "linkTarget", "Markdown", "expression", "ResponseRow", "response", "defaultOpen", "open", "setOpen", "hasBody", "headers", "expandable", "ChevronIcon", "statusTone", "header", "Callback", "operation", "MethodBadge", "PayloadSample", "example", "mediaExample", "CodeBlock", "SecurityLine", "requirements", "securityRequirements", "optional", "requirement", "alternatives", "LockIcon", "index", "Operation", "onTry", "eager", "webhook", "ref", "useNearViewport", "CopyButton", "callback", "RequestSample", "ResponseSample", "operation_default", "import_jsx_runtime", "import_react", "matches", "operation", "query", "localized", "tagNames", "parameter", "value", "cssEscape", "matchesSchema", "item", "Sidebar", "model", "activeAnchor", "searchRef", "onNavigate", "showModels", "setQuery", "expanded", "setExpanded", "modelsOpen", "setModelsOpen", "listRef", "t", "useT", "useLocalized", "normalized", "groups", "tags", "tag", "op", "schemas", "activeTag", "inModels", "toggle", "name", "current", "next", "linkClass", "anchor", "event", "open", "ChevronIcon", "MethodBadge", "import_jsx_runtime", "import_react", "SAFE_METHODS", "LOCATIONS", "prettyBody", "text", "TryIt", "operation", "onClose", "spec", "useSpec", "server", "authFor", "proxyUrl", "storage", "useSettings", "proxyEnabled", "dialog", "t", "useT", "values", "setValues", "defaultValues", "contentType", "body", "form", "setBody", "defaultBody", "chosen", "setChosen", "multipart", "isMultipart", "state", "setState", "skipConfirm", "setSkipConfirm", "preferredMode", "setMode", "mode", "changeMode", "next", "node", "sent", "field", "index", "file", "request", "buildRequest", "withAuth", "item", "files", "setFormValue", "value", "current", "i", "setValue", "location", "name", "send", "event", "execute", "confirmSend", "result", "sendViaProxy", "sendDirect", "error", "MethodBadge", "CloseIcon", "key", "label", "params", "param", "option", "CodeEditor", "statusTone", "CodeBlock", "SPEC_SOURCE_HEADER", "LanguageToggle", "locale", "useLocale", "setLocale", "useSetLocale", "locales", "useAvailableLocales", "t", "useT", "event", "item", "LOCALE_NAMES", "ThemeToggle", "theme", "onChange", "MoonIcon", "SunIcon", "SourceMenu", "source", "defaultLabel", "onUrl", "onFile", "onDefault", "draft", "setDraft", "fileInput", "menu", "close", "file", "readText", "url", "response", "systemTheme", "LAZY_THRESHOLD", "EAGER_OPERATIONS", "DEFAULT_FEATURES", "Viewer", "inlineSpec", "specUrl", "title", "logo", "storagePrefix", "proxyUrl", "featureOverrides", "defaultSnippet", "urlParam", "themeProp", "lazy", "features", "storage", "createStorage", "rootRef", "nestedInMain", "setNestedInMain", "setSource", "normalizedInline", "normalizeSpec", "spec", "setSpec", "error", "setError", "usingFallback", "setUsingFallback", "activeAnchor", "setActiveAnchor", "sidebarOpen", "setSidebarOpen", "tryOperation", "setTryOperation", "searchRef", "localized", "useLocalized", "serverIndex", "setServerIndex", "customServer", "setCustomServer", "serverVariables", "setServerVariables", "token", "setToken", "credentials", "setCredentials", "language", "setLanguage", "setTheme", "changeTheme", "next", "cancelled", "params", "search", "text", "fallback", "json", "loadSpec", "err", "loadFile", "loadSpecText", "model", "buildModel", "lazyEnabled", "eagerAnchors", "operation", "schemes", "settings", "servers", "selected", "variableValues", "server", "serverUrl", "name", "value", "current", "patch", "applySecurity", "securityRequirements", "observer", "entries", "visible", "entry", "node", "target", "scrollToAnchor", "onHash", "onKey", "closeSidebar", "openTry", "heading", "SpecContext", "ModelContext", "SettingsContext", "directionOf", "MenuIcon", "Sidebar", "LazyContext", "Intro", "tag", "Markdown", "operation_default", "models_default", "TryIt", "ApiReference", "defaultLocale", "onLocaleChange", "messages", "merged", "mergeMessages", "LocaleProvider", "import_jsx_runtime", "Logo", "light", "dark", "alt", "label", "oaspect_default", "import_client", "import_jsx_runtime", "toProps", "config", "logo", "props", "Logo", "import_jsx_runtime", "VERSION", "STYLE_ID", "injectStyles", "style", "oaspect_default", "init", "target", "config", "element", "root", "ApiReference", "toProps", "controls", "initial", "current", "next", "hydrate", "props", "ATTRIBUTES", "FEATURES", "configFrom", "get", "attribute", "key", "value", "logo", "hide", "name", "item", "_instance", "_spec", "_OaspectReference_instances", "render_fn", "OaspectReference", "__privateAdd", "__privateSet", "__privateMethod", "__privateGet", "script", "mount"]
7
+ }