zudoku 0.3.0-dev.34 → 0.3.0-dev.35

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.
Files changed (74) hide show
  1. package/dist/app/entry.client.js +2 -1
  2. package/dist/app/entry.client.js.map +1 -1
  3. package/dist/app/entry.server.js +10 -2
  4. package/dist/app/entry.server.js.map +1 -1
  5. package/dist/app/main.js +1 -2
  6. package/dist/app/main.js.map +1 -1
  7. package/dist/lib/components/DevPortal.js +9 -3
  8. package/dist/lib/components/DevPortal.js.map +1 -1
  9. package/dist/lib/components/Layout.js +4 -1
  10. package/dist/lib/components/Layout.js.map +1 -1
  11. package/dist/lib/components/index.d.ts +3 -0
  12. package/dist/lib/components/index.js +2 -0
  13. package/dist/lib/components/index.js.map +1 -1
  14. package/dist/lib/plugins/markdown/MdxPage.js +3 -1
  15. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  16. package/dist/vite/config.js +1 -1
  17. package/dist/vite/config.js.map +1 -1
  18. package/dist/vite/plugin-component.js +1 -1
  19. package/dist/vite/plugin-component.js.map +1 -1
  20. package/lib/AnchorLink-DCzimaMt.js +704 -0
  21. package/lib/AnchorLink-DCzimaMt.js.map +1 -0
  22. package/lib/{DevPortalProvider-BlxLX6GG.js → DevPortalProvider-Demv4Ngx.js} +250 -230
  23. package/lib/DevPortalProvider-Demv4Ngx.js.map +1 -0
  24. package/lib/{Markdown-CL8KPvJN.js → Markdown-kde-UTpz.js} +3 -3
  25. package/lib/{Markdown-CL8KPvJN.js.map → Markdown-kde-UTpz.js.map} +1 -1
  26. package/lib/{MdxComponents-Ev_hBHb2.js → MdxComponents-BZ-Y_6jI.js} +8 -8
  27. package/lib/{MdxComponents-Ev_hBHb2.js.map → MdxComponents-BZ-Y_6jI.js.map} +1 -1
  28. package/lib/{MdxPage-BRKQDcVW.js → MdxPage-CGTgSCJL.js} +108 -113
  29. package/lib/MdxPage-CGTgSCJL.js.map +1 -0
  30. package/lib/{OperationList-DfkWNe8Y.js → OperationList-BDAtLdf9.js} +1693 -1862
  31. package/lib/OperationList-BDAtLdf9.js.map +1 -0
  32. package/lib/{Route-Bf1_D_vC.js → Route-BqfQoDR2.js} +2 -2
  33. package/lib/{Route-Bf1_D_vC.js.map → Route-BqfQoDR2.js.map} +1 -1
  34. package/lib/Select-DIOQWPp3.js +4571 -0
  35. package/lib/Select-DIOQWPp3.js.map +1 -0
  36. package/lib/Spinner-B9MAj2Pw.js +182 -0
  37. package/lib/Spinner-B9MAj2Pw.js.map +1 -0
  38. package/lib/{hook-CTmJ6CWq.js → hook-D1DiFbcT.js} +3 -3
  39. package/lib/{hook-CTmJ6CWq.js.map → hook-D1DiFbcT.js.map} +1 -1
  40. package/lib/index-BB2EBBgh.js +412 -0
  41. package/lib/index-BB2EBBgh.js.map +1 -0
  42. package/lib/{index-BjSy8IQO.js → index-CdZQPXUQ.js} +6 -6
  43. package/lib/{index-BjSy8IQO.js.map → index-CdZQPXUQ.js.map} +1 -1
  44. package/lib/{jsx-runtime-CM0TzjGp.js → jsx-runtime-Bt86M5tA.js} +5 -5
  45. package/lib/{jsx-runtime-CM0TzjGp.js.map → jsx-runtime-Bt86M5tA.js.map} +1 -1
  46. package/lib/util-CYBrkBUo.js +41 -0
  47. package/lib/util-CYBrkBUo.js.map +1 -0
  48. package/lib/zudoku.auth-openid.js +1 -1
  49. package/lib/zudoku.components.js +563 -286
  50. package/lib/zudoku.components.js.map +1 -1
  51. package/lib/zudoku.plugin-api-keys.js +99 -111
  52. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  53. package/lib/zudoku.plugin-markdown.js +46 -2
  54. package/lib/zudoku.plugin-markdown.js.map +1 -1
  55. package/lib/zudoku.plugin-openapi.js +3 -3
  56. package/package.json +2 -1
  57. package/src/app/entry.client.tsx +4 -1
  58. package/src/app/entry.server.tsx +17 -2
  59. package/src/app/main.tsx +1 -2
  60. package/src/lib/components/DevPortal.tsx +15 -1
  61. package/src/lib/components/Layout.tsx +9 -0
  62. package/src/lib/components/index.ts +2 -0
  63. package/src/lib/plugins/markdown/MdxPage.tsx +6 -0
  64. package/lib/DevPortalProvider-BlxLX6GG.js.map +0 -1
  65. package/lib/MdxPage-BRKQDcVW.js.map +0 -1
  66. package/lib/OperationList-DfkWNe8Y.js.map +0 -1
  67. package/lib/Select-DSa3bN4t.js +0 -4770
  68. package/lib/Select-DSa3bN4t.js.map +0 -1
  69. package/lib/index-Brq2ztwd.js +0 -74
  70. package/lib/index-Brq2ztwd.js.map +0 -1
  71. package/lib/index-QzXzw_ra.js +0 -24
  72. package/lib/index-QzXzw_ra.js.map +0 -1
  73. package/lib/mutation-91kw0lHb.js +0 -208
  74. package/lib/mutation-91kw0lHb.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MdxComponents-Ev_hBHb2.js","sources":["../../../node_modules/.pnpm/react-router-dom@6.24.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-router-dom/dist/index.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/shared/src/utils.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/defaultAttributes.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/Icon.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/createLucideIcon.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/check.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/copy.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/info.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/lightbulb.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/shield-alert.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/triangle-alert.js","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/tailwind-merge@2.3.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/util/cn.ts","../src/lib/ui/Callout.tsx","../src/lib/components/context/ViewportAnchorContext.tsx","../../../node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/index.mjs","../src/lib/components/Heading.tsx","../src/lib/components/InlineCode.tsx","../../../node_modules/.pnpm/prism-react-renderer@2.3.1_react@18.3.1/node_modules/prism-react-renderer/dist/index.mjs","../src/lib/components/context/ThemeContext.tsx","../src/lib/components/SyntaxHighlight.tsx","../src/lib/util/MdxComponents.tsx"],"sourcesContent":["/**\n * React Router DOM v6.24.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { UNSAFE_mapRouteProperties, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker } from 'react-router';\nexport { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';\nimport { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths, IDLE_FETCHER, matchPath } from '@remix-run/router';\nexport { UNSAFE_ErrorResponseImpl } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nconst defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && (\n // Ignore everything but left clicks\n !target || target === \"_self\") &&\n // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ;\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\n// One-time check for submitter support\nlet _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0);\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nconst supportedFormEncTypes = new Set([\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"\\\"\" + encType + \"\\\" is not a valid `encType` for `<Form>`/`<fetcher.Form>` \" + (\"and will default to \\\"\" + defaultEncType + \"\\\"\")) : void 0;\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\"Cannot submit a <button> or <input type=\\\"submit\\\"> without a <form>\");\n }\n // <button>/<input type=\"submit\"> may override attributes of <form>\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"formenctype\")) || getFormEncType(form.getAttribute(\"enctype\")) || defaultEncType;\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let {\n name,\n type,\n value\n } = target;\n if (type === \"image\") {\n let prefix = name ? name + \".\" : \"\";\n formData.append(prefix + \"x\", \"0\");\n formData.append(prefix + \"y\", \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\"Cannot submit element that is not <form>, <button>, or \" + \"<input type=\\\"submit|image\\\">\");\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n return {\n action,\n method: method.toLowerCase(),\n encType,\n formData,\n body\n };\n}\n\nconst _excluded = [\"onClick\", \"relative\", \"reloadDocument\", \"replace\", \"state\", \"target\", \"to\", \"preventScrollReset\", \"unstable_viewTransition\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"unstable_viewTransition\", \"children\"],\n _excluded3 = [\"fetcherKey\", \"navigate\", \"reloadDocument\", \"replace\", \"state\", \"method\", \"action\", \"onSubmit\", \"relative\", \"preventScrollReset\", \"unstable_viewTransition\"];\n// HEY YOU! DON'T TOUCH THIS VARIABLE!\n//\n// It is replaced with the proper version at build time via a babel plugin in\n// the rollup config.\n//\n// Export a global property onto the window for React Router detection by the\n// Core Web Vitals Technology Report. This way they can configure the `wappalyzer`\n// to detect and properly classify live websites as being built with React Router:\n// https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies/r.json\nconst REACT_ROUTER_VERSION = \"6\";\ntry {\n window.__reactRouterVersion = REACT_ROUTER_VERSION;\n} catch (e) {\n // no-op\n}\nfunction createBrowserRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createBrowserHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n unstable_dataStrategy: opts == null ? void 0 : opts.unstable_dataStrategy,\n unstable_patchRoutesOnMiss: opts == null ? void 0 : opts.unstable_patchRoutesOnMiss,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction createHashRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createHashHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n unstable_dataStrategy: opts == null ? void 0 : opts.unstable_dataStrategy,\n unstable_patchRoutesOnMiss: opts == null ? void 0 : opts.unstable_patchRoutesOnMiss,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction parseHydrationData() {\n var _window;\n let state = (_window = window) == null ? void 0 : _window.__staticRouterHydrationData;\n if (state && state.errors) {\n state = _extends({}, state, {\n errors: deserializeErrors(state.errors)\n });\n }\n return state;\n}\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new UNSAFE_ErrorResponseImpl(val.status, val.statusText, val.data, val.internal === true);\n } else if (val && val.__type === \"Error\") {\n // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n // @ts-expect-error\n let error = new ErrorConstructor(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n // no-op - fall through and create a normal Error\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nconst ViewTransitionContext = /*#__PURE__*/React.createContext({\n isTransitioning: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n ViewTransitionContext.displayName = \"ViewTransition\";\n}\nconst FetchersContext = /*#__PURE__*/React.createContext(new Map());\nif (process.env.NODE_ENV !== \"production\") {\n FetchersContext.displayName = \"Fetchers\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\nconst FLUSH_SYNC = \"flushSync\";\nconst flushSyncImpl = ReactDOM[FLUSH_SYNC];\nconst USE_ID = \"useId\";\nconst useIdImpl = React[USE_ID];\nfunction startTransitionSafe(cb) {\n if (startTransitionImpl) {\n startTransitionImpl(cb);\n } else {\n cb();\n }\n}\nfunction flushSyncSafe(cb) {\n if (flushSyncImpl) {\n flushSyncImpl(cb);\n } else {\n cb();\n }\n}\nclass Deferred {\n constructor() {\n this.status = \"pending\";\n this.promise = new Promise((resolve, reject) => {\n this.resolve = value => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = reason => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n}\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let [pendingState, setPendingState] = React.useState();\n let [vtContext, setVtContext] = React.useState({\n isTransitioning: false\n });\n let [renderDfd, setRenderDfd] = React.useState();\n let [transition, setTransition] = React.useState();\n let [interruption, setInterruption] = React.useState();\n let fetcherData = React.useRef(new Map());\n let {\n v7_startTransition\n } = future || {};\n let optInStartTransition = React.useCallback(cb => {\n if (v7_startTransition) {\n startTransitionSafe(cb);\n } else {\n cb();\n }\n }, [v7_startTransition]);\n let setState = React.useCallback((newState, _ref2) => {\n let {\n deletedFetchers,\n unstable_flushSync: flushSync,\n unstable_viewTransitionOpts: viewTransitionOpts\n } = _ref2;\n deletedFetchers.forEach(key => fetcherData.current.delete(key));\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== undefined) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n let isViewTransitionUnavailable = router.window == null || router.window.document == null || typeof router.window.document.startViewTransition !== \"function\";\n // If this isn't a view transition or it's not available in this browser,\n // just update and be done with it\n if (!viewTransitionOpts || isViewTransitionUnavailable) {\n if (flushSync) {\n flushSyncSafe(() => setStateImpl(newState));\n } else {\n optInStartTransition(() => setStateImpl(newState));\n }\n return;\n }\n // flushSync + startViewTransition\n if (flushSync) {\n // Flush through the context to mark DOM elements as transition=ing\n flushSyncSafe(() => {\n // Cancel any pending transitions\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n });\n // Update the DOM\n let t = router.window.document.startViewTransition(() => {\n flushSyncSafe(() => setStateImpl(newState));\n });\n // Clean up after the animation completes\n t.finished.finally(() => {\n flushSyncSafe(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n });\n flushSyncSafe(() => setTransition(t));\n return;\n }\n // startTransition + startViewTransition\n if (transition) {\n // Interrupting an in-progress transition, cancel and let everything flush\n // out, and then kick off a new transition from the interruption state\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n } else {\n // Completed navigation update with opted-in view transitions, let 'er rip\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n }\n }, [router.window, transition, renderDfd, fetcherData, optInStartTransition]);\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n // When we start a view transition, create a Deferred we can use for the\n // eventual \"completed\" render\n React.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred());\n }\n }, [vtContext]);\n // Once the deferred is created, kick off startViewTransition() to update the\n // DOM and then wait on the Deferred to resolve (indicating the DOM update has\n // happened)\n React.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition = router.window.document.startViewTransition(async () => {\n optInStartTransition(() => setStateImpl(newState));\n await renderPromise;\n });\n transition.finished.finally(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n setTransition(transition);\n }\n }, [optInStartTransition, pendingState, renderDfd, router.window]);\n // When the new location finally renders and is committed to the DOM, this\n // effect will run to resolve the transition\n React.useEffect(() => {\n if (renderDfd && pendingState && state.location.key === pendingState.location.key) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n // If we get interrupted with a new navigation during a transition, we skip\n // the active transition, let it cleanup, then kick it off again here\n React.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation\n });\n setInterruption(undefined);\n }\n }, [vtContext.isTransitioning, interruption]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UNSAFE_DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(UNSAFE_DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(FetchersContext.Provider, {\n value: fetcherData.current\n }, /*#__PURE__*/React.createElement(ViewTransitionContext.Provider, {\n value: vtContext\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: {\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))))), null);\n}\nfunction DataRoutes(_ref3) {\n let {\n routes,\n future,\n state\n } = _ref3;\n return UNSAFE_useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nfunction BrowserRouter(_ref4) {\n let {\n basename,\n children,\n future,\n window\n } = _ref4;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nfunction HashRouter(_ref5) {\n let {\n basename,\n children,\n future,\n window\n } = _ref5;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter(_ref6) {\n let {\n basename,\n children,\n future,\n history\n } = _ref6;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\nif (process.env.NODE_ENV !== \"production\") {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n/**\n * The public API for rendering a history-aware `<a>`.\n */\nconst Link = /*#__PURE__*/React.forwardRef(function LinkWithRef(_ref7, ref) {\n let {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n unstable_viewTransition\n } = _ref7,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\") ? new URL(currentUrl.protocol + to) : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"<Link to=\\\"\" + to + \"\\\"> contains an invalid URL which will probably break \" + \"when clicked - please update to a valid URL path.\") : void 0;\n }\n }\n }\n // Rendered into <a href> for relative URLs\n let href = useHref(to, {\n relative\n });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n unstable_viewTransition\n });\n function handleClick(event) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n React.createElement(\"a\", _extends({}, rest, {\n href: absoluteHref || href,\n onClick: isExternal || reloadDocument ? onClick : handleClick,\n ref: ref,\n target: target\n }))\n );\n});\nif (process.env.NODE_ENV !== \"production\") {\n Link.displayName = \"Link\";\n}\n/**\n * A `<Link>` wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = /*#__PURE__*/React.forwardRef(function NavLinkWithRef(_ref8, ref) {\n let {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n unstable_viewTransition,\n children\n } = _ref8,\n rest = _objectWithoutPropertiesLoose(_ref8, _excluded2);\n let path = useResolvedPath(to, {\n relative: rest.relative\n });\n let location = useLocation();\n let routerState = React.useContext(UNSAFE_DataRouterStateContext);\n let {\n navigator,\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let isTransitioning = routerState != null &&\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useViewTransitionState(path) && unstable_viewTransition === true;\n let toPathname = navigator.encodeLocation ? navigator.encodeLocation(path).pathname : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname = routerState && routerState.navigation && routerState.navigation.location ? routerState.navigation.location.pathname : null;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname ? nextLocationPathname.toLowerCase() : null;\n toPathname = toPathname.toLowerCase();\n }\n if (nextLocationPathname && basename) {\n nextLocationPathname = stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n // If the `to` has a trailing slash, look at that exact spot. Otherwise,\n // we're looking for a slash _after_ what's in `to`. For example:\n //\n // <NavLink to=\"/users\"> and <NavLink to=\"/users/\">\n // both want to look for a / at index 6 to match URL `/users/matt`\n const endSlashPosition = toPathname !== \"/\" && toPathname.endsWith(\"/\") ? toPathname.length - 1 : toPathname.length;\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(endSlashPosition) === \"/\";\n let isPending = nextLocationPathname != null && (nextLocationPathname === toPathname || !end && nextLocationPathname.startsWith(toPathname) && nextLocationPathname.charAt(toPathname.length) === \"/\");\n let renderProps = {\n isActive,\n isPending,\n isTransitioning\n };\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n let className;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null, isPending ? \"pending\" : null, isTransitioning ? \"transitioning\" : null].filter(Boolean).join(\" \");\n }\n let style = typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n return /*#__PURE__*/React.createElement(Link, _extends({}, rest, {\n \"aria-current\": ariaCurrent,\n className: className,\n ref: ref,\n style: style,\n to: to,\n unstable_viewTransition: unstable_viewTransition\n }), typeof children === \"function\" ? children(renderProps) : children);\n});\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n}\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nconst Form = /*#__PURE__*/React.forwardRef((_ref9, forwardedRef) => {\n let {\n fetcherKey,\n navigate,\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n unstable_viewTransition\n } = _ref9,\n props = _objectWithoutPropertiesLoose(_ref9, _excluded3);\n let submit = useSubmit();\n let formAction = useFormAction(action, {\n relative\n });\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let submitHandler = event => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n let submitter = event.nativeEvent.submitter;\n let submitMethod = (submitter == null ? void 0 : submitter.getAttribute(\"formmethod\")) || method;\n submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace,\n state,\n relative,\n preventScrollReset,\n unstable_viewTransition\n });\n };\n return /*#__PURE__*/React.createElement(\"form\", _extends({\n ref: forwardedRef,\n method: formMethod,\n action: formAction,\n onSubmit: reloadDocument ? onSubmit : submitHandler\n }, props));\n});\nif (process.env.NODE_ENV !== \"production\") {\n Form.displayName = \"Form\";\n}\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nfunction ScrollRestoration(_ref10) {\n let {\n getKey,\n storageKey\n } = _ref10;\n useScrollRestoration({\n getKey,\n storageKey\n });\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\nvar DataRouterHook;\n(function (DataRouterHook) {\n DataRouterHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n DataRouterHook[\"UseSubmit\"] = \"useSubmit\";\n DataRouterHook[\"UseSubmitFetcher\"] = \"useSubmitFetcher\";\n DataRouterHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterHook[\"useViewTransitionState\"] = \"useViewTransitionState\";\n})(DataRouterHook || (DataRouterHook = {}));\nvar DataRouterStateHook;\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterStateHook[\"UseFetchers\"] = \"useFetchers\";\n DataRouterStateHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n// Internal hooks\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(UNSAFE_DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(UNSAFE_DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\n// External hooks\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nfunction useLinkClickHandler(to, _temp) {\n let {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition\n } = _temp === void 0 ? {} : _temp;\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, {\n relative\n });\n return React.useCallback(event => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace = replaceProp !== undefined ? replaceProp : createPath(location) === createPath(path);\n navigate(to, {\n replace,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to, preventScrollReset, relative, unstable_viewTransition]);\n}\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nfunction useSearchParams(defaultInit) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(typeof URLSearchParams !== \"undefined\", \"You cannot use the `useSearchParams` hook in a browser that does not \" + \"support the URLSearchParams API. If you need to support Internet \" + \"Explorer 11, we recommend you load a polyfill such as \" + \"https://github.com/ungap/url-search-params.\") : void 0;\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n let location = useLocation();\n let searchParams = React.useMemo(() =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(location.search, hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current), [location.search]);\n let navigate = useNavigate();\n let setSearchParams = React.useCallback((nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit);\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n }, [navigate, searchParams]);\n return [searchParams, setSearchParams];\n}\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\"You are calling submit during the server render. \" + \"Try calling submit within a `useEffect` or callback instead.\");\n }\n}\nlet fetcherId = 0;\nlet getUniqueFetcherId = () => \"__\" + String(++fetcherId) + \"__\";\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nfunction useSubmit() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseSubmit);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let currentRouteId = UNSAFE_useRouteId();\n return React.useCallback(function (target, options) {\n if (options === void 0) {\n options = {};\n }\n validateClientSideSubmission();\n let {\n action,\n method,\n encType,\n formData,\n body\n } = getFormSubmissionInfo(target, basename);\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n router.fetch(key, currentRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n unstable_flushSync: options.unstable_flushSync\n });\n } else {\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n unstable_flushSync: options.unstable_flushSync,\n unstable_viewTransition: options.unstable_viewTransition\n });\n }\n }, [router, basename, currentRouteId]);\n}\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nfunction useFormAction(action, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let routeContext = React.useContext(UNSAFE_RouteContext);\n !routeContext ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFormAction must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = _extends({}, useResolvedPath(action ? action : \".\", {\n relative\n }));\n // If no action was specified, browsers will persist current search params\n // when determining the path, so match that behavior\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to this directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n path.search = location.search;\n // When grabbing search params from the URL, remove any included ?index param\n // since it might not apply to our contextual route. We add it back based\n // on match.route.index below\n let params = new URLSearchParams(path.search);\n if (params.has(\"index\") && params.get(\"index\") === \"\") {\n params.delete(\"index\");\n path.search = params.toString() ? \"?\" + params.toString() : \"\";\n }\n }\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// TODO: (v7) Change the useFetcher generic default from `any` to `unknown`\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nfunction useFetcher(_temp3) {\n var _route$matches;\n let {\n key\n } = _temp3 === void 0 ? {} : _temp3;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseFetcher);\n let state = useDataRouterState(DataRouterStateHook.UseFetcher);\n let fetcherData = React.useContext(FetchersContext);\n let route = React.useContext(UNSAFE_RouteContext);\n let routeId = (_route$matches = route.matches[route.matches.length - 1]) == null ? void 0 : _route$matches.route.id;\n !fetcherData ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a FetchersContext\") : UNSAFE_invariant(false) : void 0;\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n !(routeId != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n // Fetcher key handling\n // OK to call conditionally to feature detect `useId`\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let defaultKey = useIdImpl ? useIdImpl() : \"\";\n let [fetcherKey, setFetcherKey] = React.useState(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n } else if (!fetcherKey) {\n // We will only fall through here when `useId` is not available\n setFetcherKey(getUniqueFetcherId());\n }\n // Registration/cleanup\n React.useEffect(() => {\n router.getFetcher(fetcherKey);\n return () => {\n // Tell the router we've unmounted - if v7_fetcherPersist is enabled this\n // will not delete immediately but instead queue up a delete after the\n // fetcher returns to an `idle` state\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n // Fetcher additions\n let load = React.useCallback((href, opts) => {\n !routeId ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"No routeId available for fetcher.load()\") : UNSAFE_invariant(false) : void 0;\n router.fetch(fetcherKey, routeId, href, opts);\n }, [fetcherKey, routeId, router]);\n let submitImpl = useSubmit();\n let submit = React.useCallback((target, opts) => {\n submitImpl(target, _extends({}, opts, {\n navigate: false,\n fetcherKey\n }));\n }, [fetcherKey, submitImpl]);\n let FetcherForm = React.useMemo(() => {\n let FetcherForm = /*#__PURE__*/React.forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(Form, _extends({}, props, {\n navigate: false,\n fetcherKey: fetcherKey,\n ref: ref\n }));\n });\n if (process.env.NODE_ENV !== \"production\") {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n }, [fetcherKey]);\n // Exposed FetcherWithComponents\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React.useMemo(() => _extends({\n Form: FetcherForm,\n submit,\n load\n }, fetcher, {\n data\n }), [FetcherForm, submit, load, fetcher, data]);\n return fetcherWithComponents;\n}\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nfunction useFetchers() {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return Array.from(state.fetchers.entries()).map(_ref11 => {\n let [key, fetcher] = _ref11;\n return _extends({}, fetcher, {\n key\n });\n });\n}\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions = {};\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration(_temp4) {\n let {\n getKey,\n storageKey\n } = _temp4 === void 0 ? {} : _temp4;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let {\n restoreScrollPosition,\n preventScrollReset\n } = useDataRouterState(DataRouterStateHook.UseScrollRestoration);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n // Save positions on pagehide\n usePageHide(React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY, JSON.stringify(savedScrollPositions));\n } catch (error) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (\" + error + \").\") : void 0;\n }\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches]));\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY);\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename = getKey && basename !== \"/\" ? (location, matches) => getKey( // Strip the basename to match useLocation()\n _extends({}, location, {\n pathname: stripBasename(location.pathname, basename) || location.pathname\n }), matches) : getKey;\n let disableScrollRestoration = router == null ? void 0 : router.enableScrollRestoration(savedScrollPositions, () => window.scrollY, getKeyWithoutBasename);\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(decodeURIComponent(location.hash.slice(1)));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction useBeforeUnload(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt(_ref12) {\n let {\n when,\n message\n } = _ref12;\n let blocker = useBlocker(when);\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n // This timeout is needed to avoid a weird \"race\" on POP navigations\n // between the `window.history` revert navigation and the result of\n // `window.confirm`\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\n/**\n * Return a boolean indicating if there is an active view transition to the\n * given href. You can use this value to render CSS classes or viewTransitionName\n * styles onto your elements\n *\n * @param href The destination href\n * @param [opts.relative] Relative routing type (\"route\" | \"path\")\n */\nfunction useViewTransitionState(to, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let vtContext = React.useContext(ViewTransitionContext);\n !(vtContext != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"`unstable_useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. \" + \"Did you accidentally import `RouterProvider` from `react-router`?\") : UNSAFE_invariant(false) : void 0;\n let {\n basename\n } = useDataRouterContext(DataRouterHook.useViewTransitionState);\n let path = useResolvedPath(to, {\n relative: opts.relative\n });\n if (!vtContext.isTransitioning) {\n return false;\n }\n let currentPath = stripBasename(vtContext.currentLocation.pathname, basename) || vtContext.currentLocation.pathname;\n let nextPath = stripBasename(vtContext.nextLocation.pathname, basename) || vtContext.nextLocation.pathname;\n // Transition is active if we're going to or coming from the indicated\n // destination. This ensures that other PUSH navigations that reverse\n // an indicated transition apply. I.e., on the list view you have:\n //\n // <NavLink to=\"/details/1\" unstable_viewTransition>\n //\n // If you click the breadcrumb back to the list view:\n //\n // <NavLink to=\"/list\" unstable_viewTransition>\n //\n // We should apply the transition because it's indicated as active going\n // from /list -> /details/1 and therefore should be active on the reverse\n // (even though this isn't strictly a POP reverse)\n return matchPath(path.pathname, nextPath) != null || matchPath(path.pathname, currentPath) != null;\n}\n//#endregion\n\nexport { BrowserRouter, Form, HashRouter, Link, NavLink, RouterProvider, ScrollRestoration, FetchersContext as UNSAFE_FetchersContext, ViewTransitionContext as UNSAFE_ViewTransitionContext, useScrollRestoration as UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createSearchParams, HistoryRouter as unstable_HistoryRouter, usePrompt as unstable_usePrompt, useViewTransitionState as unstable_useViewTransitionState, useBeforeUnload, useFetcher, useFetchers, useFormAction, useLinkClickHandler, useSearchParams, useSubmit };\n//# sourceMappingURL=index.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n}).join(\" \");\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Check = createLucideIcon(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\n\nexport { Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Copy = createLucideIcon(\"Copy\", [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n]);\n\nexport { Copy as default };\n//# sourceMappingURL=copy.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Info = createLucideIcon(\"Info\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n]);\n\nexport { Info as default };\n//# sourceMappingURL=info.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Lightbulb = createLucideIcon(\"Lightbulb\", [\n [\n \"path\",\n {\n d: \"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\",\n key: \"1gvzjb\"\n }\n ],\n [\"path\", { d: \"M9 18h6\", key: \"x1upvd\" }],\n [\"path\", { d: \"M10 22h4\", key: \"ceow96\" }]\n]);\n\nexport { Lightbulb as default };\n//# sourceMappingURL=lightbulb.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ShieldAlert = createLucideIcon(\"ShieldAlert\", [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }]\n]);\n\nexport { ShieldAlert as default };\n//# sourceMappingURL=shield-alert.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TriangleAlert = createLucideIcon(\"TriangleAlert\", [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nfunction createClassUtils(config) {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n function getClassGroupId(className) {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n }\n function getConflictingClassGroupIds(classGroupId, hasPostfixModifier) {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n }\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n}\nfunction getGroupRecursive(classParts, classPartObject) {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n}\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nfunction getGroupIdForArbitraryProperty(className) {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n}\n/**\n * Exported for testing only\n */\nfunction createClassMap(config) {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n}\nfunction processClassesRecursively(classGroup, classPartObject, classGroupId, theme) {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n}\nfunction getPart(classPartObject, path) {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n}\nfunction isThemeGetter(func) {\n return func.isThemeGetter;\n}\nfunction getPrefixedClassGroupEntries(classGroupEntries, prefix) {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n}\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nfunction createLruCache(maxCacheSize) {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n function update(key, value) {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n }\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n}\nconst IMPORTANT_MODIFIER = '!';\nfunction createSplitModifiers(config) {\n const separator = config.separator;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // splitModifiers inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n return function splitModifiers(className) {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n}\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nfunction sortModifiers(modifiers) {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n}\nfunction createConfigUtils(config) {\n return {\n cache: createLruCache(config.cacheSize),\n splitModifiers: createSplitModifiers(config),\n ...createClassUtils(config)\n };\n}\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nfunction mergeClassList(classList, configUtils) {\n const {\n splitModifiers,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = new Set();\n return classList.trim().split(SPLIT_CLASSES_REGEX).map(originalClassName => {\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = splitModifiers(originalClassName);\n let classGroupId = getClassGroupId(maybePostfixModifierPosition ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n if (!classGroupId) {\n if (!maybePostfixModifierPosition) {\n return {\n isTailwindClass: false,\n originalClassName\n };\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n return {\n isTailwindClass: false,\n originalClassName\n };\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n return {\n isTailwindClass: true,\n modifierId,\n classGroupId,\n originalClassName,\n hasPostfixModifier\n };\n }).reverse()\n // Last class in conflict wins, so we need to filter conflicting classes in reverse order.\n .filter(parsed => {\n if (!parsed.isTailwindClass) {\n return true;\n }\n const {\n modifierId,\n classGroupId,\n hasPostfixModifier\n } = parsed;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.has(classId)) {\n return false;\n }\n classGroupsInConflict.add(classId);\n getConflictingClassGroupIds(classGroupId, hasPostfixModifier).forEach(group => classGroupsInConflict.add(modifierId + group));\n return true;\n }).reverse().map(parsed => parsed.originalClassName).join(' ');\n}\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction toValue(mix) {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nfunction fromTheme(key) {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n}\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nfunction isLength(value) {\n return isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\n}\nfunction isArbitraryLength(value) {\n return getIsArbitraryValue(value, 'length', isLengthOnly);\n}\nfunction isNumber(value) {\n return Boolean(value) && !Number.isNaN(Number(value));\n}\nfunction isArbitraryNumber(value) {\n return getIsArbitraryValue(value, 'number', isNumber);\n}\nfunction isInteger(value) {\n return Boolean(value) && Number.isInteger(Number(value));\n}\nfunction isPercent(value) {\n return value.endsWith('%') && isNumber(value.slice(0, -1));\n}\nfunction isArbitraryValue(value) {\n return arbitraryValueRegex.test(value);\n}\nfunction isTshirtSize(value) {\n return tshirtUnitRegex.test(value);\n}\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nfunction isArbitrarySize(value) {\n return getIsArbitraryValue(value, sizeLabels, isNever);\n}\nfunction isArbitraryPosition(value) {\n return getIsArbitraryValue(value, 'position', isNever);\n}\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nfunction isArbitraryImage(value) {\n return getIsArbitraryValue(value, imageLabels, isImage);\n}\nfunction isArbitraryShadow(value) {\n return getIsArbitraryValue(value, '', isShadow);\n}\nfunction isAny() {\n return true;\n}\nfunction getIsArbitraryValue(value, label, testValue) {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n}\nfunction isLengthOnly(value) {\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n return lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\n}\nfunction isNever() {\n return false;\n}\nfunction isShadow(value) {\n return shadowRegex.test(value);\n}\nfunction isImage(value) {\n return imageRegex.test(value);\n}\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nfunction getDefaultConfig() {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumber = () => [isNumber, isArbitraryNumber];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumber(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumber(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumber(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumber(),\n scale: getNumber(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n}\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nfunction mergeConfigs(baseConfig, {\n cacheSize,\n prefix,\n separator,\n extend = {},\n override = {}\n}) {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n}\nfunction overrideProperty(baseObject, overrideKey, overrideValue) {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n}\nfunction overrideConfigProperties(baseObject, overrideObject) {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n}\nfunction mergeConfigProperties(baseObject, mergeObject) {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n}\nfunction extendTailwindMerge(configExtension, ...createConfig) {\n return typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\n}\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import {\n AlertTriangleIcon,\n InfoIcon,\n LightbulbIcon,\n ShieldAlertIcon,\n} from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst stylesMap = {\n note: {\n border: \"border-gray-300 dark:border-zinc-800\",\n bg: \"bg-gray-100 dark:bg-zinc-800/50\",\n iconColor: \"text-gray-600 dark:text-zinc-300\",\n titleColor: \"text-gray-600 dark:text-zinc-300\",\n textColor: \"text-gray-600 dark:text-zinc-300\",\n Icon: InfoIcon,\n },\n tip: {\n border: \"border-green-500 dark:border-green-800\",\n bg: \"bg-green-200/25 dark:bg-green-950/70\",\n iconColor: \"text-green-600 dark:text-green-200\",\n titleColor: \"text-green-700 dark:text-green-200\",\n textColor: \"text-green-600 dark:text-green-50\",\n Icon: LightbulbIcon,\n },\n info: {\n border: \"border-blue-400 dark:border-blue-900/60\",\n bg: \"bg-blue-50 dark:bg-blue-950/40\",\n iconColor: \"text-blue-400 dark:text-blue-200\",\n titleColor: \"text-blue-700 dark:text-blue-200\",\n textColor: \"text-blue-600 dark:text-blue-100\",\n Icon: InfoIcon,\n },\n caution: {\n border: \"border-yellow-400 dark:border-yellow-400/25\",\n bg: \"bg-yellow-100/60 dark:bg-yellow-400/10\",\n iconColor: \"text-yellow-500 dark:text-yellow-300\",\n titleColor: \"text-yellow-600 dark:text-yellow-300\",\n textColor: \"text-yellow-700 dark:text-yellow-200\",\n Icon: AlertTriangleIcon,\n },\n danger: {\n border: \"border-rose-400 dark:border-rose-800\",\n bg: \"bg-rose-50 dark:bg-rose-950/40\",\n iconColor: \"text-rose-400 dark:text-rose-300\",\n titleColor: \"text-rose-800 dark:text-rose-300\",\n textColor: \"text-rose-700 dark:text-rose-100\",\n Icon: ShieldAlertIcon,\n },\n};\n\ntype CalloutProps = {\n type: keyof typeof stylesMap;\n title?: string;\n children: ReactNode;\n className?: string;\n};\n\nexport const Callout = ({ type, children, title, className }: CalloutProps) => {\n const { border, bg, iconColor, titleColor, textColor, Icon } =\n stylesMap[type];\n\n return (\n <div\n className={cn(\n \"not-prose grid grid-cols-[min-content_1fr] grid-rows-[fit-content_1fr] gap-x-4 gap-y-2 text-md rounded-md border p-4\",\n \"[&_a]:underline [&_a]:decoration-current [&_a]:decoration-from-font [&_a]:underline-offset-4 hover:[&_a]:decoration-1\",\n \"[&_code]:!bg-gray-50 [&_code]:dark:!bg-gray-800 [&_code]:!border-none\",\n title && \"items-center\",\n border,\n bg,\n className,\n )}\n >\n <Icon\n className={cn(!title && \"mt-1 translate-y-px\", iconColor)}\n size={20}\n aria-hidden=\"true\"\n />\n {title && <h3 className={cn(\"font-medium\", titleColor)}>{title}</h3>}\n <div className={cn(\"col-start-2\", !title && \"row-start-1\", textColor)}>\n {children}\n </div>\n </div>\n );\n};\n","import {\n type ReactNode,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\ntype AnchorContextType = {\n activeAnchor?: string;\n setActiveAnchor: (anchor: string) => void;\n observe: (element: HTMLElement | null) => void;\n unobserve: (element: HTMLElement | null) => void;\n};\n\nconst ViewportAnchorContext = createContext<AnchorContextType | undefined>(\n undefined,\n);\n\nexport const useViewportAnchor = () => {\n const context = useContext(ViewportAnchorContext);\n\n if (!context) {\n throw new Error(\n \"useViewportAnchor must be used within a CurrentAnchorProvider\",\n );\n }\n\n return context;\n};\n\nexport const useRegisterAnchorElement = () => {\n const elementRef = useRef<HTMLElement | null>(null);\n\n const { observe, unobserve } = useViewportAnchor();\n\n useEffect(() => {\n const element = elementRef.current;\n\n if (!element) return;\n\n observe(element);\n\n return () => unobserve(element);\n }, [observe, unobserve]);\n\n const setRef = useCallback((el: HTMLElement | null) => {\n if (!el) return;\n elementRef.current = el;\n }, []);\n\n return { ref: setRef };\n};\n\nexport const ViewportAnchorProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const [activeAnchor, setActiveAnchor] = useState(\"\");\n const observerRef = useRef<IntersectionObserver | null>(null);\n const registeredElements = useRef(new Set<HTMLElement>());\n\n useEffect(() => {\n observerRef.current = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting && entry.target.id) {\n setActiveAnchor(entry.target.id);\n }\n }\n },\n {\n // 115px is the height of the sticky header\n // see --header-height in `main.css`\n rootMargin: \"115px 0px -80% 0px\",\n threshold: 0.75,\n },\n );\n\n return () => observerRef.current?.disconnect();\n }, []);\n\n useEffect(() => {\n const elements = registeredElements.current;\n const handleScroll = () => {\n const hasReachedTop = window.scrollY === 0;\n const hasReachedBottom =\n window.innerHeight + window.scrollY >= document.body.scrollHeight;\n\n if (hasReachedTop) {\n // reset the active anchor when we reach the top\n setActiveAnchor(\"\");\n } else if (hasReachedBottom) {\n requestIdleCallback(() => {\n // set the last anchor when we reach the bottom\n const lastItem = Array.from(elements).pop();\n setActiveAnchor(lastItem?.id ?? \"\");\n });\n }\n };\n\n document.addEventListener(\"scroll\", handleScroll);\n\n return () => {\n elements.clear();\n document.removeEventListener(\"scroll\", handleScroll);\n };\n }, []);\n\n const observeFns = useMemo(() => {\n return {\n observe: (element: HTMLElement | null) => {\n if (!element || !observerRef.current) return;\n registeredElements.current.add(element);\n observerRef.current.observe(element);\n },\n unobserve: (element: HTMLElement | null) => {\n if (!element || !observerRef.current) return;\n registeredElements.current.delete(element);\n observerRef.current.unobserve(element);\n },\n };\n }, []);\n\n const value = useMemo(\n () => ({ activeAnchor, setActiveAnchor, ...observeFns }),\n [activeAnchor, setActiveAnchor, observeFns],\n );\n\n return (\n <ViewportAnchorContext.Provider value={value}>\n {children}\n </ViewportAnchorContext.Provider>\n );\n};\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","import React, { type ReactNode } from \"react\";\nimport { useRegisterAnchorElement } from \"./context/ViewportAnchorContext.js\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nconst heading = cva(\"group relative\", {\n variants: {\n level: {\n 6: \"text-md\",\n 5: \"text-lg\",\n 4: \"text-xl\",\n 3: \"text-xl font-semibold\",\n 2: \"text-2xl font-bold\",\n 1: \"text-4xl font-extrabold\",\n },\n },\n defaultVariants: {\n level: 1,\n },\n});\n\nconst getComponent = (level: number) => {\n switch (level) {\n case 1:\n return \"h1\";\n case 2:\n return \"h2\";\n case 3:\n return \"h3\";\n case 4:\n return \"h4\";\n case 5:\n return \"h5\";\n case 6:\n return \"h6\";\n default:\n return \"h1\";\n }\n};\n\nexport interface HeadingProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof heading> {\n children: ReactNode;\n className?: string;\n id?: string;\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n registerSidebarAnchor?: boolean;\n}\n\nexport const Heading: React.FC<HeadingProps> = ({\n level,\n children,\n id,\n className,\n registerSidebarAnchor,\n}) => {\n const Component = getComponent(level ?? 1);\n const { ref } = useRegisterAnchorElement();\n\n return (\n <Component\n className={heading({ className, level })}\n ref={registerSidebarAnchor ? ref : undefined}\n id={id}\n >\n {id && (\n <a\n href={`#${id}`}\n className=\"no-underline absolute text-primary -left-[0.8em] pr-2.5 opacity-0 group-hover:opacity-50 hover:!opacity-100 transition-opacity duration-200\"\n aria-label={`Link to ${id}`}\n >\n #\n </a>\n )}\n {children}\n </Component>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nexport const InlineCode = ({\n className,\n children,\n}: {\n className?: string;\n children: ReactNode;\n}) => (\n <code\n className={cn(\n className,\n \"font-mono border border-border p-1 py-0.5 rounded bg-border/50 dark:bg-border/70 whitespace-nowrap\",\n )}\n >\n {children}\n </code>\n);\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\nvar require_prism = __commonJS({\n \"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\"(exports, module) {\n var Prism2 = function() {\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0;\n var plainTextGrammar = {};\n var _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/\\u00a0/g, \" \");\n }\n },\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function(o) {\n return Object.prototype.toString.call(o).slice(8, -1);\n },\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function(obj) {\n if (!obj[\"__id\"]) {\n Object.defineProperty(obj, \"__id\", { value: ++uniqueId });\n }\n return obj[\"__id\"];\n },\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n switch (_.util.type(o)) {\n case \"Object\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = /** @type {Record<string, any>} */\n {};\n visited[id] = clone;\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n return (\n /** @type {any} */\n clone\n );\n case \"Array\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = [];\n visited[id] = clone;\n /** @type {Array} */\n /** @type {any} */\n o.forEach(function(v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n default:\n return o;\n }\n },\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function(element) {\n while (element) {\n var m = lang.exec(element.className);\n if (m) {\n return m[1].toLowerCase();\n }\n element = element.parentElement;\n }\n return \"none\";\n },\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function(element, language) {\n element.className = element.className.replace(RegExp(lang, \"gi\"), \"\");\n element.classList.add(\"language-\" + language);\n },\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function(element, className, defaultActivation) {\n var no = \"no-\" + className;\n while (element) {\n var classList = element.classList;\n if (classList.contains(className)) {\n return true;\n }\n if (classList.contains(no)) {\n return false;\n }\n element = element.parentElement;\n }\n return !!defaultActivation;\n }\n },\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function(id, redef) {\n var lang2 = _.util.clone(_.languages[id]);\n for (var key in redef) {\n lang2[key] = redef[key];\n }\n return lang2;\n },\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function(inside, before, insert, root) {\n root = root || /** @type {any} */\n _.languages;\n var grammar = root[inside];\n var ret = {};\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken];\n }\n }\n }\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token];\n }\n }\n }\n var old = root[inside];\n root[inside] = ret;\n _.languages.DFS(_.languages, function(key, value) {\n if (value === old && key != inside) {\n this[key] = ret;\n }\n });\n return ret;\n },\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {};\n var objId = _.util.objId;\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i);\n var property = o[i];\n var propertyType = _.util.type(property);\n if (propertyType === \"Object\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, null, visited);\n } else if (propertyType === \"Array\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, i, visited);\n }\n }\n }\n }\n },\n plugins: {},\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function(text, grammar, language) {\n var env = {\n code: text,\n grammar,\n language\n };\n _.hooks.run(\"before-tokenize\", env);\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.');\n }\n env.tokens = _.tokenize(env.code, env.grammar);\n _.hooks.run(\"after-tokenize\", env);\n return Token.stringify(_.util.encode(env.tokens), env.language);\n },\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function(text, grammar) {\n var rest = grammar.rest;\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token];\n }\n delete grammar.rest;\n }\n var tokenList = new LinkedList();\n addAfter(tokenList, tokenList.head, text);\n matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n return toArray(tokenList);\n },\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function(name, callback) {\n var hooks2 = _.hooks.all;\n hooks2[name] = hooks2[name] || [];\n hooks2[name].push(callback);\n },\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function(name, env) {\n var callbacks = _.hooks.all[name];\n if (!callbacks || !callbacks.length) {\n return;\n }\n for (var i = 0, callback; callback = callbacks[i++]; ) {\n callback(env);\n }\n }\n },\n Token\n };\n function Token(type, content, alias, matchedStr) {\n this.type = type;\n this.content = content;\n this.alias = alias;\n this.length = (matchedStr || \"\").length | 0;\n }\n Token.stringify = function stringify(o, language) {\n if (typeof o == \"string\") {\n return o;\n }\n if (Array.isArray(o)) {\n var s = \"\";\n o.forEach(function(e) {\n s += stringify(e, language);\n });\n return s;\n }\n var env = {\n type: o.type,\n content: stringify(o.content, language),\n tag: \"span\",\n classes: [\"token\", o.type],\n attributes: {},\n language\n };\n var aliases = o.alias;\n if (aliases) {\n if (Array.isArray(aliases)) {\n Array.prototype.push.apply(env.classes, aliases);\n } else {\n env.classes.push(aliases);\n }\n }\n _.hooks.run(\"wrap\", env);\n var attributes = \"\";\n for (var name in env.attributes) {\n attributes += \" \" + name + '=\"' + (env.attributes[name] || \"\").replace(/\"/g, \"&quot;\") + '\"';\n }\n return \"<\" + env.tag + ' class=\"' + env.classes.join(\" \") + '\"' + attributes + \">\" + env.content + \"</\" + env.tag + \">\";\n };\n function matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos;\n var match = pattern.exec(text);\n if (match && lookbehind && match[1]) {\n var lookbehindLength = match[1].length;\n match.index += lookbehindLength;\n match[0] = match[0].slice(lookbehindLength);\n }\n return match;\n }\n function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue;\n }\n var patterns = grammar[token];\n patterns = Array.isArray(patterns) ? patterns : [patterns];\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + \",\" + j) {\n return;\n }\n var patternObj = patterns[j];\n var inside = patternObj.inside;\n var lookbehind = !!patternObj.lookbehind;\n var greedy = !!patternObj.greedy;\n var alias = patternObj.alias;\n if (greedy && !patternObj.pattern.global) {\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + \"g\");\n }\n var pattern = patternObj.pattern || patternObj;\n for (var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n if (rematch && pos >= rematch.reach) {\n break;\n }\n var str = currentNode.value;\n if (tokenList.length > text.length) {\n return;\n }\n if (str instanceof Token) {\n continue;\n }\n var removeCount = 1;\n var match;\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind);\n if (!match || match.index >= text.length) {\n break;\n }\n var from = match.index;\n var to = match.index + match[0].length;\n var p = pos;\n p += currentNode.value.length;\n while (from >= p) {\n currentNode = currentNode.next;\n p += currentNode.value.length;\n }\n p -= currentNode.value.length;\n pos = p;\n if (currentNode.value instanceof Token) {\n continue;\n }\n for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === \"string\"); k = k.next) {\n removeCount++;\n p += k.value.length;\n }\n removeCount--;\n str = text.slice(pos, p);\n match.index -= pos;\n } else {\n match = matchPattern(pattern, 0, str, lookbehind);\n if (!match) {\n continue;\n }\n }\n var from = match.index;\n var matchStr = match[0];\n var before = str.slice(0, from);\n var after = str.slice(from + matchStr.length);\n var reach = pos + str.length;\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach;\n }\n var removeFrom = currentNode.prev;\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before);\n pos += before.length;\n }\n removeRange(tokenList, removeFrom, removeCount);\n var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n currentNode = addAfter(tokenList, removeFrom, wrapped);\n if (after) {\n addAfter(tokenList, currentNode, after);\n }\n if (removeCount > 1) {\n var nestedRematch = {\n cause: token + \",\" + j,\n reach\n };\n matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach;\n }\n }\n }\n }\n }\n }\n function LinkedList() {\n var head = { value: null, prev: null, next: null };\n var tail = { value: null, prev: head, next: null };\n head.next = tail;\n this.head = head;\n this.tail = tail;\n this.length = 0;\n }\n function addAfter(list, node, value) {\n var next = node.next;\n var newNode = { value, prev: node, next };\n node.next = newNode;\n next.prev = newNode;\n list.length++;\n return newNode;\n }\n function removeRange(list, node, count) {\n var next = node.next;\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next;\n }\n node.next = next;\n next.prev = node;\n list.length -= i;\n }\n function toArray(list) {\n var array = [];\n var node = list.head.next;\n while (node !== list.tail) {\n array.push(node.value);\n node = node.next;\n }\n return array;\n }\n return _;\n }();\n module.exports = Prism2;\n Prism2.default = Prism2;\n }\n});\n\n// src/prism-langs.ts\nvar Prism = __toESM(require_prism());\nPrism.languages.markup = { comment: { pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/, greedy: true }, prolog: { pattern: /<\\?[\\s\\S]+?\\?>/, greedy: true }, doctype: { pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i, greedy: true, inside: { \"internal-subset\": { pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/, lookbehind: true, greedy: true, inside: null }, string: { pattern: /\"[^\"]*\"|'[^']*'/, greedy: true }, punctuation: /^<!|>$|[[\\]]/, \"doctype-tag\": /^DOCTYPE/i, name: /[^\\s<>'\"]+/ } }, cdata: { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, greedy: true }, tag: { pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/, greedy: true, inside: { tag: { pattern: /^<\\/?[^\\s>\\/]+/, inside: { punctuation: /^<\\/?/, namespace: /^[^\\s>\\/:]+:/ } }, \"special-attr\": [], \"attr-value\": { pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/, inside: { punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, { pattern: /^(\\s*)[\"']|[\"']$/, lookbehind: true }] } }, punctuation: /\\/?>/, \"attr-name\": { pattern: /[^\\s>\\/]+/, inside: { namespace: /^[^\\s>\\/:]+:/ } } } }, entity: [{ pattern: /&[\\da-z]{1,8};/i, alias: \"named-entity\" }, /&#x?[\\da-f]{1,8};/i] }, Prism.languages.markup.tag.inside[\"attr-value\"].inside.entity = Prism.languages.markup.entity, Prism.languages.markup.doctype.inside[\"internal-subset\"].inside = Prism.languages.markup, Prism.hooks.add(\"wrap\", function(e) {\n \"entity\" === e.type && (e.attributes.title = e.content.replace(/&amp;/, \"&\"));\n}), Object.defineProperty(Prism.languages.markup.tag, \"addInlined\", { value: function(e, n) {\n var t = {}, t = (t[\"language-\" + n] = { pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i, lookbehind: true, inside: Prism.languages[n] }, t.cdata = /^<!\\[CDATA\\[|\\]\\]>$/i, { \"included-cdata\": { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, inside: t } }), n = (t[\"language-\" + n] = { pattern: /[\\s\\S]+/, inside: Prism.languages[n] }, {});\n n[e] = { pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function() {\n return e;\n }), \"i\"), lookbehind: true, greedy: true, inside: t }, Prism.languages.insertBefore(\"markup\", \"cdata\", n);\n} }), Object.defineProperty(Prism.languages.markup.tag, \"addAttribute\", { value: function(e, n) {\n Prism.languages.markup.tag.inside[\"special-attr\"].push({ pattern: RegExp(/(^|[\"'\\s])/.source + \"(?:\" + e + \")\" + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source, \"i\"), lookbehind: true, inside: { \"attr-name\": /^[^\\s=]+/, \"attr-value\": { pattern: /=[\\s\\S]+/, inside: { value: { pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/, lookbehind: true, alias: [n, \"language-\" + n], inside: Prism.languages[n] }, punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, /\"|'/] } } } });\n} }), Prism.languages.html = Prism.languages.markup, Prism.languages.mathml = Prism.languages.markup, Prism.languages.svg = Prism.languages.markup, Prism.languages.xml = Prism.languages.extend(\"markup\", {}), Prism.languages.ssml = Prism.languages.xml, Prism.languages.atom = Prism.languages.xml, Prism.languages.rss = Prism.languages.xml, function(e) {\n var n = { pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/, alias: \"escape\" }, t = /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/, a = \"(?:[^\\\\\\\\-]|\" + t.source + \")\", a = RegExp(a + \"-\" + a), r = { pattern: /(<|')[^<>']+(?=[>']$)/, lookbehind: true, alias: \"variable\" };\n e.languages.regex = { \"char-class\": { pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/, lookbehind: true, inside: { \"char-class-negation\": { pattern: /(^\\[)\\^/, lookbehind: true, alias: \"operator\" }, \"char-class-punctuation\": { pattern: /^\\[|\\]$/, alias: \"punctuation\" }, range: { pattern: a, inside: { escape: t, \"range-punctuation\": { pattern: /-/, alias: \"operator\" } } }, \"special-escape\": n, \"char-set\": { pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, escape: t } }, \"special-escape\": n, \"char-set\": { pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, backreference: [{ pattern: /\\\\(?![123][0-7]{2})[1-9]/, alias: \"keyword\" }, { pattern: /\\\\k<[^<>']+>/, alias: \"keyword\", inside: { \"group-name\": r } }], anchor: { pattern: /[$^]|\\\\[ABbGZz]/, alias: \"function\" }, escape: t, group: [{ pattern: /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/, alias: \"punctuation\", inside: { \"group-name\": r } }, { pattern: /\\)/, alias: \"punctuation\" }], quantifier: { pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/, alias: \"number\" }, alternation: { pattern: /\\|/, alias: \"keyword\" } };\n}(Prism), Prism.languages.clike = { comment: [{ pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, greedy: true }, \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i, lookbehind: true, inside: { punctuation: /[.\\\\]/ } }, keyword: /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/, boolean: /\\b(?:false|true)\\b/, function: /\\b\\w+(?=\\()/, number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i, operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.javascript = Prism.languages.extend(\"clike\", { \"class-name\": [Prism.languages.clike[\"class-name\"], { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/, lookbehind: true }], keyword: [{ pattern: /((?:^|\\})\\s*)catch\\b/, lookbehind: true }, { pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/, lookbehind: true }], function: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/, number: { pattern: RegExp(/(^|[^\\w$])/.source + \"(?:\" + /NaN|Infinity/.source + \"|\" + /0[bB][01]+(?:_[01]+)*n?/.source + \"|\" + /0[oO][0-7]+(?:_[0-7]+)*n?/.source + \"|\" + /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source + \"|\" + /\\d+(?:_\\d+)*n/.source + \"|\" + /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source + \")\" + /(?![\\w$])/.source), lookbehind: true }, operator: /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/ }), Prism.languages.javascript[\"class-name\"][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/, Prism.languages.insertBefore(\"javascript\", \"keyword\", { regex: { pattern: RegExp(/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source + /\\//.source + \"(?:\" + /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source + \"|\" + /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + \")\" + /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source), lookbehind: true, greedy: true, inside: { \"regex-source\": { pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/, lookbehind: true, alias: \"language-regex\", inside: Prism.languages.regex }, \"regex-delimiter\": /^\\/|\\/$/, \"regex-flags\": /^[a-z]+$/ } }, \"function-variable\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/, alias: \"function\" }, parameter: [{ pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/, lookbehind: true, inside: Prism.languages.javascript }], constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/ }), Prism.languages.insertBefore(\"javascript\", \"string\", { hashbang: { pattern: /^#!.*/, greedy: true, alias: \"comment\" }, \"template-string\": { pattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/, lookbehind: true, inside: { \"interpolation-punctuation\": { pattern: /^\\$\\{|\\}$/, alias: \"punctuation\" }, rest: Prism.languages.javascript } }, string: /[\\s\\S]+/ } }, \"string-property\": { pattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m, lookbehind: true, greedy: true, alias: \"property\" } }), Prism.languages.insertBefore(\"javascript\", \"operator\", { \"literal-property\": { pattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m, lookbehind: true, alias: \"property\" } }), Prism.languages.markup && (Prism.languages.markup.tag.addInlined(\"script\", \"javascript\"), Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, \"javascript\")), Prism.languages.js = Prism.languages.javascript, Prism.languages.actionscript = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/, operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/ }), Prism.languages.actionscript[\"class-name\"].alias = \"function\", delete Prism.languages.actionscript.parameter, delete Prism.languages.actionscript[\"literal-property\"], Prism.languages.markup && Prism.languages.insertBefore(\"actionscript\", \"string\", { xml: { pattern: /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/, lookbehind: true, inside: Prism.languages.markup } }), function(e) {\n var n = /#(?!\\{).+/, t = { pattern: /#\\{[^}]+\\}/, alias: \"variable\" };\n e.languages.coffeescript = e.languages.extend(\"javascript\", { comment: n, string: [{ pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/, greedy: true }, { pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/, greedy: true, inside: { interpolation: t } }], keyword: /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/, \"class-member\": { pattern: /@(?!\\d)\\w+/, alias: \"variable\" } }), e.languages.insertBefore(\"coffeescript\", \"comment\", { \"multiline-comment\": { pattern: /###[\\s\\S]+?###/, alias: \"comment\" }, \"block-regex\": { pattern: /\\/{3}[\\s\\S]*?\\/{3}/, alias: \"regex\", inside: { comment: n, interpolation: t } } }), e.languages.insertBefore(\"coffeescript\", \"string\", { \"inline-javascript\": { pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/, inside: { delimiter: { pattern: /^`|`$/, alias: \"punctuation\" }, script: { pattern: /[\\s\\S]+/, alias: \"language-javascript\", inside: e.languages.javascript } } }, \"multiline-string\": [{ pattern: /'''[\\s\\S]*?'''/, greedy: true, alias: \"string\" }, { pattern: /\"\"\"[\\s\\S]*?\"\"\"/, greedy: true, alias: \"string\", inside: { interpolation: t } }] }), e.languages.insertBefore(\"coffeescript\", \"keyword\", { property: /(?!\\d)\\w+(?=\\s*:(?!:))/ }), delete e.languages.coffeescript[\"template-string\"], e.languages.coffee = e.languages.coffeescript;\n}(Prism), function(l) {\n var e = l.languages.javadoclike = { parameter: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m, lookbehind: true }, keyword: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m, lookbehind: true }, punctuation: /[{}]/ };\n Object.defineProperty(e, \"addSupport\", { value: function(e2, o) {\n (e2 = \"string\" == typeof e2 ? [e2] : e2).forEach(function(e3) {\n var n = function(e4) {\n e4.inside || (e4.inside = {}), e4.inside.rest = o;\n }, t = \"doc-comment\";\n if (a = l.languages[e3]) {\n var a, r = a[t];\n if ((r = r ? r : (a = l.languages.insertBefore(e3, \"comment\", { \"doc-comment\": { pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, alias: \"comment\" } }))[t]) instanceof RegExp && (r = a[t] = { pattern: r }), Array.isArray(r))\n for (var s = 0, i = r.length; s < i; s++)\n r[s] instanceof RegExp && (r[s] = { pattern: r[s] }), n(r[s]);\n else\n n(r);\n }\n });\n } }), e.addSupport([\"java\", \"javascript\", \"php\"], e);\n}(Prism), function(e) {\n var n = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/, n = (e.languages.css = { comment: /\\/\\*[\\s\\S]*?\\*\\//, atrule: { pattern: RegExp(\"@[\\\\w-](?:\" + /[^;{\\s\"']|\\s+(?!\\s)/.source + \"|\" + n.source + \")*?\" + /(?:;|(?=\\s*\\{))/.source), inside: { rule: /^@[\\w-]+/, \"selector-function-argument\": { pattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/, lookbehind: true, alias: \"selector\" }, keyword: { pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/, lookbehind: true } } }, url: { pattern: RegExp(\"\\\\burl\\\\((?:\" + n.source + \"|\" + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + \")\\\\)\", \"i\"), greedy: true, inside: { function: /^url/i, punctuation: /^\\(|\\)$/, string: { pattern: RegExp(\"^\" + n.source + \"$\"), alias: \"url\" } } }, selector: { pattern: RegExp(`(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"'\\\\s]|\\\\s+(?![\\\\s{])|` + n.source + \")*(?=\\\\s*\\\\{)\"), lookbehind: true }, string: { pattern: n, greedy: true }, property: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i, lookbehind: true }, important: /!important\\b/i, function: { pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i, lookbehind: true }, punctuation: /[(){};:,]/ }, e.languages.css.atrule.inside.rest = e.languages.css, e.languages.markup);\n n && (n.tag.addInlined(\"style\", \"css\"), n.tag.addAttribute(\"style\", \"css\"));\n}(Prism), function(e) {\n var n = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, n = (e.languages.css.selector = { pattern: e.languages.css.selector.pattern, lookbehind: true, inside: n = { \"pseudo-element\": /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/, \"pseudo-class\": /:[-\\w]+/, class: /\\.[-\\w]+/, id: /#[-\\w]+/, attribute: { pattern: RegExp(`\\\\[(?:[^[\\\\]\"']|` + n.source + \")*\\\\]\"), greedy: true, inside: { punctuation: /^\\[|\\]$/, \"case-sensitivity\": { pattern: /(\\s)[si]$/i, lookbehind: true, alias: \"keyword\" }, namespace: { pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/, lookbehind: true, inside: { punctuation: /\\|$/ } }, \"attr-name\": { pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/, lookbehind: true }, \"attr-value\": [n, { pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/, lookbehind: true }], operator: /[|~*^$]?=/ } }, \"n-th\": [{ pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/, lookbehind: true, inside: { number: /[\\dn]+/, operator: /[+-]/ } }, { pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i, lookbehind: true }], combinator: />|\\+|~|\\|\\|/, punctuation: /[(),]/ } }, e.languages.css.atrule.inside[\"selector-function-argument\"].inside = n, e.languages.insertBefore(\"css\", \"property\", { variable: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i, lookbehind: true } }), { pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/, lookbehind: true }), t = { pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/, lookbehind: true };\n e.languages.insertBefore(\"css\", \"function\", { operator: { pattern: /(\\s)[+\\-*\\/](?=\\s)/, lookbehind: true }, hexcode: { pattern: /\\B#[\\da-f]{3,8}\\b/i, alias: \"color\" }, color: [{ pattern: /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i, lookbehind: true }, { pattern: /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i, inside: { unit: n, number: t, function: /[\\w-]+(?=\\()/, punctuation: /[(),]/ } }], entity: /\\\\[\\da-f]{1,8}/i, unit: n, number: t });\n}(Prism), function(e) {\n var n = /[*&][^\\s[\\]{},]+/, t = /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/, a = \"(?:\" + t.source + \"(?:[ \t]+\" + n.source + \")?|\" + n.source + \"(?:[ \t]+\" + t.source + \")?)\", r = /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g, function() {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/.source;\n }), s = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source;\n function i(e2, n2) {\n n2 = (n2 || \"\").replace(/m/g, \"\") + \"m\";\n var t2 = /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<value>>/g, function() {\n return e2;\n });\n return RegExp(t2, n2);\n }\n e.languages.yaml = { scalar: { pattern: RegExp(/([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(/<<prop>>/g, function() {\n return a;\n })), lookbehind: true, alias: \"string\" }, comment: /#.*/, key: { pattern: RegExp(/((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<key>>/g, function() {\n return \"(?:\" + r + \"|\" + s + \")\";\n })), lookbehind: true, greedy: true, alias: \"atrule\" }, directive: { pattern: /(^[ \\t]*)%.+/m, lookbehind: true, alias: \"important\" }, datetime: { pattern: i(/\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/.source), lookbehind: true, alias: \"number\" }, boolean: { pattern: i(/false|true/.source, \"i\"), lookbehind: true, alias: \"important\" }, null: { pattern: i(/null|~/.source, \"i\"), lookbehind: true, alias: \"important\" }, string: { pattern: i(s), lookbehind: true, greedy: true }, number: { pattern: i(/[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/.source, \"i\"), lookbehind: true }, tag: t, important: n, punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./ }, e.languages.yml = e.languages.yaml;\n}(Prism), function(o) {\n var n = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source;\n function e(e2) {\n return e2 = e2.replace(/<inner>/g, function() {\n return n;\n }), RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + \"(?:\" + e2 + \")\");\n }\n var t = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source, a = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function() {\n return t;\n }), r = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source, l = (o.languages.markdown = o.languages.extend(\"markup\", {}), o.languages.insertBefore(\"markdown\", \"prolog\", { \"front-matter-block\": { pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/, lookbehind: true, greedy: true, inside: { punctuation: /^---|---$/, \"front-matter\": { pattern: /\\S+(?:\\s+\\S+)*/, alias: [\"yaml\", \"language-yaml\"], inside: o.languages.yaml } } }, blockquote: { pattern: /^>(?:[\\t ]*>)*/m, alias: \"punctuation\" }, table: { pattern: RegExp(\"^\" + a + r + \"(?:\" + a + \")*\", \"m\"), inside: { \"table-data-rows\": { pattern: RegExp(\"^(\" + a + r + \")(?:\" + a + \")*$\"), lookbehind: true, inside: { \"table-data\": { pattern: RegExp(t), inside: o.languages.markdown }, punctuation: /\\|/ } }, \"table-line\": { pattern: RegExp(\"^(\" + a + \")\" + r + \"$\"), lookbehind: true, inside: { punctuation: /\\||:?-{3,}:?/ } }, \"table-header-row\": { pattern: RegExp(\"^\" + a + \"$\"), inside: { \"table-header\": { pattern: RegExp(t), alias: \"important\", inside: o.languages.markdown }, punctuation: /\\|/ } } } }, code: [{ pattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/, lookbehind: true, alias: \"keyword\" }, { pattern: /^```[\\s\\S]*?^```$/m, greedy: true, inside: { \"code-block\": { pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m, lookbehind: true }, \"code-language\": { pattern: /^(```).+/, lookbehind: true }, punctuation: /```/ } }], title: [{ pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m, alias: \"important\", inside: { punctuation: /==+$|--+$/ } }, { pattern: /(^\\s*)#.+/m, lookbehind: true, alias: \"important\", inside: { punctuation: /^#+|#+$/ } }], hr: { pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m, lookbehind: true, alias: \"punctuation\" }, list: { pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m, lookbehind: true, alias: \"punctuation\" }, \"url-reference\": { pattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/, inside: { variable: { pattern: /^(!?\\[)[^\\]]+/, lookbehind: true }, string: /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/, punctuation: /^[\\[\\]!:]|[<>]/ }, alias: \"url\" }, bold: { pattern: e(/\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^..)[\\s\\S]+(?=..$)/, lookbehind: true, inside: {} }, punctuation: /\\*\\*|__/ } }, italic: { pattern: e(/\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^.)[\\s\\S]+(?=.$)/, lookbehind: true, inside: {} }, punctuation: /[*_]/ } }, strike: { pattern: e(/(~~?)(?:(?!~)<inner>)+\\2/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^~~?)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: {} }, punctuation: /~~?/ } }, \"code-snippet\": { pattern: /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/, lookbehind: true, greedy: true, alias: [\"code\", \"keyword\"] }, url: { pattern: e(/!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/.source), lookbehind: true, greedy: true, inside: { operator: /^!/, content: { pattern: /(^\\[)[^\\]]+(?=\\])/, lookbehind: true, inside: {} }, variable: { pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/, lookbehind: true }, url: { pattern: /(^\\]\\()[^\\s)]+/, lookbehind: true }, string: { pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/, lookbehind: true } } } }), [\"url\", \"bold\", \"italic\", \"strike\"].forEach(function(n2) {\n [\"url\", \"bold\", \"italic\", \"strike\", \"code-snippet\"].forEach(function(e2) {\n n2 !== e2 && (o.languages.markdown[n2].inside.content.inside[e2] = o.languages.markdown[e2]);\n });\n }), o.hooks.add(\"after-tokenize\", function(e2) {\n \"markdown\" !== e2.language && \"md\" !== e2.language || !function e3(n2) {\n if (n2 && \"string\" != typeof n2)\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r2, s = n2[t2];\n \"code\" !== s.type ? e3(s.content) : (r2 = s.content[1], s = s.content[3], r2 && s && \"code-language\" === r2.type && \"code-block\" === s.type && \"string\" == typeof r2.content && (r2 = r2.content.replace(/\\b#/g, \"sharp\").replace(/\\b\\+\\+/g, \"pp\"), r2 = \"language-\" + (r2 = (/[a-z][\\w-]*/i.exec(r2) || [\"\"])[0].toLowerCase()), s.alias ? \"string\" == typeof s.alias ? s.alias = [s.alias, r2] : s.alias.push(r2) : s.alias = [r2]));\n }\n }(e2.tokens);\n }), o.hooks.add(\"wrap\", function(e2) {\n if (\"code-block\" === e2.type) {\n for (var n2 = \"\", t2 = 0, a2 = e2.classes.length; t2 < a2; t2++) {\n var r2 = e2.classes[t2], r2 = /language-(.+)/.exec(r2);\n if (r2) {\n n2 = r2[1];\n break;\n }\n }\n var s, i = o.languages[n2];\n i ? e2.content = o.highlight(function(e3) {\n e3 = e3.replace(l, \"\");\n return e3 = e3.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function(e4, n3) {\n var t3;\n return \"#\" === (n3 = n3.toLowerCase())[0] ? (t3 = \"x\" === n3[1] ? parseInt(n3.slice(2), 16) : Number(n3.slice(1)), c(t3)) : u[n3] || e4;\n });\n }(e2.content), i, n2) : n2 && \"none\" !== n2 && o.plugins.autoloader && (s = \"md-\" + (/* @__PURE__ */ new Date()).valueOf() + \"-\" + Math.floor(1e16 * Math.random()), e2.attributes.id = s, o.plugins.autoloader.loadLanguages(n2, function() {\n var e3 = document.getElementById(s);\n e3 && (e3.innerHTML = o.highlight(e3.textContent, o.languages[n2], n2));\n }));\n }\n }), RegExp(o.languages.markup.tag.pattern.source, \"gi\")), u = { amp: \"&\", lt: \"<\", gt: \">\", quot: '\"' }, c = String.fromCodePoint || String.fromCharCode;\n o.languages.md = o.languages.markdown;\n}(Prism), Prism.languages.graphql = { comment: /#.*/, description: { pattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i, greedy: true, alias: \"string\", inside: { \"language-markdown\": { pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: Prism.languages.markdown } } }, string: { pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/, greedy: true }, number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i, boolean: /\\b(?:false|true)\\b/, variable: /\\$[a-z_]\\w*/i, directive: { pattern: /@[a-z_]\\w*/i, alias: \"function\" }, \"attr-name\": { pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i, greedy: true }, \"atom-input\": { pattern: /\\b[A-Z]\\w*Input\\b/, alias: \"class-name\" }, scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/, constant: /\\b[A-Z][A-Z_\\d]*\\b/, \"class-name\": { pattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/, lookbehind: true }, fragment: { pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-mutation\": { pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-query\": { pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, keyword: /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/, operator: /[!=|&]|\\.{3}/, \"property-query\": /\\w+(?=\\s*\\()/, object: /\\w+(?=\\s*\\{)/, punctuation: /[!(){}\\[\\]:=,]/, property: /\\w+/ }, Prism.hooks.add(\"after-tokenize\", function(e) {\n if (\"graphql\" === e.language)\n for (var i = e.tokens.filter(function(e2) {\n return \"string\" != typeof e2 && \"comment\" !== e2.type && \"scalar\" !== e2.type;\n }), o = 0; o < i.length; ) {\n var n = i[o++];\n if (\"keyword\" === n.type && \"mutation\" === n.content) {\n var t = [];\n if (p([\"definition-mutation\", \"punctuation\"]) && \"(\" === c(1).content) {\n o += 2;\n var a = d(/^\\($/, /^\\)$/);\n if (-1 === a)\n continue;\n for (; o < a; o++) {\n var r = c(0);\n \"variable\" === r.type && (g(r, \"variable-input\"), t.push(r.content));\n }\n o = a + 1;\n }\n if (p([\"punctuation\", \"property-query\"]) && \"{\" === c(0).content && (o++, g(c(0), \"property-mutation\"), 0 < t.length)) {\n var s = d(/^\\{$/, /^\\}$/);\n if (-1 !== s)\n for (var l = o; l < s; l++) {\n var u = i[l];\n \"variable\" === u.type && 0 <= t.indexOf(u.content) && g(u, \"variable-input\");\n }\n }\n }\n }\n function c(e2) {\n return i[o + e2];\n }\n function p(e2, n2) {\n n2 = n2 || 0;\n for (var t2 = 0; t2 < e2.length; t2++) {\n var a2 = c(t2 + n2);\n if (!a2 || a2.type !== e2[t2])\n return;\n }\n return 1;\n }\n function d(e2, n2) {\n for (var t2 = 1, a2 = o; a2 < i.length; a2++) {\n var r2 = i[a2], s2 = r2.content;\n if (\"punctuation\" === r2.type && \"string\" == typeof s2) {\n if (e2.test(s2))\n t2++;\n else if (n2.test(s2) && 0 === --t2)\n return a2;\n }\n }\n return -1;\n }\n function g(e2, n2) {\n var t2 = e2.alias;\n t2 ? Array.isArray(t2) || (e2.alias = t2 = [t2]) : e2.alias = t2 = [], t2.push(n2);\n }\n}), Prism.languages.sql = { comment: { pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/, lookbehind: true }, variable: [{ pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/, greedy: true }, /@[\\w.$]+/], string: { pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/, greedy: true, lookbehind: true }, identifier: { pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/, greedy: true, lookbehind: true, inside: { punctuation: /^`|`$/ } }, function: /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i, keyword: /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i, boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i, number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i, operator: /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i, punctuation: /[;[\\]()`,.]/ }, function(b) {\n var e = b.languages.javascript[\"template-string\"], t = e.pattern.source, m = e.inside.interpolation, f = m.inside[\"interpolation-punctuation\"], s = m.pattern.source;\n function n(e2, n2) {\n if (b.languages[e2])\n return { pattern: RegExp(\"((?:\" + n2 + \")\\\\s*)\" + t), lookbehind: true, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, \"embedded-code\": { pattern: /[\\s\\S]+/, alias: e2 } } };\n }\n function h(e2, n2, t2) {\n e2 = { code: e2, grammar: n2, language: t2 };\n return b.hooks.run(\"before-tokenize\", e2), e2.tokens = b.tokenize(e2.code, e2.grammar), b.hooks.run(\"after-tokenize\", e2), e2.tokens;\n }\n function l(a2, e2, r) {\n var n2 = b.tokenize(a2, { interpolation: { pattern: RegExp(s), lookbehind: true } }), p = 0, d = {}, n2 = h(n2.map(function(e3) {\n if (\"string\" == typeof e3)\n return e3;\n for (var n3, t2, e3 = e3.content; -1 !== a2.indexOf((t2 = p++, n3 = \"___\" + r.toUpperCase() + \"_\" + t2 + \"___\")); )\n ;\n return d[n3] = e3, n3;\n }).join(\"\"), e2, r), g = Object.keys(d);\n return p = 0, function e3(n3) {\n for (var t2 = 0; t2 < n3.length; t2++) {\n if (p >= g.length)\n return;\n var a3, r2, s2, i, o, l2, u2, c = n3[t2];\n \"string\" == typeof c || \"string\" == typeof c.content ? (a3 = g[p], -1 !== (u2 = (l2 = \"string\" == typeof c ? c : c.content).indexOf(a3)) && (++p, r2 = l2.substring(0, u2), o = d[a3], s2 = void 0, (i = {})[\"interpolation-punctuation\"] = f, 3 === (i = b.tokenize(o, i)).length && ((s2 = [1, 1]).push.apply(s2, h(i[1], b.languages.javascript, \"javascript\")), i.splice.apply(i, s2)), s2 = new b.Token(\"interpolation\", i, m.alias, o), i = l2.substring(u2 + a3.length), o = [], r2 && o.push(r2), o.push(s2), i && (e3(l2 = [i]), o.push.apply(o, l2)), \"string\" == typeof c ? (n3.splice.apply(n3, [t2, 1].concat(o)), t2 += o.length - 1) : c.content = o)) : (u2 = c.content, Array.isArray(u2) ? e3(u2) : e3([u2]));\n }\n }(n2), new b.Token(r, n2, \"language-\" + r, a2);\n }\n b.languages.javascript[\"template-string\"] = [n(\"css\", /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source), n(\"html\", /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), n(\"svg\", /\\bsvg/.source), n(\"markdown\", /\\b(?:markdown|md)/.source), n(\"graphql\", /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source), n(\"sql\", /\\bsql/.source), e].filter(Boolean);\n var a = { javascript: true, js: true, typescript: true, ts: true, jsx: true, tsx: true };\n function u(e2) {\n return \"string\" == typeof e2 ? e2 : Array.isArray(e2) ? e2.map(u).join(\"\") : u(e2.content);\n }\n b.hooks.add(\"after-tokenize\", function(e2) {\n e2.language in a && !function e3(n2) {\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r, s2, i, o = n2[t2];\n \"string\" != typeof o && (r = o.content, Array.isArray(r) ? \"template-string\" === o.type ? (o = r[1], 3 === r.length && \"string\" != typeof o && \"embedded-code\" === o.type && (s2 = u(o), o = o.alias, o = Array.isArray(o) ? o[0] : o, i = b.languages[o]) && (r[1] = l(s2, i, o))) : e3(r) : \"string\" != typeof r && e3([r]));\n }\n }(e2.tokens);\n });\n}(Prism), function(e) {\n e.languages.typescript = e.languages.extend(\"javascript\", { \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/, lookbehind: true, greedy: true, inside: null }, builtin: /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/ }), e.languages.typescript.keyword.push(/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, /\\btype\\b(?=\\s*(?:[\\{*]|$))/), delete e.languages.typescript.parameter, delete e.languages.typescript[\"literal-property\"];\n var n = e.languages.extend(\"typescript\", {});\n delete n[\"class-name\"], e.languages.typescript[\"class-name\"].inside = n, e.languages.insertBefore(\"typescript\", \"function\", { decorator: { pattern: /@[$\\w\\xA0-\\uFFFF]+/, inside: { at: { pattern: /^@/, alias: \"operator\" }, function: /^[\\s\\S]+/ } }, \"generic-function\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/, greedy: true, inside: { function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: n } } } }), e.languages.ts = e.languages.typescript;\n}(Prism), function(e) {\n var n = e.languages.javascript, t = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source, a = \"(@(?:arg|argument|param|property)\\\\s+(?:\" + t + \"\\\\s+)?)\";\n e.languages.jsdoc = e.languages.extend(\"javadoclike\", { parameter: { pattern: RegExp(a + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source), lookbehind: true, inside: { punctuation: /\\./ } } }), e.languages.insertBefore(\"jsdoc\", \"keyword\", { \"optional-parameter\": { pattern: RegExp(a + /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source), lookbehind: true, inside: { parameter: { pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/, lookbehind: true, inside: { punctuation: /\\./ } }, code: { pattern: /(=)[\\s\\S]*(?=\\]$)/, lookbehind: true, inside: n, alias: \"language-javascript\" }, punctuation: /[=[\\]]/ } }, \"class-name\": [{ pattern: RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(/<TYPE>/g, function() {\n return t;\n })), lookbehind: true, inside: { punctuation: /\\./ } }, { pattern: RegExp(\"(@[a-z]+\\\\s+)\" + t), lookbehind: true, inside: { string: n.string, number: n.number, boolean: n.boolean, keyword: e.languages.typescript.keyword, operator: /=>|\\.\\.\\.|[&|?:*]/, punctuation: /[.,;=<>{}()[\\]]/ } }], example: { pattern: /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/, lookbehind: true, inside: { code: { pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m, lookbehind: true, inside: n, alias: \"language-javascript\" } } } }), e.languages.javadoclike.addSupport(\"javascript\", e.languages.jsdoc);\n}(Prism), function(e) {\n e.languages.flow = e.languages.extend(\"javascript\", {}), e.languages.insertBefore(\"flow\", \"keyword\", { type: [{ pattern: /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\\b/, alias: \"class-name\" }] }), e.languages.flow[\"function-variable\"].pattern = /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i, delete e.languages.flow.parameter, e.languages.insertBefore(\"flow\", \"operator\", { \"flow-punctuation\": { pattern: /\\{\\||\\|\\}/, alias: \"punctuation\" } }), Array.isArray(e.languages.flow.keyword) || (e.languages.flow.keyword = [e.languages.flow.keyword]), e.languages.flow.keyword.unshift({ pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/, lookbehind: true }, { pattern: /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/, lookbehind: true });\n}(Prism), Prism.languages.n4js = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/ }), Prism.languages.insertBefore(\"n4js\", \"constant\", { annotation: { pattern: /@+\\w+/, alias: \"operator\" } }), Prism.languages.n4jsd = Prism.languages.n4js, function(e) {\n function n(e2, n2) {\n return RegExp(e2.replace(/<ID>/g, function() {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source;\n }), n2);\n }\n e.languages.insertBefore(\"javascript\", \"function-variable\", { \"method-variable\": { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript[\"function-variable\"].pattern.source), lookbehind: true, alias: [\"function-variable\", \"method\", \"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"function\", { method: { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript.function.source), lookbehind: true, alias: [\"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"constant\", { \"known-class-name\": [{ pattern: /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/, alias: \"class-name\" }, { pattern: /\\b(?:[A-Z]\\w*)Error\\b/, alias: \"class-name\" }] }), e.languages.insertBefore(\"javascript\", \"keyword\", { imports: { pattern: n(/(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/.source), lookbehind: true, inside: e.languages.javascript }, exports: { pattern: n(/(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/.source), lookbehind: true, inside: e.languages.javascript } }), e.languages.javascript.keyword.unshift({ pattern: /\\b(?:as|default|export|from|import)\\b/, alias: \"module\" }, { pattern: /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/, alias: \"control-flow\" }, { pattern: /\\bnull\\b/, alias: [\"null\", \"nil\"] }, { pattern: /\\bundefined\\b/, alias: \"nil\" }), e.languages.insertBefore(\"javascript\", \"operator\", { spread: { pattern: /\\.{3}/, alias: \"operator\" }, arrow: { pattern: /=>/, alias: \"operator\" } }), e.languages.insertBefore(\"javascript\", \"punctuation\", { \"property-access\": { pattern: n(/(\\.\\s*)#?<ID>/.source), lookbehind: true }, \"maybe-class-name\": { pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/, lookbehind: true }, dom: { pattern: /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/, alias: \"variable\" }, console: { pattern: /\\bconsole(?=\\s*\\.)/, alias: \"class-name\" } });\n for (var t = [\"function\", \"function-variable\", \"method\", \"method-variable\", \"property-access\"], a = 0; a < t.length; a++) {\n var r = t[a], s = e.languages.javascript[r], r = (s = \"RegExp\" === e.util.type(s) ? e.languages.javascript[r] = { pattern: s } : s).inside || {};\n (s.inside = r)[\"maybe-class-name\"] = /^[A-Z][\\s\\S]*/;\n }\n}(Prism), function(s) {\n var e = s.util.clone(s.languages.javascript), t = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source, a = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source, r = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source;\n function n(e2, n2) {\n return e2 = e2.replace(/<S>/g, function() {\n return t;\n }).replace(/<BRACES>/g, function() {\n return a;\n }).replace(/<SPREAD>/g, function() {\n return r;\n }), RegExp(e2, n2);\n }\n r = n(r).source, s.languages.jsx = s.languages.extend(\"markup\", e), s.languages.jsx.tag.pattern = n(/<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/.source), s.languages.jsx.tag.inside.tag.pattern = /^<\\/?[^\\s>\\/]*/, s.languages.jsx.tag.inside[\"attr-value\"].pattern = /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/, s.languages.jsx.tag.inside.tag.inside[\"class-name\"] = /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/, s.languages.jsx.tag.inside.comment = e.comment, s.languages.insertBefore(\"inside\", \"attr-name\", { spread: { pattern: n(/<SPREAD>/.source), inside: s.languages.jsx } }, s.languages.jsx.tag), s.languages.insertBefore(\"inside\", \"special-attr\", { script: { pattern: n(/=<BRACES>/.source), alias: \"language-javascript\", inside: { \"script-punctuation\": { pattern: /^=(?=\\{)/, alias: \"punctuation\" }, rest: s.languages.jsx } } }, s.languages.jsx.tag);\n function i(e2) {\n for (var n2 = [], t2 = 0; t2 < e2.length; t2++) {\n var a2 = e2[t2], r2 = false;\n \"string\" != typeof a2 && (\"tag\" === a2.type && a2.content[0] && \"tag\" === a2.content[0].type ? \"</\" === a2.content[0].content[0].content ? 0 < n2.length && n2[n2.length - 1].tagName === o(a2.content[0].content[1]) && n2.pop() : \"/>\" !== a2.content[a2.content.length - 1].content && n2.push({ tagName: o(a2.content[0].content[1]), openedBraces: 0 }) : 0 < n2.length && \"punctuation\" === a2.type && \"{\" === a2.content ? n2[n2.length - 1].openedBraces++ : 0 < n2.length && 0 < n2[n2.length - 1].openedBraces && \"punctuation\" === a2.type && \"}\" === a2.content ? n2[n2.length - 1].openedBraces-- : r2 = true), (r2 || \"string\" == typeof a2) && 0 < n2.length && 0 === n2[n2.length - 1].openedBraces && (r2 = o(a2), t2 < e2.length - 1 && (\"string\" == typeof e2[t2 + 1] || \"plain-text\" === e2[t2 + 1].type) && (r2 += o(e2[t2 + 1]), e2.splice(t2 + 1, 1)), 0 < t2 && (\"string\" == typeof e2[t2 - 1] || \"plain-text\" === e2[t2 - 1].type) && (r2 = o(e2[t2 - 1]) + r2, e2.splice(t2 - 1, 1), t2--), e2[t2] = new s.Token(\"plain-text\", r2, null, r2)), a2.content && \"string\" != typeof a2.content && i(a2.content);\n }\n }\n var o = function(e2) {\n return e2 ? \"string\" == typeof e2 ? e2 : \"string\" == typeof e2.content ? e2.content : e2.content.map(o).join(\"\") : \"\";\n };\n s.hooks.add(\"after-tokenize\", function(e2) {\n \"jsx\" !== e2.language && \"tsx\" !== e2.language || i(e2.tokens);\n });\n}(Prism), function(e) {\n var n = e.util.clone(e.languages.typescript), n = (e.languages.tsx = e.languages.extend(\"jsx\", n), delete e.languages.tsx.parameter, delete e.languages.tsx[\"literal-property\"], e.languages.tsx.tag);\n n.pattern = RegExp(/(^|[^\\w$]|(?=<\\/))/.source + \"(?:\" + n.pattern.source + \")\", n.pattern.flags), n.lookbehind = true;\n}(Prism), Prism.languages.swift = { comment: { pattern: /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/, lookbehind: true, greedy: true }, \"string-literal\": [{ pattern: RegExp(/(^|[^\"#])/.source + \"(?:\" + /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/.source + \"|\" + /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/.source + \")\" + /(?![\"#])/.source), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\\\($/, alias: \"punctuation\" }, punctuation: /\\\\(?=[\\r\\n])/, string: /[\\s\\S]+/ } }, { pattern: RegExp(/(^|[^\"#])(#+)/.source + \"(?:\" + /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/.source + \"|\" + /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source + \")\\\\2\"), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\#+\\($/, alias: \"punctuation\" }, string: /[\\s\\S]+/ } }], directive: { pattern: RegExp(/#/.source + \"(?:\" + /(?:elseif|if)\\b/.source + \"(?:[ \t]*\" + /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/.source + \")+|\" + /(?:else|endif)\\b/.source + \")\"), alias: \"property\", inside: { \"directive-name\": /^#\\w+/, boolean: /\\b(?:false|true)\\b/, number: /\\b\\d+(?:\\.\\d+)*\\b/, operator: /!|&&|\\|\\||[<>]=?/, punctuation: /[(),]/ } }, literal: { pattern: /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/, alias: \"constant\" }, \"other-directive\": { pattern: /#\\w+\\b/, alias: \"property\" }, attribute: { pattern: /@\\w+/, alias: \"atrule\" }, \"function-definition\": { pattern: /(\\bfunc\\s+)\\w+/, lookbehind: true, alias: \"function\" }, label: { pattern: /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/, lookbehind: true, alias: \"important\" }, keyword: /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/, boolean: /\\b(?:false|true)\\b/, nil: { pattern: /\\bnil\\b/, alias: \"constant\" }, \"short-argument\": /\\$\\d+\\b/, omit: { pattern: /\\b_\\b/, alias: \"keyword\" }, number: /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i, \"class-name\": /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/, operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/, punctuation: /[{}[\\]();,.:\\\\]/ }, Prism.languages.swift[\"string-literal\"].forEach(function(e) {\n e.inside.interpolation.inside = Prism.languages.swift;\n}), function(e) {\n e.languages.kotlin = e.languages.extend(\"clike\", { keyword: { pattern: /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/, lookbehind: true }, function: [{ pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/, greedy: true }, { pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/, lookbehind: true, greedy: true }], number: /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/, operator: /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/ }), delete e.languages.kotlin[\"class-name\"];\n var n = { \"interpolation-punctuation\": { pattern: /^\\$\\{?|\\}$/, alias: \"punctuation\" }, expression: { pattern: /[\\s\\S]+/, inside: e.languages.kotlin } };\n e.languages.insertBefore(\"kotlin\", \"string\", { \"string-literal\": [{ pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/, alias: \"multiline\", inside: { interpolation: { pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, inside: n }, string: /[\\s\\S]+/ } }, { pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/, alias: \"singleline\", inside: { interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, lookbehind: true, inside: n }, string: /[\\s\\S]+/ } }], char: { pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/, greedy: true } }), delete e.languages.kotlin.string, e.languages.insertBefore(\"kotlin\", \"keyword\", { annotation: { pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/, alias: \"builtin\" } }), e.languages.insertBefore(\"kotlin\", \"function\", { label: { pattern: /\\b\\w+@|@\\w+\\b/, alias: \"symbol\" } }), e.languages.kt = e.languages.kotlin, e.languages.kts = e.languages.kotlin;\n}(Prism), Prism.languages.c = Prism.languages.extend(\"clike\", { comment: { pattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, greedy: true }, string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, \"class-name\": { pattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/, lookbehind: true }, keyword: /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, number: /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i, operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/ }), Prism.languages.insertBefore(\"c\", \"string\", { char: { pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/, greedy: true } }), Prism.languages.insertBefore(\"c\", \"string\", { macro: { pattern: /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im, lookbehind: true, greedy: true, alias: \"property\", inside: { string: [{ pattern: /^(#\\s*include\\s*)<[^>]+>/, lookbehind: true }, Prism.languages.c.string], char: Prism.languages.c.char, comment: Prism.languages.c.comment, \"macro-name\": [{ pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i, lookbehind: true }, { pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i, lookbehind: true, alias: \"function\" }], directive: { pattern: /^(#\\s*)[a-z]+/, lookbehind: true, alias: \"keyword\" }, \"directive-hash\": /^#/, punctuation: /##|\\\\(?=[\\r\\n])/, expression: { pattern: /\\S[\\s\\S]*/, inside: Prism.languages.c } } } }), Prism.languages.insertBefore(\"c\", \"function\", { constant: /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/ }), delete Prism.languages.c.boolean, Prism.languages.objectivec = Prism.languages.extend(\"c\", { string: { pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, keyword: /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/, operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/ }), delete Prism.languages.objectivec[\"class-name\"], Prism.languages.objc = Prism.languages.objectivec, Prism.languages.reason = Prism.languages.extend(\"clike\", { string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/, greedy: true }, \"class-name\": /\\b[A-Z]\\w*/, keyword: /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/, operator: /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/ }), Prism.languages.insertBefore(\"reason\", \"class-name\", { char: { pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/, greedy: true }, constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/, label: { pattern: /\\b[a-z]\\w*(?=::)/, alias: \"symbol\" } }), delete Prism.languages.reason.function, function(e) {\n for (var n = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source, t = 0; t < 2; t++)\n n = n.replace(/<self>/g, function() {\n return n;\n });\n n = n.replace(/<self>/g, function() {\n return /[^\\s\\S]/.source;\n }), e.languages.rust = { comment: [{ pattern: RegExp(/(^|[^\\\\])/.source + n), lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/, greedy: true }, char: { pattern: /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/, greedy: true }, attribute: { pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/, greedy: true, alias: \"attr-name\", inside: { string: null } }, \"closure-params\": { pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/, lookbehind: true, greedy: true, inside: { \"closure-punctuation\": { pattern: /^\\||\\|$/, alias: \"punctuation\" }, rest: null } }, \"lifetime-annotation\": { pattern: /'\\w+/, alias: \"symbol\" }, \"fragment-specifier\": { pattern: /(\\$\\w+:)[a-z]+/, lookbehind: true, alias: \"punctuation\" }, variable: /\\$\\w+/, \"function-definition\": { pattern: /(\\bfn\\s+)\\w+/, lookbehind: true, alias: \"function\" }, \"type-definition\": { pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/, lookbehind: true, alias: \"class-name\" }, \"module-declaration\": [{ pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/, lookbehind: true, alias: \"namespace\" }, { pattern: /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/, lookbehind: true, alias: \"namespace\", inside: { punctuation: /::/ } }], keyword: [/\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/], function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/, macro: { pattern: /\\b\\w+!/, alias: \"property\" }, constant: /\\b[A-Z_][A-Z_\\d]+\\b/, \"class-name\": /\\b[A-Z]\\w*\\b/, namespace: { pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/, inside: { punctuation: /::/ } }, number: /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/, boolean: /\\b(?:false|true)\\b/, punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/, operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/ }, e.languages.rust[\"closure-params\"].inside.rest = e.languages.rust, e.languages.rust.attribute.inside.string = e.languages.rust.string;\n}(Prism), Prism.languages.go = Prism.languages.extend(\"clike\", { string: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/, lookbehind: true, greedy: true }, keyword: /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/, boolean: /\\b(?:_|false|iota|nil|true)\\b/, number: [/\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i], operator: /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./, builtin: /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/ }), Prism.languages.insertBefore(\"go\", \"string\", { char: { pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/, greedy: true } }), delete Prism.languages.go[\"class-name\"], function(e) {\n var n = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/, t = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(/<keyword>/g, function() {\n return n.source;\n });\n e.languages.cpp = e.languages.extend(\"c\", { \"class-name\": [{ pattern: RegExp(/(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(/<keyword>/g, function() {\n return n.source;\n })), lookbehind: true }, /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/], keyword: n, number: { pattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i, greedy: true }, operator: />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/, boolean: /\\b(?:false|true)\\b/ }), e.languages.insertBefore(\"cpp\", \"string\", { module: { pattern: RegExp(/(\\b(?:import|module)\\s+)/.source + \"(?:\" + /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source + \"|\" + /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(/<mod-name>/g, function() {\n return t;\n }) + \")\"), lookbehind: true, greedy: true, inside: { string: /^[<\"][\\s\\S]+/, operator: /:/, punctuation: /\\./ } }, \"raw-string\": { pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/, alias: \"string\", greedy: true } }), e.languages.insertBefore(\"cpp\", \"keyword\", { \"generic-function\": { pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i, inside: { function: /^\\w+/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: e.languages.cpp } } } }), e.languages.insertBefore(\"cpp\", \"operator\", { \"double-colon\": { pattern: /::/, alias: \"punctuation\" } }), e.languages.insertBefore(\"cpp\", \"class-name\", { \"base-clause\": { pattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/, lookbehind: true, greedy: true, inside: e.languages.extend(\"cpp\", {}) } }), e.languages.insertBefore(\"inside\", \"double-colon\", { \"class-name\": /\\b[a-z_]\\w*\\b(?!\\s*::)/i }, e.languages.cpp[\"base-clause\"]);\n}(Prism), Prism.languages.python = { comment: { pattern: /(^|[^\\\\])#.*/, lookbehind: true, greedy: true }, \"string-interpolation\": { pattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i, greedy: true, inside: { interpolation: { pattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/, lookbehind: true, inside: { \"format-spec\": { pattern: /(:)[^:(){}]+(?=\\}$)/, lookbehind: true }, \"conversion-option\": { pattern: /![sra](?=[:}]$)/, alias: \"punctuation\" }, rest: null } }, string: /[\\s\\S]+/ } }, \"triple-quoted-string\": { pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i, greedy: true, alias: \"string\" }, string: { pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i, greedy: true }, function: { pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g, lookbehind: true }, \"class-name\": { pattern: /(\\bclass\\s+)\\w+/i, lookbehind: true }, decorator: { pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m, lookbehind: true, alias: [\"annotation\", \"punctuation\"], inside: { punctuation: /\\./ } }, keyword: /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/, builtin: /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/, boolean: /\\b(?:False|None|True)\\b/, number: /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i, operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.python[\"string-interpolation\"].inside.interpolation.inside.rest = Prism.languages.python, Prism.languages.py = Prism.languages.python;\n\n// src/themes/index.ts\nvar themes_exports = {};\n__export(themes_exports, {\n dracula: () => dracula_default,\n duotoneDark: () => duotoneDark_default,\n duotoneLight: () => duotoneLight_default,\n github: () => github_default,\n jettwaveDark: () => jettwaveDark_default,\n jettwaveLight: () => jettwaveLight_default,\n nightOwl: () => nightOwl_default,\n nightOwlLight: () => nightOwlLight_default,\n oceanicNext: () => oceanicNext_default,\n okaidia: () => okaidia_default,\n oneDark: () => oneDark_default,\n oneLight: () => oneLight_default,\n palenight: () => palenight_default,\n shadesOfPurple: () => shadesOfPurple_default,\n synthwave84: () => synthwave84_default,\n ultramin: () => ultramin_default,\n vsDark: () => vsDark_default,\n vsLight: () => vsLight_default\n});\n\n// src/themes/dracula.ts\nvar theme = {\n plain: {\n color: \"#F8F8F2\",\n backgroundColor: \"#282A36\"\n },\n styles: [\n {\n types: [\"prolog\", \"constant\", \"builtin\"],\n style: {\n color: \"rgb(189, 147, 249)\"\n }\n },\n {\n types: [\"inserted\", \"function\"],\n style: {\n color: \"rgb(80, 250, 123)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgb(255, 85, 85)\"\n }\n },\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 184, 108)\"\n }\n },\n {\n types: [\"punctuation\", \"symbol\"],\n style: {\n color: \"rgb(248, 248, 242)\"\n }\n },\n {\n types: [\"string\", \"char\", \"tag\", \"selector\"],\n style: {\n color: \"rgb(255, 121, 198)\"\n }\n },\n {\n types: [\"keyword\", \"variable\"],\n style: {\n color: \"rgb(189, 147, 249)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(98, 114, 164)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(241, 250, 140)\"\n }\n }\n ]\n};\nvar dracula_default = theme;\n\n// src/themes/duotoneDark.ts\nvar theme2 = {\n plain: {\n backgroundColor: \"#2a2734\",\n color: \"#9a86fd\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#6c6783\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#e09142\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#9a86fd\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#eeebff\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#c4b9fe\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\",\n \"placeholder\",\n \"variable\"\n ],\n style: {\n color: \"#ffcc99\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#c4b9fe\"\n }\n }\n ]\n};\nvar duotoneDark_default = theme2;\n\n// src/themes/duotoneLight.ts\nvar theme3 = {\n plain: {\n backgroundColor: \"#faf8f5\",\n color: \"#728fcb\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#b6ad9a\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#063289\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#b29762\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#2d2006\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#896724\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\"\n ],\n style: {\n color: \"#728fcb\"\n }\n },\n {\n types: [\"placeholder\", \"variable\"],\n style: {\n color: \"#93abdc\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#896724\"\n }\n }\n ]\n};\nvar duotoneLight_default = theme3;\n\n// src/themes/github.ts\nvar theme4 = {\n plain: {\n color: \"#393A34\",\n backgroundColor: \"#f6f8fa\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#999988\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"string\", \"attr-value\"],\n style: {\n color: \"#e3116c\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#393A34\"\n }\n },\n {\n types: [\n \"entity\",\n \"url\",\n \"symbol\",\n \"number\",\n \"boolean\",\n \"variable\",\n \"constant\",\n \"property\",\n \"regex\",\n \"inserted\"\n ],\n style: {\n color: \"#36acaa\"\n }\n },\n {\n types: [\"atrule\", \"keyword\", \"attr-name\", \"selector\"],\n style: {\n color: \"#00a4db\"\n }\n },\n {\n types: [\"function\", \"deleted\", \"tag\"],\n style: {\n color: \"#d73a49\"\n }\n },\n {\n types: [\"function-variable\"],\n style: {\n color: \"#6f42c1\"\n }\n },\n {\n types: [\"tag\", \"selector\", \"keyword\"],\n style: {\n color: \"#00009f\"\n }\n }\n ]\n};\nvar github_default = theme4;\n\n// src/themes/nightOwl.ts\nvar theme5 = {\n plain: {\n color: \"#d6deeb\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(99, 119, 119)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(214, 222, 235)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(255, 203, 139)\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"rgb(127, 219, 202)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"property\"],\n style: {\n color: \"rgb(128, 203, 196)\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n }\n ]\n};\nvar nightOwl_default = theme5;\n\n// src/themes/nightOwlLight.ts\nvar theme6 = {\n plain: {\n color: \"#403f53\",\n backgroundColor: \"#FBFBFB\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(72, 118, 214)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(152, 159, 177)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"builtin\", \"char\", \"constant\", \"url\"],\n style: {\n color: \"rgb(72, 118, 214)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(201, 103, 101)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(170, 9, 130)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"function\", \"selector\", \"doctype\"],\n style: {\n color: \"rgb(153, 76, 195)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(17, 17, 17)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"operator\", \"property\", \"keyword\", \"namespace\"],\n style: {\n color: \"rgb(12, 150, 155)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(188, 84, 84)\"\n }\n }\n ]\n};\nvar nightOwlLight_default = theme6;\n\n// src/themes/oceanicNext.ts\nvar colors = {\n char: \"#D8DEE9\",\n comment: \"#999999\",\n keyword: \"#c5a5c5\",\n primitive: \"#5a9bcf\",\n string: \"#8dc891\",\n variable: \"#d7deea\",\n boolean: \"#ff8b50\",\n punctuation: \"#5FB3B3\",\n tag: \"#fc929e\",\n function: \"#79b6f2\",\n className: \"#FAC863\",\n method: \"#6699CC\",\n operator: \"#fc929e\"\n};\nvar theme7 = {\n plain: {\n backgroundColor: \"#282c34\",\n color: \"#ffffff\"\n },\n styles: [\n {\n types: [\"attr-name\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"attr-value\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\n \"comment\",\n \"block-comment\",\n \"prolog\",\n \"doctype\",\n \"cdata\",\n \"shebang\"\n ],\n style: {\n color: colors.comment\n }\n },\n {\n types: [\n \"property\",\n \"number\",\n \"function-name\",\n \"constant\",\n \"symbol\",\n \"deleted\"\n ],\n style: {\n color: colors.primitive\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: colors.boolean\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: colors.tag\n }\n },\n {\n types: [\"string\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"selector\", \"char\", \"builtin\", \"inserted\"],\n style: {\n color: colors.char\n }\n },\n {\n types: [\"function\"],\n style: {\n color: colors.function\n }\n },\n {\n types: [\"operator\", \"entity\", \"url\", \"variable\"],\n style: {\n color: colors.variable\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"atrule\", \"class-name\"],\n style: {\n color: colors.className\n }\n },\n {\n types: [\"important\"],\n style: {\n fontWeight: \"400\"\n }\n },\n {\n types: [\"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n }\n ]\n};\nvar oceanicNext_default = theme7;\n\n// src/themes/okaidia.ts\nvar theme8 = {\n plain: {\n color: \"#f8f8f2\",\n backgroundColor: \"#272822\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"#f92672\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#8292a2\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"#a6e22e\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"#e6db74\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"#a6e22e\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"#66d9ef\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\",\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"property\"],\n style: {\n color: \"#f92672\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#a6e22e !important\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"#8292a2\"\n }\n },\n {\n types: [\"rule\"],\n style: {\n color: \"#e6db74\"\n }\n }\n ]\n};\nvar okaidia_default = theme8;\n\n// src/themes/palenight.ts\nvar theme9 = {\n plain: {\n color: \"#bfc7d5\",\n backgroundColor: \"#292d3e\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(105, 112, 152)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"inserted\"],\n style: {\n color: \"rgb(195, 232, 141)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n types: [\"punctuation\", \"selector\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(191, 199, 213)\"\n }\n },\n {\n types: [\"class-name\", \"attr-name\"],\n style: {\n color: \"rgb(255, 203, 107)\"\n }\n },\n {\n types: [\"tag\", \"deleted\"],\n style: {\n color: \"rgb(255, 85, 114)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(137, 221, 255)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"rgb(221, 221, 221)\"\n }\n }\n ]\n};\nvar palenight_default = theme9;\n\n// src/themes/shadesOfPurple.ts\nvar theme10 = {\n plain: {\n color: \"#9EFEFF\",\n backgroundColor: \"#2D2A55\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(179, 98, 255)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"rgb(255, 255, 255)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(165, 255, 144)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"number\", \"boolean\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 180, 84)\"\n }\n },\n {\n types: [\n \"keyword\",\n \"operator\",\n \"property\",\n \"namespace\",\n \"tag\",\n \"selector\",\n \"doctype\"\n ],\n style: {\n color: \"rgb(255, 157, 0)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"rgb(250, 208, 0)\"\n }\n }\n ]\n};\nvar shadesOfPurple_default = theme10;\n\n// src/themes/synthwave84.ts\nvar theme11 = {\n plain: {\n backgroundColor: \"linear-gradient(to bottom, #2a2139 75%, #34294f)\",\n backgroundImage: \"#34294f\",\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n },\n styles: [\n {\n types: [\"comment\", \"block-comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#495495\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#ccc\"\n }\n },\n {\n types: [\n \"tag\",\n \"attr-name\",\n \"namespace\",\n \"number\",\n \"unit\",\n \"hexcode\",\n \"deleted\"\n ],\n style: {\n color: \"#e2777a\"\n }\n },\n {\n types: [\"property\", \"selector\"],\n style: {\n color: \"#72f1b8\",\n textShadow: \"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475\"\n }\n },\n {\n types: [\"function-name\"],\n style: {\n color: \"#6196cc\"\n }\n },\n {\n types: [\"boolean\", \"selector-id\", \"function\"],\n style: {\n color: \"#fdfdfd\",\n textShadow: \"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975\"\n }\n },\n {\n types: [\"class-name\", \"maybe-class-name\", \"builtin\"],\n style: {\n color: \"#fff5f6\",\n textShadow: \"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75\"\n }\n },\n {\n types: [\"constant\", \"symbol\"],\n style: {\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n }\n },\n {\n types: [\"important\", \"atrule\", \"keyword\", \"selector-class\"],\n style: {\n color: \"#f4eee4\",\n textShadow: \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\"\n }\n },\n {\n types: [\"string\", \"char\", \"attr-value\", \"regex\", \"variable\"],\n style: {\n color: \"#f87c32\"\n }\n },\n {\n types: [\"parameter\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\", \"url\"],\n style: {\n color: \"#67cdcc\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"ffffffee\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\"],\n style: {\n cursor: \"help\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"green\"\n }\n }\n ]\n};\nvar synthwave84_default = theme11;\n\n// src/themes/ultramin.ts\nvar theme12 = {\n plain: {\n color: \"#282a2e\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(197, 200, 198)\"\n }\n },\n {\n types: [\"string\", \"number\", \"builtin\", \"variable\"],\n style: {\n color: \"rgb(150, 152, 150)\"\n }\n },\n {\n types: [\"class-name\", \"function\", \"tag\", \"attr-name\"],\n style: {\n color: \"rgb(40, 42, 46)\"\n }\n }\n ]\n};\nvar ultramin_default = theme12;\n\n// src/themes/vsDark.ts\nvar theme13 = {\n plain: {\n color: \"#9CDCFE\",\n backgroundColor: \"#1E1E1E\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"rgb(0, 0, 128)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(106, 153, 85)\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"rgb(181, 206, 168)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(100, 102, 149)\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"rgb(156, 220, 254)\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"rgb(206, 145, 120)\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"rgb(215, 186, 125)\"\n }\n },\n {\n // Fix tag color\n types: [\"tag\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n // Fix tag color for HTML\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"rgb(212, 212, 212)\"\n }\n },\n {\n // Fix punctuation color for HTML\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"rgb(220, 220, 170)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"rgb(209, 105, 105)\"\n }\n }\n ]\n};\nvar vsDark_default = theme13;\n\n// src/themes/vsLight.ts\nvar theme14 = {\n plain: {\n color: \"#000000\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(0, 128, 0)\"\n }\n },\n {\n types: [\"builtin\"],\n style: {\n color: \"rgb(0, 112, 193)\"\n }\n },\n {\n types: [\"number\", \"variable\", \"inserted\"],\n style: {\n color: \"rgb(9, 134, 88)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(0, 0, 0)\"\n }\n },\n {\n types: [\"constant\", \"char\"],\n style: {\n color: \"rgb(129, 31, 63)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(128, 0, 0)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 0, 0)\"\n }\n },\n {\n types: [\"deleted\", \"string\"],\n style: {\n color: \"rgb(163, 21, 21)\"\n }\n },\n {\n types: [\"changed\", \"punctuation\"],\n style: {\n color: \"rgb(4, 81, 165)\"\n }\n },\n {\n types: [\"function\", \"keyword\"],\n style: {\n color: \"rgb(0, 0, 255)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(38, 127, 153)\"\n }\n }\n ]\n};\nvar vsLight_default = theme14;\n\n// src/themes/jettwaveDark.ts\nvar theme15 = {\n plain: {\n color: \"#f8fafc\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#569CD6\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#f8fafc\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#9CDCFE\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#cbd5e1\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#D4D4D4\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#7dd3fc\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveDark_default = theme15;\n\n// src/themes/jettwaveLight.ts\nvar theme16 = {\n plain: {\n color: \"#0f172a\",\n backgroundColor: \"#f1f5f9\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#0f172a\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#64748b\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#475569\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#0e7490\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveLight_default = theme16;\n\n// src/themes/oneDark.ts\nvar theme17 = {\n plain: {\n backgroundColor: \"hsl(220, 13%, 18%)\",\n color: \"hsl(220, 14%, 71%)\",\n textShadow: \"0 1px rgba(0, 0, 0, 0.3)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(220, 10%, 40%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"maybe-class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: { color: \"hsl(29, 54%, 61%)\" }\n },\n {\n types: [\"keyword\"],\n style: { color: \"hsl(286, 60%, 67%)\" }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(355, 65%, 65%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\"\n ],\n style: {\n color: \"hsl(95, 38%, 62%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(207, 82%, 66%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(187, 47%, 55%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n }\n ]\n};\nvar oneDark_default = theme17;\n\n// src/themes/oneLight.ts\nvar theme18 = {\n plain: {\n backgroundColor: \"hsl(230, 1%, 98%)\",\n color: \"hsl(230, 8%, 24%)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(230, 4%, 64%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: {\n color: \"hsl(35, 99%, 36%)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: \"hsl(301, 63%, 40%)\"\n }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(5, 74%, 59%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\",\n \"punctuation\"\n ],\n style: {\n color: \"hsl(119, 34%, 47%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(221, 87%, 60%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(198, 99%, 37%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n }\n ]\n};\nvar oneLight_default = theme18;\n\n// src/index.ts\nimport { createElement } from \"react\";\n\n// src/components/useThemeDictionary.ts\nimport { useEffect, useRef, useState } from \"react\";\n\n// src/utils/themeToDict.ts\nvar themeToDict = (theme19, language) => {\n const { plain } = theme19;\n const themeDict = theme19.styles.reduce((acc, themeEntry) => {\n const { languages: languages2, style } = themeEntry;\n if (languages2 && !languages2.includes(language)) {\n return acc;\n }\n themeEntry.types.forEach((type) => {\n const accStyle = __spreadValues(__spreadValues({}, acc[type]), style);\n acc[type] = accStyle;\n });\n return acc;\n }, {});\n themeDict.root = plain;\n themeDict.plain = __spreadProps(__spreadValues({}, plain), { backgroundColor: void 0 });\n return themeDict;\n};\nvar themeToDict_default = themeToDict;\n\n// src/components/useThemeDictionary.ts\nvar useThemeDictionary = (language, theme19) => {\n const [themeDictionary, setThemeDictionary] = useState(\n themeToDict_default(theme19, language)\n );\n const previousTheme = useRef();\n const previousLanguage = useRef();\n useEffect(() => {\n if (theme19 !== previousTheme.current || language !== previousLanguage.current) {\n previousTheme.current = theme19;\n previousLanguage.current = language;\n setThemeDictionary(themeToDict_default(theme19, language));\n }\n }, [language, theme19]);\n return themeDictionary;\n};\n\n// src/components/useGetLineProps.ts\nimport { useCallback } from \"react\";\nimport clsx from \"clsx\";\nvar useGetLineProps = (themeDictionary) => useCallback(\n (_a) => {\n var _b = _a, { className, style, line } = _b, rest = __objRest(_b, [\"className\", \"style\", \"line\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx(\"token-line\", className)\n });\n if (typeof themeDictionary === \"object\" && \"plain\" in themeDictionary)\n output.style = themeDictionary.plain;\n if (typeof style === \"object\")\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n return output;\n },\n [themeDictionary]\n);\n\n// src/components/useGetTokenProps.ts\nimport { useCallback as useCallback2 } from \"react\";\nimport clsx2 from \"clsx\";\nvar useGetTokenProps = (themeDictionary) => {\n const styleForToken = useCallback2(\n ({ types, empty }) => {\n if (themeDictionary == null)\n return void 0;\n else if (types.length === 1 && types[0] === \"plain\") {\n return empty != null ? { display: \"inline-block\" } : void 0;\n } else if (types.length === 1 && empty != null) {\n return themeDictionary[types[0]];\n }\n return Object.assign(\n empty != null ? { display: \"inline-block\" } : {},\n ...types.map((type) => themeDictionary[type])\n );\n },\n [themeDictionary]\n );\n return useCallback2(\n (_a) => {\n var _b = _a, { token, className, style } = _b, rest = __objRest(_b, [\"token\", \"className\", \"style\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx2(\"token\", ...token.types, className),\n children: token.content,\n style: styleForToken(token)\n });\n if (style != null) {\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n }\n return output;\n },\n [styleForToken]\n );\n};\n\n// src/utils/normalizeTokens.ts\nvar newlineRe = /\\r\\n|\\r|\\n/;\nvar normalizeEmptyLines = (line) => {\n if (line.length === 0) {\n line.push({\n types: [\"plain\"],\n content: \"\\n\",\n empty: true\n });\n } else if (line.length === 1 && line[0].content === \"\") {\n line[0].content = \"\\n\";\n line[0].empty = true;\n }\n};\nvar appendTypes = (types, add) => {\n const typesSize = types.length;\n if (typesSize > 0 && types[typesSize - 1] === add) {\n return types;\n }\n return types.concat(add);\n};\nvar normalizeTokens = (tokens) => {\n const typeArrStack = [[]];\n const tokenArrStack = [tokens];\n const tokenArrIndexStack = [0];\n const tokenArrSizeStack = [tokens.length];\n let i = 0;\n let stackIndex = 0;\n let currentLine = [];\n const acc = [currentLine];\n while (stackIndex > -1) {\n while ((i = tokenArrIndexStack[stackIndex]++) < tokenArrSizeStack[stackIndex]) {\n let content;\n let types = typeArrStack[stackIndex];\n const tokenArr = tokenArrStack[stackIndex];\n const token = tokenArr[i];\n if (typeof token === \"string\") {\n types = stackIndex > 0 ? types : [\"plain\"];\n content = token;\n } else {\n types = appendTypes(types, token.type);\n if (token.alias) {\n types = appendTypes(types, token.alias);\n }\n content = token.content;\n }\n if (typeof content !== \"string\") {\n stackIndex++;\n typeArrStack.push(types);\n tokenArrStack.push(content);\n tokenArrIndexStack.push(0);\n tokenArrSizeStack.push(content.length);\n continue;\n }\n const splitByNewlines = content.split(newlineRe);\n const newlineCount = splitByNewlines.length;\n currentLine.push({\n types,\n content: splitByNewlines[0]\n });\n for (let i2 = 1; i2 < newlineCount; i2++) {\n normalizeEmptyLines(currentLine);\n acc.push(currentLine = []);\n currentLine.push({\n types,\n content: splitByNewlines[i2]\n });\n }\n }\n stackIndex--;\n typeArrStack.pop();\n tokenArrStack.pop();\n tokenArrIndexStack.pop();\n tokenArrSizeStack.pop();\n }\n normalizeEmptyLines(currentLine);\n return acc;\n};\nvar normalizeTokens_default = normalizeTokens;\n\n// src/components/useTokenize.ts\nimport { useMemo, useRef as useRef2 } from \"react\";\nvar useTokenize = ({ prism, code, grammar, language }) => {\n const prismRef = useRef2(prism);\n return useMemo(() => {\n if (grammar == null)\n return normalizeTokens_default([code]);\n const prismConfig = {\n code,\n grammar,\n language,\n tokens: []\n };\n prismRef.current.hooks.run(\"before-tokenize\", prismConfig);\n prismConfig.tokens = prismRef.current.tokenize(code, grammar);\n prismRef.current.hooks.run(\"after-tokenize\", prismConfig);\n return normalizeTokens_default(prismConfig.tokens);\n }, [code, grammar, language]);\n};\n\n// src/components/highlight.ts\nvar Highlight = ({\n children,\n language: _language,\n code,\n theme: theme19,\n prism\n}) => {\n const language = _language.toLowerCase();\n const themeDictionary = useThemeDictionary(language, theme19);\n const getLineProps = useGetLineProps(themeDictionary);\n const getTokenProps = useGetTokenProps(themeDictionary);\n const grammar = prism.languages[language];\n const tokens = useTokenize({ prism, language, code, grammar });\n return children({\n tokens,\n className: `prism-code language-${language}`,\n style: themeDictionary != null ? themeDictionary.root : {},\n getLineProps,\n getTokenProps\n });\n};\n\n// src/index.ts\nvar Highlight2 = (props) => createElement(Highlight, __spreadProps(__spreadValues({}, props), {\n prism: props.prism || Prism,\n theme: props.theme || vsDark_default,\n code: props.code,\n language: props.language\n}));\nexport {\n Highlight2 as Highlight,\n Prism,\n normalizeTokens_default as normalizeTokens,\n themes_exports as themes,\n useTokenize\n};\n/*! Bundled license information:\n\nprismjs/prism.js:\n (**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n *)\n*/\n//# sourceMappingURL=index.mjs.map","import {\n createContext,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nconst ThemeContext = createContext<readonly [boolean, () => void]>([\n false,\n () => {},\n]);\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext);\n if (!context) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n return context;\n};\n\nexport const ThemeProvider = (props: { children: ReactNode }) => {\n const [dark, setDark] = useState(false);\n\n // On mount, read the preferred theme from the persistence\n useEffect(() => {\n const theme = localStorage.getItem(\"theme\");\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const isDark = theme === \"dark\" || (!theme && prefersDark.matches);\n\n setDark(isDark);\n }, [dark]);\n\n // To toggle between dark and light modes\n const toggle = useCallback(() => {\n const toggled = !dark;\n document.documentElement.classList.toggle(\"dark\", toggled);\n localStorage.setItem(\"theme\", toggled ? \"dark\" : \"light\");\n setDark(toggled);\n }, [dark]);\n\n const value = [dark, toggle] as const;\n\n return <ThemeContext.Provider value={value} {...props} />;\n};\n","import {\n Highlight,\n Prism,\n themes,\n type HighlightProps,\n} from \"prism-react-renderer\";\n\nimport { CheckIcon, CopyIcon } from \"lucide-react\";\n\nglobalThis.Prism = Prism;\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-bash.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-ruby.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-markup-templating.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-php.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-json.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-java.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-csharp.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-objectivec.min.js\");\n\nimport { useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useTheme } from \"./context/ThemeContext.js\";\n\ntype SyntaxHighlightProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n copyable?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n} & Omit<HighlightProps, \"children\" | \"language\">;\n\nexport const SyntaxHighlight = ({\n copyable = true,\n language = \"plain\",\n ...props\n}: SyntaxHighlightProps) => {\n const [isDark] = useTheme();\n const [isCopied, setIsCopied] = useState(false);\n\n if (!props.code) {\n return null;\n }\n\n return (\n <Highlight\n theme={isDark ? themes.vsDark : themes.github}\n language={language}\n {...props}\n >\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={cn(\n \"group relative\",\n className,\n props.className,\n props.noBackground && \"!bg-transparent\",\n props.wrapLines && \"whitespace-pre-wrap break-words\",\n )}\n style={style}\n >\n {copyable && (\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n className=\"absolute top-1.5 right-3 p-3 opacity-0 group-hover:opacity-100 transition hover:bg-zinc-500/10 hover:dark:bg-zinc-700/25 rounded-lg text-sm text-gray-400 hover:text-gray-600 dark:text-gray-500 dark:hover:text-gray-400\"\n disabled={isCopied}\n onClick={() => {\n setIsCopied(true);\n void navigator.clipboard.writeText(\n tokens\n .map((line) => line.map(({ content }) => content).join(\"\"))\n .join(\"\\n\"),\n );\n setTimeout(() => setIsCopied(false), 2000);\n }}\n >\n {isCopied ? (\n <CheckIcon className=\"text-emerald-600\" size={18} />\n ) : (\n <CopyIcon size={18} />\n )}\n </button>\n )}\n {props.showLanguageIndicator && (\n <span className=\"absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0\">\n {language}\n </span>\n )}\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport type { ComponentProps } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Heading } from \"../components/Heading.js\";\nimport { InlineCode } from \"../components/InlineCode.js\";\nimport { SyntaxHighlight } from \"../components/SyntaxHighlight.js\";\nimport { Callout } from \"../ui/Callout.js\";\n\nexport type MdxComponentsType = ComponentProps<\n typeof MDXProvider\n>[\"components\"];\n\nexport const MdxComponents = {\n img: (props) => {\n if (/\\.(mp4|webm|mov|avi)$/.test(props.src ?? \"\")) {\n return <video src={props.src} controls playsInline autoPlay loop />;\n }\n return <img {...props} className=\"rounded-md\" />;\n },\n h1: ({ children, id }) => (\n <Heading level={1} id={id}>\n {children}\n </Heading>\n ),\n h2: ({ children, id }) => (\n <Heading level={2} id={id}>\n {children}\n </Heading>\n ),\n h3: ({ children, id }) => (\n <Heading level={3} id={id}>\n {children}\n </Heading>\n ),\n h4: ({ children, id }) => (\n <Heading level={4} id={id}>\n {children}\n </Heading>\n ),\n h5: ({ children, id }) => (\n <Heading level={5} id={id}>\n {children}\n </Heading>\n ),\n h6: ({ children, id }) => (\n <Heading level={6} id={id}>\n {children}\n </Heading>\n ),\n a: ({ href, ...props }) =>\n href && !href.startsWith(\"http\") ? (\n <Link to={href} relative=\"path\" {...props} />\n ) : (\n <a href={href} target=\"_blank\" {...props} rel=\"noreferrer\" />\n ),\n Callout,\n tip: (props) => <Callout type=\"tip\" {...props} />,\n info: (props) => <Callout type=\"info\" {...props} />,\n note: (props) => <Callout type=\"note\" {...props} />,\n caution: (props) => <Callout type=\"caution\" {...props} />,\n warning: (props) => <Callout type=\"caution\" {...props} />,\n danger: (props) => <Callout type=\"danger\" {...props} />,\n\n pre: ({ children }) => <>{children}</>,\n code: ({ className, children, ...props }) => {\n // `inline` provided by the rehype plugin, as react-markdown removed support for that\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const inline = (props as any).inline;\n\n if (!inline) {\n const match = className?.match(/language?-(\\w+)/);\n\n return (\n <SyntaxHighlight\n language={match?.[1] ?? \"markup\"}\n className=\"rounded-xl overflow-x-auto p-4 border border-border dark:!bg-foreground/10 dark:border-transparent\"\n showLanguageIndicator\n code={String(children).trim()}\n />\n );\n }\n\n return <InlineCode className={className}>{children}</InlineCode>;\n },\n} satisfies MdxComponentsType;\n"],"names":["_extends","target","i","source","key","_objectWithoutPropertiesLoose","excluded","sourceKeys","defaultMethod","defaultEncType","isHtmlElement","object","isButtonElement","isFormElement","isInputElement","isModifiedEvent","event","shouldProcessLinkClick","createSearchParams","init","memo","value","v","getSearchParamsForLocation","locationSearch","defaultSearchParams","searchParams","_","_formDataSupportsSubmitter","isFormDataSubmitterSupported","supportedFormEncTypes","getFormEncType","encType","UNSAFE_warning","getFormSubmissionInfo","basename","method","action","formData","body","attr","stripBasename","form","name","type","prefix","_excluded","_excluded2","_excluded3","REACT_ROUTER_VERSION","ViewTransitionContext","React","FetchersContext","isBrowser","ABSOLUTE_URL_REGEX","Link","_ref7","ref","onClick","relative","reloadDocument","replace","state","to","preventScrollReset","unstable_viewTransition","rest","UNSAFE_NavigationContext","absoluteHref","isExternal","currentUrl","targetUrl","path","href","useHref","internalOnClick","useLinkClickHandler","handleClick","NavLink","_ref8","ariaCurrentProp","caseSensitive","classNameProp","end","styleProp","children","useResolvedPath","location","useLocation","routerState","UNSAFE_DataRouterStateContext","navigator","isTransitioning","useViewTransitionState","toPathname","locationPathname","nextLocationPathname","endSlashPosition","isActive","isPending","renderProps","ariaCurrent","className","style","Form","_ref9","forwardedRef","fetcherKey","navigate","onSubmit","props","submit","useSubmit","formAction","useFormAction","formMethod","submitHandler","submitter","submitMethod","DataRouterHook","DataRouterStateHook","getDataRouterConsoleError","hookName","useDataRouterContext","ctx","UNSAFE_DataRouterContext","UNSAFE_invariant","_temp","replaceProp","useNavigate","createPath","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","setSearchParams","nextInit","navigateOptions","newSearchParams","validateClientSideSubmission","fetcherId","getUniqueFetcherId","router","currentRouteId","UNSAFE_useRouteId","options","_temp2","routeContext","UNSAFE_RouteContext","match","params","joinPaths","opts","vtContext","currentPath","nextPath","matchPath","toKebabCase","string","mergeClasses","classes","index","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","iconNode","createElement","tag","attrs","createLucideIcon","iconName","Component","Check","Copy","Info","Lightbulb","ShieldAlert","TriangleAlert","r","f","o","clsx","CLASS_PART_SEPARATOR","createClassUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","_a","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","theme","getPrefixedClassGroupEntries","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","currentClassPartObject","pathPart","func","classGroupEntries","prefixedClassGroup","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","createSplitModifiers","separator","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","modifiers","bracketDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","splitModifiers","classGroupsInConflict","originalClassName","variantModifier","parsed","modifierId","classId","group","twJoin","argument","resolvedValue","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","result","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isArbitraryNumber","isInteger","isPercent","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","getDefaultConfig","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getOverscroll","getOverflow","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getPositions","getLineStyles","getBlendModes","getAlign","getZeroAndEmpty","getBreaks","getNumber","getNumberAndArbitrary","twMerge","cn","inputs","stylesMap","InfoIcon","LightbulbIcon","AlertTriangleIcon","ShieldAlertIcon","Callout","title","border","bg","iconColor","titleColor","textColor","jsxs","jsx","ViewportAnchorContext","createContext","useViewportAnchor","context","useContext","useRegisterAnchorElement","elementRef","useRef","observe","unobserve","useEffect","element","useCallback","el","ViewportAnchorProvider","activeAnchor","setActiveAnchor","useState","observerRef","registeredElements","entries","entry","elements","handleScroll","hasReachedTop","hasReachedBottom","lastItem","observeFns","useMemo","falsyToString","cx","cva","base","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","param1","cvClass","cvClassName","compoundVariantOptions","heading","getComponent","level","Heading","id","registerSidebarAnchor","InlineCode","__create","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropNames","__getOwnPropSymbols","__getProtoOf","__hasOwnProp","__propIsEnum","__defNormalProp","obj","__spreadValues","a","b","prop","__spreadProps","__objRest","exclude","__commonJS","cb","mod","__export","all","__copyProps","from","except","desc","__toESM","isNodeMode","require_prism","exports","module","Prism2","lang","uniqueId","plainTextGrammar","encode","tokens","Token","deepClone","visited","clone","m","language","defaultActivation","no","redef","lang2","inside","before","insert","root","grammar","ret","token","newToken","old","DFS","callback","objId","propertyType","text","env","tokenList","LinkedList","addAfter","matchGrammar","toArray","hooks2","callbacks","content","alias","matchedStr","stringify","s","e","aliases","attributes","matchPattern","pattern","pos","lookbehind","lookbehindLength","startNode","startPos","rematch","patterns","j","patternObj","greedy","flags","currentNode","str","removeCount","p","matchStr","after","reach","removeFrom","removeRange","wrapped","nestedRematch","head","tail","list","node","next","newNode","count","Prism","t","n","l","e2","e3","e4","n2","t2","a2","r2","n3","t3","c","u","d","g","s2","h","a3","l2","u2","themes_exports","dracula_default","duotoneDark_default","duotoneLight_default","github_default","jettwaveDark_default","jettwaveLight_default","nightOwl_default","nightOwlLight_default","oceanicNext_default","okaidia_default","oneDark_default","oneLight_default","palenight_default","shadesOfPurple_default","synthwave84_default","ultramin_default","vsDark_default","vsLight_default","theme2","theme3","theme4","theme5","theme6","theme7","theme8","theme9","theme10","theme11","theme12","theme13","theme14","theme15","theme16","theme17","theme18","themeToDict","theme19","plain","themeDict","themeEntry","languages2","accStyle","themeToDict_default","useThemeDictionary","themeDictionary","setThemeDictionary","previousTheme","previousLanguage","useGetLineProps","_b","line","output","useGetTokenProps","styleForToken","useCallback2","types","empty","clsx2","newlineRe","normalizeEmptyLines","appendTypes","add","typesSize","normalizeTokens","typeArrStack","tokenArrStack","tokenArrIndexStack","tokenArrSizeStack","stackIndex","currentLine","splitByNewlines","newlineCount","i2","normalizeTokens_default","useTokenize","prism","code","prismRef","useRef2","prismConfig","Highlight","_language","getLineProps","getTokenProps","Highlight2","ThemeContext","useTheme","ThemeProvider","dark","setDark","prefersDark","isDark","toggle","toggled","SyntaxHighlight","copyable","isCopied","setIsCopied","themes","CheckIcon","CopyIcon","MdxComponents"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,16,17,20]}
1
+ {"version":3,"file":"MdxComponents-BZ-Y_6jI.js","sources":["../../../node_modules/.pnpm/react-router-dom@6.24.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-router-dom/dist/index.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/shared/src/utils.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/defaultAttributes.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/Icon.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/createLucideIcon.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/check.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/copy.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/info.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/lightbulb.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/shield-alert.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/triangle-alert.js","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/tailwind-merge@2.3.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/util/cn.ts","../src/lib/ui/Callout.tsx","../src/lib/components/context/ViewportAnchorContext.tsx","../../../node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/index.mjs","../src/lib/components/Heading.tsx","../src/lib/components/InlineCode.tsx","../../../node_modules/.pnpm/prism-react-renderer@2.3.1_react@18.3.1/node_modules/prism-react-renderer/dist/index.mjs","../src/lib/components/context/ThemeContext.tsx","../src/lib/components/SyntaxHighlight.tsx","../src/lib/util/MdxComponents.tsx"],"sourcesContent":["/**\n * React Router DOM v6.24.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { UNSAFE_mapRouteProperties, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker } from 'react-router';\nexport { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';\nimport { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths, IDLE_FETCHER, matchPath } from '@remix-run/router';\nexport { UNSAFE_ErrorResponseImpl } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nconst defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && (\n // Ignore everything but left clicks\n !target || target === \"_self\") &&\n // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ;\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\n// One-time check for submitter support\nlet _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0);\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nconst supportedFormEncTypes = new Set([\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"\\\"\" + encType + \"\\\" is not a valid `encType` for `<Form>`/`<fetcher.Form>` \" + (\"and will default to \\\"\" + defaultEncType + \"\\\"\")) : void 0;\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\"Cannot submit a <button> or <input type=\\\"submit\\\"> without a <form>\");\n }\n // <button>/<input type=\"submit\"> may override attributes of <form>\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"formenctype\")) || getFormEncType(form.getAttribute(\"enctype\")) || defaultEncType;\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let {\n name,\n type,\n value\n } = target;\n if (type === \"image\") {\n let prefix = name ? name + \".\" : \"\";\n formData.append(prefix + \"x\", \"0\");\n formData.append(prefix + \"y\", \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\"Cannot submit element that is not <form>, <button>, or \" + \"<input type=\\\"submit|image\\\">\");\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n return {\n action,\n method: method.toLowerCase(),\n encType,\n formData,\n body\n };\n}\n\nconst _excluded = [\"onClick\", \"relative\", \"reloadDocument\", \"replace\", \"state\", \"target\", \"to\", \"preventScrollReset\", \"unstable_viewTransition\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"unstable_viewTransition\", \"children\"],\n _excluded3 = [\"fetcherKey\", \"navigate\", \"reloadDocument\", \"replace\", \"state\", \"method\", \"action\", \"onSubmit\", \"relative\", \"preventScrollReset\", \"unstable_viewTransition\"];\n// HEY YOU! DON'T TOUCH THIS VARIABLE!\n//\n// It is replaced with the proper version at build time via a babel plugin in\n// the rollup config.\n//\n// Export a global property onto the window for React Router detection by the\n// Core Web Vitals Technology Report. This way they can configure the `wappalyzer`\n// to detect and properly classify live websites as being built with React Router:\n// https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies/r.json\nconst REACT_ROUTER_VERSION = \"6\";\ntry {\n window.__reactRouterVersion = REACT_ROUTER_VERSION;\n} catch (e) {\n // no-op\n}\nfunction createBrowserRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createBrowserHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n unstable_dataStrategy: opts == null ? void 0 : opts.unstable_dataStrategy,\n unstable_patchRoutesOnMiss: opts == null ? void 0 : opts.unstable_patchRoutesOnMiss,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction createHashRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createHashHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n unstable_dataStrategy: opts == null ? void 0 : opts.unstable_dataStrategy,\n unstable_patchRoutesOnMiss: opts == null ? void 0 : opts.unstable_patchRoutesOnMiss,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction parseHydrationData() {\n var _window;\n let state = (_window = window) == null ? void 0 : _window.__staticRouterHydrationData;\n if (state && state.errors) {\n state = _extends({}, state, {\n errors: deserializeErrors(state.errors)\n });\n }\n return state;\n}\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new UNSAFE_ErrorResponseImpl(val.status, val.statusText, val.data, val.internal === true);\n } else if (val && val.__type === \"Error\") {\n // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n // @ts-expect-error\n let error = new ErrorConstructor(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n // no-op - fall through and create a normal Error\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nconst ViewTransitionContext = /*#__PURE__*/React.createContext({\n isTransitioning: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n ViewTransitionContext.displayName = \"ViewTransition\";\n}\nconst FetchersContext = /*#__PURE__*/React.createContext(new Map());\nif (process.env.NODE_ENV !== \"production\") {\n FetchersContext.displayName = \"Fetchers\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\nconst FLUSH_SYNC = \"flushSync\";\nconst flushSyncImpl = ReactDOM[FLUSH_SYNC];\nconst USE_ID = \"useId\";\nconst useIdImpl = React[USE_ID];\nfunction startTransitionSafe(cb) {\n if (startTransitionImpl) {\n startTransitionImpl(cb);\n } else {\n cb();\n }\n}\nfunction flushSyncSafe(cb) {\n if (flushSyncImpl) {\n flushSyncImpl(cb);\n } else {\n cb();\n }\n}\nclass Deferred {\n constructor() {\n this.status = \"pending\";\n this.promise = new Promise((resolve, reject) => {\n this.resolve = value => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = reason => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n}\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let [pendingState, setPendingState] = React.useState();\n let [vtContext, setVtContext] = React.useState({\n isTransitioning: false\n });\n let [renderDfd, setRenderDfd] = React.useState();\n let [transition, setTransition] = React.useState();\n let [interruption, setInterruption] = React.useState();\n let fetcherData = React.useRef(new Map());\n let {\n v7_startTransition\n } = future || {};\n let optInStartTransition = React.useCallback(cb => {\n if (v7_startTransition) {\n startTransitionSafe(cb);\n } else {\n cb();\n }\n }, [v7_startTransition]);\n let setState = React.useCallback((newState, _ref2) => {\n let {\n deletedFetchers,\n unstable_flushSync: flushSync,\n unstable_viewTransitionOpts: viewTransitionOpts\n } = _ref2;\n deletedFetchers.forEach(key => fetcherData.current.delete(key));\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== undefined) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n let isViewTransitionUnavailable = router.window == null || router.window.document == null || typeof router.window.document.startViewTransition !== \"function\";\n // If this isn't a view transition or it's not available in this browser,\n // just update and be done with it\n if (!viewTransitionOpts || isViewTransitionUnavailable) {\n if (flushSync) {\n flushSyncSafe(() => setStateImpl(newState));\n } else {\n optInStartTransition(() => setStateImpl(newState));\n }\n return;\n }\n // flushSync + startViewTransition\n if (flushSync) {\n // Flush through the context to mark DOM elements as transition=ing\n flushSyncSafe(() => {\n // Cancel any pending transitions\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n });\n // Update the DOM\n let t = router.window.document.startViewTransition(() => {\n flushSyncSafe(() => setStateImpl(newState));\n });\n // Clean up after the animation completes\n t.finished.finally(() => {\n flushSyncSafe(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n });\n flushSyncSafe(() => setTransition(t));\n return;\n }\n // startTransition + startViewTransition\n if (transition) {\n // Interrupting an in-progress transition, cancel and let everything flush\n // out, and then kick off a new transition from the interruption state\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n } else {\n // Completed navigation update with opted-in view transitions, let 'er rip\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n }\n }, [router.window, transition, renderDfd, fetcherData, optInStartTransition]);\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n // When we start a view transition, create a Deferred we can use for the\n // eventual \"completed\" render\n React.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred());\n }\n }, [vtContext]);\n // Once the deferred is created, kick off startViewTransition() to update the\n // DOM and then wait on the Deferred to resolve (indicating the DOM update has\n // happened)\n React.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition = router.window.document.startViewTransition(async () => {\n optInStartTransition(() => setStateImpl(newState));\n await renderPromise;\n });\n transition.finished.finally(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n setTransition(transition);\n }\n }, [optInStartTransition, pendingState, renderDfd, router.window]);\n // When the new location finally renders and is committed to the DOM, this\n // effect will run to resolve the transition\n React.useEffect(() => {\n if (renderDfd && pendingState && state.location.key === pendingState.location.key) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n // If we get interrupted with a new navigation during a transition, we skip\n // the active transition, let it cleanup, then kick it off again here\n React.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation\n });\n setInterruption(undefined);\n }\n }, [vtContext.isTransitioning, interruption]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UNSAFE_DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(UNSAFE_DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(FetchersContext.Provider, {\n value: fetcherData.current\n }, /*#__PURE__*/React.createElement(ViewTransitionContext.Provider, {\n value: vtContext\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: {\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))))), null);\n}\nfunction DataRoutes(_ref3) {\n let {\n routes,\n future,\n state\n } = _ref3;\n return UNSAFE_useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nfunction BrowserRouter(_ref4) {\n let {\n basename,\n children,\n future,\n window\n } = _ref4;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nfunction HashRouter(_ref5) {\n let {\n basename,\n children,\n future,\n window\n } = _ref5;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter(_ref6) {\n let {\n basename,\n children,\n future,\n history\n } = _ref6;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\nif (process.env.NODE_ENV !== \"production\") {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n/**\n * The public API for rendering a history-aware `<a>`.\n */\nconst Link = /*#__PURE__*/React.forwardRef(function LinkWithRef(_ref7, ref) {\n let {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n unstable_viewTransition\n } = _ref7,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\") ? new URL(currentUrl.protocol + to) : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"<Link to=\\\"\" + to + \"\\\"> contains an invalid URL which will probably break \" + \"when clicked - please update to a valid URL path.\") : void 0;\n }\n }\n }\n // Rendered into <a href> for relative URLs\n let href = useHref(to, {\n relative\n });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n unstable_viewTransition\n });\n function handleClick(event) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n React.createElement(\"a\", _extends({}, rest, {\n href: absoluteHref || href,\n onClick: isExternal || reloadDocument ? onClick : handleClick,\n ref: ref,\n target: target\n }))\n );\n});\nif (process.env.NODE_ENV !== \"production\") {\n Link.displayName = \"Link\";\n}\n/**\n * A `<Link>` wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = /*#__PURE__*/React.forwardRef(function NavLinkWithRef(_ref8, ref) {\n let {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n unstable_viewTransition,\n children\n } = _ref8,\n rest = _objectWithoutPropertiesLoose(_ref8, _excluded2);\n let path = useResolvedPath(to, {\n relative: rest.relative\n });\n let location = useLocation();\n let routerState = React.useContext(UNSAFE_DataRouterStateContext);\n let {\n navigator,\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let isTransitioning = routerState != null &&\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useViewTransitionState(path) && unstable_viewTransition === true;\n let toPathname = navigator.encodeLocation ? navigator.encodeLocation(path).pathname : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname = routerState && routerState.navigation && routerState.navigation.location ? routerState.navigation.location.pathname : null;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname ? nextLocationPathname.toLowerCase() : null;\n toPathname = toPathname.toLowerCase();\n }\n if (nextLocationPathname && basename) {\n nextLocationPathname = stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n // If the `to` has a trailing slash, look at that exact spot. Otherwise,\n // we're looking for a slash _after_ what's in `to`. For example:\n //\n // <NavLink to=\"/users\"> and <NavLink to=\"/users/\">\n // both want to look for a / at index 6 to match URL `/users/matt`\n const endSlashPosition = toPathname !== \"/\" && toPathname.endsWith(\"/\") ? toPathname.length - 1 : toPathname.length;\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(endSlashPosition) === \"/\";\n let isPending = nextLocationPathname != null && (nextLocationPathname === toPathname || !end && nextLocationPathname.startsWith(toPathname) && nextLocationPathname.charAt(toPathname.length) === \"/\");\n let renderProps = {\n isActive,\n isPending,\n isTransitioning\n };\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n let className;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null, isPending ? \"pending\" : null, isTransitioning ? \"transitioning\" : null].filter(Boolean).join(\" \");\n }\n let style = typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n return /*#__PURE__*/React.createElement(Link, _extends({}, rest, {\n \"aria-current\": ariaCurrent,\n className: className,\n ref: ref,\n style: style,\n to: to,\n unstable_viewTransition: unstable_viewTransition\n }), typeof children === \"function\" ? children(renderProps) : children);\n});\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n}\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nconst Form = /*#__PURE__*/React.forwardRef((_ref9, forwardedRef) => {\n let {\n fetcherKey,\n navigate,\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n unstable_viewTransition\n } = _ref9,\n props = _objectWithoutPropertiesLoose(_ref9, _excluded3);\n let submit = useSubmit();\n let formAction = useFormAction(action, {\n relative\n });\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let submitHandler = event => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n let submitter = event.nativeEvent.submitter;\n let submitMethod = (submitter == null ? void 0 : submitter.getAttribute(\"formmethod\")) || method;\n submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace,\n state,\n relative,\n preventScrollReset,\n unstable_viewTransition\n });\n };\n return /*#__PURE__*/React.createElement(\"form\", _extends({\n ref: forwardedRef,\n method: formMethod,\n action: formAction,\n onSubmit: reloadDocument ? onSubmit : submitHandler\n }, props));\n});\nif (process.env.NODE_ENV !== \"production\") {\n Form.displayName = \"Form\";\n}\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nfunction ScrollRestoration(_ref10) {\n let {\n getKey,\n storageKey\n } = _ref10;\n useScrollRestoration({\n getKey,\n storageKey\n });\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\nvar DataRouterHook;\n(function (DataRouterHook) {\n DataRouterHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n DataRouterHook[\"UseSubmit\"] = \"useSubmit\";\n DataRouterHook[\"UseSubmitFetcher\"] = \"useSubmitFetcher\";\n DataRouterHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterHook[\"useViewTransitionState\"] = \"useViewTransitionState\";\n})(DataRouterHook || (DataRouterHook = {}));\nvar DataRouterStateHook;\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterStateHook[\"UseFetchers\"] = \"useFetchers\";\n DataRouterStateHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n// Internal hooks\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(UNSAFE_DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(UNSAFE_DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\n// External hooks\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nfunction useLinkClickHandler(to, _temp) {\n let {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition\n } = _temp === void 0 ? {} : _temp;\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, {\n relative\n });\n return React.useCallback(event => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace = replaceProp !== undefined ? replaceProp : createPath(location) === createPath(path);\n navigate(to, {\n replace,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to, preventScrollReset, relative, unstable_viewTransition]);\n}\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nfunction useSearchParams(defaultInit) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(typeof URLSearchParams !== \"undefined\", \"You cannot use the `useSearchParams` hook in a browser that does not \" + \"support the URLSearchParams API. If you need to support Internet \" + \"Explorer 11, we recommend you load a polyfill such as \" + \"https://github.com/ungap/url-search-params.\") : void 0;\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n let location = useLocation();\n let searchParams = React.useMemo(() =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(location.search, hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current), [location.search]);\n let navigate = useNavigate();\n let setSearchParams = React.useCallback((nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit);\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n }, [navigate, searchParams]);\n return [searchParams, setSearchParams];\n}\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\"You are calling submit during the server render. \" + \"Try calling submit within a `useEffect` or callback instead.\");\n }\n}\nlet fetcherId = 0;\nlet getUniqueFetcherId = () => \"__\" + String(++fetcherId) + \"__\";\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nfunction useSubmit() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseSubmit);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let currentRouteId = UNSAFE_useRouteId();\n return React.useCallback(function (target, options) {\n if (options === void 0) {\n options = {};\n }\n validateClientSideSubmission();\n let {\n action,\n method,\n encType,\n formData,\n body\n } = getFormSubmissionInfo(target, basename);\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n router.fetch(key, currentRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n unstable_flushSync: options.unstable_flushSync\n });\n } else {\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n unstable_flushSync: options.unstable_flushSync,\n unstable_viewTransition: options.unstable_viewTransition\n });\n }\n }, [router, basename, currentRouteId]);\n}\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nfunction useFormAction(action, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let routeContext = React.useContext(UNSAFE_RouteContext);\n !routeContext ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFormAction must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = _extends({}, useResolvedPath(action ? action : \".\", {\n relative\n }));\n // If no action was specified, browsers will persist current search params\n // when determining the path, so match that behavior\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to this directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n path.search = location.search;\n // When grabbing search params from the URL, remove any included ?index param\n // since it might not apply to our contextual route. We add it back based\n // on match.route.index below\n let params = new URLSearchParams(path.search);\n if (params.has(\"index\") && params.get(\"index\") === \"\") {\n params.delete(\"index\");\n path.search = params.toString() ? \"?\" + params.toString() : \"\";\n }\n }\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// TODO: (v7) Change the useFetcher generic default from `any` to `unknown`\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nfunction useFetcher(_temp3) {\n var _route$matches;\n let {\n key\n } = _temp3 === void 0 ? {} : _temp3;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseFetcher);\n let state = useDataRouterState(DataRouterStateHook.UseFetcher);\n let fetcherData = React.useContext(FetchersContext);\n let route = React.useContext(UNSAFE_RouteContext);\n let routeId = (_route$matches = route.matches[route.matches.length - 1]) == null ? void 0 : _route$matches.route.id;\n !fetcherData ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a FetchersContext\") : UNSAFE_invariant(false) : void 0;\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n !(routeId != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n // Fetcher key handling\n // OK to call conditionally to feature detect `useId`\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let defaultKey = useIdImpl ? useIdImpl() : \"\";\n let [fetcherKey, setFetcherKey] = React.useState(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n } else if (!fetcherKey) {\n // We will only fall through here when `useId` is not available\n setFetcherKey(getUniqueFetcherId());\n }\n // Registration/cleanup\n React.useEffect(() => {\n router.getFetcher(fetcherKey);\n return () => {\n // Tell the router we've unmounted - if v7_fetcherPersist is enabled this\n // will not delete immediately but instead queue up a delete after the\n // fetcher returns to an `idle` state\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n // Fetcher additions\n let load = React.useCallback((href, opts) => {\n !routeId ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"No routeId available for fetcher.load()\") : UNSAFE_invariant(false) : void 0;\n router.fetch(fetcherKey, routeId, href, opts);\n }, [fetcherKey, routeId, router]);\n let submitImpl = useSubmit();\n let submit = React.useCallback((target, opts) => {\n submitImpl(target, _extends({}, opts, {\n navigate: false,\n fetcherKey\n }));\n }, [fetcherKey, submitImpl]);\n let FetcherForm = React.useMemo(() => {\n let FetcherForm = /*#__PURE__*/React.forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(Form, _extends({}, props, {\n navigate: false,\n fetcherKey: fetcherKey,\n ref: ref\n }));\n });\n if (process.env.NODE_ENV !== \"production\") {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n }, [fetcherKey]);\n // Exposed FetcherWithComponents\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React.useMemo(() => _extends({\n Form: FetcherForm,\n submit,\n load\n }, fetcher, {\n data\n }), [FetcherForm, submit, load, fetcher, data]);\n return fetcherWithComponents;\n}\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nfunction useFetchers() {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return Array.from(state.fetchers.entries()).map(_ref11 => {\n let [key, fetcher] = _ref11;\n return _extends({}, fetcher, {\n key\n });\n });\n}\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions = {};\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration(_temp4) {\n let {\n getKey,\n storageKey\n } = _temp4 === void 0 ? {} : _temp4;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let {\n restoreScrollPosition,\n preventScrollReset\n } = useDataRouterState(DataRouterStateHook.UseScrollRestoration);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n // Save positions on pagehide\n usePageHide(React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY, JSON.stringify(savedScrollPositions));\n } catch (error) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (\" + error + \").\") : void 0;\n }\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches]));\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY);\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename = getKey && basename !== \"/\" ? (location, matches) => getKey( // Strip the basename to match useLocation()\n _extends({}, location, {\n pathname: stripBasename(location.pathname, basename) || location.pathname\n }), matches) : getKey;\n let disableScrollRestoration = router == null ? void 0 : router.enableScrollRestoration(savedScrollPositions, () => window.scrollY, getKeyWithoutBasename);\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(decodeURIComponent(location.hash.slice(1)));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction useBeforeUnload(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt(_ref12) {\n let {\n when,\n message\n } = _ref12;\n let blocker = useBlocker(when);\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n // This timeout is needed to avoid a weird \"race\" on POP navigations\n // between the `window.history` revert navigation and the result of\n // `window.confirm`\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\n/**\n * Return a boolean indicating if there is an active view transition to the\n * given href. You can use this value to render CSS classes or viewTransitionName\n * styles onto your elements\n *\n * @param href The destination href\n * @param [opts.relative] Relative routing type (\"route\" | \"path\")\n */\nfunction useViewTransitionState(to, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let vtContext = React.useContext(ViewTransitionContext);\n !(vtContext != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"`unstable_useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. \" + \"Did you accidentally import `RouterProvider` from `react-router`?\") : UNSAFE_invariant(false) : void 0;\n let {\n basename\n } = useDataRouterContext(DataRouterHook.useViewTransitionState);\n let path = useResolvedPath(to, {\n relative: opts.relative\n });\n if (!vtContext.isTransitioning) {\n return false;\n }\n let currentPath = stripBasename(vtContext.currentLocation.pathname, basename) || vtContext.currentLocation.pathname;\n let nextPath = stripBasename(vtContext.nextLocation.pathname, basename) || vtContext.nextLocation.pathname;\n // Transition is active if we're going to or coming from the indicated\n // destination. This ensures that other PUSH navigations that reverse\n // an indicated transition apply. I.e., on the list view you have:\n //\n // <NavLink to=\"/details/1\" unstable_viewTransition>\n //\n // If you click the breadcrumb back to the list view:\n //\n // <NavLink to=\"/list\" unstable_viewTransition>\n //\n // We should apply the transition because it's indicated as active going\n // from /list -> /details/1 and therefore should be active on the reverse\n // (even though this isn't strictly a POP reverse)\n return matchPath(path.pathname, nextPath) != null || matchPath(path.pathname, currentPath) != null;\n}\n//#endregion\n\nexport { BrowserRouter, Form, HashRouter, Link, NavLink, RouterProvider, ScrollRestoration, FetchersContext as UNSAFE_FetchersContext, ViewTransitionContext as UNSAFE_ViewTransitionContext, useScrollRestoration as UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createSearchParams, HistoryRouter as unstable_HistoryRouter, usePrompt as unstable_usePrompt, useViewTransitionState as unstable_useViewTransitionState, useBeforeUnload, useFetcher, useFetchers, useFormAction, useLinkClickHandler, useSearchParams, useSubmit };\n//# sourceMappingURL=index.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n}).join(\" \");\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Check = createLucideIcon(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\n\nexport { Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Copy = createLucideIcon(\"Copy\", [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n]);\n\nexport { Copy as default };\n//# sourceMappingURL=copy.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Info = createLucideIcon(\"Info\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n]);\n\nexport { Info as default };\n//# sourceMappingURL=info.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Lightbulb = createLucideIcon(\"Lightbulb\", [\n [\n \"path\",\n {\n d: \"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\",\n key: \"1gvzjb\"\n }\n ],\n [\"path\", { d: \"M9 18h6\", key: \"x1upvd\" }],\n [\"path\", { d: \"M10 22h4\", key: \"ceow96\" }]\n]);\n\nexport { Lightbulb as default };\n//# sourceMappingURL=lightbulb.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ShieldAlert = createLucideIcon(\"ShieldAlert\", [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }]\n]);\n\nexport { ShieldAlert as default };\n//# sourceMappingURL=shield-alert.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TriangleAlert = createLucideIcon(\"TriangleAlert\", [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nfunction createClassUtils(config) {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n function getClassGroupId(className) {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n }\n function getConflictingClassGroupIds(classGroupId, hasPostfixModifier) {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n }\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n}\nfunction getGroupRecursive(classParts, classPartObject) {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n}\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nfunction getGroupIdForArbitraryProperty(className) {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n}\n/**\n * Exported for testing only\n */\nfunction createClassMap(config) {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n}\nfunction processClassesRecursively(classGroup, classPartObject, classGroupId, theme) {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n}\nfunction getPart(classPartObject, path) {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n}\nfunction isThemeGetter(func) {\n return func.isThemeGetter;\n}\nfunction getPrefixedClassGroupEntries(classGroupEntries, prefix) {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n}\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nfunction createLruCache(maxCacheSize) {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n function update(key, value) {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n }\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n}\nconst IMPORTANT_MODIFIER = '!';\nfunction createSplitModifiers(config) {\n const separator = config.separator;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // splitModifiers inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n return function splitModifiers(className) {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n}\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nfunction sortModifiers(modifiers) {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n}\nfunction createConfigUtils(config) {\n return {\n cache: createLruCache(config.cacheSize),\n splitModifiers: createSplitModifiers(config),\n ...createClassUtils(config)\n };\n}\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nfunction mergeClassList(classList, configUtils) {\n const {\n splitModifiers,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = new Set();\n return classList.trim().split(SPLIT_CLASSES_REGEX).map(originalClassName => {\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = splitModifiers(originalClassName);\n let classGroupId = getClassGroupId(maybePostfixModifierPosition ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n if (!classGroupId) {\n if (!maybePostfixModifierPosition) {\n return {\n isTailwindClass: false,\n originalClassName\n };\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n return {\n isTailwindClass: false,\n originalClassName\n };\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n return {\n isTailwindClass: true,\n modifierId,\n classGroupId,\n originalClassName,\n hasPostfixModifier\n };\n }).reverse()\n // Last class in conflict wins, so we need to filter conflicting classes in reverse order.\n .filter(parsed => {\n if (!parsed.isTailwindClass) {\n return true;\n }\n const {\n modifierId,\n classGroupId,\n hasPostfixModifier\n } = parsed;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.has(classId)) {\n return false;\n }\n classGroupsInConflict.add(classId);\n getConflictingClassGroupIds(classGroupId, hasPostfixModifier).forEach(group => classGroupsInConflict.add(modifierId + group));\n return true;\n }).reverse().map(parsed => parsed.originalClassName).join(' ');\n}\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction toValue(mix) {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nfunction fromTheme(key) {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n}\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nfunction isLength(value) {\n return isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\n}\nfunction isArbitraryLength(value) {\n return getIsArbitraryValue(value, 'length', isLengthOnly);\n}\nfunction isNumber(value) {\n return Boolean(value) && !Number.isNaN(Number(value));\n}\nfunction isArbitraryNumber(value) {\n return getIsArbitraryValue(value, 'number', isNumber);\n}\nfunction isInteger(value) {\n return Boolean(value) && Number.isInteger(Number(value));\n}\nfunction isPercent(value) {\n return value.endsWith('%') && isNumber(value.slice(0, -1));\n}\nfunction isArbitraryValue(value) {\n return arbitraryValueRegex.test(value);\n}\nfunction isTshirtSize(value) {\n return tshirtUnitRegex.test(value);\n}\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nfunction isArbitrarySize(value) {\n return getIsArbitraryValue(value, sizeLabels, isNever);\n}\nfunction isArbitraryPosition(value) {\n return getIsArbitraryValue(value, 'position', isNever);\n}\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nfunction isArbitraryImage(value) {\n return getIsArbitraryValue(value, imageLabels, isImage);\n}\nfunction isArbitraryShadow(value) {\n return getIsArbitraryValue(value, '', isShadow);\n}\nfunction isAny() {\n return true;\n}\nfunction getIsArbitraryValue(value, label, testValue) {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n}\nfunction isLengthOnly(value) {\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n return lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\n}\nfunction isNever() {\n return false;\n}\nfunction isShadow(value) {\n return shadowRegex.test(value);\n}\nfunction isImage(value) {\n return imageRegex.test(value);\n}\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nfunction getDefaultConfig() {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumber = () => [isNumber, isArbitraryNumber];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumber(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumber(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumber(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumber(),\n scale: getNumber(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n}\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nfunction mergeConfigs(baseConfig, {\n cacheSize,\n prefix,\n separator,\n extend = {},\n override = {}\n}) {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n}\nfunction overrideProperty(baseObject, overrideKey, overrideValue) {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n}\nfunction overrideConfigProperties(baseObject, overrideObject) {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n}\nfunction mergeConfigProperties(baseObject, mergeObject) {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n}\nfunction extendTailwindMerge(configExtension, ...createConfig) {\n return typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\n}\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import {\n AlertTriangleIcon,\n InfoIcon,\n LightbulbIcon,\n ShieldAlertIcon,\n} from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst stylesMap = {\n note: {\n border: \"border-gray-300 dark:border-zinc-800\",\n bg: \"bg-gray-100 dark:bg-zinc-800/50\",\n iconColor: \"text-gray-600 dark:text-zinc-300\",\n titleColor: \"text-gray-600 dark:text-zinc-300\",\n textColor: \"text-gray-600 dark:text-zinc-300\",\n Icon: InfoIcon,\n },\n tip: {\n border: \"border-green-500 dark:border-green-800\",\n bg: \"bg-green-200/25 dark:bg-green-950/70\",\n iconColor: \"text-green-600 dark:text-green-200\",\n titleColor: \"text-green-700 dark:text-green-200\",\n textColor: \"text-green-600 dark:text-green-50\",\n Icon: LightbulbIcon,\n },\n info: {\n border: \"border-blue-400 dark:border-blue-900/60\",\n bg: \"bg-blue-50 dark:bg-blue-950/40\",\n iconColor: \"text-blue-400 dark:text-blue-200\",\n titleColor: \"text-blue-700 dark:text-blue-200\",\n textColor: \"text-blue-600 dark:text-blue-100\",\n Icon: InfoIcon,\n },\n caution: {\n border: \"border-yellow-400 dark:border-yellow-400/25\",\n bg: \"bg-yellow-100/60 dark:bg-yellow-400/10\",\n iconColor: \"text-yellow-500 dark:text-yellow-300\",\n titleColor: \"text-yellow-600 dark:text-yellow-300\",\n textColor: \"text-yellow-700 dark:text-yellow-200\",\n Icon: AlertTriangleIcon,\n },\n danger: {\n border: \"border-rose-400 dark:border-rose-800\",\n bg: \"bg-rose-50 dark:bg-rose-950/40\",\n iconColor: \"text-rose-400 dark:text-rose-300\",\n titleColor: \"text-rose-800 dark:text-rose-300\",\n textColor: \"text-rose-700 dark:text-rose-100\",\n Icon: ShieldAlertIcon,\n },\n};\n\ntype CalloutProps = {\n type: keyof typeof stylesMap;\n title?: string;\n children: ReactNode;\n className?: string;\n};\n\nexport const Callout = ({ type, children, title, className }: CalloutProps) => {\n const { border, bg, iconColor, titleColor, textColor, Icon } =\n stylesMap[type];\n\n return (\n <div\n className={cn(\n \"not-prose grid grid-cols-[min-content_1fr] grid-rows-[fit-content_1fr] gap-x-4 gap-y-2 text-md rounded-md border p-4\",\n \"[&_a]:underline [&_a]:decoration-current [&_a]:decoration-from-font [&_a]:underline-offset-4 hover:[&_a]:decoration-1\",\n \"[&_code]:!bg-gray-50 [&_code]:dark:!bg-gray-800 [&_code]:!border-none\",\n title && \"items-center\",\n border,\n bg,\n className,\n )}\n >\n <Icon\n className={cn(!title && \"mt-1 translate-y-px\", iconColor)}\n size={20}\n aria-hidden=\"true\"\n />\n {title && <h3 className={cn(\"font-medium\", titleColor)}>{title}</h3>}\n <div className={cn(\"col-start-2\", !title && \"row-start-1\", textColor)}>\n {children}\n </div>\n </div>\n );\n};\n","import {\n type ReactNode,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\ntype AnchorContextType = {\n activeAnchor?: string;\n setActiveAnchor: (anchor: string) => void;\n observe: (element: HTMLElement | null) => void;\n unobserve: (element: HTMLElement | null) => void;\n};\n\nconst ViewportAnchorContext = createContext<AnchorContextType | undefined>(\n undefined,\n);\n\nexport const useViewportAnchor = () => {\n const context = useContext(ViewportAnchorContext);\n\n if (!context) {\n throw new Error(\n \"useViewportAnchor must be used within a CurrentAnchorProvider\",\n );\n }\n\n return context;\n};\n\nexport const useRegisterAnchorElement = () => {\n const elementRef = useRef<HTMLElement | null>(null);\n\n const { observe, unobserve } = useViewportAnchor();\n\n useEffect(() => {\n const element = elementRef.current;\n\n if (!element) return;\n\n observe(element);\n\n return () => unobserve(element);\n }, [observe, unobserve]);\n\n const setRef = useCallback((el: HTMLElement | null) => {\n if (!el) return;\n elementRef.current = el;\n }, []);\n\n return { ref: setRef };\n};\n\nexport const ViewportAnchorProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const [activeAnchor, setActiveAnchor] = useState(\"\");\n const observerRef = useRef<IntersectionObserver | null>(null);\n const registeredElements = useRef(new Set<HTMLElement>());\n\n useEffect(() => {\n observerRef.current = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting && entry.target.id) {\n setActiveAnchor(entry.target.id);\n }\n }\n },\n {\n // 115px is the height of the sticky header\n // see --header-height in `main.css`\n rootMargin: \"115px 0px -80% 0px\",\n threshold: 0.75,\n },\n );\n\n return () => observerRef.current?.disconnect();\n }, []);\n\n useEffect(() => {\n const elements = registeredElements.current;\n const handleScroll = () => {\n const hasReachedTop = window.scrollY === 0;\n const hasReachedBottom =\n window.innerHeight + window.scrollY >= document.body.scrollHeight;\n\n if (hasReachedTop) {\n // reset the active anchor when we reach the top\n setActiveAnchor(\"\");\n } else if (hasReachedBottom) {\n requestIdleCallback(() => {\n // set the last anchor when we reach the bottom\n const lastItem = Array.from(elements).pop();\n setActiveAnchor(lastItem?.id ?? \"\");\n });\n }\n };\n\n document.addEventListener(\"scroll\", handleScroll);\n\n return () => {\n elements.clear();\n document.removeEventListener(\"scroll\", handleScroll);\n };\n }, []);\n\n const observeFns = useMemo(() => {\n return {\n observe: (element: HTMLElement | null) => {\n if (!element || !observerRef.current) return;\n registeredElements.current.add(element);\n observerRef.current.observe(element);\n },\n unobserve: (element: HTMLElement | null) => {\n if (!element || !observerRef.current) return;\n registeredElements.current.delete(element);\n observerRef.current.unobserve(element);\n },\n };\n }, []);\n\n const value = useMemo(\n () => ({ activeAnchor, setActiveAnchor, ...observeFns }),\n [activeAnchor, setActiveAnchor, observeFns],\n );\n\n return (\n <ViewportAnchorContext.Provider value={value}>\n {children}\n </ViewportAnchorContext.Provider>\n );\n};\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","import React, { type ReactNode } from \"react\";\nimport { useRegisterAnchorElement } from \"./context/ViewportAnchorContext.js\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nconst heading = cva(\"group relative\", {\n variants: {\n level: {\n 6: \"text-md\",\n 5: \"text-lg\",\n 4: \"text-xl\",\n 3: \"text-xl font-semibold\",\n 2: \"text-2xl font-bold\",\n 1: \"text-4xl font-extrabold\",\n },\n },\n defaultVariants: {\n level: 1,\n },\n});\n\nconst getComponent = (level: number) => {\n switch (level) {\n case 1:\n return \"h1\";\n case 2:\n return \"h2\";\n case 3:\n return \"h3\";\n case 4:\n return \"h4\";\n case 5:\n return \"h5\";\n case 6:\n return \"h6\";\n default:\n return \"h1\";\n }\n};\n\nexport interface HeadingProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof heading> {\n children: ReactNode;\n className?: string;\n id?: string;\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n registerSidebarAnchor?: boolean;\n}\n\nexport const Heading: React.FC<HeadingProps> = ({\n level,\n children,\n id,\n className,\n registerSidebarAnchor,\n}) => {\n const Component = getComponent(level ?? 1);\n const { ref } = useRegisterAnchorElement();\n\n return (\n <Component\n className={heading({ className, level })}\n ref={registerSidebarAnchor ? ref : undefined}\n id={id}\n >\n {id && (\n <a\n href={`#${id}`}\n className=\"no-underline absolute text-primary -left-[0.8em] pr-2.5 opacity-0 group-hover:opacity-50 hover:!opacity-100 transition-opacity duration-200\"\n aria-label={`Link to ${id}`}\n >\n #\n </a>\n )}\n {children}\n </Component>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nexport const InlineCode = ({\n className,\n children,\n}: {\n className?: string;\n children: ReactNode;\n}) => (\n <code\n className={cn(\n className,\n \"font-mono border border-border p-1 py-0.5 rounded bg-border/50 dark:bg-border/70 whitespace-nowrap\",\n )}\n >\n {children}\n </code>\n);\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\nvar require_prism = __commonJS({\n \"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js\"(exports, module) {\n var Prism2 = function() {\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0;\n var plainTextGrammar = {};\n var _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/\\u00a0/g, \" \");\n }\n },\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function(o) {\n return Object.prototype.toString.call(o).slice(8, -1);\n },\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function(obj) {\n if (!obj[\"__id\"]) {\n Object.defineProperty(obj, \"__id\", { value: ++uniqueId });\n }\n return obj[\"__id\"];\n },\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n switch (_.util.type(o)) {\n case \"Object\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = /** @type {Record<string, any>} */\n {};\n visited[id] = clone;\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n return (\n /** @type {any} */\n clone\n );\n case \"Array\":\n id = _.util.objId(o);\n if (visited[id]) {\n return visited[id];\n }\n clone = [];\n visited[id] = clone;\n /** @type {Array} */\n /** @type {any} */\n o.forEach(function(v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n default:\n return o;\n }\n },\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function(element) {\n while (element) {\n var m = lang.exec(element.className);\n if (m) {\n return m[1].toLowerCase();\n }\n element = element.parentElement;\n }\n return \"none\";\n },\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function(element, language) {\n element.className = element.className.replace(RegExp(lang, \"gi\"), \"\");\n element.classList.add(\"language-\" + language);\n },\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function(element, className, defaultActivation) {\n var no = \"no-\" + className;\n while (element) {\n var classList = element.classList;\n if (classList.contains(className)) {\n return true;\n }\n if (classList.contains(no)) {\n return false;\n }\n element = element.parentElement;\n }\n return !!defaultActivation;\n }\n },\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function(id, redef) {\n var lang2 = _.util.clone(_.languages[id]);\n for (var key in redef) {\n lang2[key] = redef[key];\n }\n return lang2;\n },\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function(inside, before, insert, root) {\n root = root || /** @type {any} */\n _.languages;\n var grammar = root[inside];\n var ret = {};\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken];\n }\n }\n }\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token];\n }\n }\n }\n var old = root[inside];\n root[inside] = ret;\n _.languages.DFS(_.languages, function(key, value) {\n if (value === old && key != inside) {\n this[key] = ret;\n }\n });\n return ret;\n },\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {};\n var objId = _.util.objId;\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i);\n var property = o[i];\n var propertyType = _.util.type(property);\n if (propertyType === \"Object\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, null, visited);\n } else if (propertyType === \"Array\" && !visited[objId(property)]) {\n visited[objId(property)] = true;\n DFS(property, callback, i, visited);\n }\n }\n }\n }\n },\n plugins: {},\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function(text, grammar, language) {\n var env = {\n code: text,\n grammar,\n language\n };\n _.hooks.run(\"before-tokenize\", env);\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.');\n }\n env.tokens = _.tokenize(env.code, env.grammar);\n _.hooks.run(\"after-tokenize\", env);\n return Token.stringify(_.util.encode(env.tokens), env.language);\n },\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function(text, grammar) {\n var rest = grammar.rest;\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token];\n }\n delete grammar.rest;\n }\n var tokenList = new LinkedList();\n addAfter(tokenList, tokenList.head, text);\n matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n return toArray(tokenList);\n },\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function(name, callback) {\n var hooks2 = _.hooks.all;\n hooks2[name] = hooks2[name] || [];\n hooks2[name].push(callback);\n },\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function(name, env) {\n var callbacks = _.hooks.all[name];\n if (!callbacks || !callbacks.length) {\n return;\n }\n for (var i = 0, callback; callback = callbacks[i++]; ) {\n callback(env);\n }\n }\n },\n Token\n };\n function Token(type, content, alias, matchedStr) {\n this.type = type;\n this.content = content;\n this.alias = alias;\n this.length = (matchedStr || \"\").length | 0;\n }\n Token.stringify = function stringify(o, language) {\n if (typeof o == \"string\") {\n return o;\n }\n if (Array.isArray(o)) {\n var s = \"\";\n o.forEach(function(e) {\n s += stringify(e, language);\n });\n return s;\n }\n var env = {\n type: o.type,\n content: stringify(o.content, language),\n tag: \"span\",\n classes: [\"token\", o.type],\n attributes: {},\n language\n };\n var aliases = o.alias;\n if (aliases) {\n if (Array.isArray(aliases)) {\n Array.prototype.push.apply(env.classes, aliases);\n } else {\n env.classes.push(aliases);\n }\n }\n _.hooks.run(\"wrap\", env);\n var attributes = \"\";\n for (var name in env.attributes) {\n attributes += \" \" + name + '=\"' + (env.attributes[name] || \"\").replace(/\"/g, \"&quot;\") + '\"';\n }\n return \"<\" + env.tag + ' class=\"' + env.classes.join(\" \") + '\"' + attributes + \">\" + env.content + \"</\" + env.tag + \">\";\n };\n function matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos;\n var match = pattern.exec(text);\n if (match && lookbehind && match[1]) {\n var lookbehindLength = match[1].length;\n match.index += lookbehindLength;\n match[0] = match[0].slice(lookbehindLength);\n }\n return match;\n }\n function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue;\n }\n var patterns = grammar[token];\n patterns = Array.isArray(patterns) ? patterns : [patterns];\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + \",\" + j) {\n return;\n }\n var patternObj = patterns[j];\n var inside = patternObj.inside;\n var lookbehind = !!patternObj.lookbehind;\n var greedy = !!patternObj.greedy;\n var alias = patternObj.alias;\n if (greedy && !patternObj.pattern.global) {\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + \"g\");\n }\n var pattern = patternObj.pattern || patternObj;\n for (var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n if (rematch && pos >= rematch.reach) {\n break;\n }\n var str = currentNode.value;\n if (tokenList.length > text.length) {\n return;\n }\n if (str instanceof Token) {\n continue;\n }\n var removeCount = 1;\n var match;\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind);\n if (!match || match.index >= text.length) {\n break;\n }\n var from = match.index;\n var to = match.index + match[0].length;\n var p = pos;\n p += currentNode.value.length;\n while (from >= p) {\n currentNode = currentNode.next;\n p += currentNode.value.length;\n }\n p -= currentNode.value.length;\n pos = p;\n if (currentNode.value instanceof Token) {\n continue;\n }\n for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === \"string\"); k = k.next) {\n removeCount++;\n p += k.value.length;\n }\n removeCount--;\n str = text.slice(pos, p);\n match.index -= pos;\n } else {\n match = matchPattern(pattern, 0, str, lookbehind);\n if (!match) {\n continue;\n }\n }\n var from = match.index;\n var matchStr = match[0];\n var before = str.slice(0, from);\n var after = str.slice(from + matchStr.length);\n var reach = pos + str.length;\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach;\n }\n var removeFrom = currentNode.prev;\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before);\n pos += before.length;\n }\n removeRange(tokenList, removeFrom, removeCount);\n var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n currentNode = addAfter(tokenList, removeFrom, wrapped);\n if (after) {\n addAfter(tokenList, currentNode, after);\n }\n if (removeCount > 1) {\n var nestedRematch = {\n cause: token + \",\" + j,\n reach\n };\n matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach;\n }\n }\n }\n }\n }\n }\n function LinkedList() {\n var head = { value: null, prev: null, next: null };\n var tail = { value: null, prev: head, next: null };\n head.next = tail;\n this.head = head;\n this.tail = tail;\n this.length = 0;\n }\n function addAfter(list, node, value) {\n var next = node.next;\n var newNode = { value, prev: node, next };\n node.next = newNode;\n next.prev = newNode;\n list.length++;\n return newNode;\n }\n function removeRange(list, node, count) {\n var next = node.next;\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next;\n }\n node.next = next;\n next.prev = node;\n list.length -= i;\n }\n function toArray(list) {\n var array = [];\n var node = list.head.next;\n while (node !== list.tail) {\n array.push(node.value);\n node = node.next;\n }\n return array;\n }\n return _;\n }();\n module.exports = Prism2;\n Prism2.default = Prism2;\n }\n});\n\n// src/prism-langs.ts\nvar Prism = __toESM(require_prism());\nPrism.languages.markup = { comment: { pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/, greedy: true }, prolog: { pattern: /<\\?[\\s\\S]+?\\?>/, greedy: true }, doctype: { pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i, greedy: true, inside: { \"internal-subset\": { pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/, lookbehind: true, greedy: true, inside: null }, string: { pattern: /\"[^\"]*\"|'[^']*'/, greedy: true }, punctuation: /^<!|>$|[[\\]]/, \"doctype-tag\": /^DOCTYPE/i, name: /[^\\s<>'\"]+/ } }, cdata: { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, greedy: true }, tag: { pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/, greedy: true, inside: { tag: { pattern: /^<\\/?[^\\s>\\/]+/, inside: { punctuation: /^<\\/?/, namespace: /^[^\\s>\\/:]+:/ } }, \"special-attr\": [], \"attr-value\": { pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/, inside: { punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, { pattern: /^(\\s*)[\"']|[\"']$/, lookbehind: true }] } }, punctuation: /\\/?>/, \"attr-name\": { pattern: /[^\\s>\\/]+/, inside: { namespace: /^[^\\s>\\/:]+:/ } } } }, entity: [{ pattern: /&[\\da-z]{1,8};/i, alias: \"named-entity\" }, /&#x?[\\da-f]{1,8};/i] }, Prism.languages.markup.tag.inside[\"attr-value\"].inside.entity = Prism.languages.markup.entity, Prism.languages.markup.doctype.inside[\"internal-subset\"].inside = Prism.languages.markup, Prism.hooks.add(\"wrap\", function(e) {\n \"entity\" === e.type && (e.attributes.title = e.content.replace(/&amp;/, \"&\"));\n}), Object.defineProperty(Prism.languages.markup.tag, \"addInlined\", { value: function(e, n) {\n var t = {}, t = (t[\"language-\" + n] = { pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i, lookbehind: true, inside: Prism.languages[n] }, t.cdata = /^<!\\[CDATA\\[|\\]\\]>$/i, { \"included-cdata\": { pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i, inside: t } }), n = (t[\"language-\" + n] = { pattern: /[\\s\\S]+/, inside: Prism.languages[n] }, {});\n n[e] = { pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function() {\n return e;\n }), \"i\"), lookbehind: true, greedy: true, inside: t }, Prism.languages.insertBefore(\"markup\", \"cdata\", n);\n} }), Object.defineProperty(Prism.languages.markup.tag, \"addAttribute\", { value: function(e, n) {\n Prism.languages.markup.tag.inside[\"special-attr\"].push({ pattern: RegExp(/(^|[\"'\\s])/.source + \"(?:\" + e + \")\" + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source, \"i\"), lookbehind: true, inside: { \"attr-name\": /^[^\\s=]+/, \"attr-value\": { pattern: /=[\\s\\S]+/, inside: { value: { pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/, lookbehind: true, alias: [n, \"language-\" + n], inside: Prism.languages[n] }, punctuation: [{ pattern: /^=/, alias: \"attr-equals\" }, /\"|'/] } } } });\n} }), Prism.languages.html = Prism.languages.markup, Prism.languages.mathml = Prism.languages.markup, Prism.languages.svg = Prism.languages.markup, Prism.languages.xml = Prism.languages.extend(\"markup\", {}), Prism.languages.ssml = Prism.languages.xml, Prism.languages.atom = Prism.languages.xml, Prism.languages.rss = Prism.languages.xml, function(e) {\n var n = { pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/, alias: \"escape\" }, t = /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/, a = \"(?:[^\\\\\\\\-]|\" + t.source + \")\", a = RegExp(a + \"-\" + a), r = { pattern: /(<|')[^<>']+(?=[>']$)/, lookbehind: true, alias: \"variable\" };\n e.languages.regex = { \"char-class\": { pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/, lookbehind: true, inside: { \"char-class-negation\": { pattern: /(^\\[)\\^/, lookbehind: true, alias: \"operator\" }, \"char-class-punctuation\": { pattern: /^\\[|\\]$/, alias: \"punctuation\" }, range: { pattern: a, inside: { escape: t, \"range-punctuation\": { pattern: /-/, alias: \"operator\" } } }, \"special-escape\": n, \"char-set\": { pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, escape: t } }, \"special-escape\": n, \"char-set\": { pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i, alias: \"class-name\" }, backreference: [{ pattern: /\\\\(?![123][0-7]{2})[1-9]/, alias: \"keyword\" }, { pattern: /\\\\k<[^<>']+>/, alias: \"keyword\", inside: { \"group-name\": r } }], anchor: { pattern: /[$^]|\\\\[ABbGZz]/, alias: \"function\" }, escape: t, group: [{ pattern: /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/, alias: \"punctuation\", inside: { \"group-name\": r } }, { pattern: /\\)/, alias: \"punctuation\" }], quantifier: { pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/, alias: \"number\" }, alternation: { pattern: /\\|/, alias: \"keyword\" } };\n}(Prism), Prism.languages.clike = { comment: [{ pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, greedy: true }, \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i, lookbehind: true, inside: { punctuation: /[.\\\\]/ } }, keyword: /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/, boolean: /\\b(?:false|true)\\b/, function: /\\b\\w+(?=\\()/, number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i, operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.javascript = Prism.languages.extend(\"clike\", { \"class-name\": [Prism.languages.clike[\"class-name\"], { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/, lookbehind: true }], keyword: [{ pattern: /((?:^|\\})\\s*)catch\\b/, lookbehind: true }, { pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/, lookbehind: true }], function: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/, number: { pattern: RegExp(/(^|[^\\w$])/.source + \"(?:\" + /NaN|Infinity/.source + \"|\" + /0[bB][01]+(?:_[01]+)*n?/.source + \"|\" + /0[oO][0-7]+(?:_[0-7]+)*n?/.source + \"|\" + /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source + \"|\" + /\\d+(?:_\\d+)*n/.source + \"|\" + /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source + \")\" + /(?![\\w$])/.source), lookbehind: true }, operator: /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/ }), Prism.languages.javascript[\"class-name\"][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/, Prism.languages.insertBefore(\"javascript\", \"keyword\", { regex: { pattern: RegExp(/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source + /\\//.source + \"(?:\" + /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source + \"|\" + /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + \")\" + /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source), lookbehind: true, greedy: true, inside: { \"regex-source\": { pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/, lookbehind: true, alias: \"language-regex\", inside: Prism.languages.regex }, \"regex-delimiter\": /^\\/|\\/$/, \"regex-flags\": /^[a-z]+$/ } }, \"function-variable\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/, alias: \"function\" }, parameter: [{ pattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/, lookbehind: true, inside: Prism.languages.javascript }, { pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/, lookbehind: true, inside: Prism.languages.javascript }], constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/ }), Prism.languages.insertBefore(\"javascript\", \"string\", { hashbang: { pattern: /^#!.*/, greedy: true, alias: \"comment\" }, \"template-string\": { pattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/, lookbehind: true, inside: { \"interpolation-punctuation\": { pattern: /^\\$\\{|\\}$/, alias: \"punctuation\" }, rest: Prism.languages.javascript } }, string: /[\\s\\S]+/ } }, \"string-property\": { pattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m, lookbehind: true, greedy: true, alias: \"property\" } }), Prism.languages.insertBefore(\"javascript\", \"operator\", { \"literal-property\": { pattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m, lookbehind: true, alias: \"property\" } }), Prism.languages.markup && (Prism.languages.markup.tag.addInlined(\"script\", \"javascript\"), Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, \"javascript\")), Prism.languages.js = Prism.languages.javascript, Prism.languages.actionscript = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/, operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/ }), Prism.languages.actionscript[\"class-name\"].alias = \"function\", delete Prism.languages.actionscript.parameter, delete Prism.languages.actionscript[\"literal-property\"], Prism.languages.markup && Prism.languages.insertBefore(\"actionscript\", \"string\", { xml: { pattern: /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/, lookbehind: true, inside: Prism.languages.markup } }), function(e) {\n var n = /#(?!\\{).+/, t = { pattern: /#\\{[^}]+\\}/, alias: \"variable\" };\n e.languages.coffeescript = e.languages.extend(\"javascript\", { comment: n, string: [{ pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/, greedy: true }, { pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/, greedy: true, inside: { interpolation: t } }], keyword: /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/, \"class-member\": { pattern: /@(?!\\d)\\w+/, alias: \"variable\" } }), e.languages.insertBefore(\"coffeescript\", \"comment\", { \"multiline-comment\": { pattern: /###[\\s\\S]+?###/, alias: \"comment\" }, \"block-regex\": { pattern: /\\/{3}[\\s\\S]*?\\/{3}/, alias: \"regex\", inside: { comment: n, interpolation: t } } }), e.languages.insertBefore(\"coffeescript\", \"string\", { \"inline-javascript\": { pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/, inside: { delimiter: { pattern: /^`|`$/, alias: \"punctuation\" }, script: { pattern: /[\\s\\S]+/, alias: \"language-javascript\", inside: e.languages.javascript } } }, \"multiline-string\": [{ pattern: /'''[\\s\\S]*?'''/, greedy: true, alias: \"string\" }, { pattern: /\"\"\"[\\s\\S]*?\"\"\"/, greedy: true, alias: \"string\", inside: { interpolation: t } }] }), e.languages.insertBefore(\"coffeescript\", \"keyword\", { property: /(?!\\d)\\w+(?=\\s*:(?!:))/ }), delete e.languages.coffeescript[\"template-string\"], e.languages.coffee = e.languages.coffeescript;\n}(Prism), function(l) {\n var e = l.languages.javadoclike = { parameter: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m, lookbehind: true }, keyword: { pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m, lookbehind: true }, punctuation: /[{}]/ };\n Object.defineProperty(e, \"addSupport\", { value: function(e2, o) {\n (e2 = \"string\" == typeof e2 ? [e2] : e2).forEach(function(e3) {\n var n = function(e4) {\n e4.inside || (e4.inside = {}), e4.inside.rest = o;\n }, t = \"doc-comment\";\n if (a = l.languages[e3]) {\n var a, r = a[t];\n if ((r = r ? r : (a = l.languages.insertBefore(e3, \"comment\", { \"doc-comment\": { pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/, lookbehind: true, alias: \"comment\" } }))[t]) instanceof RegExp && (r = a[t] = { pattern: r }), Array.isArray(r))\n for (var s = 0, i = r.length; s < i; s++)\n r[s] instanceof RegExp && (r[s] = { pattern: r[s] }), n(r[s]);\n else\n n(r);\n }\n });\n } }), e.addSupport([\"java\", \"javascript\", \"php\"], e);\n}(Prism), function(e) {\n var n = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/, n = (e.languages.css = { comment: /\\/\\*[\\s\\S]*?\\*\\//, atrule: { pattern: RegExp(\"@[\\\\w-](?:\" + /[^;{\\s\"']|\\s+(?!\\s)/.source + \"|\" + n.source + \")*?\" + /(?:;|(?=\\s*\\{))/.source), inside: { rule: /^@[\\w-]+/, \"selector-function-argument\": { pattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/, lookbehind: true, alias: \"selector\" }, keyword: { pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/, lookbehind: true } } }, url: { pattern: RegExp(\"\\\\burl\\\\((?:\" + n.source + \"|\" + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + \")\\\\)\", \"i\"), greedy: true, inside: { function: /^url/i, punctuation: /^\\(|\\)$/, string: { pattern: RegExp(\"^\" + n.source + \"$\"), alias: \"url\" } } }, selector: { pattern: RegExp(`(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"'\\\\s]|\\\\s+(?![\\\\s{])|` + n.source + \")*(?=\\\\s*\\\\{)\"), lookbehind: true }, string: { pattern: n, greedy: true }, property: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i, lookbehind: true }, important: /!important\\b/i, function: { pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i, lookbehind: true }, punctuation: /[(){};:,]/ }, e.languages.css.atrule.inside.rest = e.languages.css, e.languages.markup);\n n && (n.tag.addInlined(\"style\", \"css\"), n.tag.addAttribute(\"style\", \"css\"));\n}(Prism), function(e) {\n var n = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/, n = (e.languages.css.selector = { pattern: e.languages.css.selector.pattern, lookbehind: true, inside: n = { \"pseudo-element\": /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/, \"pseudo-class\": /:[-\\w]+/, class: /\\.[-\\w]+/, id: /#[-\\w]+/, attribute: { pattern: RegExp(`\\\\[(?:[^[\\\\]\"']|` + n.source + \")*\\\\]\"), greedy: true, inside: { punctuation: /^\\[|\\]$/, \"case-sensitivity\": { pattern: /(\\s)[si]$/i, lookbehind: true, alias: \"keyword\" }, namespace: { pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/, lookbehind: true, inside: { punctuation: /\\|$/ } }, \"attr-name\": { pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/, lookbehind: true }, \"attr-value\": [n, { pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/, lookbehind: true }], operator: /[|~*^$]?=/ } }, \"n-th\": [{ pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/, lookbehind: true, inside: { number: /[\\dn]+/, operator: /[+-]/ } }, { pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i, lookbehind: true }], combinator: />|\\+|~|\\|\\|/, punctuation: /[(),]/ } }, e.languages.css.atrule.inside[\"selector-function-argument\"].inside = n, e.languages.insertBefore(\"css\", \"property\", { variable: { pattern: /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i, lookbehind: true } }), { pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/, lookbehind: true }), t = { pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/, lookbehind: true };\n e.languages.insertBefore(\"css\", \"function\", { operator: { pattern: /(\\s)[+\\-*\\/](?=\\s)/, lookbehind: true }, hexcode: { pattern: /\\B#[\\da-f]{3,8}\\b/i, alias: \"color\" }, color: [{ pattern: /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i, lookbehind: true }, { pattern: /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i, inside: { unit: n, number: t, function: /[\\w-]+(?=\\()/, punctuation: /[(),]/ } }], entity: /\\\\[\\da-f]{1,8}/i, unit: n, number: t });\n}(Prism), function(e) {\n var n = /[*&][^\\s[\\]{},]+/, t = /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/, a = \"(?:\" + t.source + \"(?:[ \t]+\" + n.source + \")?|\" + n.source + \"(?:[ \t]+\" + t.source + \")?)\", r = /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g, function() {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/.source;\n }), s = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source;\n function i(e2, n2) {\n n2 = (n2 || \"\").replace(/m/g, \"\") + \"m\";\n var t2 = /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<value>>/g, function() {\n return e2;\n });\n return RegExp(t2, n2);\n }\n e.languages.yaml = { scalar: { pattern: RegExp(/([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(/<<prop>>/g, function() {\n return a;\n })), lookbehind: true, alias: \"string\" }, comment: /#.*/, key: { pattern: RegExp(/((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source.replace(/<<prop>>/g, function() {\n return a;\n }).replace(/<<key>>/g, function() {\n return \"(?:\" + r + \"|\" + s + \")\";\n })), lookbehind: true, greedy: true, alias: \"atrule\" }, directive: { pattern: /(^[ \\t]*)%.+/m, lookbehind: true, alias: \"important\" }, datetime: { pattern: i(/\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/.source), lookbehind: true, alias: \"number\" }, boolean: { pattern: i(/false|true/.source, \"i\"), lookbehind: true, alias: \"important\" }, null: { pattern: i(/null|~/.source, \"i\"), lookbehind: true, alias: \"important\" }, string: { pattern: i(s), lookbehind: true, greedy: true }, number: { pattern: i(/[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/.source, \"i\"), lookbehind: true }, tag: t, important: n, punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./ }, e.languages.yml = e.languages.yaml;\n}(Prism), function(o) {\n var n = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source;\n function e(e2) {\n return e2 = e2.replace(/<inner>/g, function() {\n return n;\n }), RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + \"(?:\" + e2 + \")\");\n }\n var t = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/.source, a = /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(/__/g, function() {\n return t;\n }), r = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/.source, l = (o.languages.markdown = o.languages.extend(\"markup\", {}), o.languages.insertBefore(\"markdown\", \"prolog\", { \"front-matter-block\": { pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/, lookbehind: true, greedy: true, inside: { punctuation: /^---|---$/, \"front-matter\": { pattern: /\\S+(?:\\s+\\S+)*/, alias: [\"yaml\", \"language-yaml\"], inside: o.languages.yaml } } }, blockquote: { pattern: /^>(?:[\\t ]*>)*/m, alias: \"punctuation\" }, table: { pattern: RegExp(\"^\" + a + r + \"(?:\" + a + \")*\", \"m\"), inside: { \"table-data-rows\": { pattern: RegExp(\"^(\" + a + r + \")(?:\" + a + \")*$\"), lookbehind: true, inside: { \"table-data\": { pattern: RegExp(t), inside: o.languages.markdown }, punctuation: /\\|/ } }, \"table-line\": { pattern: RegExp(\"^(\" + a + \")\" + r + \"$\"), lookbehind: true, inside: { punctuation: /\\||:?-{3,}:?/ } }, \"table-header-row\": { pattern: RegExp(\"^\" + a + \"$\"), inside: { \"table-header\": { pattern: RegExp(t), alias: \"important\", inside: o.languages.markdown }, punctuation: /\\|/ } } } }, code: [{ pattern: /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/, lookbehind: true, alias: \"keyword\" }, { pattern: /^```[\\s\\S]*?^```$/m, greedy: true, inside: { \"code-block\": { pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m, lookbehind: true }, \"code-language\": { pattern: /^(```).+/, lookbehind: true }, punctuation: /```/ } }], title: [{ pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m, alias: \"important\", inside: { punctuation: /==+$|--+$/ } }, { pattern: /(^\\s*)#.+/m, lookbehind: true, alias: \"important\", inside: { punctuation: /^#+|#+$/ } }], hr: { pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m, lookbehind: true, alias: \"punctuation\" }, list: { pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m, lookbehind: true, alias: \"punctuation\" }, \"url-reference\": { pattern: /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/, inside: { variable: { pattern: /^(!?\\[)[^\\]]+/, lookbehind: true }, string: /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/, punctuation: /^[\\[\\]!:]|[<>]/ }, alias: \"url\" }, bold: { pattern: e(/\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^..)[\\s\\S]+(?=..$)/, lookbehind: true, inside: {} }, punctuation: /\\*\\*|__/ } }, italic: { pattern: e(/\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^.)[\\s\\S]+(?=.$)/, lookbehind: true, inside: {} }, punctuation: /[*_]/ } }, strike: { pattern: e(/(~~?)(?:(?!~)<inner>)+\\2/.source), lookbehind: true, greedy: true, inside: { content: { pattern: /(^~~?)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: {} }, punctuation: /~~?/ } }, \"code-snippet\": { pattern: /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/, lookbehind: true, greedy: true, alias: [\"code\", \"keyword\"] }, url: { pattern: e(/!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/.source), lookbehind: true, greedy: true, inside: { operator: /^!/, content: { pattern: /(^\\[)[^\\]]+(?=\\])/, lookbehind: true, inside: {} }, variable: { pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/, lookbehind: true }, url: { pattern: /(^\\]\\()[^\\s)]+/, lookbehind: true }, string: { pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/, lookbehind: true } } } }), [\"url\", \"bold\", \"italic\", \"strike\"].forEach(function(n2) {\n [\"url\", \"bold\", \"italic\", \"strike\", \"code-snippet\"].forEach(function(e2) {\n n2 !== e2 && (o.languages.markdown[n2].inside.content.inside[e2] = o.languages.markdown[e2]);\n });\n }), o.hooks.add(\"after-tokenize\", function(e2) {\n \"markdown\" !== e2.language && \"md\" !== e2.language || !function e3(n2) {\n if (n2 && \"string\" != typeof n2)\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r2, s = n2[t2];\n \"code\" !== s.type ? e3(s.content) : (r2 = s.content[1], s = s.content[3], r2 && s && \"code-language\" === r2.type && \"code-block\" === s.type && \"string\" == typeof r2.content && (r2 = r2.content.replace(/\\b#/g, \"sharp\").replace(/\\b\\+\\+/g, \"pp\"), r2 = \"language-\" + (r2 = (/[a-z][\\w-]*/i.exec(r2) || [\"\"])[0].toLowerCase()), s.alias ? \"string\" == typeof s.alias ? s.alias = [s.alias, r2] : s.alias.push(r2) : s.alias = [r2]));\n }\n }(e2.tokens);\n }), o.hooks.add(\"wrap\", function(e2) {\n if (\"code-block\" === e2.type) {\n for (var n2 = \"\", t2 = 0, a2 = e2.classes.length; t2 < a2; t2++) {\n var r2 = e2.classes[t2], r2 = /language-(.+)/.exec(r2);\n if (r2) {\n n2 = r2[1];\n break;\n }\n }\n var s, i = o.languages[n2];\n i ? e2.content = o.highlight(function(e3) {\n e3 = e3.replace(l, \"\");\n return e3 = e3.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function(e4, n3) {\n var t3;\n return \"#\" === (n3 = n3.toLowerCase())[0] ? (t3 = \"x\" === n3[1] ? parseInt(n3.slice(2), 16) : Number(n3.slice(1)), c(t3)) : u[n3] || e4;\n });\n }(e2.content), i, n2) : n2 && \"none\" !== n2 && o.plugins.autoloader && (s = \"md-\" + (/* @__PURE__ */ new Date()).valueOf() + \"-\" + Math.floor(1e16 * Math.random()), e2.attributes.id = s, o.plugins.autoloader.loadLanguages(n2, function() {\n var e3 = document.getElementById(s);\n e3 && (e3.innerHTML = o.highlight(e3.textContent, o.languages[n2], n2));\n }));\n }\n }), RegExp(o.languages.markup.tag.pattern.source, \"gi\")), u = { amp: \"&\", lt: \"<\", gt: \">\", quot: '\"' }, c = String.fromCodePoint || String.fromCharCode;\n o.languages.md = o.languages.markdown;\n}(Prism), Prism.languages.graphql = { comment: /#.*/, description: { pattern: /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i, greedy: true, alias: \"string\", inside: { \"language-markdown\": { pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/, lookbehind: true, inside: Prism.languages.markdown } } }, string: { pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/, greedy: true }, number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i, boolean: /\\b(?:false|true)\\b/, variable: /\\$[a-z_]\\w*/i, directive: { pattern: /@[a-z_]\\w*/i, alias: \"function\" }, \"attr-name\": { pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i, greedy: true }, \"atom-input\": { pattern: /\\b[A-Z]\\w*Input\\b/, alias: \"class-name\" }, scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/, constant: /\\b[A-Z][A-Z_\\d]*\\b/, \"class-name\": { pattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/, lookbehind: true }, fragment: { pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-mutation\": { pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, \"definition-query\": { pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/, lookbehind: true, alias: \"function\" }, keyword: /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/, operator: /[!=|&]|\\.{3}/, \"property-query\": /\\w+(?=\\s*\\()/, object: /\\w+(?=\\s*\\{)/, punctuation: /[!(){}\\[\\]:=,]/, property: /\\w+/ }, Prism.hooks.add(\"after-tokenize\", function(e) {\n if (\"graphql\" === e.language)\n for (var i = e.tokens.filter(function(e2) {\n return \"string\" != typeof e2 && \"comment\" !== e2.type && \"scalar\" !== e2.type;\n }), o = 0; o < i.length; ) {\n var n = i[o++];\n if (\"keyword\" === n.type && \"mutation\" === n.content) {\n var t = [];\n if (p([\"definition-mutation\", \"punctuation\"]) && \"(\" === c(1).content) {\n o += 2;\n var a = d(/^\\($/, /^\\)$/);\n if (-1 === a)\n continue;\n for (; o < a; o++) {\n var r = c(0);\n \"variable\" === r.type && (g(r, \"variable-input\"), t.push(r.content));\n }\n o = a + 1;\n }\n if (p([\"punctuation\", \"property-query\"]) && \"{\" === c(0).content && (o++, g(c(0), \"property-mutation\"), 0 < t.length)) {\n var s = d(/^\\{$/, /^\\}$/);\n if (-1 !== s)\n for (var l = o; l < s; l++) {\n var u = i[l];\n \"variable\" === u.type && 0 <= t.indexOf(u.content) && g(u, \"variable-input\");\n }\n }\n }\n }\n function c(e2) {\n return i[o + e2];\n }\n function p(e2, n2) {\n n2 = n2 || 0;\n for (var t2 = 0; t2 < e2.length; t2++) {\n var a2 = c(t2 + n2);\n if (!a2 || a2.type !== e2[t2])\n return;\n }\n return 1;\n }\n function d(e2, n2) {\n for (var t2 = 1, a2 = o; a2 < i.length; a2++) {\n var r2 = i[a2], s2 = r2.content;\n if (\"punctuation\" === r2.type && \"string\" == typeof s2) {\n if (e2.test(s2))\n t2++;\n else if (n2.test(s2) && 0 === --t2)\n return a2;\n }\n }\n return -1;\n }\n function g(e2, n2) {\n var t2 = e2.alias;\n t2 ? Array.isArray(t2) || (e2.alias = t2 = [t2]) : e2.alias = t2 = [], t2.push(n2);\n }\n}), Prism.languages.sql = { comment: { pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/, lookbehind: true }, variable: [{ pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/, greedy: true }, /@[\\w.$]+/], string: { pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/, greedy: true, lookbehind: true }, identifier: { pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/, greedy: true, lookbehind: true, inside: { punctuation: /^`|`$/ } }, function: /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i, keyword: /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i, boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i, number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i, operator: /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i, punctuation: /[;[\\]()`,.]/ }, function(b) {\n var e = b.languages.javascript[\"template-string\"], t = e.pattern.source, m = e.inside.interpolation, f = m.inside[\"interpolation-punctuation\"], s = m.pattern.source;\n function n(e2, n2) {\n if (b.languages[e2])\n return { pattern: RegExp(\"((?:\" + n2 + \")\\\\s*)\" + t), lookbehind: true, greedy: true, inside: { \"template-punctuation\": { pattern: /^`|`$/, alias: \"string\" }, \"embedded-code\": { pattern: /[\\s\\S]+/, alias: e2 } } };\n }\n function h(e2, n2, t2) {\n e2 = { code: e2, grammar: n2, language: t2 };\n return b.hooks.run(\"before-tokenize\", e2), e2.tokens = b.tokenize(e2.code, e2.grammar), b.hooks.run(\"after-tokenize\", e2), e2.tokens;\n }\n function l(a2, e2, r) {\n var n2 = b.tokenize(a2, { interpolation: { pattern: RegExp(s), lookbehind: true } }), p = 0, d = {}, n2 = h(n2.map(function(e3) {\n if (\"string\" == typeof e3)\n return e3;\n for (var n3, t2, e3 = e3.content; -1 !== a2.indexOf((t2 = p++, n3 = \"___\" + r.toUpperCase() + \"_\" + t2 + \"___\")); )\n ;\n return d[n3] = e3, n3;\n }).join(\"\"), e2, r), g = Object.keys(d);\n return p = 0, function e3(n3) {\n for (var t2 = 0; t2 < n3.length; t2++) {\n if (p >= g.length)\n return;\n var a3, r2, s2, i, o, l2, u2, c = n3[t2];\n \"string\" == typeof c || \"string\" == typeof c.content ? (a3 = g[p], -1 !== (u2 = (l2 = \"string\" == typeof c ? c : c.content).indexOf(a3)) && (++p, r2 = l2.substring(0, u2), o = d[a3], s2 = void 0, (i = {})[\"interpolation-punctuation\"] = f, 3 === (i = b.tokenize(o, i)).length && ((s2 = [1, 1]).push.apply(s2, h(i[1], b.languages.javascript, \"javascript\")), i.splice.apply(i, s2)), s2 = new b.Token(\"interpolation\", i, m.alias, o), i = l2.substring(u2 + a3.length), o = [], r2 && o.push(r2), o.push(s2), i && (e3(l2 = [i]), o.push.apply(o, l2)), \"string\" == typeof c ? (n3.splice.apply(n3, [t2, 1].concat(o)), t2 += o.length - 1) : c.content = o)) : (u2 = c.content, Array.isArray(u2) ? e3(u2) : e3([u2]));\n }\n }(n2), new b.Token(r, n2, \"language-\" + r, a2);\n }\n b.languages.javascript[\"template-string\"] = [n(\"css\", /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source), n(\"html\", /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), n(\"svg\", /\\bsvg/.source), n(\"markdown\", /\\b(?:markdown|md)/.source), n(\"graphql\", /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source), n(\"sql\", /\\bsql/.source), e].filter(Boolean);\n var a = { javascript: true, js: true, typescript: true, ts: true, jsx: true, tsx: true };\n function u(e2) {\n return \"string\" == typeof e2 ? e2 : Array.isArray(e2) ? e2.map(u).join(\"\") : u(e2.content);\n }\n b.hooks.add(\"after-tokenize\", function(e2) {\n e2.language in a && !function e3(n2) {\n for (var t2 = 0, a2 = n2.length; t2 < a2; t2++) {\n var r, s2, i, o = n2[t2];\n \"string\" != typeof o && (r = o.content, Array.isArray(r) ? \"template-string\" === o.type ? (o = r[1], 3 === r.length && \"string\" != typeof o && \"embedded-code\" === o.type && (s2 = u(o), o = o.alias, o = Array.isArray(o) ? o[0] : o, i = b.languages[o]) && (r[1] = l(s2, i, o))) : e3(r) : \"string\" != typeof r && e3([r]));\n }\n }(e2.tokens);\n });\n}(Prism), function(e) {\n e.languages.typescript = e.languages.extend(\"javascript\", { \"class-name\": { pattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/, lookbehind: true, greedy: true, inside: null }, builtin: /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/ }), e.languages.typescript.keyword.push(/\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, /\\btype\\b(?=\\s*(?:[\\{*]|$))/), delete e.languages.typescript.parameter, delete e.languages.typescript[\"literal-property\"];\n var n = e.languages.extend(\"typescript\", {});\n delete n[\"class-name\"], e.languages.typescript[\"class-name\"].inside = n, e.languages.insertBefore(\"typescript\", \"function\", { decorator: { pattern: /@[$\\w\\xA0-\\uFFFF]+/, inside: { at: { pattern: /^@/, alias: \"operator\" }, function: /^[\\s\\S]+/ } }, \"generic-function\": { pattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/, greedy: true, inside: { function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: n } } } }), e.languages.ts = e.languages.typescript;\n}(Prism), function(e) {\n var n = e.languages.javascript, t = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source, a = \"(@(?:arg|argument|param|property)\\\\s+(?:\" + t + \"\\\\s+)?)\";\n e.languages.jsdoc = e.languages.extend(\"javadoclike\", { parameter: { pattern: RegExp(a + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source), lookbehind: true, inside: { punctuation: /\\./ } } }), e.languages.insertBefore(\"jsdoc\", \"keyword\", { \"optional-parameter\": { pattern: RegExp(a + /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source), lookbehind: true, inside: { parameter: { pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/, lookbehind: true, inside: { punctuation: /\\./ } }, code: { pattern: /(=)[\\s\\S]*(?=\\]$)/, lookbehind: true, inside: n, alias: \"language-javascript\" }, punctuation: /[=[\\]]/ } }, \"class-name\": [{ pattern: RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(/<TYPE>/g, function() {\n return t;\n })), lookbehind: true, inside: { punctuation: /\\./ } }, { pattern: RegExp(\"(@[a-z]+\\\\s+)\" + t), lookbehind: true, inside: { string: n.string, number: n.number, boolean: n.boolean, keyword: e.languages.typescript.keyword, operator: /=>|\\.\\.\\.|[&|?:*]/, punctuation: /[.,;=<>{}()[\\]]/ } }], example: { pattern: /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/, lookbehind: true, inside: { code: { pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m, lookbehind: true, inside: n, alias: \"language-javascript\" } } } }), e.languages.javadoclike.addSupport(\"javascript\", e.languages.jsdoc);\n}(Prism), function(e) {\n e.languages.flow = e.languages.extend(\"javascript\", {}), e.languages.insertBefore(\"flow\", \"keyword\", { type: [{ pattern: /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\\b/, alias: \"class-name\" }] }), e.languages.flow[\"function-variable\"].pattern = /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i, delete e.languages.flow.parameter, e.languages.insertBefore(\"flow\", \"operator\", { \"flow-punctuation\": { pattern: /\\{\\||\\|\\}/, alias: \"punctuation\" } }), Array.isArray(e.languages.flow.keyword) || (e.languages.flow.keyword = [e.languages.flow.keyword]), e.languages.flow.keyword.unshift({ pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/, lookbehind: true }, { pattern: /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/, lookbehind: true });\n}(Prism), Prism.languages.n4js = Prism.languages.extend(\"javascript\", { keyword: /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/ }), Prism.languages.insertBefore(\"n4js\", \"constant\", { annotation: { pattern: /@+\\w+/, alias: \"operator\" } }), Prism.languages.n4jsd = Prism.languages.n4js, function(e) {\n function n(e2, n2) {\n return RegExp(e2.replace(/<ID>/g, function() {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source;\n }), n2);\n }\n e.languages.insertBefore(\"javascript\", \"function-variable\", { \"method-variable\": { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript[\"function-variable\"].pattern.source), lookbehind: true, alias: [\"function-variable\", \"method\", \"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"function\", { method: { pattern: RegExp(\"(\\\\.\\\\s*)\" + e.languages.javascript.function.source), lookbehind: true, alias: [\"function\", \"property-access\"] } }), e.languages.insertBefore(\"javascript\", \"constant\", { \"known-class-name\": [{ pattern: /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/, alias: \"class-name\" }, { pattern: /\\b(?:[A-Z]\\w*)Error\\b/, alias: \"class-name\" }] }), e.languages.insertBefore(\"javascript\", \"keyword\", { imports: { pattern: n(/(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/.source), lookbehind: true, inside: e.languages.javascript }, exports: { pattern: n(/(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/.source), lookbehind: true, inside: e.languages.javascript } }), e.languages.javascript.keyword.unshift({ pattern: /\\b(?:as|default|export|from|import)\\b/, alias: \"module\" }, { pattern: /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/, alias: \"control-flow\" }, { pattern: /\\bnull\\b/, alias: [\"null\", \"nil\"] }, { pattern: /\\bundefined\\b/, alias: \"nil\" }), e.languages.insertBefore(\"javascript\", \"operator\", { spread: { pattern: /\\.{3}/, alias: \"operator\" }, arrow: { pattern: /=>/, alias: \"operator\" } }), e.languages.insertBefore(\"javascript\", \"punctuation\", { \"property-access\": { pattern: n(/(\\.\\s*)#?<ID>/.source), lookbehind: true }, \"maybe-class-name\": { pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/, lookbehind: true }, dom: { pattern: /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/, alias: \"variable\" }, console: { pattern: /\\bconsole(?=\\s*\\.)/, alias: \"class-name\" } });\n for (var t = [\"function\", \"function-variable\", \"method\", \"method-variable\", \"property-access\"], a = 0; a < t.length; a++) {\n var r = t[a], s = e.languages.javascript[r], r = (s = \"RegExp\" === e.util.type(s) ? e.languages.javascript[r] = { pattern: s } : s).inside || {};\n (s.inside = r)[\"maybe-class-name\"] = /^[A-Z][\\s\\S]*/;\n }\n}(Prism), function(s) {\n var e = s.util.clone(s.languages.javascript), t = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source, a = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source, r = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source;\n function n(e2, n2) {\n return e2 = e2.replace(/<S>/g, function() {\n return t;\n }).replace(/<BRACES>/g, function() {\n return a;\n }).replace(/<SPREAD>/g, function() {\n return r;\n }), RegExp(e2, n2);\n }\n r = n(r).source, s.languages.jsx = s.languages.extend(\"markup\", e), s.languages.jsx.tag.pattern = n(/<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/.source), s.languages.jsx.tag.inside.tag.pattern = /^<\\/?[^\\s>\\/]*/, s.languages.jsx.tag.inside[\"attr-value\"].pattern = /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/, s.languages.jsx.tag.inside.tag.inside[\"class-name\"] = /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/, s.languages.jsx.tag.inside.comment = e.comment, s.languages.insertBefore(\"inside\", \"attr-name\", { spread: { pattern: n(/<SPREAD>/.source), inside: s.languages.jsx } }, s.languages.jsx.tag), s.languages.insertBefore(\"inside\", \"special-attr\", { script: { pattern: n(/=<BRACES>/.source), alias: \"language-javascript\", inside: { \"script-punctuation\": { pattern: /^=(?=\\{)/, alias: \"punctuation\" }, rest: s.languages.jsx } } }, s.languages.jsx.tag);\n function i(e2) {\n for (var n2 = [], t2 = 0; t2 < e2.length; t2++) {\n var a2 = e2[t2], r2 = false;\n \"string\" != typeof a2 && (\"tag\" === a2.type && a2.content[0] && \"tag\" === a2.content[0].type ? \"</\" === a2.content[0].content[0].content ? 0 < n2.length && n2[n2.length - 1].tagName === o(a2.content[0].content[1]) && n2.pop() : \"/>\" !== a2.content[a2.content.length - 1].content && n2.push({ tagName: o(a2.content[0].content[1]), openedBraces: 0 }) : 0 < n2.length && \"punctuation\" === a2.type && \"{\" === a2.content ? n2[n2.length - 1].openedBraces++ : 0 < n2.length && 0 < n2[n2.length - 1].openedBraces && \"punctuation\" === a2.type && \"}\" === a2.content ? n2[n2.length - 1].openedBraces-- : r2 = true), (r2 || \"string\" == typeof a2) && 0 < n2.length && 0 === n2[n2.length - 1].openedBraces && (r2 = o(a2), t2 < e2.length - 1 && (\"string\" == typeof e2[t2 + 1] || \"plain-text\" === e2[t2 + 1].type) && (r2 += o(e2[t2 + 1]), e2.splice(t2 + 1, 1)), 0 < t2 && (\"string\" == typeof e2[t2 - 1] || \"plain-text\" === e2[t2 - 1].type) && (r2 = o(e2[t2 - 1]) + r2, e2.splice(t2 - 1, 1), t2--), e2[t2] = new s.Token(\"plain-text\", r2, null, r2)), a2.content && \"string\" != typeof a2.content && i(a2.content);\n }\n }\n var o = function(e2) {\n return e2 ? \"string\" == typeof e2 ? e2 : \"string\" == typeof e2.content ? e2.content : e2.content.map(o).join(\"\") : \"\";\n };\n s.hooks.add(\"after-tokenize\", function(e2) {\n \"jsx\" !== e2.language && \"tsx\" !== e2.language || i(e2.tokens);\n });\n}(Prism), function(e) {\n var n = e.util.clone(e.languages.typescript), n = (e.languages.tsx = e.languages.extend(\"jsx\", n), delete e.languages.tsx.parameter, delete e.languages.tsx[\"literal-property\"], e.languages.tsx.tag);\n n.pattern = RegExp(/(^|[^\\w$]|(?=<\\/))/.source + \"(?:\" + n.pattern.source + \")\", n.pattern.flags), n.lookbehind = true;\n}(Prism), Prism.languages.swift = { comment: { pattern: /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/, lookbehind: true, greedy: true }, \"string-literal\": [{ pattern: RegExp(/(^|[^\"#])/.source + \"(?:\" + /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/.source + \"|\" + /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/.source + \")\" + /(?![\"#])/.source), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\\\($/, alias: \"punctuation\" }, punctuation: /\\\\(?=[\\r\\n])/, string: /[\\s\\S]+/ } }, { pattern: RegExp(/(^|[^\"#])(#+)/.source + \"(?:\" + /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/.source + \"|\" + /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source + \")\\\\2\"), lookbehind: true, greedy: true, inside: { interpolation: { pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/, lookbehind: true, inside: null }, \"interpolation-punctuation\": { pattern: /^\\)|\\\\#+\\($/, alias: \"punctuation\" }, string: /[\\s\\S]+/ } }], directive: { pattern: RegExp(/#/.source + \"(?:\" + /(?:elseif|if)\\b/.source + \"(?:[ \t]*\" + /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/.source + \")+|\" + /(?:else|endif)\\b/.source + \")\"), alias: \"property\", inside: { \"directive-name\": /^#\\w+/, boolean: /\\b(?:false|true)\\b/, number: /\\b\\d+(?:\\.\\d+)*\\b/, operator: /!|&&|\\|\\||[<>]=?/, punctuation: /[(),]/ } }, literal: { pattern: /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/, alias: \"constant\" }, \"other-directive\": { pattern: /#\\w+\\b/, alias: \"property\" }, attribute: { pattern: /@\\w+/, alias: \"atrule\" }, \"function-definition\": { pattern: /(\\bfunc\\s+)\\w+/, lookbehind: true, alias: \"function\" }, label: { pattern: /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/, lookbehind: true, alias: \"important\" }, keyword: /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/, boolean: /\\b(?:false|true)\\b/, nil: { pattern: /\\bnil\\b/, alias: \"constant\" }, \"short-argument\": /\\$\\d+\\b/, omit: { pattern: /\\b_\\b/, alias: \"keyword\" }, number: /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i, \"class-name\": /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/, operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/, punctuation: /[{}[\\]();,.:\\\\]/ }, Prism.languages.swift[\"string-literal\"].forEach(function(e) {\n e.inside.interpolation.inside = Prism.languages.swift;\n}), function(e) {\n e.languages.kotlin = e.languages.extend(\"clike\", { keyword: { pattern: /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/, lookbehind: true }, function: [{ pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/, greedy: true }, { pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/, lookbehind: true, greedy: true }], number: /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/, operator: /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/ }), delete e.languages.kotlin[\"class-name\"];\n var n = { \"interpolation-punctuation\": { pattern: /^\\$\\{?|\\}$/, alias: \"punctuation\" }, expression: { pattern: /[\\s\\S]+/, inside: e.languages.kotlin } };\n e.languages.insertBefore(\"kotlin\", \"string\", { \"string-literal\": [{ pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/, alias: \"multiline\", inside: { interpolation: { pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, inside: n }, string: /[\\s\\S]+/ } }, { pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/, alias: \"singleline\", inside: { interpolation: { pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i, lookbehind: true, inside: n }, string: /[\\s\\S]+/ } }], char: { pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/, greedy: true } }), delete e.languages.kotlin.string, e.languages.insertBefore(\"kotlin\", \"keyword\", { annotation: { pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/, alias: \"builtin\" } }), e.languages.insertBefore(\"kotlin\", \"function\", { label: { pattern: /\\b\\w+@|@\\w+\\b/, alias: \"symbol\" } }), e.languages.kt = e.languages.kotlin, e.languages.kts = e.languages.kotlin;\n}(Prism), Prism.languages.c = Prism.languages.extend(\"clike\", { comment: { pattern: /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, greedy: true }, string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, \"class-name\": { pattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/, lookbehind: true }, keyword: /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/, function: /\\b[a-z_]\\w*(?=\\s*\\()/i, number: /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i, operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/ }), Prism.languages.insertBefore(\"c\", \"string\", { char: { pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/, greedy: true } }), Prism.languages.insertBefore(\"c\", \"string\", { macro: { pattern: /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im, lookbehind: true, greedy: true, alias: \"property\", inside: { string: [{ pattern: /^(#\\s*include\\s*)<[^>]+>/, lookbehind: true }, Prism.languages.c.string], char: Prism.languages.c.char, comment: Prism.languages.c.comment, \"macro-name\": [{ pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i, lookbehind: true }, { pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i, lookbehind: true, alias: \"function\" }], directive: { pattern: /^(#\\s*)[a-z]+/, lookbehind: true, alias: \"keyword\" }, \"directive-hash\": /^#/, punctuation: /##|\\\\(?=[\\r\\n])/, expression: { pattern: /\\S[\\s\\S]*/, inside: Prism.languages.c } } } }), Prism.languages.insertBefore(\"c\", \"function\", { constant: /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/ }), delete Prism.languages.c.boolean, Prism.languages.objectivec = Prism.languages.extend(\"c\", { string: { pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/, greedy: true }, keyword: /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/, operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/ }), delete Prism.languages.objectivec[\"class-name\"], Prism.languages.objc = Prism.languages.objectivec, Prism.languages.reason = Prism.languages.extend(\"clike\", { string: { pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/, greedy: true }, \"class-name\": /\\b[A-Z]\\w*/, keyword: /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/, operator: /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/ }), Prism.languages.insertBefore(\"reason\", \"class-name\", { char: { pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/, greedy: true }, constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/, label: { pattern: /\\b[a-z]\\w*(?=::)/, alias: \"symbol\" } }), delete Prism.languages.reason.function, function(e) {\n for (var n = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source, t = 0; t < 2; t++)\n n = n.replace(/<self>/g, function() {\n return n;\n });\n n = n.replace(/<self>/g, function() {\n return /[^\\s\\S]/.source;\n }), e.languages.rust = { comment: [{ pattern: RegExp(/(^|[^\\\\])/.source + n), lookbehind: true, greedy: true }, { pattern: /(^|[^\\\\:])\\/\\/.*/, lookbehind: true, greedy: true }], string: { pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/, greedy: true }, char: { pattern: /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/, greedy: true }, attribute: { pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/, greedy: true, alias: \"attr-name\", inside: { string: null } }, \"closure-params\": { pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/, lookbehind: true, greedy: true, inside: { \"closure-punctuation\": { pattern: /^\\||\\|$/, alias: \"punctuation\" }, rest: null } }, \"lifetime-annotation\": { pattern: /'\\w+/, alias: \"symbol\" }, \"fragment-specifier\": { pattern: /(\\$\\w+:)[a-z]+/, lookbehind: true, alias: \"punctuation\" }, variable: /\\$\\w+/, \"function-definition\": { pattern: /(\\bfn\\s+)\\w+/, lookbehind: true, alias: \"function\" }, \"type-definition\": { pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/, lookbehind: true, alias: \"class-name\" }, \"module-declaration\": [{ pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/, lookbehind: true, alias: \"namespace\" }, { pattern: /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/, lookbehind: true, alias: \"namespace\", inside: { punctuation: /::/ } }], keyword: [/\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/], function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/, macro: { pattern: /\\b\\w+!/, alias: \"property\" }, constant: /\\b[A-Z_][A-Z_\\d]+\\b/, \"class-name\": /\\b[A-Z]\\w*\\b/, namespace: { pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/, inside: { punctuation: /::/ } }, number: /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/, boolean: /\\b(?:false|true)\\b/, punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/, operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/ }, e.languages.rust[\"closure-params\"].inside.rest = e.languages.rust, e.languages.rust.attribute.inside.string = e.languages.rust.string;\n}(Prism), Prism.languages.go = Prism.languages.extend(\"clike\", { string: { pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/, lookbehind: true, greedy: true }, keyword: /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/, boolean: /\\b(?:_|false|iota|nil|true)\\b/, number: [/\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i], operator: /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./, builtin: /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/ }), Prism.languages.insertBefore(\"go\", \"string\", { char: { pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/, greedy: true } }), delete Prism.languages.go[\"class-name\"], function(e) {\n var n = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/, t = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(/<keyword>/g, function() {\n return n.source;\n });\n e.languages.cpp = e.languages.extend(\"c\", { \"class-name\": [{ pattern: RegExp(/(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(/<keyword>/g, function() {\n return n.source;\n })), lookbehind: true }, /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/], keyword: n, number: { pattern: /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i, greedy: true }, operator: />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/, boolean: /\\b(?:false|true)\\b/ }), e.languages.insertBefore(\"cpp\", \"string\", { module: { pattern: RegExp(/(\\b(?:import|module)\\s+)/.source + \"(?:\" + /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source + \"|\" + /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(/<mod-name>/g, function() {\n return t;\n }) + \")\"), lookbehind: true, greedy: true, inside: { string: /^[<\"][\\s\\S]+/, operator: /:/, punctuation: /\\./ } }, \"raw-string\": { pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/, alias: \"string\", greedy: true } }), e.languages.insertBefore(\"cpp\", \"keyword\", { \"generic-function\": { pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i, inside: { function: /^\\w+/, generic: { pattern: /<[\\s\\S]+/, alias: \"class-name\", inside: e.languages.cpp } } } }), e.languages.insertBefore(\"cpp\", \"operator\", { \"double-colon\": { pattern: /::/, alias: \"punctuation\" } }), e.languages.insertBefore(\"cpp\", \"class-name\", { \"base-clause\": { pattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/, lookbehind: true, greedy: true, inside: e.languages.extend(\"cpp\", {}) } }), e.languages.insertBefore(\"inside\", \"double-colon\", { \"class-name\": /\\b[a-z_]\\w*\\b(?!\\s*::)/i }, e.languages.cpp[\"base-clause\"]);\n}(Prism), Prism.languages.python = { comment: { pattern: /(^|[^\\\\])#.*/, lookbehind: true, greedy: true }, \"string-interpolation\": { pattern: /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i, greedy: true, inside: { interpolation: { pattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/, lookbehind: true, inside: { \"format-spec\": { pattern: /(:)[^:(){}]+(?=\\}$)/, lookbehind: true }, \"conversion-option\": { pattern: /![sra](?=[:}]$)/, alias: \"punctuation\" }, rest: null } }, string: /[\\s\\S]+/ } }, \"triple-quoted-string\": { pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i, greedy: true, alias: \"string\" }, string: { pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i, greedy: true }, function: { pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g, lookbehind: true }, \"class-name\": { pattern: /(\\bclass\\s+)\\w+/i, lookbehind: true }, decorator: { pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m, lookbehind: true, alias: [\"annotation\", \"punctuation\"], inside: { punctuation: /\\./ } }, keyword: /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/, builtin: /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/, boolean: /\\b(?:False|None|True)\\b/, number: /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i, operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/, punctuation: /[{}[\\];(),.:]/ }, Prism.languages.python[\"string-interpolation\"].inside.interpolation.inside.rest = Prism.languages.python, Prism.languages.py = Prism.languages.python;\n\n// src/themes/index.ts\nvar themes_exports = {};\n__export(themes_exports, {\n dracula: () => dracula_default,\n duotoneDark: () => duotoneDark_default,\n duotoneLight: () => duotoneLight_default,\n github: () => github_default,\n jettwaveDark: () => jettwaveDark_default,\n jettwaveLight: () => jettwaveLight_default,\n nightOwl: () => nightOwl_default,\n nightOwlLight: () => nightOwlLight_default,\n oceanicNext: () => oceanicNext_default,\n okaidia: () => okaidia_default,\n oneDark: () => oneDark_default,\n oneLight: () => oneLight_default,\n palenight: () => palenight_default,\n shadesOfPurple: () => shadesOfPurple_default,\n synthwave84: () => synthwave84_default,\n ultramin: () => ultramin_default,\n vsDark: () => vsDark_default,\n vsLight: () => vsLight_default\n});\n\n// src/themes/dracula.ts\nvar theme = {\n plain: {\n color: \"#F8F8F2\",\n backgroundColor: \"#282A36\"\n },\n styles: [\n {\n types: [\"prolog\", \"constant\", \"builtin\"],\n style: {\n color: \"rgb(189, 147, 249)\"\n }\n },\n {\n types: [\"inserted\", \"function\"],\n style: {\n color: \"rgb(80, 250, 123)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgb(255, 85, 85)\"\n }\n },\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 184, 108)\"\n }\n },\n {\n types: [\"punctuation\", \"symbol\"],\n style: {\n color: \"rgb(248, 248, 242)\"\n }\n },\n {\n types: [\"string\", \"char\", \"tag\", \"selector\"],\n style: {\n color: \"rgb(255, 121, 198)\"\n }\n },\n {\n types: [\"keyword\", \"variable\"],\n style: {\n color: \"rgb(189, 147, 249)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(98, 114, 164)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(241, 250, 140)\"\n }\n }\n ]\n};\nvar dracula_default = theme;\n\n// src/themes/duotoneDark.ts\nvar theme2 = {\n plain: {\n backgroundColor: \"#2a2734\",\n color: \"#9a86fd\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#6c6783\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#e09142\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#9a86fd\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#eeebff\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#c4b9fe\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\",\n \"placeholder\",\n \"variable\"\n ],\n style: {\n color: \"#ffcc99\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#c4b9fe\"\n }\n }\n ]\n};\nvar duotoneDark_default = theme2;\n\n// src/themes/duotoneLight.ts\nvar theme3 = {\n plain: {\n backgroundColor: \"#faf8f5\",\n color: \"#728fcb\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\", \"punctuation\"],\n style: {\n color: \"#b6ad9a\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"operator\", \"number\"],\n style: {\n color: \"#063289\"\n }\n },\n {\n types: [\"property\", \"function\"],\n style: {\n color: \"#b29762\"\n }\n },\n {\n types: [\"tag-id\", \"selector\", \"atrule-id\"],\n style: {\n color: \"#2d2006\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#896724\"\n }\n },\n {\n types: [\n \"boolean\",\n \"string\",\n \"entity\",\n \"url\",\n \"attr-value\",\n \"keyword\",\n \"control\",\n \"directive\",\n \"unit\",\n \"statement\",\n \"regex\",\n \"atrule\"\n ],\n style: {\n color: \"#728fcb\"\n }\n },\n {\n types: [\"placeholder\", \"variable\"],\n style: {\n color: \"#93abdc\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"#896724\"\n }\n }\n ]\n};\nvar duotoneLight_default = theme3;\n\n// src/themes/github.ts\nvar theme4 = {\n plain: {\n color: \"#393A34\",\n backgroundColor: \"#f6f8fa\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#999988\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n },\n {\n types: [\"string\", \"attr-value\"],\n style: {\n color: \"#e3116c\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#393A34\"\n }\n },\n {\n types: [\n \"entity\",\n \"url\",\n \"symbol\",\n \"number\",\n \"boolean\",\n \"variable\",\n \"constant\",\n \"property\",\n \"regex\",\n \"inserted\"\n ],\n style: {\n color: \"#36acaa\"\n }\n },\n {\n types: [\"atrule\", \"keyword\", \"attr-name\", \"selector\"],\n style: {\n color: \"#00a4db\"\n }\n },\n {\n types: [\"function\", \"deleted\", \"tag\"],\n style: {\n color: \"#d73a49\"\n }\n },\n {\n types: [\"function-variable\"],\n style: {\n color: \"#6f42c1\"\n }\n },\n {\n types: [\"tag\", \"selector\", \"keyword\"],\n style: {\n color: \"#00009f\"\n }\n }\n ]\n};\nvar github_default = theme4;\n\n// src/themes/nightOwl.ts\nvar theme5 = {\n plain: {\n color: \"#d6deeb\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(99, 119, 119)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(214, 222, 235)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(255, 203, 139)\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"rgb(127, 219, 202)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"property\"],\n style: {\n color: \"rgb(128, 203, 196)\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n }\n ]\n};\nvar nightOwl_default = theme5;\n\n// src/themes/nightOwlLight.ts\nvar theme6 = {\n plain: {\n color: \"#403f53\",\n backgroundColor: \"#FBFBFB\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\", \"attr-name\"],\n style: {\n color: \"rgb(72, 118, 214)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(152, 159, 177)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"builtin\", \"char\", \"constant\", \"url\"],\n style: {\n color: \"rgb(72, 118, 214)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(201, 103, 101)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(170, 9, 130)\"\n }\n },\n {\n // This was manually added after the auto-generation\n // so that punctuations are not italicised\n types: [\"punctuation\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"function\", \"selector\", \"doctype\"],\n style: {\n color: \"rgb(153, 76, 195)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(17, 17, 17)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(153, 76, 195)\"\n }\n },\n {\n types: [\"operator\", \"property\", \"keyword\", \"namespace\"],\n style: {\n color: \"rgb(12, 150, 155)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(188, 84, 84)\"\n }\n }\n ]\n};\nvar nightOwlLight_default = theme6;\n\n// src/themes/oceanicNext.ts\nvar colors = {\n char: \"#D8DEE9\",\n comment: \"#999999\",\n keyword: \"#c5a5c5\",\n primitive: \"#5a9bcf\",\n string: \"#8dc891\",\n variable: \"#d7deea\",\n boolean: \"#ff8b50\",\n punctuation: \"#5FB3B3\",\n tag: \"#fc929e\",\n function: \"#79b6f2\",\n className: \"#FAC863\",\n method: \"#6699CC\",\n operator: \"#fc929e\"\n};\nvar theme7 = {\n plain: {\n backgroundColor: \"#282c34\",\n color: \"#ffffff\"\n },\n styles: [\n {\n types: [\"attr-name\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"attr-value\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\n \"comment\",\n \"block-comment\",\n \"prolog\",\n \"doctype\",\n \"cdata\",\n \"shebang\"\n ],\n style: {\n color: colors.comment\n }\n },\n {\n types: [\n \"property\",\n \"number\",\n \"function-name\",\n \"constant\",\n \"symbol\",\n \"deleted\"\n ],\n style: {\n color: colors.primitive\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: colors.boolean\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: colors.tag\n }\n },\n {\n types: [\"string\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: colors.string\n }\n },\n {\n types: [\"selector\", \"char\", \"builtin\", \"inserted\"],\n style: {\n color: colors.char\n }\n },\n {\n types: [\"function\"],\n style: {\n color: colors.function\n }\n },\n {\n types: [\"operator\", \"entity\", \"url\", \"variable\"],\n style: {\n color: colors.variable\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: colors.keyword\n }\n },\n {\n types: [\"atrule\", \"class-name\"],\n style: {\n color: colors.className\n }\n },\n {\n types: [\"important\"],\n style: {\n fontWeight: \"400\"\n }\n },\n {\n types: [\"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n opacity: 0.7\n }\n }\n ]\n};\nvar oceanicNext_default = theme7;\n\n// src/themes/okaidia.ts\nvar theme8 = {\n plain: {\n color: \"#f8f8f2\",\n backgroundColor: \"#272822\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(162, 191, 252)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"#f92672\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#8292a2\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"#a6e22e\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"#e6db74\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#f8f8f2\"\n }\n },\n {\n types: [\"selector\", \"doctype\"],\n style: {\n color: \"#a6e22e\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"tag\", \"operator\", \"keyword\"],\n style: {\n color: \"#66d9ef\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"#ae81ff\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\",\n opacity: 0.7\n }\n },\n {\n types: [\"tag\", \"property\"],\n style: {\n color: \"#f92672\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"#a6e22e !important\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"#8292a2\"\n }\n },\n {\n types: [\"rule\"],\n style: {\n color: \"#e6db74\"\n }\n }\n ]\n};\nvar okaidia_default = theme8;\n\n// src/themes/palenight.ts\nvar theme9 = {\n plain: {\n color: \"#bfc7d5\",\n backgroundColor: \"#292d3e\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(105, 112, 152)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"string\", \"inserted\"],\n style: {\n color: \"rgb(195, 232, 141)\"\n }\n },\n {\n types: [\"number\"],\n style: {\n color: \"rgb(247, 140, 108)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\"],\n style: {\n color: \"rgb(130, 170, 255)\"\n }\n },\n {\n types: [\"punctuation\", \"selector\"],\n style: {\n color: \"rgb(199, 146, 234)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(191, 199, 213)\"\n }\n },\n {\n types: [\"class-name\", \"attr-name\"],\n style: {\n color: \"rgb(255, 203, 107)\"\n }\n },\n {\n types: [\"tag\", \"deleted\"],\n style: {\n color: \"rgb(255, 85, 114)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(137, 221, 255)\"\n }\n },\n {\n types: [\"boolean\"],\n style: {\n color: \"rgb(255, 88, 116)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"doctype\"],\n style: {\n color: \"rgb(199, 146, 234)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"namespace\"],\n style: {\n color: \"rgb(178, 204, 214)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"rgb(221, 221, 221)\"\n }\n }\n ]\n};\nvar palenight_default = theme9;\n\n// src/themes/shadesOfPurple.ts\nvar theme10 = {\n plain: {\n color: \"#9EFEFF\",\n backgroundColor: \"#2D2A55\"\n },\n styles: [\n {\n types: [\"changed\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n color: \"rgba(239, 83, 80, 0.56)\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"rgb(173, 219, 103)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(179, 98, 255)\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"rgb(255, 255, 255)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"string\", \"url\"],\n style: {\n color: \"rgb(165, 255, 144)\"\n }\n },\n {\n types: [\"variable\"],\n style: {\n color: \"rgb(255, 238, 128)\"\n }\n },\n {\n types: [\"number\", \"boolean\"],\n style: {\n color: \"rgb(255, 98, 140)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 180, 84)\"\n }\n },\n {\n types: [\n \"keyword\",\n \"operator\",\n \"property\",\n \"namespace\",\n \"tag\",\n \"selector\",\n \"doctype\"\n ],\n style: {\n color: \"rgb(255, 157, 0)\"\n }\n },\n {\n types: [\"builtin\", \"char\", \"constant\", \"function\", \"class-name\"],\n style: {\n color: \"rgb(250, 208, 0)\"\n }\n }\n ]\n};\nvar shadesOfPurple_default = theme10;\n\n// src/themes/synthwave84.ts\nvar theme11 = {\n plain: {\n backgroundColor: \"linear-gradient(to bottom, #2a2139 75%, #34294f)\",\n backgroundImage: \"#34294f\",\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n },\n styles: [\n {\n types: [\"comment\", \"block-comment\", \"prolog\", \"doctype\", \"cdata\"],\n style: {\n color: \"#495495\",\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"punctuation\"],\n style: {\n color: \"#ccc\"\n }\n },\n {\n types: [\n \"tag\",\n \"attr-name\",\n \"namespace\",\n \"number\",\n \"unit\",\n \"hexcode\",\n \"deleted\"\n ],\n style: {\n color: \"#e2777a\"\n }\n },\n {\n types: [\"property\", \"selector\"],\n style: {\n color: \"#72f1b8\",\n textShadow: \"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475\"\n }\n },\n {\n types: [\"function-name\"],\n style: {\n color: \"#6196cc\"\n }\n },\n {\n types: [\"boolean\", \"selector-id\", \"function\"],\n style: {\n color: \"#fdfdfd\",\n textShadow: \"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975\"\n }\n },\n {\n types: [\"class-name\", \"maybe-class-name\", \"builtin\"],\n style: {\n color: \"#fff5f6\",\n textShadow: \"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75\"\n }\n },\n {\n types: [\"constant\", \"symbol\"],\n style: {\n color: \"#f92aad\",\n textShadow: \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n }\n },\n {\n types: [\"important\", \"atrule\", \"keyword\", \"selector-class\"],\n style: {\n color: \"#f4eee4\",\n textShadow: \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\"\n }\n },\n {\n types: [\"string\", \"char\", \"attr-value\", \"regex\", \"variable\"],\n style: {\n color: \"#f87c32\"\n }\n },\n {\n types: [\"parameter\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\", \"url\"],\n style: {\n color: \"#67cdcc\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"ffffffee\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"entity\"],\n style: {\n cursor: \"help\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n color: \"green\"\n }\n }\n ]\n};\nvar synthwave84_default = theme11;\n\n// src/themes/ultramin.ts\nvar theme12 = {\n plain: {\n color: \"#282a2e\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(197, 200, 198)\"\n }\n },\n {\n types: [\"string\", \"number\", \"builtin\", \"variable\"],\n style: {\n color: \"rgb(150, 152, 150)\"\n }\n },\n {\n types: [\"class-name\", \"function\", \"tag\", \"attr-name\"],\n style: {\n color: \"rgb(40, 42, 46)\"\n }\n }\n ]\n};\nvar ultramin_default = theme12;\n\n// src/themes/vsDark.ts\nvar theme13 = {\n plain: {\n color: \"#9CDCFE\",\n backgroundColor: \"#1E1E1E\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"rgb(0, 0, 128)\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(106, 153, 85)\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"rgb(181, 206, 168)\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"rgb(100, 102, 149)\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"rgb(156, 220, 254)\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"rgb(206, 145, 120)\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"rgb(215, 186, 125)\"\n }\n },\n {\n // Fix tag color\n types: [\"tag\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n // Fix tag color for HTML\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"rgb(86, 156, 214)\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"rgb(212, 212, 212)\"\n }\n },\n {\n // Fix punctuation color for HTML\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"rgb(220, 220, 170)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(78, 201, 176)\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"rgb(209, 105, 105)\"\n }\n }\n ]\n};\nvar vsDark_default = theme13;\n\n// src/themes/vsLight.ts\nvar theme14 = {\n plain: {\n color: \"#000000\",\n backgroundColor: \"#ffffff\"\n },\n styles: [\n {\n types: [\"comment\"],\n style: {\n color: \"rgb(0, 128, 0)\"\n }\n },\n {\n types: [\"builtin\"],\n style: {\n color: \"rgb(0, 112, 193)\"\n }\n },\n {\n types: [\"number\", \"variable\", \"inserted\"],\n style: {\n color: \"rgb(9, 134, 88)\"\n }\n },\n {\n types: [\"operator\"],\n style: {\n color: \"rgb(0, 0, 0)\"\n }\n },\n {\n types: [\"constant\", \"char\"],\n style: {\n color: \"rgb(129, 31, 63)\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"rgb(128, 0, 0)\"\n }\n },\n {\n types: [\"attr-name\"],\n style: {\n color: \"rgb(255, 0, 0)\"\n }\n },\n {\n types: [\"deleted\", \"string\"],\n style: {\n color: \"rgb(163, 21, 21)\"\n }\n },\n {\n types: [\"changed\", \"punctuation\"],\n style: {\n color: \"rgb(4, 81, 165)\"\n }\n },\n {\n types: [\"function\", \"keyword\"],\n style: {\n color: \"rgb(0, 0, 255)\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"rgb(38, 127, 153)\"\n }\n }\n ]\n};\nvar vsLight_default = theme14;\n\n// src/themes/jettwaveDark.ts\nvar theme15 = {\n plain: {\n color: \"#f8fafc\",\n backgroundColor: \"#011627\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#569CD6\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#f8fafc\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#9CDCFE\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#cbd5e1\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#D4D4D4\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#7dd3fc\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveDark_default = theme15;\n\n// src/themes/jettwaveLight.ts\nvar theme16 = {\n plain: {\n color: \"#0f172a\",\n backgroundColor: \"#f1f5f9\"\n },\n styles: [\n {\n types: [\"prolog\"],\n style: {\n color: \"#000080\"\n }\n },\n {\n types: [\"comment\"],\n style: {\n color: \"#6A9955\"\n }\n },\n {\n types: [\"builtin\", \"changed\", \"keyword\", \"interpolation-punctuation\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"number\", \"inserted\"],\n style: {\n color: \"#B5CEA8\"\n }\n },\n {\n types: [\"constant\"],\n style: {\n color: \"#0f172a\"\n }\n },\n {\n types: [\"attr-name\", \"variable\"],\n style: {\n color: \"#0c4a6e\"\n }\n },\n {\n types: [\"deleted\", \"string\", \"attr-value\", \"template-punctuation\"],\n style: {\n color: \"#64748b\"\n }\n },\n {\n types: [\"selector\"],\n style: {\n color: \"#D7BA7D\"\n }\n },\n {\n types: [\"tag\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"tag\"],\n languages: [\"markup\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"punctuation\", \"operator\"],\n style: {\n color: \"#475569\"\n }\n },\n {\n types: [\"punctuation\"],\n languages: [\"markup\"],\n style: {\n color: \"#808080\"\n }\n },\n {\n types: [\"function\"],\n style: {\n color: \"#0e7490\"\n }\n },\n {\n types: [\"class-name\"],\n style: {\n color: \"#0ea5e9\"\n }\n },\n {\n types: [\"char\"],\n style: {\n color: \"#D16969\"\n }\n }\n ]\n};\nvar jettwaveLight_default = theme16;\n\n// src/themes/oneDark.ts\nvar theme17 = {\n plain: {\n backgroundColor: \"hsl(220, 13%, 18%)\",\n color: \"hsl(220, 14%, 71%)\",\n textShadow: \"0 1px rgba(0, 0, 0, 0.3)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(220, 10%, 40%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"maybe-class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: { color: \"hsl(29, 54%, 61%)\" }\n },\n {\n types: [\"keyword\"],\n style: { color: \"hsl(286, 60%, 67%)\" }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(355, 65%, 65%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\"\n ],\n style: {\n color: \"hsl(95, 38%, 62%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(207, 82%, 66%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(187, 47%, 55%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(220, 14%, 71%)\"\n }\n }\n ]\n};\nvar oneDark_default = theme17;\n\n// src/themes/oneLight.ts\nvar theme18 = {\n plain: {\n backgroundColor: \"hsl(230, 1%, 98%)\",\n color: \"hsl(230, 8%, 24%)\"\n },\n styles: [\n {\n types: [\"comment\", \"prolog\", \"cdata\"],\n style: {\n color: \"hsl(230, 4%, 64%)\"\n }\n },\n {\n types: [\"doctype\", \"punctuation\", \"entity\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n },\n {\n types: [\n \"attr-name\",\n \"class-name\",\n \"boolean\",\n \"constant\",\n \"number\",\n \"atrule\"\n ],\n style: {\n color: \"hsl(35, 99%, 36%)\"\n }\n },\n {\n types: [\"keyword\"],\n style: {\n color: \"hsl(301, 63%, 40%)\"\n }\n },\n {\n types: [\"property\", \"tag\", \"symbol\", \"deleted\", \"important\"],\n style: {\n color: \"hsl(5, 74%, 59%)\"\n }\n },\n {\n types: [\n \"selector\",\n \"string\",\n \"char\",\n \"builtin\",\n \"inserted\",\n \"regex\",\n \"attr-value\",\n \"punctuation\"\n ],\n style: {\n color: \"hsl(119, 34%, 47%)\"\n }\n },\n {\n types: [\"variable\", \"operator\", \"function\"],\n style: {\n color: \"hsl(221, 87%, 60%)\"\n }\n },\n {\n types: [\"url\"],\n style: {\n color: \"hsl(198, 99%, 37%)\"\n }\n },\n {\n types: [\"deleted\"],\n style: {\n textDecorationLine: \"line-through\"\n }\n },\n {\n types: [\"inserted\"],\n style: {\n textDecorationLine: \"underline\"\n }\n },\n {\n types: [\"italic\"],\n style: {\n fontStyle: \"italic\"\n }\n },\n {\n types: [\"important\", \"bold\"],\n style: {\n fontWeight: \"bold\"\n }\n },\n {\n types: [\"important\"],\n style: {\n color: \"hsl(230, 8%, 24%)\"\n }\n }\n ]\n};\nvar oneLight_default = theme18;\n\n// src/index.ts\nimport { createElement } from \"react\";\n\n// src/components/useThemeDictionary.ts\nimport { useEffect, useRef, useState } from \"react\";\n\n// src/utils/themeToDict.ts\nvar themeToDict = (theme19, language) => {\n const { plain } = theme19;\n const themeDict = theme19.styles.reduce((acc, themeEntry) => {\n const { languages: languages2, style } = themeEntry;\n if (languages2 && !languages2.includes(language)) {\n return acc;\n }\n themeEntry.types.forEach((type) => {\n const accStyle = __spreadValues(__spreadValues({}, acc[type]), style);\n acc[type] = accStyle;\n });\n return acc;\n }, {});\n themeDict.root = plain;\n themeDict.plain = __spreadProps(__spreadValues({}, plain), { backgroundColor: void 0 });\n return themeDict;\n};\nvar themeToDict_default = themeToDict;\n\n// src/components/useThemeDictionary.ts\nvar useThemeDictionary = (language, theme19) => {\n const [themeDictionary, setThemeDictionary] = useState(\n themeToDict_default(theme19, language)\n );\n const previousTheme = useRef();\n const previousLanguage = useRef();\n useEffect(() => {\n if (theme19 !== previousTheme.current || language !== previousLanguage.current) {\n previousTheme.current = theme19;\n previousLanguage.current = language;\n setThemeDictionary(themeToDict_default(theme19, language));\n }\n }, [language, theme19]);\n return themeDictionary;\n};\n\n// src/components/useGetLineProps.ts\nimport { useCallback } from \"react\";\nimport clsx from \"clsx\";\nvar useGetLineProps = (themeDictionary) => useCallback(\n (_a) => {\n var _b = _a, { className, style, line } = _b, rest = __objRest(_b, [\"className\", \"style\", \"line\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx(\"token-line\", className)\n });\n if (typeof themeDictionary === \"object\" && \"plain\" in themeDictionary)\n output.style = themeDictionary.plain;\n if (typeof style === \"object\")\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n return output;\n },\n [themeDictionary]\n);\n\n// src/components/useGetTokenProps.ts\nimport { useCallback as useCallback2 } from \"react\";\nimport clsx2 from \"clsx\";\nvar useGetTokenProps = (themeDictionary) => {\n const styleForToken = useCallback2(\n ({ types, empty }) => {\n if (themeDictionary == null)\n return void 0;\n else if (types.length === 1 && types[0] === \"plain\") {\n return empty != null ? { display: \"inline-block\" } : void 0;\n } else if (types.length === 1 && empty != null) {\n return themeDictionary[types[0]];\n }\n return Object.assign(\n empty != null ? { display: \"inline-block\" } : {},\n ...types.map((type) => themeDictionary[type])\n );\n },\n [themeDictionary]\n );\n return useCallback2(\n (_a) => {\n var _b = _a, { token, className, style } = _b, rest = __objRest(_b, [\"token\", \"className\", \"style\"]);\n const output = __spreadProps(__spreadValues({}, rest), {\n className: clsx2(\"token\", ...token.types, className),\n children: token.content,\n style: styleForToken(token)\n });\n if (style != null) {\n output.style = __spreadValues(__spreadValues({}, output.style || {}), style);\n }\n return output;\n },\n [styleForToken]\n );\n};\n\n// src/utils/normalizeTokens.ts\nvar newlineRe = /\\r\\n|\\r|\\n/;\nvar normalizeEmptyLines = (line) => {\n if (line.length === 0) {\n line.push({\n types: [\"plain\"],\n content: \"\\n\",\n empty: true\n });\n } else if (line.length === 1 && line[0].content === \"\") {\n line[0].content = \"\\n\";\n line[0].empty = true;\n }\n};\nvar appendTypes = (types, add) => {\n const typesSize = types.length;\n if (typesSize > 0 && types[typesSize - 1] === add) {\n return types;\n }\n return types.concat(add);\n};\nvar normalizeTokens = (tokens) => {\n const typeArrStack = [[]];\n const tokenArrStack = [tokens];\n const tokenArrIndexStack = [0];\n const tokenArrSizeStack = [tokens.length];\n let i = 0;\n let stackIndex = 0;\n let currentLine = [];\n const acc = [currentLine];\n while (stackIndex > -1) {\n while ((i = tokenArrIndexStack[stackIndex]++) < tokenArrSizeStack[stackIndex]) {\n let content;\n let types = typeArrStack[stackIndex];\n const tokenArr = tokenArrStack[stackIndex];\n const token = tokenArr[i];\n if (typeof token === \"string\") {\n types = stackIndex > 0 ? types : [\"plain\"];\n content = token;\n } else {\n types = appendTypes(types, token.type);\n if (token.alias) {\n types = appendTypes(types, token.alias);\n }\n content = token.content;\n }\n if (typeof content !== \"string\") {\n stackIndex++;\n typeArrStack.push(types);\n tokenArrStack.push(content);\n tokenArrIndexStack.push(0);\n tokenArrSizeStack.push(content.length);\n continue;\n }\n const splitByNewlines = content.split(newlineRe);\n const newlineCount = splitByNewlines.length;\n currentLine.push({\n types,\n content: splitByNewlines[0]\n });\n for (let i2 = 1; i2 < newlineCount; i2++) {\n normalizeEmptyLines(currentLine);\n acc.push(currentLine = []);\n currentLine.push({\n types,\n content: splitByNewlines[i2]\n });\n }\n }\n stackIndex--;\n typeArrStack.pop();\n tokenArrStack.pop();\n tokenArrIndexStack.pop();\n tokenArrSizeStack.pop();\n }\n normalizeEmptyLines(currentLine);\n return acc;\n};\nvar normalizeTokens_default = normalizeTokens;\n\n// src/components/useTokenize.ts\nimport { useMemo, useRef as useRef2 } from \"react\";\nvar useTokenize = ({ prism, code, grammar, language }) => {\n const prismRef = useRef2(prism);\n return useMemo(() => {\n if (grammar == null)\n return normalizeTokens_default([code]);\n const prismConfig = {\n code,\n grammar,\n language,\n tokens: []\n };\n prismRef.current.hooks.run(\"before-tokenize\", prismConfig);\n prismConfig.tokens = prismRef.current.tokenize(code, grammar);\n prismRef.current.hooks.run(\"after-tokenize\", prismConfig);\n return normalizeTokens_default(prismConfig.tokens);\n }, [code, grammar, language]);\n};\n\n// src/components/highlight.ts\nvar Highlight = ({\n children,\n language: _language,\n code,\n theme: theme19,\n prism\n}) => {\n const language = _language.toLowerCase();\n const themeDictionary = useThemeDictionary(language, theme19);\n const getLineProps = useGetLineProps(themeDictionary);\n const getTokenProps = useGetTokenProps(themeDictionary);\n const grammar = prism.languages[language];\n const tokens = useTokenize({ prism, language, code, grammar });\n return children({\n tokens,\n className: `prism-code language-${language}`,\n style: themeDictionary != null ? themeDictionary.root : {},\n getLineProps,\n getTokenProps\n });\n};\n\n// src/index.ts\nvar Highlight2 = (props) => createElement(Highlight, __spreadProps(__spreadValues({}, props), {\n prism: props.prism || Prism,\n theme: props.theme || vsDark_default,\n code: props.code,\n language: props.language\n}));\nexport {\n Highlight2 as Highlight,\n Prism,\n normalizeTokens_default as normalizeTokens,\n themes_exports as themes,\n useTokenize\n};\n/*! Bundled license information:\n\nprismjs/prism.js:\n (**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n *)\n*/\n//# sourceMappingURL=index.mjs.map","import {\n createContext,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nconst ThemeContext = createContext<readonly [boolean, () => void]>([\n false,\n () => {},\n]);\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext);\n if (!context) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n return context;\n};\n\nexport const ThemeProvider = (props: { children: ReactNode }) => {\n const [dark, setDark] = useState(false);\n\n // On mount, read the preferred theme from the persistence\n useEffect(() => {\n const theme = localStorage.getItem(\"theme\");\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const isDark = theme === \"dark\" || (!theme && prefersDark.matches);\n\n setDark(isDark);\n }, [dark]);\n\n // To toggle between dark and light modes\n const toggle = useCallback(() => {\n const toggled = !dark;\n document.documentElement.classList.toggle(\"dark\", toggled);\n localStorage.setItem(\"theme\", toggled ? \"dark\" : \"light\");\n setDark(toggled);\n }, [dark]);\n\n const value = [dark, toggle] as const;\n\n return <ThemeContext.Provider value={value} {...props} />;\n};\n","import {\n Highlight,\n Prism,\n themes,\n type HighlightProps,\n} from \"prism-react-renderer\";\n\nimport { CheckIcon, CopyIcon } from \"lucide-react\";\n\nglobalThis.Prism = Prism;\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-bash.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-ruby.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-markup-templating.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-php.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-json.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-java.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-csharp.min.js\");\n// @ts-expect-error This is untyped\nimport(\"prismjs/components/prism-objectivec.min.js\");\n\nimport { useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useTheme } from \"./context/ThemeContext.js\";\n\ntype SyntaxHighlightProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n copyable?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n} & Omit<HighlightProps, \"children\" | \"language\">;\n\nexport const SyntaxHighlight = ({\n copyable = true,\n language = \"plain\",\n ...props\n}: SyntaxHighlightProps) => {\n const [isDark] = useTheme();\n const [isCopied, setIsCopied] = useState(false);\n\n if (!props.code) {\n return null;\n }\n\n return (\n <Highlight\n theme={isDark ? themes.vsDark : themes.github}\n language={language}\n {...props}\n >\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <pre\n className={cn(\n \"group relative\",\n className,\n props.className,\n props.noBackground && \"!bg-transparent\",\n props.wrapLines && \"whitespace-pre-wrap break-words\",\n )}\n style={style}\n >\n {copyable && (\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n className=\"absolute top-1.5 right-3 p-3 opacity-0 group-hover:opacity-100 transition hover:bg-zinc-500/10 hover:dark:bg-zinc-700/25 rounded-lg text-sm text-gray-400 hover:text-gray-600 dark:text-gray-500 dark:hover:text-gray-400\"\n disabled={isCopied}\n onClick={() => {\n setIsCopied(true);\n void navigator.clipboard.writeText(\n tokens\n .map((line) => line.map(({ content }) => content).join(\"\"))\n .join(\"\\n\"),\n );\n setTimeout(() => setIsCopied(false), 2000);\n }}\n >\n {isCopied ? (\n <CheckIcon className=\"text-emerald-600\" size={18} />\n ) : (\n <CopyIcon size={18} />\n )}\n </button>\n )}\n {props.showLanguageIndicator && (\n <span className=\"absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0\">\n {language}\n </span>\n )}\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </pre>\n )}\n </Highlight>\n );\n};\n","import { MDXProvider } from \"@mdx-js/react\";\nimport type { ComponentProps } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Heading } from \"../components/Heading.js\";\nimport { InlineCode } from \"../components/InlineCode.js\";\nimport { SyntaxHighlight } from \"../components/SyntaxHighlight.js\";\nimport { Callout } from \"../ui/Callout.js\";\n\nexport type MdxComponentsType = ComponentProps<\n typeof MDXProvider\n>[\"components\"];\n\nexport const MdxComponents = {\n img: (props) => {\n if (/\\.(mp4|webm|mov|avi)$/.test(props.src ?? \"\")) {\n return <video src={props.src} controls playsInline autoPlay loop />;\n }\n return <img {...props} className=\"rounded-md\" />;\n },\n h1: ({ children, id }) => (\n <Heading level={1} id={id}>\n {children}\n </Heading>\n ),\n h2: ({ children, id }) => (\n <Heading level={2} id={id}>\n {children}\n </Heading>\n ),\n h3: ({ children, id }) => (\n <Heading level={3} id={id}>\n {children}\n </Heading>\n ),\n h4: ({ children, id }) => (\n <Heading level={4} id={id}>\n {children}\n </Heading>\n ),\n h5: ({ children, id }) => (\n <Heading level={5} id={id}>\n {children}\n </Heading>\n ),\n h6: ({ children, id }) => (\n <Heading level={6} id={id}>\n {children}\n </Heading>\n ),\n a: ({ href, ...props }) =>\n href && !href.startsWith(\"http\") ? (\n <Link to={href} relative=\"path\" {...props} />\n ) : (\n <a href={href} target=\"_blank\" {...props} rel=\"noreferrer\" />\n ),\n Callout,\n tip: (props) => <Callout type=\"tip\" {...props} />,\n info: (props) => <Callout type=\"info\" {...props} />,\n note: (props) => <Callout type=\"note\" {...props} />,\n caution: (props) => <Callout type=\"caution\" {...props} />,\n warning: (props) => <Callout type=\"caution\" {...props} />,\n danger: (props) => <Callout type=\"danger\" {...props} />,\n\n pre: ({ children }) => <>{children}</>,\n code: ({ className, children, ...props }) => {\n // `inline` provided by the rehype plugin, as react-markdown removed support for that\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const inline = (props as any).inline;\n\n if (!inline) {\n const match = className?.match(/language?-(\\w+)/);\n\n return (\n <SyntaxHighlight\n language={match?.[1] ?? \"markup\"}\n className=\"rounded-xl overflow-x-auto p-4 border border-border dark:!bg-foreground/10 dark:border-transparent\"\n showLanguageIndicator\n code={String(children).trim()}\n />\n );\n }\n\n return <InlineCode className={className}>{children}</InlineCode>;\n },\n} satisfies MdxComponentsType;\n"],"names":["_extends","target","i","source","key","_objectWithoutPropertiesLoose","excluded","sourceKeys","defaultMethod","defaultEncType","isHtmlElement","object","isButtonElement","isFormElement","isInputElement","isModifiedEvent","event","shouldProcessLinkClick","createSearchParams","init","memo","value","v","getSearchParamsForLocation","locationSearch","defaultSearchParams","searchParams","_","_formDataSupportsSubmitter","isFormDataSubmitterSupported","supportedFormEncTypes","getFormEncType","encType","UNSAFE_warning","getFormSubmissionInfo","basename","method","action","formData","body","attr","stripBasename","form","name","type","prefix","_excluded","_excluded2","_excluded3","REACT_ROUTER_VERSION","ViewTransitionContext","React","FetchersContext","isBrowser","ABSOLUTE_URL_REGEX","Link","_ref7","ref","onClick","relative","reloadDocument","replace","state","to","preventScrollReset","unstable_viewTransition","rest","UNSAFE_NavigationContext","absoluteHref","isExternal","currentUrl","targetUrl","path","href","useHref","internalOnClick","useLinkClickHandler","handleClick","NavLink","_ref8","ariaCurrentProp","caseSensitive","classNameProp","end","styleProp","children","useResolvedPath","location","useLocation","routerState","UNSAFE_DataRouterStateContext","navigator","isTransitioning","useViewTransitionState","toPathname","locationPathname","nextLocationPathname","endSlashPosition","isActive","isPending","renderProps","ariaCurrent","className","style","Form","_ref9","forwardedRef","fetcherKey","navigate","onSubmit","props","submit","useSubmit","formAction","useFormAction","formMethod","submitHandler","submitter","submitMethod","DataRouterHook","DataRouterStateHook","getDataRouterConsoleError","hookName","useDataRouterContext","ctx","UNSAFE_DataRouterContext","UNSAFE_invariant","_temp","replaceProp","useNavigate","createPath","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","setSearchParams","nextInit","navigateOptions","newSearchParams","validateClientSideSubmission","fetcherId","getUniqueFetcherId","router","currentRouteId","UNSAFE_useRouteId","options","_temp2","routeContext","UNSAFE_RouteContext","match","params","joinPaths","opts","vtContext","currentPath","nextPath","matchPath","toKebabCase","string","mergeClasses","classes","index","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","iconNode","createElement","tag","attrs","createLucideIcon","iconName","Component","Check","Copy","Info","Lightbulb","ShieldAlert","TriangleAlert","r","f","o","clsx","CLASS_PART_SEPARATOR","createClassUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","_a","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","theme","getPrefixedClassGroupEntries","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","currentClassPartObject","pathPart","func","classGroupEntries","prefixedClassGroup","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","createSplitModifiers","separator","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","modifiers","bracketDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","splitModifiers","classGroupsInConflict","originalClassName","variantModifier","parsed","modifierId","classId","group","twJoin","argument","resolvedValue","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","result","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isArbitraryNumber","isInteger","isPercent","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","getDefaultConfig","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getOverscroll","getOverflow","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getPositions","getLineStyles","getBlendModes","getAlign","getZeroAndEmpty","getBreaks","getNumber","getNumberAndArbitrary","twMerge","cn","inputs","stylesMap","InfoIcon","LightbulbIcon","AlertTriangleIcon","ShieldAlertIcon","Callout","title","border","bg","iconColor","titleColor","textColor","jsxs","jsx","ViewportAnchorContext","createContext","useViewportAnchor","context","useContext","useRegisterAnchorElement","elementRef","useRef","observe","unobserve","useEffect","element","useCallback","el","ViewportAnchorProvider","activeAnchor","setActiveAnchor","useState","observerRef","registeredElements","entries","entry","elements","handleScroll","hasReachedTop","hasReachedBottom","lastItem","observeFns","useMemo","falsyToString","cx","cva","base","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","param1","cvClass","cvClassName","compoundVariantOptions","heading","getComponent","level","Heading","id","registerSidebarAnchor","InlineCode","__create","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropNames","__getOwnPropSymbols","__getProtoOf","__hasOwnProp","__propIsEnum","__defNormalProp","obj","__spreadValues","a","b","prop","__spreadProps","__objRest","exclude","__commonJS","cb","mod","__export","all","__copyProps","from","except","desc","__toESM","isNodeMode","require_prism","exports","module","Prism2","lang","uniqueId","plainTextGrammar","encode","tokens","Token","deepClone","visited","clone","m","language","defaultActivation","no","redef","lang2","inside","before","insert","root","grammar","ret","token","newToken","old","DFS","callback","objId","propertyType","text","env","tokenList","LinkedList","addAfter","matchGrammar","toArray","hooks2","callbacks","content","alias","matchedStr","stringify","s","e","aliases","attributes","matchPattern","pattern","pos","lookbehind","lookbehindLength","startNode","startPos","rematch","patterns","j","patternObj","greedy","flags","currentNode","str","removeCount","p","matchStr","after","reach","removeFrom","removeRange","wrapped","nestedRematch","head","tail","list","node","next","newNode","count","Prism","t","n","l","e2","e3","e4","n2","t2","a2","r2","n3","t3","c","u","d","g","s2","h","a3","l2","u2","themes_exports","dracula_default","duotoneDark_default","duotoneLight_default","github_default","jettwaveDark_default","jettwaveLight_default","nightOwl_default","nightOwlLight_default","oceanicNext_default","okaidia_default","oneDark_default","oneLight_default","palenight_default","shadesOfPurple_default","synthwave84_default","ultramin_default","vsDark_default","vsLight_default","theme2","theme3","theme4","theme5","theme6","theme7","theme8","theme9","theme10","theme11","theme12","theme13","theme14","theme15","theme16","theme17","theme18","themeToDict","theme19","plain","themeDict","themeEntry","languages2","accStyle","themeToDict_default","useThemeDictionary","themeDictionary","setThemeDictionary","previousTheme","previousLanguage","useGetLineProps","_b","line","output","useGetTokenProps","styleForToken","useCallback2","types","empty","clsx2","newlineRe","normalizeEmptyLines","appendTypes","add","typesSize","normalizeTokens","typeArrStack","tokenArrStack","tokenArrIndexStack","tokenArrSizeStack","stackIndex","currentLine","splitByNewlines","newlineCount","i2","normalizeTokens_default","useTokenize","prism","code","prismRef","useRef2","prismConfig","Highlight","_language","getLineProps","getTokenProps","Highlight2","ThemeContext","useTheme","ThemeProvider","dark","setDark","prefersDark","isDark","toggle","toggled","SyntaxHighlight","copyable","isCopied","setIsCopied","themes","CheckIcon","CopyIcon","MdxComponents"],"mappings":";;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA,SAASA,KAAW;AAClB,SAAAA,KAAW,OAAO,SAAS,OAAO,OAAO,KAAI,IAAK,SAAUC,GAAQ;AAClE,aAASC,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AACzC,UAAIC,IAAS,UAAUD,CAAC;AACxB,eAASE,KAAOD;AACd,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQC,CAAG,MAClDH,EAAOG,CAAG,IAAID,EAAOC,CAAG;AAAA,IAG7B;AACD,WAAOH;AAAA,EACX,GACSD,GAAS,MAAM,MAAM,SAAS;AACvC;AACA,SAASK,GAA8BF,GAAQG,GAAU;AACvD,MAAIH,KAAU,KAAM,QAAO;AAC3B,MAAIF,IAAS,CAAA,GACTM,IAAa,OAAO,KAAKJ,CAAM,GAC/BC,GAAKF;AACT,OAAKA,IAAI,GAAGA,IAAIK,EAAW,QAAQL;AAEjC,IADAE,IAAMG,EAAWL,CAAC,GACd,EAAAI,EAAS,QAAQF,CAAG,KAAK,OAC7BH,EAAOG,CAAG,IAAID,EAAOC,CAAG;AAE1B,SAAOH;AACT;AAEA,MAAMO,KAAgB,OAChBC,KAAiB;AACvB,SAASC,GAAcC,GAAQ;AAC7B,SAAOA,KAAU,QAAQ,OAAOA,EAAO,WAAY;AACrD;AACA,SAASC,GAAgBD,GAAQ;AAC/B,SAAOD,GAAcC,CAAM,KAAKA,EAAO,QAAQ,YAAa,MAAK;AACnE;AACA,SAASE,GAAcF,GAAQ;AAC7B,SAAOD,GAAcC,CAAM,KAAKA,EAAO,QAAQ,YAAa,MAAK;AACnE;AACA,SAASG,GAAeH,GAAQ;AAC9B,SAAOD,GAAcC,CAAM,KAAKA,EAAO,QAAQ,YAAa,MAAK;AACnE;AACA,SAASI,GAAgBC,GAAO;AAC9B,SAAO,CAAC,EAAEA,EAAM,WAAWA,EAAM,UAAUA,EAAM,WAAWA,EAAM;AACpE;AACA,SAASC,GAAuBD,GAAOf,GAAQ;AAC7C,SAAOe,EAAM,WAAW;AAAA,GAExB,CAACf,KAAUA,MAAW;AAAA,EAEtB,CAACc,GAAgBC,CAAK;AAExB;AAsBA,SAASE,GAAmBC,GAAM;AAChC,SAAIA,MAAS,WACXA,IAAO,KAEF,IAAI,gBAAgB,OAAOA,KAAS,YAAY,MAAM,QAAQA,CAAI,KAAKA,aAAgB,kBAAkBA,IAAO,OAAO,KAAKA,CAAI,EAAE,OAAO,CAACC,GAAMhB,MAAQ;AAC7J,QAAIiB,IAAQF,EAAKf,CAAG;AACpB,WAAOgB,EAAK,OAAO,MAAM,QAAQC,CAAK,IAAIA,EAAM,IAAI,CAAAC,MAAK,CAAClB,GAAKkB,CAAC,CAAC,IAAI,CAAC,CAAClB,GAAKiB,CAAK,CAAC,CAAC;AAAA,EACvF,GAAK,CAAA,CAAE,CAAC;AACR;AACA,SAASE,GAA2BC,GAAgBC,GAAqB;AACvE,MAAIC,IAAeR,GAAmBM,CAAc;AACpD,SAAIC,KAMFA,EAAoB,QAAQ,CAACE,GAAGvB,MAAQ;AACtC,IAAKsB,EAAa,IAAItB,CAAG,KACvBqB,EAAoB,OAAOrB,CAAG,EAAE,QAAQ,CAAAiB,MAAS;AAC/C,MAAAK,EAAa,OAAOtB,GAAKiB,CAAK;AAAA,IACxC,CAAS;AAAA,EAET,CAAK,GAEIK;AACT;AAEA,IAAIE,KAA6B;AACjC,SAASC,KAA+B;AACtC,MAAID,OAA+B;AACjC,QAAI;AACF,UAAI;AAAA,QAAS,SAAS,cAAc,MAAM;AAAA;AAAA,QAE1C;AAAA,MAAC,GACDA,KAA6B;AAAA,IAC9B,QAAW;AACV,MAAAA,KAA6B;AAAA,IAC9B;AAEH,SAAOA;AACT;AACA,MAAME,KAAwB,oBAAI,IAAI,CAAC,qCAAqC,uBAAuB,YAAY,CAAC;AAChH,SAASC,GAAeC,GAAS;AAC/B,SAAIA,KAAW,QAAQ,CAACF,GAAsB,IAAIE,CAAO,KACvD,QAAQ,IAAI,aAAa,gBAAeC,GAAe,IAAO,MAAOD,IAAU,+DAAgE,0BAA2BvB,KAAiB,IAAK,GACzL,QAEFuB;AACT;AACA,SAASE,GAAsBjC,GAAQkC,GAAU;AAC/C,MAAIC,GACAC,GACAL,GACAM,GACAC;AACJ,MAAI1B,GAAcZ,CAAM,GAAG;AAIzB,QAAIuC,IAAOvC,EAAO,aAAa,QAAQ;AACvC,IAAAoC,IAASG,IAAOC,EAAcD,GAAML,CAAQ,IAAI,MAChDC,IAASnC,EAAO,aAAa,QAAQ,KAAKO,IAC1CwB,IAAUD,GAAe9B,EAAO,aAAa,SAAS,CAAC,KAAKQ,IAC5D6B,IAAW,IAAI,SAASrC,CAAM;AAAA,EAC/B,WAAUW,GAAgBX,CAAM,KAAKa,GAAeb,CAAM,MAAMA,EAAO,SAAS,YAAYA,EAAO,SAAS,UAAU;AACrH,QAAIyC,IAAOzC,EAAO;AAClB,QAAIyC,KAAQ;AACV,YAAM,IAAI,MAAM,oEAAsE;AAMxF,QAAIF,IAAOvC,EAAO,aAAa,YAAY,KAAKyC,EAAK,aAAa,QAAQ;AAU1E,QATAL,IAASG,IAAOC,EAAcD,GAAML,CAAQ,IAAI,MAChDC,IAASnC,EAAO,aAAa,YAAY,KAAKyC,EAAK,aAAa,QAAQ,KAAKlC,IAC7EwB,IAAUD,GAAe9B,EAAO,aAAa,aAAa,CAAC,KAAK8B,GAAeW,EAAK,aAAa,SAAS,CAAC,KAAKjC,IAEhH6B,IAAW,IAAI,SAASI,GAAMzC,CAAM,GAKhC,CAAC4B,GAA4B,GAAI;AACnC,UAAI;AAAA,QACF,MAAAc;AAAA,QACA,MAAAC;AAAA,QACA,OAAAvB;AAAA,MACD,IAAGpB;AACJ,UAAI2C,MAAS,SAAS;AACpB,YAAIC,IAASF,IAAOA,IAAO,MAAM;AACjC,QAAAL,EAAS,OAAOO,IAAS,KAAK,GAAG,GACjCP,EAAS,OAAOO,IAAS,KAAK,GAAG;AAAA,MAClC,MAAM,CAAIF,KACTL,EAAS,OAAOK,GAAMtB,CAAK;AAAA,IAE9B;AAAA,EACL,OAAS;AAAA,QAAIX,GAAcT,CAAM;AAC7B,YAAM,IAAI,MAAM,oFAA2F;AAE3G,IAAAmC,IAAS5B,IACT6B,IAAS,MACTL,IAAUvB,IACV8B,IAAOtC;AAAA;AAGT,SAAIqC,KAAYN,MAAY,iBAC1BO,IAAOD,GACPA,IAAW,SAEN;AAAA,IACL,QAAAD;AAAA,IACA,QAAQD,EAAO,YAAa;AAAA,IAC5B,SAAAJ;AAAA,IACA,UAAAM;AAAA,IACA,MAAAC;AAAA,EACJ;AACA;AAEA,MAAMO,KAAY,CAAC,WAAW,YAAY,kBAAkB,WAAW,SAAS,UAAU,MAAM,sBAAsB,yBAAyB,GAC7IC,KAAa,CAAC,gBAAgB,iBAAiB,aAAa,OAAO,SAAS,MAAM,2BAA2B,UAAU,GACvHC,KAAa,CAAC,cAAc,YAAY,kBAAkB,WAAW,SAAS,UAAU,UAAU,YAAY,YAAY,sBAAsB,yBAAyB,GAUrKC,KAAuB;AAC7B,IAAI;AACF,SAAO,uBAAuBA;AAChC,QAAY;AAEZ;AAoFA,MAAMC,KAAqC,gBAAAC,EAAM,cAAc;AAAA,EAC7D,iBAAiB;AACnB,CAAC;AACG,QAAQ,IAAI,aAAa,iBAC3BD,GAAsB,cAAc;AAEtC,MAAME,KAA+B,gBAAAD,EAAM,cAAc,oBAAI,IAAK,CAAA;AAC9D,QAAQ,IAAI,aAAa,iBAC3BC,GAAgB,cAAc;AAgZ5B,QAAQ,IAAI;AAGhB,MAAMC,KAAY,OAAO,SAAW,OAAe,OAAO,OAAO,WAAa,OAAe,OAAO,OAAO,SAAS,gBAAkB,KAChIC,KAAqB,iCAIrBC,KAAoB,gBAAAJ,EAAM,WAAW,SAAqBK,GAAOC,GAAK;AAC1E,MAAI;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAA7D;AAAA,IACA,IAAA8D;AAAA,IACA,oBAAAC;AAAA,IACA,yBAAAC;AAAA,EACN,IAAQT,GACJU,IAAO7D,GAA8BmD,GAAOV,EAAS,GACnD;AAAA,IACF,UAAAX;AAAA,EACJ,IAAMgB,EAAM,WAAWgB,EAAwB,GAEzCC,GACAC,IAAa;AACjB,MAAI,OAAON,KAAO,YAAYT,GAAmB,KAAKS,CAAE,MAEtDK,IAAeL,GAEXV;AACF,QAAI;AACF,UAAIiB,IAAa,IAAI,IAAI,OAAO,SAAS,IAAI,GACzCC,IAAYR,EAAG,WAAW,IAAI,IAAI,IAAI,IAAIO,EAAW,WAAWP,CAAE,IAAI,IAAI,IAAIA,CAAE,GAChFS,IAAO/B,EAAc8B,EAAU,UAAUpC,CAAQ;AACrD,MAAIoC,EAAU,WAAWD,EAAW,UAAUE,KAAQ,OAEpDT,IAAKS,IAAOD,EAAU,SAASA,EAAU,OAEzCF,IAAa;AAAA,IAEhB,QAAW;AAEV,cAAQ,IAAI,aAAa,gBAAepC,GAAe,IAAO,eAAgB8B,IAAK,wGAA8G;AAAA,IAClM;AAIL,MAAIU,IAAOC,GAAQX,GAAI;AAAA,IACrB,UAAAJ;AAAA,EACJ,CAAG,GACGgB,IAAkBC,GAAoBb,GAAI;AAAA,IAC5C,SAAAF;AAAA,IACA,OAAAC;AAAA,IACA,QAAA7D;AAAA,IACA,oBAAA+D;AAAA,IACA,UAAAL;AAAA,IACA,yBAAAM;AAAA,EACJ,CAAG;AACD,WAASY,EAAY7D,GAAO;AAC1B,IAAI0C,KAASA,EAAQ1C,CAAK,GACrBA,EAAM,oBACT2D,EAAgB3D,CAAK;AAAA,EAExB;AACD;AAAA;AAAA,IAGE,gBAAAmC,EAAM,cAAc,KAAKnD,GAAS,CAAA,GAAIkE,GAAM;AAAA,MAC1C,MAAME,KAAgBK;AAAA,MACtB,SAASJ,KAAcT,IAAiBF,IAAUmB;AAAA,MAClD,KAAKpB;AAAA,MACL,QAAQxD;AAAA,IACd,CAAK,CAAC;AAAA;AAEN,CAAC;AACG,QAAQ,IAAI,aAAa,iBAC3BsD,GAAK,cAAc;AAKhB,MAACuB,KAAuB,gBAAA3B,EAAM,WAAW,SAAwB4B,GAAOtB,GAAK;AAChF,MAAI;AAAA,IACA,gBAAgBuB,IAAkB;AAAA,IAClC,eAAAC,IAAgB;AAAA,IAChB,WAAWC,IAAgB;AAAA,IAC3B,KAAAC,IAAM;AAAA,IACN,OAAOC;AAAA,IACP,IAAArB;AAAA,IACA,yBAAAE;AAAA,IACA,UAAAoB;AAAA,EACN,IAAQN,GACJb,IAAO7D,GAA8B0E,GAAOhC,EAAU,GACpDyB,IAAOc,GAAgBvB,GAAI;AAAA,IAC7B,UAAUG,EAAK;AAAA,EACnB,CAAG,GACGqB,IAAWC,MACXC,IAActC,EAAM,WAAWuC,EAA6B,GAC5D;AAAA,IACF,WAAAC;AAAA,IACA,UAAAxD;AAAA,EACJ,IAAMgB,EAAM,WAAWgB,EAAwB,GACzCyB,IAAkBH,KAAe;AAAA;AAAA,EAGrCI,GAAuBrB,CAAI,KAAKP,MAA4B,IACxD6B,IAAaH,EAAU,iBAAiBA,EAAU,eAAenB,CAAI,EAAE,WAAWA,EAAK,UACvFuB,IAAmBR,EAAS,UAC5BS,IAAuBP,KAAeA,EAAY,cAAcA,EAAY,WAAW,WAAWA,EAAY,WAAW,SAAS,WAAW;AACjJ,EAAKR,MACHc,IAAmBA,EAAiB,eACpCC,IAAuBA,IAAuBA,EAAqB,YAAW,IAAK,MACnFF,IAAaA,EAAW,gBAEtBE,KAAwB7D,MAC1B6D,IAAuBvD,EAAcuD,GAAsB7D,CAAQ,KAAK6D;AAO1E,QAAMC,IAAmBH,MAAe,OAAOA,EAAW,SAAS,GAAG,IAAIA,EAAW,SAAS,IAAIA,EAAW;AAC7G,MAAII,IAAWH,MAAqBD,KAAc,CAACX,KAAOY,EAAiB,WAAWD,CAAU,KAAKC,EAAiB,OAAOE,CAAgB,MAAM,KAC/IE,IAAYH,KAAwB,SAASA,MAAyBF,KAAc,CAACX,KAAOa,EAAqB,WAAWF,CAAU,KAAKE,EAAqB,OAAOF,EAAW,MAAM,MAAM,MAC9LM,IAAc;AAAA,IAChB,UAAAF;AAAA,IACA,WAAAC;AAAA,IACA,iBAAAP;AAAA,EACJ,GACMS,IAAcH,IAAWlB,IAAkB,QAC3CsB;AACJ,EAAI,OAAOpB,KAAkB,aAC3BoB,IAAYpB,EAAckB,CAAW,IAOrCE,IAAY,CAACpB,GAAegB,IAAW,WAAW,MAAMC,IAAY,YAAY,MAAMP,IAAkB,kBAAkB,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAE1J,MAAIW,IAAQ,OAAOnB,KAAc,aAAaA,EAAUgB,CAAW,IAAIhB;AACvE,SAAoB,gBAAAjC,EAAM,cAAcI,IAAMvD,GAAS,CAAA,GAAIkE,GAAM;AAAA,IAC/D,gBAAgBmC;AAAA,IAChB,WAAWC;AAAA,IACX,KAAK7C;AAAA,IACL,OAAO8C;AAAA,IACP,IAAIxC;AAAA,IACJ,yBAAyBE;AAAA,EAC7B,CAAG,GAAG,OAAOoB,KAAa,aAAaA,EAASe,CAAW,IAAIf,CAAQ;AACvE,CAAC;AACG,QAAQ,IAAI,aAAa,iBAC3BP,GAAQ,cAAc;AAQxB,MAAM0B,KAAoB,gBAAArD,EAAM,WAAW,CAACsD,GAAOC,MAAiB;AAClE,MAAI;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAhD;AAAA,IACA,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAA1B,IAAS5B;AAAA,IACT,QAAA6B;AAAA,IACA,UAAAwE;AAAA,IACA,UAAAlD;AAAA,IACA,oBAAAK;AAAA,IACA,yBAAAC;AAAA,EACN,IAAQwC,GACJK,IAAQzG,GAA8BoG,GAAOzD,EAAU,GACrD+D,IAASC,MACTC,IAAaC,GAAc7E,GAAQ;AAAA,IACrC,UAAAsB;AAAA,EACJ,CAAG,GACGwD,IAAa/E,EAAO,YAAa,MAAK,QAAQ,QAAQ,QACtDgF,IAAgB,CAAApG,MAAS;AAE3B,QADA6F,KAAYA,EAAS7F,CAAK,GACtBA,EAAM,iBAAkB;AAC5B,IAAAA,EAAM,eAAc;AACpB,QAAIqG,IAAYrG,EAAM,YAAY,WAC9BsG,KAAgBD,KAAa,OAAO,SAASA,EAAU,aAAa,YAAY,MAAMjF;AAC1F,IAAA2E,EAAOM,KAAarG,EAAM,eAAe;AAAA,MACvC,YAAA2F;AAAA,MACA,QAAQW;AAAA,MACR,UAAAV;AAAA,MACA,SAAA/C;AAAA,MACA,OAAAC;AAAA,MACA,UAAAH;AAAA,MACA,oBAAAK;AAAA,MACA,yBAAAC;AAAA,IACN,CAAK;AAAA,EACL;AACE,SAAoB,gBAAAd,EAAM,cAAc,QAAQnD,GAAS;AAAA,IACvD,KAAK0G;AAAA,IACL,QAAQS;AAAA,IACR,QAAQF;AAAA,IACR,UAAUrD,IAAiBiD,IAAWO;AAAA,EAC1C,GAAKN,CAAK,CAAC;AACX,CAAC;AACG,QAAQ,IAAI,aAAa,iBAC3BN,GAAK,cAAc;AAiBjB,QAAQ,IAAI;AAOhB,IAAIe;AAAA,CACH,SAAUA,GAAgB;AACzB,EAAAA,EAAe,uBAA0B,wBACzCA,EAAe,YAAe,aAC9BA,EAAe,mBAAsB,oBACrCA,EAAe,aAAgB,cAC/BA,EAAe,yBAA4B;AAC7C,GAAGA,OAAmBA,KAAiB,CAAE,EAAC;AAC1C,IAAIC;AAAA,CACH,SAAUA,GAAqB;AAC9B,EAAAA,EAAoB,aAAgB,cACpCA,EAAoB,cAAiB,eACrCA,EAAoB,uBAA0B;AAChD,GAAGA,OAAwBA,KAAsB,CAAE,EAAC;AAEpD,SAASC,GAA0BC,GAAU;AAC3C,SAAOA,IAAW;AACpB;AACA,SAASC,GAAqBD,GAAU;AACtC,MAAIE,IAAMzE,EAAM,WAAW0E,EAAwB;AACnD,SAACD,MAAM,QAAQ,IAAI,aAAa,eAAeE,GAAiB,IAAOL,GAA0BC,CAAQ,CAAC,IAAII,GAAiB,EAAK,IAC7HF;AACT;AAYA,SAAShD,GAAoBb,GAAIgE,GAAO;AACtC,MAAI;AAAA,IACF,QAAA9H;AAAA,IACA,SAAS+H;AAAA,IACT,OAAAlE;AAAA,IACA,oBAAAE;AAAA,IACA,UAAAL;AAAA,IACA,yBAAAM;AAAA,EACD,IAAG8D,MAAU,SAAS,CAAA,IAAKA,GACxBnB,IAAWqB,MACX1C,IAAWC,MACXhB,IAAOc,GAAgBvB,GAAI;AAAA,IAC7B,UAAAJ;AAAA,EACJ,CAAG;AACD,SAAOR,EAAM,YAAY,CAAAnC,MAAS;AAChC,QAAIC,GAAuBD,GAAOf,CAAM,GAAG;AACzC,MAAAe,EAAM,eAAc;AAGpB,UAAI6C,IAAUmE,MAAgB,SAAYA,IAAcE,GAAW3C,CAAQ,MAAM2C,GAAW1D,CAAI;AAChG,MAAAoC,EAAS7C,GAAI;AAAA,QACX,SAAAF;AAAA,QACA,OAAAC;AAAA,QACA,oBAAAE;AAAA,QACA,UAAAL;AAAA,QACA,yBAAAM;AAAA,MACR,CAAO;AAAA,IACF;AAAA,EACF,GAAE,CAACsB,GAAUqB,GAAUpC,GAAMwD,GAAalE,GAAO7D,GAAQ8D,GAAIC,GAAoBL,GAAUM,CAAuB,CAAC;AACtH;AAKA,SAASkE,GAAgBC,GAAa;AACpC,UAAQ,IAAI,aAAa,gBAAenG,GAAe,OAAO,kBAAoB,KAAa,yOAAwP;AACvV,MAAIoG,IAAyBlF,EAAM,OAAOjC,GAAmBkH,CAAW,CAAC,GACrEE,IAAwBnF,EAAM,OAAO,EAAK,GAC1CoC,IAAWC,MACX9D,IAAeyB,EAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIjC5B,GAA2BgE,EAAS,QAAQ+C,EAAsB,UAAU,OAAOD,EAAuB,OAAO;AAAA,KAAG,CAAC9C,EAAS,MAAM,CAAC,GACjIqB,IAAWqB,MACXM,IAAkBpF,EAAM,YAAY,CAACqF,GAAUC,MAAoB;AACrE,UAAMC,IAAkBxH,GAAmB,OAAOsH,KAAa,aAAaA,EAAS9G,CAAY,IAAI8G,CAAQ;AAC7G,IAAAF,EAAsB,UAAU,IAChC1B,EAAS,MAAM8B,GAAiBD,CAAe;AAAA,EACnD,GAAK,CAAC7B,GAAUlF,CAAY,CAAC;AAC3B,SAAO,CAACA,GAAc6G,CAAe;AACvC;AACA,SAASI,KAA+B;AACtC,MAAI,OAAO,WAAa;AACtB,UAAM,IAAI,MAAM,+GAAoH;AAExI;AACA,IAAIC,KAAY,GACZC,KAAqB,MAAM,OAAO,OAAO,EAAED,EAAS,IAAI;AAK5D,SAAS5B,KAAY;AACnB,MAAI;AAAA,IACF,QAAA8B;AAAA,EACJ,IAAMnB,GAAqBJ,GAAe,SAAS,GAC7C;AAAA,IACF,UAAApF;AAAA,EACJ,IAAMgB,EAAM,WAAWgB,EAAwB,GACzC4E,IAAiBC;AACrB,SAAO7F,EAAM,YAAY,SAAUlD,GAAQgJ,GAAS;AAClD,IAAIA,MAAY,WACdA,IAAU,CAAA,IAEZN;AACA,QAAI;AAAA,MACF,QAAAtG;AAAA,MACA,QAAAD;AAAA,MACA,SAAAJ;AAAA,MACA,UAAAM;AAAA,MACA,MAAAC;AAAA,IACN,IAAQL,GAAsBjC,GAAQkC,CAAQ;AAC1C,QAAI8G,EAAQ,aAAa,IAAO;AAC9B,UAAI7I,IAAM6I,EAAQ,cAAcJ,GAAkB;AAClD,MAAAC,EAAO,MAAM1I,GAAK2I,GAAgBE,EAAQ,UAAU5G,GAAQ;AAAA,QAC1D,oBAAoB4G,EAAQ;AAAA,QAC5B,UAAA3G;AAAA,QACA,MAAAC;AAAA,QACA,YAAY0G,EAAQ,UAAU7G;AAAA,QAC9B,aAAa6G,EAAQ,WAAWjH;AAAA,QAChC,oBAAoBiH,EAAQ;AAAA,MACpC,CAAO;AAAA,IACP;AACM,MAAAH,EAAO,SAASG,EAAQ,UAAU5G,GAAQ;AAAA,QACxC,oBAAoB4G,EAAQ;AAAA,QAC5B,UAAA3G;AAAA,QACA,MAAAC;AAAA,QACA,YAAY0G,EAAQ,UAAU7G;AAAA,QAC9B,aAAa6G,EAAQ,WAAWjH;AAAA,QAChC,SAASiH,EAAQ;AAAA,QACjB,OAAOA,EAAQ;AAAA,QACf,aAAaF;AAAA,QACb,oBAAoBE,EAAQ;AAAA,QAC5B,yBAAyBA,EAAQ;AAAA,MACzC,CAAO;AAAA,EAEJ,GAAE,CAACH,GAAQ3G,GAAU4G,CAAc,CAAC;AACvC;AAGA,SAAS7B,GAAc7E,GAAQ6G,GAAQ;AACrC,MAAI;AAAA,IACF,UAAAvF;AAAA,EACD,IAAGuF,MAAW,SAAS,CAAA,IAAKA,GACzB;AAAA,IACF,UAAA/G;AAAA,EACJ,IAAMgB,EAAM,WAAWgB,EAAwB,GACzCgF,IAAehG,EAAM,WAAWiG,EAAmB;AACvD,EAACD,MAAe,QAAQ,IAAI,aAAa,eAAerB,GAAiB,IAAO,kDAAkD,IAAIA,GAAiB,EAAK;AAC5J,MAAI,CAACuB,CAAK,IAAIF,EAAa,QAAQ,MAAM,EAAE,GAGvC3E,IAAOxE,GAAS,CAAE,GAAEsF,GAAgBjD,KAAkB,KAAK;AAAA,IAC7D,UAAAsB;AAAA,EACD,CAAA,CAAC,GAIE4B,IAAWC;AACf,MAAInD,KAAU,MAAM;AAGlB,IAAAmC,EAAK,SAASe,EAAS;AAIvB,QAAI+D,IAAS,IAAI,gBAAgB9E,EAAK,MAAM;AAC5C,IAAI8E,EAAO,IAAI,OAAO,KAAKA,EAAO,IAAI,OAAO,MAAM,OACjDA,EAAO,OAAO,OAAO,GACrB9E,EAAK,SAAS8E,EAAO,SAAQ,IAAK,MAAMA,EAAO,SAAU,IAAG;AAAA,EAE/D;AACD,UAAK,CAACjH,KAAUA,MAAW,QAAQgH,EAAM,MAAM,UAC7C7E,EAAK,SAASA,EAAK,SAASA,EAAK,OAAO,QAAQ,OAAO,SAAS,IAAI,WAMlErC,MAAa,QACfqC,EAAK,WAAWA,EAAK,aAAa,MAAMrC,IAAWoH,GAAU,CAACpH,GAAUqC,EAAK,QAAQ,CAAC,IAEjF0D,GAAW1D,CAAI;AACxB;AAgRA,SAASqB,GAAuB9B,GAAIyF,GAAM;AACxC,EAAIA,MAAS,WACXA,IAAO,CAAA;AAET,MAAIC,IAAYtG,EAAM,WAAWD,EAAqB;AACtD,EAAEuG,KAAa,SAAQ,QAAQ,IAAI,aAAa,eAAe3B,GAAiB,IAAO,iKAAsK,IAAIA,GAAiB,EAAK;AACvR,MAAI;AAAA,IACF,UAAA3F;AAAA,EACJ,IAAMwF,GAAqBJ,GAAe,sBAAsB,GAC1D/C,IAAOc,GAAgBvB,GAAI;AAAA,IAC7B,UAAUyF,EAAK;AAAA,EACnB,CAAG;AACD,MAAI,CAACC,EAAU;AACb,WAAO;AAET,MAAIC,IAAcjH,EAAcgH,EAAU,gBAAgB,UAAUtH,CAAQ,KAAKsH,EAAU,gBAAgB,UACvGE,IAAWlH,EAAcgH,EAAU,aAAa,UAAUtH,CAAQ,KAAKsH,EAAU,aAAa;AAclG,SAAOG,GAAUpF,EAAK,UAAUmF,CAAQ,KAAK,QAAQC,GAAUpF,EAAK,UAAUkF,CAAW,KAAK;AAChG;ACl6CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,MAAMG,KAAc,CAACC,MAAWA,EAAO,QAAQ,sBAAsB,OAAO,EAAE,eACxEC,KAAe,IAAIC,MAAYA,EAAQ,OAAO,CAAC1D,GAAW2D,GAAOC,MAC9D,EAAQ5D,KAAc4D,EAAM,QAAQ5D,CAAS,MAAM2D,CAC3D,EAAE,KAAK,GAAG;ACVX;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,IAAIE,KAAoB;AAAA,EACtB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAClB;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,MAAMC,KAAOC;AAAA,EACX,CAAC;AAAA,IACC,OAAAC,IAAQ;AAAA,IACR,MAAAC,IAAO;AAAA,IACP,aAAAC,IAAc;AAAA,IACd,qBAAAC;AAAA,IACA,WAAAnE,IAAY;AAAA,IACZ,UAAAjB;AAAA,IACA,UAAAqF;AAAA,IACA,GAAGxG;AAAA,EACJ,GAAET,MACMkH;AAAA,IACL;AAAA,IACA;AAAA,MACE,KAAAlH;AAAA,MACA,GAAG0G;AAAA,MACH,OAAOI;AAAA,MACP,QAAQA;AAAA,MACR,QAAQD;AAAA,MACR,aAAaG,IAAsB,OAAOD,CAAW,IAAI,KAAK,OAAOD,CAAI,IAAIC;AAAA,MAC7E,WAAWT,GAAa,UAAUzD,CAAS;AAAA,MAC3C,GAAGpC;AAAA,IACJ;AAAA,IACD;AAAA,MACE,GAAGwG,EAAS,IAAI,CAAC,CAACE,GAAKC,CAAK,MAAMF,GAAcC,GAAKC,CAAK,CAAC;AAAA,MAC3D,GAAG,MAAM,QAAQxF,CAAQ,IAAIA,IAAW,CAACA,CAAQ;AAAA,IAClD;AAAA,EACP;AAEA;ACxCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWK,MAACyF,KAAmB,CAACC,GAAUL,MAAa;AAC/C,QAAMM,IAAYX;AAAA,IAChB,CAAC,EAAE,WAAA/D,GAAW,GAAGQ,EAAO,GAAErD,MAAQkH,GAAcP,IAAM;AAAA,MACpD,KAAA3G;AAAA,MACA,UAAAiH;AAAA,MACA,WAAWX,GAAa,UAAUF,GAAYkB,CAAQ,CAAC,IAAIzE,CAAS;AAAA,MACpE,GAAGQ;AAAA,IACT,CAAK;AAAA,EACL;AACE,SAAAkE,EAAU,cAAc,GAAGD,CAAQ,IAC5BC;AACT;ACtBA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAACC,KAAQH,GAAiB,SAAS,CAAC,CAAC,QAAQ,EAAE,GAAG,mBAAmB,KAAK,SAAQ,CAAE,CAAC,CAAC;ACT3F;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMI,KAAOJ,GAAiB,QAAQ;AAAA,EACpC,CAAC,QAAQ,EAAE,OAAO,MAAM,QAAQ,MAAM,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,UAAU;AAAA,EACvF,CAAC,QAAQ,EAAE,GAAG,2DAA2D,KAAK,SAAQ,CAAE;AAC1F,CAAC;ACZD;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMK,KAAOL,GAAiB,QAAQ;AAAA,EACpC,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,UAAU;AAAA,EACzD,CAAC,QAAQ,EAAE,GAAG,aAAa,KAAK,SAAQ,CAAE;AAAA,EAC1C,CAAC,QAAQ,EAAE,GAAG,aAAa,KAAK,SAAQ,CAAE;AAC5C,CAAC;ACbD;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMM,KAAYN,GAAiB,aAAa;AAAA,EAC9C;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACN;AAAA,EACF;AAAA,EACD,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAC3C,CAAC;ACnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMO,KAAcP,GAAiB,eAAe;AAAA,EAClD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACN;AAAA,EACF;AAAA,EACD,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAQ,CAAE;AAC7C,CAAC;ACnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAACQ,KAAgBR,GAAiB,iBAAiB;AAAA,EACtD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACN;AAAA,EACF;AAAA,EACD,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAQ,CAAE;AAC7C,CAAC;ACnBD,SAASS,GAAE,GAAE;AAAC,MAAI,GAAEC,GAAE,IAAE;AAAG,MAAa,OAAO,KAAjB,YAA8B,OAAO,KAAjB,SAAmB,MAAG;AAAA,WAAoB,OAAO,KAAjB,SAAmB,KAAG,MAAM,QAAQ,CAAC,GAAE;AAAC,QAAIC,IAAE,EAAE;AAAO,SAAI,IAAE,GAAE,IAAEA,GAAE,IAAI,GAAE,CAAC,MAAID,IAAED,GAAE,EAAE,CAAC,CAAC,OAAK,MAAI,KAAG,MAAK,KAAGC;AAAA,EAAE,MAAM,MAAIA,KAAK,EAAE,GAAEA,CAAC,MAAI,MAAI,KAAG,MAAK,KAAGA;AAAG,SAAO;AAAC;AAAQ,SAASE,KAAM;AAAC,WAAQ,GAAE,GAAEF,IAAE,GAAE,IAAE,IAAGC,IAAE,UAAU,QAAOD,IAAEC,GAAED,IAAI,EAAC,IAAE,UAAUA,CAAC,OAAK,IAAED,GAAE,CAAC,OAAK,MAAI,KAAG,MAAK,KAAG;AAAG,SAAO;AAAC;ACA/W,MAAMI,KAAuB;AAC7B,SAASC,GAAiBC,GAAQ;AAChC,QAAMC,IAAWC,GAAeF,CAAM,GAChC;AAAA,IACJ,wBAAAG;AAAA,IACA,gCAAAC;AAAA,EACD,IAAGJ;AACJ,WAASK,EAAgB5F,GAAW;AAClC,UAAM6F,IAAa7F,EAAU,MAAMqF,EAAoB;AAEvD,WAAIQ,EAAW,CAAC,MAAM,MAAMA,EAAW,WAAW,KAChDA,EAAW,MAAK,GAEXC,GAAkBD,GAAYL,CAAQ,KAAKO,GAA+B/F,CAAS;AAAA,EAC3F;AACD,WAASgG,EAA4BC,GAAcC,GAAoB;AACrE,UAAMC,IAAYT,EAAuBO,CAAY,KAAK,CAAA;AAC1D,WAAIC,KAAsBP,EAA+BM,CAAY,IAC5D,CAAC,GAAGE,GAAW,GAAGR,EAA+BM,CAAY,CAAC,IAEhEE;AAAA,EACR;AACD,SAAO;AAAA,IACL,iBAAAP;AAAA,IACA,6BAAAI;AAAA,EACJ;AACA;AACA,SAASF,GAAkBD,GAAYO,GAAiB;;AACtD,MAAIP,EAAW,WAAW;AACxB,WAAOO,EAAgB;AAEzB,QAAMC,IAAmBR,EAAW,CAAC,GAC/BS,IAAsBF,EAAgB,SAAS,IAAIC,CAAgB,GACnEE,IAA8BD,IAAsBR,GAAkBD,EAAW,MAAM,CAAC,GAAGS,CAAmB,IAAI;AACxH,MAAIC;AACF,WAAOA;AAET,MAAIH,EAAgB,WAAW,WAAW;AACxC;AAEF,QAAMI,IAAYX,EAAW,KAAKR,EAAoB;AACtD,UAAOoB,IAAAL,EAAgB,WAAW,KAAK,CAAC;AAAA,IACtC,WAAAM;AAAA,EACD,MAAKA,EAAUF,CAAS,CAAC,MAFnB,gBAAAC,EAEsB;AAC/B;AACA,MAAME,KAAyB;AAC/B,SAASZ,GAA+B/F,GAAW;AACjD,MAAI2G,GAAuB,KAAK3G,CAAS,GAAG;AAC1C,UAAM4G,IAA6BD,GAAuB,KAAK3G,CAAS,EAAE,CAAC,GACrE6G,IAAWD,KAAA,gBAAAA,EAA4B,UAAU,GAAGA,EAA2B,QAAQ,GAAG;AAChG,QAAIC;AAEF,aAAO,gBAAgBA;AAAA,EAE1B;AACH;AAIA,SAASpB,GAAeF,GAAQ;AAC9B,QAAM;AAAA,IACJ,OAAAuB;AAAA,IACA,QAAAvK;AAAA,EACD,IAAGgJ,GACEC,IAAW;AAAA,IACf,UAAU,oBAAI,IAAK;AAAA,IACnB,YAAY,CAAE;AAAA,EAClB;AAEE,SADkCuB,GAA6B,OAAO,QAAQxB,EAAO,WAAW,GAAGhJ,CAAM,EAC/E,QAAQ,CAAC,CAAC0J,GAAce,CAAU,MAAM;AAChE,IAAAC,GAA0BD,GAAYxB,GAAUS,GAAca,CAAK;AAAA,EACvE,CAAG,GACMtB;AACT;AACA,SAASyB,GAA0BD,GAAYZ,GAAiBH,GAAca,GAAO;AACnF,EAAAE,EAAW,QAAQ,CAAAE,MAAmB;AACpC,QAAI,OAAOA,KAAoB,UAAU;AACvC,YAAMC,IAAwBD,MAAoB,KAAKd,IAAkBgB,GAAQhB,GAAiBc,CAAe;AACjH,MAAAC,EAAsB,eAAelB;AACrC;AAAA,IACD;AACD,QAAI,OAAOiB,KAAoB,YAAY;AACzC,UAAIG,GAAcH,CAAe,GAAG;AAClC,QAAAD,GAA0BC,EAAgBJ,CAAK,GAAGV,GAAiBH,GAAca,CAAK;AACtF;AAAA,MACD;AACD,MAAAV,EAAgB,WAAW,KAAK;AAAA,QAC9B,WAAWc;AAAA,QACX,cAAAjB;AAAA,MACR,CAAO;AACD;AAAA,IACD;AACD,WAAO,QAAQiB,CAAe,EAAE,QAAQ,CAAC,CAACpN,GAAKkN,CAAU,MAAM;AAC7D,MAAAC,GAA0BD,GAAYI,GAAQhB,GAAiBtM,CAAG,GAAGmM,GAAca,CAAK;AAAA,IAC9F,CAAK;AAAA,EACL,CAAG;AACH;AACA,SAASM,GAAQhB,GAAiBlI,GAAM;AACtC,MAAIoJ,IAAyBlB;AAC7B,SAAAlI,EAAK,MAAMmH,EAAoB,EAAE,QAAQ,CAAAkC,MAAY;AACnD,IAAKD,EAAuB,SAAS,IAAIC,CAAQ,KAC/CD,EAAuB,SAAS,IAAIC,GAAU;AAAA,MAC5C,UAAU,oBAAI,IAAK;AAAA,MACnB,YAAY,CAAE;AAAA,IACtB,CAAO,GAEHD,IAAyBA,EAAuB,SAAS,IAAIC,CAAQ;AAAA,EACzE,CAAG,GACMD;AACT;AACA,SAASD,GAAcG,GAAM;AAC3B,SAAOA,EAAK;AACd;AACA,SAAST,GAA6BU,GAAmBlL,GAAQ;AAC/D,SAAKA,IAGEkL,EAAkB,IAAI,CAAC,CAACxB,GAAce,CAAU,MAAM;AAC3D,UAAMU,IAAqBV,EAAW,IAAI,CAAAE,MACpC,OAAOA,KAAoB,WACtB3K,IAAS2K,IAEd,OAAOA,KAAoB,WACtB,OAAO,YAAY,OAAO,QAAQA,CAAe,EAAE,IAAI,CAAC,CAACpN,GAAKiB,CAAK,MAAM,CAACwB,IAASzC,GAAKiB,CAAK,CAAC,CAAC,IAEjGmM,CACR;AACD,WAAO,CAACjB,GAAcyB,CAAkB;AAAA,EAC5C,CAAG,IAbQD;AAcX;AAGA,SAASE,GAAeC,GAAc;AACpC,MAAIA,IAAe;AACjB,WAAO;AAAA,MACL,KAAK,MAAA;AAAA;AAAA,MACL,KAAK,MAAM;AAAA,MAAE;AAAA,IACnB;AAEE,MAAIC,IAAY,GACZC,IAAQ,oBAAI,OACZC,IAAgB,oBAAI;AACxB,WAASC,EAAOlO,GAAKiB,GAAO;AAC1B,IAAA+M,EAAM,IAAIhO,GAAKiB,CAAK,GACpB8M,KACIA,IAAYD,MACdC,IAAY,GACZE,IAAgBD,GAChBA,IAAQ,oBAAI;EAEf;AACD,SAAO;AAAA,IACL,IAAIhO,GAAK;AACP,UAAIiB,IAAQ+M,EAAM,IAAIhO,CAAG;AACzB,UAAIiB,MAAU;AACZ,eAAOA;AAET,WAAKA,IAAQgN,EAAc,IAAIjO,CAAG,OAAO;AACvC,eAAAkO,EAAOlO,GAAKiB,CAAK,GACVA;AAAA,IAEV;AAAA,IACD,IAAIjB,GAAKiB,GAAO;AACd,MAAI+M,EAAM,IAAIhO,CAAG,IACfgO,EAAM,IAAIhO,GAAKiB,CAAK,IAEpBiN,EAAOlO,GAAKiB,CAAK;AAAA,IAEpB;AAAA,EACL;AACA;AACA,MAAMkN,KAAqB;AAC3B,SAASC,GAAqB3C,GAAQ;AACpC,QAAM4C,IAAY5C,EAAO,WACnB6C,IAA6BD,EAAU,WAAW,GAClDE,IAA0BF,EAAU,CAAC,GACrCG,IAAkBH,EAAU;AAElC,SAAO,SAAwBnI,GAAW;AACxC,UAAMuI,IAAY,CAAA;AAClB,QAAIC,IAAe,GACfC,IAAgB,GAChBC;AACJ,aAAS/E,IAAQ,GAAGA,IAAQ3D,EAAU,QAAQ2D,KAAS;AACrD,UAAIgF,IAAmB3I,EAAU2D,CAAK;AACtC,UAAI6E,MAAiB,GAAG;AACtB,YAAIG,MAAqBN,MAA4BD,KAA8BpI,EAAU,MAAM2D,GAAOA,IAAQ2E,CAAe,MAAMH,IAAY;AACjJ,UAAAI,EAAU,KAAKvI,EAAU,MAAMyI,GAAe9E,CAAK,CAAC,GACpD8E,IAAgB9E,IAAQ2E;AACxB;AAAA,QACD;AACD,YAAIK,MAAqB,KAAK;AAC5B,UAAAD,IAA0B/E;AAC1B;AAAA,QACD;AAAA,MACF;AACD,MAAIgF,MAAqB,MACvBH,MACSG,MAAqB,OAC9BH;AAAA,IAEH;AACD,UAAMI,IAAqCL,EAAU,WAAW,IAAIvI,IAAYA,EAAU,UAAUyI,CAAa,GAC3GI,IAAuBD,EAAmC,WAAWX,EAAkB,GACvFa,IAAgBD,IAAuBD,EAAmC,UAAU,CAAC,IAAIA,GACzFG,IAA+BL,KAA2BA,IAA0BD,IAAgBC,IAA0BD,IAAgB;AACpJ,WAAO;AAAA,MACL,WAAAF;AAAA,MACA,sBAAAM;AAAA,MACA,eAAAC;AAAA,MACA,8BAAAC;AAAA,IACN;AAAA,EACA;AACA;AAMA,SAASC,GAAcT,GAAW;AAChC,MAAIA,EAAU,UAAU;AACtB,WAAOA;AAET,QAAMU,IAAkB,CAAA;AACxB,MAAIC,IAAoB,CAAA;AACxB,SAAAX,EAAU,QAAQ,CAAAY,MAAY;AAE5B,IAD2BA,EAAS,CAAC,MAAM,OAEzCF,EAAgB,KAAK,GAAGC,EAAkB,KAAM,GAAEC,CAAQ,GAC1DD,IAAoB,CAAA,KAEpBA,EAAkB,KAAKC,CAAQ;AAAA,EAErC,CAAG,GACDF,EAAgB,KAAK,GAAGC,EAAkB,KAAM,CAAA,GACzCD;AACT;AACA,SAASG,GAAkB7D,GAAQ;AACjC,SAAO;AAAA,IACL,OAAOoC,GAAepC,EAAO,SAAS;AAAA,IACtC,gBAAgB2C,GAAqB3C,CAAM;AAAA,IAC3C,GAAGD,GAAiBC,CAAM;AAAA,EAC9B;AACA;AACA,MAAM8D,KAAsB;AAC5B,SAASC,GAAeC,GAAWC,GAAa;AAC9C,QAAM;AAAA,IACJ,gBAAAC;AAAA,IACA,iBAAA7D;AAAA,IACA,6BAAAI;AAAA,EACD,IAAGwD,GAQEE,IAAwB,oBAAI;AAClC,SAAOH,EAAU,OAAO,MAAMF,EAAmB,EAAE,IAAI,CAAAM,MAAqB;AAC1E,UAAM;AAAA,MACJ,WAAApB;AAAA,MACA,sBAAAM;AAAA,MACA,eAAAC;AAAA,MACA,8BAAAC;AAAA,IACN,IAAQU,EAAeE,CAAiB;AACpC,QAAI1D,IAAeL,EAAgBmD,IAA+BD,EAAc,UAAU,GAAGC,CAA4B,IAAID,CAAa,GACtI5C,IAAqB,EAAQ6C;AACjC,QAAI,CAAC9C,GAAc;AACjB,UAAI,CAAC8C;AACH,eAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,mBAAAY;AAAA,QACV;AAGM,UADA1D,IAAeL,EAAgBkD,CAAa,GACxC,CAAC7C;AACH,eAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,mBAAA0D;AAAA,QACV;AAEM,MAAAzD,IAAqB;AAAA,IACtB;AACD,UAAM0D,IAAkBZ,GAAcT,CAAS,EAAE,KAAK,GAAG;AAEzD,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,YAHiBM,IAAuBe,IAAkB3B,KAAqB2B;AAAA,MAI/E,cAAA3D;AAAA,MACA,mBAAA0D;AAAA,MACA,oBAAAzD;AAAA,IACN;AAAA,EACG,CAAA,EAAE,QAAS,EAEX,OAAO,CAAA2D,MAAU;AAChB,QAAI,CAACA,EAAO;AACV,aAAO;AAET,UAAM;AAAA,MACJ,YAAAC;AAAA,MACA,cAAA7D;AAAA,MACA,oBAAAC;AAAA,IACD,IAAG2D,GACEE,IAAUD,IAAa7D;AAC7B,WAAIyD,EAAsB,IAAIK,CAAO,IAC5B,MAETL,EAAsB,IAAIK,CAAO,GACjC/D,EAA4BC,GAAcC,CAAkB,EAAE,QAAQ,CAAA8D,MAASN,EAAsB,IAAII,IAAaE,CAAK,CAAC,GACrH;AAAA,EACX,CAAG,EAAE,UAAU,IAAI,CAAAH,MAAUA,EAAO,iBAAiB,EAAE,KAAK,GAAG;AAC/D;AAWA,SAASI,KAAS;AAChB,MAAItG,IAAQ,GACRuG,GACAC,GACA3G,IAAS;AACb,SAAOG,IAAQ,UAAU;AACvB,KAAIuG,IAAW,UAAUvG,GAAO,OAC1BwG,IAAgBC,GAAQF,CAAQ,OAClC1G,MAAWA,KAAU,MACrBA,KAAU2G;AAIhB,SAAO3G;AACT;AACA,SAAS4G,GAAQC,GAAK;AACpB,MAAI,OAAOA,KAAQ;AACjB,WAAOA;AAET,MAAIF,GACA3G,IAAS;AACb,WAAS8G,IAAI,GAAGA,IAAID,EAAI,QAAQC;AAC9B,IAAID,EAAIC,CAAC,MACHH,IAAgBC,GAAQC,EAAIC,CAAC,CAAC,OAChC9G,MAAWA,KAAU,MACrBA,KAAU2G;AAIhB,SAAO3G;AACT;AACA,SAAS+G,GAAoBC,MAAsBC,GAAkB;AACnE,MAAIjB,GACAkB,GACAC,GACAC,IAAiBC;AACrB,WAASA,EAAkBtB,GAAW;AACpC,UAAMhE,IAASkF,EAAiB,OAAO,CAACK,GAAgBC,MAAwBA,EAAoBD,CAAc,GAAGN,EAAiB,CAAE;AACxI,WAAAhB,IAAcJ,GAAkB7D,CAAM,GACtCmF,IAAWlB,EAAY,MAAM,KAC7BmB,IAAWnB,EAAY,MAAM,KAC7BoB,IAAiBI,GACVA,EAAczB,CAAS;AAAA,EAC/B;AACD,WAASyB,EAAczB,GAAW;AAChC,UAAM0B,IAAeP,EAASnB,CAAS;AACvC,QAAI0B;AACF,aAAOA;AAET,UAAMC,IAAS5B,GAAeC,GAAWC,CAAW;AACpD,WAAAmB,EAASpB,GAAW2B,CAAM,GACnBA;AAAA,EACR;AACD,SAAO,WAA6B;AAClC,WAAON,EAAeX,GAAO,MAAM,MAAM,SAAS,CAAC;AAAA,EACvD;AACA;AACA,SAASkB,EAAUrR,GAAK;AACtB,QAAMsR,IAAc,CAAAtE,MAASA,EAAMhN,CAAG,KAAK,CAAA;AAC3C,SAAAsR,EAAY,gBAAgB,IACrBA;AACT;AACA,MAAMC,KAAsB,8BACtBC,KAAgB,cAChBC,KAA6B,oBAAI,IAAI,CAAC,MAAM,QAAQ,QAAQ,CAAC,GAC7DC,KAAkB,oCAClBC,KAAkB,6HAClBC,KAAqB,4CAErBC,KAAc,mEACdC,KAAa;AACnB,SAASC,EAAS9Q,GAAO;AACvB,SAAO+Q,EAAS/Q,CAAK,KAAKwQ,GAAc,IAAIxQ,CAAK,KAAKuQ,GAAc,KAAKvQ,CAAK;AAChF;AACA,SAASgR,EAAkBhR,GAAO;AAChC,SAAOiR,GAAoBjR,GAAO,UAAUkR,EAAY;AAC1D;AACA,SAASH,EAAS/Q,GAAO;AACvB,SAAO,EAAQA,KAAU,CAAC,OAAO,MAAM,OAAOA,CAAK,CAAC;AACtD;AACA,SAASmR,GAAkBnR,GAAO;AAChC,SAAOiR,GAAoBjR,GAAO,UAAU+Q,CAAQ;AACtD;AACA,SAASK,GAAUpR,GAAO;AACxB,SAAO,EAAQA,KAAU,OAAO,UAAU,OAAOA,CAAK,CAAC;AACzD;AACA,SAASqR,GAAUrR,GAAO;AACxB,SAAOA,EAAM,SAAS,GAAG,KAAK+Q,EAAS/Q,EAAM,MAAM,GAAG,EAAE,CAAC;AAC3D;AACA,SAASsR,EAAiBtR,GAAO;AAC/B,SAAOsQ,GAAoB,KAAKtQ,CAAK;AACvC;AACA,SAASuR,EAAavR,GAAO;AAC3B,SAAOyQ,GAAgB,KAAKzQ,CAAK;AACnC;AACA,MAAMwR,KAA0B,oBAAI,IAAI,CAAC,UAAU,QAAQ,YAAY,CAAC;AACxE,SAASC,GAAgBzR,GAAO;AAC9B,SAAOiR,GAAoBjR,GAAOwR,IAAYE,EAAO;AACvD;AACA,SAASC,GAAoB3R,GAAO;AAClC,SAAOiR,GAAoBjR,GAAO,YAAY0R,EAAO;AACvD;AACA,MAAME,KAA2B,oBAAI,IAAI,CAAC,SAAS,KAAK,CAAC;AACzD,SAASC,GAAiB7R,GAAO;AAC/B,SAAOiR,GAAoBjR,GAAO4R,IAAaE,EAAO;AACxD;AACA,SAASC,GAAkB/R,GAAO;AAChC,SAAOiR,GAAoBjR,GAAO,IAAIgS,EAAQ;AAChD;AACA,SAASC,KAAQ;AACf,SAAO;AACT;AACA,SAAShB,GAAoBjR,GAAOkS,GAAOC,GAAW;AACpD,QAAMhC,IAASG,GAAoB,KAAKtQ,CAAK;AAC7C,SAAImQ,IACEA,EAAO,CAAC,IACH,OAAO+B,KAAU,WAAW/B,EAAO,CAAC,MAAM+B,IAAQA,EAAM,IAAI/B,EAAO,CAAC,CAAC,IAEvEgC,EAAUhC,EAAO,CAAC,CAAC,IAErB;AACT;AACA,SAASe,GAAalR,GAAO;AAI3B,SAAO0Q,GAAgB,KAAK1Q,CAAK,KAAK,CAAC2Q,GAAmB,KAAK3Q,CAAK;AACtE;AACA,SAAS0R,KAAU;AACjB,SAAO;AACT;AACA,SAASM,GAAShS,GAAO;AACvB,SAAO4Q,GAAY,KAAK5Q,CAAK;AAC/B;AACA,SAAS8R,GAAQ9R,GAAO;AACtB,SAAO6Q,GAAW,KAAK7Q,CAAK;AAC9B;AAmBA,SAASoS,KAAmB;AAC1B,QAAMC,IAASjC,EAAU,QAAQ,GAC3BkC,IAAUlC,EAAU,SAAS,GAC7BmC,IAAOnC,EAAU,MAAM,GACvBoC,IAAapC,EAAU,YAAY,GACnCqC,IAAcrC,EAAU,aAAa,GACrCsC,IAAetC,EAAU,cAAc,GACvCuC,IAAgBvC,EAAU,eAAe,GACzCwC,IAAcxC,EAAU,aAAa,GACrCyC,IAAWzC,EAAU,UAAU,GAC/B0C,IAAY1C,EAAU,WAAW,GACjC2C,IAAY3C,EAAU,WAAW,GACjC4C,IAAS5C,EAAU,QAAQ,GAC3B6C,IAAM7C,EAAU,KAAK,GACrB8C,IAAqB9C,EAAU,oBAAoB,GACnD+C,IAA6B/C,EAAU,4BAA4B,GACnEgD,IAAQhD,EAAU,OAAO,GACzBiD,IAASjD,EAAU,QAAQ,GAC3BkD,IAAUlD,EAAU,SAAS,GAC7BmD,IAAUnD,EAAU,SAAS,GAC7BoD,IAAWpD,EAAU,UAAU,GAC/BqD,IAAQrD,EAAU,OAAO,GACzBsD,IAAQtD,EAAU,OAAO,GACzBuD,IAAOvD,EAAU,MAAM,GACvBwD,IAAQxD,EAAU,OAAO,GACzByD,IAAYzD,EAAU,WAAW,GACjC0D,IAAgB,MAAM,CAAC,QAAQ,WAAW,MAAM,GAChDC,IAAc,MAAM,CAAC,QAAQ,UAAU,QAAQ,WAAW,QAAQ,GAClEC,IAAiC,MAAM,CAAC,QAAQ1C,GAAkBgB,CAAO,GACzE2B,IAA0B,MAAM,CAAC3C,GAAkBgB,CAAO,GAC1D4B,KAAiC,MAAM,CAAC,IAAIpD,GAAUE,CAAiB,GACvEmD,IAAgC,MAAM,CAAC,QAAQpD,GAAUO,CAAgB,GACzE8C,IAAe,MAAM,CAAC,UAAU,UAAU,QAAQ,eAAe,YAAY,SAAS,gBAAgB,aAAa,KAAK,GACxHC,IAAgB,MAAM,CAAC,SAAS,UAAU,UAAU,UAAU,MAAM,GACpEC,IAAgB,MAAM,CAAC,UAAU,YAAY,UAAU,WAAW,UAAU,WAAW,eAAe,cAAc,cAAc,cAAc,cAAc,aAAa,OAAO,cAAc,SAAS,YAAY,GACrNC,IAAW,MAAM,CAAC,SAAS,OAAO,UAAU,WAAW,UAAU,UAAU,SAAS,GACpFC,IAAkB,MAAM,CAAC,IAAI,KAAKlD,CAAgB,GAClDmD,IAAY,MAAM,CAAC,QAAQ,SAAS,OAAO,cAAc,QAAQ,QAAQ,SAAS,QAAQ,GAC1FC,IAAY,MAAM,CAAC3D,GAAUI,EAAiB,GAC9CwD,IAAwB,MAAM,CAAC5D,GAAUO,CAAgB;AAC/D,SAAO;AAAA,IACL,WAAW;AAAA,IACX,WAAW;AAAA,IACX,OAAO;AAAA,MACL,QAAQ,CAACW,EAAK;AAAA,MACd,SAAS,CAACnB,GAAUE,CAAiB;AAAA,MACrC,MAAM,CAAC,QAAQ,IAAIO,GAAcD,CAAgB;AAAA,MACjD,YAAYoD,EAAW;AAAA,MACvB,aAAa,CAACrC,CAAM;AAAA,MACpB,cAAc,CAAC,QAAQ,IAAI,QAAQd,GAAcD,CAAgB;AAAA,MACjE,eAAe2C,EAAyB;AAAA,MACxC,aAAaC,GAAgC;AAAA,MAC7C,UAAUQ,EAAW;AAAA,MACrB,WAAWF,EAAiB;AAAA,MAC5B,WAAWG,EAAuB;AAAA,MAClC,QAAQH,EAAiB;AAAA,MACzB,KAAKP,EAAyB;AAAA,MAC9B,oBAAoB,CAAC5B,CAAM;AAAA,MAC3B,4BAA4B,CAAChB,IAAWL,CAAiB;AAAA,MACzD,OAAOgD,EAAgC;AAAA,MACvC,QAAQA,EAAgC;AAAA,MACxC,SAASU,EAAW;AAAA,MACpB,SAAST,EAAyB;AAAA,MAClC,UAAUS,EAAW;AAAA,MACrB,OAAOA,EAAW;AAAA,MAClB,OAAOF,EAAiB;AAAA,MACxB,MAAMG,EAAuB;AAAA,MAC7B,OAAOV,EAAyB;AAAA,MAChC,WAAWA,EAAyB;AAAA,IACrC;AAAA,IACD,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMX,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,UAAU,SAAS3C,CAAgB;AAAA,MAC5D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvB,SAAS,CAAC;AAAA,QACR,SAAS,CAACC,CAAY;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAekD,EAAW;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,EAAW;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,QAAQ,SAAS,cAAc,cAAc;AAAA,MACtE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC,SAAS,OAAO;AAAA,MAC3C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAAC,UAAU,SAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC,SAAS,gBAAgB,UAAU,QAAQ,eAAe,SAAS,gBAAgB,iBAAiB,cAAc,gBAAgB,sBAAsB,sBAAsB,sBAAsB,mBAAmB,aAAa,aAAa,QAAQ,eAAe,YAAY,aAAa,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnT,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,SAAS,QAAQ,QAAQ,SAAS,KAAK;AAAA,MACvD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,QAAQ,SAAS,QAAQ,QAAQ,SAAS,KAAK;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC,WAAW,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,cAAc,CAAC;AAAA,QACb,QAAQ,CAAC,WAAW,SAAS,QAAQ,QAAQ,YAAY;AAAA,MACjE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,GAAGL,EAAc,GAAE9C,CAAgB;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAUyC,EAAa;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAa;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAcA,EAAa;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYD,EAAe;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,EAAe;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgBA,EAAe;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC,UAAU,SAAS,YAAY,YAAY,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAK9D,OAAO,CAAC;AAAA,QACN,OAAO,CAACV,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACA,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAACA,CAAK;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAACA,CAAK;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACA,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACA,CAAK;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAACA,CAAK;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC,WAAW,aAAa,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,MAK/C,GAAG,CAAC;AAAA,QACF,GAAG,CAAC,QAAQhC,IAAWE,CAAgB;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,OAAO,CAAC;AAAA,QACN,OAAO0C,EAAgC;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,MAAM,CAAC,OAAO,eAAe,OAAO,aAAa;AAAA,MACzD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,gBAAgB,QAAQ;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,KAAK,QAAQ,WAAW,QAAQ1C,CAAgB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAMkD,EAAiB;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQA,EAAiB;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,SAAS,QAAQ,QAAQpD,IAAWE,CAAgB;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACW,EAAK;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,KAAK,CAAC,QAAQ;AAAA,UACZ,MAAM,CAAC,QAAQb,IAAWE,CAAgB;AAAA,QAC3C,GAAEA,CAAgB;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa6C,EAA+B;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAA+B;AAAA,MAClD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAClC,EAAK;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,KAAK,CAAC,QAAQ;AAAA,UACZ,MAAM,CAACb,IAAWE,CAAgB;AAAA,QACnC,GAAEA,CAAgB;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa6C,EAA+B;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAWA,EAA+B;AAAA,MAClD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,OAAO,OAAO,SAAS,aAAa,WAAW;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,QAAQ,OAAO,OAAO,MAAM7C,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,QAAQ,OAAO,OAAO,MAAMA,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAK,CAAC;AAAA,QACJ,KAAK,CAAC2B,CAAG;AAAA,MACjB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACA,CAAG;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACA,CAAG;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,SAAS,CAAC,UAAU,GAAGsB,GAAU;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAAC,SAAS,OAAO,UAAU,SAAS;AAAA,MAC7D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAAC,QAAQ,SAAS,OAAO,UAAU,SAAS;AAAA,MACpE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAAC,UAAU,GAAGA,EAAQ,GAAI,UAAU;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,OAAO,CAAC,SAAS,OAAO,UAAU,YAAY,SAAS;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAAC,QAAQ,SAAS,OAAO,UAAU,WAAW,UAAU;AAAA,MACtE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAAC,GAAGA,EAAU,GAAE,UAAU;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,SAAS,OAAO,UAAU,YAAY,SAAS;AAAA,MACvE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQ,SAAS,OAAO,UAAU,SAAS;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,GAAG,CAAC;AAAA,QACF,GAAG,CAAChB,CAAO;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAO;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,GAAG,CAAC;AAAA,QACF,GAAG,CAACF,CAAM;AAAA,MAClB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,IAAI,CAAC;AAAA,QACH,IAAI,CAACA,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACO,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMrC,GAAG,CAAC;AAAA,QACF,GAAG,CAAC,QAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,OAAOtC,GAAkBgB,CAAO;AAAA,MACvF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,OAAO,OAAO,KAAK;AAAA,MAChE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,QAAQ,QAAQ,OAAO,OAAO,OAAO,SAAS;AAAA,UACjF,QAAQ,CAACf,CAAY;AAAA,QACtB,GAAEA,CAAY;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,GAAG,CAAC;AAAA,QACF,GAAG,CAACD,GAAkBgB,GAAS,QAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACvF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACrF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAChB,GAAkBgB,GAAS,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,MACrF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAChB,GAAkBgB,GAAS,QAAQ,OAAO,OAAO,KAAK;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQf,GAAcP,CAAiB;AAAA,MACtD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC,eAAe,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKxD,cAAc,CAAC,UAAU,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrC,eAAe,CAAC;AAAA,QACd,MAAM,CAAC,QAAQ,cAAc,SAAS,UAAU,UAAU,YAAY,QAAQ,aAAa,SAASG,EAAiB;AAAA,MAC7H,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,MAAM,CAACc,EAAK;AAAA,MACpB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAK5B,eAAe,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAKzB,oBAAoB,CAAC,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnC,cAAc,CAAC,eAAe,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7C,eAAe,CAAC,qBAAqB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnD,gBAAgB,CAAC,sBAAsB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKzD,UAAU,CAAC;AAAA,QACT,UAAU,CAAC,WAAW,SAAS,UAAU,QAAQ,SAAS,UAAUX,CAAgB;AAAA,MAC5F,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQP,GAAUI,EAAiB;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,SAAS,QAAQ,UAAU,WAAW,SAASL,GAAUQ,CAAgB;AAAA,MACnG,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAAC,QAAQA,CAAgB;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,MAAM,CAAC,QAAQ,QAAQ,WAAWA,CAAgB;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,MAAM,CAAC,UAAU,SAAS;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,qBAAqB,CAAC;AAAA,QACpB,aAAa,CAACe,CAAM;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACiB,CAAO;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,MAAM,CAAC,QAAQ,UAAU,SAAS,WAAW,SAAS,KAAK;AAAA,MACnE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAACjB,CAAM;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAACiB,CAAO;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC,aAAa,YAAY,gBAAgB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAK3E,yBAAyB,CAAC;AAAA,QACxB,YAAY,CAAC,GAAGe,EAAe,GAAE,MAAM;AAAA,MAC/C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,6BAA6B,CAAC;AAAA,QAC5B,YAAY,CAAC,QAAQ,aAAavD,GAAUE,CAAiB;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAAC,QAAQF,GAAUQ,CAAgB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,yBAAyB,CAAC;AAAA,QACxB,YAAY,CAACe,CAAM;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC,aAAa,aAAa,cAAc,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAKxE,iBAAiB,CAAC,YAAY,iBAAiB,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1D,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,UAAU,WAAW,QAAQ;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ4B,EAAyB;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,OAAO,CAAC,YAAY,OAAO,UAAU,UAAU,YAAY,eAAe,OAAO,SAAS3C,CAAgB;AAAA,MAClH,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,UAAU,UAAU,OAAO,YAAY,YAAY,cAAc;AAAA,MACtF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,UAAU,SAAS,OAAO,MAAM;AAAA,MAChD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQA,CAAgB;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,iBAAiB,CAAC;AAAA,QAChB,IAAI,CAAC,SAAS,SAAS,QAAQ;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAAC,UAAU,WAAW,WAAW,MAAM;AAAA,MAC1D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,cAAc,CAAC;AAAA,QACb,cAAc,CAACgC,CAAO;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,UAAU,WAAW,SAAS;AAAA,MACpD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,IAAI,CAAC,GAAGc,EAAc,GAAEzC,EAAmB;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,IAAI,CAAC,aAAa;AAAA,UAChB,QAAQ,CAAC,IAAI,KAAK,KAAK,SAAS,OAAO;AAAA,QACjD,CAAS;AAAA,MACT,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,IAAI,CAAC,QAAQ,SAAS,WAAWF,EAAe;AAAA,MACxD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,IAAI,CAAC,QAAQ;AAAA,UACX,eAAe,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI;AAAA,QAC3D,GAAEI,EAAgB;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,IAAI,CAACQ,CAAM;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,MAAM,CAACc,CAA0B;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,KAAK,CAACA,CAA0B;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,IAAI,CAACA,CAA0B;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,MAAM,CAACD,CAAkB;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,KAAK,CAACA,CAAkB;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,IAAI,CAACA,CAAkB;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,SAAS,CAAC;AAAA,QACR,SAAS,CAACR,CAAY;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAACA,CAAY;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACA,CAAY;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,QAAQ,CAACE,CAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACU,CAAO;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAAC,GAAGe,EAAe,GAAE,QAAQ;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAACzB,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,YAAY,CAAC;AAAA,QACX,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKvC,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACU,CAAO;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQe,EAAe;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAAC5B,CAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,YAAY,CAACA,CAAW;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAACA,CAAW;AAAA,MAC5B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAAC,IAAI,GAAG4B,GAAe;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACvD,GAAUQ,CAAgB;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,SAAS,CAACR,GAAUE,CAAiB;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,SAAS,CAACqB,CAAM;AAAA,MACxB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,MAAM6B,GAAgC;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7B,cAAc,CAAC;AAAA,QACb,MAAM,CAAC7B,CAAM;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,gBAAgB,CAACiB,CAAO;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,eAAe,CAACxC,GAAUE,CAAiB;AAAA,MACnD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,eAAe,CAACqB,CAAM;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,IAAI,SAAS,QAAQd,GAAcQ,EAAiB;AAAA,MACrE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,QAAQ,CAACE,EAAK;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAACqB,CAAO;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAa,CAAC,GAAGgB,KAAiB,gBAAgB,aAAa;AAAA,MACvE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,EAAe;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,IAAI,MAAM;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC/B,CAAI;AAAA,MACnB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAACC,CAAU;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACK,CAAQ;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,IAAI,QAAQtB,GAAcD,CAAgB;AAAA,MAClE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACwB,CAAS;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,cAAc,CAACC,CAAS;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACC,CAAM;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACQ,CAAQ;AAAA,MAC3B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACE,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,mBAAmB,CAAC;AAAA,QAClB,mBAAmB,CAAC,IAAI,MAAM;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,iBAAiB,CAAC;AAAA,QAChB,iBAAiB,CAACnB,CAAI;AAAA,MAC9B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACC,CAAU;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,qBAAqB,CAACK,CAAQ;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,sBAAsB,CAAC;AAAA,QACrB,sBAAsB,CAACC,CAAS;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAACC,CAAS;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,mBAAmB,CAACC,CAAM;AAAA,MAClC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACM,CAAO;AAAA,MACpC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,qBAAqB,CAAC;AAAA,QACpB,qBAAqB,CAACE,CAAQ;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACE,CAAK;AAAA,MAChC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,YAAY,UAAU;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAACf,CAAa;AAAA,MACxC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACA,CAAa;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,oBAAoB,CAACA,CAAa;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,gBAAgB,CAAC;AAAA,QACf,OAAO,CAAC,QAAQ,OAAO;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,OAAO,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,QAAQ,OAAO,IAAI,UAAU,WAAW,UAAU,aAAarB,CAAgB;AAAA,MACpG,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAUqD,EAAuB;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,MAAM,CAAC;AAAA,QACL,MAAM,CAAC,UAAU,MAAM,OAAO,UAAUrD,CAAgB;AAAA,MAChE,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAOqD,EAAuB;AAAA,MACtC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,SAAS,CAAC;AAAA,QACR,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS,UAAUrD,CAAgB;AAAA,MAC7E,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,WAAW,CAAC;AAAA,QACV,WAAW,CAAC,IAAI,OAAO,MAAM;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAACmC,CAAK;AAAA,MACrB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,WAAW,CAACA,CAAK;AAAA,MACzB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACrC,IAAWE,CAAgB;AAAA,MAC5C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAACuC,CAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAACA,CAAS;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACF,CAAI;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,UAAU,CAAC;AAAA,QACT,UAAU,CAACA,CAAI;AAAA,MACvB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,oBAAoB,CAAC;AAAA,QACnB,QAAQ,CAAC,UAAU,OAAO,aAAa,SAAS,gBAAgB,UAAU,eAAe,QAAQ,YAAYrC,CAAgB;AAAA,MACrI,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQe,CAAM;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY,CAAC,QAAQ,MAAM;AAAA,MACnC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,WAAW,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,eAAe,QAAQ,gBAAgB,YAAY,QAAQ,aAAa,iBAAiB,SAAS,QAAQ,WAAW,QAAQ,YAAY,cAAc,cAAc,cAAc,YAAY,YAAY,YAAY,YAAY,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,eAAe,eAAe,WAAW,YAAYf,CAAgB;AAAA,MACrc,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,OAAO,CAACe,CAAM;AAAA,MACtB,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,kBAAkB,CAAC;AAAA,QACjB,kBAAkB,CAAC,QAAQ,MAAM;AAAA,MACzC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE;AAAA,MACrC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,QAAQ,CAAC,QAAQ,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAY4B,EAAyB;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,YAAYA,EAAyB;AAAA,MAC7C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,aAAaA,EAAyB;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,cAAc,CAAC;AAAA,QACb,MAAM,CAAC,SAAS,OAAO,UAAU,YAAY;AAAA,MACrD,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,UAAU,QAAQ;AAAA,MACjC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,aAAa,CAAC;AAAA,QACZ,MAAM,CAAC,QAAQ,KAAK,KAAK,MAAM;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,mBAAmB,CAAC;AAAA,QAClB,MAAM,CAAC,aAAa,WAAW;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,OAAO,CAAC;AAAA,QACN,OAAO,CAAC,QAAQ,QAAQ,cAAc;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,aAAa,CAAC,KAAK,QAAQ,OAAO;AAAA,MAC1C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,WAAW,CAAC;AAAA,QACV,aAAa,CAAC,KAAK,MAAM,MAAM;AAAA,MACvC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,MAK/B,QAAQ,CAAC;AAAA,QACP,QAAQ,CAAC,QAAQ,QAAQ,OAAO,MAAM;AAAA,MAC9C,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,eAAe,CAAC;AAAA,QACd,eAAe,CAAC,QAAQ,UAAU,YAAY,aAAa3C,CAAgB;AAAA,MACnF,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,MAAM,CAAC;AAAA,QACL,MAAM,CAACe,GAAQ,MAAM;AAAA,MAC7B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,YAAY,CAAC;AAAA,QACX,QAAQ,CAACvB,GAAUE,GAAmBG,EAAiB;AAAA,MAC/D,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,QAAQ,CAAC;AAAA,QACP,QAAQ,CAACkB,GAAQ,MAAM;AAAA,MAC/B,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMD,IAAI,CAAC,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7B,uBAAuB,CAAC;AAAA,QACtB,uBAAuB,CAAC,QAAQ,MAAM;AAAA,MAC9C,CAAO;AAAA,IACF;AAAA,IACD,wBAAwB;AAAA,MACtB,UAAU,CAAC,cAAc,YAAY;AAAA,MACrC,YAAY,CAAC,gBAAgB,cAAc;AAAA,MAC3C,OAAO,CAAC,WAAW,WAAW,SAAS,OAAO,OAAO,SAAS,UAAU,MAAM;AAAA,MAC9E,WAAW,CAAC,SAAS,MAAM;AAAA,MAC3B,WAAW,CAAC,OAAO,QAAQ;AAAA,MAC3B,MAAM,CAAC,SAAS,QAAQ,QAAQ;AAAA,MAChC,KAAK,CAAC,SAAS,OAAO;AAAA,MACtB,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAClD,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAClD,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,IAAI,CAAC,MAAM,IAAI;AAAA,MACf,MAAM,CAAC,KAAK,GAAG;AAAA,MACf,aAAa,CAAC,SAAS;AAAA,MACvB,cAAc,CAAC,eAAe,oBAAoB,cAAc,eAAe,cAAc;AAAA,MAC7F,eAAe,CAAC,YAAY;AAAA,MAC5B,oBAAoB,CAAC,YAAY;AAAA,MACjC,cAAc,CAAC,YAAY;AAAA,MAC3B,eAAe,CAAC,YAAY;AAAA,MAC5B,gBAAgB,CAAC,YAAY;AAAA,MAC7B,cAAc,CAAC,WAAW,UAAU;AAAA,MACpC,SAAS,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,YAAY;AAAA,MACtM,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,aAAa,CAAC,cAAc,YAAY;AAAA,MACxC,kBAAkB,CAAC,oBAAoB,kBAAkB;AAAA,MACzD,YAAY,CAAC,cAAc,cAAc,cAAc,cAAc,cAAc,YAAY;AAAA,MAC/F,cAAc,CAAC,cAAc,YAAY;AAAA,MACzC,cAAc,CAAC,cAAc,YAAY;AAAA,MACzC,gBAAgB,CAAC,kBAAkB,kBAAkB,kBAAkB,gBAAgB;AAAA,MACvF,kBAAkB,CAAC,kBAAkB,gBAAgB;AAAA,MACrD,kBAAkB,CAAC,kBAAkB,gBAAgB;AAAA,MACrD,YAAY,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,WAAW;AAAA,MACnH,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,YAAY,CAAC,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,aAAa,WAAW;AAAA,MACnH,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,aAAa,CAAC,aAAa,WAAW;AAAA,MACtC,OAAO,CAAC,WAAW,WAAW,UAAU;AAAA,MACxC,WAAW,CAAC,OAAO;AAAA,MACnB,WAAW,CAAC,OAAO;AAAA,MACnB,YAAY,CAAC,OAAO;AAAA,IACrB;AAAA,IACD,gCAAgC;AAAA,MAC9B,aAAa,CAAC,SAAS;AAAA,IACxB;AAAA,EACL;AACA;AAiDA,MAAMuC,KAAuB,gBAAApF,GAAoB4C,EAAgB;ACjhF1D,SAASyC,KAAMC,GAAsB;AACnC,SAAAF,GAAQvK,GAAKyK,CAAM,CAAC;AAC7B;ACIA,MAAMC,KAAY;AAAA,EAChB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAMC;AAAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAMC;AAAAA,EACR;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAMD;AAAAA,EACR;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAME;AAAAA,EACR;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAMC;AAAAA,EACR;AACF,GASaC,IAAU,CAAC,EAAE,MAAA7T,GAAM,UAAAyC,GAAU,OAAAqR,GAAO,WAAApQ,QAA8B;AACvE,QAAA,EAAE,QAAAqQ,GAAQ,IAAAC,GAAI,WAAAC,GAAW,YAAAC,GAAY,WAAAC,GAAW,MAAA3M,EACpD,IAAAgM,GAAUxT,CAAI;AAGd,SAAAoU,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWd;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAQ,KAAS;AAAA,QACTC;AAAA,QACAC;AAAA,QACAtQ;AAAA,MACF;AAAA,MAEA,UAAA;AAAA,QAAA2Q,gBAAAA,EAAA;AAAA,UAAC7M;AAAA,UAAA;AAAA,YACC,WAAW8L,EAAG,CAACQ,KAAS,uBAAuBG,CAAS;AAAA,YACxD,MAAM;AAAA,YACN,eAAY;AAAA,UAAA;AAAA,QACd;AAAA,QACCH,2BAAU,MAAG,EAAA,WAAWR,EAAG,eAAeY,CAAU,GAAI,UAAMJ,GAAA;AAAA,QAC/DO,gBAAAA,EAAAA,IAAC,OAAI,EAAA,WAAWf,EAAG,eAAe,CAACQ,KAAS,eAAeK,CAAS,GACjE,UAAA1R,EACH,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GCpEM6R,KAAwBC;AAAA,EAC5B;AACF,GAEaC,KAAoB,MAAM;AAC/B,QAAAC,IAAUC,GAAWJ,EAAqB;AAEhD,MAAI,CAACG;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAIG,SAAAA;AACT,GAEaE,KAA2B,MAAM;AACtC,QAAAC,IAAaC,EAA2B,IAAI,GAE5C,EAAE,SAAAC,GAAS,WAAAC,EAAU,IAAIP,GAAkB;AAEjD,SAAAQ,GAAU,MAAM;AACd,UAAMC,IAAUL,EAAW;AAE3B,QAAKK;AAEL,aAAAH,EAAQG,CAAO,GAER,MAAMF,EAAUE,CAAO;AAAA,EAAA,GAC7B,CAACH,GAASC,CAAS,CAAC,GAOhB,EAAE,KALMG,GAAY,CAACC,MAA2B;AACrD,IAAKA,MACLP,EAAW,UAAUO;AAAA,EACvB,GAAG,CAAE,CAAA;AAGP,GAEaC,KAAyB,CAAC;AAAA,EACrC,UAAA3S;AACF,MAEM;AACJ,QAAM,CAAC4S,GAAcC,CAAe,IAAIC,GAAS,EAAE,GAC7CC,IAAcX,EAAoC,IAAI,GACtDY,IAAqBZ,EAAW,oBAAA,IAAkB,CAAA;AAExD,EAAAG,GAAU,OACRQ,EAAY,UAAU,IAAI;AAAA,IACxB,CAACE,MAAY;AACX,iBAAWC,KAASD;AAClB,QAAIC,EAAM,kBAAkBA,EAAM,OAAO,MACvBL,EAAAK,EAAM,OAAO,EAAE;AAAA,IAGrC;AAAA,IACA;AAAA;AAAA;AAAA,MAGE,YAAY;AAAA,MACZ,WAAW;AAAA,IACb;AAAA,EAAA,GAGK;;AAAM,YAAAxL,IAAAqL,EAAY,YAAZ,gBAAArL,EAAqB;AAAA,MACjC,CAAE,CAAA,GAEL6K,GAAU,MAAM;AACd,UAAMY,IAAWH,EAAmB,SAC9BI,IAAe,MAAM;AACnB,YAAAC,IAAgB,OAAO,YAAY,GACnCC,IACJ,OAAO,cAAc,OAAO,WAAW,SAAS,KAAK;AAEvD,MAAID,IAEFR,EAAgB,EAAE,IACTS,KACT,oBAAoB,MAAM;AAExB,cAAMC,IAAW,MAAM,KAAKJ,CAAQ,EAAE,IAAI;AAC1B,QAAAN,GAAAU,KAAA,gBAAAA,EAAU,OAAM,EAAE;AAAA,MAAA,CACnC;AAAA,IACH;AAGO,oBAAA,iBAAiB,UAAUH,CAAY,GAEzC,MAAM;AACX,MAAAD,EAAS,MAAM,GACN,SAAA,oBAAoB,UAAUC,CAAY;AAAA,IAAA;AAAA,EAEvD,GAAG,CAAE,CAAA;AAEC,QAAAI,IAAaC,GAAQ,OAClB;AAAA,IACL,SAAS,CAACjB,MAAgC;AACxC,MAAI,CAACA,KAAW,CAACO,EAAY,YACVC,EAAA,QAAQ,IAAIR,CAAO,GAC1BO,EAAA,QAAQ,QAAQP,CAAO;AAAA,IACrC;AAAA,IACA,WAAW,CAACA,MAAgC;AAC1C,MAAI,CAACA,KAAW,CAACO,EAAY,YACVC,EAAA,QAAQ,OAAOR,CAAO,GAC7BO,EAAA,QAAQ,UAAUP,CAAO;AAAA,IACvC;AAAA,EAAA,IAED,CAAE,CAAA,GAECxW,IAAQyX;AAAA,IACZ,OAAO,EAAE,cAAAb,GAAc,iBAAAC,GAAiB,GAAGW,EAAW;AAAA,IACtD,CAACZ,GAAcC,GAAiBW,CAAU;AAAA,EAAA;AAG5C,SACG5B,gBAAAA,EAAAA,IAAAC,GAAsB,UAAtB,EAA+B,OAAA7V,GAC7B,UAAAgE,EACH,CAAA;AAEJ;AC1IA,SAASkG,GAAE,GAAE;AAAC,MAAI,GAAEC,GAAE,IAAE;AAAG,MAAa,OAAO,KAAjB,YAA8B,OAAO,KAAjB,SAAmB,MAAG;AAAA,WAAoB,OAAO,KAAjB,SAAmB,KAAG,MAAM,QAAQ,CAAC,EAAE,MAAI,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,GAAE,CAAC,MAAIA,IAAED,GAAE,EAAE,CAAC,CAAC,OAAK,MAAI,KAAG,MAAK,KAAGC;AAAA,MAAQ,MAAI,KAAK,EAAE,GAAE,CAAC,MAAI,MAAI,KAAG,MAAK,KAAG;AAAG,SAAO;AAAC;AAAQ,SAASE,KAAM;AAAC,WAAQ,GAAE,GAAEF,IAAE,GAAE,IAAE,IAAGA,IAAE,UAAU,SAAQ,EAAC,IAAE,UAAUA,GAAG,OAAK,IAAED,GAAE,CAAC,OAAK,MAAI,KAAG,MAAK,KAAG;AAAG,SAAO;AAAC;ACCjW,MAAMwN,KAAgB,CAAC1X,MAAQ,OAAOA,KAAU,YAAY,GAAG,OAAOA,CAAK,IAAIA,MAAU,IAAI,MAAMA,GACtF2X,KAAKtN,IACLuN,KAAM,CAACC,GAAMrN,MACf,CAAC/E,MAAQ;AACZ,MAAIrD;AACJ,OAAKoI,KAAW,OAA4B,SAASA,EAAO,aAAa,KAAM,QAAOmN,GAAGE,GAAMpS,KAAU,OAA2B,SAASA,EAAM,OAAOA,KAAU,OAA2B,SAASA,EAAM,SAAS;AACvN,QAAM,EAAE,UAAAqS,GAAW,iBAAAC,EAAkB,IAAGvN,GAClCwN,IAAuB,OAAO,KAAKF,CAAQ,EAAE,IAAI,CAACG,MAAU;AAC9D,UAAMC,IAAczS,KAAU,OAA2B,SAASA,EAAMwS,CAAO,GACzEE,IAAqBJ,KAAoB,OAAqC,SAASA,EAAgBE,CAAO;AACpH,QAAIC,MAAgB,KAAM,QAAO;AACjC,UAAME,IAAaV,GAAcQ,CAAW,KAAKR,GAAcS,CAAkB;AACjF,WAAOL,EAASG,CAAO,EAAEG,CAAU;AAAA,EAC/C,CAAS,GACKC,IAAwB5S,KAAS,OAAO,QAAQA,CAAK,EAAE,OAAO,CAAC6S,GAAKC,MAAQ;AAC9E,QAAI,CAACxZ,GAAKiB,CAAK,IAAIuY;AACnB,WAAIvY,MAAU,WAGdsY,EAAIvZ,CAAG,IAAIiB,IACJsY;AAAA,EACV,GAAE,CAAE,CAAA,GACCE,IAA+BhO,KAAW,SAAsCpI,IAAMoI,EAAO,sBAAsB,QAAQpI,MAAQ,SAA7D,SAA+EA,EAAI,OAAO,CAACkW,GAAKG,MAAS;AACjL,QAAI,EAAE,OAAOC,GAAU,WAAWC,GAAc,GAAGC,EAAwB,IAAGH;AAC9E,WAAO,OAAO,QAAQG,CAAsB,EAAE,MAAM,CAACL,MAAQ;AACzD,UAAI,CAACxZ,GAAKiB,CAAK,IAAIuY;AACnB,aAAO,MAAM,QAAQvY,CAAK,IAAIA,EAAM,SAAS;AAAA,QACzC,GAAG+X;AAAA,QACH,GAAGM;AAAA,MACvB,EAAkBtZ,CAAG,CAAC,IAAK;AAAA,QACP,GAAGgZ;AAAA,QACH,GAAGM;AAAA,MACvB,EAAmBtZ,CAAG,MAAMiB;AAAA,IAC5B,CAAa,IAAI;AAAA,MACD,GAAGsY;AAAA,MACHI;AAAA,MACAC;AAAA,IACH,IAAGL;AAAA,EACP,GAAE,CAAE,CAAA;AACL,SAAOX,GAAGE,GAAMG,GAAsBQ,GAA8B/S,KAAU,OAA2B,SAASA,EAAM,OAAOA,KAAU,OAA2B,SAASA,EAAM,SAAS;AACpM,GCpCMoT,KAAUjB,GAAI,kBAAkB;AAAA,EACpC,UAAU;AAAA,IACR,OAAO;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,EACT;AACF,CAAC,GAEKkB,KAAe,CAACC,MAAkB;AACtC,UAAQA,GAAO;AAAA,IACb,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACI,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EACX;AACF,GAYaC,IAAkC,CAAC;AAAA,EAC9C,OAAAD;AAAA,EACA,UAAA/U;AAAA,EACA,IAAAiV;AAAA,EACA,WAAAhU;AAAA,EACA,uBAAAiU;AACF,MAAM;AACE,QAAAvP,IAAYmP,GAAaC,KAAS,CAAC,GACnC,EAAE,KAAA3W,MAAQ8T;AAGd,SAAAP,gBAAAA,EAAA;AAAA,IAAChM;AAAA,IAAA;AAAA,MACC,WAAWkP,GAAQ,EAAE,WAAA5T,GAAW,OAAA8T,GAAO;AAAA,MACvC,KAAKG,IAAwB9W,IAAM;AAAA,MACnC,IAAA6W;AAAA,MAEC,UAAA;AAAA,QACCA,KAAArD,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,IAAIqD,CAAE;AAAA,YACZ,WAAU;AAAA,YACV,cAAY,WAAWA,CAAE;AAAA,YAC1B,UAAA;AAAA,UAAA;AAAA,QAED;AAAA,QAEDjV;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP,GC3EamV,KAAa,CAAC;AAAA,EACzB,WAAAlU;AAAA,EACA,UAAAjB;AACF,MAIE4R,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWf;AAAA,MACT5P;AAAA,MACA;AAAA,IACF;AAAA,IAEC,UAAAjB;AAAA,EAAA;AACH;ACjBF,IAAIoV,KAAW,OAAO,QAClBC,KAAY,OAAO,gBACnBC,KAAa,OAAO,kBACpBC,KAAmB,OAAO,0BAC1BC,KAAoB,OAAO,2BAC3BC,KAAoB,OAAO,qBAC3BC,KAAsB,OAAO,uBAC7BC,KAAe,OAAO,gBACtBC,KAAe,OAAO,UAAU,gBAChCC,KAAe,OAAO,UAAU,sBAChCC,KAAkB,CAACC,GAAKhb,GAAKiB,MAAUjB,KAAOgb,IAAMV,GAAUU,GAAKhb,GAAK,EAAE,YAAY,IAAM,cAAc,IAAM,UAAU,IAAM,OAAAiB,EAAO,CAAA,IAAI+Z,EAAIhb,CAAG,IAAIiB,GACtJga,IAAiB,CAACC,GAAGC,MAAM;AAC7B,WAASC,KAAQD,MAAMA,IAAI,CAAA;AACzB,IAAIN,GAAa,KAAKM,GAAGC,CAAI,KAC3BL,GAAgBG,GAAGE,GAAMD,EAAEC,CAAI,CAAC;AACpC,MAAIT;AACF,aAASS,KAAQT,GAAoBQ,CAAC;AACpC,MAAIL,GAAa,KAAKK,GAAGC,CAAI,KAC3BL,GAAgBG,GAAGE,GAAMD,EAAEC,CAAI,CAAC;AAEtC,SAAOF;AACT,GACIG,KAAgB,CAACH,GAAGC,MAAMZ,GAAWW,GAAGT,GAAkBU,CAAC,CAAC,GAC5DG,KAAY,CAACvb,GAAQwb,MAAY;AACnC,MAAI1b,IAAS,CAAA;AACb,WAASub,KAAQrb;AACf,IAAI8a,GAAa,KAAK9a,GAAQqb,CAAI,KAAKG,EAAQ,QAAQH,CAAI,IAAI,MAC7Dvb,EAAOub,CAAI,IAAIrb,EAAOqb,CAAI;AAC9B,MAAIrb,KAAU,QAAQ4a;AACpB,aAASS,KAAQT,GAAoB5a,CAAM;AACzC,MAAIwb,EAAQ,QAAQH,CAAI,IAAI,KAAKN,GAAa,KAAK/a,GAAQqb,CAAI,MAC7Dvb,EAAOub,CAAI,IAAIrb,EAAOqb,CAAI;AAEhC,SAAOvb;AACT,GACI2b,KAAa,CAACC,GAAIC,MAAQ,WAAqB;AACjD,SAAOA,SAAWD,EAAGf,GAAkBe,CAAE,EAAE,CAAC,CAAC,IAAIC,IAAM,EAAE,SAAS,CAAA,KAAM,SAASA,CAAG,GAAGA,EAAI;AAC7F,GACIC,KAAW,CAAC9b,GAAQ+b,MAAQ;AAC9B,WAASrZ,KAAQqZ;AACf,IAAAtB,GAAUza,GAAQ0C,GAAM,EAAE,KAAKqZ,EAAIrZ,CAAI,GAAG,YAAY,GAAI,CAAE;AAChE,GACIsZ,KAAc,CAAClY,GAAImY,GAAMC,GAAQC,MAAS;AAC5C,MAAIF,KAAQ,OAAOA,KAAS,YAAY,OAAOA,KAAS;AACtD,aAAS9b,KAAO0a,GAAkBoB,CAAI;AACpC,MAAI,CAACjB,GAAa,KAAKlX,GAAI3D,CAAG,KAAKA,MAAQ+b,KACzCzB,GAAU3W,GAAI3D,GAAK,EAAE,KAAK,MAAM8b,EAAK9b,CAAG,GAAG,YAAY,EAAEgc,IAAOxB,GAAiBsB,GAAM9b,CAAG,MAAMgc,EAAK,WAAU,CAAE;AAEvH,SAAOrY;AACT,GACIsY,KAAU,CAACP,GAAKQ,GAAYrc,OAAYA,IAAS6b,KAAO,OAAOrB,GAASO,GAAac,CAAG,CAAC,IAAI,CAAE,GAAEG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrF,CAACH,KAAO,CAACA,EAAI,aAAapB,GAAUza,GAAQ,WAAW,EAAE,OAAO6b,GAAK,YAAY,GAAI,CAAE,IAAI7b;AAAA,EACzG6b;AACF,IAGIS,KAAgBX,GAAW;AAAA,EAC7B,8GAA8GY,GAASC,GAAQ;AAC7H,QAAIC,IAAS,WAAW;AACtB,UAAIC,IAAO,2CACPC,IAAW,GACXC,IAAmB,CAAA,GACnBlb,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAUN,MAAM;AAAA,UACJ,QAAQ,SAASmb,EAAOC,GAAQ;AAC9B,mBAAIA,aAAkBC,IACb,IAAIA,EAAMD,EAAO,MAAMD,EAAOC,EAAO,OAAO,GAAGA,EAAO,KAAK,IACzD,MAAM,QAAQA,CAAM,IACtBA,EAAO,IAAID,CAAM,IAEjBC,EAAO,QAAQ,MAAM,OAAO,EAAE,QAAQ,MAAM,MAAM,EAAE,QAAQ,WAAW,GAAG;AAAA,UAEpF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAiBD,MAAM,SAAStR,GAAG;AAChB,mBAAO,OAAO,UAAU,SAAS,KAAKA,CAAC,EAAE,MAAM,GAAG,EAAE;AAAA,UACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAOD,OAAO,SAAS2P,GAAK;AACnB,mBAAKA,EAAI,QACP,OAAO,eAAeA,GAAK,QAAQ,EAAE,OAAO,EAAEwB,EAAQ,CAAE,GAEnDxB,EAAI;AAAA,UACZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWD,OAAO,SAAS6B,EAAUxR,GAAGyR,GAAS;AACpC,YAAAA,IAAUA,KAAW;AACrB,gBAAIC,GACA7C;AACJ,oBAAQ3Y,EAAE,KAAK,KAAK8J,CAAC,GAAC;AAAA,cACpB,KAAK;AAEH,oBADA6O,IAAK3Y,EAAE,KAAK,MAAM8J,CAAC,GACfyR,EAAQ5C,CAAE;AACZ,yBAAO4C,EAAQ5C,CAAE;AAEnB,gBAAA6C;AAAA,gBACA,IACAD,EAAQ5C,CAAE,IAAI6C;AACd,yBAAS/c,KAAOqL;AACd,kBAAIA,EAAE,eAAerL,CAAG,MACtB+c,EAAM/c,CAAG,IAAI6c,EAAUxR,EAAErL,CAAG,GAAG8c,CAAO;AAG1C;AAAA;AAAA,kBAEEC;AAAA;AAAA,cAEJ,KAAK;AAEH,uBADA7C,IAAK3Y,EAAE,KAAK,MAAM8J,CAAC,GACfyR,EAAQ5C,CAAE,IACL4C,EAAQ5C,CAAE,KAEnB6C,IAAQ,CAAA,GACRD,EAAQ5C,CAAE,IAAI6C,GAGd1R,EAAE,QAAQ,SAASnK,GAAGpB,GAAG;AACvB,kBAAAid,EAAMjd,CAAC,IAAI+c,EAAU3b,GAAG4b,CAAO;AAAA,gBACjD,CAAiB;AAAA,gBAGCC;AAAA,cAEJ;AACE,uBAAO1R;AAAA,YACV;AAAA,UACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UASD,aAAa,SAASoM,GAAS;AAC7B,mBAAOA,KAAS;AACd,kBAAIuF,IAAIT,EAAK,KAAK9E,EAAQ,SAAS;AACnC,kBAAIuF;AACF,uBAAOA,EAAE,CAAC,EAAE;AAEd,cAAAvF,IAAUA,EAAQ;AAAA,YACnB;AACD,mBAAO;AAAA,UACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAQD,aAAa,SAASA,GAASwF,GAAU;AACvC,YAAAxF,EAAQ,YAAYA,EAAQ,UAAU,QAAQ,OAAO8E,GAAM,IAAI,GAAG,EAAE,GACpE9E,EAAQ,UAAU,IAAI,cAAcwF,CAAQ;AAAA,UAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAoBD,UAAU,SAASxF,GAASvR,GAAWgX,GAAmB;AAExD,qBADIC,IAAK,QAAQjX,GACVuR,KAAS;AACd,kBAAIhI,IAAYgI,EAAQ;AACxB,kBAAIhI,EAAU,SAASvJ,CAAS;AAC9B,uBAAO;AAET,kBAAIuJ,EAAU,SAAS0N,CAAE;AACvB,uBAAO;AAET,cAAA1F,IAAUA,EAAQ;AAAA,YACnB;AACD,mBAAO,CAAC,CAACyF;AAAA,UACV;AAAA,QACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAQD,WAAW;AAAA;AAAA;AAAA;AAAA,UAIT,OAAOT;AAAA,UACP,WAAWA;AAAA,UACX,MAAMA;AAAA,UACN,KAAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UA6BL,QAAQ,SAASvC,GAAIkD,GAAO;AAC1B,gBAAIC,IAAQ9b,EAAE,KAAK,MAAMA,EAAE,UAAU2Y,CAAE,CAAC;AACxC,qBAASla,KAAOod;AACd,cAAAC,EAAMrd,CAAG,IAAIod,EAAMpd,CAAG;AAExB,mBAAOqd;AAAA,UACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UA4ED,cAAc,SAASC,GAAQC,GAAQC,GAAQC,GAAM;AACnD,YAAAA,IAAOA;AAAA,YACPlc,EAAE;AACF,gBAAImc,IAAUD,EAAKH,CAAM,GACrBK,IAAM,CAAA;AACV,qBAASC,KAASF;AAChB,kBAAIA,EAAQ,eAAeE,CAAK,GAAG;AACjC,oBAAIA,KAASL;AACX,2BAASM,KAAYL;AACnB,oBAAIA,EAAO,eAAeK,CAAQ,MAChCF,EAAIE,CAAQ,IAAIL,EAAOK,CAAQ;AAIrC,gBAAKL,EAAO,eAAeI,CAAK,MAC9BD,EAAIC,CAAK,IAAIF,EAAQE,CAAK;AAAA,cAE7B;AAEH,gBAAIE,IAAML,EAAKH,CAAM;AACrB,mBAAAG,EAAKH,CAAM,IAAIK,GACfpc,EAAE,UAAU,IAAIA,EAAE,WAAW,SAASvB,GAAKiB,GAAO;AAChD,cAAIA,MAAU6c,KAAO9d,KAAOsd,MAC1B,KAAKtd,CAAG,IAAI2d;AAAA,YAE5B,CAAa,GACMA;AAAA,UACR;AAAA;AAAA,UAED,KAAK,SAASI,EAAI1S,GAAG2S,GAAUxb,GAAMsa,GAAS;AAC5C,YAAAA,IAAUA,KAAW;AACrB,gBAAImB,IAAQ1c,EAAE,KAAK;AACnB,qBAASzB,KAAKuL;AACZ,kBAAIA,EAAE,eAAevL,CAAC,GAAG;AACvB,gBAAAke,EAAS,KAAK3S,GAAGvL,GAAGuL,EAAEvL,CAAC,GAAG0C,KAAQ1C,CAAC;AACnC,oBAAIiN,IAAW1B,EAAEvL,CAAC,GACdoe,IAAe3c,EAAE,KAAK,KAAKwL,CAAQ;AACvC,gBAAImR,MAAiB,YAAY,CAACpB,EAAQmB,EAAMlR,CAAQ,CAAC,KACvD+P,EAAQmB,EAAMlR,CAAQ,CAAC,IAAI,IAC3BgR,EAAIhR,GAAUiR,GAAU,MAAMlB,CAAO,KAC5BoB,MAAiB,WAAW,CAACpB,EAAQmB,EAAMlR,CAAQ,CAAC,MAC7D+P,EAAQmB,EAAMlR,CAAQ,CAAC,IAAI,IAC3BgR,EAAIhR,GAAUiR,GAAUle,GAAGgd,CAAO;AAAA,cAErC;AAAA,UAEJ;AAAA,QACF;AAAA,QACD,SAAS,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAqBX,WAAW,SAASqB,GAAMT,GAAST,GAAU;AAC3C,cAAImB,IAAM;AAAA,YACR,MAAMD;AAAA,YACN,SAAAT;AAAA,YACA,UAAAT;AAAA,UACZ;AAEU,cADA1b,EAAE,MAAM,IAAI,mBAAmB6c,CAAG,GAC9B,CAACA,EAAI;AACP,kBAAM,IAAI,MAAM,mBAAmBA,EAAI,WAAW,mBAAmB;AAEvE,iBAAAA,EAAI,SAAS7c,EAAE,SAAS6c,EAAI,MAAMA,EAAI,OAAO,GAC7C7c,EAAE,MAAM,IAAI,kBAAkB6c,CAAG,GAC1BxB,EAAM,UAAUrb,EAAE,KAAK,OAAO6c,EAAI,MAAM,GAAGA,EAAI,QAAQ;AAAA,QAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAyBD,UAAU,SAASD,GAAMT,GAAS;AAChC,cAAI5Z,IAAO4Z,EAAQ;AACnB,cAAI5Z,GAAM;AACR,qBAAS8Z,KAAS9Z;AAChB,cAAA4Z,EAAQE,CAAK,IAAI9Z,EAAK8Z,CAAK;AAE7B,mBAAOF,EAAQ;AAAA,UAChB;AACD,cAAIW,IAAY,IAAIC;AACpB,iBAAAC,EAASF,GAAWA,EAAU,MAAMF,CAAI,GACxCK,EAAaL,GAAME,GAAWX,GAASW,EAAU,MAAM,CAAC,GACjDI,EAAQJ,CAAS;AAAA,QACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMD,OAAO;AAAA,UACL,KAAK,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAaP,KAAK,SAAS9b,GAAMyb,GAAU;AAC5B,gBAAIU,IAASnd,EAAE,MAAM;AACrB,YAAAmd,EAAOnc,CAAI,IAAImc,EAAOnc,CAAI,KAAK,CAAA,GAC/Bmc,EAAOnc,CAAI,EAAE,KAAKyb,CAAQ;AAAA,UAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAUD,KAAK,SAASzb,GAAM6b,GAAK;AACvB,gBAAIO,IAAYpd,EAAE,MAAM,IAAIgB,CAAI;AAChC,gBAAI,GAACoc,KAAa,CAACA,EAAU;AAG7B,uBAAS7e,IAAI,GAAGke,GAAUA,IAAWW,EAAU7e,GAAG;AAChD,gBAAAke,EAASI,CAAG;AAAA,UAEf;AAAA,QACF;AAAA,QACD,OAAAxB;AAAA,MACR;AACM,eAASA,EAAMpa,GAAMoc,GAASC,GAAOC,GAAY;AAC/C,aAAK,OAAOtc,GACZ,KAAK,UAAUoc,GACf,KAAK,QAAQC,GACb,KAAK,UAAUC,KAAc,IAAI,SAAS;AAAA,MAC3C;AACD,MAAAlC,EAAM,YAAY,SAASmC,EAAU1T,GAAG4R,GAAU;AAChD,YAAI,OAAO5R,KAAK;AACd,iBAAOA;AAET,YAAI,MAAM,QAAQA,CAAC,GAAG;AACpB,cAAI2T,IAAI;AACR,iBAAA3T,EAAE,QAAQ,SAAS4T,GAAG;AACpB,YAAAD,KAAKD,EAAUE,GAAGhC,CAAQ;AAAA,UACtC,CAAW,GACM+B;AAAA,QACR;AACD,YAAIZ,IAAM;AAAA,UACR,MAAM/S,EAAE;AAAA,UACR,SAAS0T,EAAU1T,EAAE,SAAS4R,CAAQ;AAAA,UACtC,KAAK;AAAA,UACL,SAAS,CAAC,SAAS5R,EAAE,IAAI;AAAA,UACzB,YAAY,CAAE;AAAA,UACd,UAAA4R;AAAA,QACV,GACYiC,IAAU7T,EAAE;AAChB,QAAI6T,MACE,MAAM,QAAQA,CAAO,IACvB,MAAM,UAAU,KAAK,MAAMd,EAAI,SAASc,CAAO,IAE/Cd,EAAI,QAAQ,KAAKc,CAAO,IAG5B3d,EAAE,MAAM,IAAI,QAAQ6c,CAAG;AACvB,YAAIe,IAAa;AACjB,iBAAS5c,KAAQ6b,EAAI;AACnB,UAAAe,KAAc,MAAM5c,IAAO,QAAQ6b,EAAI,WAAW7b,CAAI,KAAK,IAAI,QAAQ,MAAM,QAAQ,IAAI;AAE3F,eAAO,MAAM6b,EAAI,MAAM,aAAaA,EAAI,QAAQ,KAAK,GAAG,IAAI,MAAMe,IAAa,MAAMf,EAAI,UAAU,OAAOA,EAAI,MAAM;AAAA,MAC5H;AACM,eAASgB,EAAaC,GAASC,GAAKnB,GAAMoB,GAAY;AACpD,QAAAF,EAAQ,YAAYC;AACpB,YAAIrW,IAAQoW,EAAQ,KAAKlB,CAAI;AAC7B,YAAIlV,KAASsW,KAActW,EAAM,CAAC,GAAG;AACnC,cAAIuW,IAAmBvW,EAAM,CAAC,EAAE;AAChC,UAAAA,EAAM,SAASuW,GACfvW,EAAM,CAAC,IAAIA,EAAM,CAAC,EAAE,MAAMuW,CAAgB;AAAA,QAC3C;AACD,eAAOvW;AAAA,MACR;AACD,eAASuV,EAAaL,GAAME,GAAWX,GAAS+B,GAAWC,GAAUC,GAAS;AAC5E,iBAAS/B,KAASF;AAChB,cAAI,GAACA,EAAQ,eAAeE,CAAK,KAAK,CAACF,EAAQE,CAAK,IAGpD;AAAA,gBAAIgC,IAAWlC,EAAQE,CAAK;AAC5B,YAAAgC,IAAW,MAAM,QAAQA,CAAQ,IAAIA,IAAW,CAACA,CAAQ;AACzD,qBAASC,IAAI,GAAGA,IAAID,EAAS,QAAQ,EAAEC,GAAG;AACxC,kBAAIF,KAAWA,EAAQ,SAAS/B,IAAQ,MAAMiC;AAC5C;AAEF,kBAAIC,IAAaF,EAASC,CAAC,GACvBvC,IAASwC,EAAW,QACpBP,IAAa,CAAC,CAACO,EAAW,YAC1BC,IAAS,CAAC,CAACD,EAAW,QACtBjB,IAAQiB,EAAW;AACvB,kBAAIC,KAAU,CAACD,EAAW,QAAQ,QAAQ;AACxC,oBAAIE,IAAQF,EAAW,QAAQ,SAAU,EAAC,MAAM,WAAW,EAAE,CAAC;AAC9D,gBAAAA,EAAW,UAAU,OAAOA,EAAW,QAAQ,QAAQE,IAAQ,GAAG;AAAA,cACnE;AAED,uBADIX,KAAUS,EAAW,WAAWA,GAC3BG,IAAcR,EAAU,MAAMH,IAAMI,GAAUO,MAAgB5B,EAAU,QAC3E,EAAAsB,KAAWL,KAAOK,EAAQ,QADuDL,KAAOW,EAAY,MAAM,QAAQA,IAAcA,EAAY,MAAM;AAItJ,oBAAIC,IAAMD,EAAY;AACtB,oBAAI5B,EAAU,SAASF,EAAK;AAC1B;AAEF,oBAAI,EAAA+B,aAAetD,IAGnB;AAAA,sBAAIuD,IAAc,GACdlX;AACJ,sBAAI8W,GAAQ;AAEV,wBADA9W,IAAQmW,EAAaC,IAASC,GAAKnB,GAAMoB,CAAU,GAC/C,CAACtW,KAASA,EAAM,SAASkV,EAAK;AAChC;AAEF,wBAAIrC,IAAO7S,EAAM,OACbtF,IAAKsF,EAAM,QAAQA,EAAM,CAAC,EAAE,QAC5BmX,IAAId;AAER,yBADAc,KAAKH,EAAY,MAAM,QAChBnE,KAAQsE;AACb,sBAAAH,IAAcA,EAAY,MAC1BG,KAAKH,EAAY,MAAM;AAIzB,wBAFAG,KAAKH,EAAY,MAAM,QACvBX,IAAMc,GACFH,EAAY,iBAAiBrD;AAC/B;AAEF,6BAASpM,IAAIyP,GAAazP,MAAM6N,EAAU,SAAS+B,IAAIzc,KAAM,OAAO6M,EAAE,SAAU,WAAWA,IAAIA,EAAE;AAC/F,sBAAA2P,KACAC,KAAK5P,EAAE,MAAM;AAEf,oBAAA2P,KACAD,IAAM/B,EAAK,MAAMmB,GAAKc,CAAC,GACvBnX,EAAM,SAASqW;AAAA,kBAC/B,WACgBrW,IAAQmW,EAAaC,IAAS,GAAGa,GAAKX,CAAU,GAC5C,CAACtW;AACH;AAGJ,sBAAI6S,IAAO7S,EAAM,OACboX,KAAWpX,EAAM,CAAC,GAClBsU,KAAS2C,EAAI,MAAM,GAAGpE,CAAI,GAC1BwE,KAAQJ,EAAI,MAAMpE,IAAOuE,GAAS,MAAM,GACxCE,KAAQjB,IAAMY,EAAI;AACtB,kBAAIP,KAAWY,KAAQZ,EAAQ,UAC7BA,EAAQ,QAAQY;AAElB,sBAAIC,KAAaP,EAAY;AAC7B,kBAAI1C,OACFiD,KAAajC,EAASF,GAAWmC,IAAYjD,EAAM,GACnD+B,KAAO/B,GAAO,SAEhBkD,EAAYpC,GAAWmC,IAAYL,CAAW;AAC9C,sBAAIO,KAAU,IAAI9D,EAAMgB,GAAON,IAAS/b,EAAE,SAAS8e,IAAU/C,CAAM,IAAI+C,IAAUxB,GAAOwB,EAAQ;AAKhG,sBAJAJ,IAAc1B,EAASF,GAAWmC,IAAYE,EAAO,GACjDJ,MACF/B,EAASF,GAAW4B,GAAaK,EAAK,GAEpCH,IAAc,GAAG;AACnB,wBAAIQ,KAAgB;AAAA,sBAClB,OAAO/C,IAAQ,MAAMiC;AAAA,sBACrB,OAAAU;AAAA,oBAClB;AACgB,oBAAA/B,EAAaL,GAAME,GAAWX,GAASuC,EAAY,MAAMX,GAAKqB,EAAa,GACvEhB,KAAWgB,GAAc,QAAQhB,EAAQ,UAC3CA,EAAQ,QAAQgB,GAAc;AAAA,kBAEjC;AAAA;AAAA,cACF;AAAA,YACF;AAAA;AAAA,MAEJ;AACD,eAASrC,IAAa;AACpB,YAAIsC,IAAO,EAAE,OAAO,MAAM,MAAM,MAAM,MAAM,QACxCC,IAAO,EAAE,OAAO,MAAM,MAAMD,GAAM,MAAM;AAC5C,QAAAA,EAAK,OAAOC,GACZ,KAAK,OAAOD,GACZ,KAAK,OAAOC,GACZ,KAAK,SAAS;AAAA,MACf;AACD,eAAStC,EAASuC,GAAMC,GAAM9f,GAAO;AACnC,YAAI+f,IAAOD,EAAK,MACZE,IAAU,EAAE,OAAAhgB,GAAO,MAAM8f,GAAM,MAAAC,EAAI;AACvC,eAAAD,EAAK,OAAOE,GACZD,EAAK,OAAOC,GACZH,EAAK,UACEG;AAAA,MACR;AACD,eAASR,EAAYK,GAAMC,GAAMG,GAAO;AAEtC,iBADIF,IAAOD,EAAK,MACPjhB,IAAI,GAAGA,IAAIohB,KAASF,MAASF,EAAK,MAAMhhB;AAC/C,UAAAkhB,IAAOA,EAAK;AAEd,QAAAD,EAAK,OAAOC,GACZA,EAAK,OAAOD,GACZD,EAAK,UAAUhhB;AAAA,MAChB;AACD,eAAS2e,EAAQqC,GAAM;AAGrB,iBAFIhX,IAAQ,CAAA,GACRiX,IAAOD,EAAK,KAAK,MACdC,MAASD,EAAK;AACnB,UAAAhX,EAAM,KAAKiX,EAAK,KAAK,GACrBA,IAAOA,EAAK;AAEd,eAAOjX;AAAA,MACR;AACD,aAAOvI;AAAA,IACb;AACI,IAAA8a,EAAO,UAAUC,GACjBA,EAAO,UAAUA;AAAA,EAClB;AACH,CAAC,GAGG6E,IAAQlF,GAAQE,GAAa,CAAE;AACnCgF,EAAM,UAAU,SAAS,EAAE,SAAS,EAAE,SAAS,+BAA+B,QAAQ,GAAI,GAAI,QAAQ,EAAE,SAAS,kBAAkB,QAAQ,GAAI,GAAI,SAAS,EAAE,SAAS,wHAAwH,QAAQ,IAAM,QAAQ,EAAE,mBAAmB,EAAE,SAAS,8BAA8B,YAAY,IAAM,QAAQ,IAAM,QAAQ,KAAI,GAAI,QAAQ,EAAE,SAAS,mBAAmB,QAAQ,GAAM,GAAE,aAAa,gBAAgB,eAAe,aAAa,MAAM,aAAc,EAAA,GAAI,OAAO,EAAE,SAAS,6BAA6B,QAAQ,GAAM,GAAE,KAAK,EAAE,SAAS,wHAAwH,QAAQ,IAAM,QAAQ,EAAE,KAAK,EAAE,SAAS,kBAAkB,QAAQ,EAAE,aAAa,SAAS,WAAW,eAAgB,EAAA,GAAI,gBAAgB,CAAA,GAAI,cAAc,EAAE,SAAS,sCAAsC,QAAQ,EAAE,aAAa,CAAC,EAAE,SAAS,MAAM,OAAO,cAAa,GAAI,EAAE,SAAS,oBAAoB,YAAY,GAAM,CAAA,EAAG,EAAA,GAAI,aAAa,QAAQ,aAAa,EAAE,SAAS,aAAa,QAAQ,EAAE,WAAW,eAAgB,EAAA,EAAI,EAAA,GAAI,QAAQ,CAAC,EAAE,SAAS,mBAAmB,OAAO,eAAc,GAAI,oBAAoB,EAAC,GAAIA,EAAM,UAAU,OAAO,IAAI,OAAO,YAAY,EAAE,OAAO,SAASA,EAAM,UAAU,OAAO,QAAQA,EAAM,UAAU,OAAO,QAAQ,OAAO,iBAAiB,EAAE,SAASA,EAAM,UAAU,QAAQA,EAAM,MAAM,IAAI,QAAQ,SAAS,GAAG;AACj9C,EAAa,EAAE,SAAf,aAAwB,EAAE,WAAW,QAAQ,EAAE,QAAQ,QAAQ,SAAS,GAAG;AAC7E,CAAC,GAAG,OAAO,eAAeA,EAAM,UAAU,OAAO,KAAK,cAAc,EAAE,OAAO,SAAS,GAAG,GAAG;AAC1F,MAAIC,IAAI,CAAE,GAAEA,KAAKA,EAAE,cAAc,CAAC,IAAI,EAAE,SAAS,qCAAqC,YAAY,IAAM,QAAQD,EAAM,UAAU,CAAC,KAAKC,EAAE,QAAQ,wBAAwB,EAAE,kBAAkB,EAAE,SAAS,6BAA6B,QAAQA,EAAG,EAAA,IAAK,KAAKA,EAAE,cAAc,CAAC,IAAI,EAAE,SAAS,WAAW,QAAQD,EAAM,UAAU,CAAC,KAAK,CAAA;AAClU,IAAE,CAAC,IAAI,EAAE,SAAS,OAAO,wFAAwF,OAAO,QAAQ,OAAO,WAAW;AAChJ,WAAO;AAAA,EACX,CAAG,GAAG,GAAG,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQC,EAAC,GAAID,EAAM,UAAU,aAAa,UAAU,SAAS,CAAC;AAC1G,EAAC,CAAE,GAAG,OAAO,eAAeA,EAAM,UAAU,OAAO,KAAK,gBAAgB,EAAE,OAAO,SAAS,GAAGE,GAAG;AAC9F,EAAAF,EAAM,UAAU,OAAO,IAAI,OAAO,cAAc,EAAE,KAAK,EAAE,SAAS,OAAO,aAAa,SAAS,QAAQ,IAAI,MAAM,iDAAiD,QAAQ,GAAG,GAAG,YAAY,IAAM,QAAQ,EAAE,aAAa,YAAY,cAAc,EAAE,SAAS,YAAY,QAAQ,EAAE,OAAO,EAAE,SAAS,0CAA0C,YAAY,IAAM,OAAO,CAACE,GAAG,cAAcA,CAAC,GAAG,QAAQF,EAAM,UAAUE,CAAC,EAAG,GAAE,aAAa,CAAC,EAAE,SAAS,MAAM,OAAO,cAAa,GAAI,KAAK,EAAC,EAAI,EAAA,EAAI,CAAA;AACpe,EAAC,CAAE,GAAGF,EAAM,UAAU,OAAOA,EAAM,UAAU,QAAQA,EAAM,UAAU,SAASA,EAAM,UAAU,QAAQA,EAAM,UAAU,MAAMA,EAAM,UAAU,QAAQA,EAAM,UAAU,MAAMA,EAAM,UAAU,OAAO,UAAU,EAAE,GAAGA,EAAM,UAAU,OAAOA,EAAM,UAAU,KAAKA,EAAM,UAAU,OAAOA,EAAM,UAAU,KAAKA,EAAM,UAAU,MAAMA,EAAM,UAAU,KAAK,SAAS,GAAG;AAC7V,MAAIE,IAAI,EAAE,SAAS,wBAAwB,OAAO,SAAQ,GAAID,IAAI,8FAA8FlG,IAAI,iBAAiBkG,EAAE,SAAS,KAAKlG,IAAI,OAAOA,IAAI,MAAMA,CAAC,GAAG/P,IAAI,EAAE,SAAS,yBAAyB,YAAY,IAAM,OAAO,WAAU;AACzS,IAAE,UAAU,QAAQ,EAAE,cAAc,EAAE,SAAS,mDAAmD,YAAY,IAAM,QAAQ,EAAE,uBAAuB,EAAE,SAAS,WAAW,YAAY,IAAM,OAAO,WAAY,GAAE,0BAA0B,EAAE,SAAS,WAAW,OAAO,cAAe,GAAE,OAAO,EAAE,SAAS+P,GAAG,QAAQ,EAAE,QAAQkG,GAAG,qBAAqB,EAAE,SAAS,KAAK,OAAO,WAAU,IAAM,GAAE,kBAAkBC,GAAG,YAAY,EAAE,SAAS,0BAA0B,OAAO,aAAc,GAAE,QAAQD,EAAG,EAAA,GAAI,kBAAkBC,GAAG,YAAY,EAAE,SAAS,6BAA6B,OAAO,aAAY,GAAI,eAAe,CAAC,EAAE,SAAS,4BAA4B,OAAO,UAAW,GAAE,EAAE,SAAS,gBAAgB,OAAO,WAAW,QAAQ,EAAE,cAAclW,EAAC,GAAI,GAAG,QAAQ,EAAE,SAAS,mBAAmB,OAAO,WAAU,GAAI,QAAQiW,GAAG,OAAO,CAAC,EAAE,SAAS,+EAA+E,OAAO,eAAe,QAAQ,EAAE,cAAcjW,EAAC,EAAI,GAAE,EAAE,SAAS,MAAM,OAAO,cAAa,CAAE,GAAG,YAAY,EAAE,SAAS,mCAAmC,OAAO,SAAU,GAAE,aAAa,EAAE,SAAS,MAAM,OAAO,UAAW,EAAA;AAC5mC,EAAEgW,CAAK,GAAGA,EAAM,UAAU,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,mCAAmC,YAAY,IAAM,QAAQ,GAAM,GAAE,EAAE,SAAS,oBAAoB,YAAY,IAAM,QAAQ,IAAM,GAAG,QAAQ,EAAE,SAAS,kDAAkD,QAAQ,GAAI,GAAI,cAAc,EAAE,SAAS,4FAA4F,YAAY,IAAM,QAAQ,EAAE,aAAa,QAAS,EAAA,GAAI,SAAS,8GAA8G,SAAS,sBAAsB,UAAU,eAAe,QAAQ,6DAA6D,UAAU,gDAAgD,aAAa,gBAAiB,GAAEA,EAAM,UAAU,aAAaA,EAAM,UAAU,OAAO,SAAS,EAAE,cAAc,CAACA,EAAM,UAAU,MAAM,YAAY,GAAG,EAAE,SAAS,2GAA2G,YAAY,GAAI,CAAE,GAAG,SAAS,CAAC,EAAE,SAAS,wBAAwB,YAAY,GAAM,GAAE,EAAE,SAAS,odAAod,YAAY,IAAM,GAAG,UAAU,qGAAqG,QAAQ,EAAE,SAAS,OAAO,aAAa,SAAS,QAAQ,eAAe,SAAS,MAAM,0BAA0B,SAAS,MAAM,4BAA4B,SAAS,MAAM,sCAAsC,SAAS,MAAM,gBAAgB,SAAS,MAAM,oFAAoF,SAAS,MAAM,YAAY,MAAM,GAAG,YAAY,GAAM,GAAE,UAAU,4FAA6F,CAAA,GAAGA,EAAM,UAAU,WAAW,YAAY,EAAE,CAAC,EAAE,UAAU,wEAAwEA,EAAM,UAAU,aAAa,cAAc,WAAW,EAAE,OAAO,EAAE,SAAS,OAAO,0DAA0D,SAAS,KAAK,SAAS,QAAQ,iEAAiE,SAAS,MAAM,qIAAqI,SAAS,MAAM,kEAAkE,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,gBAAgB,EAAE,SAAS,6BAA6B,YAAY,IAAM,OAAO,kBAAkB,QAAQA,EAAM,UAAU,SAAS,mBAAmB,WAAW,eAAe,aAAc,GAAE,qBAAqB,EAAE,SAAS,iMAAiM,OAAO,WAAU,GAAI,WAAW,CAAC,EAAE,SAAS,uIAAuI,YAAY,IAAM,QAAQA,EAAM,UAAU,cAAc,EAAE,SAAS,sFAAsF,YAAY,IAAM,QAAQA,EAAM,UAAU,WAAU,GAAI,EAAE,SAAS,mEAAmE,YAAY,IAAM,QAAQA,EAAM,UAAU,WAAU,GAAI,EAAE,SAAS,+eAA+e,YAAY,IAAM,QAAQA,EAAM,UAAU,YAAY,GAAG,UAAU,6BAA6B,GAAGA,EAAM,UAAU,aAAa,cAAc,UAAU,EAAE,UAAU,EAAE,SAAS,SAAS,QAAQ,IAAM,OAAO,aAAa,mBAAmB,EAAE,SAAS,4EAA4E,QAAQ,IAAM,QAAQ,EAAE,wBAAwB,EAAE,SAAS,SAAS,OAAO,SAAU,GAAE,eAAe,EAAE,SAAS,oEAAoE,YAAY,IAAM,QAAQ,EAAE,6BAA6B,EAAE,SAAS,aAAa,OAAO,cAAe,GAAE,MAAMA,EAAM,UAAU,WAAY,EAAA,GAAI,QAAQ,UAAS,KAAM,mBAAmB,EAAE,SAAS,6EAA6E,YAAY,IAAM,QAAQ,IAAM,OAAO,WAAU,EAAI,CAAA,GAAGA,EAAM,UAAU,aAAa,cAAc,YAAY,EAAE,oBAAoB,EAAE,SAAS,qFAAqF,YAAY,IAAM,OAAO,WAAY,EAAA,CAAE,GAAGA,EAAM,UAAU,WAAWA,EAAM,UAAU,OAAO,IAAI,WAAW,UAAU,YAAY,GAAGA,EAAM,UAAU,OAAO,IAAI,aAAa,yNAAyN,QAAQ,YAAY,IAAIA,EAAM,UAAU,KAAKA,EAAM,UAAU,YAAYA,EAAM,UAAU,eAAeA,EAAM,UAAU,OAAO,cAAc,EAAE,SAAS,wUAAwU,UAAU,6DAA6D,GAAGA,EAAM,UAAU,aAAa,YAAY,EAAE,QAAQ,YAAY,OAAOA,EAAM,UAAU,aAAa,WAAW,OAAOA,EAAM,UAAU,aAAa,kBAAkB,GAAGA,EAAM,UAAU,UAAUA,EAAM,UAAU,aAAa,gBAAgB,UAAU,EAAE,KAAK,EAAE,SAAS,6EAA6E,YAAY,IAAM,QAAQA,EAAM,UAAU,OAAQ,EAAA,CAAE,GAAG,SAAS,GAAG;AACjgN,MAAIE,IAAI,aAAaD,IAAI,EAAE,SAAS,cAAc,OAAO;AACzD,IAAE,UAAU,eAAe,EAAE,UAAU,OAAO,cAAc,EAAE,SAASC,GAAG,QAAQ,CAAC,EAAE,SAAS,0BAA0B,QAAQ,GAAM,GAAE,EAAE,SAAS,0BAA0B,QAAQ,IAAM,QAAQ,EAAE,eAAeD,EAAC,EAAI,CAAA,GAAG,SAAS,oSAAoS,gBAAgB,EAAE,SAAS,cAAc,OAAO,WAAU,EAAI,CAAA,GAAG,EAAE,UAAU,aAAa,gBAAgB,WAAW,EAAE,qBAAqB,EAAE,SAAS,kBAAkB,OAAO,UAAW,GAAE,eAAe,EAAE,SAAS,sBAAsB,OAAO,SAAS,QAAQ,EAAE,SAASC,GAAG,eAAeD,EAAC,EAAI,EAAA,CAAE,GAAG,EAAE,UAAU,aAAa,gBAAgB,UAAU,EAAE,qBAAqB,EAAE,SAAS,0BAA0B,QAAQ,EAAE,WAAW,EAAE,SAAS,SAAS,OAAO,cAAa,GAAI,QAAQ,EAAE,SAAS,WAAW,OAAO,uBAAuB,QAAQ,EAAE,UAAU,WAAU,EAAI,EAAA,GAAI,oBAAoB,CAAC,EAAE,SAAS,kBAAkB,QAAQ,IAAM,OAAO,SAAU,GAAE,EAAE,SAAS,kBAAkB,QAAQ,IAAM,OAAO,UAAU,QAAQ,EAAE,eAAeA,EAAC,EAAI,CAAA,EAAG,CAAA,GAAG,EAAE,UAAU,aAAa,gBAAgB,WAAW,EAAE,UAAU,yBAAwB,CAAE,GAAG,OAAO,EAAE,UAAU,aAAa,iBAAiB,GAAG,EAAE,UAAU,SAAS,EAAE,UAAU;AAC96C,EAAED,CAAK,GAAG,SAASG,GAAG;AACpB,MAAIrC,IAAIqC,EAAE,UAAU,cAAc,EAAE,WAAW,EAAE,SAAS,kEAAkE,YAAY,GAAI,GAAI,SAAS,EAAE,SAAS,yDAAyD,YAAY,GAAM,GAAE,aAAa;AAC9P,SAAO,eAAerC,GAAG,cAAc,EAAE,OAAO,SAASsC,GAAIlW,GAAG;AAC9D,KAACkW,IAAiB,OAAOA,KAAnB,WAAwB,CAACA,CAAE,IAAIA,GAAI,QAAQ,SAASC,GAAI;AAC5D,UAAIH,IAAI,SAASI,GAAI;AACnB,QAAAA,EAAG,WAAWA,EAAG,SAAS,CAAA,IAAKA,EAAG,OAAO,OAAOpW;AAAA,MACxD,GAAS+V,IAAI;AACP,UAAIlG,IAAIoG,EAAE,UAAUE,CAAE,GAAG;AACvB,YAAItG,GAAG/P,IAAI+P,EAAEkG,CAAC;AACd,aAAKjW,IAAIA,MAAS+P,IAAIoG,EAAE,UAAU,aAAaE,GAAI,WAAW,EAAE,eAAe,EAAE,SAAS,yCAAyC,YAAY,IAAM,OAAO,UAAW,EAAA,CAAE,GAAGJ,CAAC,cAAc,WAAWjW,IAAI+P,EAAEkG,CAAC,IAAI,EAAE,SAASjW,EAAC,IAAK,MAAM,QAAQA,CAAC;AAC/O,mBAAS6T,IAAI,GAAGlf,IAAIqL,EAAE,QAAQ6T,IAAIlf,GAAGkf;AACnC,YAAA7T,EAAE6T,CAAC,aAAa,WAAW7T,EAAE6T,CAAC,IAAI,EAAE,SAAS7T,EAAE6T,CAAC,EAAC,IAAKqC,EAAElW,EAAE6T,CAAC,CAAC;AAAA;AAE9D,UAAAqC,EAAElW,CAAC;AAAA,MACN;AAAA,IACP,CAAK;AAAA,EACL,GAAK,GAAG8T,EAAE,WAAW,CAAC,QAAQ,cAAc,KAAK,GAAGA,CAAC;AACrD,EAAEkC,CAAK,GAAG,SAAS,GAAG;AACpB,MAAIE,IAAI,+EAA+EA,KAAK,EAAE,UAAU,MAAM,EAAE,SAAS,oBAAoB,QAAQ,EAAE,SAAS,OAAO,eAAe,sBAAsB,SAAS,MAAMA,EAAE,SAAS,QAAQ,kBAAkB,MAAM,GAAG,QAAQ,EAAE,MAAM,YAAY,8BAA8B,EAAE,SAAS,6FAA6F,YAAY,IAAM,OAAO,WAAU,GAAI,SAAS,EAAE,SAAS,0CAA0C,YAAY,GAAM,EAAA,EAAI,GAAE,KAAK,EAAE,SAAS,OAAO,iBAAiBA,EAAE,SAAS,MAAM,8BAA8B,SAAS,QAAQ,GAAG,GAAG,QAAQ,IAAM,QAAQ,EAAE,UAAU,SAAS,aAAa,WAAW,QAAQ,EAAE,SAAS,OAAO,MAAMA,EAAE,SAAS,GAAG,GAAG,OAAO,MAAO,EAAA,EAAI,GAAE,UAAU,EAAE,SAAS,OAAO,sDAAsDA,EAAE,SAAS,eAAe,GAAG,YAAY,GAAI,GAAI,QAAQ,EAAE,SAASA,GAAG,QAAQ,GAAI,GAAI,UAAU,EAAE,SAAS,qFAAqF,YAAY,GAAM,GAAE,WAAW,iBAAiB,UAAU,EAAE,SAAS,mCAAmC,YAAY,GAAI,GAAI,aAAa,YAAW,GAAI,EAAE,UAAU,IAAI,OAAO,OAAO,OAAO,EAAE,UAAU,KAAK,EAAE,UAAU;AAC3wC,EAAAA,MAAMA,EAAE,IAAI,WAAW,SAAS,KAAK,GAAGA,EAAE,IAAI,aAAa,SAAS,KAAK;AAC3E,EAAEF,CAAK,GAAG,SAAS,GAAG;AACpB,MAAIE,IAAI,iDAAiDA,KAAK,EAAE,UAAU,IAAI,WAAW,EAAE,SAAS,EAAE,UAAU,IAAI,SAAS,SAAS,YAAY,IAAM,QAAQA,IAAI,EAAE,kBAAkB,gEAAgE,gBAAgB,WAAW,OAAO,YAAY,IAAI,WAAW,WAAW,EAAE,SAAS,OAAO,qBAAqBA,EAAE,SAAS,OAAO,GAAG,QAAQ,IAAM,QAAQ,EAAE,aAAa,WAAW,oBAAoB,EAAE,SAAS,cAAc,YAAY,IAAM,OAAO,UAAS,GAAI,WAAW,EAAE,SAAS,6CAA6C,YAAY,IAAM,QAAQ,EAAE,aAAa,MAAK,EAAI,GAAE,aAAa,EAAE,SAAS,qCAAqC,YAAY,MAAQ,cAAc,CAACA,GAAG,EAAE,SAAS,6CAA6C,YAAY,GAAM,CAAA,GAAG,UAAU,YAAa,EAAA,GAAI,QAAQ,CAAC,EAAE,SAAS,mDAAmD,YAAY,IAAM,QAAQ,EAAE,QAAQ,UAAU,UAAU,OAAQ,EAAA,GAAI,EAAE,SAAS,iCAAiC,YAAY,GAAI,CAAE,GAAG,YAAY,eAAe,aAAa,QAAS,EAAA,GAAI,EAAE,UAAU,IAAI,OAAO,OAAO,4BAA4B,EAAE,SAASA,GAAG,EAAE,UAAU,aAAa,OAAO,YAAY,EAAE,UAAU,EAAE,SAAS,+EAA+E,YAAY,GAAM,EAAA,CAAE,GAAG,EAAE,SAAS,gCAAgC,YAAY,GAAI,IAAKD,IAAI,EAAE,SAAS,wCAAwC,YAAY;AACt7C,IAAE,UAAU,aAAa,OAAO,YAAY,EAAE,UAAU,EAAE,SAAS,sBAAsB,YAAY,GAAM,GAAE,SAAS,EAAE,SAAS,sBAAsB,OAAO,QAAS,GAAE,OAAO,CAAC,EAAE,SAAS,m7CAAm7C,YAAY,MAAQ,EAAE,SAAS,6JAA6J,QAAQ,EAAE,MAAMC,GAAG,QAAQD,GAAG,UAAU,gBAAgB,aAAa,QAAO,GAAI,GAAG,QAAQ,mBAAmB,MAAMC,GAAG,QAAQD,EAAC,CAAE;AAC/6D,EAAED,CAAK,GAAG,SAAS,GAAG;AACpB,MAAIE,IAAI,oBAAoBD,IAAI,oFAAoFlG,IAAI,QAAQkG,EAAE,SAAS,aAAaC,EAAE,SAAS,QAAQA,EAAE,SAAS,aAAaD,EAAE,SAAS,OAAOjW,IAAI,kJAAkJ,OAAO,QAAQ,YAAY,WAAW;AAC/Y,WAAO,2EAA2E;AAAA,EACtF,CAAG,GAAG6T,IAAI,8CAA8C;AACtD,WAASlf,EAAEyhB,GAAIG,GAAI;AACjB,IAAAA,KAAMA,KAAM,IAAI,QAAQ,MAAM,EAAE,IAAI;AACpC,QAAIC,IAAK,yFAAyF,OAAO,QAAQ,aAAa,WAAW;AACvI,aAAOzG;AAAA,IACb,CAAK,EAAE,QAAQ,cAAc,WAAW;AAClC,aAAOqG;AAAA,IACb,CAAK;AACD,WAAO,OAAOI,GAAID,CAAE;AAAA,EACrB;AACD,IAAE,UAAU,OAAO,EAAE,QAAQ,EAAE,SAAS,OAAO,6FAA6F,OAAO,QAAQ,aAAa,WAAW;AACjL,WAAOxG;AAAA,EACX,CAAG,CAAC,GAAG,YAAY,IAAM,OAAO,SAAU,GAAE,SAAS,OAAO,KAAK,EAAE,SAAS,OAAO,kEAAkE,OAAO,QAAQ,aAAa,WAAW;AACxL,WAAOA;AAAA,EACX,CAAG,EAAE,QAAQ,YAAY,WAAW;AAChC,WAAO,QAAQ/P,IAAI,MAAM6T,IAAI;AAAA,EACjC,CAAG,CAAC,GAAG,YAAY,IAAM,QAAQ,IAAM,OAAO,SAAQ,GAAI,WAAW,EAAE,SAAS,iBAAiB,YAAY,IAAM,OAAO,eAAe,UAAU,EAAE,SAASlf,EAAE,sJAAsJ,MAAM,GAAG,YAAY,IAAM,OAAO,YAAY,SAAS,EAAE,SAASA,EAAE,aAAa,QAAQ,GAAG,GAAG,YAAY,IAAM,OAAO,eAAe,MAAM,EAAE,SAASA,EAAE,SAAS,QAAQ,GAAG,GAAG,YAAY,IAAM,OAAO,eAAe,QAAQ,EAAE,SAASA,EAAEkf,CAAC,GAAG,YAAY,IAAM,QAAQ,GAAM,GAAE,QAAQ,EAAE,SAASlf,EAAE,iFAAiF,QAAQ,GAAG,GAAG,YAAY,GAAI,GAAI,KAAKshB,GAAG,WAAWC,GAAG,aAAa,4BAA2B,GAAI,EAAE,UAAU,MAAM,EAAE,UAAU;AAClzB,EAAEF,CAAK,GAAG,SAAS9V,GAAG;AACpB,MAAIgW,IAAI,2CAA2C;AACnD,WAASpC,EAAEsC,GAAI;AACb,WAAOA,IAAKA,EAAG,QAAQ,YAAY,WAAW;AAC5C,aAAOF;AAAA,IACb,CAAK,GAAG,OAAO,0BAA0B,SAAS,QAAQE,IAAK,GAAG;AAAA,EAC/D;AACD,MAAIH,IAAI,4DAA4D,QAAQ,IAAI,+CAA+C,OAAO,QAAQ,OAAO,WAAW;AAC9J,WAAOA;AAAA,EACX,CAAG,GAAGjW,IAAI,sEAAsE,QAAQmW,KAAKjW,EAAE,UAAU,WAAWA,EAAE,UAAU,OAAO,UAAU,CAAE,CAAA,GAAGA,EAAE,UAAU,aAAa,YAAY,UAAU,EAAE,sBAAsB,EAAE,SAAS,mDAAmD,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,aAAa,aAAa,gBAAgB,EAAE,SAAS,kBAAkB,OAAO,CAAC,QAAQ,eAAe,GAAG,QAAQA,EAAE,UAAU,KAAI,EAAI,EAAA,GAAI,YAAY,EAAE,SAAS,mBAAmB,OAAO,cAAe,GAAE,OAAO,EAAE,SAAS,OAAO,MAAM,IAAIF,IAAI,QAAQ,IAAI,MAAM,GAAG,GAAG,QAAQ,EAAE,mBAAmB,EAAE,SAAS,OAAO,OAAO,IAAIA,IAAI,SAAS,IAAI,KAAK,GAAG,YAAY,IAAM,QAAQ,EAAE,cAAc,EAAE,SAAS,OAAOiW,CAAC,GAAG,QAAQ/V,EAAE,UAAU,SAAU,GAAE,aAAa,KAAM,EAAA,GAAI,cAAc,EAAE,SAAS,OAAO,OAAO,IAAI,MAAMF,IAAI,GAAG,GAAG,YAAY,IAAM,QAAQ,EAAE,aAAa,iBAAkB,GAAE,oBAAoB,EAAE,SAAS,OAAO,MAAM,IAAI,GAAG,GAAG,QAAQ,EAAE,gBAAgB,EAAE,SAAS,OAAOiW,CAAC,GAAG,OAAO,aAAa,QAAQ/V,EAAE,UAAU,SAAU,GAAE,aAAa,OAAQ,EAAA,KAAM,MAAM,CAAC,EAAE,SAAS,wFAAwF,YAAY,IAAM,OAAO,UAAS,GAAI,EAAE,SAAS,sBAAsB,QAAQ,IAAM,QAAQ,EAAE,cAAc,EAAE,SAAS,sDAAsD,YAAY,GAAM,GAAE,iBAAiB,EAAE,SAAS,YAAY,YAAY,MAAQ,aAAa,QAAS,CAAA,GAAG,OAAO,CAAC,EAAE,SAAS,2CAA2C,OAAO,aAAa,QAAQ,EAAE,aAAa,cAAe,GAAE,EAAE,SAAS,cAAc,YAAY,IAAM,OAAO,aAAa,QAAQ,EAAE,aAAa,UAAW,EAAA,CAAE,GAAG,IAAI,EAAE,SAAS,yCAAyC,YAAY,IAAM,OAAO,cAAe,GAAE,MAAM,EAAE,SAAS,oCAAoC,YAAY,IAAM,OAAO,cAAe,GAAE,iBAAiB,EAAE,SAAS,sHAAsH,QAAQ,EAAE,UAAU,EAAE,SAAS,iBAAiB,YAAY,GAAM,GAAE,QAAQ,gEAAgE,aAAa,iBAAgB,GAAI,OAAO,MAAO,GAAE,MAAM,EAAE,SAAS4T,EAAE,kGAAkG,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,SAAS,EAAE,SAAS,uBAAuB,YAAY,IAAM,QAAQ,CAAA,KAAM,aAAa,UAAS,EAAI,GAAE,QAAQ,EAAE,SAASA,EAAE,kGAAkG,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,SAAS,EAAE,SAAS,qBAAqB,YAAY,IAAM,QAAQ,CAAE,EAAA,GAAI,aAAa,OAAM,KAAM,QAAQ,EAAE,SAASA,EAAE,2BAA2B,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,SAAS,EAAE,SAAS,wBAAwB,YAAY,IAAM,QAAQ,GAAI,GAAE,aAAa,MAAO,EAAA,GAAI,gBAAgB,EAAE,SAAS,oEAAoE,YAAY,IAAM,QAAQ,IAAM,OAAO,CAAC,QAAQ,SAAS,EAAC,GAAI,KAAK,EAAE,SAASA,EAAE,mGAAmG,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,UAAU,MAAM,SAAS,EAAE,SAAS,qBAAqB,YAAY,IAAM,QAAQ,CAAE,EAAA,GAAI,UAAU,EAAE,SAAS,8BAA8B,YAAY,MAAQ,KAAK,EAAE,SAAS,kBAAkB,YAAY,GAAI,GAAI,QAAQ,EAAE,SAAS,qCAAqC,YAAY,GAAM,EAAA,IAAM,CAAA,GAAG,CAAC,OAAO,QAAQ,UAAU,QAAQ,EAAE,QAAQ,SAASyC,GAAI;AAC5jH,KAAC,OAAO,QAAQ,UAAU,UAAU,cAAc,EAAE,QAAQ,SAASH,GAAI;AACvE,MAAAG,MAAOH,MAAOlW,EAAE,UAAU,SAASqW,CAAE,EAAE,OAAO,QAAQ,OAAOH,CAAE,IAAIlW,EAAE,UAAU,SAASkW,CAAE;AAAA,IAChG,CAAK;AAAA,EACL,CAAG,GAAGlW,EAAE,MAAM,IAAI,kBAAkB,SAASkW,GAAI;AAC7C,IAAeA,EAAG,aAAlB,cAAuCA,EAAG,aAAZ,QAAyB,SAASC,EAAGE,GAAI;AACrE,UAAIA,KAAkB,OAAOA,KAAnB;AACR,iBAASC,IAAK,GAAGC,IAAKF,EAAG,QAAQC,IAAKC,GAAID,KAAM;AAC9C,cAAIE,GAAI7C,IAAI0C,EAAGC,CAAE;AACjB,UAAW3C,EAAE,SAAb,SAAoBwC,EAAGxC,EAAE,OAAO,KAAK6C,IAAK7C,EAAE,QAAQ,CAAC,GAAGA,IAAIA,EAAE,QAAQ,CAAC,GAAG6C,KAAM7C,KAAyB6C,EAAG,SAAvB,mBAAgD7C,EAAE,SAAnB,gBAAuC,OAAO6C,EAAG,WAAtB,aAAkCA,IAAKA,EAAG,QAAQ,QAAQ,QAAQ,OAAO,EAAE,QAAQ,WAAW,IAAI,GAAGA,IAAK,eAAeA,KAAM,eAAe,KAAKA,CAAE,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,YAAW,IAAK7C,EAAE,QAAoB,OAAOA,EAAE,SAArB,WAA6BA,EAAE,QAAQ,CAACA,EAAE,OAAO6C,CAAE,IAAI7C,EAAE,MAAM,KAAK6C,CAAE,IAAI7C,EAAE,QAAQ,CAAC6C,CAAE;AAAA,QACpa;AAAA,IACT,EAAMN,EAAG,MAAM;AAAA,EACf,CAAG,GAAGlW,EAAE,MAAM,IAAI,QAAQ,SAASkW,GAAI;AACnC,QAAqBA,EAAG,SAApB,cAA0B;AAC5B,eAASG,IAAK,IAAIC,IAAK,GAAGC,IAAKL,EAAG,QAAQ,QAAQI,IAAKC,GAAID,KAAM;AAC/D,YAAIE,IAAKN,EAAG,QAAQI,CAAE,GAAGE,IAAK,gBAAgB,KAAKA,CAAE;AACrD,YAAIA,GAAI;AACN,UAAAH,IAAKG,EAAG,CAAC;AACT;AAAA,QACD;AAAA,MACF;AACD,UAAI7C,GAAG,IAAI3T,EAAE,UAAUqW,CAAE;AACzB,UAAIH,EAAG,UAAUlW,EAAE,UAAU,SAASmW,GAAI;AACxC,eAAAA,IAAKA,EAAG,QAAQF,GAAG,EAAE,GACdE,IAAKA,EAAG,QAAQ,iCAAiC,SAASC,GAAIK,GAAI;AACvE,cAAIC;AACJ,kBAAgBD,IAAKA,EAAG,YAAa,GAAE,CAAC,MAAjC,OAAsCC,IAAaD,EAAG,CAAC,MAAZ,MAAgB,SAASA,EAAG,MAAM,CAAC,GAAG,EAAE,IAAI,OAAOA,EAAG,MAAM,CAAC,CAAC,GAAGE,EAAED,CAAE,KAAKE,EAAEH,CAAE,KAAKL;AAAA,QAC/I,CAAS;AAAA,MACT,EAAQF,EAAG,OAAO,GAAG,GAAGG,CAAE,IAAIA,KAAiBA,MAAX,UAAiBrW,EAAE,QAAQ,eAAe2T,IAAI,SAAyB,oBAAI,QAAQ,QAAS,IAAG,MAAM,KAAK,MAAM,OAAO,KAAK,OAAQ,CAAA,GAAGuC,EAAG,WAAW,KAAKvC,GAAG3T,EAAE,QAAQ,WAAW,cAAcqW,GAAI,WAAW;AAC3O,YAAIF,IAAK,SAAS,eAAexC,CAAC;AAClC,QAAAwC,MAAOA,EAAG,YAAYnW,EAAE,UAAUmW,EAAG,aAAanW,EAAE,UAAUqW,CAAE,GAAGA,CAAE;AAAA,MACtE,CAAA;AAAA,IACF;AAAA,EACF,CAAA,GAAG,OAAOrW,EAAE,UAAU,OAAO,IAAI,QAAQ,QAAQ,IAAI,IAAI4W,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,IAAK,GAAED,IAAI,OAAO,iBAAiB,OAAO;AAC5I,EAAA3W,EAAE,UAAU,KAAKA,EAAE,UAAU;AAC/B,EAAE8V,CAAK,GAAGA,EAAM,UAAU,UAAU,EAAE,SAAS,OAAO,aAAa,EAAE,SAAS,oEAAoE,QAAQ,IAAM,OAAO,UAAU,QAAQ,EAAE,qBAAqB,EAAE,SAAS,mCAAmC,YAAY,IAAM,QAAQA,EAAM,UAAU,SAAU,EAAA,KAAM,QAAQ,EAAE,SAAS,kDAAkD,QAAQ,GAAM,GAAE,QAAQ,4CAA4C,SAAS,sBAAsB,UAAU,gBAAgB,WAAW,EAAE,SAAS,eAAe,OAAO,WAAY,GAAE,aAAa,EAAE,SAAS,kEAAkE,QAAQ,GAAI,GAAI,cAAc,EAAE,SAAS,qBAAqB,OAAO,aAAc,GAAE,QAAQ,uCAAuC,UAAU,sBAAsB,cAAc,EAAE,SAAS,mFAAmF,YAAY,GAAI,GAAI,UAAU,EAAE,SAAS,gDAAgD,YAAY,IAAM,OAAO,WAAU,GAAI,uBAAuB,EAAE,SAAS,+BAA+B,YAAY,IAAM,OAAO,WAAY,GAAE,oBAAoB,EAAE,SAAS,4BAA4B,YAAY,IAAM,OAAO,WAAY,GAAE,SAAS,wIAAwI,UAAU,gBAAgB,kBAAkB,gBAAgB,QAAQ,gBAAgB,aAAa,kBAAkB,UAAU,SAASA,EAAM,MAAM,IAAI,kBAAkB,SAAS,GAAG;AAC3iD,MAAkB,EAAE,aAAhB;AACF,aAASrhB,IAAI,EAAE,OAAO,OAAO,SAASyhB,GAAI;AACxC,aAAmB,OAAOA,KAAnB,YAAuCA,EAAG,SAAjB,aAAsCA,EAAG,SAAhB;AAAA,IAC1D,CAAA,GAAGlW,IAAI,GAAGA,IAAIvL,EAAE,UAAU;AACzB,UAAI,IAAIA,EAAEuL,GAAG;AACb,UAAkB,EAAE,SAAhB,aAAuC,EAAE,YAAjB,YAA0B;AACpD,YAAI+V,IAAI,CAAA;AACR,YAAIhB,EAAE,CAAC,uBAAuB,aAAa,CAAC,KAAa4B,EAAE,CAAC,EAAE,YAAb,KAAsB;AACrE,UAAA3W,KAAK;AACL,cAAI6P,IAAIgH,EAAE,QAAQ,MAAM;AACxB,cAAWhH,MAAP;AACF;AACF,iBAAO7P,IAAI6P,GAAG7P,KAAK;AACjB,gBAAIF,IAAI6W,EAAE,CAAC;AACX,YAAe7W,EAAE,SAAjB,eAA0BgX,EAAEhX,GAAG,gBAAgB,GAAGiW,EAAE,KAAKjW,EAAE,OAAO;AAAA,UACnE;AACD,UAAAE,IAAI6P,IAAI;AAAA,QACT;AACD,YAAIkF,EAAE,CAAC,eAAe,gBAAgB,CAAC,KAAa4B,EAAE,CAAC,EAAE,YAAb,QAAyB3W,KAAK8W,EAAEH,EAAE,CAAC,GAAG,mBAAmB,GAAG,IAAIZ,EAAE,SAAS;AACrH,cAAIpC,IAAIkD,EAAE,QAAQ,MAAM;AACxB,cAAWlD,MAAP;AACF,qBAASsC,IAAIjW,GAAGiW,IAAItC,GAAGsC,KAAK;AAC1B,kBAAI,IAAIxhB,EAAEwhB,CAAC;AACX,cAAe,EAAE,SAAjB,cAAyB,KAAKF,EAAE,QAAQ,EAAE,OAAO,KAAKe,EAAE,GAAG,gBAAgB;AAAA,YAC5E;AAAA,QACJ;AAAA,MACF;AAAA,IACF;AACH,WAASH,EAAET,GAAI;AACb,WAAOzhB,EAAEuL,IAAIkW,CAAE;AAAA,EAChB;AACD,WAASnB,EAAEmB,GAAIG,GAAI;AACjB,IAAAA,IAAKA,KAAM;AACX,aAASC,IAAK,GAAGA,IAAKJ,EAAG,QAAQI,KAAM;AACrC,UAAIC,IAAKI,EAAEL,IAAKD,CAAE;AAClB,UAAI,CAACE,KAAMA,EAAG,SAASL,EAAGI,CAAE;AAC1B;AAAA,IACH;AACD,WAAO;AAAA,EACR;AACD,WAASO,EAAEX,GAAIG,GAAI;AACjB,aAASC,IAAK,GAAGC,IAAKvW,GAAGuW,IAAK9hB,EAAE,QAAQ8hB,KAAM;AAC5C,UAAIC,IAAK/hB,EAAE8hB,CAAE,GAAGQ,IAAKP,EAAG;AACxB,UAAsBA,EAAG,SAArB,iBAAyC,OAAOO,KAAnB;AAC/B,YAAIb,EAAG,KAAKa,CAAE;AACZ,UAAAT;AAAA,iBACOD,EAAG,KAAKU,CAAE,KAAW,EAAET,MAAR;AACtB,iBAAOC;AAAA;AAAA,IAEZ;AACD,WAAO;AAAA,EACR;AACD,WAASO,EAAEZ,GAAIG,GAAI;AACjB,QAAIC,IAAKJ,EAAG;AACZ,IAAAI,IAAK,MAAM,QAAQA,CAAE,MAAMJ,EAAG,QAAQI,IAAK,CAACA,CAAE,KAAKJ,EAAG,QAAQI,IAAK,CAAE,GAAEA,EAAG,KAAKD,CAAE;AAAA,EAClF;AACH,CAAC,GAAGP,EAAM,UAAU,MAAM,EAAE,SAAS,EAAE,SAAS,iDAAiD,YAAY,GAAM,GAAE,UAAU,CAAC,EAAE,SAAS,uCAAuC,QAAQ,GAAM,GAAE,UAAU,GAAG,QAAQ,EAAE,SAAS,mDAAmD,QAAQ,IAAM,YAAY,GAAI,GAAI,YAAY,EAAE,SAAS,uCAAuC,QAAQ,IAAM,YAAY,IAAM,QAAQ,EAAE,aAAa,QAAO,EAAI,GAAE,UAAU,6FAA6F,SAAS,w9EAAw9E,SAAS,4BAA4B,QAAQ,6CAA6C,UAAU,gIAAgI,aAAa,cAAe,GAAE,SAAShG,GAAG;AAC7wG,MAAI8D,IAAI9D,EAAE,UAAU,WAAW,iBAAiB,GAAGiG,IAAInC,EAAE,QAAQ,QAAQjC,IAAIiC,EAAE,OAAO,eAAe7T,IAAI4R,EAAE,OAAO,2BAA2B,GAAGgC,IAAIhC,EAAE,QAAQ;AAC9J,WAASqE,EAAEE,GAAIG,GAAI;AACjB,QAAIvG,EAAE,UAAUoG,CAAE;AAChB,aAAO,EAAE,SAAS,OAAO,SAASG,IAAK,WAAWN,CAAC,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,wBAAwB,EAAE,SAAS,SAAS,OAAO,SAAQ,GAAI,iBAAiB,EAAE,SAAS,WAAW,OAAOG,EAAE,EAAI,EAAA;AAAA,EACtN;AACD,WAASc,EAAEd,GAAIG,GAAIC,GAAI;AACrB,WAAAJ,IAAK,EAAE,MAAMA,GAAI,SAASG,GAAI,UAAUC,KACjCxG,EAAE,MAAM,IAAI,mBAAmBoG,CAAE,GAAGA,EAAG,SAASpG,EAAE,SAASoG,EAAG,MAAMA,EAAG,OAAO,GAAGpG,EAAE,MAAM,IAAI,kBAAkBoG,CAAE,GAAGA,EAAG;AAAA,EAC/H;AACD,WAASD,EAAEM,GAAIL,GAAIpW,GAAG;AACpB,QAAIuW,IAAKvG,EAAE,SAASyG,GAAI,EAAE,eAAe,EAAE,SAAS,OAAO5C,CAAC,GAAG,YAAY,GAAM,EAAA,CAAE,GAAGoB,IAAI,GAAG8B,IAAI,CAAA,GAAIR,IAAKW,EAAEX,EAAG,IAAI,SAASF,GAAI;AAC9H,UAAgB,OAAOA,KAAnB;AACF,eAAOA;AACT,eAASM,GAAIH,GAAIH,IAAKA,EAAG,SAAgBI,EAAG,SAASD,IAAKvB,KAAK0B,IAAK,QAAQ3W,EAAE,gBAAgB,MAAMwW,IAAK,MAAO,MAA9E;AAChC;AACF,aAAOO,EAAEJ,CAAE,IAAIN,GAAIM;AAAA,IACpB,CAAA,EAAE,KAAK,EAAE,GAAGP,GAAIpW,CAAC,GAAGgX,IAAI,OAAO,KAAKD,CAAC;AACtC,WAAO9B,IAAI,GAAG,SAASoB,EAAGM,GAAI;AAC5B,eAASH,IAAK,GAAGA,IAAKG,EAAG,QAAQH,KAAM;AACrC,YAAIvB,KAAK+B,EAAE;AACT;AACF,YAAIG,GAAIT,GAAIO,GAAItiB,GAAGuL,GAAGkX,GAAIC,GAAIR,IAAIF,EAAGH,CAAE;AACvC,QAAY,OAAOK,KAAnB,YAAoC,OAAOA,EAAE,WAArB,YAAgCM,IAAKH,EAAE/B,CAAC,IAAWoC,KAAMD,IAAiB,OAAOP,KAAnB,WAAuBA,IAAIA,EAAE,SAAS,QAAQM,CAAE,OAAnE,OAA0E,EAAElC,GAAGyB,IAAKU,EAAG,UAAU,GAAGC,CAAE,GAAGnX,IAAI6W,EAAEI,CAAE,GAAGF,IAAK,SAAStiB,IAAI,CAAA,GAAI,2BAA2B,IAAIsL,IAAUtL,IAAIqb,EAAE,SAAS9P,GAAGvL,CAAC,GAAG,WAA7B,OAAyCsiB,IAAK,CAAC,GAAG,CAAC,GAAG,KAAK,MAAMA,GAAIC,EAAEviB,EAAE,CAAC,GAAGqb,EAAE,UAAU,YAAY,YAAY,CAAC,GAAGrb,EAAE,OAAO,MAAMA,GAAGsiB,CAAE,IAAIA,IAAK,IAAIjH,EAAE,MAAM,iBAAiBrb,GAAGkd,EAAE,OAAO3R,CAAC,GAAGvL,IAAIyiB,EAAG,UAAUC,IAAKF,EAAG,MAAM,GAAGjX,IAAI,CAAA,GAAIwW,KAAMxW,EAAE,KAAKwW,CAAE,GAAGxW,EAAE,KAAK+W,CAAE,GAAGtiB,MAAM0hB,EAAGe,IAAK,CAACziB,CAAC,CAAC,GAAGuL,EAAE,KAAK,MAAMA,GAAGkX,CAAE,IAAgB,OAAOP,KAAnB,YAAwBF,EAAG,OAAO,MAAMA,GAAI,CAACH,GAAI,CAAC,EAAE,OAAOtW,CAAC,CAAC,GAAGsW,KAAMtW,EAAE,SAAS,KAAK2W,EAAE,UAAU3W,OAAOmX,IAAKR,EAAE,SAAS,MAAM,QAAQQ,CAAE,IAAIhB,EAAGgB,CAAE,IAAIhB,EAAG,CAACgB,CAAE,CAAC;AAAA,MAC9rB;AAAA,IACP,EAAMd,CAAE,GAAG,IAAIvG,EAAE,MAAMhQ,GAAGuW,GAAI,cAAcvW,GAAGyW,CAAE;AAAA,EAC9C;AACD,EAAAzG,EAAE,UAAU,WAAW,iBAAiB,IAAI,CAACkG,EAAE,OAAO,0HAA0H,MAAM,GAAGA,EAAE,QAAQ,yCAAyC,MAAM,GAAGA,EAAE,OAAO,QAAQ,MAAM,GAAGA,EAAE,YAAY,oBAAoB,MAAM,GAAGA,EAAE,WAAW,6CAA6C,MAAM,GAAGA,EAAE,OAAO,QAAQ,MAAM,GAAGpC,CAAC,EAAE,OAAO,OAAO;AACxa,MAAI/D,IAAI,EAAE,YAAY,IAAM,IAAI,IAAM,YAAY,IAAM,IAAI,IAAM,KAAK,IAAM,KAAK,GAAI;AACtF,WAAS+G,EAAEV,GAAI;AACb,WAAmB,OAAOA,KAAnB,WAAwBA,IAAK,MAAM,QAAQA,CAAE,IAAIA,EAAG,IAAIU,CAAC,EAAE,KAAK,EAAE,IAAIA,EAAEV,EAAG,OAAO;AAAA,EAC1F;AACD,EAAApG,EAAE,MAAM,IAAI,kBAAkB,SAASoG,GAAI;AACzC,IAAAA,EAAG,YAAYrG,KAAM,SAASsG,EAAGE,GAAI;AACnC,eAASC,IAAK,GAAGC,IAAKF,EAAG,QAAQC,IAAKC,GAAID,KAAM;AAC9C,YAAIxW,GAAGiX,GAAItiB,GAAGuL,IAAIqW,EAAGC,CAAE;AACvB,QAAY,OAAOtW,KAAnB,aAAyBF,IAAIE,EAAE,SAAS,MAAM,QAAQF,CAAC,IAA0BE,EAAE,SAAxB,qBAAgCA,IAAIF,EAAE,CAAC,GAASA,EAAE,WAAR,KAA8B,OAAOE,KAAnB,YAA4CA,EAAE,SAAtB,oBAA+B+W,IAAKH,EAAE5W,CAAC,GAAGA,IAAIA,EAAE,OAAOA,IAAI,MAAM,QAAQA,CAAC,IAAIA,EAAE,CAAC,IAAIA,GAAGvL,IAAIqb,EAAE,UAAU9P,CAAC,OAAOF,EAAE,CAAC,IAAImW,EAAEc,GAAItiB,GAAGuL,CAAC,MAAMmW,EAAGrW,CAAC,IAAgB,OAAOA,KAAnB,YAAwBqW,EAAG,CAACrW,CAAC,CAAC;AAAA,MAC7T;AAAA,IACP,EAAMoW,EAAG,MAAM;AAAA,EACf,CAAG;AACH,EAAEJ,CAAK,GAAG,SAAS,GAAG;AACpB,IAAE,UAAU,aAAa,EAAE,UAAU,OAAO,cAAc,EAAE,cAAc,EAAE,SAAS,gLAAgL,YAAY,IAAM,QAAQ,IAAM,QAAQ,KAAM,GAAE,SAAS,wFAAyF,CAAA,GAAG,EAAE,UAAU,WAAW,QAAQ,KAAK,sDAAsD,4FAA4F,4BAA4B,GAAG,OAAO,EAAE,UAAU,WAAW,WAAW,OAAO,EAAE,UAAU,WAAW,kBAAkB;AACxsB,MAAIE,IAAI,EAAE,UAAU,OAAO,cAAc,CAAA,CAAE;AAC3C,SAAOA,EAAE,YAAY,GAAG,EAAE,UAAU,WAAW,YAAY,EAAE,SAASA,GAAG,EAAE,UAAU,aAAa,cAAc,YAAY,EAAE,WAAW,EAAE,SAAS,sBAAsB,QAAQ,EAAE,IAAI,EAAE,SAAS,MAAM,OAAO,WAAU,GAAI,UAAU,WAAU,EAAI,GAAE,oBAAoB,EAAE,SAAS,0GAA0G,QAAQ,IAAM,QAAQ,EAAE,UAAU,6DAA6D,SAAS,EAAE,SAAS,YAAY,OAAO,cAAc,QAAQA,EAAC,EAAI,EAAA,EAAI,CAAA,GAAG,EAAE,UAAU,KAAK,EAAE,UAAU;AACxkB,EAAEF,CAAK,GAAG,SAAS,GAAG;AACpB,MAAIE,IAAI,EAAE,UAAU,YAAYD,IAAI,2CAA2C,QAAQlG,IAAI,6CAA6CkG,IAAI;AAC5I,IAAE,UAAU,QAAQ,EAAE,UAAU,OAAO,eAAe,EAAE,WAAW,EAAE,SAAS,OAAOlG,IAAI,uCAAuC,MAAM,GAAG,YAAY,IAAM,QAAQ,EAAE,aAAa,OAAQ,EAAA,CAAE,GAAG,EAAE,UAAU,aAAa,SAAS,WAAW,EAAE,sBAAsB,EAAE,SAAS,OAAOA,IAAI,wDAAwD,MAAM,GAAG,YAAY,IAAM,QAAQ,EAAE,WAAW,EAAE,SAAS,4BAA4B,YAAY,IAAM,QAAQ,EAAE,aAAa,KAAM,EAAA,GAAI,MAAM,EAAE,SAAS,qBAAqB,YAAY,IAAM,QAAQmG,GAAG,OAAO,sBAAqB,GAAI,aAAa,WAAY,GAAE,cAAc,CAAC,EAAE,SAAS,OAAO,mHAAmH,OAAO,QAAQ,WAAW,WAAW;AACjxB,WAAOD;AAAA,EACX,CAAG,CAAC,GAAG,YAAY,IAAM,QAAQ,EAAE,aAAa,KAAI,EAAI,GAAE,EAAE,SAAS,OAAO,kBAAkBA,CAAC,GAAG,YAAY,IAAM,QAAQ,EAAE,QAAQC,EAAE,QAAQ,QAAQA,EAAE,QAAQ,SAASA,EAAE,SAAS,SAAS,EAAE,UAAU,WAAW,SAAS,UAAU,qBAAqB,aAAa,kBAAiB,EAAI,CAAA,GAAG,SAAS,EAAE,SAAS,0EAA0E,YAAY,IAAM,QAAQ,EAAE,MAAM,EAAE,SAAS,6BAA6B,YAAY,IAAM,QAAQA,GAAG,OAAO,sBAAqB,EAAI,EAAA,EAAI,CAAA,GAAG,EAAE,UAAU,YAAY,WAAW,cAAc,EAAE,UAAU,KAAK;AACjlB,EAAEF,CAAK,GAAG,SAAS,GAAG;AACpB,IAAE,UAAU,OAAO,EAAE,UAAU,OAAO,cAAc,EAAE,GAAG,EAAE,UAAU,aAAa,QAAQ,WAAW,EAAE,MAAM,CAAC,EAAE,SAAS,iFAAiF,OAAO,aAAc,CAAA,EAAG,CAAA,GAAG,EAAE,UAAU,KAAK,mBAAmB,EAAE,UAAU,wKAAwK,OAAO,EAAE,UAAU,KAAK,WAAW,EAAE,UAAU,aAAa,QAAQ,YAAY,EAAE,oBAAoB,EAAE,SAAS,aAAa,OAAO,gBAAiB,CAAA,GAAG,MAAM,QAAQ,EAAE,UAAU,KAAK,OAAO,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,EAAE,UAAU,KAAK,OAAO,IAAI,EAAE,UAAU,KAAK,QAAQ,QAAQ,EAAE,SAAS,mDAAmD,YAAY,GAAI,GAAI,EAAE,SAAS,yGAAyG,YAAY,GAAI,CAAE;AACr7B,EAAEA,CAAK,GAAGA,EAAM,UAAU,OAAOA,EAAM,UAAU,OAAO,cAAc,EAAE,SAAS,kXAAiX,CAAE,GAAGA,EAAM,UAAU,aAAa,QAAQ,YAAY,EAAE,YAAY,EAAE,SAAS,SAAS,OAAO,aAAc,CAAA,GAAGA,EAAM,UAAU,QAAQA,EAAM,UAAU,MAAM,SAAS,GAAG;AAC1mB,WAASE,EAAEE,GAAIG,GAAI;AACjB,WAAO,OAAOH,EAAG,QAAQ,SAAS,WAAW;AAC3C,aAAO,yDAAyD;AAAA,IACtE,CAAK,GAAGG,CAAE;AAAA,EACP;AACD,IAAE,UAAU,aAAa,cAAc,qBAAqB,EAAE,mBAAmB,EAAE,SAAS,OAAO,cAAc,EAAE,UAAU,WAAW,mBAAmB,EAAE,QAAQ,MAAM,GAAG,YAAY,IAAM,OAAO,CAAC,qBAAqB,UAAU,YAAY,iBAAiB,EAAG,EAAA,CAAE,GAAG,EAAE,UAAU,aAAa,cAAc,YAAY,EAAE,QAAQ,EAAE,SAAS,OAAO,cAAc,EAAE,UAAU,WAAW,SAAS,MAAM,GAAG,YAAY,IAAM,OAAO,CAAC,YAAY,iBAAiB,EAAC,GAAI,GAAG,EAAE,UAAU,aAAa,cAAc,YAAY,EAAE,oBAAoB,CAAC,EAAE,SAAS,0OAA0O,OAAO,gBAAgB,EAAE,SAAS,yBAAyB,OAAO,aAAc,CAAA,EAAG,CAAA,GAAG,EAAE,UAAU,aAAa,cAAc,WAAW,EAAE,SAAS,EAAE,SAASL,EAAE,4GAA4G,MAAM,GAAG,YAAY,IAAM,QAAQ,EAAE,UAAU,WAAY,GAAE,SAAS,EAAE,SAASA,EAAE,mEAAmE,MAAM,GAAG,YAAY,IAAM,QAAQ,EAAE,UAAU,WAAY,EAAA,CAAE,GAAG,EAAE,UAAU,WAAW,QAAQ,QAAQ,EAAE,SAAS,yCAAyC,OAAO,YAAY,EAAE,SAAS,iGAAiG,OAAO,eAAc,GAAI,EAAE,SAAS,YAAY,OAAO,CAAC,QAAQ,KAAK,EAAC,GAAI,EAAE,SAAS,iBAAiB,OAAO,MAAO,CAAA,GAAG,EAAE,UAAU,aAAa,cAAc,YAAY,EAAE,QAAQ,EAAE,SAAS,SAAS,OAAO,WAAU,GAAI,OAAO,EAAE,SAAS,MAAM,OAAO,aAAc,CAAA,GAAG,EAAE,UAAU,aAAa,cAAc,eAAe,EAAE,mBAAmB,EAAE,SAASA,EAAE,gBAAgB,MAAM,GAAG,YAAY,GAAI,GAAI,oBAAoB,EAAE,SAAS,+CAA+C,YAAY,MAAQ,KAAK,EAAE,SAAS,mFAAmF,OAAO,WAAY,GAAE,SAAS,EAAE,SAAS,sBAAsB,OAAO,aAAc,EAAA,CAAE;AACznE,WAASD,IAAI,CAAC,YAAY,qBAAqB,UAAU,mBAAmB,iBAAiB,GAAGlG,IAAI,GAAGA,IAAIkG,EAAE,QAAQlG,KAAK;AACxH,QAAI/P,IAAIiW,EAAElG,CAAC,GAAG8D,IAAI,EAAE,UAAU,WAAW7T,CAAC,GAAGA,KAAK6T,IAAiB,EAAE,KAAK,KAAKA,CAAC,MAA1B,WAA8B,EAAE,UAAU,WAAW7T,CAAC,IAAI,EAAE,SAAS6T,EAAC,IAAKA,GAAG,UAAU,CAAA;AAC9I,KAACA,EAAE,SAAS7T,GAAG,kBAAkB,IAAI;AAAA,EACtC;AACH,EAAEgW,CAAK,GAAG,SAASnC,GAAG;AACpB,MAAIC,IAAID,EAAE,KAAK,MAAMA,EAAE,UAAU,UAAU,GAAGoC,IAAI,+CAA+C,QAAQlG,IAAI,+CAA+C,QAAQ/P,IAAI,uCAAuC;AAC/M,WAASkW,EAAEE,GAAIG,GAAI;AACjB,WAAOH,IAAKA,EAAG,QAAQ,QAAQ,WAAW;AACxC,aAAOH;AAAA,IACb,CAAK,EAAE,QAAQ,aAAa,WAAW;AACjC,aAAOlG;AAAA,IACb,CAAK,EAAE,QAAQ,aAAa,WAAW;AACjC,aAAO/P;AAAA,IACR,CAAA,GAAG,OAAOoW,GAAIG,CAAE;AAAA,EAClB;AACD,EAAAvW,IAAIkW,EAAElW,CAAC,EAAE,QAAQ6T,EAAE,UAAU,MAAMA,EAAE,UAAU,OAAO,UAAUC,CAAC,GAAGD,EAAE,UAAU,IAAI,IAAI,UAAUqC,EAAE,wIAAwI,MAAM,GAAGrC,EAAE,UAAU,IAAI,IAAI,OAAO,IAAI,UAAU,kBAAkBA,EAAE,UAAU,IAAI,IAAI,OAAO,YAAY,EAAE,UAAU,sEAAsEA,EAAE,UAAU,IAAI,IAAI,OAAO,IAAI,OAAO,YAAY,IAAI,6BAA6BA,EAAE,UAAU,IAAI,IAAI,OAAO,UAAUC,EAAE,SAASD,EAAE,UAAU,aAAa,UAAU,aAAa,EAAE,QAAQ,EAAE,SAASqC,EAAE,WAAW,MAAM,GAAG,QAAQrC,EAAE,UAAU,IAAK,EAAA,GAAIA,EAAE,UAAU,IAAI,GAAG,GAAGA,EAAE,UAAU,aAAa,UAAU,gBAAgB,EAAE,QAAQ,EAAE,SAASqC,EAAE,YAAY,MAAM,GAAG,OAAO,uBAAuB,QAAQ,EAAE,sBAAsB,EAAE,SAAS,YAAY,OAAO,cAAe,GAAE,MAAMrC,EAAE,UAAU,MAAO,EAAA,GAAIA,EAAE,UAAU,IAAI,GAAG;AACt7B,WAASlf,EAAEyhB,GAAI;AACb,aAASG,IAAK,CAAE,GAAEC,IAAK,GAAGA,IAAKJ,EAAG,QAAQI,KAAM;AAC9C,UAAIC,IAAKL,EAAGI,CAAE,GAAGE,IAAK;AACtB,MAAY,OAAOD,KAAnB,aAAoCA,EAAG,SAAb,SAAqBA,EAAG,QAAQ,CAAC,KAAeA,EAAG,QAAQ,CAAC,EAAE,SAAxB,QAAwCA,EAAG,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAlC,OAA4C,IAAIF,EAAG,UAAUA,EAAGA,EAAG,SAAS,CAAC,EAAE,YAAYrW,EAAEuW,EAAG,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAKF,EAAG,IAAK,IAAYE,EAAG,QAAQA,EAAG,QAAQ,SAAS,CAAC,EAAE,YAA3C,QAAsDF,EAAG,KAAK,EAAE,SAASrW,EAAEuW,EAAG,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,cAAc,EAAC,CAAE,IAAI,IAAIF,EAAG,UAA4BE,EAAG,SAArB,iBAAqCA,EAAG,YAAX,MAAqBF,EAAGA,EAAG,SAAS,CAAC,EAAE,iBAAiB,IAAIA,EAAG,UAAU,IAAIA,EAAGA,EAAG,SAAS,CAAC,EAAE,gBAAkCE,EAAG,SAArB,iBAAqCA,EAAG,YAAX,MAAqBF,EAAGA,EAAG,SAAS,CAAC,EAAE,iBAAiBG,IAAK,MAAQA,KAAkB,OAAOD,KAAnB,aAA0B,IAAIF,EAAG,UAAgBA,EAAGA,EAAG,SAAS,CAAC,EAAE,iBAAxB,MAAyCG,IAAKxW,EAAEuW,CAAE,GAAGD,IAAKJ,EAAG,SAAS,MAAkB,OAAOA,EAAGI,IAAK,CAAC,KAA5B,YAAkDJ,EAAGI,IAAK,CAAC,EAAE,SAA5B,kBAAsCE,KAAMxW,EAAEkW,EAAGI,IAAK,CAAC,CAAC,GAAGJ,EAAG,OAAOI,IAAK,GAAG,CAAC,IAAI,IAAIA,MAAmB,OAAOJ,EAAGI,IAAK,CAAC,KAA5B,YAAkDJ,EAAGI,IAAK,CAAC,EAAE,SAA5B,kBAAsCE,IAAKxW,EAAEkW,EAAGI,IAAK,CAAC,CAAC,IAAIE,GAAIN,EAAG,OAAOI,IAAK,GAAG,CAAC,GAAGA,MAAOJ,EAAGI,CAAE,IAAI,IAAI3C,EAAE,MAAM,cAAc6C,GAAI,MAAMA,CAAE,IAAID,EAAG,WAAuB,OAAOA,EAAG,WAAtB,YAAiC9hB,EAAE8hB,EAAG,OAAO;AAAA,IACrkC;AAAA,EACF;AACD,MAAIvW,IAAI,SAASkW,GAAI;AACnB,WAAOA,IAAiB,OAAOA,KAAnB,WAAwBA,IAAiB,OAAOA,EAAG,WAAtB,WAAgCA,EAAG,UAAUA,EAAG,QAAQ,IAAIlW,CAAC,EAAE,KAAK,EAAE,IAAI;AAAA,EACvH;AACE,EAAA2T,EAAE,MAAM,IAAI,kBAAkB,SAASuC,GAAI;AACzC,IAAUA,EAAG,aAAb,SAAmCA,EAAG,aAAb,SAAyBzhB,EAAEyhB,EAAG,MAAM;AAAA,EACjE,CAAG;AACH,EAAEJ,CAAK,GAAG,SAAS,GAAG;AACpB,MAAIE,IAAI,EAAE,KAAK,MAAM,EAAE,UAAU,UAAU,GAAGA,KAAK,EAAE,UAAU,MAAM,EAAE,UAAU,OAAO,OAAOA,CAAC,GAAG,OAAO,EAAE,UAAU,IAAI,WAAW,OAAO,EAAE,UAAU,IAAI,kBAAkB,GAAG,EAAE,UAAU,IAAI;AACjM,EAAAA,EAAE,UAAU,OAAO,qBAAqB,SAAS,QAAQA,EAAE,QAAQ,SAAS,KAAKA,EAAE,QAAQ,KAAK,GAAGA,EAAE,aAAa;AACpH,EAAEF,CAAK,GAAGA,EAAM,UAAU,QAAQ,EAAE,SAAS,EAAE,SAAS,wFAAwF,YAAY,IAAM,QAAQ,MAAQ,kBAAkB,CAAC,EAAE,SAAS,OAAO,YAAY,SAAS,QAAQ,8DAA8D,SAAS,MAAM,iEAAiE,SAAS,MAAM,WAAW,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,eAAe,EAAE,SAAS,qCAAqC,YAAY,IAAM,QAAQ,KAAM,GAAE,6BAA6B,EAAE,SAAS,aAAa,OAAO,cAAe,GAAE,aAAa,gBAAgB,QAAQ,UAAW,EAAA,GAAI,EAAE,SAAS,OAAO,gBAAgB,SAAS,QAAQ,gEAAgE,SAAS,MAAM,2DAA2D,SAAS,MAAM,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,eAAe,EAAE,SAAS,uCAAuC,YAAY,IAAM,QAAQ,KAAI,GAAI,6BAA6B,EAAE,SAAS,eAAe,OAAO,cAAa,GAAI,QAAQ,UAAW,EAAA,CAAE,GAAG,WAAW,EAAE,SAAS,OAAO,IAAI,SAAS,QAAQ,kBAAkB,SAAS,aAAa,8GAA8G,SAAS,QAAQ,mBAAmB,SAAS,GAAG,GAAG,OAAO,YAAY,QAAQ,EAAE,kBAAkB,SAAS,SAAS,sBAAsB,QAAQ,qBAAqB,UAAU,oBAAoB,aAAa,UAAW,GAAE,SAAS,EAAE,SAAS,4FAA4F,OAAO,WAAY,GAAE,mBAAmB,EAAE,SAAS,UAAU,OAAO,WAAY,GAAE,WAAW,EAAE,SAAS,QAAQ,OAAO,SAAU,GAAE,uBAAuB,EAAE,SAAS,kBAAkB,YAAY,IAAM,OAAO,WAAU,GAAI,OAAO,EAAE,SAAS,4EAA4E,YAAY,IAAM,OAAO,eAAe,SAAS,wnBAAwnB,SAAS,sBAAsB,KAAK,EAAE,SAAS,WAAW,OAAO,WAAU,GAAI,kBAAkB,WAAW,MAAM,EAAE,SAAS,SAAS,OAAO,aAAa,QAAQ,mFAAmF,cAAc,mCAAmC,UAAU,yBAAyB,UAAU,uCAAuC,UAAU,2CAA2C,aAAa,kBAAmB,GAAEA,EAAM,UAAU,MAAM,gBAAgB,EAAE,QAAQ,SAAS,GAAG;AAC3nG,IAAE,OAAO,cAAc,SAASA,EAAM,UAAU;AAClD,CAAC,GAAG,SAAS,GAAG;AACd,IAAE,UAAU,SAAS,EAAE,UAAU,OAAO,SAAS,EAAE,SAAS,EAAE,SAAS,4bAA4b,YAAY,GAAM,GAAE,UAAU,CAAC,EAAE,SAAS,kCAAkC,QAAQ,GAAI,GAAI,EAAE,SAAS,oCAAoC,YAAY,IAAM,QAAQ,GAAI,CAAE,GAAG,QAAQ,mIAAmI,UAAU,uGAAsG,CAAE,GAAG,OAAO,EAAE,UAAU,OAAO,YAAY;AACv9B,MAAIE,IAAI,EAAE,6BAA6B,EAAE,SAAS,cAAc,OAAO,cAAe,GAAE,YAAY,EAAE,SAAS,WAAW,QAAQ,EAAE,UAAU,OAAM;AACpJ,IAAE,UAAU,aAAa,UAAU,UAAU,EAAE,kBAAkB,CAAC,EAAE,SAAS,4CAA4C,OAAO,aAAa,QAAQ,EAAE,eAAe,EAAE,SAAS,+BAA+B,QAAQA,KAAK,QAAQ,UAAS,EAAI,GAAE,EAAE,SAAS,kDAAkD,OAAO,cAAc,QAAQ,EAAE,eAAe,EAAE,SAAS,sDAAsD,YAAY,IAAM,QAAQA,EAAG,GAAE,QAAQ,YAAa,CAAA,GAAG,MAAM,EAAE,SAAS,8CAA8C,QAAQ,KAAQ,CAAA,GAAG,OAAO,EAAE,UAAU,OAAO,QAAQ,EAAE,UAAU,aAAa,UAAU,WAAW,EAAE,YAAY,EAAE,SAAS,uCAAuC,OAAO,YAAa,CAAA,GAAG,EAAE,UAAU,aAAa,UAAU,YAAY,EAAE,OAAO,EAAE,SAAS,iBAAiB,OAAO,WAAY,CAAA,GAAG,EAAE,UAAU,KAAK,EAAE,UAAU,QAAQ,EAAE,UAAU,MAAM,EAAE,UAAU;AAC/3B,EAAEF,CAAK,GAAGA,EAAM,UAAU,IAAIA,EAAM,UAAU,OAAO,SAAS,EAAE,SAAS,EAAE,SAAS,uEAAuE,QAAQ,GAAI,GAAI,QAAQ,EAAE,SAAS,uCAAuC,QAAQ,GAAI,GAAI,cAAc,EAAE,SAAS,oFAAoF,YAAY,GAAI,GAAI,SAAS,qVAAqV,UAAU,yBAAyB,QAAQ,qHAAqH,UAAU,mDAAmD,GAAGA,EAAM,UAAU,aAAa,KAAK,UAAU,EAAE,MAAM,EAAE,SAAS,4CAA4C,QAAQ,GAAI,EAAI,CAAA,GAAGA,EAAM,UAAU,aAAa,KAAK,UAAU,EAAE,OAAO,EAAE,SAAS,6FAA6F,YAAY,IAAM,QAAQ,IAAM,OAAO,YAAY,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,4BAA4B,YAAY,GAAI,GAAIA,EAAM,UAAU,EAAE,MAAM,GAAG,MAAMA,EAAM,UAAU,EAAE,MAAM,SAASA,EAAM,UAAU,EAAE,SAAS,cAAc,CAAC,EAAE,SAAS,gCAAgC,YAAY,MAAQ,EAAE,SAAS,gCAAgC,YAAY,IAAM,OAAO,WAAY,CAAA,GAAG,WAAW,EAAE,SAAS,iBAAiB,YAAY,IAAM,OAAO,UAAW,GAAE,kBAAkB,MAAM,aAAa,mBAAmB,YAAY,EAAE,SAAS,aAAa,QAAQA,EAAM,UAAU,EAAC,IAAM,EAAA,CAAE,GAAGA,EAAM,UAAU,aAAa,KAAK,YAAY,EAAE,UAAU,6HAA4H,CAAE,GAAG,OAAOA,EAAM,UAAU,EAAE,SAASA,EAAM,UAAU,aAAaA,EAAM,UAAU,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,yCAAyC,QAAQ,GAAI,GAAI,SAAS,yYAAyY,UAAU,wDAAyD,CAAA,GAAG,OAAOA,EAAM,UAAU,WAAW,YAAY,GAAGA,EAAM,UAAU,OAAOA,EAAM,UAAU,YAAYA,EAAM,UAAU,SAASA,EAAM,UAAU,OAAO,SAAS,EAAE,QAAQ,EAAE,SAAS,uCAAuC,QAAQ,GAAM,GAAE,cAAc,cAAc,SAAS,6RAA6R,UAAU,sGAAqG,CAAE,GAAGA,EAAM,UAAU,aAAa,UAAU,cAAc,EAAE,MAAM,EAAE,SAAS,iEAAiE,QAAQ,GAAM,GAAE,aAAa,yBAAyB,OAAO,EAAE,SAAS,oBAAoB,OAAO,SAAQ,EAAI,CAAA,GAAG,OAAOA,EAAM,UAAU,OAAO,UAAU,SAAS,GAAG;AACniH,WAASE,IAAI,8CAA8C,QAAQD,IAAI,GAAGA,IAAI,GAAGA;AAC/E,IAAAC,IAAIA,EAAE,QAAQ,WAAW,WAAW;AAClC,aAAOA;AAAA,IACb,CAAK;AACH,EAAAA,IAAIA,EAAE,QAAQ,WAAW,WAAW;AAClC,WAAO,UAAU;AAAA,EACrB,CAAG,GAAG,EAAE,UAAU,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS,OAAO,YAAY,SAASA,CAAC,GAAG,YAAY,IAAM,QAAQ,MAAQ,EAAE,SAAS,oBAAoB,YAAY,IAAM,QAAQ,GAAM,CAAA,GAAG,QAAQ,EAAE,SAAS,yDAAyD,QAAQ,MAAQ,MAAM,EAAE,SAAS,4EAA4E,QAAQ,GAAM,GAAE,WAAW,EAAE,SAAS,+CAA+C,QAAQ,IAAM,OAAO,aAAa,QAAQ,EAAE,QAAQ,KAAM,EAAA,GAAI,kBAAkB,EAAE,SAAS,4DAA4D,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,uBAAuB,EAAE,SAAS,WAAW,OAAO,cAAe,GAAE,MAAM,KAAM,EAAA,GAAI,uBAAuB,EAAE,SAAS,QAAQ,OAAO,SAAU,GAAE,sBAAsB,EAAE,SAAS,kBAAkB,YAAY,IAAM,OAAO,cAAe,GAAE,UAAU,SAAS,uBAAuB,EAAE,SAAS,gBAAgB,YAAY,IAAM,OAAO,WAAU,GAAI,mBAAmB,EAAE,SAAS,8CAA8C,YAAY,IAAM,OAAO,aAAY,GAAI,sBAAsB,CAAC,EAAE,SAAS,sCAAsC,YAAY,IAAM,OAAO,YAAW,GAAI,EAAE,SAAS,yFAAyF,YAAY,IAAM,OAAO,aAAa,QAAQ,EAAE,aAAa,KAAI,EAAI,CAAA,GAAG,SAAS,CAAC,+RAA+R,8DAA8D,GAAG,UAAU,mCAAmC,OAAO,EAAE,SAAS,UAAU,OAAO,WAAY,GAAE,UAAU,uBAAuB,cAAc,gBAAgB,WAAW,EAAE,SAAS,8DAA8D,QAAQ,EAAE,aAAa,OAAQ,GAAE,QAAQ,8KAA8K,SAAS,sBAAsB,aAAa,oCAAoC,UAAU,sDAAqD,GAAI,EAAE,UAAU,KAAK,gBAAgB,EAAE,OAAO,OAAO,EAAE,UAAU,MAAM,EAAE,UAAU,KAAK,UAAU,OAAO,SAAS,EAAE,UAAU,KAAK;AACn7E,EAAEF,CAAK,GAAGA,EAAM,UAAU,KAAKA,EAAM,UAAU,OAAO,SAAS,EAAE,QAAQ,EAAE,SAAS,0CAA0C,YAAY,IAAM,QAAQ,GAAM,GAAE,SAAS,uKAAuK,SAAS,iCAAiC,QAAQ,CAAC,gCAAgC,iFAAiF,oEAAoE,GAAG,UAAU,yFAAyF,SAAS,2LAA0L,CAAE,GAAGA,EAAM,UAAU,aAAa,MAAM,UAAU,EAAE,MAAM,EAAE,SAAS,8BAA8B,QAAQ,GAAI,EAAI,CAAA,GAAG,OAAOA,EAAM,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG;AAC1gC,MAAIE,IAAI,qsBAAqsBD,IAAI,uCAAuC,OAAO,QAAQ,cAAc,WAAW;AAC9xB,WAAOC,EAAE;AAAA,EACb,CAAG;AACD,IAAE,UAAU,MAAM,EAAE,UAAU,OAAO,KAAK,EAAE,cAAc,CAAC,EAAE,SAAS,OAAO,gEAAgE,OAAO,QAAQ,cAAc,WAAW;AACnL,WAAOA,EAAE;AAAA,EACb,CAAG,CAAC,GAAG,YAAY,GAAM,GAAE,kCAAkC,qCAAqC,gEAAgE,GAAG,SAASA,GAAG,QAAQ,EAAE,SAAS,kJAAkJ,QAAQ,GAAI,GAAI,UAAU,0HAA0H,SAAS,qBAAoB,CAAE,GAAG,EAAE,UAAU,aAAa,OAAO,UAAU,EAAE,QAAQ,EAAE,SAAS,OAAO,2BAA2B,SAAS,QAAQ,mDAAmD,SAAS,MAAM,kDAAkD,OAAO,QAAQ,eAAe,WAAW;AACvxB,WAAOD;AAAA,EACR,CAAA,IAAI,GAAG,GAAG,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,QAAQ,gBAAgB,UAAU,KAAK,aAAa,KAAI,KAAM,cAAc,EAAE,SAAS,qCAAqC,OAAO,UAAU,QAAQ,GAAM,EAAA,CAAE,GAAG,EAAE,UAAU,aAAa,OAAO,WAAW,EAAE,oBAAoB,EAAE,SAAS,+DAA+D,QAAQ,EAAE,UAAU,QAAQ,SAAS,EAAE,SAAS,YAAY,OAAO,cAAc,QAAQ,EAAE,UAAU,MAAO,EAAA,GAAI,GAAG,EAAE,UAAU,aAAa,OAAO,YAAY,EAAE,gBAAgB,EAAE,SAAS,MAAM,OAAO,gBAAiB,CAAA,GAAG,EAAE,UAAU,aAAa,OAAO,cAAc,EAAE,eAAe,EAAE,SAAS,8EAA8E,YAAY,IAAM,QAAQ,IAAM,QAAQ,EAAE,UAAU,OAAO,OAAO,CAAE,CAAA,IAAK,CAAA,GAAG,EAAE,UAAU,aAAa,UAAU,gBAAgB,EAAE,cAAc,6BAA6B,EAAE,UAAU,IAAI,aAAa,CAAC;AACj6B,EAAED,CAAK,GAAGA,EAAM,UAAU,SAAS,EAAE,SAAS,EAAE,SAAS,gBAAgB,YAAY,IAAM,QAAQ,GAAM,GAAE,wBAAwB,EAAE,SAAS,uEAAuE,QAAQ,IAAM,QAAQ,EAAE,eAAe,EAAE,SAAS,uFAAuF,YAAY,IAAM,QAAQ,EAAE,eAAe,EAAE,SAAS,uBAAuB,YAAY,GAAI,GAAI,qBAAqB,EAAE,SAAS,mBAAmB,OAAO,cAAe,GAAE,MAAM,KAAI,EAAI,GAAE,QAAQ,UAAW,EAAA,GAAI,wBAAwB,EAAE,SAAS,wCAAwC,QAAQ,IAAM,OAAO,SAAU,GAAE,QAAQ,EAAE,SAAS,oDAAoD,QAAQ,GAAI,GAAI,UAAU,EAAE,SAAS,6CAA6C,YAAY,MAAQ,cAAc,EAAE,SAAS,oBAAoB,YAAY,GAAI,GAAI,WAAW,EAAE,SAAS,4BAA4B,YAAY,IAAM,OAAO,CAAC,cAAc,aAAa,GAAG,QAAQ,EAAE,aAAa,KAAI,EAAI,GAAE,SAAS,yNAAyN,SAAS,uhBAAuhB,SAAS,2BAA2B,QAAQ,oJAAoJ,UAAU,wDAAwD,aAAa,gBAAiB,GAAEA,EAAM,UAAU,OAAO,sBAAsB,EAAE,OAAO,cAAc,OAAO,OAAOA,EAAM,UAAU,QAAQA,EAAM,UAAU,KAAKA,EAAM,UAAU;AAGzsE,IAAIsB,KAAiB,CAAA;AACrB9G,GAAS8G,IAAgB;AAAA,EACvB,SAAS,MAAMC;AAAA,EACf,aAAa,MAAMC;AAAA,EACnB,cAAc,MAAMC;AAAA,EACpB,QAAQ,MAAMC;AAAA,EACd,cAAc,MAAMC;AAAA,EACpB,eAAe,MAAMC;AAAA,EACrB,UAAU,MAAMC;AAAA,EAChB,eAAe,MAAMC;AAAA,EACrB,aAAa,MAAMC;AAAA,EACnB,SAAS,MAAMC;AAAA,EACf,SAAS,MAAMC;AAAA,EACf,UAAU,MAAMC;AAAA,EAChB,WAAW,MAAMC;AAAA,EACjB,gBAAgB,MAAMC;AAAA,EACtB,aAAa,MAAMC;AAAA,EACnB,UAAU,MAAMC;AAAA,EAChB,QAAQ,MAAMC;AAAA,EACd,SAAS,MAAMC;AACjB,CAAC;AAGD,IAAI3W,KAAQ;AAAA,EACV,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,UAAU,YAAY,SAAS;AAAA,MACvC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,UAAU;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,eAAe,QAAQ;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,QAAQ,OAAO,UAAU;AAAA,MAC3C,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,UAAU;AAAA,MAC7B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACI0V,KAAkB1V,IAGlB4W,KAAS;AAAA,EACX,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,WAAW,SAAS,aAAa;AAAA,MAC9D,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,SAAS;AAAA,MACV;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,QAAQ;AAAA,MACnC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,UAAU;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,YAAY,WAAW;AAAA,MACzC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIjB,KAAsBiB,IAGtBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,WAAW,SAAS,aAAa;AAAA,MAC9D,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,SAAS;AAAA,MACV;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,QAAQ;AAAA,MACnC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,UAAU;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,YAAY,WAAW;AAAA,MACzC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIjB,KAAuBiB,IAGvBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,WAAW,OAAO;AAAA,MAC/C,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,SAAS;AAAA,MACV;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,YAAY;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,WAAW,aAAa,UAAU;AAAA,MACpD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,WAAW,KAAK;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,mBAAmB;AAAA,MAC3B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,SAAS;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIjB,KAAiBiB,IAGjBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,WAAW;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,KAAK;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ,YAAY,UAAU;AAAA,MACjD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA;AAAA;AAAA,MAGE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,SAAS;AAAA,MAC7B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,SAAS;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIf,KAAmBe,IAGnBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,WAAW;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,WAAW,QAAQ,YAAY,KAAK;AAAA,MACtD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA;AAAA;AAAA,MAGE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,YAAY,SAAS;AAAA,MACzC,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,YAAY,WAAW,WAAW;AAAA,MACtD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIf,KAAwBe,IAGxB1Q,IAAS;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,aAAa;AAAA,EACb,KAAK;AAAA,EACL,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AACZ,GACI2Q,KAAS;AAAA,EACX,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO3Q,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,QAAQ,WAAW,UAAU;AAAA,MACjD,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,UAAU,OAAO,UAAU;AAAA,MAC/C,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,YAAY;AAAA,MAC9B,OAAO;AAAA,QACL,OAAOA,EAAO;AAAA,MACf;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,SAAS;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACH,GACI4P,KAAsBe,IAGtBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,KAAK;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ,YAAY,YAAY,YAAY;AAAA,MAC/D,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,SAAS;AAAA,MAC7B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,OAAO,YAAY,SAAS;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,MACV;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,OAAO,UAAU;AAAA,MACzB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIf,KAAkBe,IAGlBC,KAAS;AAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,UAAU;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ,YAAY,UAAU;AAAA,MACjD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,cAAc,WAAW;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,OAAO,SAAS;AAAA,MACxB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIb,KAAoBa,IAGpBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,KAAK;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,SAAS;AAAA,MAC3B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ,YAAY,YAAY,YAAY;AAAA,MAC/D,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIb,KAAyBa,IAGzBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,EACb;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,iBAAiB,UAAU,WAAW,OAAO;AAAA,MAChE,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,UAAU;AAAA,MAC9B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,eAAe;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,eAAe,UAAU;AAAA,MAC5C,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,cAAc,oBAAoB,SAAS;AAAA,MACnD,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,QAAQ;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa,UAAU,WAAW,gBAAgB;AAAA,MAC1D,OAAO;AAAA,QACL,OAAO;AAAA,QACP,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,QAAQ,cAAc,SAAS,UAAU;AAAA,MAC3D,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,KAAK;AAAA,MACvB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIb,KAAsBa,IAGtBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,UAAU,WAAW,UAAU;AAAA,MACjD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,cAAc,YAAY,OAAO,WAAW;AAAA,MACpD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIb,KAAmBa,IAGnBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,WAAW,WAAW,2BAA2B;AAAA,MACpE,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,UAAU;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa,UAAU;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,cAAc,sBAAsB;AAAA,MACjE,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA;AAAA,MAEE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA;AAAA,MAEE,OAAO,CAAC,KAAK;AAAA,MACb,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA;AAAA,MAEE,OAAO,CAAC,aAAa;AAAA,MACrB,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIb,KAAiBa,IAGjBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,YAAY,UAAU;AAAA,MACxC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,MAAM;AAAA,MAC1B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,QAAQ;AAAA,MAC3B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,aAAa;AAAA,MAChC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,SAAS;AAAA,MAC7B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIb,KAAkBa,IAGlBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,WAAW,WAAW,2BAA2B;AAAA,MACpE,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,UAAU;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa,UAAU;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,cAAc,sBAAsB;AAAA,MACjE,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACI3B,KAAuB2B,IAGvBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,IACP,iBAAiB;AAAA,EAClB;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,WAAW,WAAW,2BAA2B;AAAA,MACpE,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU,UAAU;AAAA,MAC5B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa,UAAU;AAAA,MAC/B,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,cAAc,sBAAsB;AAAA,MACjE,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,eAAe,UAAU;AAAA,MACjC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa;AAAA,MACrB,WAAW,CAAC,QAAQ;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,MAAM;AAAA,MACd,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACI3B,KAAwB2B,IAGxBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,EACb;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,OAAO;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,eAAe,QAAQ;AAAA,MAC1C,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO,EAAE,OAAO,oBAAqB;AAAA,IACtC;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO,EAAE,OAAO,qBAAsB;AAAA,IACvC;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,OAAO,UAAU,WAAW,WAAW;AAAA,MAC3D,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,YAAY,UAAU;AAAA,MAC1C,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIvB,KAAkBuB,IAGlBC,KAAU;AAAA,EACZ,OAAO;AAAA,IACL,iBAAiB;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EACD,QAAQ;AAAA,IACN;AAAA,MACE,OAAO,CAAC,WAAW,UAAU,OAAO;AAAA,MACpC,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW,eAAe,QAAQ;AAAA,MAC1C,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,OAAO,UAAU,WAAW,WAAW;AAAA,MAC3D,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,YAAY,YAAY,UAAU;AAAA,MAC1C,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,KAAK;AAAA,MACb,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,SAAS;AAAA,MACjB,OAAO;AAAA,QACL,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,OAAO;AAAA,QACL,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,QAAQ;AAAA,MAChB,OAAO;AAAA,QACL,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,aAAa,MAAM;AAAA,MAC3B,OAAO;AAAA,QACL,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD;AAAA,MACE,OAAO,CAAC,WAAW;AAAA,MACnB,OAAO;AAAA,QACL,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH,GACIvB,KAAmBuB,IASnBC,KAAc,CAACC,GAAS7H,MAAa;AACvC,QAAM,EAAE,OAAA8H,EAAO,IAAGD,GACZE,IAAYF,EAAQ,OAAO,OAAO,CAACvL,GAAK0L,MAAe;AAC3D,UAAM,EAAE,WAAWC,GAAY,OAAA/e,EAAK,IAAK8e;AACzC,WAAIC,KAAc,CAACA,EAAW,SAASjI,CAAQ,KAG/CgI,EAAW,MAAM,QAAQ,CAACziB,MAAS;AACjC,YAAM2iB,IAAWlK,EAAeA,EAAe,CAAA,GAAI1B,EAAI/W,CAAI,CAAC,GAAG2D,CAAK;AACpE,MAAAoT,EAAI/W,CAAI,IAAI2iB;AAAA,IAClB,CAAK,GACM5L;AAAA,EACR,GAAE,CAAE,CAAA;AACL,SAAAyL,EAAU,OAAOD,GACjBC,EAAU,QAAQ3J,GAAcJ,EAAe,CAAE,GAAE8J,CAAK,GAAG,EAAE,iBAAiB,OAAM,CAAE,GAC/EC;AACT,GACII,KAAsBP,IAGtBQ,KAAqB,CAACpI,GAAU6H,MAAY;AAC9C,QAAM,CAACQ,GAAiBC,CAAkB,IAAIxN;AAAA,IAC5CqN,GAAoBN,GAAS7H,CAAQ;AAAA,EACzC,GACQuI,IAAgBnO,KAChBoO,IAAmBpO;AACzB,SAAAG,GAAU,MAAM;AACd,KAAIsN,MAAYU,EAAc,WAAWvI,MAAawI,EAAiB,aACrED,EAAc,UAAUV,GACxBW,EAAiB,UAAUxI,GAC3BsI,EAAmBH,GAAoBN,GAAS7H,CAAQ,CAAC;AAAA,EAE/D,GAAK,CAACA,GAAU6H,CAAO,CAAC,GACfQ;AACT,GAKII,KAAkB,CAACJ,MAAoB5N;AAAA,EACzC,CAAC/K,MAAO;AACN,QAAIgZ,IAAKhZ,GAAI,EAAE,WAAAzG,GAAW,OAAAC,GAAO,MAAAyf,EAAI,IAAKD,GAAI7hB,IAAOwX,GAAUqK,GAAI,CAAC,aAAa,SAAS,MAAM,CAAC;AACjG,UAAME,IAASxK,GAAcJ,EAAe,CAAE,GAAEnX,CAAI,GAAG;AAAA,MACrD,WAAWwH,GAAK,cAAcpF,CAAS;AAAA,IAC7C,CAAK;AACD,WAAI,OAAOof,KAAoB,YAAY,WAAWA,MACpDO,EAAO,QAAQP,EAAgB,QAC7B,OAAOnf,KAAU,aACnB0f,EAAO,QAAQ5K,EAAeA,EAAe,CAAA,GAAI4K,EAAO,SAAS,CAAA,CAAE,GAAG1f,CAAK,IACtE0f;AAAA,EACR;AAAA,EACD,CAACP,CAAe;AAClB,GAKIQ,KAAmB,CAACR,MAAoB;AAC1C,QAAMS,IAAgBC;AAAAA,IACpB,CAAC,EAAE,OAAAC,GAAO,OAAAC,QAAY;AACpB,UAAIZ,KAAmB,MAElB;AAAA;AAAA,cAAIW,EAAM,WAAW,KAAKA,EAAM,CAAC,MAAM;AAC1C,mBAAOC,KAAS,OAAO,EAAE,SAAS,eAAc,IAAK;AAChD,cAAID,EAAM,WAAW,KAAKC,KAAS;AACxC,mBAAOZ,EAAgBW,EAAM,CAAC,CAAC;AAAA;AAEjC,eAAO,OAAO;AAAA,UACZC,KAAS,OAAO,EAAE,SAAS,eAAgB,IAAG,CAAE;AAAA,UAChD,GAAGD,EAAM,IAAI,CAACzjB,MAAS8iB,EAAgB9iB,CAAI,CAAC;AAAA,QACpD;AAAA;AAAA,IACK;AAAA,IACD,CAAC8iB,CAAe;AAAA,EACpB;AACE,SAAOU;AAAAA,IACL,CAACrZ,MAAO;AACN,UAAIgZ,IAAKhZ,GAAI,EAAE,OAAAiR,GAAO,WAAA1X,GAAW,OAAAC,EAAK,IAAKwf,GAAI7hB,IAAOwX,GAAUqK,GAAI,CAAC,SAAS,aAAa,OAAO,CAAC;AACnG,YAAME,IAASxK,GAAcJ,EAAe,CAAE,GAAEnX,CAAI,GAAG;AAAA,QACrD,WAAWqiB,GAAM,SAAS,GAAGvI,EAAM,OAAO1X,CAAS;AAAA,QACnD,UAAU0X,EAAM;AAAA,QAChB,OAAOmI,EAAcnI,CAAK;AAAA,MAClC,CAAO;AACD,aAAIzX,KAAS,SACX0f,EAAO,QAAQ5K,EAAeA,EAAe,CAAA,GAAI4K,EAAO,SAAS,CAAA,CAAE,GAAG1f,CAAK,IAEtE0f;AAAA,IACR;AAAA,IACD,CAACE,CAAa;AAAA,EAClB;AACA,GAGIK,KAAY,cACZC,KAAsB,CAACT,MAAS;AAClC,EAAIA,EAAK,WAAW,IAClBA,EAAK,KAAK;AAAA,IACR,OAAO,CAAC,OAAO;AAAA,IACf,SAAS;AAAA;AAAA,IACT,OAAO;AAAA,EACb,CAAK,IACQA,EAAK,WAAW,KAAKA,EAAK,CAAC,EAAE,YAAY,OAClDA,EAAK,CAAC,EAAE,UAAU;AAAA,GAClBA,EAAK,CAAC,EAAE,QAAQ;AAEpB,GACIU,KAAc,CAACL,GAAOM,MAAQ;AAChC,QAAMC,IAAYP,EAAM;AACxB,SAAIO,IAAY,KAAKP,EAAMO,IAAY,CAAC,MAAMD,IACrCN,IAEFA,EAAM,OAAOM,CAAG;AACzB,GACIE,KAAkB,CAAC9J,MAAW;AAChC,QAAM+J,IAAe,CAAC,CAAA,CAAE,GAClBC,IAAgB,CAAChK,CAAM,GACvBiK,IAAqB,CAAC,CAAC,GACvBC,IAAoB,CAAClK,EAAO,MAAM;AACxC,MAAI7c,IAAI,GACJgnB,IAAa,GACbC,IAAc,CAAA;AAClB,QAAMxN,IAAM,CAACwN,CAAW;AACxB,SAAOD,IAAa,MAAI;AACtB,YAAQhnB,IAAI8mB,EAAmBE,CAAU,OAAOD,EAAkBC,CAAU,KAAG;AAC7E,UAAIlI,GACAqH,IAAQS,EAAaI,CAAU;AAEnC,YAAMlJ,IADW+I,EAAcG,CAAU,EAClBhnB,CAAC;AAWxB,UAVI,OAAO8d,KAAU,YACnBqI,IAAQa,IAAa,IAAIb,IAAQ,CAAC,OAAO,GACzCrH,IAAUhB,MAEVqI,IAAQK,GAAYL,GAAOrI,EAAM,IAAI,GACjCA,EAAM,UACRqI,IAAQK,GAAYL,GAAOrI,EAAM,KAAK,IAExCgB,IAAUhB,EAAM,UAEd,OAAOgB,KAAY,UAAU;AAC/B,QAAAkI,KACAJ,EAAa,KAAKT,CAAK,GACvBU,EAAc,KAAK/H,CAAO,GAC1BgI,EAAmB,KAAK,CAAC,GACzBC,EAAkB,KAAKjI,EAAQ,MAAM;AACrC;AAAA,MACD;AACD,YAAMoI,IAAkBpI,EAAQ,MAAMwH,EAAS,GACzCa,IAAeD,EAAgB;AACrC,MAAAD,EAAY,KAAK;AAAA,QACf,OAAAd;AAAA,QACA,SAASe,EAAgB,CAAC;AAAA,MAClC,CAAO;AACD,eAASE,IAAK,GAAGA,IAAKD,GAAcC;AAClC,QAAAb,GAAoBU,CAAW,GAC/BxN,EAAI,KAAKwN,IAAc,CAAA,CAAE,GACzBA,EAAY,KAAK;AAAA,UACf,OAAAd;AAAA,UACA,SAASe,EAAgBE,CAAE;AAAA,QACrC,CAAS;AAAA,IAEJ;AACD,IAAAJ,KACAJ,EAAa,IAAG,GAChBC,EAAc,IAAG,GACjBC,EAAmB,IAAG,GACtBC,EAAkB,IAAG;AAAA,EACtB;AACD,SAAAR,GAAoBU,CAAW,GACxBxN;AACT,GACI4N,KAA0BV,IAI1BW,KAAc,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,SAAA5J,GAAS,UAAAT,EAAQ,MAAO;AACxD,QAAMsK,IAAWC,EAAQH,CAAK;AAC9B,SAAO3O,GAAQ,MAAM;AACnB,QAAIgF,KAAW;AACb,aAAOyJ,GAAwB,CAACG,CAAI,CAAC;AACvC,UAAMG,IAAc;AAAA,MAClB,MAAAH;AAAA,MACA,SAAA5J;AAAA,MACA,UAAAT;AAAA,MACA,QAAQ,CAAE;AAAA,IAChB;AACI,WAAAsK,EAAS,QAAQ,MAAM,IAAI,mBAAmBE,CAAW,GACzDA,EAAY,SAASF,EAAS,QAAQ,SAASD,GAAM5J,CAAO,GAC5D6J,EAAS,QAAQ,MAAM,IAAI,kBAAkBE,CAAW,GACjDN,GAAwBM,EAAY,MAAM;AAAA,EAClD,GAAE,CAACH,GAAM5J,GAAST,CAAQ,CAAC;AAC9B,GAGIyK,KAAY,CAAC;AAAA,EACf,UAAAziB;AAAA,EACA,UAAU0iB;AAAA,EACV,MAAAL;AAAA,EACA,OAAOxC;AAAA,EACP,OAAAuC;AACF,MAAM;AACJ,QAAMpK,IAAW0K,EAAU,eACrBrC,IAAkBD,GAAmBpI,GAAU6H,CAAO,GACtD8C,IAAelC,GAAgBJ,CAAe,GAC9CuC,IAAgB/B,GAAiBR,CAAe,GAChD5H,IAAU2J,EAAM,UAAUpK,CAAQ,GAClCN,IAASyK,GAAY,EAAE,OAAAC,GAAO,UAAApK,GAAU,MAAAqK,GAAM,SAAA5J,EAAO,CAAE;AAC7D,SAAOzY,EAAS;AAAA,IACd,QAAA0X;AAAA,IACA,WAAW,uBAAuBM,CAAQ;AAAA,IAC1C,OAAOqI,KAAmB,OAAOA,EAAgB,OAAO,CAAE;AAAA,IAC1D,cAAAsC;AAAA,IACA,eAAAC;AAAA,EACJ,CAAG;AACH,GAGIC,KAAa,CAACphB,MAAU6D,GAAcmd,IAAWrM,GAAcJ,EAAe,IAAIvU,CAAK,GAAG;AAAA,EAC5F,OAAOA,EAAM,SAASya;AAAA,EACtB,OAAOza,EAAM,SAASgd;AAAA,EACtB,MAAMhd,EAAM;AAAA,EACZ,UAAUA,EAAM;AAClB,CAAC,CAAC;AAQF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AC16FA,MAAMqhB,KAAehR,GAA8C;AAAA,EACjE;AAAA,EACA,MAAM;AAAA,EAAC;AACT,CAAC,GAEYiR,KAAW,MAAM;AACtB,QAAA/Q,IAAUC,GAAW6Q,EAAY;AACvC,MAAI,CAAC9Q;AACG,UAAA,IAAI,MAAM,8CAA8C;AAEzD,SAAAA;AACT,GAEagR,KAAgB,CAACvhB,MAAmC;AAC/D,QAAM,CAACwhB,GAAMC,CAAO,IAAIpQ,GAAS,EAAK;AAGtC,EAAAP,GAAU,MAAM;AACR,UAAAxK,IAAQ,aAAa,QAAQ,OAAO,GACpCob,IAAc,OAAO,WAAW,8BAA8B,GAC9DC,IAASrb,MAAU,UAAW,CAACA,KAASob,EAAY;AAE1D,IAAAD,EAAQE,CAAM;AAAA,EAAA,GACb,CAACH,CAAI,CAAC;AAGH,QAAAI,IAAS5Q,GAAY,MAAM;AAC/B,UAAM6Q,IAAU,CAACL;AACjB,aAAS,gBAAgB,UAAU,OAAO,QAAQK,CAAO,GACzD,aAAa,QAAQ,SAASA,IAAU,SAAS,OAAO,GACxDJ,EAAQI,CAAO;AAAA,EAAA,GACd,CAACL,CAAI,CAAC,GAEHjnB,IAAQ,CAACinB,GAAMI,CAAM;AAE3B,+BAAQP,GAAa,UAAb,EAAsB,OAAA9mB,GAAe,GAAGyF,EAAO,CAAA;AACzD;ACpCA,WAAW,QAAQya;AAEnB,OAAO,8BAAsC;AAE7C,OAAO,8BAAsC;AAE7C,OAAO,uCAA+C;AAEtD,OAAO,6BAAqC;AAE5C,OAAO,8BAAsC;AAE7C,OAAO,8BAAsC;AAE7C,OAAO,gCAAwC;AAE/C,OAAO,oCAA4C;AAe5C,MAAMqH,KAAkB,CAAC;AAAA,EAC9B,UAAAC,IAAW;AAAA,EACX,UAAAxL,IAAW;AAAA,EACX,GAAGvW;AACL,MAA4B;AACpB,QAAA,CAAC2hB,CAAM,IAAIL,MACX,CAACU,GAAUC,CAAW,IAAI5Q,GAAS,EAAK;AAE1C,SAACrR,EAAM,OAKTmQ,gBAAAA,EAAA;AAAA,IAAC6Q;AAAAA,IAAA;AAAA,MACC,OAAOW,IAASO,GAAO,SAASA,GAAO;AAAA,MACvC,UAAA3L;AAAA,MACC,GAAGvW;AAAA,MAEH,WAAC,EAAE,WAAAR,GAAW,OAAAC,GAAO,QAAAwW,GAAQ,cAAAiL,GAAc,eAAAC,QAC1CjR,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWd;AAAA,YACT;AAAA,YACA5P;AAAA,YACAQ,EAAM;AAAA,YACNA,EAAM,gBAAgB;AAAA,YACtBA,EAAM,aAAa;AAAA,UACrB;AAAA,UACA,OAAAP;AAAA,UAEC,UAAA;AAAA,YACCsiB,KAAA5R,gBAAAA,EAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,cAAW;AAAA,gBACX,WAAU;AAAA,gBACV,UAAU6R;AAAA,gBACV,SAAS,MAAM;AACb,kBAAAC,EAAY,EAAI,GACX,UAAU,UAAU;AAAA,oBACvBhM,EACG,IAAI,CAACiJ,MAASA,EAAK,IAAI,CAAC,EAAE,SAAAhH,EAAQ,MAAMA,CAAO,EAAE,KAAK,EAAE,CAAC,EACzD,KAAK;AAAA,CAAI;AAAA,kBAAA,GAEd,WAAW,MAAM+J,EAAY,EAAK,GAAG,GAAI;AAAA,gBAC3C;AAAA,gBAEC,UAAAD,IACE7R,gBAAAA,EAAA,IAAAgS,IAAA,EAAU,WAAU,oBAAmB,MAAM,GAAI,CAAA,IAElDhS,gBAAAA,EAAAA,IAACiS,IAAS,EAAA,MAAM,GAAI,CAAA;AAAA,cAAA;AAAA,YAExB;AAAA,YAEDpiB,EAAM,yBACLmQ,gBAAAA,EAAAA,IAAC,QAAK,EAAA,WAAU,yGACb,UACHoG,GAAA;AAAA,YAEDN,EAAO,IAAI,CAACiJ,GAAM9lB,MACjB+W,gBAAAA,EAAAA,IAAC,OAAa,EAAA,GAAG+Q,EAAa,EAAE,MAAAhC,EAAM,CAAA,GACnC,UAAKA,EAAA,IAAI,CAAChI,GAAO5d,MAChB6W,gBAAAA,EAAAA,IAAC,QAAgB,EAAA,GAAGgR,EAAc,EAAE,OAAAjK,EAAM,CAAC,EAAhC,GAAA5d,CAAmC,CAC/C,EAAA,GAHOF,CAIV,CACD;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA,IAvDG;AA2DX,GChGaipB,KAAgB;AAAA,EAC3B,KAAK,CAACriB,MACA,wBAAwB,KAAKA,EAAM,OAAO,EAAE,IACtCmQ,gBAAAA,EAAAA,IAAA,SAAA,EAAM,KAAKnQ,EAAM,KAAK,UAAQ,IAAC,aAAW,IAAC,UAAQ,IAAC,MAAI,GAAC,CAAA,IAE3DmQ,gBAAAA,EAAAA,IAAA,OAAA,EAAK,GAAGnQ,GAAO,WAAU,aAAa,CAAA;AAAA,EAEhD,IAAI,CAAC,EAAE,UAAAzB,GAAU,IAAAiV,EACf,MAAArD,gBAAAA,EAAA,IAACoD,GAAQ,EAAA,OAAO,GAAG,IAAAC,GAChB,UAAAjV,EACH,CAAA;AAAA,EAEF,IAAI,CAAC,EAAE,UAAAA,GAAU,IAAAiV,EACf,MAAArD,gBAAAA,EAAA,IAACoD,GAAQ,EAAA,OAAO,GAAG,IAAAC,GAChB,UAAAjV,EACH,CAAA;AAAA,EAEF,IAAI,CAAC,EAAE,UAAAA,GAAU,IAAAiV,EACf,MAAArD,gBAAAA,EAAA,IAACoD,GAAQ,EAAA,OAAO,GAAG,IAAAC,GAChB,UAAAjV,EACH,CAAA;AAAA,EAEF,IAAI,CAAC,EAAE,UAAAA,GAAU,IAAAiV,EACf,MAAArD,gBAAAA,EAAA,IAACoD,GAAQ,EAAA,OAAO,GAAG,IAAAC,GAChB,UAAAjV,EACH,CAAA;AAAA,EAEF,IAAI,CAAC,EAAE,UAAAA,GAAU,IAAAiV,EACf,MAAArD,gBAAAA,EAAA,IAACoD,GAAQ,EAAA,OAAO,GAAG,IAAAC,GAChB,UAAAjV,EACH,CAAA;AAAA,EAEF,IAAI,CAAC,EAAE,UAAAA,GAAU,IAAAiV,EACf,MAAArD,gBAAAA,EAAA,IAACoD,GAAQ,EAAA,OAAO,GAAG,IAAAC,GAChB,UAAAjV,EACH,CAAA;AAAA,EAEF,GAAG,CAAC,EAAE,MAAAZ,GAAM,GAAGqC,EAAA,MACbrC,KAAQ,CAACA,EAAK,WAAW,MAAM,IAC5BwS,gBAAAA,EAAA,IAAA1T,IAAA,EAAK,IAAIkB,GAAM,UAAS,QAAQ,GAAGqC,EAAO,CAAA,IAE3CmQ,gBAAAA,EAAAA,IAAC,KAAE,EAAA,MAAAxS,GAAY,QAAO,UAAU,GAAGqC,GAAO,KAAI,aAAa,CAAA;AAAA,EAE/D,SAAA2P;AAAA,EACA,KAAK,CAAC3P,MAAUmQ,gBAAAA,MAACR,KAAQ,MAAK,OAAO,GAAG3P,GAAO;AAAA,EAC/C,MAAM,CAACA,MAAUmQ,gBAAAA,MAACR,KAAQ,MAAK,QAAQ,GAAG3P,GAAO;AAAA,EACjD,MAAM,CAACA,MAAUmQ,gBAAAA,MAACR,KAAQ,MAAK,QAAQ,GAAG3P,GAAO;AAAA,EACjD,SAAS,CAACA,MAAUmQ,gBAAAA,MAACR,KAAQ,MAAK,WAAW,GAAG3P,GAAO;AAAA,EACvD,SAAS,CAACA,MAAUmQ,gBAAAA,MAACR,KAAQ,MAAK,WAAW,GAAG3P,GAAO;AAAA,EACvD,QAAQ,CAACA,MAAUmQ,gBAAAA,MAACR,KAAQ,MAAK,UAAU,GAAG3P,GAAO;AAAA,EAErD,KAAK,CAAC,EAAE,UAAAzB,EAAS,0CAAS,UAAAA,GAAS;AAAA,EACnC,MAAM,CAAC,EAAE,WAAAiB,GAAW,UAAAjB,GAAU,GAAGyB,QAAY;AAK3C,QAAI,CAFYA,EAAc,QAEjB;AACL,YAAAuC,IAAQ/C,KAAA,gBAAAA,EAAW,MAAM;AAG7B,aAAA2Q,gBAAAA,EAAA;AAAA,QAAC2R;AAAA,QAAA;AAAA,UACC,WAAUvf,KAAA,gBAAAA,EAAQ,OAAM;AAAA,UACxB,WAAU;AAAA,UACV,uBAAqB;AAAA,UACrB,MAAM,OAAOhE,CAAQ,EAAE,KAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlC;AAEO,WAAA4R,gBAAAA,EAAA,IAACuD,IAAW,EAAA,WAAAlU,GAAuB,UAAAjB,EAAS,CAAA;AAAA,EACrD;AACF;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,16,17,20]}