@absolutejs/absolute 0.20.0-beta.144 → 0.20.0-beta.145

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 (43) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/changelog.json +21 -0
  3. package/dist/angular/browser.js.map +2 -2
  4. package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
  5. package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
  6. package/dist/angular/index.js.map +8 -8
  7. package/dist/angular/server.js.map +7 -7
  8. package/dist/build.js +16 -12
  9. package/dist/build.js.map +44 -44
  10. package/dist/cli/{buildDepVendor-e2zz9x78.js → buildDepVendor-g49s8rr1.js} +1 -1
  11. package/dist/cli/{dev-d7nyd387.js → dev-4qz8gk8x.js} +3 -3
  12. package/dist/cli/fmt-819g837b.js +20 -0
  13. package/dist/cli/{index-cc8eay5y.js → index-1ksy2h3r.js} +4 -4
  14. package/dist/cli/{index-6vpdsqa1.js → index-3ff5ztt3.js} +5 -1
  15. package/dist/cli/index.js +9 -4
  16. package/dist/cli/{patchedBun-541bbnee.js → patchedBun-r3ykvvwz.js} +1 -1
  17. package/dist/client/index.js.map +3 -3
  18. package/dist/dev/client/handlers/angularHmrShim.ts +1 -2
  19. package/dist/dev/serverBootstrap.js +5 -1
  20. package/dist/index.js +16 -12
  21. package/dist/index.js.map +45 -45
  22. package/dist/islands/browser.js.map +2 -2
  23. package/dist/islands/index.js.map +5 -5
  24. package/dist/mobile/browser.js.map +2 -2
  25. package/dist/mobile/index.js.map +11 -11
  26. package/dist/react/browser.js.map +2 -2
  27. package/dist/react/components/index.js.map +3 -3
  28. package/dist/react/hooks/index.js.map +2 -2
  29. package/dist/react/index.js.map +7 -7
  30. package/dist/react/server.js.map +3 -3
  31. package/dist/src/cli/patchedBun.d.ts +5 -4
  32. package/dist/src/cli/scripts/fmt.d.ts +1 -0
  33. package/dist/svelte/browser.js.map +2 -2
  34. package/dist/svelte/index.js.map +8 -8
  35. package/dist/svelte/server.js.map +6 -6
  36. package/dist/types/globals.d.ts +9 -18
  37. package/dist/types/svelteRouter.ts +1 -2
  38. package/dist/vue/browser.js.map +2 -2
  39. package/dist/vue/index.js.map +8 -8
  40. package/dist/vue/server.js.map +4 -4
  41. package/package.json +3 -3
  42. /package/dist/cli/{add-a33ashpx.js → add-kwyqxccz.js} +0 -0
  43. /package/dist/cli/{doctor-f13ntk9a.js → doctor-4nv2c2j3.js} +0 -0
@@ -16,15 +16,15 @@
16
16
  "import type { EnvironmentProviders, Provider, Type } from '@angular/core';\nimport type { BootstrapContext } from '@angular/platform-browser';\nimport type { AngularDeps, CachedRouteData } from '../../types/angular';\nimport {\n\tgetAndClearClientScripts,\n\tgenerateClientScriptCode\n} from '../utils/registerClientScript';\nimport { browserTranslationBaselineTag } from '../core/browserTranslation';\nimport { buildAbsoluteHttpTransferCacheOptions } from './httpTransferCache';\nimport { buildRequestProviders } from './requestProviders';\n\n// --- Last-used requestContext cache for HMR ---\n// Stores { requestContext, headTag } from the most recent real request per\n// route so HMR re-renders with the same data the user last saw.\n\nconst routeContextCache = new Map<string, CachedRouteData>();\n\nexport const cacheRouteData = (pagePath: string, data: CachedRouteData) => {\n\tconst cacheKey = pagePath.split('?')[0] ?? pagePath;\n\trouteContextCache.set(cacheKey, data);\n};\nexport const getCachedRouteData = (pagePath: string) =>\n\trouteContextCache.get(pagePath);\n\n// --- Selector cache ---\n\nconst selectorCache = new Map<string, string>();\nexport const buildProviders = (\n\tdeps: AngularDeps,\n\tsanitizer: InstanceType<AngularDeps['DomSanitizer']>,\n\trequest: Request | undefined,\n\trequestContext: unknown,\n\tresponseInit: ResponseInit | undefined,\n\tuserProviders: ReadonlyArray<Provider | EnvironmentProviders> = []\n) => [\n\tdeps.provideServerRendering(),\n\tdeps.provideClientHydration(\n\t\tdeps.withHttpTransferCacheOptions(\n\t\t\tbuildAbsoluteHttpTransferCacheOptions()\n\t\t)\n\t),\n\tdeps.provideZonelessChangeDetection(),\n\t{ provide: deps.APP_BASE_HREF, useValue: '/' },\n\t{ provide: deps.DomSanitizer, useValue: sanitizer },\n\t{ provide: deps.Sanitizer, useValue: sanitizer },\n\t...buildRequestProviders(deps, request, requestContext, responseInit),\n\t...userProviders\n];\nexport const clearSelectorCache = () => selectorCache.clear();\n\nexport const resolveSelector = (\n\tdeps: AngularDeps,\n\tpagePath: string,\n\tPageComponent: Type<unknown>\n) => {\n\tconst cached = selectorCache.get(pagePath);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst selector =\n\t\tdeps.reflectComponentType(PageComponent)?.selector ?? 'ng-app';\n\tselectorCache.set(pagePath, selector);\n\n\treturn selector;\n};\n\n// --- Inject HTML helper ---\n\nconst injectBeforeClose = (html: string, snippet: string) => {\n\tif (html.includes('</body>')) {\n\t\treturn html.replace('</body>', `${snippet}</body>`);\n\t}\n\tif (html.includes('</html>')) {\n\t\treturn html.replace('</html>', `${snippet}</html>`);\n\t}\n\n\treturn html + snippet;\n};\n\n// --- Post-render HTML injection ---\n\nexport const injectSsrScripts = (\n\thtml: string,\n\trequestId: string,\n\tindexPath: string,\n\trequestContext?: unknown\n) => {\n\tlet result = injectBeforeClose(html, browserTranslationBaselineTag());\n\n\tconst registeredScripts = getAndClearClientScripts(requestId);\n\tif (registeredScripts.length > 0) {\n\t\tresult = injectBeforeClose(\n\t\t\tresult,\n\t\t\tgenerateClientScriptCode(registeredScripts)\n\t\t);\n\t}\n\n\tif (requestContext !== undefined) {\n\t\tresult = injectBeforeClose(\n\t\t\tresult,\n\t\t\t`<script>window.__ABS_ANGULAR_REQUEST_CONTEXT__ = ${JSON.stringify(requestContext)};</script>`\n\t\t);\n\t}\n\n\tif (indexPath) {\n\t\tconst escapedIndexPath = JSON.stringify(indexPath);\n\t\tresult = injectBeforeClose(\n\t\t\tresult,\n\t\t\t`<script>import(${escapedIndexPath});</script>`\n\t\t);\n\t}\n\n\treturn result;\n};\nexport const renderAngularApp = async (\n\tdeps: AngularDeps,\n\tPageComponent: Type<unknown>,\n\tproviders: (Provider | EnvironmentProviders)[],\n\tdocument: string | Document,\n\turl: string = '/'\n) => {\n\tconst bootstrap = (context: BootstrapContext) =>\n\t\tdeps.bootstrapApplication(PageComponent, { providers }, context);\n\n\treturn withSuppressedAngularDevLogs(() =>\n\t\tdeps.renderApplication(bootstrap, {\n\t\t\tdocument,\n\t\t\tplatformProviders: [],\n\t\t\turl\n\t\t})\n\t);\n};\nexport const withSuppressedAngularDevLogs = async <T>(\n\trender: () => Promise<T>\n) => {\n\tconst origLog = console.log;\n\tconsole.log = (...args: unknown[]) => {\n\t\tif (\n\t\t\ttypeof args[0] === 'string' &&\n\t\t\targs[0].includes('development mode')\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\torigLog.apply(console, args);\n\t};\n\n\ttry {\n\t\treturn await render();\n\t} finally {\n\t\tconsole.log = origLog;\n\t}\n};\n",
17
17
  "import { getAngularDeps } from './angularDeps';\nimport { withSuppressedAngularDevLogs } from './ssrRender';\nimport { getSsrContextId } from '../utils/registerClientScript';\n\nconst angularIslandSelector = 'abs-angular-island';\n\nexport const getAngularIslandSelector = (_islandId: string) =>\n\tangularIslandSelector;\nexport const isAngularComponent = (\n\tvalue: unknown\n): value is import('@angular/core').Type<object> => typeof value === 'function';\n\nconst getSelectorFromRenderedIsland = (rootElement: HTMLElement) => {\n\tconst firstChild = rootElement.firstElementChild;\n\tif (!(firstChild instanceof HTMLElement)) {\n\t\treturn null;\n\t}\n\n\tconst selector = firstChild.tagName.toLowerCase();\n\n\treturn selector.length > 0 ? selector : null;\n};\n\nconst getClientAngularComponentSelector = (\n\tcomponent: import('@angular/core').Type<object>\n) => {\n\tconst maybeDef = Reflect.get(component, 'ɵcmp');\n\tif (typeof maybeDef !== 'object' || maybeDef === null) {\n\t\treturn null;\n\t}\n\n\tconst maybeSelectors = Reflect.get(maybeDef, 'selectors');\n\tif (!Array.isArray(maybeSelectors)) {\n\t\treturn null;\n\t}\n\n\tconst [firstSelectorGroup] = maybeSelectors;\n\tif (!Array.isArray(firstSelectorGroup)) {\n\t\treturn null;\n\t}\n\n\tconst [selector] = firstSelectorGroup;\n\n\treturn typeof selector === 'string' && selector.length > 0\n\t\t? selector\n\t\t: null;\n};\n\nconst createAngularIslandApp = async () => {\n\tconst { EnvironmentInjector, provideZonelessChangeDetection } =\n\t\tawait import('@angular/core');\n\tconst { createApplication } = await import('@angular/platform-browser');\n\tconst app = await createApplication({\n\t\tproviders: [provideZonelessChangeDetection()]\n\t});\n\tconst environmentInjector = app.injector.get(EnvironmentInjector);\n\n\treturn { app, environmentInjector };\n};\n\nlet angularIslandAppPromise: Promise<{\n\tapp: import('@angular/core').ApplicationRef;\n\tenvironmentInjector: import('@angular/core').EnvironmentInjector;\n}> | null = null;\n\nconst getAngularIslandApp = async () => {\n\tif (!angularIslandAppPromise) {\n\t\tangularIslandAppPromise = createAngularIslandApp();\n\t}\n\n\treturn angularIslandAppPromise;\n};\n\ntype AngularIslandWrapperMetadata = {\n\tdeps: Awaited<ReturnType<typeof getAngularDeps>>;\n\tpropsToken: import('@angular/core').InjectionToken<Record<string, unknown>>;\n\tselector: string;\n\tWrapperComponent: import('@angular/core').Type<object>;\n};\n\nconst wrapperMetadataCache = new Map<\n\tstring,\n\tPromise<AngularIslandWrapperMetadata>\n>();\nconst requestRenderCache = new Map<string, Map<string, string>>();\n\nconst getRequestRenderCache = () => {\n\tconst requestId = getSsrContextId();\n\tif (!requestId) {\n\t\treturn null;\n\t}\n\n\tconst cached = requestRenderCache.get(requestId);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst renderCache = new Map<string, string>();\n\trequestRenderCache.set(requestId, renderCache);\n\n\treturn renderCache;\n};\n\nconst getAngularIslandWrapperKey = (\n\tcomponent: import('@angular/core').Type<object>,\n\t_islandId: string\n) => {\n\tconst componentName =\n\t\ttypeof component.name === 'string' && component.name.length > 0\n\t\t\t? component.name\n\t\t\t: 'AngularIsland';\n\n\treturn `${componentName}:${angularIslandSelector}`;\n};\n\nconst getIslandRenderCacheKey = (\n\tcomponent: import('@angular/core').Type<object>,\n\tprops: Record<string, unknown>\n) => {\n\tconst componentName =\n\t\ttypeof component.name === 'string' && component.name.length > 0\n\t\t\t? component.name\n\t\t\t: 'AngularIsland';\n\n\treturn `${componentName}:${JSON.stringify(props)}`;\n};\n\nconst buildAngularIslandWrapperMetadata = async (\n\tcomponent: import('@angular/core').Type<object>,\n\tislandId: string,\n\twrapperKey: string\n) => {\n\t// Resolve Angular through getAngularDeps so the wrapper is built with the\n\t// SAME Angular instance that renders it. In production server-side imports\n\t// point at the pre-linked Angular vendor bundle; bare `@angular/*` imports\n\t// here would instead resolve to node_modules, giving the wrapper component\n\t// (its decorator, InjectionToken and inject) a different Angular instance\n\t// than the render pipeline's injector — every cross-instance token lookup\n\t// then fails with NG0201. (Dev uses a single node_modules Angular, so this\n\t// only manifests in production.)\n\tconst deps = await getAngularDeps();\n\tconst { Component, InjectionToken, NgComponentOutlet, inject } = deps;\n\tconst selector = getAngularIslandSelector(islandId);\n\tconst propsToken = new InjectionToken<Record<string, unknown>>(\n\t\t`${wrapperKey}:props`\n\t);\n\n\tclass AngularIslandWrapperComponent {\n\t\tcomponent = component;\n\t\tprops = inject(propsToken);\n\t}\n\n\treturn {\n\t\tdeps,\n\t\tpropsToken,\n\t\tselector,\n\t\tWrapperComponent: Component({\n\t\t\timports: [NgComponentOutlet, component],\n\t\t\tselector,\n\t\t\tstandalone: true,\n\t\t\ttemplate:\n\t\t\t\t'<ng-container *ngComponentOutlet=\"component; inputs: props\"></ng-container>'\n\t\t})(AngularIslandWrapperComponent)\n\t};\n};\n\nconst createAngularIslandWrapper = async (\n\tcomponent: import('@angular/core').Type<object>,\n\tislandId: string\n) => {\n\tconst wrapperKey = getAngularIslandWrapperKey(component, islandId);\n\tconst cached = wrapperMetadataCache.get(wrapperKey);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst metadataPromise = buildAngularIslandWrapperMetadata(\n\t\tcomponent,\n\t\tislandId,\n\t\twrapperKey\n\t);\n\n\twrapperMetadataCache.set(wrapperKey, metadataPromise);\n\n\treturn metadataPromise;\n};\n\nconst extractAngularIslandRoot = (html: string, selector: string) => {\n\tconst openTag = `<${selector}`;\n\tconst start = html.indexOf(openTag);\n\tif (start < 0) {\n\t\tthrow new Error(`Could not find Angular island root \"${selector}\".`);\n\t}\n\n\tconst endTag = `</${selector}>`;\n\tconst end = html.indexOf(endTag, start);\n\tif (end < 0) {\n\t\tthrow new Error(`Could not close Angular island root \"${selector}\".`);\n\t}\n\n\treturn html.slice(start, end + endTag.length);\n};\n\nexport const mountAngularIsland = async <Props extends Record<string, unknown>>(\n\tcomponent: import('@angular/core').Type<object>,\n\telement: HTMLElement,\n\tprops: Props,\n\tislandId: string\n) => {\n\tawait import('@angular/compiler');\n\tconst { createComponent, inputBinding } = await import('@angular/core');\n\tconst selector = getAngularIslandSelector(islandId);\n\tconst { app, environmentInjector } = await getAngularIslandApp();\n\n\tlet rootElement = element.querySelector(selector);\n\tif (!(rootElement instanceof HTMLElement)) {\n\t\telement.innerHTML = `<${selector}></${selector}>`;\n\t\trootElement = element.querySelector(selector);\n\t}\n\tif (!(rootElement instanceof HTMLElement)) return app;\n\n\tconst componentSelector =\n\t\tgetClientAngularComponentSelector(component) ??\n\t\tgetSelectorFromRenderedIsland(rootElement);\n\tif (!componentSelector) return app;\n\n\trootElement.innerHTML = `<${componentSelector}></${componentSelector}>`;\n\tconst hostElement = rootElement.querySelector(componentSelector);\n\tif (!(hostElement instanceof HTMLElement)) return app;\n\n\tconst bindings = Object.entries(props).map(([key, value]) =>\n\t\tinputBinding(key, () => value)\n\t);\n\tconst componentRef = createComponent(component, {\n\t\tbindings,\n\t\tenvironmentInjector,\n\t\thostElement\n\t});\n\tapp.attachView(componentRef.hostView);\n\tcomponentRef.changeDetectorRef.detectChanges();\n\twindow.__ABS_ANGULAR_ISLAND_APPS__ ??= [];\n\twindow.__ABS_ANGULAR_ISLAND_APPS__.push(app);\n\n\treturn app;\n};\nexport const renderAngularIslandToHtml = async <\n\tProps extends Record<string, unknown>\n>(\n\tcomponent: import('@angular/core').Type<object>,\n\tprops: Props,\n\tislandId: string\n) => {\n\tconst requestCache = getRequestRenderCache();\n\tconst renderCacheKey = getIslandRenderCacheKey(component, props);\n\tconst cachedHtml = requestCache?.get(renderCacheKey);\n\tif (cachedHtml) {\n\t\treturn cachedHtml;\n\t}\n\n\tconst { deps, propsToken, selector, WrapperComponent } =\n\t\tawait createAngularIslandWrapper(component, islandId);\n\n\tconst providers: (\n\t\t| import('@angular/core').Provider\n\t\t| import('@angular/core').EnvironmentProviders\n\t)[] = [\n\t\tdeps.provideServerRendering(),\n\t\tdeps.provideZonelessChangeDetection(),\n\t\t{ provide: deps.APP_BASE_HREF, useValue: '/' },\n\t\t{ provide: propsToken, useValue: props }\n\t];\n\tconst document = `<!DOCTYPE html><html><body><${selector}></${selector}></body></html>`;\n\tconst html = await withSuppressedAngularDevLogs(() =>\n\t\tdeps.renderApplication(\n\t\t\t(context) =>\n\t\t\t\tdeps.bootstrapApplication(\n\t\t\t\t\tWrapperComponent,\n\t\t\t\t\t{ providers },\n\t\t\t\t\tcontext\n\t\t\t\t),\n\t\t\t{\n\t\t\t\tdocument,\n\t\t\t\tplatformProviders: [],\n\t\t\t\turl: '/'\n\t\t\t}\n\t\t)\n\t);\n\tconst islandHtml = extractAngularIslandRoot(html, selector);\n\trequestCache?.set(renderCacheKey, islandHtml);\n\n\treturn islandHtml;\n};\n",
18
18
  "type ReactComponentType<Props extends Record<string, unknown>> =\n\timport('react').ComponentType<Props>;\n\nconst renderAngularIslandToHtmlInternal = async (\n\tcomponent: import('@angular/core').Type<object>,\n\tprops: Record<string, unknown>,\n\tislandId: string\n) => {\n\tconst { renderAngularIslandToHtml } = await import('../angular/islands');\n\n\treturn renderAngularIslandToHtml(component, props, islandId);\n};\nexport const renderAngularIslandToHtml = renderAngularIslandToHtmlInternal;\n// React 19 hoists resources (`<link rel=\"preload\">` for images, stylesheet\n// links, etc.) to the FRONT of server output. In a full document these go to\n// `<head>`. An island is SSR'd as an isolated fragment, so they land inline as\n// leading siblings before the component's real root — but during standalone\n// client hydration React routes the same resources to `document.head` instead,\n// so the fragment's first child differs (server `<link>`, client the component\n// root) and hydration mismatches. Strip these leading hoisted tags so the SSR\n// fragment matches what the island root renders on the client. They're perf\n// hints; dropping them from the fragment doesn't affect the rendered UI.\nconst LEADING_HOISTED_RESOURCE_RE =\n\t/^\\s*(?:<link\\b[^>]*\\/?>|<meta\\b[^>]*\\/?>|<title\\b[^>]*>[\\s\\S]*?<\\/title>|<style\\b[^>]*>[\\s\\S]*?<\\/style>|<script\\b[^>]*>[\\s\\S]*?<\\/script>)/i;\n\nconst stripLeadingHoistedResources = (html: string) => {\n\tlet result = html;\n\tlet match = LEADING_HOISTED_RESOURCE_RE.exec(result);\n\twhile (match) {\n\t\tresult = result.slice(match[0].length);\n\t\tmatch = LEADING_HOISTED_RESOURCE_RE.exec(result);\n\t}\n\n\treturn result.trimStart();\n};\n\nexport const renderReactIslandToHtml = <Props extends Record<string, unknown>>(\n\tcomponent: ReactComponentType<Props>,\n\tprops: Props\n) =>\n\timport('react').then(({ createElement }) =>\n\t\timport('react-dom/server').then(({ renderToString }) =>\n\t\t\tstripLeadingHoistedResources(\n\t\t\t\trenderToString(createElement(component, props))\n\t\t\t)\n\t\t)\n\t);\nexport const renderSvelteIslandToHtml = <Props extends Record<string, unknown>>(\n\tcomponent: import('svelte').Component<Props>,\n\tprops: Props\n) =>\n\timport('svelte/server').then(({ render }) => {\n\t\tconst { body } = render(component, { props });\n\n\t\treturn body;\n\t});\nexport const renderVueIslandToHtml = <Props extends Record<string, unknown>>(\n\tcomponent: import('vue').Component<Props>,\n\tprops: Props\n) =>\n\timport('vue').then(({ createSSRApp, h: createVueVNode }) => {\n\t\tconst app = createSSRApp({\n\t\t\trender: () => createVueVNode(component, props)\n\t\t});\n\n\t\treturn import('vue/server-renderer').then(({ renderToString }) =>\n\t\t\trenderToString(app)\n\t\t);\n\t});\n",
19
- "/** Shields non-code spans from the regex/text-based import rewriters.\n *\n * The import rewriters (rewriteClientOutputs, rewriteReactImports,\n * rewriteImportsPlugin, the native Zig scanner, and compile's runtime-specifier\n * rewrite) replace `from \"X\"` / `import \"X\"` / `import(\"X\")` / `require(\"X\")`\n * across the whole file text. That text scan can't tell a real import from the\n * *text* `from 'X'` sitting inside a template literal / data string (an\n * example-code snippet a page renders) or a comment — so it rewrites the\n * snippet's specifier too. The browser bundle then diverges from the SSR\n * pre-render → React hydration mismatch on the code block.\n *\n * Fix: before rewriting, replace template literals and comments with opaque\n * placeholders, plus any string literal whose *own text* contains an\n * import-like sequence (`from`/`import`/`require` + quote); rewrite; then\n * restore them verbatim. A real import specifier string (e.g.\n * \"react/jsx-runtime\") never contains that sequence, so it is left untouched\n * and always gets rewritten — no matter what token precedes it. Regex literals\n * are skipped (copied verbatim) so their contents can't be misread as\n * strings/templates.\n *\n * Usage: `const { masked, restore } = maskLiterals(src)`, run the existing\n * rewriter on `masked`, then `restore(rewritten)`.\n *\n * Performance: the scanner jumps from one interesting character (`/`, `'`,\n * `\"`, backtick) to the next with `charCodeAt` and copies the plain code in\n * between as one slice, so the cost is proportional to the number of tokens\n * rather than the number of characters. The regex-vs-division decision at a\n * `/` looks backwards from that slash to the previous significant code\n * character (or the end of the previous literal/comment/regex token), which\n * is exactly the state the previous character-by-character scanner carried\n * forward. A dev bundle masks at ~10× the old throughput. */\n\n// Private-Use-Area sentinel: never appears in real source, carries no\n// from/import/quote chars, so placeholders can't collide with code or be matched\n// by the rewriters.\nexport const SENTINEL = String.fromCharCode(0xe000);\n\nexport type MaskedSource = {\n\tmasked: string;\n\trestore: (rewritten: string) => string;\n};\n\n// A string literal only needs shielding when its TEXT actually contains an\n// import-like sequence a rewriter could mistake for a real import — `from` /\n// `import` / `require` followed (through optional whitespace/paren) by a quote.\n// A genuine import specifier string (e.g. \"react/jsx-runtime\") never contains\n// that internally, so it is left untouched and always gets rewritten. This\n// replaces the old \"is this string in specifier position?\" heuristic, which\n// mis-masked real specifiers whenever the preceding token wasn't exactly\n// `from`/`import` (e.g. an intervening comment), leaving a bare specifier in one\n// bundled chunk and breaking hydration.\nconst RISKY_STRING_CONTENT = /\\b(?:from|import|require)\\s*\\(?\\s*[\"'`]/;\n\nconst code = (char: string) => char.charCodeAt(0);\nconst SLASH = code('/');\nconst STAR = code('*');\nconst BACKSLASH = code('\\\\');\nconst BACKTICK = code('`');\nconst DOUBLE_QUOTE = code('\"');\nconst SINGLE_QUOTE = code(\"'\");\nconst NEWLINE = code('\\n');\nconst CARRIAGE_RETURN = code('\\r');\nconst TAB = code('\\t');\nconst SPACE = code(' ');\nconst DOLLAR = code('$');\nconst OPEN_BRACE = code('{');\nconst CLOSE_BRACE = code('}');\nconst OPEN_BRACKET = code('[');\nconst CLOSE_BRACKET = code(']');\nconst CLOSE_PAREN = code(')');\nconst UNDERSCORE = code('_');\nconst DIGIT_ZERO = code('0');\nconst DIGIT_NINE = code('9');\nconst UPPER_A = code('A');\nconst UPPER_Z = code('Z');\nconst LOWER_A = code('a');\nconst LOWER_Z = code('z');\n/** \"No significant character yet\" (start of file / interpolation). */\nconst NONE = -1;\n\n// A `/` starts a regex literal (not division) when the previous significant\n// token is one of these chars/keywords, or nothing (start of file).\nconst REGEX_OK_AFTER_CODE = new Set(\n\t[...'(,=:[!&|?{};+-*/%^~<>'].map(code)\n);\nconst REGEX_OK_AFTER_WORD = new Set([\n\t'return',\n\t'typeof',\n\t'instanceof',\n\t'in',\n\t'of',\n\t'new',\n\t'delete',\n\t'void',\n\t'do',\n\t'else',\n\t'yield',\n\t'await',\n\t'case'\n]);\n\nconst isIdentCode = (charCode: number) =>\n\t(charCode >= LOWER_A && charCode <= LOWER_Z) ||\n\t(charCode >= UPPER_A && charCode <= UPPER_Z) ||\n\t(charCode >= DIGIT_ZERO && charCode <= DIGIT_NINE) ||\n\tcharCode === UNDERSCORE ||\n\tcharCode === DOLLAR;\n\nconst isLetterCode = (charCode: number) =>\n\t(charCode >= LOWER_A && charCode <= LOWER_Z) ||\n\t(charCode >= UPPER_A && charCode <= UPPER_Z);\n\nconst isSpaceCode = (charCode: number) =>\n\tcharCode === SPACE ||\n\tcharCode === TAB ||\n\tcharCode === CARRIAGE_RETURN ||\n\tcharCode === NEWLINE;\n\nconst isQuoteCode = (charCode: number) =>\n\tcharCode === DOUBLE_QUOTE || charCode === SINGLE_QUOTE;\n\n/** src[start] is a quote → index just past the closing quote (or the end of\n * the line for an unterminated string, or EOF). */\nconst endOfString = (src: string, start: number) => {\n\tconst quote = src.charCodeAt(start);\n\tconst len = src.length;\n\tlet pos = start + 1;\n\twhile (pos < len) {\n\t\tconst charCode = src.charCodeAt(pos);\n\t\tif (charCode === BACKSLASH) pos += 2;\n\t\telse if (charCode === quote) return pos + 1;\n\t\telse if (charCode === NEWLINE) return pos; // unterminated guard\n\t\telse pos += 1;\n\t}\n\n\treturn pos;\n};\n\n/** Index just past the regex flags that start at `start`. */\nconst endOfRegexFlags = (src: string, start: number) => {\n\tlet pos = start;\n\twhile (pos < src.length && isLetterCode(src.charCodeAt(pos))) pos += 1;\n\n\treturn pos;\n};\n\n/** src[start] === '/' → index just past the regex literal and its flags, or\n * -1 when a newline arrives first (then the slash was division). */\nconst endOfRegex = (src: string, start: number) => {\n\tconst len = src.length;\n\tlet pos = start + 1;\n\tlet inClass = false;\n\twhile (pos < len) {\n\t\tconst charCode = src.charCodeAt(pos);\n\t\tif (charCode === NEWLINE) return -1;\n\t\tif (charCode === SLASH && !inClass) return endOfRegexFlags(src, pos + 1);\n\t\tif (charCode === OPEN_BRACKET) inClass = true;\n\t\telse if (charCode === CLOSE_BRACKET) inClass = false;\n\t\tpos += charCode === BACKSLASH ? 2 : 1;\n\t}\n\n\treturn pos;\n};\n\ntype InterpolationState = {\n\tdepth: number;\n\tpos: number;\n\t/** Last significant (non-whitespace) code char inside the interpolation. */\n\tprevCode: number;\n\t/** Was the immediately previous char whitespace? */\n\tspace: boolean;\n\t/** Identifier immediately preceding (through whitespace). */\n\tword: string;\n};\n\nconst regexAllowedInInterpolation = (state: InterpolationState) =>\n\tstate.prevCode === NONE ||\n\tREGEX_OK_AFTER_CODE.has(state.prevCode) ||\n\tREGEX_OK_AFTER_WORD.has(state.word);\n\n/** A literal stands where a value would; not a word. */\nconst noteInterpolationToken = (\n\tstate: InterpolationState,\n\tend: number,\n\tprevCode: number\n) => {\n\tstate.pos = end;\n\tstate.prevCode = prevCode;\n\tstate.word = '';\n\tstate.space = false;\n};\n\nconst noteInterpolationCode = (\n\tstate: InterpolationState,\n\tcharCode: number,\n\tchar: string\n) => {\n\tif (charCode === OPEN_BRACE) state.depth += 1;\n\telse if (charCode === CLOSE_BRACE) state.depth -= 1;\n\tstate.pos += 1;\n\tif (isSpaceCode(charCode)) {\n\t\tstate.space = true;\n\n\t\treturn;\n\t}\n\tconst contiguous = isIdentCode(state.prevCode) && !state.space;\n\tif (isIdentCode(charCode)) state.word = contiguous ? state.word + char : char;\n\telse state.word = '';\n\tstate.prevCode = charCode;\n\tstate.space = false;\n};\n\nconst skipInterpolationRegex = (src: string, state: InterpolationState) => {\n\tconst end = endOfRegex(src, state.pos);\n\tif (end > 0) noteInterpolationToken(state, end, CLOSE_PAREN);\n\telse noteInterpolationCode(state, SLASH, '/');\n};\n\ntype TemplateScanner = {\n\t/** src index just past `${` → index just past the matching `}`. */\n\tinterpolation: (src: string, start: number) => number;\n\t/** src[start] === '`' → index just past the closing backtick. */\n\ttemplate: (src: string, start: number) => number;\n};\n\n// Tracks the previous significant token (prevCode/word) so a `/` inside the\n// interpolation is classified as a regex literal vs division. Without regex\n// handling, a regex that contains a quote — e.g. `${s.replace(/'/g, x)}` —\n// is misread as a string: `endOfString` runs past the interpolation, the\n// `{`/`}` depth desyncs, and the enclosing template is mis-masked to (nearly)\n// EOF, swallowing every real import after it (bare-specifier bug).\nconst scanInterpolation = (src: string, start: number) => {\n\tconst len = src.length;\n\tconst state: InterpolationState = {\n\t\tdepth: 1,\n\t\tpos: start,\n\t\tprevCode: NONE,\n\t\tspace: false,\n\t\tword: ''\n\t};\n\twhile (state.pos < len && state.depth > 0) {\n\t\tconst charCode = src.charCodeAt(state.pos);\n\t\tconst next = src.charCodeAt(state.pos + 1);\n\t\tif (charCode === BACKSLASH) state.pos += 2;\n\t\telse if (charCode === BACKTICK)\n\t\t\tnoteInterpolationToken(\n\t\t\t\tstate,\n\t\t\t\ttemplateScanner.template(src, state.pos),\n\t\t\t\tCLOSE_PAREN\n\t\t\t);\n\t\telse if (isQuoteCode(charCode))\n\t\t\tnoteInterpolationToken(\n\t\t\t\tstate,\n\t\t\t\tendOfString(src, state.pos),\n\t\t\t\tDOUBLE_QUOTE\n\t\t\t);\n\t\telse if (charCode === SLASH && next === SLASH)\n\t\t\tstate.pos = endOfLineComment(src, state.pos);\n\t\telse if (charCode === SLASH && next === STAR)\n\t\t\tstate.pos = endOfBlockComment(src, state.pos);\n\t\telse if (charCode === SLASH && regexAllowedInInterpolation(state))\n\t\t\tskipInterpolationRegex(src, state);\n\t\telse noteInterpolationCode(state, charCode, src[state.pos] ?? '');\n\t}\n\n\treturn state.pos;\n};\n\nconst scanTemplate = (src: string, start: number) => {\n\tconst len = src.length;\n\tlet pos = start + 1;\n\twhile (pos < len) {\n\t\tconst charCode = src.charCodeAt(pos);\n\t\tif (charCode === BACKSLASH) pos += 2;\n\t\telse if (charCode === BACKTICK) return pos + 1;\n\t\telse if (charCode === DOLLAR && src.charCodeAt(pos + 1) === OPEN_BRACE)\n\t\t\tpos = templateScanner.interpolation(src, pos + 2);\n\t\telse pos += 1;\n\t}\n\n\treturn pos;\n};\n\nconst templateScanner: TemplateScanner = {\n\tinterpolation: scanInterpolation,\n\ttemplate: scanTemplate\n};\n\n/** src[start..start+1] === '//' → index of the terminating newline (or EOF). */\nconst endOfLineComment = (src: string, start: number) => {\n\tconst newline = src.indexOf('\\n', start + 2);\n\n\treturn newline < 0 ? src.length : newline;\n};\n\n/** src[start..start+1] === '/*' → index just past the closing delimiter (or EOF). */\nconst endOfBlockComment = (src: string, start: number) => {\n\tconst close = src.indexOf('*/', start + 2);\n\n\treturn close < 0 ? src.length : close + 2;\n};\n\ntype MaskState = {\n\t/** src index up to which plain code has been copied to `parts`. */\n\tcopiedUpTo: number;\n\t/** Has any literal/comment/regex token been consumed yet? */\n\thasToken: boolean;\n\t/** Masked spans, in placeholder order. */\n\tpieces: string[];\n\t/** Output chunks (plain code slices and placeholders). */\n\tparts: string[];\n\t/** Current scan position. */\n\tpos: number;\n\tsrc: string;\n\t/** src index just past the most recent token. */\n\ttokenEnd: number;\n};\n\n/** Replace src[start, end) with a placeholder; copies the plain code before\n * it first. */\nconst mask = (state: MaskState, start: number, end: number) => {\n\tstate.parts.push(\n\t\tstate.src.slice(state.copiedUpTo, start),\n\t\t`${SENTINEL}${state.pieces.length}${SENTINEL}`\n\t);\n\tstate.pieces.push(state.src.slice(start, end));\n\tstate.copiedUpTo = end;\n};\n\n/** A literal/comment/regex ends here; later chars are plain code. */\nconst noteToken = (state: MaskState, end: number) => {\n\tstate.pos = end;\n\tstate.tokenEnd = end;\n\tstate.hasToken = true;\n};\n\n/** Would a `/` at `slash` start a regex literal? Looks back over the plain\n * code since the previous token for the last significant char (whitespace\n * skipped) and the identifier ending there. Reaching the previous token\n * means a literal/regex/comment (never regex-ok) — unless there is none\n * yet, i.e. only whitespace precedes the slash (regex-ok). */\nconst regexAllowedAt = (state: MaskState, slash: number) => {\n\tconst { src, tokenEnd } = state;\n\tlet pos = slash - 1;\n\twhile (pos >= tokenEnd && isSpaceCode(src.charCodeAt(pos))) pos -= 1;\n\tif (pos < tokenEnd) return !state.hasToken;\n\tconst prevCode = src.charCodeAt(pos);\n\tif (REGEX_OK_AFTER_CODE.has(prevCode)) return true;\n\tif (!isIdentCode(prevCode)) return false;\n\tlet wordStart = pos;\n\twhile (wordStart > tokenEnd && isIdentCode(src.charCodeAt(wordStart - 1)))\n\t\twordStart -= 1;\n\n\treturn REGEX_OK_AFTER_WORD.has(src.slice(wordStart, pos + 1));\n};\n\nconst maskLineComment = (state: MaskState) => {\n\tconst end = endOfLineComment(state.src, state.pos);\n\tmask(state, state.pos + 2, end);\n\tnoteToken(state, end);\n};\n\n// The `/*` and `*/` delimiters stay in the masked text; only the body is a\n// placeholder. An unterminated comment runs to EOF.\nconst maskBlockComment = (state: MaskState) => {\n\tconst close = state.src.indexOf('*/', state.pos + 2);\n\tconst bodyEnd = close < 0 ? state.src.length : close;\n\tmask(state, state.pos + 2, bodyEnd);\n\tnoteToken(state, close < 0 ? state.src.length : close + 2);\n};\n\nconst maskTemplate = (state: MaskState) => {\n\tconst end = templateScanner.template(state.src, state.pos);\n\tmask(state, state.pos, end);\n\tnoteToken(state, end);\n};\n\n// Only shield a string when its own text could be misread as a real import\n// (contains `from`/`import`/`require` + quote) — e.g. an example-code snippet\n// a page renders. A real import specifier string never matches, so it stays\n// visible and gets rewritten.\nconst scanString = (state: MaskState) => {\n\tconst end = endOfString(state.src, state.pos);\n\tif (RISKY_STRING_CONTENT.test(state.src.slice(state.pos, end)))\n\t\tmask(state, state.pos, end);\n\tnoteToken(state, end);\n};\n\n/** A `/` that may start a regex: copy the literal verbatim, or treat the\n * slash as division (plain code) when no regex ends on this line. */\nconst scanSlash = (state: MaskState) => {\n\tconst end = regexAllowedAt(state, state.pos)\n\t\t? endOfRegex(state.src, state.pos)\n\t\t: -1;\n\tif (end > 0) noteToken(state, end);\n\telse state.pos += 1;\n};\n\n/** Index of the next char that can start a token, or `src.length`. */\nconst nextInteresting = (src: string, from: number) => {\n\tconst len = src.length;\n\tlet pos = from;\n\twhile (pos < len) {\n\t\tconst charCode = src.charCodeAt(pos);\n\t\tif (\n\t\t\tcharCode === SLASH ||\n\t\t\tcharCode === BACKTICK ||\n\t\t\tcharCode === DOUBLE_QUOTE ||\n\t\t\tcharCode === SINGLE_QUOTE\n\t\t)\n\t\t\treturn pos;\n\t\tpos += 1;\n\t}\n\n\treturn pos;\n};\n\nconst scanToken = (state: MaskState) => {\n\tconst charCode = state.src.charCodeAt(state.pos);\n\tconst next = state.src.charCodeAt(state.pos + 1);\n\tif (charCode === SLASH && next === SLASH) maskLineComment(state);\n\telse if (charCode === SLASH && next === STAR) maskBlockComment(state);\n\telse if (charCode === BACKTICK) maskTemplate(state);\n\telse if (isQuoteCode(charCode)) scanString(state);\n\telse scanSlash(state);\n};\n\nexport const maskLiterals = (src: string): MaskedSource => {\n\tconst state: MaskState = {\n\t\tcopiedUpTo: 0,\n\t\thasToken: false,\n\t\tparts: [],\n\t\tpieces: [],\n\t\tpos: 0,\n\t\tsrc,\n\t\ttokenEnd: 0\n\t};\n\tconst len = src.length;\n\twhile (state.pos < len) {\n\t\tstate.pos = nextInteresting(src, state.pos);\n\t\tif (state.pos < len) scanToken(state);\n\t}\n\tstate.parts.push(src.slice(state.copiedUpTo));\n\tconst { pieces } = state;\n\n\tconst restoreRegex = new RegExp(`${SENTINEL}(\\\\d+)${SENTINEL}`, 'g');\n\tconst restore = (rewritten: string) =>\n\t\trewritten.replace(\n\t\t\trestoreRegex,\n\t\t\t(_placeholder, digits) => pieces[Number(digits)] ?? ''\n\t\t);\n\n\treturn { masked: state.parts.join(''), restore };\n};\n",
19
+ "/** Shields non-code spans from the regex/text-based import rewriters.\n *\n * The import rewriters (rewriteClientOutputs, rewriteReactImports,\n * rewriteImportsPlugin, the native Zig scanner, and compile's runtime-specifier\n * rewrite) replace `from \"X\"` / `import \"X\"` / `import(\"X\")` / `require(\"X\")`\n * across the whole file text. That text scan can't tell a real import from the\n * *text* `from 'X'` sitting inside a template literal / data string (an\n * example-code snippet a page renders) or a comment — so it rewrites the\n * snippet's specifier too. The browser bundle then diverges from the SSR\n * pre-render → React hydration mismatch on the code block.\n *\n * Fix: before rewriting, replace template literals and comments with opaque\n * placeholders, plus any string literal whose *own text* contains an\n * import-like sequence (`from`/`import`/`require` + quote); rewrite; then\n * restore them verbatim. A real import specifier string (e.g.\n * \"react/jsx-runtime\") never contains that sequence, so it is left untouched\n * and always gets rewritten — no matter what token precedes it. Regex literals\n * are skipped (copied verbatim) so their contents can't be misread as\n * strings/templates.\n *\n * Usage: `const { masked, restore } = maskLiterals(src)`, run the existing\n * rewriter on `masked`, then `restore(rewritten)`.\n *\n * Performance: the scanner jumps from one interesting character (`/`, `'`,\n * `\"`, backtick) to the next with `charCodeAt` and copies the plain code in\n * between as one slice, so the cost is proportional to the number of tokens\n * rather than the number of characters. The regex-vs-division decision at a\n * `/` looks backwards from that slash to the previous significant code\n * character (or the end of the previous literal/comment/regex token), which\n * is exactly the state the previous character-by-character scanner carried\n * forward. A dev bundle masks at ~10× the old throughput. */\n\n// Private-Use-Area sentinel: never appears in real source, carries no\n// from/import/quote chars, so placeholders can't collide with code or be matched\n// by the rewriters.\nexport const SENTINEL = String.fromCharCode(0xe000);\n\nexport type MaskedSource = {\n\tmasked: string;\n\trestore: (rewritten: string) => string;\n};\n\n// A string literal only needs shielding when its TEXT actually contains an\n// import-like sequence a rewriter could mistake for a real import — `from` /\n// `import` / `require` followed (through optional whitespace/paren) by a quote.\n// A genuine import specifier string (e.g. \"react/jsx-runtime\") never contains\n// that internally, so it is left untouched and always gets rewritten. This\n// replaces the old \"is this string in specifier position?\" heuristic, which\n// mis-masked real specifiers whenever the preceding token wasn't exactly\n// `from`/`import` (e.g. an intervening comment), leaving a bare specifier in one\n// bundled chunk and breaking hydration.\nconst RISKY_STRING_CONTENT = /\\b(?:from|import|require)\\s*\\(?\\s*[\"'`]/;\n\nconst code = (char: string) => char.charCodeAt(0);\nconst SLASH = code('/');\nconst STAR = code('*');\nconst BACKSLASH = code('\\\\');\nconst BACKTICK = code('`');\nconst DOUBLE_QUOTE = code('\"');\nconst SINGLE_QUOTE = code(\"'\");\nconst NEWLINE = code('\\n');\nconst CARRIAGE_RETURN = code('\\r');\nconst TAB = code('\\t');\nconst SPACE = code(' ');\nconst DOLLAR = code('$');\nconst OPEN_BRACE = code('{');\nconst CLOSE_BRACE = code('}');\nconst OPEN_BRACKET = code('[');\nconst CLOSE_BRACKET = code(']');\nconst CLOSE_PAREN = code(')');\nconst UNDERSCORE = code('_');\nconst DIGIT_ZERO = code('0');\nconst DIGIT_NINE = code('9');\nconst UPPER_A = code('A');\nconst UPPER_Z = code('Z');\nconst LOWER_A = code('a');\nconst LOWER_Z = code('z');\n/** \"No significant character yet\" (start of file / interpolation). */\nconst NONE = -1;\n\n// A `/` starts a regex literal (not division) when the previous significant\n// token is one of these chars/keywords, or nothing (start of file).\nconst REGEX_OK_AFTER_CODE = new Set([...'(,=:[!&|?{};+-*/%^~<>'].map(code));\nconst REGEX_OK_AFTER_WORD = new Set([\n\t'return',\n\t'typeof',\n\t'instanceof',\n\t'in',\n\t'of',\n\t'new',\n\t'delete',\n\t'void',\n\t'do',\n\t'else',\n\t'yield',\n\t'await',\n\t'case'\n]);\n\nconst isIdentCode = (charCode: number) =>\n\t(charCode >= LOWER_A && charCode <= LOWER_Z) ||\n\t(charCode >= UPPER_A && charCode <= UPPER_Z) ||\n\t(charCode >= DIGIT_ZERO && charCode <= DIGIT_NINE) ||\n\tcharCode === UNDERSCORE ||\n\tcharCode === DOLLAR;\n\nconst isLetterCode = (charCode: number) =>\n\t(charCode >= LOWER_A && charCode <= LOWER_Z) ||\n\t(charCode >= UPPER_A && charCode <= UPPER_Z);\n\nconst isSpaceCode = (charCode: number) =>\n\tcharCode === SPACE ||\n\tcharCode === TAB ||\n\tcharCode === CARRIAGE_RETURN ||\n\tcharCode === NEWLINE;\n\nconst isQuoteCode = (charCode: number) =>\n\tcharCode === DOUBLE_QUOTE || charCode === SINGLE_QUOTE;\n\n/** src[start] is a quote → index just past the closing quote (or the end of\n * the line for an unterminated string, or EOF). */\nconst endOfString = (src: string, start: number) => {\n\tconst quote = src.charCodeAt(start);\n\tconst len = src.length;\n\tlet pos = start + 1;\n\twhile (pos < len) {\n\t\tconst charCode = src.charCodeAt(pos);\n\t\tif (charCode === BACKSLASH) pos += 2;\n\t\telse if (charCode === quote) return pos + 1;\n\t\telse if (charCode === NEWLINE)\n\t\t\treturn pos; // unterminated guard\n\t\telse pos += 1;\n\t}\n\n\treturn pos;\n};\n\n/** Index just past the regex flags that start at `start`. */\nconst endOfRegexFlags = (src: string, start: number) => {\n\tlet pos = start;\n\twhile (pos < src.length && isLetterCode(src.charCodeAt(pos))) pos += 1;\n\n\treturn pos;\n};\n\n/** src[start] === '/' → index just past the regex literal and its flags, or\n * -1 when a newline arrives first (then the slash was division). */\nconst endOfRegex = (src: string, start: number) => {\n\tconst len = src.length;\n\tlet pos = start + 1;\n\tlet inClass = false;\n\twhile (pos < len) {\n\t\tconst charCode = src.charCodeAt(pos);\n\t\tif (charCode === NEWLINE) return -1;\n\t\tif (charCode === SLASH && !inClass)\n\t\t\treturn endOfRegexFlags(src, pos + 1);\n\t\tif (charCode === OPEN_BRACKET) inClass = true;\n\t\telse if (charCode === CLOSE_BRACKET) inClass = false;\n\t\tpos += charCode === BACKSLASH ? 2 : 1;\n\t}\n\n\treturn pos;\n};\n\ntype InterpolationState = {\n\tdepth: number;\n\tpos: number;\n\t/** Last significant (non-whitespace) code char inside the interpolation. */\n\tprevCode: number;\n\t/** Was the immediately previous char whitespace? */\n\tspace: boolean;\n\t/** Identifier immediately preceding (through whitespace). */\n\tword: string;\n};\n\nconst regexAllowedInInterpolation = (state: InterpolationState) =>\n\tstate.prevCode === NONE ||\n\tREGEX_OK_AFTER_CODE.has(state.prevCode) ||\n\tREGEX_OK_AFTER_WORD.has(state.word);\n\n/** A literal stands where a value would; not a word. */\nconst noteInterpolationToken = (\n\tstate: InterpolationState,\n\tend: number,\n\tprevCode: number\n) => {\n\tstate.pos = end;\n\tstate.prevCode = prevCode;\n\tstate.word = '';\n\tstate.space = false;\n};\n\nconst noteInterpolationCode = (\n\tstate: InterpolationState,\n\tcharCode: number,\n\tchar: string\n) => {\n\tif (charCode === OPEN_BRACE) state.depth += 1;\n\telse if (charCode === CLOSE_BRACE) state.depth -= 1;\n\tstate.pos += 1;\n\tif (isSpaceCode(charCode)) {\n\t\tstate.space = true;\n\n\t\treturn;\n\t}\n\tconst contiguous = isIdentCode(state.prevCode) && !state.space;\n\tif (isIdentCode(charCode))\n\t\tstate.word = contiguous ? state.word + char : char;\n\telse state.word = '';\n\tstate.prevCode = charCode;\n\tstate.space = false;\n};\n\nconst skipInterpolationRegex = (src: string, state: InterpolationState) => {\n\tconst end = endOfRegex(src, state.pos);\n\tif (end > 0) noteInterpolationToken(state, end, CLOSE_PAREN);\n\telse noteInterpolationCode(state, SLASH, '/');\n};\n\ntype TemplateScanner = {\n\t/** src index just past `${` → index just past the matching `}`. */\n\tinterpolation: (src: string, start: number) => number;\n\t/** src[start] === '`' → index just past the closing backtick. */\n\ttemplate: (src: string, start: number) => number;\n};\n\n// Tracks the previous significant token (prevCode/word) so a `/` inside the\n// interpolation is classified as a regex literal vs division. Without regex\n// handling, a regex that contains a quote — e.g. `${s.replace(/'/g, x)}` —\n// is misread as a string: `endOfString` runs past the interpolation, the\n// `{`/`}` depth desyncs, and the enclosing template is mis-masked to (nearly)\n// EOF, swallowing every real import after it (bare-specifier bug).\nconst scanInterpolation = (src: string, start: number) => {\n\tconst len = src.length;\n\tconst state: InterpolationState = {\n\t\tdepth: 1,\n\t\tpos: start,\n\t\tprevCode: NONE,\n\t\tspace: false,\n\t\tword: ''\n\t};\n\twhile (state.pos < len && state.depth > 0) {\n\t\tconst charCode = src.charCodeAt(state.pos);\n\t\tconst next = src.charCodeAt(state.pos + 1);\n\t\tif (charCode === BACKSLASH) state.pos += 2;\n\t\telse if (charCode === BACKTICK)\n\t\t\tnoteInterpolationToken(\n\t\t\t\tstate,\n\t\t\t\ttemplateScanner.template(src, state.pos),\n\t\t\t\tCLOSE_PAREN\n\t\t\t);\n\t\telse if (isQuoteCode(charCode))\n\t\t\tnoteInterpolationToken(\n\t\t\t\tstate,\n\t\t\t\tendOfString(src, state.pos),\n\t\t\t\tDOUBLE_QUOTE\n\t\t\t);\n\t\telse if (charCode === SLASH && next === SLASH)\n\t\t\tstate.pos = endOfLineComment(src, state.pos);\n\t\telse if (charCode === SLASH && next === STAR)\n\t\t\tstate.pos = endOfBlockComment(src, state.pos);\n\t\telse if (charCode === SLASH && regexAllowedInInterpolation(state))\n\t\t\tskipInterpolationRegex(src, state);\n\t\telse noteInterpolationCode(state, charCode, src[state.pos] ?? '');\n\t}\n\n\treturn state.pos;\n};\n\nconst scanTemplate = (src: string, start: number) => {\n\tconst len = src.length;\n\tlet pos = start + 1;\n\twhile (pos < len) {\n\t\tconst charCode = src.charCodeAt(pos);\n\t\tif (charCode === BACKSLASH) pos += 2;\n\t\telse if (charCode === BACKTICK) return pos + 1;\n\t\telse if (charCode === DOLLAR && src.charCodeAt(pos + 1) === OPEN_BRACE)\n\t\t\tpos = templateScanner.interpolation(src, pos + 2);\n\t\telse pos += 1;\n\t}\n\n\treturn pos;\n};\n\nconst templateScanner: TemplateScanner = {\n\tinterpolation: scanInterpolation,\n\ttemplate: scanTemplate\n};\n\n/** src[start..start+1] === '//' → index of the terminating newline (or EOF). */\nconst endOfLineComment = (src: string, start: number) => {\n\tconst newline = src.indexOf('\\n', start + 2);\n\n\treturn newline < 0 ? src.length : newline;\n};\n\n/** src[start..start+1] === '/*' → index just past the closing delimiter (or EOF). */\nconst endOfBlockComment = (src: string, start: number) => {\n\tconst close = src.indexOf('*/', start + 2);\n\n\treturn close < 0 ? src.length : close + 2;\n};\n\ntype MaskState = {\n\t/** src index up to which plain code has been copied to `parts`. */\n\tcopiedUpTo: number;\n\t/** Has any literal/comment/regex token been consumed yet? */\n\thasToken: boolean;\n\t/** Masked spans, in placeholder order. */\n\tpieces: string[];\n\t/** Output chunks (plain code slices and placeholders). */\n\tparts: string[];\n\t/** Current scan position. */\n\tpos: number;\n\tsrc: string;\n\t/** src index just past the most recent token. */\n\ttokenEnd: number;\n};\n\n/** Replace src[start, end) with a placeholder; copies the plain code before\n * it first. */\nconst mask = (state: MaskState, start: number, end: number) => {\n\tstate.parts.push(\n\t\tstate.src.slice(state.copiedUpTo, start),\n\t\t`${SENTINEL}${state.pieces.length}${SENTINEL}`\n\t);\n\tstate.pieces.push(state.src.slice(start, end));\n\tstate.copiedUpTo = end;\n};\n\n/** A literal/comment/regex ends here; later chars are plain code. */\nconst noteToken = (state: MaskState, end: number) => {\n\tstate.pos = end;\n\tstate.tokenEnd = end;\n\tstate.hasToken = true;\n};\n\n/** Would a `/` at `slash` start a regex literal? Looks back over the plain\n * code since the previous token for the last significant char (whitespace\n * skipped) and the identifier ending there. Reaching the previous token\n * means a literal/regex/comment (never regex-ok) — unless there is none\n * yet, i.e. only whitespace precedes the slash (regex-ok). */\nconst regexAllowedAt = (state: MaskState, slash: number) => {\n\tconst { src, tokenEnd } = state;\n\tlet pos = slash - 1;\n\twhile (pos >= tokenEnd && isSpaceCode(src.charCodeAt(pos))) pos -= 1;\n\tif (pos < tokenEnd) return !state.hasToken;\n\tconst prevCode = src.charCodeAt(pos);\n\tif (REGEX_OK_AFTER_CODE.has(prevCode)) return true;\n\tif (!isIdentCode(prevCode)) return false;\n\tlet wordStart = pos;\n\twhile (wordStart > tokenEnd && isIdentCode(src.charCodeAt(wordStart - 1)))\n\t\twordStart -= 1;\n\n\treturn REGEX_OK_AFTER_WORD.has(src.slice(wordStart, pos + 1));\n};\n\nconst maskLineComment = (state: MaskState) => {\n\tconst end = endOfLineComment(state.src, state.pos);\n\tmask(state, state.pos + 2, end);\n\tnoteToken(state, end);\n};\n\n// The `/*` and `*/` delimiters stay in the masked text; only the body is a\n// placeholder. An unterminated comment runs to EOF.\nconst maskBlockComment = (state: MaskState) => {\n\tconst close = state.src.indexOf('*/', state.pos + 2);\n\tconst bodyEnd = close < 0 ? state.src.length : close;\n\tmask(state, state.pos + 2, bodyEnd);\n\tnoteToken(state, close < 0 ? state.src.length : close + 2);\n};\n\nconst maskTemplate = (state: MaskState) => {\n\tconst end = templateScanner.template(state.src, state.pos);\n\tmask(state, state.pos, end);\n\tnoteToken(state, end);\n};\n\n// Only shield a string when its own text could be misread as a real import\n// (contains `from`/`import`/`require` + quote) — e.g. an example-code snippet\n// a page renders. A real import specifier string never matches, so it stays\n// visible and gets rewritten.\nconst scanString = (state: MaskState) => {\n\tconst end = endOfString(state.src, state.pos);\n\tif (RISKY_STRING_CONTENT.test(state.src.slice(state.pos, end)))\n\t\tmask(state, state.pos, end);\n\tnoteToken(state, end);\n};\n\n/** A `/` that may start a regex: copy the literal verbatim, or treat the\n * slash as division (plain code) when no regex ends on this line. */\nconst scanSlash = (state: MaskState) => {\n\tconst end = regexAllowedAt(state, state.pos)\n\t\t? endOfRegex(state.src, state.pos)\n\t\t: -1;\n\tif (end > 0) noteToken(state, end);\n\telse state.pos += 1;\n};\n\n/** Index of the next char that can start a token, or `src.length`. */\nconst nextInteresting = (src: string, from: number) => {\n\tconst len = src.length;\n\tlet pos = from;\n\twhile (pos < len) {\n\t\tconst charCode = src.charCodeAt(pos);\n\t\tif (\n\t\t\tcharCode === SLASH ||\n\t\t\tcharCode === BACKTICK ||\n\t\t\tcharCode === DOUBLE_QUOTE ||\n\t\t\tcharCode === SINGLE_QUOTE\n\t\t)\n\t\t\treturn pos;\n\t\tpos += 1;\n\t}\n\n\treturn pos;\n};\n\nconst scanToken = (state: MaskState) => {\n\tconst charCode = state.src.charCodeAt(state.pos);\n\tconst next = state.src.charCodeAt(state.pos + 1);\n\tif (charCode === SLASH && next === SLASH) maskLineComment(state);\n\telse if (charCode === SLASH && next === STAR) maskBlockComment(state);\n\telse if (charCode === BACKTICK) maskTemplate(state);\n\telse if (isQuoteCode(charCode)) scanString(state);\n\telse scanSlash(state);\n};\n\nexport const maskLiterals = (src: string): MaskedSource => {\n\tconst state: MaskState = {\n\t\tcopiedUpTo: 0,\n\t\thasToken: false,\n\t\tparts: [],\n\t\tpieces: [],\n\t\tpos: 0,\n\t\tsrc,\n\t\ttokenEnd: 0\n\t};\n\tconst len = src.length;\n\twhile (state.pos < len) {\n\t\tstate.pos = nextInteresting(src, state.pos);\n\t\tif (state.pos < len) scanToken(state);\n\t}\n\tstate.parts.push(src.slice(state.copiedUpTo));\n\tconst { pieces } = state;\n\n\tconst restoreRegex = new RegExp(`${SENTINEL}(\\\\d+)${SENTINEL}`, 'g');\n\tconst restore = (rewritten: string) =>\n\t\trewritten.replace(\n\t\t\trestoreRegex,\n\t\t\t(_placeholder, digits) => pieces[Number(digits)] ?? ''\n\t\t);\n\n\treturn { masked: state.parts.join(''), restore };\n};\n",
20
20
  "/** Compiled bare-specifier → vendor-path rewriter shared by every import\n * rewrite pass (the client-output post-process, the HMR module server, the\n * mobile preview bundle, the SSR Angular vendoring).\n *\n * One rewriter is compiled per distinct vendor map — never per file and never\n * per specifier — and holds a single alternation of every specifier, so the\n * JavaScript path is O(content) per family: one `replace` with one combined\n * regex instead of three fresh regexes and three full sweeps per specifier.\n *\n * Three regexes are compiled:\n * - `mainRegex` — the adjacency forms `from \"X\"` / `import \"X\"` /\n * `import(\"X\")` (whitespace allowed).\n * - `sweepRegex` — the safety net: the keyword may be separated from the\n * opening quote by whitespace and masked comments (`from`, a masked\n * comment, then `\"X\"`),\n * plus `require(\"X\")`. Runs on MASKED text only.\n * - `unionRegex` — main ∪ sweep in one pass, for a family that sweeps. Every\n * alternative re-emits its matched prefix/suffix\n * verbatim and swaps only the specifier, so the union rewrites exactly the\n * occurrences the sequential main-then-sweep passes did.\n *\n * Vendor map values are URL paths (`/vendor/x.js`); they never equal a key\n * and never contain quotes, so a rewritten specifier can't re-match. */\n\nimport { maskLiterals, SENTINEL } from './maskLiterals';\n\nexport type SpecifierRewriter = {\n\tlookup: Map<string, string>;\n\t/** Adjacency forms only. */\n\tmainRegex: RegExp;\n\t/** `\"spec` / `'spec` for every specifier — the raw-content precheck. */\n\tquotedSpecifiers: string[];\n\t/** Keyword + whitespace/masked-comment gap + quote; masked text only. */\n\tsweepRegex: RegExp;\n\t/** main ∪ sweep — the single pass for a sweeping family. */\n\tunionRegex: RegExp;\n};\n\nexport type RewriteSpecifierOptions = {\n\t/** Also run the masked-comment safety-net sweep. */\n\tsweep: boolean;\n};\n\nconst escapeRegex = (str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n// `maskLiterals` keeps the `/* */` and `//` delimiters and turns only the\n// comment body into a placeholder, so an intervening comment appears as\n// `/*<ph>*/` or `//<ph>`, not a bare placeholder — tolerate all three.\nconst PLACEHOLDER = `${SENTINEL}\\\\d+${SENTINEL}`;\nconst GAP = `(?:\\\\s|${PLACEHOLDER}|/\\\\*${PLACEHOLDER}\\\\*/|//${PLACEHOLDER})*`;\nconst QUOTE = `[\"']`;\n\nconst ADJACENT_PREFIXES = [`from\\\\s*${QUOTE}`, `import\\\\s*${QUOTE}`];\nconst ADJACENT_DYNAMIC_PREFIX = `import\\\\s*\\\\(\\\\s*${QUOTE}`;\nconst ADJACENT_DYNAMIC_SUFFIX = `${QUOTE}\\\\s*\\\\)`;\nconst SWEEP_PREFIXES = [\n\t`\\\\bfrom${GAP}${QUOTE}`,\n\t`\\\\bimport${GAP}${QUOTE}`,\n\t`\\\\b(?:import|require)${GAP}\\\\(${GAP}${QUOTE}`\n];\n\nconst rewriterCache = new Map<string, SpecifierRewriter>();\n\nconst cacheKey = (vendorPaths: Record<string, string>) =>\n\tObject.entries(vendorPaths)\n\t\t.sort(([left], [right]) => left.localeCompare(right))\n\t\t.map(([specifier, webPath]) => `${specifier}\\0${webPath}\\0`)\n\t\t.join('');\n\n/** `(prefixes)(alt)(quote)` plus, when asked, the adjacency dynamic-import\n * form whose suffix must include the closing paren. */\nconst compileRegex = (\n\tprefixes: string[],\n\talternation: string,\n\twithAdjacentDynamic: boolean\n) => {\n\tconst plain = `(${prefixes.join('|')})(${alternation})(${QUOTE})`;\n\tif (!withAdjacentDynamic) return new RegExp(plain, 'g');\n\tconst dynamic = `(${ADJACENT_DYNAMIC_PREFIX})(${alternation})(${ADJACENT_DYNAMIC_SUFFIX})`;\n\n\treturn new RegExp(`${plain}|${dynamic}`, 'g');\n};\n\nexport const compileSpecifierRewriter = (\n\tvendorPaths: Record<string, string>\n) => {\n\tconst key = cacheKey(vendorPaths);\n\tconst cached = rewriterCache.get(key);\n\tif (cached) return cached;\n\n\t// Longest first so a specifier never partially matches a longer one.\n\tconst replacements = Object.entries(vendorPaths).sort(\n\t\t([specA], [specB]) => specB.length - specA.length\n\t);\n\tconst alternation = replacements\n\t\t.map(([specifier]) => escapeRegex(specifier))\n\t\t.join('|');\n\tconst rewriter: SpecifierRewriter = {\n\t\tlookup: new Map(replacements),\n\t\tmainRegex: compileRegex(ADJACENT_PREFIXES, alternation, true),\n\t\tquotedSpecifiers: replacements.flatMap(([specifier]) => [\n\t\t\t`\"${specifier}`,\n\t\t\t`'${specifier}`\n\t\t]),\n\t\tsweepRegex: compileRegex(SWEEP_PREFIXES, alternation, false),\n\t\tunionRegex: compileRegex(\n\t\t\t[...ADJACENT_PREFIXES, ...SWEEP_PREFIXES],\n\t\t\talternation,\n\t\t\ttrue\n\t\t)\n\t};\n\trewriterCache.set(key, rewriter);\n\n\treturn rewriter;\n};\n\n/** Cheap raw-content precheck: a real import always has the specifier right\n * after an opening quote, so no `\"spec` / `'spec` substring means no family\n * can match and the file can be skipped without masking it. */\nexport const hasSpecifierCandidate = (\n\tcontent: string,\n\trewriter: SpecifierRewriter\n) => rewriter.quotedSpecifiers.some((quoted) => content.includes(quoted));\n\nconst asGroup = (value: unknown) =>\n\ttypeof value === 'string' ? value : undefined;\n\n/** Replacer for every compiled regex: the plain alternative fills groups 1-3,\n * the dynamic alternative groups 4-6. Prefix and suffix are re-emitted\n * verbatim; only the specifier is swapped for its vendor path. */\nconst replaceSpecifier =\n\t(lookup: Map<string, string>) =>\n\t(match: string, ...groups: unknown[]) => {\n\t\tconst [prefixA, specA, suffixA, prefixB, specB, suffixB] = groups;\n\t\tconst prefix = asGroup(prefixA) ?? asGroup(prefixB);\n\t\tconst specifier = asGroup(specA) ?? asGroup(specB);\n\t\tconst suffix = asGroup(suffixA) ?? asGroup(suffixB);\n\t\tif (\n\t\t\tprefix === undefined ||\n\t\t\tspecifier === undefined ||\n\t\t\tsuffix === undefined\n\t\t)\n\t\t\treturn match;\n\t\tconst webPath = lookup.get(specifier);\n\n\t\treturn webPath === undefined ? match : `${prefix}${webPath}${suffix}`;\n\t};\n\n/** Mask → rewrite one family → restore, with the raw-content precheck. */\nexport const rewriteContentSpecifiers = (\n\tcontent: string,\n\trewriter: SpecifierRewriter,\n\toptions: RewriteSpecifierOptions\n) => {\n\tif (!hasSpecifierCandidate(content, rewriter)) return content;\n\t// Mask template literals + comments so `from '...'` inside example-code\n\t// snippets isn't rewritten like a real import (would diverge from the SSR\n\t// output → hydration mismatch); restore them after.\n\tconst { masked, restore } = maskLiterals(content);\n\n\treturn restore(rewriteSpecifiers(masked, rewriter, options));\n};\n\n/** Rewrite the specifiers of one family in MASKED text with a single\n * combined-regex pass. */\nexport const rewriteSpecifiers = (\n\tmasked: string,\n\trewriter: SpecifierRewriter,\n\toptions: RewriteSpecifierOptions\n) =>\n\tmasked.replace(\n\t\toptions.sweep ? rewriter.unionRegex : rewriter.mainRegex,\n\t\treplaceSpecifier(rewriter.lookup)\n\t);\n",
21
21
  "/** In-pipeline import rewriter for Bun.build outputs.\n *\n * Replaces the previous post-build `rewriteImports` + `rewriteVendorDirectories`\n * passes that walked file paths captured at scheduling time and read them off\n * disk later — a race window where the next rebuild could sweep a path between\n * capture and read, producing ENOENT.\n *\n * Now: the rewrite operates on the `BuildArtifact` outputs returned by\n * `Bun.build()` itself, in the same await chain. Each output's content is\n * transformed (using the native Zig scanner when available, falling back to\n * a single combined-regex JS pass), then written back to disk. The standalone\n * iteration over a captured path list goes away.\n *\n * The main build pipeline no longer calls `rewriteBuildOutputs` for client\n * outputs — `rewriteClientOutputs` folds this family into its single pass. */\n\nimport type { BuildArtifact, BuildOutput } from 'bun';\nimport { readdir } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport {\n\tcompileSpecifierRewriter,\n\trewriteContentSpecifiers,\n\trewriteSpecifiers\n} from './specifierRewriter';\n\ntype MissingNamespaceImport = { ident: string; path: string };\n\nconst REEXPORT_PATTERN =\n\t/__reExport\\(\\s*[A-Za-z_$][\\w$]*\\s*,\\s*([A-Za-z_$][\\w$]*)\\s*\\)/g;\nconst IMPORT_PATH_PATTERN = /(?:from\\s+|import\\s*)[\"']([^\"']+)[\"']/g;\n\nconst isMissingFile = (error: unknown) =>\n\terror instanceof Error && 'code' in error && error.code === 'ENOENT';\n\n/** Helper to wrap a `Bun.build` call so the rewrite happens in-pipeline.\n * Use as: `const result = await buildWithImportRewrite(bunBuild(config), vendorPaths)`. */\nexport const buildWithImportRewrite = async (\n\tpendingBuild: Promise<BuildOutput>,\n\tvendorPaths: Record<string, string>\n) => {\n\tconst result = await pendingBuild;\n\tif (result.outputs.length > 0) {\n\t\tawait rewriteBuildOutputs(result.outputs, vendorPaths);\n\t}\n\n\treturn result;\n};\n\n/** Workaround for a Bun bundler bug: when a module does both\n * `import { x } from 'X'` AND `export * from 'X'`, and `X` is externalized,\n * Bun synthesizes a `__reExport(exports_Y, ns)` call but drops the\n * corresponding `import * as ns from \"X\"` declaration. The resulting chunk\n * references an undeclared identifier and crashes at module evaluation.\n *\n * Detects the pattern and injects the missing namespace import. The source\n * path is recovered from a sibling named-import in the same chunk (Bun keeps\n * that intact). */\nexport const fixMissingReExportNamespacesInContent = (content: string) => {\n\tconst missing = collectMissingNamespaceImports(content);\n\tif (missing.length === 0) return content;\n\n\tconst inserts = missing\n\t\t.map((entry) => `import * as ${entry.ident} from \"${entry.path}\";`)\n\t\t.join('\\n');\n\n\treturn `${inserts}\\n${content}`;\n};\n\n/** Is `ident` already declared or imported (in any form) in this chunk? */\nconst isIdentifierBound = (content: string, ident: string) => {\n\tconst nsImportRe = new RegExp(\n\t\t`\\\\bimport\\\\s*\\\\*\\\\s*as\\\\s+${ident}\\\\s+from\\\\b`\n\t);\n\tconst declRe = new RegExp(\n\t\t`\\\\b(?:const|let|var|function|class)\\\\s+${ident}\\\\b`\n\t);\n\tconst namedImportRe = new RegExp(\n\t\t`\\\\bimport\\\\s*\\\\{[^}]*\\\\b${ident}\\\\b[^}]*\\\\}\\\\s*from\\\\b`\n\t);\n\n\treturn (\n\t\tnsImportRe.test(content) ||\n\t\tdeclRe.test(content) ||\n\t\tnamedImportRe.test(content)\n\t);\n};\n\n/** Bun keeps a sibling named import from the same module in the chunk; its\n * path's basename (minus extension and a leading `_`) matches the dropped\n * namespace identifier, or ends with `_${ident}`. */\nconst findNamespaceSourcePath = (content: string, ident: string) => {\n\tIMPORT_PATH_PATTERN.lastIndex = 0;\n\tfor (const [, importPath] of content.matchAll(IMPORT_PATH_PATTERN)) {\n\t\tif (!importPath) continue;\n\t\tconst base = importPath\n\t\t\t.split('/')\n\t\t\t.pop()\n\t\t\t?.replace(/\\.[mc]?js$/, '');\n\t\tif (!base) continue;\n\t\tconst normalized = base.startsWith('_') ? base.slice(1) : base;\n\t\tif (normalized === ident || normalized.endsWith(`_${ident}`)) {\n\t\t\treturn importPath;\n\t\t}\n\t}\n\n\treturn undefined;\n};\n\nconst collectMissingNamespaceImports = (content: string) => {\n\tREEXPORT_PATTERN.lastIndex = 0;\n\tconst missing: MissingNamespaceImport[] = [];\n\tconst seen = new Set<string>();\n\tfor (const [, ident] of content.matchAll(REEXPORT_PATTERN)) {\n\t\tif (!ident || seen.has(ident)) continue;\n\t\tif (isIdentifierBound(content, ident)) continue;\n\t\tconst sourcePath = findNamespaceSourcePath(content, ident);\n\t\tif (!sourcePath) continue;\n\t\tseen.add(ident);\n\t\tmissing.push({ ident, path: sourcePath });\n\t}\n\n\treturn missing;\n};\n\n/** One combined-regex pass over the (already masked) content — O(content),\n * not O(specifiers × content). Exported for tests. */\nexport const jsRewriteImports = (\n\tcontent: string,\n\treplacements: [string, string][]\n) =>\n\trewriteSpecifiers(\n\t\tcontent,\n\t\tcompileSpecifierRewriter(Object.fromEntries(replacements)),\n\t\t{ sweep: false }\n\t);\n\n/** In-pipeline output rewrite. Reads each emitted .js artifact, applies the\n * rewrite, and writes back. Operates on `BuildArtifact[]` straight off\n * `Bun.build()`'s result so paths are guaranteed-current — no race window. */\nexport const rewriteBuildOutputs = async (\n\toutputs: BuildArtifact[],\n\tvendorPaths: Record<string, string>\n) => {\n\tif (Object.keys(vendorPaths).length === 0) return;\n\n\tawait Promise.all(\n\t\toutputs\n\t\t\t.filter(isReadableArtifact)\n\t\t\t.map((artifact) => rewriteArtifact(artifact, vendorPaths))\n\t);\n};\n\nconst isReadableArtifact = (artifact: BuildArtifact) =>\n\tartifact.path.endsWith('.js');\n\n// A rebuild may sweep an output between scheduling and read/write; a missing\n// file is not an error for a post-process pass.\nconst readArtifactText = async (artifact: BuildArtifact) => {\n\ttry {\n\t\treturn await artifact.text();\n\t} catch (error) {\n\t\tif (isMissingFile(error)) return undefined;\n\t\tthrow error;\n\t}\n};\n\nconst readFileText = async (filePath: string) => {\n\ttry {\n\t\treturn await Bun.file(filePath).text();\n\t} catch (error) {\n\t\tif (isMissingFile(error)) return undefined;\n\t\tthrow error;\n\t}\n};\n\nconst writeFileText = async (filePath: string, content: string) => {\n\ttry {\n\t\tawait Bun.write(filePath, content);\n\t} catch (error) {\n\t\tif (isMissingFile(error)) return;\n\t\tthrow error;\n\t}\n};\n\nconst rewriteArtifact = async (\n\tartifact: BuildArtifact,\n\tvendorPaths: Record<string, string>\n) => {\n\tif (Object.keys(vendorPaths).length === 0) return;\n\tconst original = await readArtifactText(artifact);\n\tif (original === undefined) return;\n\n\tconst rewritten = rewriteImportsInContent(original, vendorPaths);\n\tif (rewritten === original) return;\n\tawait writeFileText(artifact.path, rewritten);\n};\n\n/** Like `rewriteBuildOutputs`, but takes a separate per-artifact resolver to\n * produce path maps. Used for the SSR-side @angular/* rewrite which uses\n * paths relative to each artifact's directory. */\nexport const rewriteBuildOutputsWith = async (\n\toutputs: BuildArtifact[],\n\tresolveVendorPaths: (artifact: BuildArtifact) => Record<string, string>\n) => {\n\tawait Promise.all(\n\t\toutputs\n\t\t\t.filter(isReadableArtifact)\n\t\t\t.map((artifact) =>\n\t\t\t\trewriteArtifact(artifact, resolveVendorPaths(artifact))\n\t\t\t)\n\t);\n};\n\n/** Apply the bare-specifier → vendor-URL rewrite to a single chunk of text. */\nexport const rewriteImportsInContent = (\n\tcontent: string,\n\tvendorPaths: Record<string, string>\n) => {\n\tif (Object.keys(vendorPaths).length === 0) return content;\n\n\treturn rewriteContentSpecifiers(\n\t\tcontent,\n\t\tcompileSpecifierRewriter(vendorPaths),\n\t\t{ sweep: false }\n\t);\n};\n\nconst listJsFiles = async (dir: string) => {\n\ttry {\n\t\tconst entries = await readdir(dir);\n\n\t\treturn entries\n\t\t\t.filter((entry) => entry.endsWith('.js'))\n\t\t\t.map((entry) => join(dir, entry));\n\t} catch {\n\t\t// missing dir is fine — that framework wasn't used\n\t\treturn [];\n\t}\n};\n\nconst rewriteVendorFile = async (\n\tfilePath: string,\n\tvendorPaths: Record<string, string>\n) => {\n\tconst original = await readFileText(filePath);\n\tif (original === undefined) return;\n\n\tconst next = fixMissingReExportNamespacesInContent(\n\t\trewriteImportsInContent(original, vendorPaths)\n\t);\n\tif (next === original) return;\n\tawait writeFileText(filePath, next);\n};\n\n/** Apply the rewrite + re-export fix to every .js file inside a list of\n * vendor directories. Used after vendor builds where each pipeline emits\n * files that may externalize specifiers owned by another pipeline.\n *\n * This still walks the directory because the cross-vendor rewrite happens\n * AFTER all vendor builds complete (so every framework's path map is\n * available) — it doesn't have a single `BuildArtifact[]` to operate on.\n * ENOENT during read/write is tolerated for the same race-protection\n * reason as the in-pipeline path. */\nexport const rewriteVendorDirectories = async (\n\tvendorDirs: string[],\n\tvendorPaths: Record<string, string>\n) => {\n\tif (Object.keys(vendorPaths).length === 0) return;\n\n\tconst fileLists = await Promise.all(vendorDirs.map(listJsFiles));\n\tawait Promise.all(\n\t\tfileLists\n\t\t\t.flat()\n\t\t\t.map((filePath) => rewriteVendorFile(filePath, vendorPaths))\n\t);\n};\n",
22
22
  "import { mkdir } from 'node:fs/promises';\nimport { dirname, join, relative } from 'node:path';\nimport { resolveAngularRuntimePath } from '../angular/resolveAngularPackage';\nimport { rewriteImportsInContent } from '../build/rewriteImportsPlugin';\nimport { isProductionRuntime } from '../utils/runtimeMode';\n\n// On-the-fly server-module compiler for cross-framework Angular islands —\n// the Angular analogue of `compileSvelteServerModule`/`compileVueServerModule`.\n//\n// At SSR the island registry's build reference for an Angular island points at\n// the raw component `.ts`. Importing it directly resolves its bare `@angular/*`\n// to node_modules — a DIFFERENT Angular instance than the pre-linked server\n// vendor that the render pipeline (`getAngularDeps`) and every bundled server\n// page use — so the JIT-compiled component injects across instances and every\n// DI lookup fails with NG0201. (Dev shares one node_modules Angular, so it only\n// bites production.)\n//\n// Fix: bundle the component with its relative deps (sibling components, the\n// shared store) but leave every npm package external, then rewrite the bare\n// `@angular/*` specifiers to the same vendor files `getAngularDeps` resolves.\n// The component then JIT-compiles against the vendor Angular, so its factory and\n// the render pipeline's injector share one instance. Package deps stay external:\n// `@angular/*` is redirected to the vendor; `IslandStore`\n// (`@absolutejs/absolute/angular`, `providedIn: 'root'`, no constructor deps)\n// resolves cross-instance via its plain `ɵprov`; and the vendor\n// `@angular/compiler` JIT facade is already loaded by the bundled server entry.\n// (Bundling the package graph instead drags in Angular's SSR view-engine\n// optional deps — `consolidate` → ejs/handlebars/… — which fail to resolve.)\n\nconst serverCacheRoot = join(\n\tprocess.cwd(),\n\t'.absolutejs',\n\t'islands',\n\t'angular'\n);\nconst compiledModuleCache = new Map<string, Promise<string>>();\nconst ANGULAR_SPECIFIER_RE = /[\"'](@angular\\/[^\"']+)[\"']/g;\n\nconst getCachedModulePath = (sourcePath: string) => {\n\tconst relativeSourcePath = relative(process.cwd(), sourcePath).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\tconst normalizedSourcePath = relativeSourcePath.startsWith('..')\n\t\t? sourcePath.replace(/[:\\\\/]/g, '_')\n\t\t: relativeSourcePath;\n\n\treturn join(serverCacheRoot, `${normalizedSourcePath}.server.js`);\n};\n\n// Map every `@angular/*` specifier the bundle still imports to its vendor file.\n// Gated on `isProductionRuntime()` to stay in lockstep with `getAngularDeps`,\n// which only resolves to the vendor in production (`useBareSpecifiers =\n// !isProductionRuntime()`) and uses bare node_modules specifiers otherwise — in\n// dev and during the build-time static prerender. Rewriting unconditionally\n// would pin the component to the vendor while the render pipeline used\n// node_modules, re-creating the NG0201 dual-instance split in reverse.\nconst collectVendorPaths = (code: string) => {\n\tconst vendorPaths: Record<string, string> = {};\n\tif (!isProductionRuntime()) {\n\t\treturn vendorPaths;\n\t}\n\tconst specifiers = new Set(\n\t\t[...code.matchAll(ANGULAR_SPECIFIER_RE)].map((match) => match[1])\n\t);\n\tspecifiers.forEach((specifier) => {\n\t\tif (!specifier) return;\n\t\tconst resolved = resolveAngularRuntimePath(specifier);\n\t\tif (resolved === specifier) return;\n\t\tvendorPaths[specifier] = resolved;\n\t});\n\n\treturn vendorPaths;\n};\n\nconst buildAngularServerModule = async (sourcePath: string) => {\n\tconst result = await Bun.build({\n\t\tentrypoints: [sourcePath],\n\t\tformat: 'esm',\n\t\tpackages: 'external',\n\t\ttarget: 'bun',\n\t\tthrow: false\n\t});\n\tconst entry = result.outputs.find(\n\t\t(output) => output.kind === 'entry-point'\n\t);\n\tif (!result.success || !entry) {\n\t\tconst message = result.logs.map((log) => String(log)).join('\\n');\n\t\tthrow new Error(\n\t\t\t`Failed to compile Angular island server module for \"${sourcePath}\":\\n${message}`\n\t\t);\n\t}\n\n\tconst code = await entry.text();\n\tconst rewritten = rewriteImportsInContent(code, collectVendorPaths(code));\n\tconst modulePath = getCachedModulePath(sourcePath);\n\tawait mkdir(dirname(modulePath), { recursive: true });\n\tawait Bun.write(modulePath, rewritten);\n\n\treturn modulePath;\n};\n\nexport const compileAngularServerModule = (sourcePath: string) => {\n\tconst cached = compiledModuleCache.get(sourcePath);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst compiledModulePromise = buildAngularServerModule(sourcePath);\n\tcompiledModuleCache.set(sourcePath, compiledModulePromise);\n\n\treturn compiledModulePromise;\n};\n",
23
- "import { resolve, join } from 'node:path';\nimport { existsSync, readFileSync } from 'node:fs';\n\n/**\n * Resolve a bare module import (e.g. \"@absolutejs/absolute/svelte/components/Image.svelte\")\n * to an absolute file path by reading the package's exports map in package.json.\n *\n * Returns the resolved absolute path, or null if the import can't be resolved.\n */\ntype ExportConditions = 'browser' | 'import';\n\nconst resolveExportPath = (\n\tentry: unknown,\n\tconditions: ExportConditions[]\n) => {\n\tif (typeof entry === 'string') return entry;\n\tif (!entry || typeof entry !== 'object') return null;\n\n\tfor (const condition of conditions) {\n\t\tconst target = Reflect.get(entry, condition);\n\t\tif (typeof target === 'string') {\n\t\t\treturn target;\n\t\t}\n\t}\n\n\treturn null;\n};\n\nexport const resolvePackageImport = (\n\tspecifier: string,\n\tconditions: ExportConditions[] = ['import']\n) => {\n\t// Only handle bare module imports (not relative or absolute paths)\n\tif (specifier.startsWith('.') || specifier.startsWith('/')) return null;\n\n\t// Split into package name and subpath\n\tconst parts = specifier.split('/');\n\tconst isScoped = specifier.startsWith('@');\n\tconst packageName = isScoped ? `${parts[0]}/${parts[1]}` : parts[0];\n\tconst subpath = isScoped ? parts.slice(2).join('/') : parts.slice(1).join('/');\n\tconst exportKey = subpath ? `./${subpath}` : '.';\n\n\tconst currentPackageJsonPath = resolve(process.cwd(), 'package.json');\n\tconst currentPackageJson = existsSync(currentPackageJsonPath)\n\t\t? JSON.parse(readFileSync(currentPackageJsonPath, 'utf-8'))\n\t\t: null;\n\tconst currentPackageDir =\n\t\tcurrentPackageJson?.name === packageName ? process.cwd() : null;\n\tconst packageDir =\n\t\tcurrentPackageDir ?? resolve(process.cwd(), 'node_modules', packageName ?? '');\n\tconst packageJsonPath = join(packageDir, 'package.json');\n\n\tif (!existsSync(packageJsonPath)) return null;\n\n\ttry {\n\t\tconst packageJson =\n\t\t\tcurrentPackageDir && currentPackageJson\n\t\t\t\t? currentPackageJson\n\t\t\t\t: JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\tconst {exports} = packageJson;\n\n\t\tif (!exports) return null;\n\n\t\t// Try exact match first, then try without extension for .svelte/.vue files\n\t\tconst entry = exports[exportKey];\n\n\t\tif (!entry) return null;\n\n\t\tconst importPath = resolveExportPath(entry, conditions);\n\n\t\tif (!importPath) return null;\n\n\t\tif (currentPackageDir && importPath.startsWith('./dist/')) {\n\t\t\tconst sourceCandidate = resolve(\n\t\t\t\tpackageDir,\n\t\t\t\timportPath.replace(/^\\.\\/dist\\//, './src/')\n\t\t\t);\n\t\t\tif (existsSync(sourceCandidate)) {\n\t\t\t\treturn sourceCandidate;\n\t\t\t}\n\t\t}\n\n\t\tconst resolved = resolve(packageDir, importPath);\n\n\t\treturn existsSync(resolved) ? resolved : null;\n\t} catch {\n\t\treturn null;\n\t}\n};\n",
23
+ "import { resolve, join } from 'node:path';\nimport { existsSync, readFileSync } from 'node:fs';\n\n/**\n * Resolve a bare module import (e.g. \"@absolutejs/absolute/svelte/components/Image.svelte\")\n * to an absolute file path by reading the package's exports map in package.json.\n *\n * Returns the resolved absolute path, or null if the import can't be resolved.\n */\ntype ExportConditions = 'browser' | 'import';\n\nconst resolveExportPath = (entry: unknown, conditions: ExportConditions[]) => {\n\tif (typeof entry === 'string') return entry;\n\tif (!entry || typeof entry !== 'object') return null;\n\n\tfor (const condition of conditions) {\n\t\tconst target = Reflect.get(entry, condition);\n\t\tif (typeof target === 'string') {\n\t\t\treturn target;\n\t\t}\n\t}\n\n\treturn null;\n};\n\nexport const resolvePackageImport = (\n\tspecifier: string,\n\tconditions: ExportConditions[] = ['import']\n) => {\n\t// Only handle bare module imports (not relative or absolute paths)\n\tif (specifier.startsWith('.') || specifier.startsWith('/')) return null;\n\n\t// Split into package name and subpath\n\tconst parts = specifier.split('/');\n\tconst isScoped = specifier.startsWith('@');\n\tconst packageName = isScoped ? `${parts[0]}/${parts[1]}` : parts[0];\n\tconst subpath = isScoped\n\t\t? parts.slice(2).join('/')\n\t\t: parts.slice(1).join('/');\n\tconst exportKey = subpath ? `./${subpath}` : '.';\n\n\tconst currentPackageJsonPath = resolve(process.cwd(), 'package.json');\n\tconst currentPackageJson = existsSync(currentPackageJsonPath)\n\t\t? JSON.parse(readFileSync(currentPackageJsonPath, 'utf-8'))\n\t\t: null;\n\tconst currentPackageDir =\n\t\tcurrentPackageJson?.name === packageName ? process.cwd() : null;\n\tconst packageDir =\n\t\tcurrentPackageDir ??\n\t\tresolve(process.cwd(), 'node_modules', packageName ?? '');\n\tconst packageJsonPath = join(packageDir, 'package.json');\n\n\tif (!existsSync(packageJsonPath)) return null;\n\n\ttry {\n\t\tconst packageJson =\n\t\t\tcurrentPackageDir && currentPackageJson\n\t\t\t\t? currentPackageJson\n\t\t\t\t: JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\tconst { exports } = packageJson;\n\n\t\tif (!exports) return null;\n\n\t\t// Try exact match first, then try without extension for .svelte/.vue files\n\t\tconst entry = exports[exportKey];\n\n\t\tif (!entry) return null;\n\n\t\tconst importPath = resolveExportPath(entry, conditions);\n\n\t\tif (!importPath) return null;\n\n\t\tif (currentPackageDir && importPath.startsWith('./dist/')) {\n\t\t\tconst sourceCandidate = resolve(\n\t\t\t\tpackageDir,\n\t\t\t\timportPath.replace(/^\\.\\/dist\\//, './src/')\n\t\t\t);\n\t\t\tif (existsSync(sourceCandidate)) {\n\t\t\t\treturn sourceCandidate;\n\t\t\t}\n\t\t}\n\n\t\tconst resolved = resolve(packageDir, importPath);\n\n\t\treturn existsSync(resolved) ? resolved : null;\n\t} catch {\n\t\treturn null;\n\t}\n};\n",
24
24
  "export const ANGULAR_INIT_TIMEOUT_MS = 500;\nexport const ANSI_ESCAPE_CODE = 27;\nexport const ANSI_ESCAPE_LENGTH = 3;\nexport const ASCII_SPACE = 32;\nexport const BASE_36_RADIX = 36;\nexport const BUN_BUILD_WARNING_SUPPRESSION =\n\t'wildcard sideEffects are not supported yet';\n/* Tailwind v4 at-rules that Bun's native CSS parser doesn't recognize.\n When a user imports their Tailwind entry CSS from a TS/TSX file, Bun's\n bundler walks it and warns about each unknown at-rule even though the\n actual Tailwind output is produced via the separate tailwindcss compile()\n pipeline (see compileTailwind.ts). The warnings are noise — suppress them. */\nexport const TAILWIND_BUN_CSS_WARNING_PATTERN =\n\t/invalid @ rule encountered: '@(theme|tailwind|source|utility|variant|custom-variant|apply|reference|plugin|config)'/;\nexport const BODY_SLICE_LENGTH = 2000;\nexport const BYTES_PER_KILOBYTE = 1024;\nexport const CLI_ARGS_OFFSET = 3;\nexport const CSS_ERROR_RESOLVE_DELAY_MS = 50;\nexport const CSS_MAX_CHECK_ATTEMPTS = 10;\nexport const CSS_MAX_PARSE_TIMEOUT_MS = 500;\nexport const CSS_RELOAD_BACKOFF_BASE_MS = 1000;\nexport const CSS_RELOAD_BACKOFF_MAX_MS = 60_000;\nexport const CSS_SHEET_READY_TIMEOUT_MS = 100;\nexport const DEFAULT_CHUNK_SIZE = 16_384;\nexport const DEFAULT_DEBOUNCE_MS = 15;\nexport const DEFAULT_PORT = 3000;\nexport const DEV_SERVER_RESTART_DEBOUNCE_MS = 100;\nexport const DOM_UPDATE_DELAY_MS = 50;\nexport const FILE_PROTOCOL_PREFIX_LENGTH = 7;\nexport const FOCUS_ID_PREFIX_LENGTH = 3;\nexport const FOCUS_IDX_PREFIX_LENGTH = 4;\nexport const FOCUS_NAME_PREFIX_LENGTH = 5;\nexport const ESLINT_STUDIO_DEFAULT_HOST = 'eslint.absolute.localhost';\nexport const ESLINT_STUDIO_DEFAULT_PORT = 4099;\nexport const CONFIG_DEFAULT_HOST = 'config.absolute.localhost';\nexport const CONFIG_DEFAULT_PORT = 4099;\nexport const HMR_UPDATE_TIMEOUT_MS = 2000;\nexport const HOOK_SIGNATURE_LENGTH = 12;\nexport const EXCLUDE_LAST_OFFSET = -1;\nexport const HTTP_STATUS_OK = 200;\nexport const HTTP_STATUS_BAD_REQUEST = 400;\nexport const HTTP_STATUS_NOT_FOUND = 404;\nexport const HTTP_STATUS_GONE = 410;\nexport const HOURS_IN_DAY = 24;\nexport const HOURS_IN_HALF_DAY = 12;\nexport const IMAGE_DEFAULT_DEVICE_SIZES = [\n\t640, 750, 828, 1080, 1200, 1920, 2048, 3840\n];\nexport const IMAGE_DEFAULT_IMAGE_SIZES = [16, 32, 48, 64, 96, 128, 256, 384];\nexport const IMAGE_DEFAULT_QUALITY = 75;\nexport const IMAGE_GLOB_SUFFIX_LENGTH = 2;\nexport const INSTANCE_PROBE_TIMEOUT_MS = 250;\nexport const MAX_ERROR_LENGTH = 200;\nexport const MAX_RECONNECT_ATTEMPTS = 60;\nexport const MILLISECONDS_IN_A_SECOND = 1000;\nexport const MINUTES_IN_AN_HOUR = 60;\nexport const SECONDS_IN_A_MINUTE = 60;\nexport const MILLISECONDS_IN_A_MINUTE =\n\tMILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;\nexport const MILLISECONDS_IN_A_DAY =\n\tMILLISECONDS_IN_A_SECOND *\n\tSECONDS_IN_A_MINUTE *\n\tMINUTES_IN_AN_HOUR *\n\tHOURS_IN_DAY;\nexport const OVERLAY_FADE_DURATION_MS = 150;\nexport const PING_INTERVAL_MS = 30_000;\nexport const LIST_LOG_TAIL_MAX_BYTES = 65_536;\nexport const LIST_TUI_COLUMN_GAP = 2;\nexport const LIST_TUI_DEFAULT_HEIGHT = 28;\nexport const LIST_TUI_DEFAULT_WIDTH = 100;\nexport const LIST_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30;\nexport const LIST_TUI_FOOTER_LINE_COUNT = 2;\nexport const LIST_TUI_MARKER_WIDTH = 2;\nexport const LIST_TUI_MIN_LOG_HEIGHT = 3;\nexport const LIST_TUI_MIN_URL_WIDTH = 16;\nexport const LIST_TUI_RENDER_DEBOUNCE_MS = 16;\nexport const LIST_TUI_STATUS_MESSAGE_TIMEOUT_MS = 4000;\nexport const LIST_WATCH_REFRESH_MS = 1000;\nexport const RAF_BATCH_COUNT = 3;\nexport const RANDOM_ID_END_INDEX = 11;\nexport const REBUILD_BATCH_DELAY_MS = 10;\nexport const REBUILD_RELOAD_DELAY_MS = 200;\nexport const RECONNECT_INITIAL_DELAY_MS = 500;\nexport const RECONNECT_POLL_INTERVAL_MS = 300;\nexport const REACT_STREAM_SLOT_FAST_DELAY_MS = 5;\nexport const REACT_STREAM_SLOT_SLOW_DELAY_MS = 20;\nexport const SIGINT_EXIT_CODE = 130;\nexport const SIGTERM_EXIT_CODE = 143;\nexport const SVELTE_CSS_LOAD_TIMEOUT_MS = 500;\nexport const TIME_PRECISION = 2;\nexport const TWO_THIRDS = 2 / 3;\nexport const UNFOUND_INDEX = -1;\nexport const WEBSOCKET_NORMAL_CLOSURE = 1000;\n// Default Bun WebSocket idleTimeout (seconds) applied to every absolute server.\n// Long-lived sockets (voice intake, referee, realtime sync) sit idle during\n// greeting playback or while a user listens silently — no client→server frames.\n// Without an explicit value the WS idleTimeout falls back to Elysia's small\n// top-level serve default (~30s, closing at ~60s), which kills these sessions\n// mid-call with INACTIVE_CLIENT. 240s outlasts any greeting or think-pause and\n// gives a briefly-suspended tab time to wake and reconnect. Paired with Bun's\n// `sendPings` (protocol-level keepalive the browser answers without JS, so a\n// throttled background tab still responds). Bun's hard ceiling is 960s.\nexport const DEFAULT_WEBSOCKET_IDLE_TIMEOUT_SECONDS = 240;\n// HTTP idleTimeout for Bun.serve. Bun's DEFAULT is a hostile 10s for a\n// framework meant to host streaming/AI workloads: a long-lived SSE response\n// (or any long poll) that stays silent past 10s — e.g. an agentic AI turn\n// waiting on the model's first token after a large tool result inflates the\n// prompt — gets its socket reaped with no error, and the client hangs. 240s\n// mirrors the WS default and outlasts realistic model think-pauses; Bun's\n// hard ceiling for HTTP idleTimeout is 255s. Override per-app with the\n// ABSOLUTE_IDLE_TIMEOUT env var (seconds; 0 disables the timeout entirely).\nexport const DEFAULT_HTTP_IDLE_TIMEOUT_SECONDS = 240;\nexport const MAX_HTTP_IDLE_TIMEOUT_SECONDS = 255;\nexport const WORKSPACE_COMMAND_ARGS_OFFSET = 3;\nexport const WORKSPACE_FAILURE_LOG_PRINT_LIMIT = 30;\nexport const WORKSPACE_FAILURE_RECENT_LOG_LIMIT = 60;\nexport const WORKSPACE_READY_ATTEMPT_TIMEOUT_MS = 5_000;\nexport const WORKSPACE_READY_PROBE_INTERVAL_MS = 250;\nexport const WORKSPACE_READY_TIMEOUT_MS = 30_000;\nexport const WORKSPACE_SHUTDOWN_TIMEOUT_MS = 10_000;\nexport const WORKSPACE_TUI_DEFAULT_HEIGHT = 28;\nexport const WORKSPACE_TUI_DEFAULT_WIDTH = 100;\nexport const WORKSPACE_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30;\nexport const WORKSPACE_TUI_FOOTER_LINE_COUNT = 3;\nexport const WORKSPACE_TUI_MIN_LOG_HEIGHT = 3;\nexport const WORKSPACE_TUI_MIN_SERVICE_NAME_WIDTH = 7;\nexport const WORKSPACE_TUI_MIN_TARGET_WIDTH = 8;\nexport const WORKSPACE_TUI_MIN_WRAP_WIDTH = 12;\nexport const WORKSPACE_TUI_PROMPT_CURSOR_OFFSET = 3;\nexport const WORKSPACE_TUI_RECENT_LOG_LIMIT = 40;\nexport const WORKSPACE_TUI_RENDER_DEBOUNCE_MS = 16;\nexport const WORKSPACE_TUI_STATUS_WIDTH = 10;\nexport const WORKSPACE_TUI_TARGET_PADDING_WIDTH = 6;\nexport const WORKSPACE_TUI_VISIBILITY_WIDTH = 8;\n",
25
25
  "import { BASE_36_RADIX } from '../constants';\n\nconst ISLAND_TAG_RE = /<Island\\b([\\s\\S]*?)\\/>/g;\n\nconst extractBracedExpression = (text: string, braceStart: number) => {\n\tlet depth = 0;\n\tfor (let index = braceStart; index < text.length; index += 1) {\n\t\tconst char = text[index];\n\t\tif (char === '{') depth += 1;\n\t\tif (char === '}') depth -= 1;\n\t\tif (depth === 0) {\n\t\t\treturn text.slice(braceStart + 1, index).trim();\n\t\t}\n\t}\n\n\treturn null;\n};\n\nconst extractIslandAttribute = (attributeString: string, name: string) => {\n\tconst quotedMatch = attributeString.match(\n\t\tnew RegExp(`\\\\b${name}\\\\s*=\\\\s*[\"']([^\"']+)[\"']`)\n\t);\n\tif (quotedMatch?.[1]) {\n\t\treturn { expression: JSON.stringify(quotedMatch[1]), found: true };\n\t}\n\n\tconst attributeIndex = attributeString.search(\n\t\tnew RegExp(`\\\\b${name}\\\\s*=\\\\s*\\\\{`)\n\t);\n\tif (attributeIndex < 0) {\n\t\treturn { expression: '', found: false };\n\t}\n\n\tconst braceStart = attributeString.indexOf('{', attributeIndex);\n\tif (braceStart < 0) {\n\t\treturn { expression: '', found: false };\n\t}\n\n\tconst expression = extractBracedExpression(attributeString, braceStart);\n\tif (expression === null) {\n\t\treturn { expression: '', found: false };\n\t}\n\n\treturn { expression, found: true };\n};\n\nexport const lowerSvelteIslandSyntax = (\n\tsource: string,\n\t_mode: 'server' | 'client' = 'server'\n) => {\n\tif (!source.includes('<Island')) {\n\t\treturn { code: source, transformed: false };\n\t}\n\n\tlet islandIndex = 0;\n\tconst transformedMarkup = source.replace(\n\t\tISLAND_TAG_RE,\n\t\t(fullMatch, attributeString: string) => {\n\t\t\tconst framework = extractIslandAttribute(\n\t\t\t\tattributeString,\n\t\t\t\t'framework'\n\t\t\t);\n\t\t\tconst component = extractIslandAttribute(\n\t\t\t\tattributeString,\n\t\t\t\t'component'\n\t\t\t);\n\t\t\tif (!framework.found || !component.found) {\n\t\t\t\treturn fullMatch;\n\t\t\t}\n\n\t\t\tconst hydrate = extractIslandAttribute(attributeString, 'hydrate');\n\t\t\tconst props = extractIslandAttribute(attributeString, 'props');\n\t\t\tconst slotId = `absolute-svelte-island-${islandIndex.toString(BASE_36_RADIX)}`;\n\t\t\tislandIndex += 1;\n\n\t\t\tconst resolveExpression = `await __absoluteResolveIslandHtml(${JSON.stringify(\n\t\t\t\tslotId\n\t\t\t)}, { component: ${component.expression}, framework: ${framework.expression}, hydrate: ${\n\t\t\t\thydrate.found ? hydrate.expression : JSON.stringify('load')\n\t\t\t}, props: ${props.found ? props.expression : '{}'} })`;\n\n\t\t\treturn `<div data-absolute-island-slot=\"${slotId}\" style=\"display: contents\">{@html ${resolveExpression}}</div>`;\n\t\t}\n\t);\n\n\tconst importLine =\n\t\t'import { resolveIslandHtml as __absoluteResolveIslandHtml } from \"@absolutejs/absolute/svelte\";';\n\n\tif (transformedMarkup.includes('<script')) {\n\t\treturn {\n\t\t\tcode: transformedMarkup.replace(\n\t\t\t\t/<script(\\s[^>]*)?>/,\n\t\t\t\t(match) => `${match}\\n${importLine}\\n`\n\t\t\t),\n\t\t\ttransformed: true\n\t\t};\n\t}\n\n\treturn {\n\t\tcode: `<script lang=\"ts\">\\n${importLine}\\n</script>\\n${transformedMarkup}`,\n\t\ttransformed: true\n\t};\n};\n",
26
26
  "import { BASE_36_RADIX } from '../constants';\n\nconst AWAIT_BLOCK_RE =\n\t/\\{#await\\s+([^}]+)\\}([\\s\\S]*?)\\{:then(?:\\s+([A-Za-z_$][\\w$]*))?\\}([\\s\\S]*?)(?:\\{:catch(?:\\s+([A-Za-z_$][\\w$]*))?\\}([\\s\\S]*?))?\\{\\/await\\}/g;\n\nconst escapeTemplateLiteral = (value: string) =>\n\tvalue\n\t\t.replaceAll('\\\\', '\\\\\\\\')\n\t\t.replaceAll('`', '\\\\`')\n\t\t.replaceAll('${', '\\\\${');\n\nconst markupToTemplateLiteral = (markup: string) => {\n\tconst escaped = escapeTemplateLiteral(markup.trim());\n\tconst withExpressions = escaped.replace(\n\t\t/\\{([^{}]+)\\}/g,\n\t\t(_, expression) => `\\${${String(expression).trim()}}`\n\t);\n\n\treturn `\\`${withExpressions}\\``;\n};\n\nexport const lowerSvelteAwaitSlotSyntax = (source: string) => {\n\tif (!source.includes('{#await')) {\n\t\treturn { code: source, transformed: false };\n\t}\n\n\tlet awaitIndex = 0;\n\tlet transformed = false;\n\tconst lowered = source.replace(\n\t\tAWAIT_BLOCK_RE,\n\t\t(\n\t\t\tfullMatch,\n\t\t\tawaitExpression: string,\n\t\t\tpendingMarkup: string,\n\t\t\tthenIdentifier: string | undefined,\n\t\t\tthenMarkup: string,\n\t\t\tcatchIdentifier: string | undefined,\n\t\t\tcatchMarkup: string | undefined\n\t\t) => {\n\t\t\tconst trimmedAwaitExpression = awaitExpression.trim();\n\t\t\tif (!trimmedAwaitExpression) {\n\t\t\t\treturn fullMatch;\n\t\t\t}\n\n\t\t\tconst slotId = `absolute-svelte-await-${awaitIndex.toString(BASE_36_RADIX)}`;\n\t\t\tawaitIndex += 1;\n\t\t\ttransformed = true;\n\n\t\t\tconst thenValueIdentifier =\n\t\t\t\tthenIdentifier?.trim() || '__awaitValue';\n\t\t\tconst catchValueIdentifier =\n\t\t\t\tcatchIdentifier?.trim() || '__awaitError';\n\t\t\tconst fallbackHtml = markupToTemplateLiteral(pendingMarkup);\n\t\t\tconst resolvedHtml = markupToTemplateLiteral(thenMarkup);\n\t\t\tconst rejectedHtml =\n\t\t\t\ttypeof catchMarkup === 'string'\n\t\t\t\t\t? markupToTemplateLiteral(catchMarkup)\n\t\t\t\t\t: null;\n\t\t\tconst catchBranch = rejectedHtml\n\t\t\t\t? `catch (${catchValueIdentifier}) { return ${rejectedHtml}; }`\n\t\t\t\t: 'catch (_absoluteAwaitError) { throw _absoluteAwaitError; }';\n\n\t\t\treturn `<AbsoluteAwaitSlot id=\"${slotId}\" fallbackHtml={${fallbackHtml}} resolve={async () => { try { const ${thenValueIdentifier} = await (${trimmedAwaitExpression}); return ${resolvedHtml}; } ${catchBranch} }} />`;\n\t\t}\n\t);\n\n\tif (!transformed) {\n\t\treturn { code: source, transformed: false };\n\t}\n\n\tconst importLine =\n\t\t'import AbsoluteAwaitSlot from \"@absolutejs/absolute/svelte/components/AwaitSlot.svelte\";';\n\n\tif (lowered.includes('<script')) {\n\t\treturn {\n\t\t\tcode: lowered.replace(\n\t\t\t\t/<script(\\s[^>]*)?>/,\n\t\t\t\t(match) => `${match}\\n${importLine}\\n`\n\t\t\t),\n\t\t\ttransformed: true\n\t\t};\n\t}\n\n\treturn {\n\t\tcode: `<script lang=\"ts\">\\n${importLine}\\n</script>\\n${lowered}`,\n\t\ttransformed: true\n\t};\n};\n",
27
- "import { createHash } from 'node:crypto';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { readFile } from 'node:fs/promises';\nimport { createRequire } from 'node:module';\nimport {\n\tdirname,\n\textname,\n\tisAbsolute,\n\tjoin,\n\trelative,\n\tresolve\n} from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\nimport type { BunPlugin } from 'bun';\nimport type {\n\tLessPreprocessorOptions,\n\tPostCSSConfig,\n\tSassPreprocessorOptions,\n\tStylePreprocessorConfig,\n\tStylusPreprocessorOptions\n} from '../../types/build';\n\nconst CSS_EXTENSION_PATTERN = /\\.css$/i;\nconst STYLE_EXTENSION_PATTERN = /\\.(s[ac]ss|less|styl(?:us)?)$/i;\nconst STYLE_MODULE_EXTENSION_PATTERN = /\\.module\\.(s[ac]ss|less|styl(?:us)?)$/i;\nconst STYLE_LANGUAGE_PATTERN = /^(s[ac]ss|less|styl(?:us)?)$/i;\nconst importOptionalPeer = new Function(\n\t'specifier',\n\t'return import(specifier)'\n) as <T>(specifier: string) => Promise<T>;\nconst requireOptionalPeer = new Function(\n\t'specifier',\n\t'return require(specifier)'\n) as <T>(specifier: string) => T;\nconst requireFromCwd = createRequire(join(process.cwd(), 'package.json'));\n\nexport const isPreprocessableStylePath = (filePath: string) =>\n\tSTYLE_EXTENSION_PATTERN.test(filePath);\n\nexport const isStyleModulePath = (filePath: string) =>\n\tSTYLE_MODULE_EXTENSION_PATTERN.test(filePath);\n\nexport const isStylePath = (filePath: string) =>\n\t/\\.(css|s[ac]ss|less|styl(?:us)?)$/i.test(filePath);\n\nexport const getStyleBaseName = (filePath: string) =>\n\tfilePath.replace(/\\.(css|s[ac]ss|less|styl(?:us)?)$/i, '');\n\nconst getStyleLanguage = (filePathOrLanguage: string) => {\n\tconst normalized = filePathOrLanguage.toLowerCase();\n\tif (normalized === 'scss' || normalized.endsWith('.scss')) return 'scss';\n\tif (normalized === 'sass' || normalized.endsWith('.sass')) return 'sass';\n\tif (normalized === 'less' || normalized.endsWith('.less')) return 'less';\n\tif (\n\t\tnormalized === 'styl' ||\n\t\tnormalized === 'stylus' ||\n\t\tnormalized.endsWith('.styl') ||\n\t\tnormalized.endsWith('.stylus')\n\t)\n\t\treturn 'stylus';\n\n\treturn null;\n};\n\nconst missingDependencyError = (name: string, filePath: string) =>\n\tnew Error(\n\t\t`Unable to compile ${filePath}: install optional dependency \"${name}\" to use this stylesheet preprocessor.`\n\t);\n\n/* Re-throw a preprocessor error with the filename + a one-line summary\n prefixed so the dev server's `[hmr] error` log doesn't print\n `Server error: undefined`. Sass / Less / Stylus all attach useful\n metadata (line, column, snippet) to their errors but the property\n names differ — we surface whatever's available. */\nconst throwPreprocessorError = (\n\terror: unknown,\n\tfilePath: string,\n\tlanguage: StyleLanguage\n): never => {\n\tif (!(error instanceof Error)) {\n\t\tthrow new Error(\n\t\t\t`${language} compile failed in ${filePath}: ${String(error)}`\n\t\t);\n\t}\n\n\tconst detail = error as Error & {\n\t\tline?: number;\n\t\tcolumn?: number;\n\t\textract?: string[];\n\t\tformatted?: string;\n\t\tspan?: { start?: { line?: number; column?: number } };\n\t};\n\tconst sassLine = detail.span?.start?.line;\n\tconst sassCol = detail.span?.start?.column;\n\tconst line = detail.line ?? sassLine;\n\tconst column = detail.column ?? sassCol;\n\tconst location =\n\t\ttypeof line === 'number'\n\t\t\t? `:${line}${typeof column === 'number' ? `:${column}` : ''}`\n\t\t\t: '';\n\tconst message = detail.formatted ?? detail.message;\n\tconst wrapped = new Error(\n\t\t`${language} compile failed in ${filePath}${location}\\n${message}`\n\t);\n\twrapped.cause = error;\n\tthrow wrapped;\n};\n\nconst requireOptionalPeerSync = <T>(specifier: string) => {\n\ttry {\n\t\treturn requireFromCwd(specifier) as T;\n\t} catch {\n\t\treturn requireOptionalPeer<T>(specifier);\n\t}\n};\n\nconst normalizeLoadPaths = (filePath: string, paths: string[] = []) => [\n\tdirname(filePath),\n\tprocess.cwd(),\n\t...paths.map((path) => resolve(process.cwd(), path))\n];\n\ntype StyleLanguage = NonNullable<ReturnType<typeof getStyleLanguage>>;\n\ntype AliasEntry = {\n\tpattern: string;\n\treplacements: string[];\n};\n\nlet tsconfigAliasCache:\n\t| { cwd: string; aliases: AliasEntry[]; baseUrl: string }\n\t| undefined;\n\nconst stripJsonComments = (source: string) =>\n\tsource.replace(/\\/\\*[\\s\\S]*?\\*\\//g, '').replace(/(^|[^:])\\/\\/.*$/gm, '$1');\n\nconst normalizeAliasEntries = (\n\taliases: Record<string, string | string[]> | undefined\n) =>\n\tObject.entries(aliases ?? {}).map(([pattern, value]) => ({\n\t\tpattern,\n\t\treplacements: Array.isArray(value) ? value : [value]\n\t}));\n\nconst readTsconfigAliases = () => {\n\tconst cwd = process.cwd();\n\tif (tsconfigAliasCache?.cwd === cwd) return tsconfigAliasCache;\n\n\tconst tsconfigPath = resolve(cwd, 'tsconfig.json');\n\tconst empty = { aliases: [], baseUrl: cwd, cwd };\n\tif (!existsSync(tsconfigPath)) {\n\t\ttsconfigAliasCache = empty;\n\t\treturn empty;\n\t}\n\n\ttry {\n\t\tconst parsed = JSON.parse(\n\t\t\tstripJsonComments(readFileSync(tsconfigPath, 'utf-8'))\n\t\t);\n\t\tconst compilerOptions = parsed.compilerOptions ?? {};\n\t\tconst baseUrl = resolve(cwd, compilerOptions.baseUrl ?? '.');\n\t\ttsconfigAliasCache = {\n\t\t\taliases: normalizeAliasEntries(compilerOptions.paths),\n\t\t\tbaseUrl,\n\t\t\tcwd\n\t\t};\n\t} catch {\n\t\ttsconfigAliasCache = empty;\n\t}\n\n\treturn tsconfigAliasCache;\n};\n\nconst getAliasEntries = (config: StylePreprocessorConfig | undefined) => {\n\tconst tsconfig = readTsconfigAliases();\n\treturn {\n\t\taliases: [\n\t\t\t...normalizeAliasEntries(config?.aliases),\n\t\t\t...tsconfig.aliases\n\t\t],\n\t\tbaseUrl: tsconfig.baseUrl\n\t};\n};\n\nconst aliasPatternToRegExp = (pattern: string) =>\n\tnew RegExp(\n\t\t`^${pattern\n\t\t\t.split('*')\n\t\t\t.map((part) => part.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n\t\t\t.join('(.+)')}$`\n\t);\n\nconst resolveAliasTargets = (\n\tspecifier: string,\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst { aliases, baseUrl } = getAliasEntries(config);\n\tconst targets: string[] = [];\n\n\tfor (const alias of aliases) {\n\t\tconst match = specifier.match(aliasPatternToRegExp(alias.pattern));\n\t\tif (!match) continue;\n\t\tconst wildcard = match[1] ?? '';\n\t\tfor (const replacement of alias.replacements) {\n\t\t\ttargets.push(resolve(baseUrl, replacement.replace('*', wildcard)));\n\t\t}\n\t}\n\n\treturn targets;\n};\n\nconst getLanguageExtensions = (language: StyleLanguage) => {\n\tif (language === 'less') return ['.less', '.css'];\n\tif (language === 'stylus') return ['.styl', '.stylus', '.css'];\n\treturn ['.scss', '.sass', '.css'];\n};\n\nconst getCandidatePaths = (basePath: string, language: StyleLanguage) => {\n\tconst ext = extname(basePath);\n\tconst paths = ext\n\t\t? [basePath]\n\t\t: getLanguageExtensions(language).flatMap((extension) => [\n\t\t\t\t`${basePath}${extension}`,\n\t\t\t\tjoin(basePath, `index${extension}`)\n\t\t\t]);\n\n\tif (language === 'scss' || language === 'sass') {\n\t\treturn paths.flatMap((path) => {\n\t\t\tconst dir = dirname(path);\n\t\t\tconst base = path.slice(dir.length + 1);\n\t\t\treturn [path, join(dir, `_${base}`)];\n\t\t});\n\t}\n\n\treturn paths;\n};\n\nconst resolveImportPath = (\n\tspecifier: string,\n\tfromDirectory: string,\n\tloadPaths: string[],\n\tlanguage: StyleLanguage,\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst rawCandidates = [\n\t\t...resolveAliasTargets(specifier, config),\n\t\tisAbsolute(specifier) ? specifier : resolve(fromDirectory, specifier),\n\t\t...loadPaths.map((path) => resolve(path, specifier))\n\t];\n\n\tfor (const candidate of rawCandidates.flatMap((path) =>\n\t\tgetCandidatePaths(path, language)\n\t)) {\n\t\tif (existsSync(candidate)) return candidate;\n\t}\n\n\treturn null;\n};\n\nconst isExternalCssUrl = (url: string) =>\n\t/^(?:[a-z][a-z0-9+.-]*:|\\/\\/|#|\\/)/i.test(url);\n\nconst splitCssUrl = (url: string) => {\n\tconst markerIndex = url.search(/[?#]/);\n\tif (markerIndex === -1) return { marker: '', path: url };\n\treturn {\n\t\tmarker: url.slice(markerIndex),\n\t\tpath: url.slice(0, markerIndex)\n\t};\n};\n\nconst rebaseCssUrls = (\n\tcontents: string,\n\tsourceFile: string,\n\tentryFile: string\n) => {\n\tconst sourceDir = dirname(sourceFile);\n\tconst entryDir = dirname(entryFile);\n\tif (sourceDir === entryDir) return contents;\n\n\treturn contents.replace(\n\t\t/url\\(\\s*(['\"]?)([^'\")]+)\\1\\s*\\)/gi,\n\t\t(match, quote: string, rawUrl: string) => {\n\t\t\tconst trimmedUrl = rawUrl.trim();\n\t\t\tif (!trimmedUrl || isExternalCssUrl(trimmedUrl)) return match;\n\t\t\tconst { marker, path } = splitCssUrl(trimmedUrl);\n\t\t\tconst rebased = relative(\n\t\t\t\tentryDir,\n\t\t\t\tresolve(sourceDir, path)\n\t\t\t).replace(/\\\\/g, '/');\n\t\t\tconst normalized = rebased.startsWith('.')\n\t\t\t\t? rebased\n\t\t\t\t: `./${rebased}`;\n\t\t\tconst nextQuote = quote || '\"';\n\t\t\treturn `url(${nextQuote}${normalized}${marker}${nextQuote})`;\n\t\t}\n\t);\n};\n\nconst rewriteAliasedStyleImports = (\n\tcontents: string,\n\tsourceFile: string,\n\tloadPaths: string[],\n\tlanguage: StyleLanguage,\n\tconfig: StylePreprocessorConfig | undefined\n) =>\n\tcontents.replace(\n\t\t/(@(?:use|forward|import|require)\\s+)([\"'])([^\"']+)\\2/g,\n\t\t(match, prefix: string, quote: string, specifier: string) => {\n\t\t\tif (\n\t\t\t\tspecifier.startsWith('.') ||\n\t\t\t\tisAbsolute(specifier) ||\n\t\t\t\tisExternalCssUrl(specifier)\n\t\t\t)\n\t\t\t\treturn match;\n\n\t\t\tconst resolved = resolveImportPath(\n\t\t\t\tspecifier,\n\t\t\t\tdirname(sourceFile),\n\t\t\t\tloadPaths,\n\t\t\t\tlanguage,\n\t\t\t\tconfig\n\t\t\t);\n\t\t\treturn resolved ? `${prefix}${quote}${resolved}${quote}` : match;\n\t\t}\n\t);\n\nconst preprocessLoadedStyle = (\n\tcontents: string,\n\tsourceFile: string,\n\tentryFile: string,\n\tloadPaths: string[] = [],\n\tlanguage?: StyleLanguage,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tconst rebased = rebaseCssUrls(contents, sourceFile, entryFile);\n\treturn language\n\t\t? rewriteAliasedStyleImports(\n\t\t\t\trebased,\n\t\t\t\tsourceFile,\n\t\t\t\tloadPaths,\n\t\t\t\tlanguage,\n\t\t\t\tconfig\n\t\t\t)\n\t\t: rebased;\n};\n\nconst extractCssModuleExports = (css: string) => {\n\tconst exports: Record<string, string> = {};\n\tconst nextCss = css.replace(/:export\\s*\\{([^}]*)\\}/g, (_, body: string) => {\n\t\tfor (const declaration of body.split(';')) {\n\t\t\tconst separator = declaration.indexOf(':');\n\t\t\tif (separator === -1) continue;\n\t\t\tconst key = declaration.slice(0, separator).trim();\n\t\t\tconst value = declaration.slice(separator + 1).trim();\n\t\t\tif (key && value) exports[key] = value;\n\t\t}\n\t\treturn '';\n\t});\n\n\treturn { css: nextCss, exports };\n};\n\nconst getSassOptions = (\n\tconfig: StylePreprocessorConfig | undefined,\n\tlanguage: 'sass' | 'scss'\n): SassPreprocessorOptions => ({\n\t...(config?.sass ?? {}),\n\t...(language === 'scss' ? (config?.scss ?? {}) : {})\n});\n\nconst getLessOptions = (\n\tconfig: StylePreprocessorConfig | undefined\n): LessPreprocessorOptions => config?.less ?? {};\n\nconst getStylusOptions = (\n\tconfig: StylePreprocessorConfig | undefined\n): StylusPreprocessorOptions => config?.stylus ?? {};\n\nexport const createStyleTransformConfig = (\n\tstylePreprocessors?: StylePreprocessorConfig,\n\tpostcss?: PostCSSConfig\n): StylePreprocessorConfig | undefined =>\n\tpostcss === undefined\n\t\t? stylePreprocessors\n\t\t: { ...(stylePreprocessors ?? {}), postcss };\n\nconst withAdditionalData = (\n\tcontents: string,\n\tadditionalData: string | undefined\n) => (additionalData ? `${additionalData}\\n${contents}` : contents);\n\ntype PostCSSRuntimeConfig = {\n\toptions?: Record<string, unknown>;\n\tplugins?: unknown[] | Record<string, unknown>;\n};\n\nconst normalizePostcssModule = (mod: unknown) => {\n\tif (mod && typeof mod === 'object' && 'default' in mod) {\n\t\treturn (mod as { default?: unknown }).default ?? mod;\n\t}\n\n\treturn mod;\n};\n\nconst loadPostcssConfigFile = async (\n\tconfigPath: string\n): Promise<PostCSSRuntimeConfig> => {\n\tconst resolved = resolve(process.cwd(), configPath);\n\tconst loaded =\n\t\tresolved.endsWith('.cjs') || resolved.endsWith('.cts')\n\t\t\t? requireOptionalPeerSync<unknown>(resolved)\n\t\t\t: await importOptionalPeer<unknown>(\n\t\t\t\t\t`${new URL(`file://${resolved}`).href}?t=${Date.now()}`\n\t\t\t\t);\n\tconst config = normalizePostcssModule(loaded);\n\tconst value =\n\t\ttypeof config === 'function'\n\t\t\t? await (\n\t\t\t\t\tconfig as (context: {\n\t\t\t\t\t\tcwd: string;\n\t\t\t\t\t\tenv?: string;\n\t\t\t\t\t}) => unknown\n\t\t\t\t)({\n\t\t\t\t\tcwd: process.cwd(),\n\t\t\t\t\tenv: process.env.NODE_ENV\n\t\t\t\t})\n\t\t\t: config;\n\n\treturn (normalizePostcssModule(value) ?? {}) as PostCSSRuntimeConfig;\n};\n\nconst normalizePostcssPlugins = (\n\tplugins: unknown[] | Record<string, unknown> | undefined\n) => {\n\tif (!plugins) return [];\n\tif (Array.isArray(plugins)) return plugins.filter(Boolean);\n\n\tconst resolved: unknown[] = [];\n\tfor (const [specifier, options] of Object.entries(plugins)) {\n\t\tif (options === false) continue;\n\t\tconst mod = normalizePostcssModule(\n\t\t\trequireOptionalPeerSync<unknown>(specifier)\n\t\t);\n\t\tconst plugin =\n\t\t\ttypeof mod === 'function'\n\t\t\t\t? (mod as (options?: unknown) => unknown)(\n\t\t\t\t\t\toptions === true ? undefined : options\n\t\t\t\t\t)\n\t\t\t\t: mod;\n\t\tif (plugin) resolved.push(plugin);\n\t}\n\n\treturn resolved;\n};\n\nconst resolvePostcssConfig = async (\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst inlineConfig = config?.postcss;\n\tif (!inlineConfig) return null;\n\n\tconst fileConfig = inlineConfig.config\n\t\t? await loadPostcssConfigFile(inlineConfig.config)\n\t\t: {};\n\tconst plugins = [\n\t\t...normalizePostcssPlugins(fileConfig.plugins),\n\t\t...normalizePostcssPlugins(inlineConfig.plugins)\n\t];\n\n\tif (plugins.length === 0) return null;\n\n\treturn {\n\t\toptions: {\n\t\t\t...(fileConfig.options ?? {}),\n\t\t\t...(inlineConfig.options ?? {})\n\t\t},\n\t\tplugins\n\t};\n};\n\nconst runPostcss = async (\n\tcss: string,\n\tfilePath: string,\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst postcssConfig = await resolvePostcssConfig(config);\n\tif (!postcssConfig) return css;\n\n\tlet postcssModule: typeof import('postcss') & {\n\t\tdefault?: typeof import('postcss');\n\t};\n\ttry {\n\t\tpostcssModule =\n\t\t\tawait importOptionalPeer<typeof postcssModule>('postcss');\n\t} catch {\n\t\tthrow missingDependencyError('postcss', filePath);\n\t}\n\tconst postcss = postcssModule.default ?? postcssModule;\n\tconst result = await postcss(\n\t\tpostcssConfig.plugins as import('postcss').AcceptedPlugin[]\n\t).process(css, {\n\t\tfrom: filePath,\n\t\tmap: false,\n\t\t...postcssConfig.options\n\t});\n\n\treturn result.css;\n};\n\nconst createSassImporter = (\n\tentryFile: string,\n\tloadPaths: string[],\n\tlanguage: 'sass' | 'scss',\n\tconfig: StylePreprocessorConfig | undefined,\n\tdeps?: Set<string>\n) => ({\n\tcanonicalize(specifier: string, options: { containingUrl?: URL | null }) {\n\t\tconst fromDirectory = options.containingUrl\n\t\t\t? dirname(fileURLToPath(options.containingUrl))\n\t\t\t: dirname(entryFile);\n\t\tconst resolved = resolveImportPath(\n\t\t\tspecifier,\n\t\t\tfromDirectory,\n\t\t\tloadPaths,\n\t\t\tlanguage,\n\t\t\tconfig\n\t\t);\n\t\treturn resolved ? new URL(pathToFileURL(resolve(resolved)).href) : null;\n\t},\n\tload(canonicalUrl: URL) {\n\t\tconst filePath = fileURLToPath(canonicalUrl);\n\t\tdeps?.add(filePath);\n\t\tconst fileLanguage = getStyleLanguage(filePath);\n\t\tif (\n\t\t\tfileLanguage !== 'scss' &&\n\t\t\tfileLanguage !== 'sass' &&\n\t\t\tfileLanguage !== null\n\t\t)\n\t\t\treturn null;\n\n\t\treturn {\n\t\t\tcontents: preprocessLoadedStyle(\n\t\t\t\treadFileSync(filePath, 'utf-8'),\n\t\t\t\tfilePath,\n\t\t\t\tentryFile,\n\t\t\t\tloadPaths,\n\t\t\t\tlanguage,\n\t\t\t\tconfig\n\t\t\t),\n\t\t\tsyntax: filePath.endsWith('.sass')\n\t\t\t\t? ('indented' as const)\n\t\t\t\t: ('scss' as const)\n\t\t};\n\t}\n});\n\nconst createLessFileManager = (\n\tentryFile: string,\n\tloadPaths: string[],\n\tconfig: StylePreprocessorConfig | undefined,\n\tdeps?: Set<string>\n) => ({\n\tinstall(\n\t\tless: { FileManager: new () => Record<string, unknown> },\n\t\tpluginManager: { addFileManager(manager: unknown): void }\n\t) {\n\t\tconst baseManager = new less.FileManager();\n\t\tconst manager = Object.create(baseManager) as Record<string, unknown>;\n\t\tmanager.supports = (filename: string, currentDirectory: string) =>\n\t\t\tBoolean(\n\t\t\t\tresolveImportPath(\n\t\t\t\t\tfilename,\n\t\t\t\t\tresolve(currentDirectory),\n\t\t\t\t\tloadPaths,\n\t\t\t\t\t'less',\n\t\t\t\t\tconfig\n\t\t\t\t)\n\t\t\t);\n\t\tmanager.loadFile = async (\n\t\t\tfilename: string,\n\t\t\tcurrentDirectory: string\n\t\t) => {\n\t\t\tconst resolved = resolveImportPath(\n\t\t\t\tfilename,\n\t\t\t\tresolve(currentDirectory),\n\t\t\t\tloadPaths,\n\t\t\t\t'less',\n\t\t\t\tconfig\n\t\t\t);\n\t\t\tif (!resolved) {\n\t\t\t\tthrow new Error(`Unable to resolve Less import \"${filename}\"`);\n\t\t\t}\n\t\t\tdeps?.add(resolved);\n\n\t\t\treturn {\n\t\t\t\tcontents: preprocessLoadedStyle(\n\t\t\t\t\tawait readFile(resolved, 'utf-8'),\n\t\t\t\t\tresolved,\n\t\t\t\t\tentryFile,\n\t\t\t\t\tloadPaths,\n\t\t\t\t\t'less',\n\t\t\t\t\tconfig\n\t\t\t\t),\n\t\t\t\tfilename: resolved\n\t\t\t};\n\t\t};\n\t\tpluginManager.addFileManager(manager);\n\t}\n});\n\nconst renderStylus = async (\n\tcontents: string,\n\tfilePath: string,\n\tloadPaths: string[],\n\toptions: StylusPreprocessorOptions,\n\tdeps?: Set<string>\n) => {\n\tlet stylus: typeof import('stylus');\n\ttry {\n\t\tconst stylusModule = await importOptionalPeer<\n\t\t\ttypeof import('stylus') & { default?: typeof import('stylus') }\n\t\t>('stylus');\n\t\tstylus = stylusModule.default ?? stylusModule;\n\t} catch {\n\t\tthrow missingDependencyError('stylus', filePath);\n\t}\n\n\treturn new Promise<string>((resolveCss, reject) => {\n\t\tconst renderer = stylus(contents);\n\t\trenderer.set('filename', filePath);\n\t\tfor (const [key, value] of Object.entries(options.options ?? {})) {\n\t\t\trenderer.set(key, value);\n\t\t}\n\t\tfor (const path of loadPaths) renderer.include(path);\n\t\trenderer.render((error, css) => {\n\t\t\tif (error) {\n\t\t\t\treject(error);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Stylus exposes its dependency list after a successful render.\n\t\t\tif (deps) {\n\t\t\t\tconst stylusDeps = (\n\t\t\t\t\trenderer as unknown as { deps?: () => string[] }\n\t\t\t\t).deps?.();\n\t\t\t\tif (Array.isArray(stylusDeps)) {\n\t\t\t\t\tfor (const dep of stylusDeps) deps.add(resolve(dep));\n\t\t\t\t}\n\t\t\t}\n\t\t\tresolveCss(css ?? '');\n\t\t});\n\t});\n};\n\n/* Compile-time bookkeeping shared with the dev server.\n\n `styleDependencyGraph` maps every entry stylesheet (anything that ran\n through `compileStyleSource`) to the absolute paths of every partial\n it imported during that compile. The dev rebuild trigger reads this to\n know which entries to invalidate when a partial like `_tokens.scss`\n changes.\n\n `styleOutputHashes` records the SHA-1 of each entry's last-emitted CSS\n so callers can skip re-broadcasting / re-writing identical output. */\nconst styleDependencyGraph = new Map<string, Set<string>>();\nconst styleOutputHashes = new Map<string, string>();\n\nconst recordStyleDeps = (entry: string, deps: Set<string>) => {\n\tconst key = resolve(entry);\n\tconst stripped = new Set<string>();\n\tfor (const dep of deps) {\n\t\tconst resolved = resolve(dep);\n\t\tif (resolved !== key) stripped.add(resolved);\n\t}\n\tstyleDependencyGraph.set(key, stripped);\n};\n\n/* Record that a JS/TS/Vue/Svelte/etc. file imports a stylesheet (typically\n a `.module.scss` or other style import via JS). This is the JS-side dep\n tracking that complements the CSS-side `@import` graph: when the style\n file changes, the dev server uses `findStyleEntriesImporting` to find\n the JS file that imports it and queues that for rebuild. Without this,\n editing `Foo.module.scss` would only re-emit the CSS module's own\n compiled output without re-running the bundler against the importing\n component, so the new hashed class names never reach the bundle. */\nexport const addStyleImporter = (importerPath: string, stylePath: string) => {\n\tconst key = resolve(importerPath);\n\tconst target = resolve(stylePath);\n\tconst deps = styleDependencyGraph.get(key) ?? new Set<string>();\n\tdeps.add(target);\n\tstyleDependencyGraph.set(key, deps);\n};\n\n/* Files that import the given path. Used by the dev server to rebuild\n importers when a partial changes — there's no import-graph traversal,\n so callers should pass already-resolved absolute paths. */\nexport const findStyleEntriesImporting = (changedPath: string) => {\n\tconst target = resolve(changedPath);\n\tconst importers: string[] = [];\n\tfor (const [entry, deps] of styleDependencyGraph) {\n\t\tif (deps.has(target)) importers.push(entry);\n\t}\n\n\treturn importers;\n};\n\n/* Hash the just-emitted CSS for an entry; returns `true` only when the\n output actually differs from the previous compile. The dev path uses\n this to suppress style-update broadcasts on whitespace-only edits. */\nexport const recordStyleOutput = (entry: string, css: string) => {\n\tconst key = resolve(entry);\n\tconst hash = createHash('sha1').update(css).digest('hex');\n\tconst previous = styleOutputHashes.get(key);\n\tstyleOutputHashes.set(key, hash);\n\n\treturn previous !== hash;\n};\n\n/* Drop cached state for an entry — used when the file is deleted or the\n dev server is shutting down. */\nexport const forgetStyleEntry = (entry: string) => {\n\tconst key = resolve(entry);\n\tstyleDependencyGraph.delete(key);\n\tstyleOutputHashes.delete(key);\n};\n\nexport const compileStyleSource = async (\n\tfilePath: string,\n\tsource?: string,\n\tlanguageHint?: string,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tconst language = getStyleLanguage(languageHint ?? filePath);\n\tconst rawContents = source ?? (await readFile(filePath, 'utf-8'));\n\t// Collect every partial / @import / @use that the compiler touches.\n\t// Stored on `styleDependencyGraph` after compile so the dev server\n\t// can invalidate this entry when one of its imports changes.\n\tconst deps = new Set<string>();\n\n\tif (language === 'scss' || language === 'sass') {\n\t\tconst options = getSassOptions(config, language);\n\t\tconst packageName = options.implementation ?? 'sass';\n\t\tlet sass: typeof import('sass');\n\t\ttry {\n\t\t\tsass = await importOptionalPeer<typeof import('sass')>(packageName);\n\t\t} catch {\n\t\t\tthrow missingDependencyError(packageName, filePath);\n\t\t}\n\n\t\tconst contents = withAdditionalData(\n\t\t\trawContents,\n\t\t\toptions.additionalData\n\t\t);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.loadPaths);\n\t\ttry {\n\t\t\tconst result = sass.compileString(contents, {\n\t\t\t\timporters: [\n\t\t\t\t\tcreateSassImporter(\n\t\t\t\t\t\tfilePath,\n\t\t\t\t\t\tloadPaths,\n\t\t\t\t\t\tlanguage,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tdeps\n\t\t\t\t\t)\n\t\t\t\t],\n\t\t\t\tloadPaths,\n\t\t\t\tstyle: 'expanded',\n\t\t\t\tsyntax: language === 'sass' ? 'indented' : 'scss',\n\t\t\t\turl: new URL(pathToFileURL(resolve(filePath)).href)\n\t\t\t});\n\n\t\t\tconst css = await runPostcss(result.css, filePath, config);\n\t\t\t// Augment `deps` with `result.loadedUrls`. Detail:\n\t\t\t// resolves a relative `@use './partial'` via the\n\t\t\t// built-in filesystem loader (which it does whenever\n\t\t\t// the source has a `url:` set, which we always do),\n\t\t\t// the custom importer's `canonicalize`/`load` callbacks\n\t\t\t// don't fire — so `deps` would otherwise be empty.\n\t\t\t// `loadedUrls` always reflects every file Sass actually\n\t\t\t// touched, including the entry, so we filter the entry\n\t\t\t// out and add the rest.\n\t\t\tconst loadedUrls = (result.loadedUrls ?? []) as URL[];\n\t\t\tfor (const url of loadedUrls) {\n\t\t\t\tif (url.protocol !== 'file:') continue;\n\t\t\t\tconst dep = fileURLToPath(url);\n\t\t\t\tif (resolve(dep) === resolve(filePath)) continue;\n\t\t\t\tdeps.add(dep);\n\t\t\t}\n\t\t\trecordStyleDeps(filePath, deps);\n\n\t\t\treturn css;\n\t\t} catch (error) {\n\t\t\tthrowPreprocessorError(error, filePath, language);\n\t\t}\n\t}\n\n\tif (language === 'less') {\n\t\tconst options = getLessOptions(config);\n\t\ttype LessRender = typeof import('less').render;\n\t\tlet lessModule: {\n\t\t\tdefault?: { render: LessRender };\n\t\t\trender?: LessRender;\n\t\t};\n\t\ttry {\n\t\t\tlessModule = await importOptionalPeer<typeof lessModule>('less');\n\t\t} catch {\n\t\t\tthrow missingDependencyError('less', filePath);\n\t\t}\n\t\tconst less = lessModule.render ? lessModule : lessModule.default;\n\t\tconst render = less?.render;\n\t\tif (!render) throw missingDependencyError('less', filePath);\n\n\t\tconst contents = withAdditionalData(\n\t\t\trawContents,\n\t\t\toptions.additionalData\n\t\t);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.paths);\n\t\ttry {\n\t\t\tconst result = await render(contents, {\n\t\t\t\t...(options.options ?? {}),\n\t\t\t\tfilename: filePath,\n\t\t\t\tpaths: loadPaths,\n\t\t\t\tplugins: [\n\t\t\t\t\t...((options.options?.plugins as unknown[]) ?? []),\n\t\t\t\t\tcreateLessFileManager(filePath, loadPaths, config, deps)\n\t\t\t\t]\n\t\t\t});\n\n\t\t\tconst css = await runPostcss(result.css, filePath, config);\n\t\t\trecordStyleDeps(filePath, deps);\n\n\t\t\treturn css;\n\t\t} catch (error) {\n\t\t\tthrowPreprocessorError(error, filePath, 'less');\n\t\t}\n\t}\n\n\tif (language === 'stylus') {\n\t\tconst options = getStylusOptions(config);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.paths);\n\t\tconst contents = withAdditionalData(\n\t\t\tpreprocessLoadedStyle(\n\t\t\t\trawContents,\n\t\t\t\tfilePath,\n\t\t\t\tfilePath,\n\t\t\t\tloadPaths,\n\t\t\t\t'stylus',\n\t\t\t\tconfig\n\t\t\t),\n\t\t\toptions.additionalData\n\t\t);\n\n\t\ttry {\n\t\t\tconst css = await runPostcss(\n\t\t\t\tawait renderStylus(\n\t\t\t\t\tcontents,\n\t\t\t\t\tfilePath,\n\t\t\t\t\tloadPaths,\n\t\t\t\t\toptions,\n\t\t\t\t\tdeps\n\t\t\t\t),\n\t\t\t\tfilePath,\n\t\t\t\tconfig\n\t\t\t);\n\t\t\trecordStyleDeps(filePath, deps);\n\n\t\t\treturn css;\n\t\t} catch (error) {\n\t\t\tthrowPreprocessorError(error, filePath, 'stylus');\n\t\t}\n\t}\n\n\treturn runPostcss(rawContents, filePath, config);\n};\n\nexport const createStylePreprocessorPlugin = (\n\tconfig?: StylePreprocessorConfig\n): BunPlugin => ({\n\tname: 'absolute-style-preprocessor',\n\tsetup(build) {\n\t\tconst cssModuleSources = new Map<\n\t\t\tstring,\n\t\t\t{ css: string; exports: Record<string, string> }\n\t\t>();\n\n\t\tbuild.onResolve({ filter: /^absolute-style-module:/ }, ({ path }) => ({\n\t\t\tnamespace: 'absolute-style-module',\n\t\t\tpath: path.slice('absolute-style-module:'.length)\n\t\t}));\n\n\t\tbuild.onLoad(\n\t\t\t{ filter: /\\.module\\.css$/i, namespace: 'absolute-style-module' },\n\t\t\tasync ({ path }) => {\n\t\t\t\tconst source = cssModuleSources.get(path);\n\t\t\t\tif (!source) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unable to resolve CSS module source for ${path}`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tcontents: source.css,\n\t\t\t\t\tloader: 'css'\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\n\t\tbuild.onLoad({ filter: STYLE_EXTENSION_PATTERN }, async ({ path }) => {\n\t\t\tif (isStyleModulePath(path)) {\n\t\t\t\tconst cssModulePath = path.replace(\n\t\t\t\t\tSTYLE_EXTENSION_PATTERN,\n\t\t\t\t\t'.css'\n\t\t\t\t);\n\t\t\t\tconst compiled = await compileStyleSource(\n\t\t\t\t\tpath,\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tconfig\n\t\t\t\t);\n\t\t\t\tconst { css, exports } = extractCssModuleExports(compiled);\n\t\t\t\tcssModuleSources.set(cssModulePath, { css, exports });\n\t\t\t\tconst exportSource =\n\t\t\t\t\tObject.keys(exports).length > 0\n\t\t\t\t\t\t? `import styles from ${JSON.stringify(`absolute-style-module:${cssModulePath}`)}; export default Object.assign({}, styles, ${JSON.stringify(exports)});`\n\t\t\t\t\t\t: `export { default } from ${JSON.stringify(`absolute-style-module:${cssModulePath}`)};`;\n\n\t\t\t\treturn {\n\t\t\t\t\tcontents: exportSource,\n\t\t\t\t\tloader: 'js'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcontents: await compileStyleSource(\n\t\t\t\t\tpath,\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tconfig\n\t\t\t\t),\n\t\t\t\tloader: 'css'\n\t\t\t};\n\t\t});\n\n\t\tbuild.onLoad({ filter: CSS_EXTENSION_PATTERN }, async ({ path }) => ({\n\t\t\tcontents: await compileStyleSource(\n\t\t\t\tpath,\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\tconfig\n\t\t\t),\n\t\t\tloader: 'css'\n\t\t}));\n\t}\n});\n\nexport const stylePreprocessorPlugin = createStylePreprocessorPlugin();\n\nexport const createSvelteStylePreprocessor = (\n\tconfig?: StylePreprocessorConfig\n) => ({\n\tstyle: async ({\n\t\tattributes,\n\t\tcontent,\n\t\tfilename\n\t}: {\n\t\tattributes: Record<string, string | boolean>;\n\t\tcontent: string;\n\t\tfilename?: string;\n\t}) => {\n\t\tconst language =\n\t\t\ttypeof attributes.lang === 'string'\n\t\t\t\t? attributes.lang\n\t\t\t\t: typeof attributes.type === 'string'\n\t\t\t\t\t? attributes.type.replace(/^text\\//, '')\n\t\t\t\t\t: null;\n\t\tif (!language || !STYLE_LANGUAGE_PATTERN.test(language)) return;\n\n\t\tconst path = filename ?? `style.${language}`;\n\n\t\treturn {\n\t\t\tcode: await compileStyleSource(path, content, language, config)\n\t\t};\n\t}\n});\n\n/* Pattern shared by `resolveCssImports{Sync,Async}` — top-level\n * `@import \"<path>\";` only. `@import url(...)` and media-qualified\n * imports pass through unchanged. */\n\nconst CSS_IMPORT_PATTERN = /@import\\s+[\"']([^\"']+)[\"']\\s*;?/g;\n\n/* Async counterpart to `resolveCssImportsSync`. Reads imported files\n * via `node:fs/promises.readFile` so the call doesn't block the dev\n * server's event loop on a deep `@import` chain. Same failure modes:\n * `@import url(...)` and media-qualified imports pass through. */\n\nconst resolveCssImportsAsync = async (\n\tcontent: string,\n\tbaseDir: string,\n\tvisited: Set<string>\n): Promise<string> => {\n\tconst matches = Array.from(content.matchAll(CSS_IMPORT_PATTERN));\n\tif (matches.length === 0) return content;\n\n\tlet cursor = 0;\n\tconst parts: string[] = [];\n\tfor (const match of matches) {\n\t\tconst importPath = match[1];\n\t\tif (importPath === undefined) continue;\n\t\tconst start = match.index ?? 0;\n\t\tconst end = start + match[0].length;\n\t\tparts.push(content.slice(cursor, start));\n\n\t\tconst fullPath = isAbsolute(importPath)\n\t\t\t? importPath\n\t\t\t: resolve(baseDir, importPath);\n\t\tif (visited.has(fullPath) || !existsSync(fullPath)) {\n\t\t\tparts.push(visited.has(fullPath) ? '' : match[0]);\n\t\t\tcursor = end;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst nextVisited = new Set(visited);\n\t\tnextVisited.add(fullPath);\n\t\tconst imported = await readFile(fullPath, 'utf-8');\n\t\tparts.push(\n\t\t\tawait resolveCssImportsAsync(\n\t\t\t\timported,\n\t\t\t\tdirname(fullPath),\n\t\t\t\tnextVisited\n\t\t\t)\n\t\t);\n\t\tcursor = end;\n\t}\n\tparts.push(content.slice(cursor));\n\n\treturn parts.join('');\n};\n\nexport const compileStyleFileIfNeeded = async (\n\tfilePath: string,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tif (!isPreprocessableStylePath(filePath)) {\n\t\tconst raw = await readFile(filePath, 'utf-8');\n\t\tconst processed = await runPostcss(raw, filePath, config);\n\t\t// PostCSS only resolves `@import` when configured with\n\t\t// `postcss-import`. We always resolve them here so the inlined\n\t\t// `ɵcmp.styles` content is self-contained — no browser-side\n\t\t// fetch of bare CSS paths that would hit the dev server's\n\t\t// SPA wildcard route and trip Angular's router.\n\t\treturn resolveCssImportsAsync(\n\t\t\tprocessed,\n\t\t\tdirname(filePath),\n\t\t\tnew Set([filePath])\n\t\t);\n\t}\n\n\tconst compiled = await compileStyleSource(\n\t\tfilePath,\n\t\tundefined,\n\t\tundefined,\n\t\tconfig\n\t);\n\t// Sass leaves plain `.css` `@import` statements as-is per CSS spec;\n\t// post-Sass output may still contain them.\n\treturn resolveCssImportsAsync(\n\t\tcompiled,\n\t\tdirname(filePath),\n\t\tnew Set([filePath])\n\t);\n};\n\n/* Resolve top-level CSS `@import \"<path>\";` statements by reading the\n * imported file and inlining its content recursively. Necessary for\n * the sync styleUrls path because Angular component styles get\n * baked into `ɵcmp.styles[]` as plain strings — any unresolved\n * `@import` survives to the rendered `<style>` tag, where the browser\n * tries to fetch the bare path. The dev server has no static file at\n * that path (component CSS is bundled as JS in dev), so the request\n * falls through to the SSR catch-all and Angular's router throws\n * NG04002.\n *\n * Sass / SCSS files don't need this — Sass compiles its own\n * `@import / @use` graph in `sass.compileString`. This helper only\n * applies to plain `.css` content (and the post-Sass output, which\n * may itself contain plain CSS `@import \"x.css\"` statements that\n * Sass leaves as-is when the path ends in `.css`).\n *\n * Tracks visited paths to break cycles. Skips `@import url(...)`,\n * `@import \"...\" screen`, and other forms that need media-query\n * preservation — those fall through unchanged for now (Phase 3\n * follow-up). */\n\nconst resolveCssImportsSync = (\n\tcontent: string,\n\tbaseDir: string,\n\tvisited: Set<string>\n): string => {\n\treturn content.replace(CSS_IMPORT_PATTERN, (match, importPath) => {\n\t\tconst fullPath = isAbsolute(importPath)\n\t\t\t? importPath\n\t\t\t: resolve(baseDir, importPath);\n\t\tif (visited.has(fullPath)) return '';\n\t\tif (!existsSync(fullPath)) return match;\n\n\t\tconst nextVisited = new Set(visited);\n\t\tnextVisited.add(fullPath);\n\t\tconst imported = readFileSync(fullPath, 'utf-8');\n\n\t\treturn resolveCssImportsSync(imported, dirname(fullPath), nextVisited);\n\t});\n};\n\nexport const compileStyleFileIfNeededSync = (\n\tfilePath: string,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tconst rawContents = readFileSync(filePath, 'utf-8');\n\tconst language = getStyleLanguage(filePath);\n\tif (config?.postcss) {\n\t\tthrow new Error(\n\t\t\t`Unable to compile ${filePath}: PostCSS preprocessing is async-only.`\n\t\t);\n\t}\n\tif (language === 'scss' || language === 'sass') {\n\t\tconst options = getSassOptions(config, language);\n\t\tconst packageName = options.implementation ?? 'sass';\n\t\tlet sass: typeof import('sass');\n\t\ttry {\n\t\t\tsass = requireOptionalPeerSync<typeof import('sass')>(packageName);\n\t\t} catch {\n\t\t\tthrow missingDependencyError(packageName, filePath);\n\t\t}\n\n\t\tconst contents = withAdditionalData(\n\t\t\trawContents,\n\t\t\toptions.additionalData\n\t\t);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.loadPaths);\n\t\tconst result = sass.compileString(contents, {\n\t\t\timporters: [\n\t\t\t\tcreateSassImporter(filePath, loadPaths, language, config)\n\t\t\t],\n\t\t\tloadPaths,\n\t\t\tstyle: 'expanded',\n\t\t\tsyntax: language === 'sass' ? 'indented' : 'scss',\n\t\t\turl: new URL(pathToFileURL(resolve(filePath)).href)\n\t\t});\n\t\t// Track every `@use` / `@import` dependency Sass loaded so\n\t\t// downstream HMR can find the entry stylesheet that needs to\n\t\t// re-emit when a shared partial (`_shared.scss`,\n\t\t// `_tokens.scss`) changes. `result.loadedUrls` includes the\n\t\t// entry itself plus everything it pulled in. Without this,\n\t\t// editing a shared partial silently keeps the entry's stale\n\t\t// CSS until a full restart.\n\t\tconst loadedUrls = (result.loadedUrls ?? []) as URL[];\n\t\tfor (const url of loadedUrls) {\n\t\t\tif (url.protocol !== 'file:') continue;\n\t\t\tconst dep = fileURLToPath(url);\n\t\t\tif (resolve(dep) === resolve(filePath)) continue;\n\t\t\taddStyleImporter(filePath, dep);\n\t\t}\n\t\t// Sass leaves plain `.css` `@import` statements alone (per CSS\n\t\t// spec, those are runtime-resolved). Resolve them here so the\n\t\t// inlined `ɵcmp.styles` content is self-contained.\n\t\treturn resolveCssImportsSync(\n\t\t\tresult.css,\n\t\t\tdirname(filePath),\n\t\t\tnew Set([filePath])\n\t\t);\n\t}\n\tif (language === 'less') {\n\t\tthrow new Error(\n\t\t\t`Unable to compile ${filePath}: Less styleUrl preprocessing is async-only. Import the Less file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`\n\t\t);\n\t}\n\tif (language === 'stylus') {\n\t\tthrow new Error(\n\t\t\t`Unable to compile ${filePath}: Stylus styleUrl preprocessing is async-only. Import the Stylus file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`\n\t\t);\n\t}\n\n\treturn resolveCssImportsSync(\n\t\trawContents,\n\t\tdirname(filePath),\n\t\tnew Set([filePath])\n\t);\n};\n\nexport const getCssOutputExtension = (filePath: string) =>\n\tisPreprocessableStylePath(filePath) ? '.css' : extname(filePath);\n",
27
+ "import { createHash } from 'node:crypto';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { readFile } from 'node:fs/promises';\nimport { createRequire } from 'node:module';\nimport {\n\tdirname,\n\textname,\n\tisAbsolute,\n\tjoin,\n\trelative,\n\tresolve\n} from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\nimport type { BunPlugin } from 'bun';\nimport type {\n\tLessPreprocessorOptions,\n\tPostCSSConfig,\n\tSassPreprocessorOptions,\n\tStylePreprocessorConfig,\n\tStylusPreprocessorOptions\n} from '../../types/build';\n\nconst CSS_EXTENSION_PATTERN = /\\.css$/i;\nconst STYLE_EXTENSION_PATTERN = /\\.(s[ac]ss|less|styl(?:us)?)$/i;\nconst STYLE_MODULE_EXTENSION_PATTERN = /\\.module\\.(s[ac]ss|less|styl(?:us)?)$/i;\nconst STYLE_LANGUAGE_PATTERN = /^(s[ac]ss|less|styl(?:us)?)$/i;\nconst importOptionalPeer = new Function(\n\t'specifier',\n\t'return import(specifier)'\n) as <T>(specifier: string) => Promise<T>;\nconst requireOptionalPeer = new Function(\n\t'specifier',\n\t'return require(specifier)'\n) as <T>(specifier: string) => T;\nconst requireFromCwd = createRequire(join(process.cwd(), 'package.json'));\n\nexport const isPreprocessableStylePath = (filePath: string) =>\n\tSTYLE_EXTENSION_PATTERN.test(filePath);\n\nexport const isStyleModulePath = (filePath: string) =>\n\tSTYLE_MODULE_EXTENSION_PATTERN.test(filePath);\n\nexport const isStylePath = (filePath: string) =>\n\t/\\.(css|s[ac]ss|less|styl(?:us)?)$/i.test(filePath);\n\nexport const getStyleBaseName = (filePath: string) =>\n\tfilePath.replace(/\\.(css|s[ac]ss|less|styl(?:us)?)$/i, '');\n\nconst getStyleLanguage = (filePathOrLanguage: string) => {\n\tconst normalized = filePathOrLanguage.toLowerCase();\n\tif (normalized === 'scss' || normalized.endsWith('.scss')) return 'scss';\n\tif (normalized === 'sass' || normalized.endsWith('.sass')) return 'sass';\n\tif (normalized === 'less' || normalized.endsWith('.less')) return 'less';\n\tif (\n\t\tnormalized === 'styl' ||\n\t\tnormalized === 'stylus' ||\n\t\tnormalized.endsWith('.styl') ||\n\t\tnormalized.endsWith('.stylus')\n\t)\n\t\treturn 'stylus';\n\n\treturn null;\n};\n\nconst missingDependencyError = (name: string, filePath: string) =>\n\tnew Error(\n\t\t`Unable to compile ${filePath}: install optional dependency \"${name}\" to use this stylesheet preprocessor.`\n\t);\n\n/* Re-throw a preprocessor error with the filename + a one-line summary\n prefixed so the dev server's `[hmr] error` log doesn't print\n `Server error: undefined`. Sass / Less / Stylus all attach useful\n metadata (line, column, snippet) to their errors but the property\n names differ — we surface whatever's available. */\nconst throwPreprocessorError = (\n\terror: unknown,\n\tfilePath: string,\n\tlanguage: StyleLanguage\n): never => {\n\tif (!(error instanceof Error)) {\n\t\tthrow new Error(\n\t\t\t`${language} compile failed in ${filePath}: ${String(error)}`\n\t\t);\n\t}\n\n\tconst detail = error as Error & {\n\t\tline?: number;\n\t\tcolumn?: number;\n\t\textract?: string[];\n\t\tformatted?: string;\n\t\tspan?: { start?: { line?: number; column?: number } };\n\t};\n\tconst sassLine = detail.span?.start?.line;\n\tconst sassCol = detail.span?.start?.column;\n\tconst line = detail.line ?? sassLine;\n\tconst column = detail.column ?? sassCol;\n\tconst location =\n\t\ttypeof line === 'number'\n\t\t\t? `:${line}${typeof column === 'number' ? `:${column}` : ''}`\n\t\t\t: '';\n\tconst message = detail.formatted ?? detail.message;\n\tconst wrapped = new Error(\n\t\t`${language} compile failed in ${filePath}${location}\\n${message}`\n\t);\n\twrapped.cause = error;\n\tthrow wrapped;\n};\n\nconst requireOptionalPeerSync = <T>(specifier: string) => {\n\ttry {\n\t\treturn requireFromCwd(specifier) as T;\n\t} catch {\n\t\treturn requireOptionalPeer<T>(specifier);\n\t}\n};\n\nconst normalizeLoadPaths = (filePath: string, paths: string[] = []) => [\n\tdirname(filePath),\n\tprocess.cwd(),\n\t...paths.map((path) => resolve(process.cwd(), path))\n];\n\ntype StyleLanguage = NonNullable<ReturnType<typeof getStyleLanguage>>;\n\ntype AliasEntry = {\n\tpattern: string;\n\treplacements: string[];\n};\n\nlet tsconfigAliasCache:\n\t{ cwd: string; aliases: AliasEntry[]; baseUrl: string } | undefined;\n\nconst stripJsonComments = (source: string) =>\n\tsource.replace(/\\/\\*[\\s\\S]*?\\*\\//g, '').replace(/(^|[^:])\\/\\/.*$/gm, '$1');\n\nconst normalizeAliasEntries = (\n\taliases: Record<string, string | string[]> | undefined\n) =>\n\tObject.entries(aliases ?? {}).map(([pattern, value]) => ({\n\t\tpattern,\n\t\treplacements: Array.isArray(value) ? value : [value]\n\t}));\n\nconst readTsconfigAliases = () => {\n\tconst cwd = process.cwd();\n\tif (tsconfigAliasCache?.cwd === cwd) return tsconfigAliasCache;\n\n\tconst tsconfigPath = resolve(cwd, 'tsconfig.json');\n\tconst empty = { aliases: [], baseUrl: cwd, cwd };\n\tif (!existsSync(tsconfigPath)) {\n\t\ttsconfigAliasCache = empty;\n\t\treturn empty;\n\t}\n\n\ttry {\n\t\tconst parsed = JSON.parse(\n\t\t\tstripJsonComments(readFileSync(tsconfigPath, 'utf-8'))\n\t\t);\n\t\tconst compilerOptions = parsed.compilerOptions ?? {};\n\t\tconst baseUrl = resolve(cwd, compilerOptions.baseUrl ?? '.');\n\t\ttsconfigAliasCache = {\n\t\t\taliases: normalizeAliasEntries(compilerOptions.paths),\n\t\t\tbaseUrl,\n\t\t\tcwd\n\t\t};\n\t} catch {\n\t\ttsconfigAliasCache = empty;\n\t}\n\n\treturn tsconfigAliasCache;\n};\n\nconst getAliasEntries = (config: StylePreprocessorConfig | undefined) => {\n\tconst tsconfig = readTsconfigAliases();\n\treturn {\n\t\taliases: [\n\t\t\t...normalizeAliasEntries(config?.aliases),\n\t\t\t...tsconfig.aliases\n\t\t],\n\t\tbaseUrl: tsconfig.baseUrl\n\t};\n};\n\nconst aliasPatternToRegExp = (pattern: string) =>\n\tnew RegExp(\n\t\t`^${pattern\n\t\t\t.split('*')\n\t\t\t.map((part) => part.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n\t\t\t.join('(.+)')}$`\n\t);\n\nconst resolveAliasTargets = (\n\tspecifier: string,\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst { aliases, baseUrl } = getAliasEntries(config);\n\tconst targets: string[] = [];\n\n\tfor (const alias of aliases) {\n\t\tconst match = specifier.match(aliasPatternToRegExp(alias.pattern));\n\t\tif (!match) continue;\n\t\tconst wildcard = match[1] ?? '';\n\t\tfor (const replacement of alias.replacements) {\n\t\t\ttargets.push(resolve(baseUrl, replacement.replace('*', wildcard)));\n\t\t}\n\t}\n\n\treturn targets;\n};\n\nconst getLanguageExtensions = (language: StyleLanguage) => {\n\tif (language === 'less') return ['.less', '.css'];\n\tif (language === 'stylus') return ['.styl', '.stylus', '.css'];\n\treturn ['.scss', '.sass', '.css'];\n};\n\nconst getCandidatePaths = (basePath: string, language: StyleLanguage) => {\n\tconst ext = extname(basePath);\n\tconst paths = ext\n\t\t? [basePath]\n\t\t: getLanguageExtensions(language).flatMap((extension) => [\n\t\t\t\t`${basePath}${extension}`,\n\t\t\t\tjoin(basePath, `index${extension}`)\n\t\t\t]);\n\n\tif (language === 'scss' || language === 'sass') {\n\t\treturn paths.flatMap((path) => {\n\t\t\tconst dir = dirname(path);\n\t\t\tconst base = path.slice(dir.length + 1);\n\t\t\treturn [path, join(dir, `_${base}`)];\n\t\t});\n\t}\n\n\treturn paths;\n};\n\nconst resolveImportPath = (\n\tspecifier: string,\n\tfromDirectory: string,\n\tloadPaths: string[],\n\tlanguage: StyleLanguage,\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst rawCandidates = [\n\t\t...resolveAliasTargets(specifier, config),\n\t\tisAbsolute(specifier) ? specifier : resolve(fromDirectory, specifier),\n\t\t...loadPaths.map((path) => resolve(path, specifier))\n\t];\n\n\tfor (const candidate of rawCandidates.flatMap((path) =>\n\t\tgetCandidatePaths(path, language)\n\t)) {\n\t\tif (existsSync(candidate)) return candidate;\n\t}\n\n\treturn null;\n};\n\nconst isExternalCssUrl = (url: string) =>\n\t/^(?:[a-z][a-z0-9+.-]*:|\\/\\/|#|\\/)/i.test(url);\n\nconst splitCssUrl = (url: string) => {\n\tconst markerIndex = url.search(/[?#]/);\n\tif (markerIndex === -1) return { marker: '', path: url };\n\treturn {\n\t\tmarker: url.slice(markerIndex),\n\t\tpath: url.slice(0, markerIndex)\n\t};\n};\n\nconst rebaseCssUrls = (\n\tcontents: string,\n\tsourceFile: string,\n\tentryFile: string\n) => {\n\tconst sourceDir = dirname(sourceFile);\n\tconst entryDir = dirname(entryFile);\n\tif (sourceDir === entryDir) return contents;\n\n\treturn contents.replace(\n\t\t/url\\(\\s*(['\"]?)([^'\")]+)\\1\\s*\\)/gi,\n\t\t(match, quote: string, rawUrl: string) => {\n\t\t\tconst trimmedUrl = rawUrl.trim();\n\t\t\tif (!trimmedUrl || isExternalCssUrl(trimmedUrl)) return match;\n\t\t\tconst { marker, path } = splitCssUrl(trimmedUrl);\n\t\t\tconst rebased = relative(\n\t\t\t\tentryDir,\n\t\t\t\tresolve(sourceDir, path)\n\t\t\t).replace(/\\\\/g, '/');\n\t\t\tconst normalized = rebased.startsWith('.')\n\t\t\t\t? rebased\n\t\t\t\t: `./${rebased}`;\n\t\t\tconst nextQuote = quote || '\"';\n\t\t\treturn `url(${nextQuote}${normalized}${marker}${nextQuote})`;\n\t\t}\n\t);\n};\n\nconst rewriteAliasedStyleImports = (\n\tcontents: string,\n\tsourceFile: string,\n\tloadPaths: string[],\n\tlanguage: StyleLanguage,\n\tconfig: StylePreprocessorConfig | undefined\n) =>\n\tcontents.replace(\n\t\t/(@(?:use|forward|import|require)\\s+)([\"'])([^\"']+)\\2/g,\n\t\t(match, prefix: string, quote: string, specifier: string) => {\n\t\t\tif (\n\t\t\t\tspecifier.startsWith('.') ||\n\t\t\t\tisAbsolute(specifier) ||\n\t\t\t\tisExternalCssUrl(specifier)\n\t\t\t)\n\t\t\t\treturn match;\n\n\t\t\tconst resolved = resolveImportPath(\n\t\t\t\tspecifier,\n\t\t\t\tdirname(sourceFile),\n\t\t\t\tloadPaths,\n\t\t\t\tlanguage,\n\t\t\t\tconfig\n\t\t\t);\n\t\t\treturn resolved ? `${prefix}${quote}${resolved}${quote}` : match;\n\t\t}\n\t);\n\nconst preprocessLoadedStyle = (\n\tcontents: string,\n\tsourceFile: string,\n\tentryFile: string,\n\tloadPaths: string[] = [],\n\tlanguage?: StyleLanguage,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tconst rebased = rebaseCssUrls(contents, sourceFile, entryFile);\n\treturn language\n\t\t? rewriteAliasedStyleImports(\n\t\t\t\trebased,\n\t\t\t\tsourceFile,\n\t\t\t\tloadPaths,\n\t\t\t\tlanguage,\n\t\t\t\tconfig\n\t\t\t)\n\t\t: rebased;\n};\n\nconst extractCssModuleExports = (css: string) => {\n\tconst exports: Record<string, string> = {};\n\tconst nextCss = css.replace(/:export\\s*\\{([^}]*)\\}/g, (_, body: string) => {\n\t\tfor (const declaration of body.split(';')) {\n\t\t\tconst separator = declaration.indexOf(':');\n\t\t\tif (separator === -1) continue;\n\t\t\tconst key = declaration.slice(0, separator).trim();\n\t\t\tconst value = declaration.slice(separator + 1).trim();\n\t\t\tif (key && value) exports[key] = value;\n\t\t}\n\t\treturn '';\n\t});\n\n\treturn { css: nextCss, exports };\n};\n\nconst getSassOptions = (\n\tconfig: StylePreprocessorConfig | undefined,\n\tlanguage: 'sass' | 'scss'\n): SassPreprocessorOptions => ({\n\t...(config?.sass ?? {}),\n\t...(language === 'scss' ? (config?.scss ?? {}) : {})\n});\n\nconst getLessOptions = (\n\tconfig: StylePreprocessorConfig | undefined\n): LessPreprocessorOptions => config?.less ?? {};\n\nconst getStylusOptions = (\n\tconfig: StylePreprocessorConfig | undefined\n): StylusPreprocessorOptions => config?.stylus ?? {};\n\nexport const createStyleTransformConfig = (\n\tstylePreprocessors?: StylePreprocessorConfig,\n\tpostcss?: PostCSSConfig\n): StylePreprocessorConfig | undefined =>\n\tpostcss === undefined\n\t\t? stylePreprocessors\n\t\t: { ...(stylePreprocessors ?? {}), postcss };\n\nconst withAdditionalData = (\n\tcontents: string,\n\tadditionalData: string | undefined\n) => (additionalData ? `${additionalData}\\n${contents}` : contents);\n\ntype PostCSSRuntimeConfig = {\n\toptions?: Record<string, unknown>;\n\tplugins?: unknown[] | Record<string, unknown>;\n};\n\nconst normalizePostcssModule = (mod: unknown) => {\n\tif (mod && typeof mod === 'object' && 'default' in mod) {\n\t\treturn (mod as { default?: unknown }).default ?? mod;\n\t}\n\n\treturn mod;\n};\n\nconst loadPostcssConfigFile = async (\n\tconfigPath: string\n): Promise<PostCSSRuntimeConfig> => {\n\tconst resolved = resolve(process.cwd(), configPath);\n\tconst loaded =\n\t\tresolved.endsWith('.cjs') || resolved.endsWith('.cts')\n\t\t\t? requireOptionalPeerSync<unknown>(resolved)\n\t\t\t: await importOptionalPeer<unknown>(\n\t\t\t\t\t`${new URL(`file://${resolved}`).href}?t=${Date.now()}`\n\t\t\t\t);\n\tconst config = normalizePostcssModule(loaded);\n\tconst value =\n\t\ttypeof config === 'function'\n\t\t\t? await (\n\t\t\t\t\tconfig as (context: {\n\t\t\t\t\t\tcwd: string;\n\t\t\t\t\t\tenv?: string;\n\t\t\t\t\t}) => unknown\n\t\t\t\t)({\n\t\t\t\t\tcwd: process.cwd(),\n\t\t\t\t\tenv: process.env.NODE_ENV\n\t\t\t\t})\n\t\t\t: config;\n\n\treturn (normalizePostcssModule(value) ?? {}) as PostCSSRuntimeConfig;\n};\n\nconst normalizePostcssPlugins = (\n\tplugins: unknown[] | Record<string, unknown> | undefined\n) => {\n\tif (!plugins) return [];\n\tif (Array.isArray(plugins)) return plugins.filter(Boolean);\n\n\tconst resolved: unknown[] = [];\n\tfor (const [specifier, options] of Object.entries(plugins)) {\n\t\tif (options === false) continue;\n\t\tconst mod = normalizePostcssModule(\n\t\t\trequireOptionalPeerSync<unknown>(specifier)\n\t\t);\n\t\tconst plugin =\n\t\t\ttypeof mod === 'function'\n\t\t\t\t? (mod as (options?: unknown) => unknown)(\n\t\t\t\t\t\toptions === true ? undefined : options\n\t\t\t\t\t)\n\t\t\t\t: mod;\n\t\tif (plugin) resolved.push(plugin);\n\t}\n\n\treturn resolved;\n};\n\nconst resolvePostcssConfig = async (\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst inlineConfig = config?.postcss;\n\tif (!inlineConfig) return null;\n\n\tconst fileConfig = inlineConfig.config\n\t\t? await loadPostcssConfigFile(inlineConfig.config)\n\t\t: {};\n\tconst plugins = [\n\t\t...normalizePostcssPlugins(fileConfig.plugins),\n\t\t...normalizePostcssPlugins(inlineConfig.plugins)\n\t];\n\n\tif (plugins.length === 0) return null;\n\n\treturn {\n\t\toptions: {\n\t\t\t...(fileConfig.options ?? {}),\n\t\t\t...(inlineConfig.options ?? {})\n\t\t},\n\t\tplugins\n\t};\n};\n\nconst runPostcss = async (\n\tcss: string,\n\tfilePath: string,\n\tconfig: StylePreprocessorConfig | undefined\n) => {\n\tconst postcssConfig = await resolvePostcssConfig(config);\n\tif (!postcssConfig) return css;\n\n\tlet postcssModule: typeof import('postcss') & {\n\t\tdefault?: typeof import('postcss');\n\t};\n\ttry {\n\t\tpostcssModule =\n\t\t\tawait importOptionalPeer<typeof postcssModule>('postcss');\n\t} catch {\n\t\tthrow missingDependencyError('postcss', filePath);\n\t}\n\tconst postcss = postcssModule.default ?? postcssModule;\n\tconst result = await postcss(\n\t\tpostcssConfig.plugins as import('postcss').AcceptedPlugin[]\n\t).process(css, {\n\t\tfrom: filePath,\n\t\tmap: false,\n\t\t...postcssConfig.options\n\t});\n\n\treturn result.css;\n};\n\nconst createSassImporter = (\n\tentryFile: string,\n\tloadPaths: string[],\n\tlanguage: 'sass' | 'scss',\n\tconfig: StylePreprocessorConfig | undefined,\n\tdeps?: Set<string>\n) => ({\n\tcanonicalize(specifier: string, options: { containingUrl?: URL | null }) {\n\t\tconst fromDirectory = options.containingUrl\n\t\t\t? dirname(fileURLToPath(options.containingUrl))\n\t\t\t: dirname(entryFile);\n\t\tconst resolved = resolveImportPath(\n\t\t\tspecifier,\n\t\t\tfromDirectory,\n\t\t\tloadPaths,\n\t\t\tlanguage,\n\t\t\tconfig\n\t\t);\n\t\treturn resolved ? new URL(pathToFileURL(resolve(resolved)).href) : null;\n\t},\n\tload(canonicalUrl: URL) {\n\t\tconst filePath = fileURLToPath(canonicalUrl);\n\t\tdeps?.add(filePath);\n\t\tconst fileLanguage = getStyleLanguage(filePath);\n\t\tif (\n\t\t\tfileLanguage !== 'scss' &&\n\t\t\tfileLanguage !== 'sass' &&\n\t\t\tfileLanguage !== null\n\t\t)\n\t\t\treturn null;\n\n\t\treturn {\n\t\t\tcontents: preprocessLoadedStyle(\n\t\t\t\treadFileSync(filePath, 'utf-8'),\n\t\t\t\tfilePath,\n\t\t\t\tentryFile,\n\t\t\t\tloadPaths,\n\t\t\t\tlanguage,\n\t\t\t\tconfig\n\t\t\t),\n\t\t\tsyntax: filePath.endsWith('.sass')\n\t\t\t\t? ('indented' as const)\n\t\t\t\t: ('scss' as const)\n\t\t};\n\t}\n});\n\nconst createLessFileManager = (\n\tentryFile: string,\n\tloadPaths: string[],\n\tconfig: StylePreprocessorConfig | undefined,\n\tdeps?: Set<string>\n) => ({\n\tinstall(\n\t\tless: { FileManager: new () => Record<string, unknown> },\n\t\tpluginManager: { addFileManager(manager: unknown): void }\n\t) {\n\t\tconst baseManager = new less.FileManager();\n\t\tconst manager = Object.create(baseManager) as Record<string, unknown>;\n\t\tmanager.supports = (filename: string, currentDirectory: string) =>\n\t\t\tBoolean(\n\t\t\t\tresolveImportPath(\n\t\t\t\t\tfilename,\n\t\t\t\t\tresolve(currentDirectory),\n\t\t\t\t\tloadPaths,\n\t\t\t\t\t'less',\n\t\t\t\t\tconfig\n\t\t\t\t)\n\t\t\t);\n\t\tmanager.loadFile = async (\n\t\t\tfilename: string,\n\t\t\tcurrentDirectory: string\n\t\t) => {\n\t\t\tconst resolved = resolveImportPath(\n\t\t\t\tfilename,\n\t\t\t\tresolve(currentDirectory),\n\t\t\t\tloadPaths,\n\t\t\t\t'less',\n\t\t\t\tconfig\n\t\t\t);\n\t\t\tif (!resolved) {\n\t\t\t\tthrow new Error(`Unable to resolve Less import \"${filename}\"`);\n\t\t\t}\n\t\t\tdeps?.add(resolved);\n\n\t\t\treturn {\n\t\t\t\tcontents: preprocessLoadedStyle(\n\t\t\t\t\tawait readFile(resolved, 'utf-8'),\n\t\t\t\t\tresolved,\n\t\t\t\t\tentryFile,\n\t\t\t\t\tloadPaths,\n\t\t\t\t\t'less',\n\t\t\t\t\tconfig\n\t\t\t\t),\n\t\t\t\tfilename: resolved\n\t\t\t};\n\t\t};\n\t\tpluginManager.addFileManager(manager);\n\t}\n});\n\nconst renderStylus = async (\n\tcontents: string,\n\tfilePath: string,\n\tloadPaths: string[],\n\toptions: StylusPreprocessorOptions,\n\tdeps?: Set<string>\n) => {\n\tlet stylus: typeof import('stylus');\n\ttry {\n\t\tconst stylusModule = await importOptionalPeer<\n\t\t\ttypeof import('stylus') & { default?: typeof import('stylus') }\n\t\t>('stylus');\n\t\tstylus = stylusModule.default ?? stylusModule;\n\t} catch {\n\t\tthrow missingDependencyError('stylus', filePath);\n\t}\n\n\treturn new Promise<string>((resolveCss, reject) => {\n\t\tconst renderer = stylus(contents);\n\t\trenderer.set('filename', filePath);\n\t\tfor (const [key, value] of Object.entries(options.options ?? {})) {\n\t\t\trenderer.set(key, value);\n\t\t}\n\t\tfor (const path of loadPaths) renderer.include(path);\n\t\trenderer.render((error, css) => {\n\t\t\tif (error) {\n\t\t\t\treject(error);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Stylus exposes its dependency list after a successful render.\n\t\t\tif (deps) {\n\t\t\t\tconst stylusDeps = (\n\t\t\t\t\trenderer as unknown as { deps?: () => string[] }\n\t\t\t\t).deps?.();\n\t\t\t\tif (Array.isArray(stylusDeps)) {\n\t\t\t\t\tfor (const dep of stylusDeps) deps.add(resolve(dep));\n\t\t\t\t}\n\t\t\t}\n\t\t\tresolveCss(css ?? '');\n\t\t});\n\t});\n};\n\n/* Compile-time bookkeeping shared with the dev server.\n\n `styleDependencyGraph` maps every entry stylesheet (anything that ran\n through `compileStyleSource`) to the absolute paths of every partial\n it imported during that compile. The dev rebuild trigger reads this to\n know which entries to invalidate when a partial like `_tokens.scss`\n changes.\n\n `styleOutputHashes` records the SHA-1 of each entry's last-emitted CSS\n so callers can skip re-broadcasting / re-writing identical output. */\nconst styleDependencyGraph = new Map<string, Set<string>>();\nconst styleOutputHashes = new Map<string, string>();\n\nconst recordStyleDeps = (entry: string, deps: Set<string>) => {\n\tconst key = resolve(entry);\n\tconst stripped = new Set<string>();\n\tfor (const dep of deps) {\n\t\tconst resolved = resolve(dep);\n\t\tif (resolved !== key) stripped.add(resolved);\n\t}\n\tstyleDependencyGraph.set(key, stripped);\n};\n\n/* Record that a JS/TS/Vue/Svelte/etc. file imports a stylesheet (typically\n a `.module.scss` or other style import via JS). This is the JS-side dep\n tracking that complements the CSS-side `@import` graph: when the style\n file changes, the dev server uses `findStyleEntriesImporting` to find\n the JS file that imports it and queues that for rebuild. Without this,\n editing `Foo.module.scss` would only re-emit the CSS module's own\n compiled output without re-running the bundler against the importing\n component, so the new hashed class names never reach the bundle. */\nexport const addStyleImporter = (importerPath: string, stylePath: string) => {\n\tconst key = resolve(importerPath);\n\tconst target = resolve(stylePath);\n\tconst deps = styleDependencyGraph.get(key) ?? new Set<string>();\n\tdeps.add(target);\n\tstyleDependencyGraph.set(key, deps);\n};\n\n/* Files that import the given path. Used by the dev server to rebuild\n importers when a partial changes — there's no import-graph traversal,\n so callers should pass already-resolved absolute paths. */\nexport const findStyleEntriesImporting = (changedPath: string) => {\n\tconst target = resolve(changedPath);\n\tconst importers: string[] = [];\n\tfor (const [entry, deps] of styleDependencyGraph) {\n\t\tif (deps.has(target)) importers.push(entry);\n\t}\n\n\treturn importers;\n};\n\n/* Hash the just-emitted CSS for an entry; returns `true` only when the\n output actually differs from the previous compile. The dev path uses\n this to suppress style-update broadcasts on whitespace-only edits. */\nexport const recordStyleOutput = (entry: string, css: string) => {\n\tconst key = resolve(entry);\n\tconst hash = createHash('sha1').update(css).digest('hex');\n\tconst previous = styleOutputHashes.get(key);\n\tstyleOutputHashes.set(key, hash);\n\n\treturn previous !== hash;\n};\n\n/* Drop cached state for an entry — used when the file is deleted or the\n dev server is shutting down. */\nexport const forgetStyleEntry = (entry: string) => {\n\tconst key = resolve(entry);\n\tstyleDependencyGraph.delete(key);\n\tstyleOutputHashes.delete(key);\n};\n\nexport const compileStyleSource = async (\n\tfilePath: string,\n\tsource?: string,\n\tlanguageHint?: string,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tconst language = getStyleLanguage(languageHint ?? filePath);\n\tconst rawContents = source ?? (await readFile(filePath, 'utf-8'));\n\t// Collect every partial / @import / @use that the compiler touches.\n\t// Stored on `styleDependencyGraph` after compile so the dev server\n\t// can invalidate this entry when one of its imports changes.\n\tconst deps = new Set<string>();\n\n\tif (language === 'scss' || language === 'sass') {\n\t\tconst options = getSassOptions(config, language);\n\t\tconst packageName = options.implementation ?? 'sass';\n\t\tlet sass: typeof import('sass');\n\t\ttry {\n\t\t\tsass = await importOptionalPeer<typeof import('sass')>(packageName);\n\t\t} catch {\n\t\t\tthrow missingDependencyError(packageName, filePath);\n\t\t}\n\n\t\tconst contents = withAdditionalData(\n\t\t\trawContents,\n\t\t\toptions.additionalData\n\t\t);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.loadPaths);\n\t\ttry {\n\t\t\tconst result = sass.compileString(contents, {\n\t\t\t\timporters: [\n\t\t\t\t\tcreateSassImporter(\n\t\t\t\t\t\tfilePath,\n\t\t\t\t\t\tloadPaths,\n\t\t\t\t\t\tlanguage,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tdeps\n\t\t\t\t\t)\n\t\t\t\t],\n\t\t\t\tloadPaths,\n\t\t\t\tstyle: 'expanded',\n\t\t\t\tsyntax: language === 'sass' ? 'indented' : 'scss',\n\t\t\t\turl: new URL(pathToFileURL(resolve(filePath)).href)\n\t\t\t});\n\n\t\t\tconst css = await runPostcss(result.css, filePath, config);\n\t\t\t// Augment `deps` with `result.loadedUrls`. Detail:\n\t\t\t// resolves a relative `@use './partial'` via the\n\t\t\t// built-in filesystem loader (which it does whenever\n\t\t\t// the source has a `url:` set, which we always do),\n\t\t\t// the custom importer's `canonicalize`/`load` callbacks\n\t\t\t// don't fire — so `deps` would otherwise be empty.\n\t\t\t// `loadedUrls` always reflects every file Sass actually\n\t\t\t// touched, including the entry, so we filter the entry\n\t\t\t// out and add the rest.\n\t\t\tconst loadedUrls = (result.loadedUrls ?? []) as URL[];\n\t\t\tfor (const url of loadedUrls) {\n\t\t\t\tif (url.protocol !== 'file:') continue;\n\t\t\t\tconst dep = fileURLToPath(url);\n\t\t\t\tif (resolve(dep) === resolve(filePath)) continue;\n\t\t\t\tdeps.add(dep);\n\t\t\t}\n\t\t\trecordStyleDeps(filePath, deps);\n\n\t\t\treturn css;\n\t\t} catch (error) {\n\t\t\tthrowPreprocessorError(error, filePath, language);\n\t\t}\n\t}\n\n\tif (language === 'less') {\n\t\tconst options = getLessOptions(config);\n\t\ttype LessRender = typeof import('less').render;\n\t\tlet lessModule: {\n\t\t\tdefault?: { render: LessRender };\n\t\t\trender?: LessRender;\n\t\t};\n\t\ttry {\n\t\t\tlessModule = await importOptionalPeer<typeof lessModule>('less');\n\t\t} catch {\n\t\t\tthrow missingDependencyError('less', filePath);\n\t\t}\n\t\tconst less = lessModule.render ? lessModule : lessModule.default;\n\t\tconst render = less?.render;\n\t\tif (!render) throw missingDependencyError('less', filePath);\n\n\t\tconst contents = withAdditionalData(\n\t\t\trawContents,\n\t\t\toptions.additionalData\n\t\t);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.paths);\n\t\ttry {\n\t\t\tconst result = await render(contents, {\n\t\t\t\t...(options.options ?? {}),\n\t\t\t\tfilename: filePath,\n\t\t\t\tpaths: loadPaths,\n\t\t\t\tplugins: [\n\t\t\t\t\t...((options.options?.plugins as unknown[]) ?? []),\n\t\t\t\t\tcreateLessFileManager(filePath, loadPaths, config, deps)\n\t\t\t\t]\n\t\t\t});\n\n\t\t\tconst css = await runPostcss(result.css, filePath, config);\n\t\t\trecordStyleDeps(filePath, deps);\n\n\t\t\treturn css;\n\t\t} catch (error) {\n\t\t\tthrowPreprocessorError(error, filePath, 'less');\n\t\t}\n\t}\n\n\tif (language === 'stylus') {\n\t\tconst options = getStylusOptions(config);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.paths);\n\t\tconst contents = withAdditionalData(\n\t\t\tpreprocessLoadedStyle(\n\t\t\t\trawContents,\n\t\t\t\tfilePath,\n\t\t\t\tfilePath,\n\t\t\t\tloadPaths,\n\t\t\t\t'stylus',\n\t\t\t\tconfig\n\t\t\t),\n\t\t\toptions.additionalData\n\t\t);\n\n\t\ttry {\n\t\t\tconst css = await runPostcss(\n\t\t\t\tawait renderStylus(\n\t\t\t\t\tcontents,\n\t\t\t\t\tfilePath,\n\t\t\t\t\tloadPaths,\n\t\t\t\t\toptions,\n\t\t\t\t\tdeps\n\t\t\t\t),\n\t\t\t\tfilePath,\n\t\t\t\tconfig\n\t\t\t);\n\t\t\trecordStyleDeps(filePath, deps);\n\n\t\t\treturn css;\n\t\t} catch (error) {\n\t\t\tthrowPreprocessorError(error, filePath, 'stylus');\n\t\t}\n\t}\n\n\treturn runPostcss(rawContents, filePath, config);\n};\n\nexport const createStylePreprocessorPlugin = (\n\tconfig?: StylePreprocessorConfig\n): BunPlugin => ({\n\tname: 'absolute-style-preprocessor',\n\tsetup(build) {\n\t\tconst cssModuleSources = new Map<\n\t\t\tstring,\n\t\t\t{ css: string; exports: Record<string, string> }\n\t\t>();\n\n\t\tbuild.onResolve({ filter: /^absolute-style-module:/ }, ({ path }) => ({\n\t\t\tnamespace: 'absolute-style-module',\n\t\t\tpath: path.slice('absolute-style-module:'.length)\n\t\t}));\n\n\t\tbuild.onLoad(\n\t\t\t{ filter: /\\.module\\.css$/i, namespace: 'absolute-style-module' },\n\t\t\tasync ({ path }) => {\n\t\t\t\tconst source = cssModuleSources.get(path);\n\t\t\t\tif (!source) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unable to resolve CSS module source for ${path}`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tcontents: source.css,\n\t\t\t\t\tloader: 'css'\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\n\t\tbuild.onLoad({ filter: STYLE_EXTENSION_PATTERN }, async ({ path }) => {\n\t\t\tif (isStyleModulePath(path)) {\n\t\t\t\tconst cssModulePath = path.replace(\n\t\t\t\t\tSTYLE_EXTENSION_PATTERN,\n\t\t\t\t\t'.css'\n\t\t\t\t);\n\t\t\t\tconst compiled = await compileStyleSource(\n\t\t\t\t\tpath,\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tconfig\n\t\t\t\t);\n\t\t\t\tconst { css, exports } = extractCssModuleExports(compiled);\n\t\t\t\tcssModuleSources.set(cssModulePath, { css, exports });\n\t\t\t\tconst exportSource =\n\t\t\t\t\tObject.keys(exports).length > 0\n\t\t\t\t\t\t? `import styles from ${JSON.stringify(`absolute-style-module:${cssModulePath}`)}; export default Object.assign({}, styles, ${JSON.stringify(exports)});`\n\t\t\t\t\t\t: `export { default } from ${JSON.stringify(`absolute-style-module:${cssModulePath}`)};`;\n\n\t\t\t\treturn {\n\t\t\t\t\tcontents: exportSource,\n\t\t\t\t\tloader: 'js'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcontents: await compileStyleSource(\n\t\t\t\t\tpath,\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tconfig\n\t\t\t\t),\n\t\t\t\tloader: 'css'\n\t\t\t};\n\t\t});\n\n\t\tbuild.onLoad({ filter: CSS_EXTENSION_PATTERN }, async ({ path }) => ({\n\t\t\tcontents: await compileStyleSource(\n\t\t\t\tpath,\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\tconfig\n\t\t\t),\n\t\t\tloader: 'css'\n\t\t}));\n\t}\n});\n\nexport const stylePreprocessorPlugin = createStylePreprocessorPlugin();\n\nexport const createSvelteStylePreprocessor = (\n\tconfig?: StylePreprocessorConfig\n) => ({\n\tstyle: async ({\n\t\tattributes,\n\t\tcontent,\n\t\tfilename\n\t}: {\n\t\tattributes: Record<string, string | boolean>;\n\t\tcontent: string;\n\t\tfilename?: string;\n\t}) => {\n\t\tconst language =\n\t\t\ttypeof attributes.lang === 'string'\n\t\t\t\t? attributes.lang\n\t\t\t\t: typeof attributes.type === 'string'\n\t\t\t\t\t? attributes.type.replace(/^text\\//, '')\n\t\t\t\t\t: null;\n\t\tif (!language || !STYLE_LANGUAGE_PATTERN.test(language)) return;\n\n\t\tconst path = filename ?? `style.${language}`;\n\n\t\treturn {\n\t\t\tcode: await compileStyleSource(path, content, language, config)\n\t\t};\n\t}\n});\n\n/* Pattern shared by `resolveCssImports{Sync,Async}` — top-level\n * `@import \"<path>\";` only. `@import url(...)` and media-qualified\n * imports pass through unchanged. */\n\nconst CSS_IMPORT_PATTERN = /@import\\s+[\"']([^\"']+)[\"']\\s*;?/g;\n\n/* Async counterpart to `resolveCssImportsSync`. Reads imported files\n * via `node:fs/promises.readFile` so the call doesn't block the dev\n * server's event loop on a deep `@import` chain. Same failure modes:\n * `@import url(...)` and media-qualified imports pass through. */\n\nconst resolveCssImportsAsync = async (\n\tcontent: string,\n\tbaseDir: string,\n\tvisited: Set<string>\n): Promise<string> => {\n\tconst matches = Array.from(content.matchAll(CSS_IMPORT_PATTERN));\n\tif (matches.length === 0) return content;\n\n\tlet cursor = 0;\n\tconst parts: string[] = [];\n\tfor (const match of matches) {\n\t\tconst importPath = match[1];\n\t\tif (importPath === undefined) continue;\n\t\tconst start = match.index ?? 0;\n\t\tconst end = start + match[0].length;\n\t\tparts.push(content.slice(cursor, start));\n\n\t\tconst fullPath = isAbsolute(importPath)\n\t\t\t? importPath\n\t\t\t: resolve(baseDir, importPath);\n\t\tif (visited.has(fullPath) || !existsSync(fullPath)) {\n\t\t\tparts.push(visited.has(fullPath) ? '' : match[0]);\n\t\t\tcursor = end;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst nextVisited = new Set(visited);\n\t\tnextVisited.add(fullPath);\n\t\tconst imported = await readFile(fullPath, 'utf-8');\n\t\tparts.push(\n\t\t\tawait resolveCssImportsAsync(\n\t\t\t\timported,\n\t\t\t\tdirname(fullPath),\n\t\t\t\tnextVisited\n\t\t\t)\n\t\t);\n\t\tcursor = end;\n\t}\n\tparts.push(content.slice(cursor));\n\n\treturn parts.join('');\n};\n\nexport const compileStyleFileIfNeeded = async (\n\tfilePath: string,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tif (!isPreprocessableStylePath(filePath)) {\n\t\tconst raw = await readFile(filePath, 'utf-8');\n\t\tconst processed = await runPostcss(raw, filePath, config);\n\t\t// PostCSS only resolves `@import` when configured with\n\t\t// `postcss-import`. We always resolve them here so the inlined\n\t\t// `ɵcmp.styles` content is self-contained — no browser-side\n\t\t// fetch of bare CSS paths that would hit the dev server's\n\t\t// SPA wildcard route and trip Angular's router.\n\t\treturn resolveCssImportsAsync(\n\t\t\tprocessed,\n\t\t\tdirname(filePath),\n\t\t\tnew Set([filePath])\n\t\t);\n\t}\n\n\tconst compiled = await compileStyleSource(\n\t\tfilePath,\n\t\tundefined,\n\t\tundefined,\n\t\tconfig\n\t);\n\t// Sass leaves plain `.css` `@import` statements as-is per CSS spec;\n\t// post-Sass output may still contain them.\n\treturn resolveCssImportsAsync(\n\t\tcompiled,\n\t\tdirname(filePath),\n\t\tnew Set([filePath])\n\t);\n};\n\n/* Resolve top-level CSS `@import \"<path>\";` statements by reading the\n * imported file and inlining its content recursively. Necessary for\n * the sync styleUrls path because Angular component styles get\n * baked into `ɵcmp.styles[]` as plain strings — any unresolved\n * `@import` survives to the rendered `<style>` tag, where the browser\n * tries to fetch the bare path. The dev server has no static file at\n * that path (component CSS is bundled as JS in dev), so the request\n * falls through to the SSR catch-all and Angular's router throws\n * NG04002.\n *\n * Sass / SCSS files don't need this — Sass compiles its own\n * `@import / @use` graph in `sass.compileString`. This helper only\n * applies to plain `.css` content (and the post-Sass output, which\n * may itself contain plain CSS `@import \"x.css\"` statements that\n * Sass leaves as-is when the path ends in `.css`).\n *\n * Tracks visited paths to break cycles. Skips `@import url(...)`,\n * `@import \"...\" screen`, and other forms that need media-query\n * preservation — those fall through unchanged for now (Phase 3\n * follow-up). */\n\nconst resolveCssImportsSync = (\n\tcontent: string,\n\tbaseDir: string,\n\tvisited: Set<string>\n): string => {\n\treturn content.replace(CSS_IMPORT_PATTERN, (match, importPath) => {\n\t\tconst fullPath = isAbsolute(importPath)\n\t\t\t? importPath\n\t\t\t: resolve(baseDir, importPath);\n\t\tif (visited.has(fullPath)) return '';\n\t\tif (!existsSync(fullPath)) return match;\n\n\t\tconst nextVisited = new Set(visited);\n\t\tnextVisited.add(fullPath);\n\t\tconst imported = readFileSync(fullPath, 'utf-8');\n\n\t\treturn resolveCssImportsSync(imported, dirname(fullPath), nextVisited);\n\t});\n};\n\nexport const compileStyleFileIfNeededSync = (\n\tfilePath: string,\n\tconfig?: StylePreprocessorConfig\n) => {\n\tconst rawContents = readFileSync(filePath, 'utf-8');\n\tconst language = getStyleLanguage(filePath);\n\tif (config?.postcss) {\n\t\tthrow new Error(\n\t\t\t`Unable to compile ${filePath}: PostCSS preprocessing is async-only.`\n\t\t);\n\t}\n\tif (language === 'scss' || language === 'sass') {\n\t\tconst options = getSassOptions(config, language);\n\t\tconst packageName = options.implementation ?? 'sass';\n\t\tlet sass: typeof import('sass');\n\t\ttry {\n\t\t\tsass = requireOptionalPeerSync<typeof import('sass')>(packageName);\n\t\t} catch {\n\t\t\tthrow missingDependencyError(packageName, filePath);\n\t\t}\n\n\t\tconst contents = withAdditionalData(\n\t\t\trawContents,\n\t\t\toptions.additionalData\n\t\t);\n\t\tconst loadPaths = normalizeLoadPaths(filePath, options.loadPaths);\n\t\tconst result = sass.compileString(contents, {\n\t\t\timporters: [\n\t\t\t\tcreateSassImporter(filePath, loadPaths, language, config)\n\t\t\t],\n\t\t\tloadPaths,\n\t\t\tstyle: 'expanded',\n\t\t\tsyntax: language === 'sass' ? 'indented' : 'scss',\n\t\t\turl: new URL(pathToFileURL(resolve(filePath)).href)\n\t\t});\n\t\t// Track every `@use` / `@import` dependency Sass loaded so\n\t\t// downstream HMR can find the entry stylesheet that needs to\n\t\t// re-emit when a shared partial (`_shared.scss`,\n\t\t// `_tokens.scss`) changes. `result.loadedUrls` includes the\n\t\t// entry itself plus everything it pulled in. Without this,\n\t\t// editing a shared partial silently keeps the entry's stale\n\t\t// CSS until a full restart.\n\t\tconst loadedUrls = (result.loadedUrls ?? []) as URL[];\n\t\tfor (const url of loadedUrls) {\n\t\t\tif (url.protocol !== 'file:') continue;\n\t\t\tconst dep = fileURLToPath(url);\n\t\t\tif (resolve(dep) === resolve(filePath)) continue;\n\t\t\taddStyleImporter(filePath, dep);\n\t\t}\n\t\t// Sass leaves plain `.css` `@import` statements alone (per CSS\n\t\t// spec, those are runtime-resolved). Resolve them here so the\n\t\t// inlined `ɵcmp.styles` content is self-contained.\n\t\treturn resolveCssImportsSync(\n\t\t\tresult.css,\n\t\t\tdirname(filePath),\n\t\t\tnew Set([filePath])\n\t\t);\n\t}\n\tif (language === 'less') {\n\t\tthrow new Error(\n\t\t\t`Unable to compile ${filePath}: Less styleUrl preprocessing is async-only. Import the Less file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`\n\t\t);\n\t}\n\tif (language === 'stylus') {\n\t\tthrow new Error(\n\t\t\t`Unable to compile ${filePath}: Stylus styleUrl preprocessing is async-only. Import the Stylus file from a bundled entrypoint or use SCSS/CSS for Angular styleUrl.`\n\t\t);\n\t}\n\n\treturn resolveCssImportsSync(\n\t\trawContents,\n\t\tdirname(filePath),\n\t\tnew Set([filePath])\n\t);\n};\n\nexport const getCssOutputExtension = (filePath: string) =>\n\tisPreprocessableStylePath(filePath) ? '.css' : extname(filePath);\n",
28
28
  "import type { Dirent } from 'node:fs';\nimport { mkdir, readdir } from 'node:fs/promises';\nimport { basename, dirname, extname, join, relative, resolve } from 'node:path';\nimport { resolvePackageImport } from '../build/resolvePackageImport';\nimport { lowerSvelteIslandSyntax } from '../svelte/lowerIslandSyntax';\nimport { lowerSvelteAwaitSlotSyntax } from '../svelte/lowerAwaitSlotSyntax';\nimport { createSvelteStylePreprocessor } from '../build/stylePreprocessor';\n\nconst serverCacheRoot = join(process.cwd(), '.absolutejs', 'islands', 'svelte');\n\nconst compiledModuleCache = new Map<string, string>();\nconst originalSourcePathCache = new Map<string, string>();\n\nconst transpiler = new Bun.Transpiler({\n\tloader: 'ts',\n\ttarget: 'browser'\n});\n\nconst ensureRelativeImportPath = (from: string, target: string) => {\n\tconst importPath = relative(dirname(from), target).replace(/\\\\/g, '/');\n\n\treturn importPath.startsWith('.') ? importPath : `./${importPath}`;\n};\n\nconst processDirectoryEntries = (\n\tentries: Dirent<string>[],\n\tdir: string,\n\ttargetFileName: string,\n\tstack: string[]\n) => {\n\tfor (const entry of entries) {\n\t\tconst entryPath = join(dir, entry.name);\n\t\tif (entry.isDirectory()) stack.push(entryPath);\n\n\t\tif (entry.isFile() && entry.name === targetFileName) {\n\t\t\treturn entryPath;\n\t\t}\n\t}\n\n\treturn null;\n};\n\nconst searchDirectoryLevel = async (dirs: string[], targetFileName: string) => {\n\tif (dirs.length === 0) return null;\n\n\tconst nextStack: string[] = [];\n\tconst dirEntries = await Promise.all(\n\t\tdirs.map(async (dir) => ({\n\t\t\tdir,\n\t\t\tentries: await readdir(dir, {\n\t\t\t\tencoding: 'utf-8',\n\t\t\t\twithFileTypes: true\n\t\t\t})\n\t\t}))\n\t);\n\n\tfor (const { dir, entries } of dirEntries) {\n\t\tconst found = processDirectoryEntries(\n\t\t\tentries,\n\t\t\tdir,\n\t\t\ttargetFileName,\n\t\t\tnextStack\n\t\t);\n\t\tif (found) return found;\n\t}\n\n\treturn searchDirectoryLevel(nextStack, targetFileName);\n};\n\nconst findSourceFileByBasename = async (\n\tsearchRoot: string,\n\ttargetFileName: string\n) => searchDirectoryLevel([searchRoot], targetFileName);\n\nconst normalizeBuiltSvelteFileName = (sourcePath: string) =>\n\tbasename(sourcePath).replace(/-[a-z0-9]{6,}(?=\\.svelte$)/i, '');\n\nconst resolveOriginalSourcePath = async (sourcePath: string) => {\n\tconst cachedPath = originalSourcePathCache.get(sourcePath);\n\tif (cachedPath !== undefined) {\n\t\treturn cachedPath;\n\t}\n\n\tif (\n\t\t!sourcePath.includes(\n\t\t\t`${join(process.cwd(), 'build')}${process.platform === 'win32' ? '' : '/'}`\n\t\t) &&\n\t\t!sourcePath.includes('/build/')\n\t) {\n\t\toriginalSourcePathCache.set(sourcePath, sourcePath);\n\n\t\treturn sourcePath;\n\t}\n\n\tconst resolvedSourcePath = await findSourceFileByBasename(\n\t\tjoin(process.cwd(), 'src'),\n\t\tnormalizeBuiltSvelteFileName(sourcePath)\n\t);\n\tconst nextPath = resolvedSourcePath ?? sourcePath;\n\toriginalSourcePathCache.set(sourcePath, nextPath);\n\n\treturn nextPath;\n};\n\nconst resolveRelativeModule = async (spec: string, from: string) => {\n\tif (!spec.startsWith('.')) {\n\t\treturn null;\n\t}\n\n\tconst basePath = resolve(dirname(from), spec);\n\tconst candidates = [\n\t\tbasePath,\n\t\t`${basePath}.ts`,\n\t\t`${basePath}.js`,\n\t\t`${basePath}.mjs`,\n\t\t`${basePath}.cjs`,\n\t\t`${basePath}.json`,\n\t\tjoin(basePath, 'index.ts'),\n\t\tjoin(basePath, 'index.js'),\n\t\tjoin(basePath, 'index.mjs'),\n\t\tjoin(basePath, 'index.cjs'),\n\t\tjoin(basePath, 'index.json')\n\t];\n\n\tconst existResults = await Promise.all(\n\t\tcandidates.map((candidate) => Bun.file(candidate).exists())\n\t);\n\tconst foundIndex = existResults.indexOf(true);\n\n\treturn foundIndex >= 0 ? (candidates[foundIndex] ?? null) : null;\n};\n\nconst getCachedModulePath = (sourcePath: string) => {\n\tconst relativeSourcePath = relative(process.cwd(), sourcePath).replace(\n\t\t/\\\\/g,\n\t\t'/'\n\t);\n\tconst normalizedSourcePath = relativeSourcePath.startsWith('..')\n\t\t? sourcePath.replace(/[:\\\\/]/g, '_')\n\t\t: relativeSourcePath;\n\n\treturn join(serverCacheRoot, `${normalizedSourcePath}.server.js`);\n};\n\nconst resolveSvelteImport = async (spec: string, from: string) => {\n\tif (!spec.startsWith('.') && !spec.startsWith('/')) {\n\t\tconst resolved = resolvePackageImport(spec);\n\n\t\treturn resolved && resolved.endsWith('.svelte') ? resolved : null;\n\t}\n\n\tif (spec.startsWith('/')) {\n\t\treturn spec;\n\t}\n\n\tif (!spec.startsWith('.')) {\n\t\treturn null;\n\t}\n\n\tconst explicitPath = resolve(dirname(from), spec);\n\tif (extname(explicitPath) === '.svelte') {\n\t\treturn explicitPath;\n\t}\n\n\tconst candidate = `${explicitPath}.svelte`;\n\tif ((await Bun.file(candidate).exists()) === true) {\n\t\treturn candidate;\n\t}\n\n\treturn null;\n};\n\nconst writeIfChanged = async (path: string, content: string) => {\n\tconst targetFile = Bun.file(path);\n\tconst exists = await targetFile.exists();\n\tif (exists) {\n\t\tconst currentContent = await targetFile.text();\n\t\tif (currentContent === content) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tawait Bun.write(path, content);\n};\n\nexport const compileSvelteServerModule = async (sourcePath: string) => {\n\tconst cachedModulePath = compiledModuleCache.get(sourcePath);\n\tif (cachedModulePath) {\n\t\treturn cachedModulePath;\n\t}\n\n\tconst resolutionSourcePath = await resolveOriginalSourcePath(sourcePath);\n\tconst source = await Bun.file(sourcePath).text();\n\tconst { compile, preprocess } = await import('svelte/compiler');\n\tconst loweredAwaitSource = lowerSvelteAwaitSlotSyntax(source);\n\tconst loweredSource = lowerSvelteIslandSyntax(\n\t\tloweredAwaitSource.code,\n\t\t'server'\n\t);\n\tconst preprocessed = await preprocess(\n\t\tloweredSource.code,\n\t\tcreateSvelteStylePreprocessor()\n\t);\n\tlet transpiled =\n\t\tsourcePath.endsWith('.ts') || sourcePath.endsWith('.svelte.ts')\n\t\t\t? transpiler.transformSync(preprocessed.code)\n\t\t\t: preprocessed.code;\n\tconst childImportSpecs = Array.from(\n\t\ttranspiled.matchAll(/from\\s+['\"]([^'\"]+)['\"]/g)\n\t)\n\t\t.map((match) => match[1])\n\t\t.filter((value): value is string => value !== undefined);\n\tconst resolvedChildModules = await Promise.all(\n\t\tchildImportSpecs.map((spec) =>\n\t\t\tresolveSvelteImport(spec, resolutionSourcePath)\n\t\t)\n\t);\n\tconst resolvedModuleImports = await Promise.all(\n\t\tchildImportSpecs.map((spec) =>\n\t\t\tresolveRelativeModule(spec, resolutionSourcePath)\n\t\t)\n\t);\n\tconst childModulePaths = new Map<string, string>();\n\tconst rewrittenModulePaths = new Map<string, string>();\n\n\tconst compiledChildren = await Promise.all(\n\t\tchildImportSpecs.map(async (spec, index) => {\n\t\t\tconst resolvedChild = resolvedChildModules[index];\n\t\t\tif (!spec || !resolvedChild) return null;\n\n\t\t\treturn {\n\t\t\t\tcompiledPath: await compileSvelteServerModule(resolvedChild),\n\t\t\t\tresolvedChild,\n\t\t\t\tspec\n\t\t\t};\n\t\t})\n\t);\n\n\tfor (const result of compiledChildren) {\n\t\tif (!result) continue;\n\t\tchildModulePaths.set(result.spec, result.compiledPath);\n\t\tchildModulePaths.set(result.resolvedChild, result.compiledPath);\n\t}\n\n\tfor (let index = 0; index < childImportSpecs.length; index += 1) {\n\t\tconst spec = childImportSpecs[index];\n\t\tconst resolvedModuleImport = resolvedModuleImports[index];\n\t\tif (!spec || !resolvedModuleImport) continue;\n\t\tif (resolvedChildModules[index]) continue;\n\n\t\trewrittenModulePaths.set(\n\t\t\tspec,\n\t\t\tensureRelativeImportPath(\n\t\t\t\tgetCachedModulePath(sourcePath),\n\t\t\t\tresolvedModuleImport\n\t\t\t)\n\t\t);\n\t}\n\n\tfor (const [spec, resolvedModuleImport] of rewrittenModulePaths) {\n\t\ttranspiled = transpiled.replaceAll(spec, resolvedModuleImport);\n\t}\n\n\tlet compiledCode = compile(transpiled, {\n\t\tcss: 'injected',\n\t\texperimental: {\n\t\t\tasync: loweredAwaitSource.transformed || loweredSource.transformed\n\t\t},\n\t\tfilename: resolutionSourcePath,\n\t\tgenerate: 'server'\n\t}).js.code;\n\n\tfor (const [spec, compiledChildPath] of childModulePaths) {\n\t\tcompiledCode = compiledCode.replaceAll(\n\t\t\tspec,\n\t\t\tensureRelativeImportPath(\n\t\t\t\tgetCachedModulePath(sourcePath),\n\t\t\t\tcompiledChildPath\n\t\t\t)\n\t\t);\n\t}\n\n\tfor (const [spec, resolvedModuleImport] of rewrittenModulePaths) {\n\t\tcompiledCode = compiledCode.replaceAll(spec, resolvedModuleImport);\n\t}\n\n\tconst compiledModulePath = getCachedModulePath(sourcePath);\n\tawait mkdir(dirname(compiledModulePath), { recursive: true });\n\tawait writeIfChanged(compiledModulePath, compiledCode);\n\tcompiledModuleCache.set(sourcePath, compiledModulePath);\n\n\treturn compiledModulePath;\n};\n",
29
29
  "import { statSync } from 'node:fs';\n\n/** True only for a regular file. Vue's type resolver probes an import path as\n * written before trying `<path>.ts` and `<path>/index.ts`, so answering true\n * for a directory makes it read the directory and fail with EISDIR. */\nexport const isFile = (path: string) =>\n\tstatSync(path, { throwIfNoEntry: false })?.isFile() ?? false;\n",
30
30
  "type VueCompiler = typeof import('@vue/compiler-sfc');\n\nconst createVueCompiler = async () => {\n\tconst [compiler, typescript] = await Promise.all([\n\t\timport('@vue/compiler-sfc'),\n\t\timport('typescript')\n\t]);\n\tcompiler.registerTS?.(() => typescript);\n\n\treturn compiler;\n};\n\nlet compilerPromise: Promise<VueCompiler> | undefined;\n\nexport const loadVueCompiler = () => {\n\tcompilerPromise ??= createVueCompiler();\n\n\treturn compilerPromise;\n};\n",
@@ -34,9 +34,9 @@
34
34
  "export { defineIslandRegistry } from '../core/islands';\nexport { renderIslandMarkup } from '../core/renderIslandMarkup';\nexport { createIslandStore } from '../client/islandStore';\n",
35
35
  "const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n",
36
36
  "const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst shouldDispatchFromDevtools = (api) => !!api.dispatchFromDevtools && typeof api.dispatch === \"function\";\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = ((state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n });\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (shouldDispatchFromDevtools(api)) {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (shouldDispatchFromDevtools(api)) {\n api.dispatch(action);\n }\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = ((selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n });\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => window.localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n let hydrationVersion = 0;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n return setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n return setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n const currentVersion = ++hydrationVersion;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n if (currentVersion !== hydrationVersion) {\n return;\n }\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(get(), void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nfunction ssrSafe(config, isSSR = typeof window === \"undefined\") {\n return (set, get, api) => {\n if (!isSSR) {\n return config(set, get, api);\n }\n const ssrSet = () => {\n throw new Error(\"Cannot set state of Zustand store in SSR\");\n };\n api.setState = ssrSet;\n return config(ssrSet, get, api);\n };\n}\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector, ssrSafe as unstable_ssrSafe };\n",
37
- "import { createStore, type StateCreator, type StoreApi } from 'zustand/vanilla';\nimport { combine } from 'zustand/middleware';\n\nexport type IslandStoreState = object;\ntype IslandStoreSnapshot = Record<string, unknown>;\ntype IslandStoreShape<\n\tTState extends IslandStoreState,\n\tTActions extends object\n> = Omit<TState, keyof TActions> & TActions;\nexport type IslandStateSnapshot = Record<string, IslandStoreSnapshot>;\ntype AnyIslandStore = StoreApi<object>;\ntype IslandStoreInstance = {\n\tapplyExternalSnapshot: (snapshot: IslandStoreSnapshot) => void;\n\tstore: AnyIslandStore;\n};\n\nexport const ABSOLUTE_ISLAND_STATE = '__ABS_ISLAND_STATE__';\nexport const ABSOLUTE_ISLAND_STORES = '__ABS_ISLAND_STORES__';\n\ndeclare global {\n\tvar __ABS_ISLAND_STATE__: IslandStateSnapshot | undefined;\n\tvar __ABS_ISLAND_STORES__:\n\t\t| Map<string, Set<IslandStoreInstance>>\n\t\t| undefined;\n}\n\nconst getIslandStoreSnapshot = () => {\n\tglobalThis.__ABS_ISLAND_STATE__ ??= {};\n\n\treturn globalThis.__ABS_ISLAND_STATE__;\n};\n\nconst getIslandStores = () => {\n\tglobalThis.__ABS_ISLAND_STORES__ ??= new Map();\n\n\treturn globalThis.__ABS_ISLAND_STORES__;\n};\n\nconst isSerializableValue = (value: unknown) =>\n\ttypeof value !== 'function' && value !== undefined;\n\nconst toSerializableState = <T extends object>(state: T) =>\n\tObject.fromEntries(\n\t\tObject.entries(state).filter(([, value]) => isSerializableValue(value))\n\t);\n\nconst applySnapshot = <T extends object>(\n\tstore: StoreApi<T>,\n\tsnapshot: IslandStoreSnapshot | undefined\n) => {\n\tif (!snapshot) {\n\t\treturn;\n\t}\n\n\tstore.setState({\n\t\t...store.getState(),\n\t\t...snapshot\n\t});\n};\n\nconst getPeerStores = (\n\tstoreInstances: Set<IslandStoreInstance>,\n\townerStore: AnyIslandStore\n) => [...storeInstances].filter((peer) => peer.store !== ownerStore);\n\nconst syncIslandSnapshot = <\n\tTState extends IslandStoreState,\n\tTActions extends object\n>(\n\tstoreId: string,\n\tstate: IslandStoreShape<TState, TActions>,\n\tstoreInstances: Set<IslandStoreInstance>,\n\townerStore: AnyIslandStore\n) => {\n\tconst nextSnapshot = toSerializableState(state);\n\tgetIslandStoreSnapshot()[storeId] = nextSnapshot;\n\n\tfor (const peerStore of getPeerStores(storeInstances, ownerStore)) {\n\t\tpeerStore.applyExternalSnapshot(nextSnapshot);\n\t}\n};\n\nexport const createIslandStore = <\n\tTState extends IslandStoreState,\n\tTActions extends object\n>(\n\tstoreId: string,\n\tinitialState: TState,\n\tcreateState: StateCreator<TState, [], [], TActions>\n) => {\n\tconst store = createStore(combine(initialState, createState));\n\tconst stores = getIslandStores();\n\tconst storeInstances =\n\t\tstores.get(storeId) ?? new Set<IslandStoreInstance>();\n\tconst initialSnapshot = getIslandStoreSnapshot()[storeId];\n\tapplySnapshot(store, initialSnapshot);\n\tlet isApplyingExternalSnapshot = false;\n\n\tconst applyExternalSnapshot = (snapshot: IslandStoreSnapshot) => {\n\t\tisApplyingExternalSnapshot = true;\n\t\tapplySnapshot(store, snapshot);\n\t};\n\n\tstoreInstances.add({\n\t\tapplyExternalSnapshot,\n\t\tstore\n\t});\n\tstores.set(storeId, storeInstances);\n\n\tsyncIslandSnapshot(storeId, store.getState(), storeInstances, store);\n\tstore.subscribe((state) => {\n\t\tif (isApplyingExternalSnapshot) {\n\t\t\tisApplyingExternalSnapshot = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tsyncIslandSnapshot(storeId, state, storeInstances, store);\n\t});\n\n\treturn store;\n};\nexport const getIslandStoreServerSnapshot = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getInitialState());\nconst applySnapshotToStoreInstances = (\n\tstoreId: string,\n\tinstances: Set<IslandStoreInstance>,\n\tsnapshot: IslandStateSnapshot\n) => {\n\tfor (const instance of instances) {\n\t\tinstance.applyExternalSnapshot(snapshot[storeId] ?? {});\n\t}\n};\n\nexport const initializeIslandStores = (state: IslandStateSnapshot) => {\n\tconst currentSnapshot = getIslandStoreSnapshot();\n\tconst nextSnapshot: IslandStateSnapshot = {\n\t\t...state,\n\t\t...currentSnapshot\n\t};\n\n\tglobalThis.__ABS_ISLAND_STATE__ = nextSnapshot;\n\n\tfor (const [storeId, store] of getIslandStores()) {\n\t\tapplySnapshotToStoreInstances(storeId, store, nextSnapshot);\n\t}\n};\nexport const readIslandStore = <TState extends IslandStoreState, TSelected>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getState());\nexport const resetIslandStoreForTesting = () => {\n\tdelete globalThis.__ABS_ISLAND_STATE__;\n\tdelete globalThis.__ABS_ISLAND_STORES__;\n};\nexport const subscribeIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected,\n\tlistener: (value: TSelected) => void\n) => {\n\tlet currentSelection = selector(store.getState());\n\n\treturn store.subscribe((state) => {\n\t\tconst nextSelection = selector(state);\n\t\tif (Object.is(nextSelection, currentSelection)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentSelection = nextSelection;\n\t\tlistener(nextSelection);\n\t});\n};\n"
37
+ "import { createStore, type StateCreator, type StoreApi } from 'zustand/vanilla';\nimport { combine } from 'zustand/middleware';\n\nexport type IslandStoreState = object;\ntype IslandStoreSnapshot = Record<string, unknown>;\ntype IslandStoreShape<\n\tTState extends IslandStoreState,\n\tTActions extends object\n> = Omit<TState, keyof TActions> & TActions;\nexport type IslandStateSnapshot = Record<string, IslandStoreSnapshot>;\ntype AnyIslandStore = StoreApi<object>;\ntype IslandStoreInstance = {\n\tapplyExternalSnapshot: (snapshot: IslandStoreSnapshot) => void;\n\tstore: AnyIslandStore;\n};\n\nexport const ABSOLUTE_ISLAND_STATE = '__ABS_ISLAND_STATE__';\nexport const ABSOLUTE_ISLAND_STORES = '__ABS_ISLAND_STORES__';\n\ndeclare global {\n\tvar __ABS_ISLAND_STATE__: IslandStateSnapshot | undefined;\n\tvar __ABS_ISLAND_STORES__:\n\t\tMap<string, Set<IslandStoreInstance>> | undefined;\n}\n\nconst getIslandStoreSnapshot = () => {\n\tglobalThis.__ABS_ISLAND_STATE__ ??= {};\n\n\treturn globalThis.__ABS_ISLAND_STATE__;\n};\n\nconst getIslandStores = () => {\n\tglobalThis.__ABS_ISLAND_STORES__ ??= new Map();\n\n\treturn globalThis.__ABS_ISLAND_STORES__;\n};\n\nconst isSerializableValue = (value: unknown) =>\n\ttypeof value !== 'function' && value !== undefined;\n\nconst toSerializableState = <T extends object>(state: T) =>\n\tObject.fromEntries(\n\t\tObject.entries(state).filter(([, value]) => isSerializableValue(value))\n\t);\n\nconst applySnapshot = <T extends object>(\n\tstore: StoreApi<T>,\n\tsnapshot: IslandStoreSnapshot | undefined\n) => {\n\tif (!snapshot) {\n\t\treturn;\n\t}\n\n\tstore.setState({\n\t\t...store.getState(),\n\t\t...snapshot\n\t});\n};\n\nconst getPeerStores = (\n\tstoreInstances: Set<IslandStoreInstance>,\n\townerStore: AnyIslandStore\n) => [...storeInstances].filter((peer) => peer.store !== ownerStore);\n\nconst syncIslandSnapshot = <\n\tTState extends IslandStoreState,\n\tTActions extends object\n>(\n\tstoreId: string,\n\tstate: IslandStoreShape<TState, TActions>,\n\tstoreInstances: Set<IslandStoreInstance>,\n\townerStore: AnyIslandStore\n) => {\n\tconst nextSnapshot = toSerializableState(state);\n\tgetIslandStoreSnapshot()[storeId] = nextSnapshot;\n\n\tfor (const peerStore of getPeerStores(storeInstances, ownerStore)) {\n\t\tpeerStore.applyExternalSnapshot(nextSnapshot);\n\t}\n};\n\nexport const createIslandStore = <\n\tTState extends IslandStoreState,\n\tTActions extends object\n>(\n\tstoreId: string,\n\tinitialState: TState,\n\tcreateState: StateCreator<TState, [], [], TActions>\n) => {\n\tconst store = createStore(combine(initialState, createState));\n\tconst stores = getIslandStores();\n\tconst storeInstances =\n\t\tstores.get(storeId) ?? new Set<IslandStoreInstance>();\n\tconst initialSnapshot = getIslandStoreSnapshot()[storeId];\n\tapplySnapshot(store, initialSnapshot);\n\tlet isApplyingExternalSnapshot = false;\n\n\tconst applyExternalSnapshot = (snapshot: IslandStoreSnapshot) => {\n\t\tisApplyingExternalSnapshot = true;\n\t\tapplySnapshot(store, snapshot);\n\t};\n\n\tstoreInstances.add({\n\t\tapplyExternalSnapshot,\n\t\tstore\n\t});\n\tstores.set(storeId, storeInstances);\n\n\tsyncIslandSnapshot(storeId, store.getState(), storeInstances, store);\n\tstore.subscribe((state) => {\n\t\tif (isApplyingExternalSnapshot) {\n\t\t\tisApplyingExternalSnapshot = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tsyncIslandSnapshot(storeId, state, storeInstances, store);\n\t});\n\n\treturn store;\n};\nexport const getIslandStoreServerSnapshot = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getInitialState());\nconst applySnapshotToStoreInstances = (\n\tstoreId: string,\n\tinstances: Set<IslandStoreInstance>,\n\tsnapshot: IslandStateSnapshot\n) => {\n\tfor (const instance of instances) {\n\t\tinstance.applyExternalSnapshot(snapshot[storeId] ?? {});\n\t}\n};\n\nexport const initializeIslandStores = (state: IslandStateSnapshot) => {\n\tconst currentSnapshot = getIslandStoreSnapshot();\n\tconst nextSnapshot: IslandStateSnapshot = {\n\t\t...state,\n\t\t...currentSnapshot\n\t};\n\n\tglobalThis.__ABS_ISLAND_STATE__ = nextSnapshot;\n\n\tfor (const [storeId, store] of getIslandStores()) {\n\t\tapplySnapshotToStoreInstances(storeId, store, nextSnapshot);\n\t}\n};\nexport const readIslandStore = <TState extends IslandStoreState, TSelected>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getState());\nexport const resetIslandStoreForTesting = () => {\n\tdelete globalThis.__ABS_ISLAND_STATE__;\n\tdelete globalThis.__ABS_ISLAND_STORES__;\n};\nexport const subscribeIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected,\n\tlistener: (value: TSelected) => void\n) => {\n\tlet currentSelection = selector(store.getState());\n\n\treturn store.subscribe((state) => {\n\t\tconst nextSelection = selector(state);\n\t\tif (Object.is(nextSelection, currentSelection)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentSelection = nextSelection;\n\t\tlistener(nextSelection);\n\t});\n};\n"
38
38
  ],
39
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEM,2BAA2B,CAAC,cACjC,UAAU,IAAI,YAAY,IAAI,UAAU,MAAM,CAAC,GAE1C,0BAA0B,CAC/B,UACA,WACI;AAAA,EACJ,MAAM,UAAkC,CAAC;AAAA,EACzC,IAAI,QAAQ;AAAA,EAEZ,YAAY,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;AAAA,IACpD,IAAI,CAAC,IAAI,WAAW,MAAM;AAAA,MAAG;AAAA,IAE7B,MAAM,YAAY,IAAI,MAAM,OAAO,MAAM;AAAA,IACzC,IAAI,CAAC;AAAA,MAAW;AAAA,IAEhB,QAAQ,aAAa;AAAA,IACrB,QAAQ;AAAA,EACT;AAAA,EAEA,OAAO,QAAQ,UAAU;AAAA,GAGb,2BAA2B,CAAC,aAAqC;AAAA,EAC7E,MAAM,UACL,CAAC;AAAA,EACF,MAAM,aAAgC,CAAC,SAAS,UAAU,OAAO,SAAS;AAAA,EAE1E,WAAW,aAAa,YAAY;AAAA,IACnC,MAAM,SAAS,SAAS,yBAAyB,SAAS;AAAA,IAC1D,MAAM,UAAU,wBAAwB,UAAU,MAAM;AAAA,IACxD,IAAI;AAAA,MAAS,QAAQ,aAAa;AAAA,EACnC;AAAA,EAEA,OAAO;AAAA,GAEK,uBAAuB,CACnC,WACA,cACI,SAAS,yBAAyB,SAAS,IAAI;;;ACK7C,SAAS,kBAA6B,CAC5C,WACC;AAAA,EACD,IAAI,4BAA4B,SAAS,GAAG;AAAA,IAC3C,OAAO,UAAU;AAAA,EAClB;AAAA,EAEA,OAAO;AAAA;AAAA,IA/CK,wBAAwB,CACpC,WACA,aAI2C;AAAA,EAC3C;AAAA,EACA,QAAQ,QAAQ;AAAA,EAChB,QAAQ,QAAQ;AACjB,IACa,uBAAuB,CACnC,aACI,UAEC,WAAW,CAAC,UACjB,OAAO,UAAU,YAAY,UAAU,MAE3B,0BAA0B,CACtC,cACI;AAAA,EACJ,IAAI,CAAC,4BAA4B,SAAS;AAAA,IAAG,OAAO;AAAA,EAEpD,OAAO;AAAA,IACN,QAAQ,UAAU;AAAA,IAClB,QAAQ,UAAU;AAAA,EACnB;AAAA,GAEY,8BAA8B,CAC1C,UAEA,SAAS,KAAK,MACd,eAAe,WACf,YAAY,UACZ,OAAO,MAAM,WAAW,UAeZ,mBAAmB,CAAC,aAA4B;AAAA,EAC5D,IAAI,CAAC;AAAA,IAAU,OAAO,CAAC;AAAA,EAEvB,OAAO,KAAK,MAAM,QAAQ;AAAA,GAEd,uBAAuB,CAAC,UACpC,KAAK,UAAU,SAAS,CAAC,CAAC;AAAA;;;AC7D3B;AACA;AAAA,IASa,2BAA2B,CAAC,cAAsB;AAAA,EAC9D,MAAM,sBAAsB,QAAQ,IAAI,qBACrC,QAAQ,QAAQ,IAAI,oBAAoB,gBAAgB,SAAS,IACjE;AAAA,EACH,IAAI,uBAAuB,WAAW,mBAAmB,GAAG;AAAA,IAC3D,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,cAAc,QAAQ,QAAQ,IAAI,GAAG,gBAAgB,SAAS;AAAA,EAEpE,IAAI,WAAW,WAAW,GAAG;AAAA,IAC5B,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,GAGF,sBAAsB,CAAC,eAAuB;AAAA,EACnD,IAAI;AAAA,IACH,MAAM,MAAM,KAAK,MAChB,aAAa,KAAK,YAAY,cAAc,GAAG,OAAO,CACvD;AAAA,IACA,MAAM,aAAa,IAAI,UAAU;AAAA,IACjC,MAAM,SACJ,OAAO,eAAe,WACpB,aACA,YAAY,YACf,IAAI,UACJ,IAAI,QACJ;AAAA,IAED,OAAO,KAAK,YAAY,KAAK;AAAA,IAC5B,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,GAII,wBAAwB,CAAC,cAAsB;AAAA,EAC3D,MAAM,aAAa,yBAAyB,SAAS;AAAA,EACrD,IAAI;AAAA,IAAY,OAAO,oBAAoB,UAAU;AAAA,EAErD,OAAO;AAAA,GAGF,mBAAmB,CAAC,cACzB,UAAU,QAAQ,MAAM,EAAE,EAAE,QAAQ,OAAO,GAAG,GAWlC,4BAA4B,CAAC,cAAsB;AAAA,EAC/D,MAAM,YAAY;AAAA,IACjB,QAAQ,IAAI;AAAA,IACZ,QAAQ,QAAQ,IAAI,GAAG,OAAO;AAAA,EAC/B,EAAE,OAAO,CAAC,UAA2B,QAAQ,KAAK,CAAC;AAAA,EAEnD,WAAW,YAAY,WAAW;AAAA,IACjC,MAAM,aAAa,KAClB,UACA,WACA,UACA,UACA,GAAG,iBAAiB,SAAS,MAC9B;AAAA,IACA,IAAI,WAAW,UAAU;AAAA,MAAG,OAAO;AAAA,EACpC;AAAA,EAEA,OAAO,sBAAsB,SAAS;AAAA;AAAA;;;IC7DjC,UAAU,YAGH,uBAAuB,MACnC,QAAQ,IAAI,aAAa,eACb,sBAAsB,MAAM,QAAQ,IAAI,aAAa;;;ICtB5D,aAAa,CAAC,QAAkB;AAAA,EACrC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,iBAAiB;AAAA,IAC7C;AAAA,EACD;AAAA,EAEA,MAAM,OAAO,IAAI,cAAc,MAAM;AAAA,EACrC,IAAI,gBAAgB,aAAa,MAAM,IAAI,gBAAgB,UAAU;AAAA,GAOhE,iBAaF,qBAAqB,OACnB,wBAAwB,CAAC,aAA4B;AAAA,EAC1D,MAAM,SAAmB,CAAC;AAAA,EAC1B,IAAI,UAAyB,WAC1B,OAAO,eAAe,QAAQ,IAC9B;AAAA,EACH,OAAO,WAAW,YAAY,OAAO,WAAW;AAAA,IAC/C,OAAO,KAAK,OAAO;AAAA,IACnB,UAAU,OAAO,eAAe,OAAO;AAAA,EACxC;AAAA,EAEA,OAAO;AAAA,GAGF,qBAAqB,CAAC,QAAkB;AAAA,EAC7C,IAAI,sBAAsB,CAAC,KAAK;AAAA,IAC/B;AAAA,EACD;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,UAAU,IAAI,cAAc,KAAK;AAAA,IAChC,MAAM;AAAA,IACP;AAAA;AAAA,EAMD,MAAM,SAAS,sBAAsB,OAAO;AAAA,EAC5C,IAAI,OAAO,WAAW;AAAA,IAAG;AAAA,EAEzB,MAAM,iBAAiB,CAAC,UAAkC,KAAK,KAAK;AAAA,EACpE,MAAM,mBAAmB,MAAM,eAAe,eAAe;AAAA,EAC7D,MAAM,iBAAiB,MAAM,CAAC;AAAA,EAC9B,MAAM,OAAO,MAAG;AAAA,IAAG;AAAA;AAAA,EACnB,MAAM,eAAe;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EAEA,WAAW,SAAS,QAAQ;AAAA,IAC3B,MAAM,SAAS,CAAC,MAAc,UAAmB;AAAA,MAChD,MAAM,aAAa,OAAO,yBAAyB,OAAO,IAAI;AAAA,MAC9D,IAAI,OAAO,YAAY,UAAU;AAAA,QAAY;AAAA,MAE7C,OAAO,eAAe,OAAO,MAAM;AAAA,QAClC,cAAc;AAAA,QACd;AAAA,QACA,UAAU;AAAA,MACX,CAAC;AAAA;AAAA,IAGF,OAAO,yBAAyB,gBAAgB;AAAA,IAChD,OAAO,kBAAkB,cAAc;AAAA,IACvC,OAAO,YAAY,IAAI;AAAA,IACvB,OAAO,YAAY,IAAI;AAAA,IACvB,OAAO,kBAAkB,IAAI;AAAA,IAC7B,OAAO,SAAS,IAAI;AAAA,IACpB,OAAO,QAAQ,IAAI;AAAA,IAEnB,WAAW,QAAQ,cAAc;AAAA,MAChC,MAAM,OAAO,OAAO,yBAAyB,OAAO,IAAI;AAAA,MACxD,IAAI;AAAA,QAAM;AAAA,MACV,OAAO,eAAe,OAAO,MAAM;AAAA,QAClC,cAAc;AAAA,QACd,KAAK,MAAM;AAAA,MACZ,CAAC;AAAA,IACF;AAAA,EACD;AAAA,EAEA,qBAAqB;AAAA,GAGT,eAAe,YAAY;AAAA,EAMvC,MAAM,OAAO,oBAAoB,IAC9B,0BAA0B,0BAA0B,IACpD;AAAA,EACH,QAAQ,yBAAmB,MAAa;AAAA,EACxC,IAAI,CAAC,sBAAgB,WAAW;AAAA,IAC/B,QAAQ,KACP,iEACD;AAAA,IAEA,OAAO;AAAA,EACR;AAAA,EAMA,IAAI;AAAA,IACH,MAAM,UAAU,IAAI;AAAA,IACpB,MAAM,iBAAiB,MAAM;AAAA,MAC5B,IAAI,OAAO,QAAQ,uBAAuB;AAAA,QACzC,OAAO,QAAQ,mBAAmB;AAAA,MACnC,IAAI,OAAO,QAAQ,uBAAuB;AAAA,QACzC,OAAO,QAAQ,mBAAmB;AAAA,MAEnC,OAAO;AAAA;AAAA,IAER,MAAM,UAAU,eAAe;AAAA,IAC/B,IAAI,SAAS;AAAA,MACZ,mBAAmB,OAAO;AAAA,MAC1B,MAAM,QAAQ,QAAQ,cAAc,KAAK;AAAA,MACzC,IAAI,OAAO,MAAM,0BAA0B,YAAY;AAAA,QACtD,QAAQ,KACP,4EACD;AAAA,MACD;AAAA,IACD;AAAA,IACC,OAAO,OAAO;AAAA,IACf,QAAQ,KACP,+DACA,KACD;AAAA;AAAA,EAGD,MAAM,QAAQ,qBAAe;AAAA,EAE7B,MAAM,kBAAkB,MAAM;AAAA,EAC9B,MAAM,cAAc,QAAS,CAAC,KAAe;AAAA,IAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,OAAO,IAAI,KAAK,aAAa,aAAa;AAAA,MAClE,OAAO;AAAA,IACR;AAAA,IAEA,OAAO,gBAAgB,KAAK,MAAM,GAAG;AAAA;AAAA,EAGtC,MAAM,yBAAyB,MAAM;AAAA,EACrC,MAAM,qBAAqB,QAAS,GAAG;AAAA,IACtC,MAAM,MAAM,uBAAuB,KAAK,IAAI;AAAA,IAC5C,WAAW,GAAG;AAAA,IACd,mBAAmB,GAAG;AAAA,IAEtB,OAAO;AAAA;AAAA,EAGR,MAAM,yBAAyB,MAAM;AAAA,EACrC,MAAM,qBAAqB,QAAS,GAAG;AAAA,IACtC,MAAM,MAAM,uBAAuB,KAAK,IAAI;AAAA,IAC5C,WAAW,GAAG;AAAA,IACd,mBAAmB,GAAG;AAAA,IAEtB,OAAO;AAAA;AAAA,EAGR,OAAO;AAAA;AAAA;AAAA,EAhMR;AAAA,EAkBM,kBAAkB,OAAO,OAAO;AAAA,IACrC,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,OAAO;AAAA,IACP,GAAG;AAAA,IACH,GAAG;AAAA,IACH,MAAM,GAAG;AAAA,MACR,OAAO;AAAA;AAAA,EAET,CAAC;AAAA;;;ICvBK,oBAAoB,CAAC,mBAErB;AAAA,EACL,IAAI;AAAA,IACH,eAAe,sBAAgB,cAAc;AAAA,IAC5C,OAAO,KAAK;AAAA,IACb,QAAQ,MAAM,uCAAuC,GAAG;AAAA;AAAA,GAIpD,kBAAkB,YAAY;AAAA,EAOnC,IAAI,CAAC,oBAAoB,GAAG;AAAA,IAI3B,MAAa;AAAA,EACd;AAAA,EAIA;AAAA,EACA,MAAM,aAAa;AAAA,EAQnB,MAAM,oBAAoB,CAAC,oBAAoB;AAAA,EAC/C,OAAO,iBAAiB,gBAAgB,QAAQ,QAAQ,MAAM,QAAQ,IAAI;AAAA,IAExE,oBACG,sCADH,OAEG,0BAA0B,2BAA2B;AAAA,IAGxD,oBACG,qCADH,OAEG,0BAA0B,0BAA0B;AAAA,IAGvD,oBACG,4BADH,OAEG,0BAA0B,iBAAiB;AAAA,IAG9C,oBACG,0BADH,OAEG,0BAA0B,eAAe;AAAA,EAE9C,CAAC;AAAA,EAED,IAAI,CAAC,qBAAqB,GAAG;AAAA,IAC5B,KAAK,eAAe;AAAA,EACrB;AAAA,EAEA,kBAAkB,cAAc;AAAA,EAEhC,OAAO;AAAA,IACN,eAAe,OAAO;AAAA,IACtB,sBAAsB,gBAAgB;AAAA,IACtC,WAAW,KAAK;AAAA,IAChB,cAAc,gBAAgB;AAAA,IAC9B,yBAAyB,KAAK;AAAA,IAC9B,QAAQ,KAAK;AAAA,IACb,gBAAgB,KAAK;AAAA,IACrB,mBAAmB,OAAO;AAAA,IAC1B,wBAAwB,gBAAgB;AAAA,IACxC,wBAAwB,eAAe;AAAA,IACvC,gCAAgC,KAAK;AAAA,IACrC,sBAAsB,KAAK;AAAA,IAC3B,mBAAmB,eAAe;AAAA,IAClC,SAAS,KAAK;AAAA,IACd,iBAAiB,KAAK;AAAA,IACtB,eAAe,KAAK;AAAA,IACpB,WAAW,KAAK;AAAA,IAChB,iBAAiB,KAAK;AAAA,IACtB,8BACC,gBAAgB;AAAA,EAClB;AAAA,GAGG,cAA2C,MAElC,iBAAiB,MAAM;AAAA,EACnC,IAAI,CAAC,aAAa;AAAA,IACjB,cAAc,gBAAgB;AAAA,EAC/B;AAAA,EAEA,OAAO;AAAA;AAAA;AAAA,EAtGR;AAAA;;;ICyBM,gBAGF,iBAAiB,GACf,eAAe,MAAM,OAAO,KAAK,IAAI,KAAK,EAAE,kBAG9C,mBAAsD,MAC7C,kBAAkB,MAC9B,mBAAmB,KACnB,OAAO,yBAAyB,YAAY,wBAAwB,GACjE,OACS,uBAAuB,CACnC,QACA,cACI;AAAA,EAEJ,MAAM,KAAK,aAAa,gBAAgB,KAAK,aAAa;AAAA,EAE1D,IAAI,CAAC,eAAe,IAAI,EAAE,GAAG;AAAA,IAC5B,eAAe,IAAI,IAAI,IAAI,GAAK;AAAA,EACjC;AAAA,EAEA,eAAe,IAAI,EAAE,GAAG,IAAI,MAAM;AAAA,EAElC,OAAO;AAAA,GAEK,sBAAsB,CAAC,WAAqC;AAAA,EACxE,mBAAmB;AAAA,GAgBP,wBAAwB,MAAM;AAAA,EAC1C,eAAe,MAAM;AAAA,GAET,2BAA2B,CAAC,YAA4B;AAAA,EACpE,IAAI,QAAQ,WAAW,GAAG;AAAA,IACzB,OAAO;AAAA,EACR;AAAA,EAGA,MAAM,aAAa,QACjB,IAAI,CAAC,QAAQ,UAAU;AAAA,IAEvB,MAAM,aAAa,OAAO,SAAS;AAAA,IAGnC,MAAM,YAAY,WAAW,MAAM,eAAe;AAAA,IAClD,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI;AAAA,MAChC,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,OAAO,UAAU,GAAG,KAAK;AAAA,IAG/B,OAAO;AAAA;AAAA;AAAA,2BAGiB;AAAA;AAAA;AAAA,KAGtB;AAAA;AAAA;AAAA;AAAA,mBAIc;AAAA;AAAA,iEAE8C;AAAA;AAAA;AAAA;AAAA;AAAA,mBAK9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBASA;AAAA;AAAA;AAAA;AAAA,GAIhB,EACA,KAAK;AAAA,CAAI;AAAA,EAEX,OAAO;AAAA;AAAA,EAEN;AAAA;AAAA;AAAA,GAIW,2BAA2B,CAAC,cAAuB;AAAA,EAC/D,MAAM,KAAK,aAAa,mBAAmB;AAAA,EAC3C,IAAI,CAAC;AAAA,IAAI,OAAO,CAAC;AAAA,EAEjB,MAAM,UAAU,eAAe,IAAI,EAAE;AAAA,EACrC,IAAI,CAAC,SAAS;AAAA,IACb,OAAO,CAAC;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,MAAM,KAAK,OAAO;AAAA,EACtC,eAAe,OAAO,EAAE;AAAA,EAExB,OAAO;AAAA;AAAA;AAAA,EAtHF,iBAAiB,IAAI;AAAA,EAiC3B,IAAI,OAAO,eAAe,aAAa;AAAA,IACtC,OAAO,OAAO,YAAY,EAAE,qBAAqB,CAAC;AAAA,EACnD;AAAA;;;IC5Da;AAAA;AAAA,4BAA0B;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;;;ICJM,kBAAkB,mCAKX,qCAWA,gCAAgC,MAC5C,WAAW,gDAEC,mCAAmC,CAAC,SAAiB;AAAA,EACjE,IAAI,KAAK,SAAS,eAAe;AAAA,IAAG,OAAO;AAAA,EAC3C,MAAM,SAAS,8BAA8B;AAAA,EAC7C,MAAM,mBAAmB,KAAK,YAAY,SAAS;AAAA,EACnD,IAAI,mBAAmB;AAAA,IAAG,OAAO,GAAG,OAAO;AAAA,EAE3C,OAAO,GAAG,KAAK,MAAM,GAAG,gBAAgB,IAAI,SAAS,KAAK,MAAM,gBAAgB;AAAA;AAAA;AAAA,EA3BjF;AAAA,EAOa,sCACZ,0DACA,+DACA,qEACA,mDACA,yDACA,oEACA,qEACA,oCAAoC,KAAK,UAAU,uBAAuB,QAC1E;AAAA;;;ICdY,2CAA2C,yBAU3C,wCAAwC,CACpD,UAA4C,CAAC,MACzC;AAAA,EACJ;AAAA,IACC,QAAQ;AAAA,IACR,aAAa;AAAA,OACV;AAAA,MACA;AAAA,EAEJ,OAAO;AAAA,IACN,qBAAqB;AAAA,IACrB,gCAAgC;AAAA,OAC7B;AAAA,IACH,QAAQ,CAAC,YACR,CAAC,QAAQ,QAAQ,IAAI,UAAU,MAAM,aAAa,OAAO,KAAK;AAAA,EAChE;AAAA;;;ICfY,wBAAwB,CACpC,MACA,SACA,gBACA,iBACI;AAAA,EACJ,EAAE,SAAS,KAAK,SAAS,UAAU,WAAW,KAAK;AAAA,EACnD,EAAE,SAAS,KAAK,iBAAiB,UAAU,kBAAkB,KAAK;AAAA,EAClE,EAAE,SAAS,KAAK,eAAe,UAAU,gBAAgB,KAAK;AAC/D;;;ICNM,mBAEO,iBAAiB,CAAC,UAAkB,SAA0B;AAAA,EAC1E,MAAM,WAAW,SAAS,MAAM,GAAG,EAAE,MAAM;AAAA,EAC3C,kBAAkB,IAAI,UAAU,IAAI;AAAA,GAExB,qBAAqB,CAAC,aAClC,kBAAkB,IAAI,QAAQ,GAIzB,eACO,iBAAiB,CAC7B,MACA,WACA,SACA,gBACA,cACA,gBAAgE,CAAC,MAC7D;AAAA,EACJ,KAAK,uBAAuB;AAAA,EAC5B,KAAK,uBACJ,KAAK,6BACJ,sCAAsC,CACvC,CACD;AAAA,EACA,KAAK,+BAA+B;AAAA,EACpC,EAAE,SAAS,KAAK,eAAe,UAAU,IAAI;AAAA,EAC7C,EAAE,SAAS,KAAK,cAAc,UAAU,UAAU;AAAA,EAClD,EAAE,SAAS,KAAK,WAAW,UAAU,UAAU;AAAA,EAC/C,GAAG,sBAAsB,MAAM,SAAS,gBAAgB,YAAY;AAAA,EACpE,GAAG;AACJ,GAGa,kBAAkB,CAC9B,MACA,UACA,kBACI;AAAA,EACJ,MAAM,SAAS,cAAc,IAAI,QAAQ;AAAA,EACzC,IAAI,QAAQ;AAAA,IACX,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,WACL,KAAK,qBAAqB,aAAa,GAAG,YAAY;AAAA,EACvD,cAAc,IAAI,UAAU,QAAQ;AAAA,EAEpC,OAAO;AAAA,GAKF,oBAAoB,CAAC,MAAc,YAAoB;AAAA,EAC5D,IAAI,KAAK,SAAS,SAAS,GAAG;AAAA,IAC7B,OAAO,KAAK,QAAQ,WAAW,GAAG,gBAAgB;AAAA,EACnD;AAAA,EACA,IAAI,KAAK,SAAS,SAAS,GAAG;AAAA,IAC7B,OAAO,KAAK,QAAQ,WAAW,GAAG,gBAAgB;AAAA,EACnD;AAAA,EAEA,OAAO,OAAO;AAAA,GAKF,mBAAmB,CAC/B,MACA,WACA,WACA,mBACI;AAAA,EACJ,IAAI,SAAS,kBAAkB,MAAM,8BAA8B,CAAC;AAAA,EAEpE,MAAM,oBAAoB,yBAAyB,SAAS;AAAA,EAC5D,IAAI,kBAAkB,SAAS,GAAG;AAAA,IACjC,SAAS,kBACR,QACA,yBAAyB,iBAAiB,CAC3C;AAAA,EACD;AAAA,EAEA,IAAI,mBAAmB,WAAW;AAAA,IACjC,SAAS,kBACR,QACA,oDAAoD,KAAK,UAAU,cAAc,aAClF;AAAA,EACD;AAAA,EAEA,IAAI,WAAW;AAAA,IACd,MAAM,mBAAmB,KAAK,UAAU,SAAS;AAAA,IACjD,SAAS,kBACR,QACA,kBAAkB,6BACnB;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAEK,mBAAmB,OAC/B,MACA,eACA,WACA,UACA,MAAc,QACV;AAAA,EACJ,MAAM,YAAY,CAAC,YAClB,KAAK,qBAAqB,eAAe,EAAE,UAAU,GAAG,OAAO;AAAA,EAEhE,OAAO,6BAA6B,MACnC,KAAK,kBAAkB,WAAW;AAAA,IACjC;AAAA,IACA,mBAAmB,CAAC;AAAA,IACpB;AAAA,EACD,CAAC,CACF;AAAA,GAEY,+BAA+B,OAC3C,WACI;AAAA,EACJ,MAAM,UAAU,QAAQ;AAAA,EACxB,QAAQ,MAAM,IAAI,SAAoB;AAAA,IACrC,IACC,OAAO,KAAK,OAAO,YACnB,KAAK,GAAG,SAAS,kBAAkB,GAClC;AAAA,MACD;AAAA,IACD;AAAA,IACA,QAAQ,MAAM,SAAS,IAAI;AAAA;AAAA,EAG5B,IAAI;AAAA,IACH,OAAO,MAAM,OAAO;AAAA,YACnB;AAAA,IACD,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA,EAnJhB;AAAA,EAIA;AAAA,EAQM,oBAAoB,IAAI;AAAA,EAWxB,gBAAgB,IAAI;AAAA;;;ICtBpB,wBAAwB,sBAEjB,2BAA2B,CAAC,cACxC,uBAyEK,sBAIA,oBAEA,wBAAwB,MAAM;AAAA,EACnC,MAAM,YAAY,gBAAgB;AAAA,EAClC,IAAI,CAAC,WAAW;AAAA,IACf,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,SAAS,mBAAmB,IAAI,SAAS;AAAA,EAC/C,IAAI,QAAQ;AAAA,IACX,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,cAAc,IAAI;AAAA,EACxB,mBAAmB,IAAI,WAAW,WAAW;AAAA,EAE7C,OAAO;AAAA,GAGF,6BAA6B,CAClC,WACA,cACI;AAAA,EACJ,MAAM,gBACL,OAAO,UAAU,SAAS,YAAY,UAAU,KAAK,SAAS,IAC3D,UAAU,OACV;AAAA,EAEJ,OAAO,GAAG,iBAAiB;AAAA,GAGtB,0BAA0B,CAC/B,WACA,UACI;AAAA,EACJ,MAAM,gBACL,OAAO,UAAU,SAAS,YAAY,UAAU,KAAK,SAAS,IAC3D,UAAU,OACV;AAAA,EAEJ,OAAO,GAAG,iBAAiB,KAAK,UAAU,KAAK;AAAA,GAG1C,oCAAoC,OACzC,WACA,UACA,eACI;AAAA,EASJ,MAAM,OAAO,MAAM,eAAe;AAAA,EAClC,QAAQ,WAAW,gBAAgB,mBAAmB,WAAW;AAAA,EACjE,MAAM,WAAW,yBAAyB,QAAQ;AAAA,EAClD,MAAM,aAAa,IAAI,eACtB,GAAG,kBACJ;AAAA;AAAA,EAEA,MAAM,8BAA8B;AAAA;AAAA,MACnC,iBAAY;AAAA,MACZ,aAAQ,OAAO,UAAU;AAAA;AAAA,EAC1B;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,kBAAkB,UAAU;AAAA,MAC3B,SAAS,CAAC,mBAAmB,SAAS;AAAA,MACtC;AAAA,MACA,YAAY;AAAA,MACZ,UACC;AAAA,IACF,CAAC,EAAE,6BAA6B;AAAA,EACjC;AAAA,GAGK,6BAA6B,OAClC,WACA,aACI;AAAA,EACJ,MAAM,aAAa,2BAA2B,WAAW,QAAQ;AAAA,EACjE,MAAM,SAAS,qBAAqB,IAAI,UAAU;AAAA,EAClD,IAAI,QAAQ;AAAA,IACX,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,kBAAkB,kCACvB,WACA,UACA,UACD;AAAA,EAEA,qBAAqB,IAAI,YAAY,eAAe;AAAA,EAEpD,OAAO;AAAA,GAGF,2BAA2B,CAAC,MAAc,aAAqB;AAAA,EACpE,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAQ,KAAK,QAAQ,OAAO;AAAA,EAClC,IAAI,QAAQ,GAAG;AAAA,IACd,MAAM,IAAI,MAAM,uCAAuC,YAAY;AAAA,EACpE;AAAA,EAEA,MAAM,SAAS,KAAK;AAAA,EACpB,MAAM,MAAM,KAAK,QAAQ,QAAQ,KAAK;AAAA,EACtC,IAAI,MAAM,GAAG;AAAA,IACZ,MAAM,IAAI,MAAM,wCAAwC,YAAY;AAAA,EACrE;AAAA,EAEA,OAAO,KAAK,MAAM,OAAO,MAAM,OAAO,MAAM;AAAA,GA6ChC,4BAA4B,OAGxC,WACA,OACA,aACI;AAAA,EACJ,MAAM,eAAe,sBAAsB;AAAA,EAC3C,MAAM,iBAAiB,wBAAwB,WAAW,KAAK;AAAA,EAC/D,MAAM,aAAa,cAAc,IAAI,cAAc;AAAA,EACnD,IAAI,YAAY;AAAA,IACf,OAAO;AAAA,EACR;AAAA,EAEA,QAAQ,MAAM,YAAY,UAAU,qBACnC,MAAM,2BAA2B,WAAW,QAAQ;AAAA,EAErD,MAAM,YAGA;AAAA,IACL,KAAK,uBAAuB;AAAA,IAC5B,KAAK,+BAA+B;AAAA,IACpC,EAAE,SAAS,KAAK,eAAe,UAAU,IAAI;AAAA,IAC7C,EAAE,SAAS,YAAY,UAAU,MAAM;AAAA,EACxC;AAAA,EACA,MAAM,WAAW,+BAA+B,cAAc;AAAA,EAC9D,MAAM,OAAO,MAAM,6BAA6B,MAC/C,KAAK,kBACJ,CAAC,YACA,KAAK,qBACJ,kBACA,EAAE,UAAU,GACZ,OACD,GACD;AAAA,IACC;AAAA,IACA,mBAAmB,CAAC;AAAA,IACpB,KAAK;AAAA,EACN,CACD,CACD;AAAA,EACA,MAAM,aAAa,yBAAyB,MAAM,QAAQ;AAAA,EAC1D,cAAc,IAAI,gBAAgB,UAAU;AAAA,EAE5C,OAAO;AAAA;AAAA;AAAA,EAlSR;AAAA,EACA;AAAA,EACA;AAAA,EA8EM,uBAAuB,IAAI;AAAA,EAI3B,qBAAqB,IAAI;AAAA;;;ICjFzB,oCAAoC,OACzC,WACA,OACA,aACI;AAAA,EACJ;AAAA,EAEA,OAAO,0BAA0B,WAAW,OAAO,QAAQ;AAAA,GAE/C,4BAUP,6BAGA,+BAA+B,CAAC,SAAiB;AAAA,EACtD,IAAI,SAAS;AAAA,EACb,IAAI,QAAQ,4BAA4B,KAAK,MAAM;AAAA,EACnD,OAAO,OAAO;AAAA,IACb,SAAS,OAAO,MAAM,MAAM,GAAG,MAAM;AAAA,IACrC,QAAQ,4BAA4B,KAAK,MAAM;AAAA,EAChD;AAAA,EAEA,OAAO,OAAO,UAAU;AAAA,GAGZ,0BAA0B,CACtC,WACA,UAEO,gBAAS,KAAK,GAAG,oBAChB,2BAAoB,KAAK,GAAG,qBAClC,6BACC,eAAe,cAAc,WAAW,KAAK,CAAC,CAC/C,CACD,CACD,GACY,2BAA2B,CACvC,WACA,UAEO,wBAAiB,KAAK,GAAG,aAAa;AAAA,EAC5C,QAAQ,SAAS,OAAO,WAAW,EAAE,MAAM,CAAC;AAAA,EAE5C,OAAO;AAAA,CACP,GACW,wBAAwB,CACpC,WACA,UAEO,cAAO,KAAK,GAAG,cAAc,GAAG,qBAAqB;AAAA,EAC3D,MAAM,MAAM,aAAa;AAAA,IACxB,QAAQ,MAAM,eAAe,WAAW,KAAK;AAAA,EAC9C,CAAC;AAAA,EAED,OAAc,8BAAuB,KAAK,GAAG,qBAC5C,eAAe,GAAG,CACnB;AAAA,CACA;AAAA;AAAA,EAxDW,6BAA4B;AAAA,EAUnC,8BACL;AAAA;;;ICYY,UAgBP,sBAEA,OAAO,CAAC,SAAiB,KAAK,WAAW,CAAC,GAC1C,OACA,MACA,WACA,UACA,cACA,cACA,SACA,iBACA,KACA,OACA,QACA,YACA,aACA,cACA,eACA,aACA,YACA,YACA,YACA,SACA,SACA,SACA,SAEA,OAAO,IAIP,qBAGA,qBAgBA,cAAc,CAAC,aACnB,YAAY,WAAW,YAAY,WACnC,YAAY,WAAW,YAAY,WACnC,YAAY,cAAc,YAAY,cACvC,aAAa,cACb,aAAa,QAER,eAAe,CAAC,aACpB,YAAY,WAAW,YAAY,WACnC,YAAY,WAAW,YAAY,SAE/B,cAAc,CAAC,aACpB,aAAa,SACb,aAAa,OACb,aAAa,mBACb,aAAa,SAER,cAAc,CAAC,aACpB,aAAa,gBAAgB,aAAa,cAIrC,cAAc,CAAC,KAAa,UAAkB;AAAA,EACnD,MAAM,QAAQ,IAAI,WAAW,KAAK;AAAA,EAClC,MAAM,MAAM,IAAI;AAAA,EAChB,IAAI,MAAM,QAAQ;AAAA,EAClB,OAAO,MAAM,KAAK;AAAA,IACjB,MAAM,WAAW,IAAI,WAAW,GAAG;AAAA,IACnC,IAAI,aAAa;AAAA,MAAW,OAAO;AAAA,IAC9B,SAAI,aAAa;AAAA,MAAO,OAAO,MAAM;AAAA,IACrC,SAAI,aAAa;AAAA,MAAS,OAAO;AAAA,IACjC;AAAA,aAAO;AAAA,EACb;AAAA,EAEA,OAAO;AAAA,GAIF,kBAAkB,CAAC,KAAa,UAAkB;AAAA,EACvD,IAAI,MAAM;AAAA,EACV,OAAO,MAAM,IAAI,UAAU,aAAa,IAAI,WAAW,GAAG,CAAC;AAAA,IAAG,OAAO;AAAA,EAErE,OAAO;AAAA,GAKF,aAAa,CAAC,KAAa,UAAkB;AAAA,EAClD,MAAM,MAAM,IAAI;AAAA,EAChB,IAAI,MAAM,QAAQ;AAAA,EAClB,IAAI,UAAU;AAAA,EACd,OAAO,MAAM,KAAK;AAAA,IACjB,MAAM,WAAW,IAAI,WAAW,GAAG;AAAA,IACnC,IAAI,aAAa;AAAA,MAAS,OAAO;AAAA,IACjC,IAAI,aAAa,SAAS,CAAC;AAAA,MAAS,OAAO,gBAAgB,KAAK,MAAM,CAAC;AAAA,IACvE,IAAI,aAAa;AAAA,MAAc,UAAU;AAAA,IACpC,SAAI,aAAa;AAAA,MAAe,UAAU;AAAA,IAC/C,OAAO,aAAa,YAAY,IAAI;AAAA,EACrC;AAAA,EAEA,OAAO;AAAA,GAcF,8BAA8B,CAAC,UACpC,MAAM,aAAa,QACnB,oBAAoB,IAAI,MAAM,QAAQ,KACtC,oBAAoB,IAAI,MAAM,IAAI,GAG7B,yBAAyB,CAC9B,OACA,KACA,aACI;AAAA,EACJ,MAAM,MAAM;AAAA,EACZ,MAAM,WAAW;AAAA,EACjB,MAAM,OAAO;AAAA,EACb,MAAM,QAAQ;AAAA,GAGT,wBAAwB,CAC7B,OACA,UACA,SACI;AAAA,EACJ,IAAI,aAAa;AAAA,IAAY,MAAM,SAAS;AAAA,EACvC,SAAI,aAAa;AAAA,IAAa,MAAM,SAAS;AAAA,EAClD,MAAM,OAAO;AAAA,EACb,IAAI,YAAY,QAAQ,GAAG;AAAA,IAC1B,MAAM,QAAQ;AAAA,IAEd;AAAA,EACD;AAAA,EACA,MAAM,aAAa,YAAY,MAAM,QAAQ,KAAK,CAAC,MAAM;AAAA,EACzD,IAAI,YAAY,QAAQ;AAAA,IAAG,MAAM,OAAO,aAAa,MAAM,OAAO,OAAO;AAAA,EACpE;AAAA,UAAM,OAAO;AAAA,EAClB,MAAM,WAAW;AAAA,EACjB,MAAM,QAAQ;AAAA,GAGT,yBAAyB,CAAC,KAAa,UAA8B;AAAA,EAC1E,MAAM,MAAM,WAAW,KAAK,MAAM,GAAG;AAAA,EACrC,IAAI,MAAM;AAAA,IAAG,uBAAuB,OAAO,KAAK,WAAW;AAAA,EACtD;AAAA,0BAAsB,OAAO,OAAO,GAAG;AAAA,GAgBvC,oBAAoB,CAAC,KAAa,UAAkB;AAAA,EACzD,MAAM,MAAM,IAAI;AAAA,EAChB,MAAM,QAA4B;AAAA,IACjC,OAAO;AAAA,IACP,KAAK;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACA,OAAO,MAAM,MAAM,OAAO,MAAM,QAAQ,GAAG;AAAA,IAC1C,MAAM,WAAW,IAAI,WAAW,MAAM,GAAG;AAAA,IACzC,MAAM,OAAO,IAAI,WAAW,MAAM,MAAM,CAAC;AAAA,IACzC,IAAI,aAAa;AAAA,MAAW,MAAM,OAAO;AAAA,IACpC,SAAI,aAAa;AAAA,MACrB,uBACC,OACA,gBAAgB,SAAS,KAAK,MAAM,GAAG,GACvC,WACD;AAAA,IACI,SAAI,YAAY,QAAQ;AAAA,MAC5B,uBACC,OACA,YAAY,KAAK,MAAM,GAAG,GAC1B,YACD;AAAA,IACI,SAAI,aAAa,SAAS,SAAS;AAAA,MACvC,MAAM,MAAM,iBAAiB,KAAK,MAAM,GAAG;AAAA,IACvC,SAAI,aAAa,SAAS,SAAS;AAAA,MACvC,MAAM,MAAM,kBAAkB,KAAK,MAAM,GAAG;AAAA,IACxC,SAAI,aAAa,SAAS,4BAA4B,KAAK;AAAA,MAC/D,uBAAuB,KAAK,KAAK;AAAA,IAC7B;AAAA,4BAAsB,OAAO,UAAU,IAAI,MAAM,QAAQ,EAAE;AAAA,EACjE;AAAA,EAEA,OAAO,MAAM;AAAA,GAGR,eAAe,CAAC,KAAa,UAAkB;AAAA,EACpD,MAAM,MAAM,IAAI;AAAA,EAChB,IAAI,MAAM,QAAQ;AAAA,EAClB,OAAO,MAAM,KAAK;AAAA,IACjB,MAAM,WAAW,IAAI,WAAW,GAAG;AAAA,IACnC,IAAI,aAAa;AAAA,MAAW,OAAO;AAAA,IAC9B,SAAI,aAAa;AAAA,MAAU,OAAO,MAAM;AAAA,IACxC,SAAI,aAAa,UAAU,IAAI,WAAW,MAAM,CAAC,MAAM;AAAA,MAC3D,MAAM,gBAAgB,cAAc,KAAK,MAAM,CAAC;AAAA,IAC5C;AAAA,aAAO;AAAA,EACb;AAAA,EAEA,OAAO;AAAA,GAGF,iBAMA,mBAAmB,CAAC,KAAa,UAAkB;AAAA,EACxD,MAAM,UAAU,IAAI,QAAQ;AAAA,GAAM,QAAQ,CAAC;AAAA,EAE3C,OAAO,UAAU,IAAI,IAAI,SAAS;AAAA,GAI7B,oBAAoB,CAAC,KAAa,UAAkB;AAAA,EACzD,MAAM,QAAQ,IAAI,QAAQ,MAAM,QAAQ,CAAC;AAAA,EAEzC,OAAO,QAAQ,IAAI,IAAI,SAAS,QAAQ;AAAA,GAqBnC,OAAO,CAAC,OAAkB,OAAe,QAAgB;AAAA,EAC9D,MAAM,MAAM,KACX,MAAM,IAAI,MAAM,MAAM,YAAY,KAAK,GACvC,GAAG,WAAW,MAAM,OAAO,SAAS,UACrC;AAAA,EACA,MAAM,OAAO,KAAK,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC;AAAA,EAC7C,MAAM,aAAa;AAAA,GAId,YAAY,CAAC,OAAkB,QAAgB;AAAA,EACpD,MAAM,MAAM;AAAA,EACZ,MAAM,WAAW;AAAA,EACjB,MAAM,WAAW;AAAA,GAQZ,iBAAiB,CAAC,OAAkB,UAAkB;AAAA,EAC3D,QAAQ,KAAK,aAAa;AAAA,EAC1B,IAAI,MAAM,QAAQ;AAAA,EAClB,OAAO,OAAO,YAAY,YAAY,IAAI,WAAW,GAAG,CAAC;AAAA,IAAG,OAAO;AAAA,EACnE,IAAI,MAAM;AAAA,IAAU,OAAO,CAAC,MAAM;AAAA,EAClC,MAAM,WAAW,IAAI,WAAW,GAAG;AAAA,EACnC,IAAI,oBAAoB,IAAI,QAAQ;AAAA,IAAG,OAAO;AAAA,EAC9C,IAAI,CAAC,YAAY,QAAQ;AAAA,IAAG,OAAO;AAAA,EACnC,IAAI,YAAY;AAAA,EAChB,OAAO,YAAY,YAAY,YAAY,IAAI,WAAW,YAAY,CAAC,CAAC;AAAA,IACvE,aAAa;AAAA,EAEd,OAAO,oBAAoB,IAAI,IAAI,MAAM,WAAW,MAAM,CAAC,CAAC;AAAA,GAGvD,kBAAkB,CAAC,UAAqB;AAAA,EAC7C,MAAM,MAAM,iBAAiB,MAAM,KAAK,MAAM,GAAG;AAAA,EACjD,KAAK,OAAO,MAAM,MAAM,GAAG,GAAG;AAAA,EAC9B,UAAU,OAAO,GAAG;AAAA,GAKf,mBAAmB,CAAC,UAAqB;AAAA,EAC9C,MAAM,QAAQ,MAAM,IAAI,QAAQ,MAAM,MAAM,MAAM,CAAC;AAAA,EACnD,MAAM,UAAU,QAAQ,IAAI,MAAM,IAAI,SAAS;AAAA,EAC/C,KAAK,OAAO,MAAM,MAAM,GAAG,OAAO;AAAA,EAClC,UAAU,OAAO,QAAQ,IAAI,MAAM,IAAI,SAAS,QAAQ,CAAC;AAAA,GAGpD,eAAe,CAAC,UAAqB;AAAA,EAC1C,MAAM,MAAM,gBAAgB,SAAS,MAAM,KAAK,MAAM,GAAG;AAAA,EACzD,KAAK,OAAO,MAAM,KAAK,GAAG;AAAA,EAC1B,UAAU,OAAO,GAAG;AAAA,GAOf,aAAa,CAAC,UAAqB;AAAA,EACxC,MAAM,MAAM,YAAY,MAAM,KAAK,MAAM,GAAG;AAAA,EAC5C,IAAI,qBAAqB,KAAK,MAAM,IAAI,MAAM,MAAM,KAAK,GAAG,CAAC;AAAA,IAC5D,KAAK,OAAO,MAAM,KAAK,GAAG;AAAA,EAC3B,UAAU,OAAO,GAAG;AAAA,GAKf,YAAY,CAAC,UAAqB;AAAA,EACvC,MAAM,MAAM,eAAe,OAAO,MAAM,GAAG,IACxC,WAAW,MAAM,KAAK,MAAM,GAAG,IAC/B;AAAA,EACH,IAAI,MAAM;AAAA,IAAG,UAAU,OAAO,GAAG;AAAA,EAC5B;AAAA,UAAM,OAAO;AAAA,GAIb,kBAAkB,CAAC,KAAa,SAAiB;AAAA,EACtD,MAAM,MAAM,IAAI;AAAA,EAChB,IAAI,MAAM;AAAA,EACV,OAAO,MAAM,KAAK;AAAA,IACjB,MAAM,WAAW,IAAI,WAAW,GAAG;AAAA,IACnC,IACC,aAAa,SACb,aAAa,YACb,aAAa,gBACb,aAAa;AAAA,MAEb,OAAO;AAAA,IACR,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,GAGF,YAAY,CAAC,UAAqB;AAAA,EACvC,MAAM,WAAW,MAAM,IAAI,WAAW,MAAM,GAAG;AAAA,EAC/C,MAAM,OAAO,MAAM,IAAI,WAAW,MAAM,MAAM,CAAC;AAAA,EAC/C,IAAI,aAAa,SAAS,SAAS;AAAA,IAAO,gBAAgB,KAAK;AAAA,EAC1D,SAAI,aAAa,SAAS,SAAS;AAAA,IAAM,iBAAiB,KAAK;AAAA,EAC/D,SAAI,aAAa;AAAA,IAAU,aAAa,KAAK;AAAA,EAC7C,SAAI,YAAY,QAAQ;AAAA,IAAG,WAAW,KAAK;AAAA,EAC3C;AAAA,cAAU,KAAK;AAAA,GAGR,eAAe,CAAC,QAA8B;AAAA,EAC1D,MAAM,QAAmB;AAAA,IACxB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,OAAO,CAAC;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,KAAK;AAAA,IACL;AAAA,IACA,UAAU;AAAA,EACX;AAAA,EACA,MAAM,MAAM,IAAI;AAAA,EAChB,OAAO,MAAM,MAAM,KAAK;AAAA,IACvB,MAAM,MAAM,gBAAgB,KAAK,MAAM,GAAG;AAAA,IAC1C,IAAI,MAAM,MAAM;AAAA,MAAK,UAAU,KAAK;AAAA,EACrC;AAAA,EACA,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,UAAU,CAAC;AAAA,EAC5C,QAAQ,WAAW;AAAA,EAEnB,MAAM,eAAe,IAAI,OAAO,GAAG,iBAAiB,YAAY,GAAG;AAAA,EACnE,MAAM,UAAU,CAAC,cAChB,UAAU,QACT,cACA,CAAC,cAAc,WAAW,OAAO,OAAO,MAAM,MAAM,EACrD;AAAA,EAED,OAAO,EAAE,QAAQ,MAAM,MAAM,KAAK,EAAE,GAAG,QAAQ;AAAA;AAAA;AAAA,EAjanC,WAAW,OAAO,aAAa,KAAM;AAAA,EAgB5C,uBAAuB;AAAA,EAGvB,QAAQ,KAAK,GAAG;AAAA,EAChB,OAAO,KAAK,GAAG;AAAA,EACf,YAAY,KAAK,IAAI;AAAA,EACrB,WAAW,KAAK,GAAG;AAAA,EACnB,eAAe,KAAK,GAAG;AAAA,EACvB,eAAe,KAAK,GAAG;AAAA,EACvB,UAAU,KAAK;AAAA,CAAI;AAAA,EACnB,kBAAkB,KAAK,IAAI;AAAA,EAC3B,MAAM,KAAK,IAAI;AAAA,EACf,QAAQ,KAAK,GAAG;AAAA,EAChB,SAAS,KAAK,GAAG;AAAA,EACjB,aAAa,KAAK,GAAG;AAAA,EACrB,cAAc,KAAK,GAAG;AAAA,EACtB,eAAe,KAAK,GAAG;AAAA,EACvB,gBAAgB,KAAK,GAAG;AAAA,EACxB,cAAc,KAAK,GAAG;AAAA,EACtB,aAAa,KAAK,GAAG;AAAA,EACrB,aAAa,KAAK,GAAG;AAAA,EACrB,aAAa,KAAK,GAAG;AAAA,EACrB,UAAU,KAAK,GAAG;AAAA,EAClB,UAAU,KAAK,GAAG;AAAA,EAClB,UAAU,KAAK,GAAG;AAAA,EAClB,UAAU,KAAK,GAAG;AAAA,EAMlB,sBAAsB,IAAI,IAC/B,CAAC,GAAG,uBAAuB,EAAE,IAAI,IAAI,CACtC;AAAA,EACM,sBAAsB,IAAI,IAAI;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EAwLK,kBAAmC;AAAA,IACxC,eAAe;AAAA,IACf,UAAU;AAAA,EACX;AAAA;;;ICnPM,cAAc,CAAC,QAAgB,IAAI,QAAQ,uBAAuB,MAAM,GAKxE,aACA,KACA,QAAQ,QAER,mBACA,yBACA,yBACA,gBAMA,eAEA,WAAW,CAAC,gBACjB,OAAO,QAAQ,WAAW,EACxB,KAAK,EAAE,QAAQ,WAAW,KAAK,cAAc,KAAK,CAAC,EACnD,IAAI,EAAE,WAAW,aAAa,GAAG,gBAAc,aAAW,EAC1D,KAAK,EAAE,GAIJ,eAAe,CACpB,UACA,aACA,wBACI;AAAA,EACJ,MAAM,QAAQ,IAAI,SAAS,KAAK,GAAG,MAAM,gBAAgB;AAAA,EACzD,IAAI,CAAC;AAAA,IAAqB,OAAO,IAAI,OAAO,OAAO,GAAG;AAAA,EACtD,MAAM,UAAU,IAAI,4BAA4B,gBAAgB;AAAA,EAEhE,OAAO,IAAI,OAAO,GAAG,SAAS,WAAW,GAAG;AAAA,GAGhC,2BAA2B,CACvC,gBACI;AAAA,EACJ,MAAM,MAAM,SAAS,WAAW;AAAA,EAChC,MAAM,SAAS,cAAc,IAAI,GAAG;AAAA,EACpC,IAAI;AAAA,IAAQ,OAAO;AAAA,EAGnB,MAAM,eAAe,OAAO,QAAQ,WAAW,EAAE,KAChD,EAAE,SAAS,WAAW,MAAM,SAAS,MAAM,MAC5C;AAAA,EACA,MAAM,cAAc,aAClB,IAAI,EAAE,eAAe,YAAY,SAAS,CAAC,EAC3C,KAAK,GAAG;AAAA,EACV,MAAM,WAA8B;AAAA,IACnC,QAAQ,IAAI,IAAI,YAAY;AAAA,IAC5B,WAAW,aAAa,mBAAmB,aAAa,IAAI;AAAA,IAC5D,kBAAkB,aAAa,QAAQ,EAAE,eAAe;AAAA,MACvD,IAAI;AAAA,MACJ,IAAI;AAAA,IACL,CAAC;AAAA,IACD,YAAY,aAAa,gBAAgB,aAAa,KAAK;AAAA,IAC3D,YAAY,aACX,CAAC,GAAG,mBAAmB,GAAG,cAAc,GACxC,aACA,IACD;AAAA,EACD;AAAA,EACA,cAAc,IAAI,KAAK,QAAQ;AAAA,EAE/B,OAAO;AAAA,GAMK,wBAAwB,CACpC,SACA,aACI,SAAS,iBAAiB,KAAK,CAAC,WAAW,QAAQ,SAAS,MAAM,CAAC,GAElE,UAAU,CAAC,UAChB,OAAO,UAAU,WAAW,QAAQ,WAK/B,mBACL,CAAC,WACD,CAAC,UAAkB,WAAsB;AAAA,EACxC,OAAO,SAAS,OAAO,SAAS,SAAS,OAAO,WAAW;AAAA,EAC3D,MAAM,SAAS,QAAQ,OAAO,KAAK,QAAQ,OAAO;AAAA,EAClD,MAAM,YAAY,QAAQ,KAAK,KAAK,QAAQ,KAAK;AAAA,EACjD,MAAM,SAAS,QAAQ,OAAO,KAAK,QAAQ,OAAO;AAAA,EAClD,IACC,WAAW,aACX,cAAc,aACd,WAAW;AAAA,IAEX,OAAO;AAAA,EACR,MAAM,UAAU,OAAO,IAAI,SAAS;AAAA,EAEpC,OAAO,YAAY,YAAY,QAAQ,GAAG,SAAS,UAAU;AAAA,GAIlD,2BAA2B,CACvC,SACA,UACA,YACI;AAAA,EACJ,IAAI,CAAC,sBAAsB,SAAS,QAAQ;AAAA,IAAG,OAAO;AAAA,EAItD,QAAQ,QAAQ,YAAY,aAAa,OAAO;AAAA,EAEhD,OAAO,QAAQ,kBAAkB,QAAQ,UAAU,OAAO,CAAC;AAAA,GAK/C,oBAAoB,CAChC,QACA,UACA,YAEA,OAAO,QACN,QAAQ,QAAQ,SAAS,aAAa,SAAS,WAC/C,iBAAiB,SAAS,MAAM,CACjC;AAAA;AAAA,EArJD;AAAA,EAwBM,cAAc,GAAG,eAAe;AAAA,EAChC,MAAM,UAAU,mBAAmB,qBAAqB;AAAA,EAGxD,oBAAoB,CAAC,WAAW,SAAS,aAAa,OAAO;AAAA,EAC7D,0BAA0B,oBAAoB;AAAA,EAC9C,0BAA0B,GAAG;AAAA,EAC7B,iBAAiB;AAAA,IACtB,UAAU,MAAM;AAAA,IAChB,YAAY,MAAM;AAAA,IAClB,wBAAwB,SAAS,MAAM;AAAA,EACxC;AAAA,EAEM,gBAAgB,IAAI;AAAA;;;AC5C1B;AACA,iBAAS;AAAA,IASH,kBAEA,qBAEA,gBAAgB,CAAC,UACtB,iBAAiB,UAAS,UAAU,UAAS,MAAM,SAAS,UAyBhD,wCAAwC,CAAC,YAAoB;AAAA,EACzE,MAAM,UAAU,+BAA+B,OAAO;AAAA,EACtD,IAAI,QAAQ,WAAW;AAAA,IAAG,OAAO;AAAA,EAEjC,MAAM,UAAU,QACd,IAAI,CAAC,UAAU,eAAe,MAAM,eAAe,MAAM,QAAQ,EACjE,KAAK;AAAA,CAAI;AAAA,EAEX,OAAO,GAAG;AAAA,EAAY;AAAA,GAIjB,oBAAoB,CAAC,SAAiB,UAAkB;AAAA,EAC7D,MAAM,aAAa,IAAI,OACtB,6BAA6B,kBAC9B;AAAA,EACA,MAAM,SAAS,IAAI,OAClB,0CAA0C,UAC3C;AAAA,EACA,MAAM,gBAAgB,IAAI,OACzB,2BAA2B,6BAC5B;AAAA,EAEA,OACC,WAAW,KAAK,OAAO,KACvB,OAAO,KAAK,OAAO,KACnB,cAAc,KAAK,OAAO;AAAA,GAOtB,0BAA0B,CAAC,SAAiB,UAAkB;AAAA,EACnE,oBAAoB,YAAY;AAAA,EAChC,cAAc,eAAe,QAAQ,SAAS,mBAAmB,GAAG;AAAA,IACnE,IAAI,CAAC;AAAA,MAAY;AAAA,IACjB,MAAM,OAAO,WACX,MAAM,GAAG,EACT,IAAI,GACH,QAAQ,cAAc,EAAE;AAAA,IAC3B,IAAI,CAAC;AAAA,MAAM;AAAA,IACX,MAAM,aAAa,KAAK,WAAW,GAAG,IAAI,KAAK,MAAM,CAAC,IAAI;AAAA,IAC1D,IAAI,eAAe,SAAS,WAAW,SAAS,IAAI,OAAO,GAAG;AAAA,MAC7D,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA;AAAA,GAGK,iCAAiC,CAAC,YAAoB;AAAA,EAC3D,iBAAiB,YAAY;AAAA,EAC7B,MAAM,UAAoC,CAAC;AAAA,EAC3C,MAAM,OAAO,IAAI;AAAA,EACjB,cAAc,UAAU,QAAQ,SAAS,gBAAgB,GAAG;AAAA,IAC3D,IAAI,CAAC,SAAS,KAAK,IAAI,KAAK;AAAA,MAAG;AAAA,IAC/B,IAAI,kBAAkB,SAAS,KAAK;AAAA,MAAG;AAAA,IACvC,MAAM,aAAa,wBAAwB,SAAS,KAAK;AAAA,IACzD,IAAI,CAAC;AAAA,MAAY;AAAA,IACjB,KAAK,IAAI,KAAK;AAAA,IACd,QAAQ,KAAK,EAAE,OAAO,MAAM,WAAW,CAAC;AAAA,EACzC;AAAA,EAEA,OAAO;AAAA,GA+BF,qBAAqB,CAAC,aAC3B,SAAS,KAAK,SAAS,KAAK,GAIvB,mBAAmB,OAAO,aAA4B;AAAA,EAC3D,IAAI;AAAA,IACH,OAAO,MAAM,SAAS,KAAK;AAAA,IAC1B,OAAO,OAAO;AAAA,IACf,IAAI,cAAc,KAAK;AAAA,MAAG;AAAA,IAC1B,MAAM;AAAA;AAAA,GAIF,eAAe,OAAO,aAAqB;AAAA,EAChD,IAAI;AAAA,IACH,OAAO,MAAM,IAAI,KAAK,QAAQ,EAAE,KAAK;AAAA,IACpC,OAAO,OAAO;AAAA,IACf,IAAI,cAAc,KAAK;AAAA,MAAG;AAAA,IAC1B,MAAM;AAAA;AAAA,GAIF,gBAAgB,OAAO,UAAkB,YAAoB;AAAA,EAClE,IAAI;AAAA,IACH,MAAM,IAAI,MAAM,UAAU,OAAO;AAAA,IAChC,OAAO,OAAO;AAAA,IACf,IAAI,cAAc,KAAK;AAAA,MAAG;AAAA,IAC1B,MAAM;AAAA;AAAA,GAIF,kBAAkB,OACvB,UACA,gBACI;AAAA,EACJ,IAAI,OAAO,KAAK,WAAW,EAAE,WAAW;AAAA,IAAG;AAAA,EAC3C,MAAM,WAAW,MAAM,iBAAiB,QAAQ;AAAA,EAChD,IAAI,aAAa;AAAA,IAAW;AAAA,EAE5B,MAAM,YAAY,wBAAwB,UAAU,WAAW;AAAA,EAC/D,IAAI,cAAc;AAAA,IAAU;AAAA,EAC5B,MAAM,cAAc,SAAS,MAAM,SAAS;AAAA,GAMhC,0BAA0B,OACtC,SACA,uBACI;AAAA,EACJ,MAAM,QAAQ,IACb,QACE,OAAO,kBAAkB,EACzB,IAAI,CAAC,aACL,gBAAgB,UAAU,mBAAmB,QAAQ,CAAC,CACvD,CACF;AAAA,GAIY,0BAA0B,CACtC,SACA,gBACI;AAAA,EACJ,IAAI,OAAO,KAAK,WAAW,EAAE,WAAW;AAAA,IAAG,OAAO;AAAA,EAElD,OAAO,yBACN,SACA,yBAAyB,WAAW,GACpC,EAAE,OAAO,MAAM,CAChB;AAAA,GAGK,cAAc,OAAO,QAAgB;AAAA,EAC1C,IAAI;AAAA,IACH,MAAM,UAAU,MAAM,QAAQ,GAAG;AAAA,IAEjC,OAAO,QACL,OAAO,CAAC,UAAU,MAAM,SAAS,KAAK,CAAC,EACvC,IAAI,CAAC,UAAU,MAAK,KAAK,KAAK,CAAC;AAAA,IAChC,MAAM;AAAA,IAEP,OAAO,CAAC;AAAA;AAAA,GAIJ,oBAAoB,OACzB,UACA,gBACI;AAAA,EACJ,MAAM,WAAW,MAAM,aAAa,QAAQ;AAAA,EAC5C,IAAI,aAAa;AAAA,IAAW;AAAA,EAE5B,MAAM,OAAO,sCACZ,wBAAwB,UAAU,WAAW,CAC9C;AAAA,EACA,IAAI,SAAS;AAAA,IAAU;AAAA,EACvB,MAAM,cAAc,UAAU,IAAI;AAAA,GAYtB,2BAA2B,OACvC,YACA,gBACI;AAAA,EACJ,IAAI,OAAO,KAAK,WAAW,EAAE,WAAW;AAAA,IAAG;AAAA,EAE3C,MAAM,YAAY,MAAM,QAAQ,IAAI,WAAW,IAAI,WAAW,CAAC;AAAA,EAC/D,MAAM,QAAQ,IACb,UACE,KAAK,EACL,IAAI,CAAC,aAAa,kBAAkB,UAAU,WAAW,CAAC,CAC7D;AAAA;AAAA;AAAA,EA/PD;AAAA,EAQM,mBACL;AAAA,EACK,sBAAsB;AAAA;;;AC7B5B;AACA,0BAAkB;AAAA,IA4BZ,iBAMA,qBACA,sBAEA,sBAAsB,CAAC,eAAuB;AAAA,EACnD,MAAM,qBAAqB,SAAS,QAAQ,IAAI,GAAG,UAAU,EAAE,QAC9D,OACA,GACD;AAAA,EACA,MAAM,uBAAuB,mBAAmB,WAAW,IAAI,IAC5D,WAAW,QAAQ,WAAW,GAAG,IACjC;AAAA,EAEH,OAAO,MAAK,iBAAiB,GAAG,gCAAgC;AAAA,GAU3D,qBAAqB,CAAC,SAAiB;AAAA,EAC5C,MAAM,cAAsC,CAAC;AAAA,EAC7C,IAAI,CAAC,oBAAoB,GAAG;AAAA,IAC3B,OAAO;AAAA,EACR;AAAA,EACA,MAAM,aAAa,IAAI,IACtB,CAAC,GAAG,KAAK,SAAS,oBAAoB,CAAC,EAAE,IAAI,CAAC,UAAU,MAAM,EAAE,CACjE;AAAA,EACA,WAAW,QAAQ,CAAC,cAAc;AAAA,IACjC,IAAI,CAAC;AAAA,MAAW;AAAA,IAChB,MAAM,WAAW,0BAA0B,SAAS;AAAA,IACpD,IAAI,aAAa;AAAA,MAAW;AAAA,IAC5B,YAAY,aAAa;AAAA,GACzB;AAAA,EAED,OAAO;AAAA,GAGF,2BAA2B,OAAO,eAAuB;AAAA,EAC9D,MAAM,SAAS,MAAM,IAAI,MAAM;AAAA,IAC9B,aAAa,CAAC,UAAU;AAAA,IACxB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,EACR,CAAC;AAAA,EACD,MAAM,QAAQ,OAAO,QAAQ,KAC5B,CAAC,WAAW,OAAO,SAAS,aAC7B;AAAA,EACA,IAAI,CAAC,OAAO,WAAW,CAAC,OAAO;AAAA,IAC9B,MAAM,UAAU,OAAO,KAAK,IAAI,CAAC,QAAQ,OAAO,GAAG,CAAC,EAAE,KAAK;AAAA,CAAI;AAAA,IAC/D,MAAM,IAAI,MACT,uDAAuD;AAAA,EAAiB,SACzE;AAAA,EACD;AAAA,EAEA,MAAM,OAAO,MAAM,MAAM,KAAK;AAAA,EAC9B,MAAM,YAAY,wBAAwB,MAAM,mBAAmB,IAAI,CAAC;AAAA,EACxE,MAAM,aAAa,oBAAoB,UAAU;AAAA,EACjD,MAAM,MAAM,QAAQ,UAAU,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EACpD,MAAM,IAAI,MAAM,YAAY,SAAS;AAAA,EAErC,OAAO;AAAA,GAGK,6BAA6B,CAAC,eAAuB;AAAA,EACjE,MAAM,SAAS,oBAAoB,IAAI,UAAU;AAAA,EACjD,IAAI,QAAQ;AAAA,IACX,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,wBAAwB,yBAAyB,UAAU;AAAA,EACjE,oBAAoB,IAAI,YAAY,qBAAqB;AAAA,EAEzD,OAAO;AAAA;AAAA;AAAA,EA7GR;AAAA,EACA;AAAA,EA0BM,kBAAkB,MACvB,QAAQ,IAAI,GACZ,eACA,WACA,SACD;AAAA,EACM,sBAAsB,IAAI;AAAA,EAC1B,uBAAuB;AAAA;;;ACpC7B,oBAAS,kBAAS;AAClB,uBAAS,6BAAY;AAAA,IAUf,oBAAoB,CACzB,OACA,eACI;AAAA,EACJ,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI,CAAC,SAAS,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EAEhD,WAAW,aAAa,YAAY;AAAA,IACnC,MAAM,SAAS,QAAQ,IAAI,OAAO,SAAS;AAAA,IAC3C,IAAI,OAAO,WAAW,UAAU;AAAA,MAC/B,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGK,uBAAuB,CACnC,WACA,aAAiC,CAAC,QAAQ,MACtC;AAAA,EAEJ,IAAI,UAAU,WAAW,GAAG,KAAK,UAAU,WAAW,GAAG;AAAA,IAAG,OAAO;AAAA,EAGnE,MAAM,QAAQ,UAAU,MAAM,GAAG;AAAA,EACjC,MAAM,WAAW,UAAU,WAAW,GAAG;AAAA,EACzC,MAAM,cAAc,WAAW,GAAG,MAAM,MAAM,MAAM,OAAO,MAAM;AAAA,EACjE,MAAM,UAAU,WAAW,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG;AAAA,EAC7E,MAAM,YAAY,UAAU,KAAK,YAAY;AAAA,EAE7C,MAAM,yBAAyB,SAAQ,QAAQ,IAAI,GAAG,cAAc;AAAA,EACpE,MAAM,qBAAqB,YAAW,sBAAsB,IACzD,KAAK,MAAM,cAAa,wBAAwB,OAAO,CAAC,IACxD;AAAA,EACH,MAAM,oBACL,oBAAoB,SAAS,cAAc,QAAQ,IAAI,IAAI;AAAA,EAC5D,MAAM,aACL,qBAAqB,SAAQ,QAAQ,IAAI,GAAG,gBAAgB,eAAe,EAAE;AAAA,EAC9E,MAAM,kBAAkB,MAAK,YAAY,cAAc;AAAA,EAEvD,IAAI,CAAC,YAAW,eAAe;AAAA,IAAG,OAAO;AAAA,EAEzC,IAAI;AAAA,IACH,MAAM,cACL,qBAAqB,qBAClB,qBACA,KAAK,MAAM,cAAa,iBAAiB,OAAO,CAAC;AAAA,IACrD,QAAO,YAAW;AAAA,IAElB,IAAI,CAAC;AAAA,MAAS,OAAO;AAAA,IAGrB,MAAM,QAAQ,QAAQ;AAAA,IAEtB,IAAI,CAAC;AAAA,MAAO,OAAO;AAAA,IAEnB,MAAM,aAAa,kBAAkB,OAAO,UAAU;AAAA,IAEtD,IAAI,CAAC;AAAA,MAAY,OAAO;AAAA,IAExB,IAAI,qBAAqB,WAAW,WAAW,SAAS,GAAG;AAAA,MAC1D,MAAM,kBAAkB,SACvB,YACA,WAAW,QAAQ,eAAe,QAAQ,CAC3C;AAAA,MACA,IAAI,YAAW,eAAe,GAAG;AAAA,QAChC,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IAEA,MAAM,WAAW,SAAQ,YAAY,UAAU;AAAA,IAE/C,OAAO,YAAW,QAAQ,IAAI,WAAW;AAAA,IACxC,MAAM;AAAA,IACP,OAAO;AAAA;AAAA;AAAA;;;ICtFI,0BAA0B,KAC1B,mBAAmB,IACnB,qBAAqB,GACrB,cAAc,IACd,gBAAgB,IAChB,gCACZ,8CAMY,kCAEA,oBAAoB,MACpB,qBAAqB,MACrB,kBAAkB,GAClB,6BAA6B,IAC7B,yBAAyB,IACzB,2BAA2B,KAC3B,6BAA6B,MAC7B,4BAA4B,OAC5B,6BAA6B,KAC7B,qBAAqB,OACrB,sBAAsB,IACtB,eAAe,MACf,iCAAiC,KACjC,sBAAsB,IACtB,8BAA8B,GAC9B,yBAAyB,GACzB,0BAA0B,GAC1B,2BAA2B,GAC3B,6BAA6B,6BAC7B,6BAA6B,MAC7B,sBAAsB,6BACtB,sBAAsB,MACtB,wBAAwB,MACxB,wBAAwB,IACxB,sBAAsB,IACtB,iBAAiB,KACjB,0BAA0B,KAC1B,wBAAwB,KACxB,mBAAmB,KACnB,eAAe,IACf,oBAAoB,IACpB,4BAGA,2BACA,wBAAwB,IACxB,2BAA2B,GAC3B,4BAA4B,KAC5B,mBAAmB,KACnB,yBAAyB,IACzB,2BAA2B,MAC3B,qBAAqB,IACrB,sBAAsB,IACtB,0BAEA,uBAKA,2BAA2B,KAC3B,mBAAmB,OACnB,0BAA0B,OAC1B,sBAAsB,GACtB,0BAA0B,IAC1B,yBAAyB,KACzB,sCAAsC,IACtC,6BAA6B,GAC7B,wBAAwB,GACxB,0BAA0B,GAC1B,yBAAyB,IACzB,8BAA8B,IAC9B,qCAAqC,MACrC,wBAAwB,MACxB,kBAAkB,GAClB,sBAAsB,IACtB,yBAAyB,IACzB,0BAA0B,KAC1B,6BAA6B,KAC7B,6BAA6B,KAC7B,kCAAkC,GAClC,kCAAkC,IAClC,mBAAmB,KACnB,oBAAoB,KACpB,6BAA6B,KAC7B,iBAAiB,GACjB,YACA,gBAAgB,IAChB,2BAA2B,MAU3B,yCAAyC,KASzC,oCAAoC,KACpC,gCAAgC,KAChC,gCAAgC,GAChC,oCAAoC,IACpC,qCAAqC,IACrC,qCAAqC,MACrC,oCAAoC,KACpC,6BAA6B,OAC7B,gCAAgC,KAChC,+BAA+B,IAC/B,8BAA8B,KAC9B,2CAA2C,IAC3C,kCAAkC,GAClC,+BAA+B,GAC/B,uCAAuC,GACvC,iCAAiC,GACjC,+BAA+B,IAC/B,qCAAqC,GACrC,iCAAiC,IACjC,mCAAmC,IACnC,6BAA6B,IAC7B,qCAAqC,GACrC,iCAAiC;AAAA;AAAA,EAzHjC,mCACZ;AAAA,EAgCY,6BAA6B;AAAA,IACzC;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAM;AAAA,IAAM;AAAA,IAAM;AAAA,IAAM;AAAA,EACxC;AAAA,EACa,4BAA4B,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,GAAG;AAAA,EAS9D,2BACZ,2BAA2B;AAAA,EACf,wBACZ,2BACA,sBACA,qBACA;AAAA,EA2BY,aAAa,IAAI;AAAA;;;ICxFxB,eAEA,0BAA0B,CAAC,MAAc,eAAuB;AAAA,EACrE,IAAI,QAAQ;AAAA,EACZ,SAAS,QAAQ,WAAY,QAAQ,KAAK,QAAQ,SAAS,GAAG;AAAA,IAC7D,MAAM,OAAO,KAAK;AAAA,IAClB,IAAI,SAAS;AAAA,MAAK,SAAS;AAAA,IAC3B,IAAI,SAAS;AAAA,MAAK,SAAS;AAAA,IAC3B,IAAI,UAAU,GAAG;AAAA,MAChB,OAAO,KAAK,MAAM,aAAa,GAAG,KAAK,EAAE,KAAK;AAAA,IAC/C;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,yBAAyB,CAAC,iBAAyB,SAAiB;AAAA,EACzE,MAAM,cAAc,gBAAgB,MACnC,IAAI,OAAO,MAAM,+BAA+B,CACjD;AAAA,EACA,IAAI,cAAc,IAAI;AAAA,IACrB,OAAO,EAAE,YAAY,KAAK,UAAU,YAAY,EAAE,GAAG,OAAO,KAAK;AAAA,EAClE;AAAA,EAEA,MAAM,iBAAiB,gBAAgB,OACtC,IAAI,OAAO,MAAM,kBAAkB,CACpC;AAAA,EACA,IAAI,iBAAiB,GAAG;AAAA,IACvB,OAAO,EAAE,YAAY,IAAI,OAAO,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,aAAa,gBAAgB,QAAQ,KAAK,cAAc;AAAA,EAC9D,IAAI,aAAa,GAAG;AAAA,IACnB,OAAO,EAAE,YAAY,IAAI,OAAO,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,aAAa,wBAAwB,iBAAiB,UAAU;AAAA,EACtE,IAAI,eAAe,MAAM;AAAA,IACxB,OAAO,EAAE,YAAY,IAAI,OAAO,MAAM;AAAA,EACvC;AAAA,EAEA,OAAO,EAAE,YAAY,OAAO,KAAK;AAAA,GAGrB,0BAA0B,CACtC,QACA,QAA6B,aACzB;AAAA,EACJ,IAAI,CAAC,OAAO,SAAS,SAAS,GAAG;AAAA,IAChC,OAAO,EAAE,MAAM,QAAQ,aAAa,MAAM;AAAA,EAC3C;AAAA,EAEA,IAAI,cAAc;AAAA,EAClB,MAAM,oBAAoB,OAAO,QAChC,eACA,CAAC,WAAW,oBAA4B;AAAA,IACvC,MAAM,YAAY,uBACjB,iBACA,WACD;AAAA,IACA,MAAM,YAAY,uBACjB,iBACA,WACD;AAAA,IACA,IAAI,CAAC,UAAU,SAAS,CAAC,UAAU,OAAO;AAAA,MACzC,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,UAAU,uBAAuB,iBAAiB,SAAS;AAAA,IACjE,MAAM,QAAQ,uBAAuB,iBAAiB,OAAO;AAAA,IAC7D,MAAM,SAAS,0BAA0B,YAAY,SAAS,aAAa;AAAA,IAC3E,eAAe;AAAA,IAEf,MAAM,oBAAoB,qCAAqC,KAAK,UACnE,MACD,mBAAmB,UAAU,0BAA0B,UAAU,wBAChE,QAAQ,QAAQ,QAAQ,aAAa,KAAK,UAAU,MAAM,aAC/C,MAAM,QAAQ,MAAM,aAAa;AAAA,IAE7C,OAAO,mCAAmC,4CAA4C;AAAA,GAExF;AAAA,EAEA,MAAM,aACL;AAAA,EAED,IAAI,kBAAkB,SAAS,SAAS,GAAG;AAAA,IAC1C,OAAO;AAAA,MACN,MAAM,kBAAkB,QACvB,sBACA,CAAC,UAAU,GAAG;AAAA,EAAU;AAAA,CACzB;AAAA,MACA,aAAa;AAAA,IACd;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,MAAM;AAAA,EAAuB;AAAA;AAAA,EAA0B;AAAA,IACvD,aAAa;AAAA,EACd;AAAA;AAAA;AAAA,EArGD;AAAA,EAEM,gBAAgB;AAAA;;;ICAhB,gBAGA,wBAAwB,CAAC,UAC9B,MACE,WAAW,MAAM,MAAM,EACvB,WAAW,KAAK,KAAK,EACrB,WAAW,MAAM,MAAM,GAEpB,0BAA0B,CAAC,WAAmB;AAAA,EACnD,MAAM,UAAU,sBAAsB,OAAO,KAAK,CAAC;AAAA,EACnD,MAAM,kBAAkB,QAAQ,QAC/B,iBACA,CAAC,GAAG,eAAe,MAAM,OAAO,UAAU,EAAE,KAAK,IAClD;AAAA,EAEA,OAAO,KAAK;AAAA,GAGA,6BAA6B,CAAC,WAAmB;AAAA,EAC7D,IAAI,CAAC,OAAO,SAAS,SAAS,GAAG;AAAA,IAChC,OAAO,EAAE,MAAM,QAAQ,aAAa,MAAM;AAAA,EAC3C;AAAA,EAEA,IAAI,aAAa;AAAA,EACjB,IAAI,cAAc;AAAA,EAClB,MAAM,UAAU,OAAO,QACtB,gBACA,CACC,WACA,iBACA,eACA,gBACA,YACA,iBACA,gBACI;AAAA,IACJ,MAAM,yBAAyB,gBAAgB,KAAK;AAAA,IACpD,IAAI,CAAC,wBAAwB;AAAA,MAC5B,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,SAAS,yBAAyB,WAAW,SAAS,aAAa;AAAA,IACzE,cAAc;AAAA,IACd,cAAc;AAAA,IAEd,MAAM,sBACL,gBAAgB,KAAK,KAAK;AAAA,IAC3B,MAAM,uBACL,iBAAiB,KAAK,KAAK;AAAA,IAC5B,MAAM,eAAe,wBAAwB,aAAa;AAAA,IAC1D,MAAM,eAAe,wBAAwB,UAAU;AAAA,IACvD,MAAM,eACL,OAAO,gBAAgB,WACpB,wBAAwB,WAAW,IACnC;AAAA,IACJ,MAAM,cAAc,eACjB,UAAU,kCAAkC,oBAC5C;AAAA,IAEH,OAAO,0BAA0B,yBAAyB,oDAAoD,gCAAgC,mCAAmC,mBAAmB;AAAA,GAEtM;AAAA,EAEA,IAAI,CAAC,aAAa;AAAA,IACjB,OAAO,EAAE,MAAM,QAAQ,aAAa,MAAM;AAAA,EAC3C;AAAA,EAEA,MAAM,aACL;AAAA,EAED,IAAI,QAAQ,SAAS,SAAS,GAAG;AAAA,IAChC,OAAO;AAAA,MACN,MAAM,QAAQ,QACb,sBACA,CAAC,UAAU,GAAG;AAAA,EAAU;AAAA,CACzB;AAAA,MACA,aAAa;AAAA,IACd;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN,MAAM;AAAA,EAAuB;AAAA;AAAA,EAA0B;AAAA,IACvD,aAAa;AAAA,EACd;AAAA;AAAA;AAAA,EAtFD;AAAA,EAEM,iBACL;AAAA;;;ACFD,uBAAS,6BAAY;AACrB;AACA;AACA;AAAA,aACC;AAAA;AAAA;AAAA,UAGA;AAAA,cACA;AAAA,aACA;AAAA;AAED;AAAA,IAUM,uBACA,yBACA,gCACA,wBACA,oBAIA,qBAIA,gBAEO,4BAA4B,CAAC,aACzC,wBAAwB,KAAK,QAAQ,GAEzB,oBAAoB,CAAC,aACjC,+BAA+B,KAAK,QAAQ,GAEhC,cAAc,CAAC,aAC3B,qCAAqC,KAAK,QAAQ,GAEtC,mBAAmB,CAAC,aAChC,SAAS,QAAQ,sCAAsC,EAAE,GAEpD,mBAAmB,CAAC,uBAA+B;AAAA,EACxD,MAAM,aAAa,mBAAmB,YAAY;AAAA,EAClD,IAAI,eAAe,UAAU,WAAW,SAAS,OAAO;AAAA,IAAG,OAAO;AAAA,EAClE,IAAI,eAAe,UAAU,WAAW,SAAS,OAAO;AAAA,IAAG,OAAO;AAAA,EAClE,IAAI,eAAe,UAAU,WAAW,SAAS,OAAO;AAAA,IAAG,OAAO;AAAA,EAClE,IACC,eAAe,UACf,eAAe,YACf,WAAW,SAAS,OAAO,KAC3B,WAAW,SAAS,SAAS;AAAA,IAE7B,OAAO;AAAA,EAER,OAAO;AAAA,GAGF,yBAAyB,CAAC,MAAc,aAC7C,IAAI,MACH,qBAAqB,0CAA0C,4CAChE,GAOK,yBAAyB,CAC9B,OACA,UACA,aACW;AAAA,EACX,IAAI,EAAE,iBAAiB,QAAQ;AAAA,IAC9B,MAAM,IAAI,MACT,GAAG,8BAA8B,aAAa,OAAO,KAAK,GAC3D;AAAA,EACD;AAAA,EAEA,MAAM,SAAS;AAAA,EAOf,MAAM,WAAW,OAAO,MAAM,OAAO;AAAA,EACrC,MAAM,UAAU,OAAO,MAAM,OAAO;AAAA,EACpC,MAAM,OAAO,OAAO,QAAQ;AAAA,EAC5B,MAAM,SAAS,OAAO,UAAU;AAAA,EAChC,MAAM,WACL,OAAO,SAAS,WACb,IAAI,OAAO,OAAO,WAAW,WAAW,IAAI,WAAW,OACvD;AAAA,EACJ,MAAM,UAAU,OAAO,aAAa,OAAO;AAAA,EAC3C,MAAM,UAAU,IAAI,MACnB,GAAG,8BAA8B,WAAW;AAAA,EAAa,SAC1D;AAAA,EACA,QAAQ,QAAQ;AAAA,EAChB,MAAM;AAAA,GAGD,0BAA0B,CAAI,cAAsB;AAAA,EACzD,IAAI;AAAA,IACH,OAAO,eAAe,SAAS;AAAA,IAC9B,MAAM;AAAA,IACP,OAAO,oBAAuB,SAAS;AAAA;AAAA,GAInC,qBAAqB,CAAC,UAAkB,QAAkB,CAAC,MAAM;AAAA,EACtE,SAAQ,QAAQ;AAAA,EAChB,QAAQ,IAAI;AAAA,EACZ,GAAG,MAAM,IAAI,CAAC,SAAS,SAAQ,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpD,GASI,oBAIE,oBAAoB,CAAC,WAC1B,OAAO,QAAQ,qBAAqB,EAAE,EAAE,QAAQ,qBAAqB,IAAI,GAEpE,wBAAwB,CAC7B,YAEA,OAAO,QAAQ,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,YAAY;AAAA,EACxD;AAAA,EACA,cAAc,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AACpD,EAAE,GAEG,sBAAsB,MAAM;AAAA,EACjC,MAAM,MAAM,QAAQ,IAAI;AAAA,EACxB,IAAI,oBAAoB,QAAQ;AAAA,IAAK,OAAO;AAAA,EAE5C,MAAM,eAAe,SAAQ,KAAK,eAAe;AAAA,EACjD,MAAM,QAAQ,EAAE,SAAS,CAAC,GAAG,SAAS,KAAK,IAAI;AAAA,EAC/C,IAAI,CAAC,YAAW,YAAY,GAAG;AAAA,IAC9B,qBAAqB;AAAA,IACrB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI;AAAA,IACH,MAAM,SAAS,KAAK,MACnB,kBAAkB,cAAa,cAAc,OAAO,CAAC,CACtD;AAAA,IACA,MAAM,kBAAkB,OAAO,mBAAmB,CAAC;AAAA,IACnD,MAAM,UAAU,SAAQ,KAAK,gBAAgB,WAAW,GAAG;AAAA,IAC3D,qBAAqB;AAAA,MACpB,SAAS,sBAAsB,gBAAgB,KAAK;AAAA,MACpD;AAAA,MACA;AAAA,IACD;AAAA,IACC,MAAM;AAAA,IACP,qBAAqB;AAAA;AAAA,EAGtB,OAAO;AAAA,GAGF,kBAAkB,CAAC,WAAgD;AAAA,EACxE,MAAM,WAAW,oBAAoB;AAAA,EACrC,OAAO;AAAA,IACN,SAAS;AAAA,MACR,GAAG,sBAAsB,QAAQ,OAAO;AAAA,MACxC,GAAG,SAAS;AAAA,IACb;AAAA,IACA,SAAS,SAAS;AAAA,EACnB;AAAA,GAGK,uBAAuB,CAAC,YAC7B,IAAI,OACH,IAAI,QACF,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,QAAQ,uBAAuB,MAAM,CAAC,EACzD,KAAK,MAAM,IACd,GAEK,sBAAsB,CAC3B,WACA,WACI;AAAA,EACJ,QAAQ,SAAS,YAAY,gBAAgB,MAAM;AAAA,EACnD,MAAM,UAAoB,CAAC;AAAA,EAE3B,WAAW,SAAS,SAAS;AAAA,IAC5B,MAAM,QAAQ,UAAU,MAAM,qBAAqB,MAAM,OAAO,CAAC;AAAA,IACjE,IAAI,CAAC;AAAA,MAAO;AAAA,IACZ,MAAM,WAAW,MAAM,MAAM;AAAA,IAC7B,WAAW,eAAe,MAAM,cAAc;AAAA,MAC7C,QAAQ,KAAK,SAAQ,SAAS,YAAY,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAAA,IAClE;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,wBAAwB,CAAC,aAA4B;AAAA,EAC1D,IAAI,aAAa;AAAA,IAAQ,OAAO,CAAC,SAAS,MAAM;AAAA,EAChD,IAAI,aAAa;AAAA,IAAU,OAAO,CAAC,SAAS,WAAW,MAAM;AAAA,EAC7D,OAAO,CAAC,SAAS,SAAS,MAAM;AAAA,GAG3B,oBAAoB,CAAC,UAAkB,aAA4B;AAAA,EACxE,MAAM,MAAM,QAAQ,QAAQ;AAAA,EAC5B,MAAM,QAAQ,MACX,CAAC,QAAQ,IACT,sBAAsB,QAAQ,EAAE,QAAQ,CAAC,cAAc;AAAA,IACvD,GAAG,WAAW;AAAA,IACd,MAAK,UAAU,QAAQ,WAAW;AAAA,EACnC,CAAC;AAAA,EAEH,IAAI,aAAa,UAAU,aAAa,QAAQ;AAAA,IAC/C,OAAO,MAAM,QAAQ,CAAC,SAAS;AAAA,MAC9B,MAAM,MAAM,SAAQ,IAAI;AAAA,MACxB,MAAM,OAAO,KAAK,MAAM,IAAI,SAAS,CAAC;AAAA,MACtC,OAAO,CAAC,MAAM,MAAK,KAAK,IAAI,MAAM,CAAC;AAAA,KACnC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,GAGF,oBAAoB,CACzB,WACA,eACA,WACA,UACA,WACI;AAAA,EACJ,MAAM,gBAAgB;AAAA,IACrB,GAAG,oBAAoB,WAAW,MAAM;AAAA,IACxC,WAAW,SAAS,IAAI,YAAY,SAAQ,eAAe,SAAS;AAAA,IACpE,GAAG,UAAU,IAAI,CAAC,SAAS,SAAQ,MAAM,SAAS,CAAC;AAAA,EACpD;AAAA,EAEA,WAAW,aAAa,cAAc,QAAQ,CAAC,SAC9C,kBAAkB,MAAM,QAAQ,CACjC,GAAG;AAAA,IACF,IAAI,YAAW,SAAS;AAAA,MAAG,OAAO;AAAA,EACnC;AAAA,EAEA,OAAO;AAAA,GAGF,mBAAmB,CAAC,QACzB,qCAAqC,KAAK,GAAG,GAExC,cAAc,CAAC,QAAgB;AAAA,EACpC,MAAM,cAAc,IAAI,OAAO,MAAM;AAAA,EACrC,IAAI,gBAAgB;AAAA,IAAI,OAAO,EAAE,QAAQ,IAAI,MAAM,IAAI;AAAA,EACvD,OAAO;AAAA,IACN,QAAQ,IAAI,MAAM,WAAW;AAAA,IAC7B,MAAM,IAAI,MAAM,GAAG,WAAW;AAAA,EAC/B;AAAA,GAGK,gBAAgB,CACrB,UACA,YACA,cACI;AAAA,EACJ,MAAM,YAAY,SAAQ,UAAU;AAAA,EACpC,MAAM,WAAW,SAAQ,SAAS;AAAA,EAClC,IAAI,cAAc;AAAA,IAAU,OAAO;AAAA,EAEnC,OAAO,SAAS,QACf,qCACA,CAAC,OAAO,OAAe,WAAmB;AAAA,IACzC,MAAM,aAAa,OAAO,KAAK;AAAA,IAC/B,IAAI,CAAC,cAAc,iBAAiB,UAAU;AAAA,MAAG,OAAO;AAAA,IACxD,QAAQ,QAAQ,SAAS,YAAY,UAAU;AAAA,IAC/C,MAAM,UAAU,UACf,UACA,SAAQ,WAAW,IAAI,CACxB,EAAE,QAAQ,OAAO,GAAG;AAAA,IACpB,MAAM,aAAa,QAAQ,WAAW,GAAG,IACtC,UACA,KAAK;AAAA,IACR,MAAM,YAAY,SAAS;AAAA,IAC3B,OAAO,OAAO,YAAY,aAAa,SAAS;AAAA,GAElD;AAAA,GAGK,6BAA6B,CAClC,UACA,YACA,WACA,UACA,WAEA,SAAS,QACR,yDACA,CAAC,OAAO,QAAgB,OAAe,cAAsB;AAAA,EAC5D,IACC,UAAU,WAAW,GAAG,KACxB,WAAW,SAAS,KACpB,iBAAiB,SAAS;AAAA,IAE1B,OAAO;AAAA,EAER,MAAM,WAAW,kBAChB,WACA,SAAQ,UAAU,GAClB,WACA,UACA,MACD;AAAA,EACA,OAAO,WAAW,GAAG,SAAS,QAAQ,WAAW,UAAU;AAAA,CAE7D,GAEK,wBAAwB,CAC7B,UACA,YACA,WACA,YAAsB,CAAC,GACvB,UACA,WACI;AAAA,EACJ,MAAM,UAAU,cAAc,UAAU,YAAY,SAAS;AAAA,EAC7D,OAAO,WACJ,2BACA,SACA,YACA,WACA,UACA,MACD,IACC;AAAA,GAGE,0BAA0B,CAAC,QAAgB;AAAA,EAChD,MAAM,UAAkC,CAAC;AAAA,EACzC,MAAM,UAAU,IAAI,QAAQ,0BAA0B,CAAC,GAAG,SAAiB;AAAA,IAC1E,WAAW,eAAe,KAAK,MAAM,GAAG,GAAG;AAAA,MAC1C,MAAM,YAAY,YAAY,QAAQ,GAAG;AAAA,MACzC,IAAI,cAAc;AAAA,QAAI;AAAA,MACtB,MAAM,MAAM,YAAY,MAAM,GAAG,SAAS,EAAE,KAAK;AAAA,MACjD,MAAM,QAAQ,YAAY,MAAM,YAAY,CAAC,EAAE,KAAK;AAAA,MACpD,IAAI,OAAO;AAAA,QAAO,QAAQ,OAAO;AAAA,IAClC;AAAA,IACA,OAAO;AAAA,GACP;AAAA,EAED,OAAO,EAAE,KAAK,SAAS,QAAQ;AAAA,GAG1B,iBAAiB,CACtB,QACA,cAC8B;AAAA,KAC1B,QAAQ,QAAQ,CAAC;AAAA,KACjB,aAAa,SAAU,QAAQ,QAAQ,CAAC,IAAK,CAAC;AACnD,IAEM,iBAAiB,CACtB,WAC6B,QAAQ,QAAQ,CAAC,GAEzC,mBAAmB,CACxB,WAC+B,QAAQ,UAAU,CAAC,GAEtC,6BAA6B,CACzC,oBACA,YAEA,YAAY,YACT,qBACA,KAAM,sBAAsB,CAAC,GAAI,QAAQ,GAEvC,qBAAqB,CAC1B,UACA,mBACK,iBAAiB,GAAG;AAAA,EAAmB,aAAa,UAOpD,yBAAyB,CAAC,QAAiB;AAAA,EAChD,IAAI,OAAO,OAAO,QAAQ,YAAY,aAAa,KAAK;AAAA,IACvD,OAAQ,IAA8B,WAAW;AAAA,EAClD;AAAA,EAEA,OAAO;AAAA,GAGF,wBAAwB,OAC7B,eACmC;AAAA,EACnC,MAAM,WAAW,SAAQ,QAAQ,IAAI,GAAG,UAAU;AAAA,EAClD,MAAM,SACL,SAAS,SAAS,MAAM,KAAK,SAAS,SAAS,MAAM,IAClD,wBAAiC,QAAQ,IACzC,MAAM,mBACN,GAAG,IAAI,IAAI,UAAU,UAAU,EAAE,UAAU,KAAK,IAAI,GACrD;AAAA,EACH,MAAM,SAAS,uBAAuB,MAAM;AAAA,EAC5C,MAAM,QACL,OAAO,WAAW,aACf,MACA,OAIC;AAAA,IACD,KAAK,QAAQ,IAAI;AAAA,IACjB,KAAK;AAAA,EACN,CAAC,IACA;AAAA,EAEJ,OAAQ,uBAAuB,KAAK,KAAK,CAAC;AAAA,GAGrC,0BAA0B,CAC/B,YACI;AAAA,EACJ,IAAI,CAAC;AAAA,IAAS,OAAO,CAAC;AAAA,EACtB,IAAI,MAAM,QAAQ,OAAO;AAAA,IAAG,OAAO,QAAQ,OAAO,OAAO;AAAA,EAEzD,MAAM,WAAsB,CAAC;AAAA,EAC7B,YAAY,WAAW,YAAY,OAAO,QAAQ,OAAO,GAAG;AAAA,IAC3D,IAAI,YAAY;AAAA,MAAO;AAAA,IACvB,MAAM,MAAM,uBACX,wBAAiC,SAAS,CAC3C;AAAA,IACA,MAAM,SACL,OAAO,QAAQ,aACX,IACD,YAAY,OAAO,YAAY,OAChC,IACC;AAAA,IACJ,IAAI;AAAA,MAAQ,SAAS,KAAK,MAAM;AAAA,EACjC;AAAA,EAEA,OAAO;AAAA,GAGF,uBAAuB,OAC5B,WACI;AAAA,EACJ,MAAM,eAAe,QAAQ;AAAA,EAC7B,IAAI,CAAC;AAAA,IAAc,OAAO;AAAA,EAE1B,MAAM,aAAa,aAAa,SAC7B,MAAM,sBAAsB,aAAa,MAAM,IAC/C,CAAC;AAAA,EACJ,MAAM,UAAU;AAAA,IACf,GAAG,wBAAwB,WAAW,OAAO;AAAA,IAC7C,GAAG,wBAAwB,aAAa,OAAO;AAAA,EAChD;AAAA,EAEA,IAAI,QAAQ,WAAW;AAAA,IAAG,OAAO;AAAA,EAEjC,OAAO;AAAA,IACN,SAAS;AAAA,SACJ,WAAW,WAAW,CAAC;AAAA,SACvB,aAAa,WAAW,CAAC;AAAA,IAC9B;AAAA,IACA;AAAA,EACD;AAAA,GAGK,aAAa,OAClB,KACA,UACA,WACI;AAAA,EACJ,MAAM,gBAAgB,MAAM,qBAAqB,MAAM;AAAA,EACvD,IAAI,CAAC;AAAA,IAAe,OAAO;AAAA,EAE3B,IAAI;AAAA,EAGJ,IAAI;AAAA,IACH,gBACC,MAAM,mBAAyC,SAAS;AAAA,IACxD,MAAM;AAAA,IACP,MAAM,uBAAuB,WAAW,QAAQ;AAAA;AAAA,EAEjD,MAAM,UAAU,cAAc,WAAW;AAAA,EACzC,MAAM,SAAS,MAAM,QACpB,cAAc,OACf,EAAE,QAAQ,KAAK;AAAA,IACd,MAAM;AAAA,IACN,KAAK;AAAA,OACF,cAAc;AAAA,EAClB,CAAC;AAAA,EAED,OAAO,OAAO;AAAA,GAGT,qBAAqB,CAC1B,WACA,WACA,UACA,QACA,UACK;AAAA,EACL,YAAY,CAAC,WAAmB,SAAyC;AAAA,IACxE,MAAM,gBAAgB,QAAQ,gBAC3B,SAAQ,cAAc,QAAQ,aAAa,CAAC,IAC5C,SAAQ,SAAS;AAAA,IACpB,MAAM,WAAW,kBAChB,WACA,eACA,WACA,UACA,MACD;AAAA,IACA,OAAO,WAAW,IAAI,IAAI,cAAc,SAAQ,QAAQ,CAAC,EAAE,IAAI,IAAI;AAAA;AAAA,EAEpE,IAAI,CAAC,cAAmB;AAAA,IACvB,MAAM,WAAW,cAAc,YAAY;AAAA,IAC3C,MAAM,IAAI,QAAQ;AAAA,IAClB,MAAM,eAAe,iBAAiB,QAAQ;AAAA,IAC9C,IACC,iBAAiB,UACjB,iBAAiB,UACjB,iBAAiB;AAAA,MAEjB,OAAO;AAAA,IAER,OAAO;AAAA,MACN,UAAU,sBACT,cAAa,UAAU,OAAO,GAC9B,UACA,WACA,WACA,UACA,MACD;AAAA,MACA,QAAQ,SAAS,SAAS,OAAO,IAC7B,aACA;AAAA,IACL;AAAA;AAEF,IAEM,wBAAwB,CAC7B,WACA,WACA,QACA,UACK;AAAA,EACL,OAAO,CACN,MACA,eACC;AAAA,IACD,MAAM,cAAc,IAAI,KAAK;AAAA,IAC7B,MAAM,UAAU,OAAO,OAAO,WAAW;AAAA,IACzC,QAAQ,WAAW,CAAC,UAAkB,qBACrC,QACC,kBACC,UACA,SAAQ,gBAAgB,GACxB,WACA,QACA,MACD,CACD;AAAA,IACD,QAAQ,WAAW,OAClB,UACA,qBACI;AAAA,MACJ,MAAM,WAAW,kBAChB,UACA,SAAQ,gBAAgB,GACxB,WACA,QACA,MACD;AAAA,MACA,IAAI,CAAC,UAAU;AAAA,QACd,MAAM,IAAI,MAAM,kCAAkC,WAAW;AAAA,MAC9D;AAAA,MACA,MAAM,IAAI,QAAQ;AAAA,MAElB,OAAO;AAAA,QACN,UAAU,sBACT,MAAM,SAAS,UAAU,OAAO,GAChC,UACA,WACA,WACA,QACA,MACD;AAAA,QACA,UAAU;AAAA,MACX;AAAA;AAAA,IAED,cAAc,eAAe,OAAO;AAAA;AAEtC,IAEM,eAAe,OACpB,UACA,UACA,WACA,SACA,SACI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,eAAe,MAAM,mBAEzB,QAAQ;AAAA,IACV,SAAS,aAAa,WAAW;AAAA,IAChC,MAAM;AAAA,IACP,MAAM,uBAAuB,UAAU,QAAQ;AAAA;AAAA,EAGhD,OAAO,IAAI,QAAgB,CAAC,YAAY,WAAW;AAAA,IAClD,MAAM,WAAW,OAAO,QAAQ;AAAA,IAChC,SAAS,IAAI,YAAY,QAAQ;AAAA,IACjC,YAAY,KAAK,UAAU,OAAO,QAAQ,QAAQ,WAAW,CAAC,CAAC,GAAG;AAAA,MACjE,SAAS,IAAI,KAAK,KAAK;AAAA,IACxB;AAAA,IACA,WAAW,QAAQ;AAAA,MAAW,SAAS,QAAQ,IAAI;AAAA,IACnD,SAAS,OAAO,CAAC,OAAO,QAAQ;AAAA,MAC/B,IAAI,OAAO;AAAA,QACV,OAAO,KAAK;AAAA,QAEZ;AAAA,MACD;AAAA,MAEA,IAAI,MAAM;AAAA,QACT,MAAM,aACL,SACC,OAAO;AAAA,QACT,IAAI,MAAM,QAAQ,UAAU,GAAG;AAAA,UAC9B,WAAW,OAAO;AAAA,YAAY,KAAK,IAAI,SAAQ,GAAG,CAAC;AAAA,QACpD;AAAA,MACD;AAAA,MACA,WAAW,OAAO,EAAE;AAAA,KACpB;AAAA,GACD;AAAA,GAaI,sBACA,mBAEA,kBAAkB,CAAC,OAAe,SAAsB;AAAA,EAC7D,MAAM,MAAM,SAAQ,KAAK;AAAA,EACzB,MAAM,WAAW,IAAI;AAAA,EACrB,WAAW,OAAO,MAAM;AAAA,IACvB,MAAM,WAAW,SAAQ,GAAG;AAAA,IAC5B,IAAI,aAAa;AAAA,MAAK,SAAS,IAAI,QAAQ;AAAA,EAC5C;AAAA,EACA,qBAAqB,IAAI,KAAK,QAAQ;AAAA,GAW1B,mBAAmB,CAAC,cAAsB,cAAsB;AAAA,EAC5E,MAAM,MAAM,SAAQ,YAAY;AAAA,EAChC,MAAM,SAAS,SAAQ,SAAS;AAAA,EAChC,MAAM,OAAO,qBAAqB,IAAI,GAAG,KAAK,IAAI;AAAA,EAClD,KAAK,IAAI,MAAM;AAAA,EACf,qBAAqB,IAAI,KAAK,IAAI;AAAA,GAMtB,4BAA4B,CAAC,gBAAwB;AAAA,EACjE,MAAM,SAAS,SAAQ,WAAW;AAAA,EAClC,MAAM,YAAsB,CAAC;AAAA,EAC7B,YAAY,OAAO,SAAS,sBAAsB;AAAA,IACjD,IAAI,KAAK,IAAI,MAAM;AAAA,MAAG,UAAU,KAAK,KAAK;AAAA,EAC3C;AAAA,EAEA,OAAO;AAAA,GAuBK,qBAAqB,OACjC,UACA,QACA,cACA,WACI;AAAA,EACJ,MAAM,WAAW,iBAAiB,gBAAgB,QAAQ;AAAA,EAC1D,MAAM,cAAc,UAAW,MAAM,SAAS,UAAU,OAAO;AAAA,EAI/D,MAAM,OAAO,IAAI;AAAA,EAEjB,IAAI,aAAa,UAAU,aAAa,QAAQ;AAAA,IAC/C,MAAM,UAAU,eAAe,QAAQ,QAAQ;AAAA,IAC/C,MAAM,cAAc,QAAQ,kBAAkB;AAAA,IAC9C,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,OAAO,MAAM,mBAA0C,WAAW;AAAA,MACjE,MAAM;AAAA,MACP,MAAM,uBAAuB,aAAa,QAAQ;AAAA;AAAA,IAGnD,MAAM,WAAW,mBAChB,aACA,QAAQ,cACT;AAAA,IACA,MAAM,YAAY,mBAAmB,UAAU,QAAQ,SAAS;AAAA,IAChE,IAAI;AAAA,MACH,MAAM,SAAS,KAAK,cAAc,UAAU;AAAA,QAC3C,WAAW;AAAA,UACV,mBACC,UACA,WACA,UACA,QACA,IACD;AAAA,QACD;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,QAAQ,aAAa,SAAS,aAAa;AAAA,QAC3C,KAAK,IAAI,IAAI,cAAc,SAAQ,QAAQ,CAAC,EAAE,IAAI;AAAA,MACnD,CAAC;AAAA,MAED,MAAM,MAAM,MAAM,WAAW,OAAO,KAAK,UAAU,MAAM;AAAA,MAUzD,MAAM,aAAc,OAAO,cAAc,CAAC;AAAA,MAC1C,WAAW,OAAO,YAAY;AAAA,QAC7B,IAAI,IAAI,aAAa;AAAA,UAAS;AAAA,QAC9B,MAAM,MAAM,cAAc,GAAG;AAAA,QAC7B,IAAI,SAAQ,GAAG,MAAM,SAAQ,QAAQ;AAAA,UAAG;AAAA,QACxC,KAAK,IAAI,GAAG;AAAA,MACb;AAAA,MACA,gBAAgB,UAAU,IAAI;AAAA,MAE9B,OAAO;AAAA,MACN,OAAO,OAAO;AAAA,MACf,uBAAuB,OAAO,UAAU,QAAQ;AAAA;AAAA,EAElD;AAAA,EAEA,IAAI,aAAa,QAAQ;AAAA,IACxB,MAAM,UAAU,eAAe,MAAM;AAAA,IAErC,IAAI;AAAA,IAIJ,IAAI;AAAA,MACH,aAAa,MAAM,mBAAsC,MAAM;AAAA,MAC9D,MAAM;AAAA,MACP,MAAM,uBAAuB,QAAQ,QAAQ;AAAA;AAAA,IAE9C,MAAM,OAAO,WAAW,SAAS,aAAa,WAAW;AAAA,IACzD,MAAM,SAAS,MAAM;AAAA,IACrB,IAAI,CAAC;AAAA,MAAQ,MAAM,uBAAuB,QAAQ,QAAQ;AAAA,IAE1D,MAAM,WAAW,mBAChB,aACA,QAAQ,cACT;AAAA,IACA,MAAM,YAAY,mBAAmB,UAAU,QAAQ,KAAK;AAAA,IAC5D,IAAI;AAAA,MACH,MAAM,SAAS,MAAM,OAAO,UAAU;AAAA,WACjC,QAAQ,WAAW,CAAC;AAAA,QACxB,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,UACR,GAAK,QAAQ,SAAS,WAAyB,CAAC;AAAA,UAChD,sBAAsB,UAAU,WAAW,QAAQ,IAAI;AAAA,QACxD;AAAA,MACD,CAAC;AAAA,MAED,MAAM,MAAM,MAAM,WAAW,OAAO,KAAK,UAAU,MAAM;AAAA,MACzD,gBAAgB,UAAU,IAAI;AAAA,MAE9B,OAAO;AAAA,MACN,OAAO,OAAO;AAAA,MACf,uBAAuB,OAAO,UAAU,MAAM;AAAA;AAAA,EAEhD;AAAA,EAEA,IAAI,aAAa,UAAU;AAAA,IAC1B,MAAM,UAAU,iBAAiB,MAAM;AAAA,IACvC,MAAM,YAAY,mBAAmB,UAAU,QAAQ,KAAK;AAAA,IAC5D,MAAM,WAAW,mBAChB,sBACC,aACA,UACA,UACA,WACA,UACA,MACD,GACA,QAAQ,cACT;AAAA,IAEA,IAAI;AAAA,MACH,MAAM,MAAM,MAAM,WACjB,MAAM,aACL,UACA,UACA,WACA,SACA,IACD,GACA,UACA,MACD;AAAA,MACA,gBAAgB,UAAU,IAAI;AAAA,MAE9B,OAAO;AAAA,MACN,OAAO,OAAO;AAAA,MACf,uBAAuB,OAAO,UAAU,QAAQ;AAAA;AAAA,EAElD;AAAA,EAEA,OAAO,WAAW,aAAa,UAAU,MAAM;AAAA,GAGnC,gCAAgC,CAC5C,YACgB;AAAA,EAChB,MAAM;AAAA,EACN,KAAK,CAAC,OAAO;AAAA,IACZ,MAAM,mBAAmB,IAAI;AAAA,IAK7B,MAAM,UAAU,EAAE,QAAQ,0BAA0B,GAAG,GAAG,YAAY;AAAA,MACrE,WAAW;AAAA,MACX,MAAM,KAAK,MAAM,yBAAyB,MAAM;AAAA,IACjD,EAAE;AAAA,IAEF,MAAM,OACL,EAAE,QAAQ,mBAAmB,WAAW,wBAAwB,GAChE,SAAS,WAAW;AAAA,MACnB,MAAM,SAAS,iBAAiB,IAAI,IAAI;AAAA,MACxC,IAAI,CAAC,QAAQ;AAAA,QACZ,MAAM,IAAI,MACT,2CAA2C,MAC5C;AAAA,MACD;AAAA,MAEA,OAAO;AAAA,QACN,UAAU,OAAO;AAAA,QACjB,QAAQ;AAAA,MACT;AAAA,KAEF;AAAA,IAEA,MAAM,OAAO,EAAE,QAAQ,wBAAwB,GAAG,SAAS,WAAW;AAAA,MACrE,IAAI,kBAAkB,IAAI,GAAG;AAAA,QAC5B,MAAM,gBAAgB,KAAK,QAC1B,yBACA,MACD;AAAA,QACA,MAAM,WAAW,MAAM,mBACtB,MACA,WACA,WACA,MACD;AAAA,QACA,QAAQ,KAAK,YAAY,wBAAwB,QAAQ;AAAA,QACzD,iBAAiB,IAAI,eAAe,EAAE,KAAK,QAAQ,CAAC;AAAA,QACpD,MAAM,eACL,OAAO,KAAK,OAAO,EAAE,SAAS,IAC3B,sBAAsB,KAAK,UAAU,yBAAyB,eAAe,+CAA+C,KAAK,UAAU,OAAO,QAClJ,2BAA2B,KAAK,UAAU,yBAAyB,eAAe;AAAA,QAEtF,OAAO;AAAA,UACN,UAAU;AAAA,UACV,QAAQ;AAAA,QACT;AAAA,MACD;AAAA,MAEA,OAAO;AAAA,QACN,UAAU,MAAM,mBACf,MACA,WACA,WACA,MACD;AAAA,QACA,QAAQ;AAAA,MACT;AAAA,KACA;AAAA,IAED,MAAM,OAAO,EAAE,QAAQ,sBAAsB,GAAG,SAAS,YAAY;AAAA,MACpE,UAAU,MAAM,mBACf,MACA,WACA,WACA,MACD;AAAA,MACA,QAAQ;AAAA,IACT,EAAE;AAAA;AAEJ,IAEa,yBAEA,gCAAgC,CAC5C,YACK;AAAA,EACL,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,QAKK;AAAA,IACL,MAAM,WACL,OAAO,WAAW,SAAS,WACxB,WAAW,OACX,OAAO,WAAW,SAAS,WAC1B,WAAW,KAAK,QAAQ,WAAW,EAAE,IACrC;AAAA,IACL,IAAI,CAAC,YAAY,CAAC,uBAAuB,KAAK,QAAQ;AAAA,MAAG;AAAA,IAEzD,MAAM,OAAO,YAAY,SAAS;AAAA,IAElC,OAAO;AAAA,MACN,MAAM,MAAM,mBAAmB,MAAM,SAAS,UAAU,MAAM;AAAA,IAC/D;AAAA;AAEF,IAMM,oBAOA,yBAAyB,OAC9B,SACA,SACA,YACqB;AAAA,EACrB,MAAM,UAAU,MAAM,KAAK,QAAQ,SAAS,kBAAkB,CAAC;AAAA,EAC/D,IAAI,QAAQ,WAAW;AAAA,IAAG,OAAO;AAAA,EAEjC,IAAI,SAAS;AAAA,EACb,MAAM,QAAkB,CAAC;AAAA,EACzB,WAAW,SAAS,SAAS;AAAA,IAC5B,MAAM,aAAa,MAAM;AAAA,IACzB,IAAI,eAAe;AAAA,MAAW;AAAA,IAC9B,MAAM,QAAQ,MAAM,SAAS;AAAA,IAC7B,MAAM,MAAM,QAAQ,MAAM,GAAG;AAAA,IAC7B,MAAM,KAAK,QAAQ,MAAM,QAAQ,KAAK,CAAC;AAAA,IAEvC,MAAM,WAAW,WAAW,UAAU,IACnC,aACA,SAAQ,SAAS,UAAU;AAAA,IAC9B,IAAI,QAAQ,IAAI,QAAQ,KAAK,CAAC,YAAW,QAAQ,GAAG;AAAA,MACnD,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,MAAM,EAAE;AAAA,MAChD,SAAS;AAAA,MACT;AAAA,IACD;AAAA,IAEA,MAAM,cAAc,IAAI,IAAI,OAAO;AAAA,IACnC,YAAY,IAAI,QAAQ;AAAA,IACxB,MAAM,WAAW,MAAM,SAAS,UAAU,OAAO;AAAA,IACjD,MAAM,KACL,MAAM,uBACL,UACA,SAAQ,QAAQ,GAChB,WACD,CACD;AAAA,IACA,SAAS;AAAA,EACV;AAAA,EACA,MAAM,KAAK,QAAQ,MAAM,MAAM,CAAC;AAAA,EAEhC,OAAO,MAAM,KAAK,EAAE;AAAA,GAGR,2BAA2B,OACvC,UACA,WACI;AAAA,EACJ,IAAI,CAAC,0BAA0B,QAAQ,GAAG;AAAA,IACzC,MAAM,MAAM,MAAM,SAAS,UAAU,OAAO;AAAA,IAC5C,MAAM,YAAY,MAAM,WAAW,KAAK,UAAU,MAAM;AAAA,IAMxD,OAAO,uBACN,WACA,SAAQ,QAAQ,GAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,CACnB;AAAA,EACD;AAAA,EAEA,MAAM,WAAW,MAAM,mBACtB,UACA,WACA,WACA,MACD;AAAA,EAGA,OAAO,uBACN,UACA,SAAQ,QAAQ,GAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,CACnB;AAAA,GAwBK,wBAAwB,CAC7B,SACA,SACA,YACY;AAAA,EACZ,OAAO,QAAQ,QAAQ,oBAAoB,CAAC,OAAO,eAAe;AAAA,IACjE,MAAM,WAAW,WAAW,UAAU,IACnC,aACA,SAAQ,SAAS,UAAU;AAAA,IAC9B,IAAI,QAAQ,IAAI,QAAQ;AAAA,MAAG,OAAO;AAAA,IAClC,IAAI,CAAC,YAAW,QAAQ;AAAA,MAAG,OAAO;AAAA,IAElC,MAAM,cAAc,IAAI,IAAI,OAAO;AAAA,IACnC,YAAY,IAAI,QAAQ;AAAA,IACxB,MAAM,WAAW,cAAa,UAAU,OAAO;AAAA,IAE/C,OAAO,sBAAsB,UAAU,SAAQ,QAAQ,GAAG,WAAW;AAAA,GACrE;AAAA,GAGW,+BAA+B,CAC3C,UACA,WACI;AAAA,EACJ,MAAM,cAAc,cAAa,UAAU,OAAO;AAAA,EAClD,MAAM,WAAW,iBAAiB,QAAQ;AAAA,EAC1C,IAAI,QAAQ,SAAS;AAAA,IACpB,MAAM,IAAI,MACT,qBAAqB,gDACtB;AAAA,EACD;AAAA,EACA,IAAI,aAAa,UAAU,aAAa,QAAQ;AAAA,IAC/C,MAAM,UAAU,eAAe,QAAQ,QAAQ;AAAA,IAC/C,MAAM,cAAc,QAAQ,kBAAkB;AAAA,IAC9C,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,OAAO,wBAA+C,WAAW;AAAA,MAChE,MAAM;AAAA,MACP,MAAM,uBAAuB,aAAa,QAAQ;AAAA;AAAA,IAGnD,MAAM,WAAW,mBAChB,aACA,QAAQ,cACT;AAAA,IACA,MAAM,YAAY,mBAAmB,UAAU,QAAQ,SAAS;AAAA,IAChE,MAAM,SAAS,KAAK,cAAc,UAAU;AAAA,MAC3C,WAAW;AAAA,QACV,mBAAmB,UAAU,WAAW,UAAU,MAAM;AAAA,MACzD;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,QAAQ,aAAa,SAAS,aAAa;AAAA,MAC3C,KAAK,IAAI,IAAI,cAAc,SAAQ,QAAQ,CAAC,EAAE,IAAI;AAAA,IACnD,CAAC;AAAA,IAQD,MAAM,aAAc,OAAO,cAAc,CAAC;AAAA,IAC1C,WAAW,OAAO,YAAY;AAAA,MAC7B,IAAI,IAAI,aAAa;AAAA,QAAS;AAAA,MAC9B,MAAM,MAAM,cAAc,GAAG;AAAA,MAC7B,IAAI,SAAQ,GAAG,MAAM,SAAQ,QAAQ;AAAA,QAAG;AAAA,MACxC,iBAAiB,UAAU,GAAG;AAAA,IAC/B;AAAA,IAIA,OAAO,sBACN,OAAO,KACP,SAAQ,QAAQ,GAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,CACnB;AAAA,EACD;AAAA,EACA,IAAI,aAAa,QAAQ;AAAA,IACxB,MAAM,IAAI,MACT,qBAAqB,2IACtB;AAAA,EACD;AAAA,EACA,IAAI,aAAa,UAAU;AAAA,IAC1B,MAAM,IAAI,MACT,qBAAqB,+IACtB;AAAA,EACD;AAAA,EAEA,OAAO,sBACN,aACA,SAAQ,QAAQ,GAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,CACnB;AAAA;AAAA;AAAA,EA9oCK,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,iCAAiC;AAAA,EACjC,yBAAyB;AAAA,EACzB,qBAAqB,IAAI,SAC9B,aACA,0BACD;AAAA,EACM,sBAAsB,IAAI,SAC/B,aACA,2BACD;AAAA,EACM,iBAAiB,cAAc,MAAK,QAAQ,IAAI,GAAG,cAAc,CAAC;AAAA,EAunBlE,uBAAuB,IAAI;AAAA,EAC3B,oBAAoB,IAAI;AAAA,EAkSjB,0BAA0B,8BAA8B;AAAA,EAkC/D,qBAAqB;AAAA;;;AC79B3B,kBAAS,mBAAO;AAChB,8BAAmB,qBAAS,kBAAS,mBAAM,sBAAU;AAAA,IAM/C,kBAEA,sBACA,yBAEA,YAKA,2BAA2B,CAAC,MAAc,WAAmB;AAAA,EAClE,MAAM,aAAa,UAAS,SAAQ,IAAI,GAAG,MAAM,EAAE,QAAQ,OAAO,GAAG;AAAA,EAErE,OAAO,WAAW,WAAW,GAAG,IAAI,aAAa,KAAK;AAAA,GAGjD,0BAA0B,CAC/B,SACA,KACA,gBACA,UACI;AAAA,EACJ,WAAW,SAAS,SAAS;AAAA,IAC5B,MAAM,YAAY,MAAK,KAAK,MAAM,IAAI;AAAA,IACtC,IAAI,MAAM,YAAY;AAAA,MAAG,MAAM,KAAK,SAAS;AAAA,IAE7C,IAAI,MAAM,OAAO,KAAK,MAAM,SAAS,gBAAgB;AAAA,MACpD,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,uBAAuB,OAAO,MAAgB,mBAA2B;AAAA,EAC9E,IAAI,KAAK,WAAW;AAAA,IAAG,OAAO;AAAA,EAE9B,MAAM,YAAsB,CAAC;AAAA,EAC7B,MAAM,aAAa,MAAM,QAAQ,IAChC,KAAK,IAAI,OAAO,SAAS;AAAA,IACxB;AAAA,IACA,SAAS,MAAM,SAAQ,KAAK;AAAA,MAC3B,UAAU;AAAA,MACV,eAAe;AAAA,IAChB,CAAC;AAAA,EACF,EAAE,CACH;AAAA,EAEA,aAAa,KAAK,aAAa,YAAY;AAAA,IAC1C,MAAM,QAAQ,wBACb,SACA,KACA,gBACA,SACD;AAAA,IACA,IAAI;AAAA,MAAO,OAAO;AAAA,EACnB;AAAA,EAEA,OAAO,qBAAqB,WAAW,cAAc;AAAA,GAGhD,2BAA2B,OAChC,YACA,mBACI,qBAAqB,CAAC,UAAU,GAAG,cAAc,GAEhD,+BAA+B,CAAC,eACrC,SAAS,UAAU,EAAE,QAAQ,+BAA+B,EAAE,GAEzD,4BAA4B,OAAO,eAAuB;AAAA,EAC/D,MAAM,aAAa,wBAAwB,IAAI,UAAU;AAAA,EACzD,IAAI,eAAe,WAAW;AAAA,IAC7B,OAAO;AAAA,EACR;AAAA,EAEA,IACC,CAAC,WAAW,SACX,GAAG,MAAK,QAAQ,IAAI,GAAG,OAAO,IAAI,QAAQ,aAAa,UAAU,KAAK,KACvE,KACA,CAAC,WAAW,SAAS,SAAS,GAC7B;AAAA,IACD,wBAAwB,IAAI,YAAY,UAAU;AAAA,IAElD,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,qBAAqB,MAAM,yBAChC,MAAK,QAAQ,IAAI,GAAG,KAAK,GACzB,6BAA6B,UAAU,CACxC;AAAA,EACA,MAAM,WAAW,sBAAsB;AAAA,EACvC,wBAAwB,IAAI,YAAY,QAAQ;AAAA,EAEhD,OAAO;AAAA,GAGF,wBAAwB,OAAO,MAAc,SAAiB;AAAA,EACnE,IAAI,CAAC,KAAK,WAAW,GAAG,GAAG;AAAA,IAC1B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,WAAW,SAAQ,SAAQ,IAAI,GAAG,IAAI;AAAA,EAC5C,MAAM,aAAa;AAAA,IAClB;AAAA,IACA,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,MAAK,UAAU,UAAU;AAAA,IACzB,MAAK,UAAU,UAAU;AAAA,IACzB,MAAK,UAAU,WAAW;AAAA,IAC1B,MAAK,UAAU,WAAW;AAAA,IAC1B,MAAK,UAAU,YAAY;AAAA,EAC5B;AAAA,EAEA,MAAM,eAAe,MAAM,QAAQ,IAClC,WAAW,IAAI,CAAC,cAAc,IAAI,KAAK,SAAS,EAAE,OAAO,CAAC,CAC3D;AAAA,EACA,MAAM,aAAa,aAAa,QAAQ,IAAI;AAAA,EAE5C,OAAO,cAAc,IAAK,WAAW,eAAe,OAAQ;AAAA,GAGvD,uBAAsB,CAAC,eAAuB;AAAA,EACnD,MAAM,qBAAqB,UAAS,QAAQ,IAAI,GAAG,UAAU,EAAE,QAC9D,OACA,GACD;AAAA,EACA,MAAM,uBAAuB,mBAAmB,WAAW,IAAI,IAC5D,WAAW,QAAQ,WAAW,GAAG,IACjC;AAAA,EAEH,OAAO,MAAK,kBAAiB,GAAG,gCAAgC;AAAA,GAG3D,sBAAsB,OAAO,MAAc,SAAiB;AAAA,EACjE,IAAI,CAAC,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,GAAG,GAAG;AAAA,IACnD,MAAM,WAAW,qBAAqB,IAAI;AAAA,IAE1C,OAAO,YAAY,SAAS,SAAS,SAAS,IAAI,WAAW;AAAA,EAC9D;AAAA,EAEA,IAAI,KAAK,WAAW,GAAG,GAAG;AAAA,IACzB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,CAAC,KAAK,WAAW,GAAG,GAAG;AAAA,IAC1B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,eAAe,SAAQ,SAAQ,IAAI,GAAG,IAAI;AAAA,EAChD,IAAI,SAAQ,YAAY,MAAM,WAAW;AAAA,IACxC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,YAAY,GAAG;AAAA,EACrB,IAAK,MAAM,IAAI,KAAK,SAAS,EAAE,OAAO,MAAO,MAAM;AAAA,IAClD,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA,GAGF,iBAAiB,OAAO,MAAc,YAAoB;AAAA,EAC/D,MAAM,aAAa,IAAI,KAAK,IAAI;AAAA,EAChC,MAAM,SAAS,MAAM,WAAW,OAAO;AAAA,EACvC,IAAI,QAAQ;AAAA,IACX,MAAM,iBAAiB,MAAM,WAAW,KAAK;AAAA,IAC7C,IAAI,mBAAmB,SAAS;AAAA,MAC/B;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,IAAI,MAAM,MAAM,OAAO;AAAA,GAGjB,4BAA4B,OAAO,eAAuB;AAAA,EACtE,MAAM,mBAAmB,qBAAoB,IAAI,UAAU;AAAA,EAC3D,IAAI,kBAAkB;AAAA,IACrB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,uBAAuB,MAAM,0BAA0B,UAAU;AAAA,EACvE,MAAM,SAAS,MAAM,IAAI,KAAK,UAAU,EAAE,KAAK;AAAA,EAC/C,QAAQ,SAAS,eAAe,MAAa;AAAA,EAC7C,MAAM,qBAAqB,2BAA2B,MAAM;AAAA,EAC5D,MAAM,gBAAgB,wBACrB,mBAAmB,MACnB,QACD;AAAA,EACA,MAAM,eAAe,MAAM,WAC1B,cAAc,MACd,8BAA8B,CAC/B;AAAA,EACA,IAAI,aACH,WAAW,SAAS,KAAK,KAAK,WAAW,SAAS,YAAY,IAC3D,WAAW,cAAc,aAAa,IAAI,IAC1C,aAAa;AAAA,EACjB,MAAM,mBAAmB,MAAM,KAC9B,WAAW,SAAS,0BAA0B,CAC/C,EACE,IAAI,CAAC,UAAU,MAAM,EAAE,EACvB,OAAO,CAAC,UAA2B,UAAU,SAAS;AAAA,EACxD,MAAM,uBAAuB,MAAM,QAAQ,IAC1C,iBAAiB,IAAI,CAAC,SACrB,oBAAoB,MAAM,oBAAoB,CAC/C,CACD;AAAA,EACA,MAAM,wBAAwB,MAAM,QAAQ,IAC3C,iBAAiB,IAAI,CAAC,SACrB,sBAAsB,MAAM,oBAAoB,CACjD,CACD;AAAA,EACA,MAAM,mBAAmB,IAAI;AAAA,EAC7B,MAAM,uBAAuB,IAAI;AAAA,EAEjC,MAAM,mBAAmB,MAAM,QAAQ,IACtC,iBAAiB,IAAI,OAAO,MAAM,UAAU;AAAA,IAC3C,MAAM,gBAAgB,qBAAqB;AAAA,IAC3C,IAAI,CAAC,QAAQ,CAAC;AAAA,MAAe,OAAO;AAAA,IAEpC,OAAO;AAAA,MACN,cAAc,MAAM,0BAA0B,aAAa;AAAA,MAC3D;AAAA,MACA;AAAA,IACD;AAAA,GACA,CACF;AAAA,EAEA,WAAW,UAAU,kBAAkB;AAAA,IACtC,IAAI,CAAC;AAAA,MAAQ;AAAA,IACb,iBAAiB,IAAI,OAAO,MAAM,OAAO,YAAY;AAAA,IACrD,iBAAiB,IAAI,OAAO,eAAe,OAAO,YAAY;AAAA,EAC/D;AAAA,EAEA,SAAS,QAAQ,EAAG,QAAQ,iBAAiB,QAAQ,SAAS,GAAG;AAAA,IAChE,MAAM,OAAO,iBAAiB;AAAA,IAC9B,MAAM,uBAAuB,sBAAsB;AAAA,IACnD,IAAI,CAAC,QAAQ,CAAC;AAAA,MAAsB;AAAA,IACpC,IAAI,qBAAqB;AAAA,MAAQ;AAAA,IAEjC,qBAAqB,IACpB,MACA,yBACC,qBAAoB,UAAU,GAC9B,oBACD,CACD;AAAA,EACD;AAAA,EAEA,YAAY,MAAM,yBAAyB,sBAAsB;AAAA,IAChE,aAAa,WAAW,WAAW,MAAM,oBAAoB;AAAA,EAC9D;AAAA,EAEA,IAAI,eAAe,QAAQ,YAAY;AAAA,IACtC,KAAK;AAAA,IACL,cAAc;AAAA,MACb,OAAO,mBAAmB,eAAe,cAAc;AAAA,IACxD;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,EACX,CAAC,EAAE,GAAG;AAAA,EAEN,YAAY,MAAM,sBAAsB,kBAAkB;AAAA,IACzD,eAAe,aAAa,WAC3B,MACA,yBACC,qBAAoB,UAAU,GAC9B,iBACD,CACD;AAAA,EACD;AAAA,EAEA,YAAY,MAAM,yBAAyB,sBAAsB;AAAA,IAChE,eAAe,aAAa,WAAW,MAAM,oBAAoB;AAAA,EAClE;AAAA,EAEA,MAAM,qBAAqB,qBAAoB,UAAU;AAAA,EACzD,MAAM,OAAM,SAAQ,kBAAkB,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EAC5D,MAAM,eAAe,oBAAoB,YAAY;AAAA,EACrD,qBAAoB,IAAI,YAAY,kBAAkB;AAAA,EAEtD,OAAO;AAAA;AAAA;AAAA,EAhSR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEM,mBAAkB,MAAK,QAAQ,IAAI,GAAG,eAAe,WAAW,QAAQ;AAAA,EAExE,uBAAsB,IAAI;AAAA,EAC1B,0BAA0B,IAAI;AAAA,EAE9B,aAAa,IAAI,IAAI,WAAW;AAAA,IACrC,QAAQ;AAAA,IACR,QAAQ;AAAA,EACT,CAAC;AAAA;;;AChBD;AAAA,IAKa,SAAS,CAAC,SACtB,SAAS,MAAM,EAAE,gBAAgB,MAAM,CAAC,GAAG,OAAO,KAAK;AAAA;;;;;;;ICJlD,oBAAoB,YAAY;AAAA,EACrC,OAAO,UAAU,cAAc,MAAM,QAAQ,IAAI;AAAA,IACzC;AAAA,IACA;AAAA,EACR,CAAC;AAAA,EACQ,sBAAa,MAAM,UAAU;AAAA,EAEtC,OAAO;AAAA,GAGJ,iBAES,kBAAkB,MAAM;AAAA,EACpC,oBAAoB,kBAAkB;AAAA,EAEtC,OAAO;AAAA;;;ACjBR,yBAAS;AACT,kBAAS;AACT,oBAAS,kBAAS,mBAAM,sBAAU;AAClC;AAAA,IAKM,6BAA6B,GAE7B,kBAEA,sBAEA,aAEA,4BAA2B,CAAC,MAAc,WAAmB;AAAA,EAClE,MAAM,aAAa,UAAS,SAAQ,IAAI,GAAG,MAAM,EAAE,QAAQ,OAAO,GAAG;AAAA,EAErE,OAAO,WAAW,WAAW,GAAG,IAAI,aAAa,KAAK;AAAA,GAGjD,uBAAsB,CAAC,eAAuB;AAAA,EACnD,MAAM,qBAAqB,UAAS,QAAQ,IAAI,GAAG,UAAU,EAAE,QAC9D,OACA,GACD;AAAA,EACA,MAAM,uBAAuB,mBAAmB,WAAW,IAAI,IAC5D,WAAW,QAAQ,WAAW,GAAG,IACjC;AAAA,EAEH,OAAO,MAAK,kBAAiB,GAAG,gCAAgC;AAAA,GAG3D,kBAAiB,OAAO,MAAc,YAAoB;AAAA,EAC/D,MAAM,aAAa,IAAI,KAAK,IAAI;AAAA,EAChC,IAAI,MAAM,WAAW,OAAO,GAAG;AAAA,IAC9B,MAAM,iBAAiB,MAAM,WAAW,KAAK;AAAA,IAC7C,IAAI,mBAAmB;AAAA,MAAS;AAAA,EACjC;AAAA,EAEA,MAAM,IAAI,MAAM,MAAM,OAAO;AAAA,GAGxB,eAAe,CAAC,SACrB,KAAK,QAAQ,oBAAoB,gBAAgB,GAE5C,kBAAkB,CAAC,SAAiB;AAAA,EACzC,MAAM,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,EAC7B,MAAM,eAAe,IAAI;AAAA,EACzB,MAAM,iBAAiB;AAAA,EAEvB,MAAM,QAAQ,CAAC,SAAS;AAAA,IACvB,MAAM,QAAQ,KAAK,MAAM,cAAc;AAAA,IACvC,IAAI,QAAQ;AAAA,MACX,MAAM,GACJ,MAAM,GAAG,EACT,QAAQ,CAAC,oBACT,aAAa,IAAI,gBAAgB,KAAK,CAAC,CACxC;AAAA,GACF;AAAA,EAED,MAAM,cAAc,MAAM,OAAO,CAAC,SAAS,CAAC,eAAe,KAAK,IAAI,CAAC;AAAA,EAErE,OAAO,aAAa,OACjB;AAAA,IACA,YAAY,CAAC,GAAG,YAAY,EAAE,KAAK,IAAI;AAAA,IACvC,GAAG;AAAA,EACJ,EAAE,KAAK;AAAA,CAAI,IACV,YAAY,KAAK;AAAA,CAAI;AAAA,GAGnB,4BAA4B,CAAC,eAClC,MAAM,KAAK,WAAW,SAAS,oCAAoC,CAAC,EAClE,IAAI,CAAC,UAAU,MAAM,EAAE,EACvB,OACA,CAAC,eACA,OAAO,eAAe,YACtB,WAAW,WAAW,GAAG,KACzB,WAAW,SAAS,MAAM,CAC5B,GAUW,yBAAyB,OAAO,eAAuB;AAAA,EACnE,MAAM,mBAAmB,qBAAoB,IAAI,UAAU;AAAA,EAC3D,IAAI;AAAA,IAAkB,OAAO;AAAA,EAE7B,MAAM,WAAW,MAAM,gBAAgB;AAAA,EACvC,MAAM,SAAS,MAAM,IAAI,KAAK,UAAU,EAAE,KAAK;AAAA,EAC/C,QAAQ,eAAe,SAAS,MAAM,QAAQ,EAAE,UAAU,WAAW,CAAC;AAAA,EACtE,MAAM,cAAc,IAAI,KAAK,UAAU,EACrC,SAAS,aAAa,EACtB,MAAM,GAAG,0BAA0B;AAAA,EAErC,MAAM,YAAY,WAAW,UAAU,WAAW;AAAA,EAClD,MAAM,iBAAiB,YACpB,SAAS,cAAc,YAAY;AAAA,IACnC,IAAI;AAAA,MACH,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU,CAAC,SACV,OAAO,IAAI,IAAI,cAAa,MAAM,OAAO,IAAI;AAAA,IAC/C;AAAA,IACA,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAC,IACA,EAAE,UAAU,CAAC,GAAG,SAAS,qBAAqB;AAAA,EAEjD,MAAM,aAAa,WAAW,WAC3B,SAAS,gBAAgB;AAAA,IACzB,iBAAiB;AAAA,MAChB,iBAAiB,eAAe;AAAA,MAChC,mBAAmB,CAAC,YAAY;AAAA,MAChC,mBAAmB;AAAA,MACnB,iBAAiB,CAAC,QAAQ,QAAQ;AAAA,IACnC;AAAA,IACA,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,QAAQ,WAAW,OAAO,KACzB,CAAC,eAAe,WAAW,MAC5B;AAAA,IACA,QAAQ,WAAW,SAAS;AAAA,IAC5B,KAAK;AAAA,IACL,YAAY,WAAW;AAAA,EACxB,CAAC,EAAE,OACF;AAAA,EAEH,MAAM,mBAAmB,0BAA0B,eAAe,OAAO;AAAA,EACzE,MAAM,mBAAmB,MAAM,QAAQ,IACtC,iBAAiB,IAAI,OAAO,oBAAoB;AAAA,IAC/C,cAAc,MAAM,uBACnB,SAAQ,SAAQ,UAAU,GAAG,cAAc,CAC5C;AAAA,IACA,MAAM;AAAA,EACP,EAAE,CACH;AAAA,EAEA,MAAM,iBAAiB,aAAa,eAAe,OAAO;AAAA,EAC1D,MAAM,mBAAmB,YAAW,cAAc,cAAc;AAAA,EAEhE,MAAM,YAAY,gBACjB;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,EAAE,KAAK;AAAA,CAAI,CACZ;AAAA,EAEA,MAAM,qBAAqB,qBAAoB,UAAU;AAAA,EACzD,IAAI,YAAY;AAAA,EAChB,WAAW,SAAS,kBAAkB;AAAA,IACrC,YAAY,UAAU,WACrB,MAAM,MACN,0BAAyB,oBAAoB,MAAM,YAAY,CAChE;AAAA,EACD;AAAA,EAEA,MAAM,OAAM,SAAQ,kBAAkB,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EAC5D,MAAM,gBAAe,oBAAoB,SAAS;AAAA,EAClD,qBAAoB,IAAI,YAAY,kBAAkB;AAAA,EAEtD,OAAO;AAAA;AAAA;AAAA,EArKR;AAAA,EACA;AAAA,EAKM,mBAAkB,MAAK,QAAQ,IAAI,GAAG,eAAe,WAAW,KAAK;AAAA,EAErE,uBAAsB,IAAI;AAAA,EAE1B,cAAa,IAAI,WAAW,EAAE,QAAQ,MAAM,QAAQ,UAAU,CAAC;AAAA;;;ICFxD,4BAA4B,CACxC,OACA,cAC6B;AAAA,EAC7B,kBAAkB,MAAM;AAAA,EACxB,kBAAkB,MAAM;AAAA,EACxB,gBAAgB,MAAM,WAAW;AAAA,EACjC,eAAe;AAAA,KACX,WAAW,EAAE,kBAAkB,SAAS,IAAI,CAAC;AAAA,EACjD,cAAc,qBAAqB,MAAM,KAAK;AAC/C,IAEM,sBAAsB,CAAC,UAC5B,MACE,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,QAAQ,EACxB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM,GAEZ,4BAA4B,CAAC,eACzC,OAAO,QAAQ,UAAU,EACvB,IAAI,EAAE,KAAK,WAAW,GAAG,QAAQ,oBAAoB,KAAK,IAAI,EAC9D,KAAK,GAAG;AAAA;AAAA,EAjCX;AAAA;;;ICmBI,iBAAiB,GACf,8BACA,mCAEA,eAAe,MAAM;AAAA,EAC1B,kBAAkB;AAAA,EAElB,OAAO,UAAU;AAAA,GAaZ,YAAW,CAAC,UACjB,OAAO,UAAU,YAAY,UAAU,MAElC,+BAA+B,CACpC,UACyC,OAAO,UAAU,YAErD,gCAAgC,CACrC,UAC0C,OAAO,UAAU,YAEtD,6BAA6B,CAClC,UAEA,OAAO,UAAU,cAAc,UAAS,KAAK,GAExC,iCAAiC,CACtC,UAC2C,OAAO,UAAU,YAEvD,4BAA4B,CAAC,QAAgB,iBAAyB;AAAA,EAC3E,IAAI,OAAO,WAAW,SAAS;AAAA,IAAG,OAAO,IAAI,IAAI,MAAM,EAAE;AAAA,EACzD,IAAI,OAAO,WAAW,GAAG;AAAA,IAAG,OAAO,IAAI,IAAI,QAAQ,YAAY,EAAE;AAAA,EAEjE,OAAO;AAAA,GAGF,qCAAqC,OAC1C,uBACI;AAAA,EACJ,MAAM,qBACL,MAAM,0BAA0B,kBAAkB;AAAA,EACnD,MAAM,eAAe,MAAa;AAAA,EAElC,OAAO,aAAa,eAAe,aAAa,UAAU;AAAA,GAGrD,2BAA2B,OAAO,uBAA+B;AAAA,EACtE,MAAM,uBACL,kCAAkC,IAAI,kBAAkB;AAAA,EACzD,IAAI,sBAAsB;AAAA,IACzB,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,cAAc,mCAAmC,kBAAkB;AAAA,EACzE,kCAAkC,IAAI,oBAAoB,WAAW;AAAA,EAErE,OAAO;AAAA,GAGF,6BAA6B,OAAO,uBAA+B;AAAA,EACxE,IAAI,mBAAmB,SAAS,SAAS,GAAG;AAAA,IAC3C,OAAO,0BAA0B,kBAAkB;AAAA,EACpD;AAAA,EACA,IAAI,mBAAmB,SAAS,MAAM,GAAG;AAAA,IACxC,OAAO,uBAAuB,kBAAkB;AAAA,EACjD;AAAA,EAEA,OAAO;AAAA,GAGF,4BAA4B,OACjC,mBACA,eACI;AAAA,EACJ,MAAM,qBAAqB,kBAAkB,WAAW,GAAG,IACxD,IAAI,IAAI,mBAAmB,YAAY,GAAG,EAAE,WAC5C;AAAA,EACH,MAAM,eAAe,MAAM,2BAA2B,kBAAkB;AAAA,EACxE,MAAM,eAAe,MAAa;AAAA,EAElC,IAAI,cAAc,eAAe,aAAa,cAAc,cAAc;AAAA,IACzE,OAAO,aAAa;AAAA,EACrB;AAAA,EAEA,OAAO,aAAa,eAAe,aAAa,UAAU;AAAA,GAGrD,yBAAyB,OAAO,cAAuB;AAAA,EAC5D,MAAM,iBAAiB,wBAAwB,SAAS;AAAA,EACxD,MAAM,qBAAqB,gBAAgB,SACxC,0BAA0B,eAAe,QAAQ,YAAY,GAAG,IAChE;AAAA,EACH,IAAI,oBAAoB,SAAS,SAAS,GAAG;AAAA,IAC5C,OAAO,yBAAyB,kBAAkB;AAAA,EACnD;AAAA,EACA,IAAI,oBAAoB;AAAA,IACvB,OAAO,0BACN,oBACA,gBAAgB,MACjB;AAAA,EACD;AAAA,EAEA,MAAM,oBAAoB,mBAAmB,SAAS;AAAA,EACtD,IAAI,OAAO,sBAAsB,UAAU;AAAA,IAC1C,OAAO;AAAA,EACR;AAAA,EAEA,OAAO,0BAA0B,iBAAiB;AAAA,GAG7C,+BAA+B,OAAO,cAAuB;AAAA,EAClE,MAAM,0BAA0B,6BAA6B,IAAI,SAAS;AAAA,EAC1E,IAAI,yBAAyB;AAAA,IAC5B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,oBAAoB,uBAAuB,SAAS;AAAA,EAE1D,6BAA6B,IAAI,WAAW,iBAAiB;AAAA,EAE7D,OAAO;AAAA,GAGF,oCAAoC,OAAO,cAAuB;AAAA,EACvE,MAAM,oBAAoB,MAAM,6BAA6B,SAAS;AAAA,EACtE,IAAI,CAAC,6BAA6B,iBAAiB,GAAG;AAAA,IACrD,MAAM,IAAI,MACT,uDACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,qCAAqC,OAAO,cAAuB;AAAA,EACxE,MAAM,oBAAoB,MAAM,6BAA6B,SAAS;AAAA,EACtE,IAAI,CAAC,8BAA8B,iBAAiB,GAAG;AAAA,IACtD,MAAM,IAAI,MACT,yDACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGF,kCAAkC,OAAO,cAAuB;AAAA,EACrE,MAAM,oBAAoB,MAAM,6BAA6B,SAAS;AAAA,EACtE,IAAI,CAAC,2BAA2B,iBAAiB,GAAG;AAAA,IACnD,MAAM,IAAI,MAAM,mDAAmD;AAAA,EACpE;AAAA,EAEA,OAAO;AAAA,GAGF,kCAAkC,OACvC,oBACA,eACI;AAAA,EACJ,MAAM,mBACL,MAAM,2BAA2B,kBAAkB;AAAA,EACpD,MAAM,eAAe,MAAa;AAAA,EAClC,IAAI,cAAc,eAAe,aAAa,cAAc,cAAc;AAAA,IACzE,OAAO,aAAa;AAAA,EACrB;AAAA,EAEA,OAAO,aAAa,eAAe,aAAa,UAAU;AAAA,GAGrD,sCAAsC,OAAO,cAAuB;AAAA,EAKzE,MAAM,iBAAiB,wBAAwB,SAAS;AAAA,EACxD,MAAM,qBAAqB,gBAAgB,SACxC,0BAA0B,eAAe,QAAQ,YAAY,GAAG,IAChE;AAAA,EACH,MAAM,oBAAoB,qBACvB,MAAM,gCACN,oBACA,gBAAgB,MACjB,IACC,MAAM,6BAA6B,SAAS;AAAA,EAC/C,IAAI,CAAC,+BAA+B,iBAAiB,GAAG;AAAA,IACvD,MAAM,IAAI,MACT,2DACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,GAGK,qBAAqB,OACjC,UACA,UACI;AAAA,EACJ,MAAM,SAAS,MAAM,mBAAmB,UAAU,KAAK;AAAA,EAEvD,OAAO,QAAQ,0BAA0B,OAAO,UAAU,KAAK,OAAO;AAAA,GAE1D,qBAAqB,OACjC,UACA,UACI;AAAA,EACJ,MAAM,WAAW,aAAa;AAAA,EAC9B,MAAM,aAAa,0BAA0B,KAAK;AAAA,EAElD,IAAI,MAAM,cAAc,SAAS;AAAA,IAChC,MAAM,QAAQ,SAAS,QAAQ,MAAM;AAAA,IACrC,IAAI,CAAC,OAAO;AAAA,MACX,MAAM,IAAI,MACT,qBAAqB,MAAM,qDAC5B;AAAA,IACD;AAAA,IACA,MAAM,YAAY,MAAM,kCAAkC,KAAK;AAAA,IAC/D,MAAM,OAAO,MAAM,wBAAwB,WAAW,MAAM,KAAK;AAAA,IAEjE,OAAO,EAAE,YAAY,KAAK;AAAA,EAC3B;AAAA,EAEA,IAAI,MAAM,cAAc,UAAU;AAAA,IACjC,MAAM,QAAQ,SAAS,SAAS,MAAM;AAAA,IACtC,IAAI,CAAC,OAAO;AAAA,MACX,MAAM,IAAI,MACT,qBAAqB,MAAM,sDAC5B;AAAA,IACD;AAAA,IACA,MAAM,YAAY,MAAM,mCAAmC,KAAK;AAAA,IAChE,MAAM,OAAO,MAAM,yBAAyB,WAAW,MAAM,KAAK;AAAA,IAElE,OAAO,EAAE,YAAY,KAAK;AAAA,EAC3B;AAAA,EAEA,IAAI,MAAM,cAAc,OAAO;AAAA,IAC9B,MAAM,QAAQ,SAAS,MAAM,MAAM;AAAA,IACnC,IAAI,CAAC,OAAO;AAAA,MACX,MAAM,IAAI,MACT,qBAAqB,MAAM,mDAC5B;AAAA,IACD;AAAA,IACA,MAAM,YAAY,MAAM,gCAAgC,KAAK;AAAA,IAC7D,MAAM,OAAO,MAAM,sBAAsB,WAAW,MAAM,KAAK;AAAA,IAE/D,OAAO,EAAE,YAAY,KAAK;AAAA,EAC3B;AAAA,EAEA,IAAI,MAAM,cAAc,WAAW;AAAA,IAClC,MAAM,QAAQ,SAAS,UAAU,MAAM;AAAA,IACvC,IAAI,CAAC,OAAO;AAAA,MACX,MAAM,IAAI,MACT,qBAAqB,MAAM,uDAC5B;AAAA,IACD;AAAA,IACA,MAAM,YAAY,MAAM,oCAAoC,KAAK;AAAA,IACjE,MAAM,OAAO,MAAM,2BAClB,WACA,MAAM,OACN,QACD;AAAA,IAEA,OAAO;AAAA,MACN,YAAY;AAAA,WACR,0BAA0B,OAAO,QAAQ;AAAA,MAC7C;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,IAAI,MACT,cAAc,MAAM,kDACrB;AAAA;AAAA;AAAA,EAxSD;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EAGM,+BAA+B,IAAI;AAAA,EACnC,oCAAoC,IAAI;AAAA;;;ACtB9C;AACA;;;ACDA,IAAM,kBAAkB,CAAC,gBAAgB;AAAA,EACvC,IAAI;AAAA,EACJ,MAAM,4BAA4B,IAAI;AAAA,EACtC,MAAM,WAAW,CAAC,SAAS,YAAY;AAAA,IACrC,MAAM,YAAY,OAAO,YAAY,aAAa,QAAQ,KAAK,IAAI;AAAA,IACnE,IAAI,CAAC,OAAO,GAAG,WAAW,KAAK,GAAG;AAAA,MAChC,MAAM,gBAAgB;AAAA,MACtB,SAAS,WAAW,OAAO,UAAU,OAAO,cAAc,YAAY,cAAc,QAAQ,YAAY,OAAO,OAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC1I,UAAU,QAAQ,CAAC,aAAa,SAAS,OAAO,aAAa,CAAC;AAAA,IAChE;AAAA;AAAA,EAEF,MAAM,WAAW,MAAM;AAAA,EACvB,MAAM,kBAAkB,MAAM;AAAA,EAC9B,MAAM,YAAY,CAAC,aAAa;AAAA,IAC9B,UAAU,IAAI,QAAQ;AAAA,IACtB,OAAO,MAAM,UAAU,OAAO,QAAQ;AAAA;AAAA,EAExC,MAAM,MAAM,EAAE,UAAU,UAAU,iBAAiB,UAAU;AAAA,EAC7D,MAAM,eAAe,QAAQ,YAAY,UAAU,UAAU,GAAG;AAAA,EAChE,OAAO;AAAA;AAET,IAAM,cAAe,CAAC,gBAAgB,cAAc,gBAAgB,WAAW,IAAI;;;AC0PnF,SAAS,OAAO,CAAC,cAAc,QAAQ;AAAA,EACrC,OAAO,IAAI,SAAS,OAAO,OAAO,CAAC,GAAG,cAAc,OAAO,GAAG,IAAI,CAAC;AAAA;;;ACtPrE,IAAM,yBAAyB,MAAM;AAAA,EACpC,WAAW,yBAAyB,CAAC;AAAA,EAErC,OAAO,WAAW;AAAA;AAGnB,IAAM,kBAAkB,MAAM;AAAA,EAC7B,WAAW,0BAA0B,IAAI;AAAA,EAEzC,OAAO,WAAW;AAAA;AAGnB,IAAM,sBAAsB,CAAC,UAC5B,OAAO,UAAU,cAAc,UAAU;AAE1C,IAAM,sBAAsB,CAAmB,UAC9C,OAAO,YACN,OAAO,QAAQ,KAAK,EAAE,OAAO,IAAI,WAAW,oBAAoB,KAAK,CAAC,CACvE;AAED,IAAM,gBAAgB,CACrB,OACA,aACI;AAAA,EACJ,IAAI,CAAC,UAAU;AAAA,IACd;AAAA,EACD;AAAA,EAEA,MAAM,SAAS;AAAA,OACX,MAAM,SAAS;AAAA,OACf;AAAA,EACJ,CAAC;AAAA;AAGF,IAAM,gBAAgB,CACrB,gBACA,eACI,CAAC,GAAG,cAAc,EAAE,OAAO,CAAC,SAAS,KAAK,UAAU,UAAU;AAEnE,IAAM,qBAAqB,CAI1B,SACA,OACA,gBACA,eACI;AAAA,EACJ,MAAM,eAAe,oBAAoB,KAAK;AAAA,EAC9C,uBAAuB,EAAE,WAAW;AAAA,EAEpC,WAAW,aAAa,cAAc,gBAAgB,UAAU,GAAG;AAAA,IAClE,UAAU,sBAAsB,YAAY;AAAA,EAC7C;AAAA;AAGM,IAAM,oBAAoB,CAIhC,SACA,cACA,gBACI;AAAA,EACJ,MAAM,QAAQ,YAAY,QAAQ,cAAc,WAAW,CAAC;AAAA,EAC5D,MAAM,SAAS,gBAAgB;AAAA,EAC/B,MAAM,iBACL,OAAO,IAAI,OAAO,KAAK,IAAI;AAAA,EAC5B,MAAM,kBAAkB,uBAAuB,EAAE;AAAA,EACjD,cAAc,OAAO,eAAe;AAAA,EACpC,IAAI,6BAA6B;AAAA,EAEjC,MAAM,wBAAwB,CAAC,aAAkC;AAAA,IAChE,6BAA6B;AAAA,IAC7B,cAAc,OAAO,QAAQ;AAAA;AAAA,EAG9B,eAAe,IAAI;AAAA,IAClB;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EACD,OAAO,IAAI,SAAS,cAAc;AAAA,EAElC,mBAAmB,SAAS,MAAM,SAAS,GAAG,gBAAgB,KAAK;AAAA,EACnE,MAAM,UAAU,CAAC,UAAU;AAAA,IAC1B,IAAI,4BAA4B;AAAA,MAC/B,6BAA6B;AAAA,MAE7B;AAAA,IACD;AAAA,IAEA,mBAAmB,SAAS,OAAO,gBAAgB,KAAK;AAAA,GACxD;AAAA,EAED,OAAO;AAAA;AAED,IAAM,+BAA+B,CAI3C,OACA,aACI,SAAS,MAAM,gBAAgB,CAAC;AAwB9B,IAAM,kBAAkB,CAC9B,OACA,aACI,SAAS,MAAM,SAAS,CAAC;AAKvB,IAAM,uBAAuB,CAInC,OACA,UACA,aACI;AAAA,EACJ,IAAI,mBAAmB,SAAS,MAAM,SAAS,CAAC;AAAA,EAEhD,OAAO,MAAM,UAAU,CAAC,UAAU;AAAA,IACjC,MAAM,gBAAgB,SAAS,KAAK;AAAA,IACpC,IAAI,OAAO,GAAG,eAAe,gBAAgB,GAAG;AAAA,MAC/C;AAAA,IACD;AAAA,IAEA,mBAAmB;AAAA,IACnB,SAAS,aAAa;AAAA,GACtB;AAAA;",
39
+ "mappings": "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",
40
40
  "debugId": "55637F15C3C090FE64756E2164756E21",
41
41
  "names": []
42
42
  }