{"version":3,"mappings":"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","names":["if_block","node","fn","elseif","hydrating","hydrate_next","anchor","consequent_effect","alternate_effect","condition","UNINITIALIZED","flags","EFFECT_TRANSPARENT","has_branch","set_branch","flag","update_branch","offscreen_fragment","commit","active","inactive","resume_effect","pause_effect","new_condition","mismatch","is_else","read_hydration_instruction","HYDRATION_START_ELSE","remove_nodes","set_hydrate_node","set_hydrating","defer","should_defer_append","target","create_text","branch","batch","current_batch","block","hydrate_node","component","get_component","render_fn","effect","pending_effect","is_bound_this","bound_value","element_or_component","STATE_SYMBOL","bind_this","update","get_value","get_parts","old_parts","parts","render_effect","untrack","queue_micro_task","is_store_binding","capture_store_binding","previous_is_store_binding","prop","props","key","fallback","runes","legacy_mode_flag","PROPS_IS_RUNES","bindable","PROPS_IS_BINDABLE","lazy","PROPS_IS_LAZY_INITIAL","fallback_value","fallback_dirty","get_fallback","setter","is_entry_props","LEGACY_PROPS","get_descriptor","v","initial_value","is_store_sub","e.props_invalid_value","getter","value","PROPS_IS_UPDATED","legacy_parent","mutation","overridden","PROPS_IS_IMMUTABLE","derived","derived_safe_equal","get","parent_effect","active_effect","new_value","proxy","set","is_destroying_effect","DESTROYED","asClassComponent","Svelte4Component","options","#events","#instance","sources","add_source","s","mutable_source","hydrate","mount","flushSync","define_property","next","unmount","event","callback","cb","args","matchers","components","$.prop","$$props","data_0","data_1","$.user_pre_effect","$.user_effect","mounted","navigated","title","onMount","unsubscribe","$.get","$.set","tick","Pyramid_1","Pyramid_0","$$value","$$render","consequent","alternate","consequent_1","consequent_2","root","Root","nodes","__vitePreload","server_loads","dictionary","hooks","error","decoders","k","hash","decode","type"],"ignoreList":[0,1,2,3,4,5],"sources":["../../../../../../node_modules/svelte/src/internal/client/dom/blocks/if.js","../../../../../../node_modules/svelte/src/internal/client/dom/blocks/svelte-component.js","../../../../../../node_modules/svelte/src/internal/client/dom/elements/bindings/this.js","../../../../../../node_modules/svelte/src/internal/client/reactivity/store.js","../../../../../../node_modules/svelte/src/internal/client/reactivity/props.js","../../../../../../node_modules/svelte/src/legacy/legacy-client.js","../../../../../generated/client-optimized/matchers.js","../../../../../generated/root.svelte","../../../../../generated/root.js","../../../../../generated/client-optimized/app.js"],"sourcesContent":["/** @import { Effect, TemplateNode } from '#client' */\n/** @import { Batch } from '../../reactivity/batch.js'; */\nimport { EFFECT_TRANSPARENT } from '#client/constants';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\n\tread_hydration_instruction,\n\tremove_nodes,\n\tset_hydrate_node,\n\tset_hydrating\n} from '../hydration.js';\nimport { block, branch, pause_effect, resume_effect } from '../../reactivity/effects.js';\nimport { HYDRATION_START_ELSE, UNINITIALIZED } from '../../../../constants.js';\nimport { create_text, should_defer_append } from '../operations.js';\nimport { current_batch } from '../../reactivity/batch.js';\n\n// TODO reinstate https://github.com/sveltejs/svelte/pull/15250\n\n/**\n * @param {TemplateNode} node\n * @param {(branch: (fn: (anchor: Node) => void, flag?: boolean) => void) => void} fn\n * @param {boolean} [elseif] True if this is an `{:else if ...}` block rather than an `{#if ...}`, as that affects which transitions are considered 'local'\n * @returns {void}\n */\nexport function if_block(node, fn, elseif = false) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar anchor = node;\n\n\t/** @type {Effect | null} */\n\tvar consequent_effect = null;\n\n\t/** @type {Effect | null} */\n\tvar alternate_effect = null;\n\n\t/** @type {typeof UNINITIALIZED | boolean | null} */\n\tvar condition = UNINITIALIZED;\n\n\tvar flags = elseif ? EFFECT_TRANSPARENT : 0;\n\n\tvar has_branch = false;\n\n\tconst set_branch = (/** @type {(anchor: Node) => void} */ fn, flag = true) => {\n\t\thas_branch = true;\n\t\tupdate_branch(flag, fn);\n\t};\n\n\t/** @type {DocumentFragment | null} */\n\tvar offscreen_fragment = null;\n\n\tfunction commit() {\n\t\tif (offscreen_fragment !== null) {\n\t\t\t// remove the anchor\n\t\t\t/** @type {Text} */ (offscreen_fragment.lastChild).remove();\n\n\t\t\tanchor.before(offscreen_fragment);\n\t\t\toffscreen_fragment = null;\n\t\t}\n\n\t\tvar active = condition ? consequent_effect : alternate_effect;\n\t\tvar inactive = condition ? alternate_effect : consequent_effect;\n\n\t\tif (active) {\n\t\t\tresume_effect(active);\n\t\t}\n\n\t\tif (inactive) {\n\t\t\tpause_effect(inactive, () => {\n\t\t\t\tif (condition) {\n\t\t\t\t\talternate_effect = null;\n\t\t\t\t} else {\n\t\t\t\t\tconsequent_effect = null;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tconst update_branch = (\n\t\t/** @type {boolean | null} */ new_condition,\n\t\t/** @type {null | ((anchor: Node) => void)} */ fn\n\t) => {\n\t\tif (condition === (condition = new_condition)) return;\n\n\t\t/** Whether or not there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */\n\t\tlet mismatch = false;\n\n\t\tif (hydrating) {\n\t\t\tconst is_else = read_hydration_instruction(anchor) === HYDRATION_START_ELSE;\n\n\t\t\tif (!!condition === is_else) {\n\t\t\t\t// Hydration mismatch: remove everything inside the anchor and start fresh.\n\t\t\t\t// This could happen with `{#if browser}...{/if}`, for example\n\t\t\t\tanchor = remove_nodes();\n\n\t\t\t\tset_hydrate_node(anchor);\n\t\t\t\tset_hydrating(false);\n\t\t\t\tmismatch = true;\n\t\t\t}\n\t\t}\n\n\t\tvar defer = should_defer_append();\n\t\tvar target = anchor;\n\n\t\tif (defer) {\n\t\t\toffscreen_fragment = document.createDocumentFragment();\n\t\t\toffscreen_fragment.append((target = create_text()));\n\t\t}\n\n\t\tif (condition) {\n\t\t\tconsequent_effect ??= fn && branch(() => fn(target));\n\t\t} else {\n\t\t\talternate_effect ??= fn && branch(() => fn(target));\n\t\t}\n\n\t\tif (defer) {\n\t\t\tvar batch = /** @type {Batch} */ (current_batch);\n\n\t\t\tvar active = condition ? consequent_effect : alternate_effect;\n\t\t\tvar inactive = condition ? alternate_effect : consequent_effect;\n\n\t\t\tif (active) batch.skipped_effects.delete(active);\n\t\t\tif (inactive) batch.skipped_effects.add(inactive);\n\n\t\t\tbatch.add_callback(commit);\n\t\t} else {\n\t\t\tcommit();\n\t\t}\n\n\t\tif (mismatch) {\n\t\t\t// continue in hydration mode\n\t\t\tset_hydrating(true);\n\t\t}\n\t};\n\n\tblock(() => {\n\t\thas_branch = false;\n\t\tfn(set_branch);\n\t\tif (!has_branch) {\n\t\t\tupdate_branch(null, null);\n\t\t}\n\t}, flags);\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n","/** @import { TemplateNode, Dom, Effect } from '#client' */\n/** @import { Batch } from '../../reactivity/batch.js'; */\nimport { EFFECT_TRANSPARENT } from '#client/constants';\nimport { block, branch, pause_effect } from '../../reactivity/effects.js';\nimport { current_batch } from '../../reactivity/batch.js';\nimport { hydrate_next, hydrate_node, hydrating } from '../hydration.js';\nimport { create_text, should_defer_append } from '../operations.js';\n\n/**\n * @template P\n * @template {(props: P) => void} C\n * @param {TemplateNode} node\n * @param {() => C} get_component\n * @param {(anchor: TemplateNode, component: C) => Dom | void} render_fn\n * @returns {void}\n */\nexport function component(node, get_component, render_fn) {\n\tif (hydrating) {\n\t\thydrate_next();\n\t}\n\n\tvar anchor = node;\n\n\t/** @type {C} */\n\tvar component;\n\n\t/** @type {Effect | null} */\n\tvar effect;\n\n\t/** @type {DocumentFragment | null} */\n\tvar offscreen_fragment = null;\n\n\t/** @type {Effect | null} */\n\tvar pending_effect = null;\n\n\tfunction commit() {\n\t\tif (effect) {\n\t\t\tpause_effect(effect);\n\t\t\teffect = null;\n\t\t}\n\n\t\tif (offscreen_fragment) {\n\t\t\t// remove the anchor\n\t\t\t/** @type {Text} */ (offscreen_fragment.lastChild).remove();\n\n\t\t\tanchor.before(offscreen_fragment);\n\t\t\toffscreen_fragment = null;\n\t\t}\n\n\t\teffect = pending_effect;\n\t\tpending_effect = null;\n\t}\n\n\tblock(() => {\n\t\tif (component === (component = get_component())) return;\n\n\t\tvar defer = should_defer_append();\n\n\t\tif (component) {\n\t\t\tvar target = anchor;\n\n\t\t\tif (defer) {\n\t\t\t\toffscreen_fragment = document.createDocumentFragment();\n\t\t\t\toffscreen_fragment.append((target = create_text()));\n\t\t\t\tif (effect) {\n\t\t\t\t\t/** @type {Batch} */ (current_batch).skipped_effects.add(effect);\n\t\t\t\t}\n\t\t\t}\n\t\t\tpending_effect = branch(() => render_fn(target, component));\n\t\t}\n\n\t\tif (defer) {\n\t\t\t/** @type {Batch} */ (current_batch).add_callback(commit);\n\t\t} else {\n\t\t\tcommit();\n\t\t}\n\t}, EFFECT_TRANSPARENT);\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n","import { STATE_SYMBOL } from '#client/constants';\nimport { effect, render_effect } from '../../../reactivity/effects.js';\nimport { untrack } from '../../../runtime.js';\nimport { queue_micro_task } from '../../task.js';\n\n/**\n * @param {any} bound_value\n * @param {Element} element_or_component\n * @returns {boolean}\n */\nfunction is_bound_this(bound_value, element_or_component) {\n\treturn (\n\t\tbound_value === element_or_component || bound_value?.[STATE_SYMBOL] === element_or_component\n\t);\n}\n\n/**\n * @param {any} element_or_component\n * @param {(value: unknown, ...parts: unknown[]) => void} update\n * @param {(...parts: unknown[]) => unknown} get_value\n * @param {() => unknown[]} [get_parts] Set if the this binding is used inside an each block,\n * \t\t\t\t\t\t\t\t\t\treturns all the parts of the each block context that are used in the expression\n * @returns {void}\n */\nexport function bind_this(element_or_component = {}, update, get_value, get_parts) {\n\teffect(() => {\n\t\t/** @type {unknown[]} */\n\t\tvar old_parts;\n\n\t\t/** @type {unknown[]} */\n\t\tvar parts;\n\n\t\trender_effect(() => {\n\t\t\told_parts = parts;\n\t\t\t// We only track changes to the parts, not the value itself to avoid unnecessary reruns.\n\t\t\tparts = get_parts?.() || [];\n\n\t\t\tuntrack(() => {\n\t\t\t\tif (element_or_component !== get_value(...parts)) {\n\t\t\t\t\tupdate(element_or_component, ...parts);\n\t\t\t\t\t// If this is an effect rerun (cause: each block context changes), then nullfiy the binding at\n\t\t\t\t\t// the previous position if it isn't already taken over by a different effect.\n\t\t\t\t\tif (old_parts && is_bound_this(get_value(...old_parts), element_or_component)) {\n\t\t\t\t\t\tupdate(null, ...old_parts);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\treturn () => {\n\t\t\t// We cannot use effects in the teardown phase, we we use a microtask instead.\n\t\t\tqueue_micro_task(() => {\n\t\t\t\tif (parts && is_bound_this(get_value(...parts), element_or_component)) {\n\t\t\t\t\tupdate(null, ...parts);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t});\n\n\treturn element_or_component;\n}\n","/** @import { StoreReferencesContainer } from '#client' */\n/** @import { Store } from '#shared' */\nimport { subscribe_to_store } from '../../../store/utils.js';\nimport { get as get_store } from '../../../store/shared/index.js';\nimport { define_property, noop } from '../../shared/utils.js';\nimport { get } from '../runtime.js';\nimport { teardown } from './effects.js';\nimport { mutable_source, set } from './sources.js';\nimport { DEV } from 'esm-env';\n\n/**\n * Whether or not the prop currently being read is a store binding, as in\n * `<Child bind:x={$y} />`. If it is, we treat the prop as mutable even in\n * runes mode, and skip `binding_property_non_reactive` validation\n */\nlet is_store_binding = false;\n\nlet IS_UNMOUNTED = Symbol();\n\n/**\n * Gets the current value of a store. If the store isn't subscribed to yet, it will create a proxy\n * signal that will be updated when the store is. The store references container is needed to\n * track reassignments to stores and to track the correct component context.\n * @template V\n * @param {Store<V> | null | undefined} store\n * @param {string} store_name\n * @param {StoreReferencesContainer} stores\n * @returns {V}\n */\nexport function store_get(store, store_name, stores) {\n\tconst entry = (stores[store_name] ??= {\n\t\tstore: null,\n\t\tsource: mutable_source(undefined),\n\t\tunsubscribe: noop\n\t});\n\n\tif (DEV) {\n\t\tentry.source.label = store_name;\n\t}\n\n\t// if the component that setup this is already unmounted we don't want to register a subscription\n\tif (entry.store !== store && !(IS_UNMOUNTED in stores)) {\n\t\tentry.unsubscribe();\n\t\tentry.store = store ?? null;\n\n\t\tif (store == null) {\n\t\t\tentry.source.v = undefined; // see synchronous callback comment below\n\t\t\tentry.unsubscribe = noop;\n\t\t} else {\n\t\t\tvar is_synchronous_callback = true;\n\n\t\t\tentry.unsubscribe = subscribe_to_store(store, (v) => {\n\t\t\t\tif (is_synchronous_callback) {\n\t\t\t\t\t// If the first updates to the store value (possibly multiple of them) are synchronously\n\t\t\t\t\t// inside a derived, we will hit the `state_unsafe_mutation` error if we `set` the value\n\t\t\t\t\tentry.source.v = v;\n\t\t\t\t} else {\n\t\t\t\t\tset(entry.source, v);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tis_synchronous_callback = false;\n\t\t}\n\t}\n\n\t// if the component that setup this stores is already unmounted the source will be out of sync\n\t// so we just use the `get` for the stores, less performant but it avoids to create a memory leak\n\t// and it will keep the value consistent\n\tif (store && IS_UNMOUNTED in stores) {\n\t\treturn get_store(store);\n\t}\n\n\treturn get(entry.source);\n}\n\n/**\n * Unsubscribe from a store if it's not the same as the one in the store references container.\n * We need this in addition to `store_get` because someone could unsubscribe from a store but\n * then never subscribe to the new one (if any), causing the subscription to stay open wrongfully.\n * @param {Store<any> | null | undefined} store\n * @param {string} store_name\n * @param {StoreReferencesContainer} stores\n */\nexport function store_unsub(store, store_name, stores) {\n\t/** @type {StoreReferencesContainer[''] | undefined} */\n\tlet entry = stores[store_name];\n\n\tif (entry && entry.store !== store) {\n\t\t// Don't reset store yet, so that store_get above can resubscribe to new store if necessary\n\t\tentry.unsubscribe();\n\t\tentry.unsubscribe = noop;\n\t}\n\n\treturn store;\n}\n\n/**\n * Sets the new value of a store and returns that value.\n * @template V\n * @param {Store<V>} store\n * @param {V} value\n * @returns {V}\n */\nexport function store_set(store, value) {\n\tstore.set(value);\n\treturn value;\n}\n\n/**\n * @param {StoreReferencesContainer} stores\n * @param {string} store_name\n */\nexport function invalidate_store(stores, store_name) {\n\tvar entry = stores[store_name];\n\tif (entry.store !== null) {\n\t\tstore_set(entry.store, entry.source.v);\n\t}\n}\n\n/**\n * Unsubscribes from all auto-subscribed stores on destroy\n * @returns {[StoreReferencesContainer, ()=>void]}\n */\nexport function setup_stores() {\n\t/** @type {StoreReferencesContainer} */\n\tconst stores = {};\n\n\tfunction cleanup() {\n\t\tteardown(() => {\n\t\t\tfor (var store_name in stores) {\n\t\t\t\tconst ref = stores[store_name];\n\t\t\t\tref.unsubscribe();\n\t\t\t}\n\t\t\tdefine_property(stores, IS_UNMOUNTED, {\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: true\n\t\t\t});\n\t\t});\n\t}\n\n\treturn [stores, cleanup];\n}\n\n/**\n * Updates a store with a new value.\n * @param {Store<V>} store  the store to update\n * @param {any} expression  the expression that mutates the store\n * @param {V} new_value  the new store value\n * @template V\n */\nexport function store_mutate(store, expression, new_value) {\n\tstore.set(new_value);\n\treturn expression;\n}\n\n/**\n * @param {Store<number>} store\n * @param {number} store_value\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_store(store, store_value, d = 1) {\n\tstore.set(store_value + d);\n\treturn store_value;\n}\n\n/**\n * @param {Store<number>} store\n * @param {number} store_value\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_pre_store(store, store_value, d = 1) {\n\tconst value = store_value + d;\n\tstore.set(value);\n\treturn value;\n}\n\n/**\n * Called inside prop getters to communicate that the prop is a store binding\n */\nexport function mark_store_binding() {\n\tis_store_binding = true;\n}\n\n/**\n * Returns a tuple that indicates whether `fn()` reads a prop that is a store binding.\n * Used to prevent `binding_property_non_reactive` validation false positives and\n * ensure that these props are treated as mutable even in runes mode\n * @template T\n * @param {() => T} fn\n * @returns {[T, boolean]}\n */\nexport function capture_store_binding(fn) {\n\tvar previous_is_store_binding = is_store_binding;\n\n\ttry {\n\t\tis_store_binding = false;\n\t\treturn [fn(), is_store_binding];\n\t} finally {\n\t\tis_store_binding = previous_is_store_binding;\n\t}\n}\n","/** @import { Effect, Source } from './types.js' */\nimport { DEV } from 'esm-env';\nimport {\n\tPROPS_IS_BINDABLE,\n\tPROPS_IS_IMMUTABLE,\n\tPROPS_IS_LAZY_INITIAL,\n\tPROPS_IS_RUNES,\n\tPROPS_IS_UPDATED\n} from '../../../constants.js';\nimport { get_descriptor, is_function } from '../../shared/utils.js';\nimport { set, source, update } from './sources.js';\nimport { derived, derived_safe_equal } from './deriveds.js';\nimport {\n\tactive_effect,\n\tget,\n\tis_destroying_effect,\n\tset_active_effect,\n\tuntrack\n} from '../runtime.js';\nimport * as e from '../errors.js';\nimport { DESTROYED, LEGACY_PROPS, STATE_SYMBOL } from '#client/constants';\nimport { proxy } from '../proxy.js';\nimport { capture_store_binding } from './store.js';\nimport { legacy_mode_flag } from '../../flags/index.js';\n\n/**\n * @param {((value?: number) => number)} fn\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_prop(fn, d = 1) {\n\tconst value = fn();\n\tfn(value + d);\n\treturn value;\n}\n\n/**\n * @param {((value?: number) => number)} fn\n * @param {1 | -1} [d]\n * @returns {number}\n */\nexport function update_pre_prop(fn, d = 1) {\n\tconst value = fn() + d;\n\tfn(value);\n\treturn value;\n}\n\n/**\n * The proxy handler for rest props (i.e. `const { x, ...rest } = $props()`).\n * Is passed the full `$$props` object and excludes the named props.\n * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, name?: string }>}}\n */\nconst rest_props_handler = {\n\tget(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\treturn target.props[key];\n\t},\n\tset(target, key) {\n\t\tif (DEV) {\n\t\t\t// TODO should this happen in prod too?\n\t\t\te.props_rest_readonly(`${target.name}.${String(key)}`);\n\t\t}\n\n\t\treturn false;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tif (key in target.props) {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: target.props[key]\n\t\t\t};\n\t\t}\n\t},\n\thas(target, key) {\n\t\tif (target.exclude.includes(key)) return false;\n\t\treturn key in target.props;\n\t},\n\townKeys(target) {\n\t\treturn Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));\n\t}\n};\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string[]} exclude\n * @param {string} [name]\n * @returns {Record<string, unknown>}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function rest_props(props, exclude, name) {\n\treturn new Proxy(\n\t\tDEV ? { props, exclude, name, other: {}, to_proxy: [] } : { props, exclude },\n\t\trest_props_handler\n\t);\n}\n\n/**\n * The proxy handler for legacy $$restProps and $$props\n * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, special: Record<string | symbol, (v?: unknown) => unknown>, version: Source<number>, parent_effect: Effect }>}}\n */\nconst legacy_rest_props_handler = {\n\tget(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tget(target.version);\n\t\treturn key in target.special ? target.special[key]() : target.props[key];\n\t},\n\tset(target, key, value) {\n\t\tif (!(key in target.special)) {\n\t\t\tvar previous_effect = active_effect;\n\n\t\t\ttry {\n\t\t\t\tset_active_effect(target.parent_effect);\n\n\t\t\t\t// Handle props that can temporarily get out of sync with the parent\n\t\t\t\t/** @type {Record<string, (v?: unknown) => unknown>} */\n\t\t\t\ttarget.special[key] = prop(\n\t\t\t\t\t{\n\t\t\t\t\t\tget [key]() {\n\t\t\t\t\t\t\treturn target.props[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t/** @type {string} */ (key),\n\t\t\t\t\tPROPS_IS_UPDATED\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tset_active_effect(previous_effect);\n\t\t\t}\n\t\t}\n\n\t\ttarget.special[key](value);\n\t\tupdate(target.version); // $$props is coarse-grained: when $$props.x is updated, usages of $$props.y etc are also rerun\n\t\treturn true;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tif (target.exclude.includes(key)) return;\n\t\tif (key in target.props) {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: target.props[key]\n\t\t\t};\n\t\t}\n\t},\n\tdeleteProperty(target, key) {\n\t\t// Svelte 4 allowed for deletions on $$restProps\n\t\tif (target.exclude.includes(key)) return true;\n\t\ttarget.exclude.push(key);\n\t\tupdate(target.version);\n\t\treturn true;\n\t},\n\thas(target, key) {\n\t\tif (target.exclude.includes(key)) return false;\n\t\treturn key in target.props;\n\t},\n\townKeys(target) {\n\t\treturn Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));\n\t}\n};\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string[]} exclude\n * @returns {Record<string, unknown>}\n */\nexport function legacy_rest_props(props, exclude) {\n\treturn new Proxy(\n\t\t{\n\t\t\tprops,\n\t\t\texclude,\n\t\t\tspecial: {},\n\t\t\tversion: source(0),\n\t\t\t// TODO this is only necessary because we need to track component\n\t\t\t// destruction inside `prop`, because of `bind:this`, but it\n\t\t\t// seems likely that we can simplify `bind:this` instead\n\t\t\tparent_effect: /** @type {Effect} */ (active_effect)\n\t\t},\n\t\tlegacy_rest_props_handler\n\t);\n}\n\n/**\n * The proxy handler for spread props. Handles the incoming array of props\n * that looks like `() => { dynamic: props }, { static: prop }, ..` and wraps\n * them so that the whole thing is passed to the component as the `$$props` argument.\n * @type {ProxyHandler<{ props: Array<Record<string | symbol, unknown> | (() => Record<string | symbol, unknown>)> }>}}\n */\nconst spread_props_handler = {\n\tget(target, key) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (typeof p === 'object' && p !== null && key in p) return p[key];\n\t\t}\n\t},\n\tset(target, key, value) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tconst desc = get_descriptor(p, key);\n\t\t\tif (desc && desc.set) {\n\t\t\t\tdesc.set(value);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\tgetOwnPropertyDescriptor(target, key) {\n\t\tlet i = target.props.length;\n\t\twhile (i--) {\n\t\t\tlet p = target.props[i];\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (typeof p === 'object' && p !== null && key in p) {\n\t\t\t\tconst descriptor = get_descriptor(p, key);\n\t\t\t\tif (descriptor && !descriptor.configurable) {\n\t\t\t\t\t// Prevent a \"Non-configurability Report Error\": The target is an array, it does\n\t\t\t\t\t// not actually contain this property. If it is now described as non-configurable,\n\t\t\t\t\t// the proxy throws a validation error. Setting it to true avoids that.\n\t\t\t\t\tdescriptor.configurable = true;\n\t\t\t\t}\n\t\t\t\treturn descriptor;\n\t\t\t}\n\t\t}\n\t},\n\thas(target, key) {\n\t\t// To prevent a false positive `is_entry_props` in the `prop` function\n\t\tif (key === STATE_SYMBOL || key === LEGACY_PROPS) return false;\n\n\t\tfor (let p of target.props) {\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (p != null && key in p) return true;\n\t\t}\n\n\t\treturn false;\n\t},\n\townKeys(target) {\n\t\t/** @type {Array<string | symbol>} */\n\t\tconst keys = [];\n\n\t\tfor (let p of target.props) {\n\t\t\tif (is_function(p)) p = p();\n\t\t\tif (!p) continue;\n\n\t\t\tfor (const key in p) {\n\t\t\t\tif (!keys.includes(key)) keys.push(key);\n\t\t\t}\n\n\t\t\tfor (const key of Object.getOwnPropertySymbols(p)) {\n\t\t\t\tif (!keys.includes(key)) keys.push(key);\n\t\t\t}\n\t\t}\n\n\t\treturn keys;\n\t}\n};\n\n/**\n * @param {Array<Record<string, unknown> | (() => Record<string, unknown>)>} props\n * @returns {any}\n */\nexport function spread_props(...props) {\n\treturn new Proxy({ props }, spread_props_handler);\n}\n\n/**\n * This function is responsible for synchronizing a possibly bound prop with the inner component state.\n * It is used whenever the compiler sees that the component writes to the prop, or when it has a default prop_value.\n * @template V\n * @param {Record<string, unknown>} props\n * @param {string} key\n * @param {number} flags\n * @param {V | (() => V)} [fallback]\n * @returns {(() => V | ((arg: V) => V) | ((arg: V, mutation: boolean) => V))}\n */\nexport function prop(props, key, flags, fallback) {\n\tvar runes = !legacy_mode_flag || (flags & PROPS_IS_RUNES) !== 0;\n\tvar bindable = (flags & PROPS_IS_BINDABLE) !== 0;\n\tvar lazy = (flags & PROPS_IS_LAZY_INITIAL) !== 0;\n\n\tvar fallback_value = /** @type {V} */ (fallback);\n\tvar fallback_dirty = true;\n\n\tvar get_fallback = () => {\n\t\tif (fallback_dirty) {\n\t\t\tfallback_dirty = false;\n\n\t\t\tfallback_value = lazy\n\t\t\t\t? untrack(/** @type {() => V} */ (fallback))\n\t\t\t\t: /** @type {V} */ (fallback);\n\t\t}\n\n\t\treturn fallback_value;\n\t};\n\n\t/** @type {((v: V) => void) | undefined} */\n\tvar setter;\n\n\tif (bindable) {\n\t\t// Can be the case when someone does `mount(Component, props)` with `let props = $state({...})`\n\t\t// or `createClassComponent(Component, props)`\n\t\tvar is_entry_props = STATE_SYMBOL in props || LEGACY_PROPS in props;\n\n\t\tsetter =\n\t\t\tget_descriptor(props, key)?.set ??\n\t\t\t(is_entry_props && key in props ? (v) => (props[key] = v) : undefined);\n\t}\n\n\tvar initial_value;\n\tvar is_store_sub = false;\n\n\tif (bindable) {\n\t\t[initial_value, is_store_sub] = capture_store_binding(() => /** @type {V} */ (props[key]));\n\t} else {\n\t\tinitial_value = /** @type {V} */ (props[key]);\n\t}\n\n\tif (initial_value === undefined && fallback !== undefined) {\n\t\tinitial_value = get_fallback();\n\n\t\tif (setter) {\n\t\t\tif (runes) e.props_invalid_value(key);\n\t\t\tsetter(initial_value);\n\t\t}\n\t}\n\n\t/** @type {() => V} */\n\tvar getter;\n\n\tif (runes) {\n\t\tgetter = () => {\n\t\t\tvar value = /** @type {V} */ (props[key]);\n\t\t\tif (value === undefined) return get_fallback();\n\t\t\tfallback_dirty = true;\n\t\t\treturn value;\n\t\t};\n\t} else {\n\t\tgetter = () => {\n\t\t\tvar value = /** @type {V} */ (props[key]);\n\n\t\t\tif (value !== undefined) {\n\t\t\t\t// in legacy mode, we don't revert to the fallback value\n\t\t\t\t// if the prop goes from defined to undefined. The easiest\n\t\t\t\t// way to model this is to make the fallback undefined\n\t\t\t\t// as soon as the prop has a value\n\t\t\t\tfallback_value = /** @type {V} */ (undefined);\n\t\t\t}\n\n\t\t\treturn value === undefined ? fallback_value : value;\n\t\t};\n\t}\n\n\t// prop is never written to — we only need a getter\n\tif (runes && (flags & PROPS_IS_UPDATED) === 0) {\n\t\treturn getter;\n\t}\n\n\t// prop is written to, but the parent component had `bind:foo` which\n\t// means we can just call `$$props.foo = value` directly\n\tif (setter) {\n\t\tvar legacy_parent = props.$$legacy;\n\t\treturn /** @type {() => V} */ (\n\t\t\tfunction (/** @type {V} */ value, /** @type {boolean} */ mutation) {\n\t\t\t\tif (arguments.length > 0) {\n\t\t\t\t\t// We don't want to notify if the value was mutated and the parent is in runes mode.\n\t\t\t\t\t// In that case the state proxy (if it exists) should take care of the notification.\n\t\t\t\t\t// If the parent is not in runes mode, we need to notify on mutation, too, that the prop\n\t\t\t\t\t// has changed because the parent will not be able to detect the change otherwise.\n\t\t\t\t\tif (!runes || !mutation || legacy_parent || is_store_sub) {\n\t\t\t\t\t\t/** @type {Function} */ (setter)(mutation ? getter() : value);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\n\t\t\t\treturn getter();\n\t\t\t}\n\t\t);\n\t}\n\n\t// Either prop is written to, but there's no binding, which means we\n\t// create a derived that we can write to locally.\n\t// Or we are in legacy mode where we always create a derived to replicate that\n\t// Svelte 4 did not trigger updates when a primitive value was updated to the same value.\n\tvar overridden = false;\n\n\tvar d = ((flags & PROPS_IS_IMMUTABLE) !== 0 ? derived : derived_safe_equal)(() => {\n\t\toverridden = false;\n\t\treturn getter();\n\t});\n\n\tif (DEV) {\n\t\td.label = key;\n\t}\n\n\t// Capture the initial value if it's bindable\n\tif (bindable) get(d);\n\n\tvar parent_effect = /** @type {Effect} */ (active_effect);\n\n\treturn /** @type {() => V} */ (\n\t\tfunction (/** @type {any} */ value, /** @type {boolean} */ mutation) {\n\t\t\tif (arguments.length > 0) {\n\t\t\t\tconst new_value = mutation ? get(d) : runes && bindable ? proxy(value) : value;\n\n\t\t\t\tset(d, new_value);\n\t\t\t\toverridden = true;\n\n\t\t\t\tif (fallback_value !== undefined) {\n\t\t\t\t\tfallback_value = new_value;\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\t// special case — avoid recalculating the derived if we're in a\n\t\t\t// teardown function and the prop was overridden locally, or the\n\t\t\t// component was already destroyed (this latter part is necessary\n\t\t\t// because `bind:this` can read props after the component has\n\t\t\t// been destroyed. TODO simplify `bind:this`\n\t\t\tif ((is_destroying_effect && overridden) || (parent_effect.f & DESTROYED) !== 0) {\n\t\t\t\treturn d.v;\n\t\t\t}\n\n\t\t\treturn get(d);\n\t\t}\n\t);\n}\n","/** @import { ComponentConstructorOptions, ComponentType, SvelteComponent, Component } from 'svelte' */\nimport { DIRTY, LEGACY_PROPS, MAYBE_DIRTY } from '../internal/client/constants.js';\nimport { user_pre_effect } from '../internal/client/reactivity/effects.js';\nimport { mutable_source, set } from '../internal/client/reactivity/sources.js';\nimport { hydrate, mount, unmount } from '../internal/client/render.js';\nimport { active_effect, get, set_signal_status } from '../internal/client/runtime.js';\nimport { flushSync } from '../internal/client/reactivity/batch.js';\nimport { define_property, is_array } from '../internal/shared/utils.js';\nimport * as e from '../internal/client/errors.js';\nimport * as w from '../internal/client/warnings.js';\nimport { DEV } from 'esm-env';\nimport { FILENAME } from '../constants.js';\nimport { component_context, dev_current_component_function } from '../internal/client/context.js';\nimport { async_mode_flag } from '../internal/flags/index.js';\n\n/**\n * Takes the same options as a Svelte 4 component and the component function and returns a Svelte 4 compatible component.\n *\n * @deprecated Use this only as a temporary solution to migrate your imperative component code to Svelte 5.\n *\n * @template {Record<string, any>} Props\n * @template {Record<string, any>} Exports\n * @template {Record<string, any>} Events\n * @template {Record<string, any>} Slots\n *\n * @param {ComponentConstructorOptions<Props> & {\n * \tcomponent: ComponentType<SvelteComponent<Props, Events, Slots>> | Component<Props>;\n * }} options\n * @returns {SvelteComponent<Props, Events, Slots> & Exports}\n */\nexport function createClassComponent(options) {\n\t// @ts-expect-error $$prop_def etc are not actually defined\n\treturn new Svelte4Component(options);\n}\n\n/**\n * Takes the component function and returns a Svelte 4 compatible component constructor.\n *\n * @deprecated Use this only as a temporary solution to migrate your imperative component code to Svelte 5.\n *\n * @template {Record<string, any>} Props\n * @template {Record<string, any>} Exports\n * @template {Record<string, any>} Events\n * @template {Record<string, any>} Slots\n *\n * @param {SvelteComponent<Props, Events, Slots> | Component<Props>} component\n * @returns {ComponentType<SvelteComponent<Props, Events, Slots> & Exports>}\n */\nexport function asClassComponent(component) {\n\t// @ts-expect-error $$prop_def etc are not actually defined\n\treturn class extends Svelte4Component {\n\t\t/** @param {any} options */\n\t\tconstructor(options) {\n\t\t\tsuper({\n\t\t\t\tcomponent,\n\t\t\t\t...options\n\t\t\t});\n\t\t}\n\t};\n}\n\n/**\n * Support using the component as both a class and function during the transition period\n * @typedef  {{new (o: ComponentConstructorOptions): SvelteComponent;(...args: Parameters<Component<Record<string, any>>>): ReturnType<Component<Record<string, any>, Record<string, any>>>;}} LegacyComponentType\n */\n\nclass Svelte4Component {\n\t/** @type {any} */\n\t#events;\n\n\t/** @type {Record<string, any>} */\n\t#instance;\n\n\t/**\n\t * @param {ComponentConstructorOptions & {\n\t *  component: any;\n\t * }} options\n\t */\n\tconstructor(options) {\n\t\tvar sources = new Map();\n\n\t\t/**\n\t\t * @param {string | symbol} key\n\t\t * @param {unknown} value\n\t\t */\n\t\tvar add_source = (key, value) => {\n\t\t\tvar s = mutable_source(value, false, false);\n\t\t\tsources.set(key, s);\n\t\t\treturn s;\n\t\t};\n\n\t\t// Replicate coarse-grained props through a proxy that has a version source for\n\t\t// each property, which is incremented on updates to the property itself. Do not\n\t\t// use our $state proxy because that one has fine-grained reactivity.\n\t\tconst props = new Proxy(\n\t\t\t{ ...(options.props || {}), $$events: {} },\n\t\t\t{\n\t\t\t\tget(target, prop) {\n\t\t\t\t\treturn get(sources.get(prop) ?? add_source(prop, Reflect.get(target, prop)));\n\t\t\t\t},\n\t\t\t\thas(target, prop) {\n\t\t\t\t\t// Necessary to not throw \"invalid binding\" validation errors on the component side\n\t\t\t\t\tif (prop === LEGACY_PROPS) return true;\n\n\t\t\t\t\tget(sources.get(prop) ?? add_source(prop, Reflect.get(target, prop)));\n\t\t\t\t\treturn Reflect.has(target, prop);\n\t\t\t\t},\n\t\t\t\tset(target, prop, value) {\n\t\t\t\t\tset(sources.get(prop) ?? add_source(prop, value), value);\n\t\t\t\t\treturn Reflect.set(target, prop, value);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tthis.#instance = (options.hydrate ? hydrate : mount)(options.component, {\n\t\t\ttarget: options.target,\n\t\t\tanchor: options.anchor,\n\t\t\tprops,\n\t\t\tcontext: options.context,\n\t\t\tintro: options.intro ?? false,\n\t\t\trecover: options.recover\n\t\t});\n\n\t\t// We don't flushSync for custom element wrappers or if the user doesn't want it,\n\t\t// or if we're in async mode since `flushSync()` will fail\n\t\tif (!async_mode_flag && (!options?.props?.$$host || options.sync === false)) {\n\t\t\tflushSync();\n\t\t}\n\n\t\tthis.#events = props.$$events;\n\n\t\tfor (const key of Object.keys(this.#instance)) {\n\t\t\tif (key === '$set' || key === '$destroy' || key === '$on') continue;\n\t\t\tdefine_property(this, key, {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#instance[key];\n\t\t\t\t},\n\t\t\t\t/** @param {any} value */\n\t\t\t\tset(value) {\n\t\t\t\t\tthis.#instance[key] = value;\n\t\t\t\t},\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t}\n\n\t\tthis.#instance.$set = /** @param {Record<string, any>} next */ (next) => {\n\t\t\tObject.assign(props, next);\n\t\t};\n\n\t\tthis.#instance.$destroy = () => {\n\t\t\tunmount(this.#instance);\n\t\t};\n\t}\n\n\t/** @param {Record<string, any>} props */\n\t$set(props) {\n\t\tthis.#instance.$set(props);\n\t}\n\n\t/**\n\t * @param {string} event\n\t * @param {(...args: any[]) => any} callback\n\t * @returns {any}\n\t */\n\t$on(event, callback) {\n\t\tthis.#events[event] = this.#events[event] || [];\n\n\t\t/** @param {any[]} args */\n\t\tconst cb = (...args) => callback.call(this, ...args);\n\t\tthis.#events[event].push(cb);\n\t\treturn () => {\n\t\t\tthis.#events[event] = this.#events[event].filter(/** @param {any} fn */ (fn) => fn !== cb);\n\t\t};\n\t}\n\n\t$destroy() {\n\t\tthis.#instance.$destroy();\n\t}\n}\n\n/**\n * Runs the given function once immediately on the server, and works like `$effect.pre` on the client.\n *\n * @deprecated Use this only as a temporary solution to migrate your component code to Svelte 5.\n * @param {() => void | (() => void)} fn\n * @returns {void}\n */\nexport function run(fn) {\n\tuser_pre_effect(() => {\n\t\tfn();\n\t\tvar effect = /** @type {import('#client').Effect} */ (active_effect);\n\t\t// If the effect is immediately made dirty again, mark it as maybe dirty to emulate legacy behaviour\n\t\tif ((effect.f & DIRTY) !== 0) {\n\t\t\tlet filename = \"a file (we can't know which one)\";\n\t\t\tif (DEV) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tfilename = dev_current_component_function?.[FILENAME] ?? filename;\n\t\t\t}\n\t\t\tw.legacy_recursive_reactive_block(filename);\n\t\t\tset_signal_status(effect, MAYBE_DIRTY);\n\t\t}\n\t});\n}\n\n/**\n * Function to mimic the multiple listeners available in svelte 4\n * @deprecated\n * @param {EventListener[]} handlers\n * @returns {EventListener}\n */\nexport function handlers(...handlers) {\n\treturn function (event) {\n\t\tconst { stopImmediatePropagation } = event;\n\t\tlet stopped = false;\n\n\t\tevent.stopImmediatePropagation = () => {\n\t\t\tstopped = true;\n\t\t\tstopImmediatePropagation.call(event);\n\t\t};\n\n\t\tconst errors = [];\n\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\t// @ts-expect-error `this` is not typed\n\t\t\t\thandler?.call(this, event);\n\t\t\t} catch (e) {\n\t\t\t\terrors.push(e);\n\t\t\t}\n\n\t\t\tif (stopped) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfor (let error of errors) {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}\n\t};\n}\n\n/**\n * Function to create a `bubble` function that mimic the behavior of `on:click` without handler available in svelte 4.\n * @deprecated Use this only as a temporary solution to migrate your automatically delegated events in Svelte 5.\n */\nexport function createBubbler() {\n\tconst active_component_context = component_context;\n\tif (active_component_context === null) {\n\t\te.lifecycle_outside_component('createBubbler');\n\t}\n\n\treturn (/**@type {string}*/ type) => (/**@type {Event}*/ event) => {\n\t\tconst events = /** @type {Record<string, Function | Function[]>} */ (\n\t\t\tactive_component_context.s.$$events\n\t\t)?.[/** @type {any} */ (type)];\n\n\t\tif (events) {\n\t\t\tconst callbacks = is_array(events) ? events.slice() : [events];\n\t\t\tfor (const fn of callbacks) {\n\t\t\t\tfn.call(active_component_context.x, event);\n\t\t\t}\n\t\t\treturn !event.defaultPrevented;\n\t\t}\n\t\treturn true;\n\t};\n}\n\nexport {\n\tonce,\n\tpreventDefault,\n\tself,\n\tstopImmediatePropagation,\n\tstopPropagation,\n\ttrusted,\n\tpassive,\n\tnonpassive\n} from '../internal/client/dom/legacy/event-modifiers.js';\n","export const matchers = {};","<!-- This file is generated by @sveltejs/kit — do not edit it! -->\n<svelte:options runes={true} />\n<script>\n\timport { setContext, onMount, tick } from 'svelte';\n\timport { browser } from '$app/environment';\n\n\t// stores\n\tlet { stores, page, constructors, components = [], form, data_0 = null, data_1 = null } = $props();\n\n\tif (!browser) {\n\t\tsetContext('__svelte__', stores);\n\t}\n\n\tif (browser) {\n\t\t$effect.pre(() => stores.page.set(page));\n\t} else {\n\t\tstores.page.set(page);\n\t}\n\t$effect(() => {\n\t\tstores;page;constructors;components;form;data_0;data_1;\n\t\tstores.page.notify();\n\t});\n\n\tlet mounted = $state(false);\n\tlet navigated = $state(false);\n\tlet title = $state(null);\n\n\tonMount(() => {\n\t\tconst unsubscribe = stores.page.subscribe(() => {\n\t\t\tif (mounted) {\n\t\t\t\tnavigated = true;\n\t\t\t\ttick().then(() => {\n\t\t\t\t\ttitle = document.title || 'untitled page';\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tmounted = true;\n\t\treturn unsubscribe;\n\t});\n\n\tconst Pyramid_1=$derived(constructors[1])\n</script>\n\n{#if constructors[1]}\n\t{@const Pyramid_0 = constructors[0]}\n\t\t\t\t\t\t\t<!-- svelte-ignore binding_property_non_reactive -->\n\t\t\t\t\t\t\t<Pyramid_0 bind:this={components[0]} data={data_0} {form} params={page.params}>\n\t\t\t\t\t\t\t\t<!-- svelte-ignore binding_property_non_reactive -->\n\t\t\t\t\t\t\t\t\t\t<Pyramid_1 bind:this={components[1]} data={data_1} {form} params={page.params} />\n\t\t\t\t\t\t\t</Pyramid_0>\n\n{:else}\n\t{@const Pyramid_0 = constructors[0]}\n\t<!-- svelte-ignore binding_property_non_reactive -->\n\t<Pyramid_0 bind:this={components[0]} data={data_0} {form} params={page.params} />\n\n{/if}\n\n{#if mounted}\n\t<div id=\"svelte-announcer\" aria-live=\"assertive\" aria-atomic=\"true\" style=\"position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px\">\n\t\t{#if navigated}\n\t\t\t{title}\n\t\t{/if}\n\t</div>\n{/if}","import { asClassComponent } from 'svelte/legacy';\nimport Root from './root.svelte';\nexport default asClassComponent(Root);","export { matchers } from './matchers.js';\n\nexport const nodes = [\n\t() => import('./nodes/0'),\n\t() => import('./nodes/1'),\n\t() => import('./nodes/2'),\n\t() => import('./nodes/3'),\n\t() => import('./nodes/4'),\n\t() => import('./nodes/5'),\n\t() => import('./nodes/6'),\n\t() => import('./nodes/7'),\n\t() => import('./nodes/8'),\n\t() => import('./nodes/9'),\n\t() => import('./nodes/10'),\n\t() => import('./nodes/11'),\n\t() => import('./nodes/12'),\n\t() => import('./nodes/13'),\n\t() => import('./nodes/14'),\n\t() => import('./nodes/15')\n];\n\nexport const server_loads = [];\n\nexport const dictionary = {\n\t\t\"/3d_procgen/triplanar_sharpening\": [2],\n\t\t\"/depth_based_fragment_culling/depth_diffuse\": [3],\n\t\t\"/depth_based_fragment_culling/tiling_compare\": [4],\n\t\t\"/smooth_procedural_meshes/delta_t_penalty_comparison_normal\": [5],\n\t\t\"/smooth_procedural_meshes/delta_t_penalty_comparison_wireframe\": [6],\n\t\t\"/subdivide/blender_artifacts_example\": [7],\n\t\t\"/subdivide/bouncy_house\": [8],\n\t\t\"/subdivide/edge_normals\": [9],\n\t\t\"/subdivide/naive_displacement_demo\": [10],\n\t\t\"/subdivide/noise_displ\": [11],\n\t\t\"/subdivide/pre_sharp_edges\": [12],\n\t\t\"/subdivide/smooth_flat_shading\": [13],\n\t\t\"/tech_behind_geotoy/na8o_comparison\": [14],\n\t\t\"/triplanar_mapping_enhancement\": [15]\n\t};\n\nexport const hooks = {\n\thandleError: (({ error }) => { console.error(error) }),\n\t\n\treroute: (() => {}),\n\ttransport: {}\n};\n\nexport const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode]));\n\nexport const hash = false;\n\nexport const decode = (type, value) => decoders[type](value);\n\nexport { default as root } from '../root.js';"],"file":"_app/immutable/entry/app.DpoxKqSb.js"}