{"version":3,"file":"disclose-version.CyWgP0ZN.js","sources":["../../../../../../node_modules/.pnpm/svelte@5.1.3/node_modules/svelte/src/internal/client/proxy.js","../../../../../../node_modules/.pnpm/svelte@5.1.3/node_modules/svelte/src/internal/client/dom/elements/events.js","../../../../../../node_modules/.pnpm/svelte@5.1.3/node_modules/svelte/src/internal/client/dom/reconciler.js","../../../../../../node_modules/.pnpm/svelte@5.1.3/node_modules/svelte/src/internal/client/dom/template.js","../../../../../../node_modules/.pnpm/svelte@5.1.3/node_modules/svelte/src/internal/client/dom/blocks/if.js","../../../../../../node_modules/.pnpm/svelte@5.1.3/node_modules/svelte/src/internal/client/reactivity/store.js","../../../../../../node_modules/.pnpm/svelte@5.1.3/node_modules/svelte/src/internal/client/reactivity/props.js","../../../../../../node_modules/.pnpm/svelte@5.1.3/node_modules/svelte/src/version.js","../../../../../../node_modules/.pnpm/svelte@5.1.3/node_modules/svelte/src/internal/disclose-version.js"],"sourcesContent":["/** @import { ProxyMetadata, ProxyStateObject, Source } from '#client' */\nimport { DEV } from 'esm-env';\nimport { get, component_context, active_effect } from './runtime.js';\nimport {\n\tarray_prototype,\n\tget_descriptor,\n\tget_prototype_of,\n\tis_array,\n\tobject_prototype\n} from '../shared/utils.js';\nimport { check_ownership, widen_ownership } from './dev/ownership.js';\nimport { source, set } from './reactivity/sources.js';\nimport { STATE_SYMBOL, STATE_SYMBOL_METADATA } from './constants.js';\nimport { UNINITIALIZED } from '../../constants.js';\nimport * as e from './errors.js';\n\n/**\n * @template T\n * @param {T} value\n * @param {ProxyMetadata | null} [parent]\n * @param {Source} [prev] dev mode only\n * @returns {T}\n */\nexport function proxy(value, parent = null, prev) {\n\t// if non-proxyable, or is already a proxy, return `value`\n\tif (typeof value !== 'object' || value === null || STATE_SYMBOL in value) {\n\t\treturn value;\n\t}\n\n\tconst prototype = get_prototype_of(value);\n\n\tif (prototype !== object_prototype && prototype !== array_prototype) {\n\t\treturn value;\n\t}\n\n\t/** @type {Map>} */\n\tvar sources = new Map();\n\tvar is_proxied_array = is_array(value);\n\tvar version = source(0);\n\n\tif (is_proxied_array) {\n\t\t// We need to create the length source eagerly to ensure that\n\t\t// mutations to the array are properly synced with our proxy\n\t\tsources.set('length', source(/** @type {any[]} */ (value).length));\n\t}\n\n\t/** @type {ProxyMetadata} */\n\tvar metadata;\n\n\tif (DEV) {\n\t\tmetadata = {\n\t\t\tparent,\n\t\t\towners: null\n\t\t};\n\n\t\tif (prev) {\n\t\t\t// Reuse owners from previous state; necessary because reassignment is not guaranteed to have correct component context.\n\t\t\t// If no previous proxy exists we play it safe and assume ownerless state\n\t\t\t// @ts-expect-error\n\t\t\tconst prev_owners = prev.v?.[STATE_SYMBOL_METADATA]?.owners;\n\t\t\tmetadata.owners = prev_owners ? new Set(prev_owners) : null;\n\t\t} else {\n\t\t\tmetadata.owners =\n\t\t\t\tparent === null\n\t\t\t\t\t? component_context !== null\n\t\t\t\t\t\t? new Set([component_context.function])\n\t\t\t\t\t\t: null\n\t\t\t\t\t: new Set();\n\t\t}\n\t}\n\n\treturn new Proxy(/** @type {any} */ (value), {\n\t\tdefineProperty(_, prop, descriptor) {\n\t\t\tif (\n\t\t\t\t!('value' in descriptor) ||\n\t\t\t\tdescriptor.configurable === false ||\n\t\t\t\tdescriptor.enumerable === false ||\n\t\t\t\tdescriptor.writable === false\n\t\t\t) {\n\t\t\t\t// we disallow non-basic descriptors, because unless they are applied to the\n\t\t\t\t// target object — which we avoid, so that state can be forked — we will run\n\t\t\t\t// afoul of the various invariants\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getOwnPropertyDescriptor#invariants\n\t\t\t\te.state_descriptors_fixed();\n\t\t\t}\n\n\t\t\tvar s = sources.get(prop);\n\n\t\t\tif (s === undefined) {\n\t\t\t\ts = source(descriptor.value);\n\t\t\t\tsources.set(prop, s);\n\t\t\t} else {\n\t\t\t\tset(s, proxy(descriptor.value, metadata));\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\tdeleteProperty(target, prop) {\n\t\t\tvar s = sources.get(prop);\n\n\t\t\tif (s === undefined) {\n\t\t\t\tif (prop in target) {\n\t\t\t\t\tsources.set(prop, source(UNINITIALIZED));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// When working with arrays, we need to also ensure we update the length when removing\n\t\t\t\t// an indexed property\n\t\t\t\tif (is_proxied_array && typeof prop === 'string') {\n\t\t\t\t\tvar ls = /** @type {Source} */ (sources.get('length'));\n\t\t\t\t\tvar n = Number(prop);\n\n\t\t\t\t\tif (Number.isInteger(n) && n < ls.v) {\n\t\t\t\t\t\tset(ls, n);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tset(s, UNINITIALIZED);\n\t\t\t\tupdate_version(version);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\tget(target, prop, receiver) {\n\t\t\tif (DEV && prop === STATE_SYMBOL_METADATA) {\n\t\t\t\treturn metadata;\n\t\t\t}\n\n\t\t\tif (prop === STATE_SYMBOL) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tvar s = sources.get(prop);\n\t\t\tvar exists = prop in target;\n\n\t\t\t// create a source, but only if it's an own property and not a prototype property\n\t\t\tif (s === undefined && (!exists || get_descriptor(target, prop)?.writable)) {\n\t\t\t\ts = source(proxy(exists ? target[prop] : UNINITIALIZED, metadata));\n\t\t\t\tsources.set(prop, s);\n\t\t\t}\n\n\t\t\tif (s !== undefined) {\n\t\t\t\tvar v = get(s);\n\n\t\t\t\t// In case of something like `foo = bar.map(...)`, foo would have ownership\n\t\t\t\t// of the array itself, while the individual items would have ownership\n\t\t\t\t// of the component that created bar. That means if we later do `foo[0].baz = 42`,\n\t\t\t\t// we could get a false-positive ownership violation, since the two proxies\n\t\t\t\t// are not connected to each other via the parent metadata relationship.\n\t\t\t\t// For this reason, we need to widen the ownership of the children\n\t\t\t\t// upon access when we detect they are not connected.\n\t\t\t\tif (DEV) {\n\t\t\t\t\t/** @type {ProxyMetadata | undefined} */\n\t\t\t\t\tvar prop_metadata = v?.[STATE_SYMBOL_METADATA];\n\t\t\t\t\tif (prop_metadata && prop_metadata?.parent !== metadata) {\n\t\t\t\t\t\twiden_ownership(metadata, prop_metadata);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn v === UNINITIALIZED ? undefined : v;\n\t\t\t}\n\n\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t},\n\n\t\tgetOwnPropertyDescriptor(target, prop) {\n\t\t\tvar descriptor = Reflect.getOwnPropertyDescriptor(target, prop);\n\n\t\t\tif (descriptor && 'value' in descriptor) {\n\t\t\t\tvar s = sources.get(prop);\n\t\t\t\tif (s) descriptor.value = get(s);\n\t\t\t} else if (descriptor === undefined) {\n\t\t\t\tvar source = sources.get(prop);\n\t\t\t\tvar value = source?.v;\n\n\t\t\t\tif (source !== undefined && value !== UNINITIALIZED) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\twritable: true\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn descriptor;\n\t\t},\n\n\t\thas(target, prop) {\n\t\t\tif (DEV && prop === STATE_SYMBOL_METADATA) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (prop === STATE_SYMBOL) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tvar s = sources.get(prop);\n\t\t\tvar has = (s !== undefined && s.v !== UNINITIALIZED) || Reflect.has(target, prop);\n\n\t\t\tif (\n\t\t\t\ts !== undefined ||\n\t\t\t\t(active_effect !== null && (!has || get_descriptor(target, prop)?.writable))\n\t\t\t) {\n\t\t\t\tif (s === undefined) {\n\t\t\t\t\ts = source(has ? proxy(target[prop], metadata) : UNINITIALIZED);\n\t\t\t\t\tsources.set(prop, s);\n\t\t\t\t}\n\n\t\t\t\tvar value = get(s);\n\t\t\t\tif (value === UNINITIALIZED) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn has;\n\t\t},\n\n\t\tset(target, prop, value, receiver) {\n\t\t\tvar s = sources.get(prop);\n\t\t\tvar has = prop in target;\n\n\t\t\t// variable.length = value -> clear all signals with index >= value\n\t\t\tif (is_proxied_array && prop === 'length') {\n\t\t\t\tfor (var i = value; i < /** @type {Source} */ (s).v; i += 1) {\n\t\t\t\t\tvar other_s = sources.get(i + '');\n\t\t\t\t\tif (other_s !== undefined) {\n\t\t\t\t\t\tset(other_s, UNINITIALIZED);\n\t\t\t\t\t} else if (i in target) {\n\t\t\t\t\t\t// If the item exists in the original, we need to create a uninitialized source,\n\t\t\t\t\t\t// else a later read of the property would result in a source being created with\n\t\t\t\t\t\t// the value of the original item at that index.\n\t\t\t\t\t\tother_s = source(UNINITIALIZED);\n\t\t\t\t\t\tsources.set(i + '', other_s);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If we haven't yet created a source for this property, we need to ensure\n\t\t\t// we do so otherwise if we read it later, then the write won't be tracked and\n\t\t\t// the heuristics of effects will be different vs if we had read the proxied\n\t\t\t// object property before writing to that property.\n\t\t\tif (s === undefined) {\n\t\t\t\tif (!has || get_descriptor(target, prop)?.writable) {\n\t\t\t\t\ts = source(undefined);\n\t\t\t\t\tset(s, proxy(value, metadata));\n\t\t\t\t\tsources.set(prop, s);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thas = s.v !== UNINITIALIZED;\n\t\t\t\tset(s, proxy(value, metadata));\n\t\t\t}\n\n\t\t\tif (DEV) {\n\t\t\t\t/** @type {ProxyMetadata | undefined} */\n\t\t\t\tvar prop_metadata = value?.[STATE_SYMBOL_METADATA];\n\t\t\t\tif (prop_metadata && prop_metadata?.parent !== metadata) {\n\t\t\t\t\twiden_ownership(metadata, prop_metadata);\n\t\t\t\t}\n\t\t\t\tcheck_ownership(metadata);\n\t\t\t}\n\n\t\t\tvar descriptor = Reflect.getOwnPropertyDescriptor(target, prop);\n\n\t\t\t// Set the new value before updating any signals so that any listeners get the new value\n\t\t\tif (descriptor?.set) {\n\t\t\t\tdescriptor.set.call(receiver, value);\n\t\t\t}\n\n\t\t\tif (!has) {\n\t\t\t\t// If we have mutated an array directly, we might need to\n\t\t\t\t// signal that length has also changed. Do it before updating metadata\n\t\t\t\t// to ensure that iterating over the array as a result of a metadata update\n\t\t\t\t// will not cause the length to be out of sync.\n\t\t\t\tif (is_proxied_array && typeof prop === 'string') {\n\t\t\t\t\tvar ls = /** @type {Source} */ (sources.get('length'));\n\t\t\t\t\tvar n = Number(prop);\n\n\t\t\t\t\tif (Number.isInteger(n) && n >= ls.v) {\n\t\t\t\t\t\tset(ls, n + 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tupdate_version(version);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\townKeys(target) {\n\t\t\tget(version);\n\n\t\t\tvar own_keys = Reflect.ownKeys(target).filter((key) => {\n\t\t\t\tvar source = sources.get(key);\n\t\t\t\treturn source === undefined || source.v !== UNINITIALIZED;\n\t\t\t});\n\n\t\t\tfor (var [key, source] of sources) {\n\t\t\t\tif (source.v !== UNINITIALIZED && !(key in target)) {\n\t\t\t\t\town_keys.push(key);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn own_keys;\n\t\t},\n\n\t\tsetPrototypeOf() {\n\t\t\te.state_prototype_fixed();\n\t\t}\n\t});\n}\n\n/**\n * @param {Source} signal\n * @param {1 | -1} [d]\n */\nfunction update_version(signal, d = 1) {\n\tset(signal, signal.v + d);\n}\n\n/**\n * @param {any} value\n */\nexport function get_proxied_value(value) {\n\tif (value !== null && typeof value === 'object' && STATE_SYMBOL in value) {\n\t\treturn value[STATE_SYMBOL];\n\t}\n\n\treturn value;\n}\n\n/**\n * @param {any} a\n * @param {any} b\n */\nexport function is(a, b) {\n\treturn Object.is(get_proxied_value(a), get_proxied_value(b));\n}\n","/** @import { Location } from 'locate-character' */\nimport { teardown } from '../../reactivity/effects.js';\nimport { define_property, is_array } from '../../../shared/utils.js';\nimport { hydrating } from '../hydration.js';\nimport { queue_micro_task } from '../task.js';\nimport { FILENAME } from '../../../../constants.js';\nimport * as w from '../../warnings.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\n\n/** @type {Set} */\nexport const all_registered_events = new Set();\n\n/** @type {Set<(events: Array) => void>} */\nexport const root_event_handles = new Set();\n\n/**\n * SSR adds onload and onerror attributes to catch those events before the hydration.\n * This function detects those cases, removes the attributes and replays the events.\n * @param {HTMLElement} dom\n */\nexport function replay_events(dom) {\n\tif (!hydrating) return;\n\n\tif (dom.onload) {\n\t\tdom.removeAttribute('onload');\n\t}\n\tif (dom.onerror) {\n\t\tdom.removeAttribute('onerror');\n\t}\n\t// @ts-expect-error\n\tconst event = dom.__e;\n\tif (event !== undefined) {\n\t\t// @ts-expect-error\n\t\tdom.__e = undefined;\n\t\tqueueMicrotask(() => {\n\t\t\tif (dom.isConnected) {\n\t\t\t\tdom.dispatchEvent(event);\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * @param {string} event_name\n * @param {EventTarget} dom\n * @param {EventListener} handler\n * @param {AddEventListenerOptions} options\n */\nexport function create_event(event_name, dom, handler, options) {\n\t/**\n\t * @this {EventTarget}\n\t */\n\tfunction target_handler(/** @type {Event} */ event) {\n\t\tif (!options.capture) {\n\t\t\t// Only call in the bubble phase, else delegated events would be called before the capturing events\n\t\t\thandle_event_propagation.call(dom, event);\n\t\t}\n\t\tif (!event.cancelBubble) {\n\t\t\tvar previous_reaction = active_reaction;\n\t\t\tvar previous_effect = active_effect;\n\n\t\t\tset_active_reaction(null);\n\t\t\tset_active_effect(null);\n\t\t\ttry {\n\t\t\t\treturn handler.call(this, event);\n\t\t\t} finally {\n\t\t\t\tset_active_reaction(previous_reaction);\n\t\t\t\tset_active_effect(previous_effect);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Chrome has a bug where pointer events don't work when attached to a DOM element that has been cloned\n\t// with cloneNode() and the DOM element is disconnected from the document. To ensure the event works, we\n\t// defer the attachment till after it's been appended to the document. TODO: remove this once Chrome fixes\n\t// this bug. The same applies to wheel events and touch events.\n\tif (\n\t\tevent_name.startsWith('pointer') ||\n\t\tevent_name.startsWith('touch') ||\n\t\tevent_name === 'wheel'\n\t) {\n\t\tqueue_micro_task(() => {\n\t\t\tdom.addEventListener(event_name, target_handler, options);\n\t\t});\n\t} else {\n\t\tdom.addEventListener(event_name, target_handler, options);\n\t}\n\n\treturn target_handler;\n}\n\n/**\n * Attaches an event handler to an element and returns a function that removes the handler. Using this\n * rather than `addEventListener` will preserve the correct order relative to handlers added declaratively\n * (with attributes like `onclick`), which use event delegation for performance reasons\n *\n * @param {EventTarget} element\n * @param {string} type\n * @param {EventListener} handler\n * @param {AddEventListenerOptions} [options]\n */\nexport function on(element, type, handler, options = {}) {\n\tvar target_handler = create_event(type, element, handler, options);\n\n\treturn () => {\n\t\telement.removeEventListener(type, target_handler, options);\n\t};\n}\n\n/**\n * @param {string} event_name\n * @param {Element} dom\n * @param {EventListener} handler\n * @param {boolean} capture\n * @param {boolean} [passive]\n * @returns {void}\n */\nexport function event(event_name, dom, handler, capture, passive) {\n\tvar options = { capture, passive };\n\tvar target_handler = create_event(event_name, dom, handler, options);\n\n\t// @ts-ignore\n\tif (dom === document.body || dom === window || dom === document) {\n\t\tteardown(() => {\n\t\t\tdom.removeEventListener(event_name, target_handler, options);\n\t\t});\n\t}\n}\n\n/**\n * @param {Array} events\n * @returns {void}\n */\nexport function delegate(events) {\n\tfor (var i = 0; i < events.length; i++) {\n\t\tall_registered_events.add(events[i]);\n\t}\n\n\tfor (var fn of root_event_handles) {\n\t\tfn(events);\n\t}\n}\n\n/**\n * @this {EventTarget}\n * @param {Event} event\n * @returns {void}\n */\nexport function handle_event_propagation(event) {\n\tvar handler_element = this;\n\tvar owner_document = /** @type {Node} */ (handler_element).ownerDocument;\n\tvar event_name = event.type;\n\tvar path = event.composedPath?.() || [];\n\tvar current_target = /** @type {null | Element} */ (path[0] || event.target);\n\n\t// composedPath contains list of nodes the event has propagated through.\n\t// We check __root to skip all nodes below it in case this is a\n\t// parent of the __root node, which indicates that there's nested\n\t// mounted apps. In this case we don't want to trigger events multiple times.\n\tvar path_idx = 0;\n\n\t// @ts-expect-error is added below\n\tvar handled_at = event.__root;\n\n\tif (handled_at) {\n\t\tvar at_idx = path.indexOf(handled_at);\n\t\tif (\n\t\t\tat_idx !== -1 &&\n\t\t\t(handler_element === document || handler_element === /** @type {any} */ (window))\n\t\t) {\n\t\t\t// This is the fallback document listener or a window listener, but the event was already handled\n\t\t\t// -> ignore, but set handle_at to document/window so that we're resetting the event\n\t\t\t// chain in case someone manually dispatches the same event object again.\n\t\t\t// @ts-expect-error\n\t\t\tevent.__root = handler_element;\n\t\t\treturn;\n\t\t}\n\n\t\t// We're deliberately not skipping if the index is higher, because\n\t\t// someone could create an event programmatically and emit it multiple times,\n\t\t// in which case we want to handle the whole propagation chain properly each time.\n\t\t// (this will only be a false negative if the event is dispatched multiple times and\n\t\t// the fallback document listener isn't reached in between, but that's super rare)\n\t\tvar handler_idx = path.indexOf(handler_element);\n\t\tif (handler_idx === -1) {\n\t\t\t// handle_idx can theoretically be -1 (happened in some JSDOM testing scenarios with an event listener on the window object)\n\t\t\t// so guard against that, too, and assume that everything was handled at this point.\n\t\t\treturn;\n\t\t}\n\n\t\tif (at_idx <= handler_idx) {\n\t\t\tpath_idx = at_idx;\n\t\t}\n\t}\n\n\tcurrent_target = /** @type {Element} */ (path[path_idx] || event.target);\n\t// there can only be one delegated event per element, and we either already handled the current target,\n\t// or this is the very first target in the chain which has a non-delegated listener, in which case it's safe\n\t// to handle a possible delegated event on it later (through the root delegation listener for example).\n\tif (current_target === handler_element) return;\n\n\t// Proxy currentTarget to correct target\n\tdefine_property(event, 'currentTarget', {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn current_target || owner_document;\n\t\t}\n\t});\n\n\t// This started because of Chromium issue https://chromestatus.com/feature/5128696823545856,\n\t// where removal or moving of of the DOM can cause sync `blur` events to fire, which can cause logic\n\t// to run inside the current `active_reaction`, which isn't what we want at all. However, on reflection,\n\t// it's probably best that all event handled by Svelte have this behaviour, as we don't really want\n\t// an event handler to run in the context of another reaction or effect.\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\n\ttry {\n\t\t/**\n\t\t * @type {unknown}\n\t\t */\n\t\tvar throw_error;\n\t\t/**\n\t\t * @type {unknown[]}\n\t\t */\n\t\tvar other_errors = [];\n\n\t\twhile (current_target !== null) {\n\t\t\t/** @type {null | Element} */\n\t\t\tvar parent_element =\n\t\t\t\tcurrent_target.assignedSlot ||\n\t\t\t\tcurrent_target.parentNode ||\n\t\t\t\t/** @type {any} */ (current_target).host ||\n\t\t\t\tnull;\n\n\t\t\ttry {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tvar delegated = current_target['__' + event_name];\n\n\t\t\t\tif (delegated !== undefined && !(/** @type {any} */ (current_target).disabled)) {\n\t\t\t\t\tif (is_array(delegated)) {\n\t\t\t\t\t\tvar [fn, ...data] = delegated;\n\t\t\t\t\t\tfn.apply(current_target, [event, ...data]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelegated.call(current_target, event);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (throw_error) {\n\t\t\t\t\tother_errors.push(error);\n\t\t\t\t} else {\n\t\t\t\t\tthrow_error = error;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (event.cancelBubble || parent_element === handler_element || parent_element === null) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrent_target = parent_element;\n\t\t}\n\n\t\tif (throw_error) {\n\t\t\tfor (let error of other_errors) {\n\t\t\t\t// Throw the rest of the errors, one-by-one on a microtask\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\tthrow error;\n\t\t\t\t});\n\t\t\t}\n\t\t\tthrow throw_error;\n\t\t}\n\t} finally {\n\t\t// @ts-expect-error is used above\n\t\tevent.__root = handler_element;\n\t\t// @ts-ignore remove proxy on currentTarget\n\t\tdelete event.currentTarget;\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t}\n}\n\n/**\n * In dev, warn if an event handler is not a function, as it means the\n * user probably called the handler or forgot to add a `() =>`\n * @param {() => (event: Event, ...args: any) => void} thunk\n * @param {EventTarget} element\n * @param {[Event, ...any]} args\n * @param {any} component\n * @param {[number, number]} [loc]\n * @param {boolean} [remove_parens]\n */\nexport function apply(\n\tthunk,\n\telement,\n\targs,\n\tcomponent,\n\tloc,\n\thas_side_effects = false,\n\tremove_parens = false\n) {\n\tlet handler;\n\tlet error;\n\n\ttry {\n\t\thandler = thunk();\n\t} catch (e) {\n\t\terror = e;\n\t}\n\n\tif (typeof handler === 'function') {\n\t\thandler.apply(element, args);\n\t} else if (has_side_effects || handler != null || error) {\n\t\tconst filename = component?.[FILENAME];\n\t\tconst location = loc ? ` at ${filename}:${loc[0]}:${loc[1]}` : ` in ${filename}`;\n\n\t\tconst event_name = args[0].type;\n\t\tconst description = `\\`${event_name}\\` handler${location}`;\n\t\tconst suggestion = remove_parens ? 'remove the trailing `()`' : 'add a leading `() =>`';\n\n\t\tw.event_handler_invalid(description, suggestion);\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n","/** @param {string} html */\nexport function create_fragment_from_html(html) {\n\tvar elem = document.createElement('template');\n\telem.innerHTML = html;\n\treturn elem.content;\n}\n","/** @import { Effect, TemplateNode } from '#client' */\nimport { hydrate_next, hydrate_node, hydrating, set_hydrate_node } from './hydration.js';\nimport { create_text, get_first_child } from './operations.js';\nimport { create_fragment_from_html } from './reconciler.js';\nimport { active_effect } from '../runtime.js';\nimport { TEMPLATE_FRAGMENT, TEMPLATE_USE_IMPORT_NODE } from '../../../constants.js';\nimport { queue_micro_task } from './task.js';\n\n/**\n * @param {TemplateNode} start\n * @param {TemplateNode | null} end\n */\nexport function assign_nodes(start, end) {\n\tvar effect = /** @type {Effect} */ (active_effect);\n\tif (effect.nodes_start === null) {\n\t\teffect.nodes_start = start;\n\t\teffect.nodes_end = end;\n\t}\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function template(content, flags) {\n\tvar is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;\n\tvar use_import_node = (flags & TEMPLATE_USE_IMPORT_NODE) !== 0;\n\n\t/** @type {Node} */\n\tvar node;\n\n\t/**\n\t * Whether or not the first item is a text/element node. If not, we need to\n\t * create an additional comment node to act as `effect.nodes.start`\n\t */\n\tvar has_start = !content.startsWith('');\n\n\treturn () => {\n\t\tif (hydrating) {\n\t\t\tassign_nodes(hydrate_node, null);\n\t\t\treturn hydrate_node;\n\t\t}\n\n\t\tif (node === undefined) {\n\t\t\tnode = create_fragment_from_html(has_start ? content : '' + content);\n\t\t\tif (!is_fragment) node = /** @type {Node} */ (get_first_child(node));\n\t\t}\n\n\t\tvar clone = /** @type {TemplateNode} */ (\n\t\t\tuse_import_node ? document.importNode(node, true) : node.cloneNode(true)\n\t\t);\n\n\t\tif (is_fragment) {\n\t\t\tvar start = /** @type {TemplateNode} */ (get_first_child(clone));\n\t\t\tvar end = /** @type {TemplateNode} */ (clone.lastChild);\n\n\t\t\tassign_nodes(start, end);\n\t\t} else {\n\t\t\tassign_nodes(clone, clone);\n\t\t}\n\n\t\treturn clone;\n\t};\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function template_with_script(content, flags) {\n\tvar fn = template(content, flags);\n\treturn () => run_scripts(/** @type {Element | DocumentFragment} */ (fn()));\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @param {'svg' | 'math'} ns\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function ns_template(content, flags, ns = 'svg') {\n\t/**\n\t * Whether or not the first item is a text/element node. If not, we need to\n\t * create an additional comment node to act as `effect.nodes.start`\n\t */\n\tvar has_start = !content.startsWith('');\n\n\tvar is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;\n\tvar wrapped = `<${ns}>${has_start ? content : '' + content}`;\n\n\t/** @type {Element | DocumentFragment} */\n\tvar node;\n\n\treturn () => {\n\t\tif (hydrating) {\n\t\t\tassign_nodes(hydrate_node, null);\n\t\t\treturn hydrate_node;\n\t\t}\n\n\t\tif (!node) {\n\t\t\tvar fragment = /** @type {DocumentFragment} */ (create_fragment_from_html(wrapped));\n\t\t\tvar root = /** @type {Element} */ (get_first_child(fragment));\n\n\t\t\tif (is_fragment) {\n\t\t\t\tnode = document.createDocumentFragment();\n\t\t\t\twhile (get_first_child(root)) {\n\t\t\t\t\tnode.appendChild(/** @type {Node} */ (get_first_child(root)));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnode = /** @type {Element} */ (get_first_child(root));\n\t\t\t}\n\t\t}\n\n\t\tvar clone = /** @type {TemplateNode} */ (node.cloneNode(true));\n\n\t\tif (is_fragment) {\n\t\t\tvar start = /** @type {TemplateNode} */ (get_first_child(clone));\n\t\t\tvar end = /** @type {TemplateNode} */ (clone.lastChild);\n\n\t\t\tassign_nodes(start, end);\n\t\t} else {\n\t\t\tassign_nodes(clone, clone);\n\t\t}\n\n\t\treturn clone;\n\t};\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function svg_template_with_script(content, flags) {\n\tvar fn = ns_template(content, flags);\n\treturn () => run_scripts(/** @type {Element | DocumentFragment} */ (fn()));\n}\n\n/**\n * @param {string} content\n * @param {number} flags\n * @returns {() => Node | Node[]}\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function mathml_template(content, flags) {\n\treturn ns_template(content, flags, 'math');\n}\n\n/**\n * Creating a document fragment from HTML that contains script tags will not execute\n * the scripts. We need to replace the script tags with new ones so that they are executed.\n * @param {Element | DocumentFragment} node\n * @returns {Node | Node[]}\n */\nfunction run_scripts(node) {\n\t// scripts were SSR'd, in which case they will run\n\tif (hydrating) return node;\n\n\tconst is_fragment = node.nodeType === 11;\n\tconst scripts =\n\t\t/** @type {HTMLElement} */ (node).tagName === 'SCRIPT'\n\t\t\t? [/** @type {HTMLScriptElement} */ (node)]\n\t\t\t: node.querySelectorAll('script');\n\tconst effect = /** @type {Effect} */ (active_effect);\n\n\tfor (const script of scripts) {\n\t\tconst clone = document.createElement('script');\n\t\tfor (var attribute of script.attributes) {\n\t\t\tclone.setAttribute(attribute.name, attribute.value);\n\t\t}\n\n\t\tclone.textContent = script.textContent;\n\n\t\t// The script has changed - if it's at the edges, the effect now points at dead nodes\n\t\tif (is_fragment ? node.firstChild === script : node === script) {\n\t\t\teffect.nodes_start = clone;\n\t\t}\n\t\tif (is_fragment ? node.lastChild === script : node === script) {\n\t\t\teffect.nodes_end = clone;\n\t\t}\n\n\t\tscript.replaceWith(clone);\n\t}\n\treturn node;\n}\n\n/**\n * Don't mark this as side-effect-free, hydration needs to walk all nodes\n * @param {any} value\n */\nexport function text(value = '') {\n\tif (!hydrating) {\n\t\tvar t = create_text(value + '');\n\t\tassign_nodes(t, t);\n\t\treturn t;\n\t}\n\n\tvar node = hydrate_node;\n\n\tif (node.nodeType !== 3) {\n\t\t// if an {expression} is empty during SSR, we need to insert an empty text node\n\t\tnode.before((node = create_text()));\n\t\tset_hydrate_node(node);\n\t}\n\n\tassign_nodes(node, node);\n\treturn node;\n}\n\nexport function comment() {\n\t// we're not delegating to `template` here for performance reasons\n\tif (hydrating) {\n\t\tassign_nodes(hydrate_node, null);\n\t\treturn hydrate_node;\n\t}\n\n\tvar frag = document.createDocumentFragment();\n\tvar start = document.createComment('');\n\tvar anchor = create_text();\n\tfrag.append(start, anchor);\n\n\tassign_nodes(start, anchor);\n\n\treturn frag;\n}\n\n/**\n * Assign the created (or in hydration mode, traversed) dom elements to the current block\n * and insert the elements into the dom (in client mode).\n * @param {Text | Comment | Element} anchor\n * @param {DocumentFragment | Element} dom\n */\nexport function append(anchor, dom) {\n\tif (hydrating) {\n\t\t/** @type {Effect} */ (active_effect).nodes_end = hydrate_node;\n\t\thydrate_next();\n\t\treturn;\n\t}\n\n\tif (anchor === null) {\n\t\t// edge case — void `` with content\n\t\treturn;\n\t}\n\n\tanchor.before(/** @type {Node} */ (dom));\n}\n","/** @import { Effect, TemplateNode } from '#client' */\nimport { EFFECT_TRANSPARENT } from '../../constants.js';\nimport {\n\thydrate_next,\n\thydrate_node,\n\thydrating,\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 } from '../../../../constants.js';\n\n/**\n * @param {TemplateNode} node\n * @param {() => boolean} get_condition\n * @param {(anchor: Node) => void} consequent_fn\n * @param {null | ((anchor: Node) => void)} [alternate_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, get_condition, consequent_fn, alternate_fn = null, 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 {boolean | null} */\n\tvar condition = null;\n\n\tvar flags = elseif ? EFFECT_TRANSPARENT : 0;\n\n\tblock(() => {\n\t\tif (condition === (condition = !!get_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 = /** @type {Comment} */ (anchor).data === 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\tif (condition) {\n\t\t\tif (consequent_effect) {\n\t\t\t\tresume_effect(consequent_effect);\n\t\t\t} else {\n\t\t\t\tconsequent_effect = branch(() => consequent_fn(anchor));\n\t\t\t}\n\n\t\t\tif (alternate_effect) {\n\t\t\t\tpause_effect(alternate_effect, () => {\n\t\t\t\t\talternate_effect = null;\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tif (alternate_effect) {\n\t\t\t\tresume_effect(alternate_effect);\n\t\t\t} else if (alternate_fn) {\n\t\t\t\talternate_effect = branch(() => alternate_fn(anchor));\n\t\t\t}\n\n\t\t\tif (consequent_effect) {\n\t\t\t\tpause_effect(consequent_effect, () => {\n\t\t\t\t\tconsequent_effect = null;\n\t\t\t\t});\n\t\t\t}\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}, flags);\n\n\tif (hydrating) {\n\t\tanchor = hydrate_node;\n\t}\n}\n","/** @import { StoreReferencesContainer } from '#client' */\n/** @import { Store } from '#shared' */\nimport { subscribe_to_store } from '../../../store/utils.js';\nimport { noop } from '../../shared/utils.js';\nimport { get } from '../runtime.js';\nimport { teardown } from './effects.js';\nimport { mutable_source, set } from './sources.js';\n\n/**\n * Whether or not the prop currently being read is a store binding, as in\n * ``. 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\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 | 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 (entry.store !== store) {\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\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 | 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} 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}\n */\nexport function setup_stores() {\n\t/** @type {StoreReferencesContainer} */\n\tconst stores = {};\n\n\tteardown(() => {\n\t\tfor (var store_name in stores) {\n\t\t\tconst ref = stores[store_name];\n\t\t\tref.unsubscribe();\n\t\t}\n\t});\n\n\treturn stores;\n}\n\n/**\n * Updates a store with a new value.\n * @param {Store} 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} 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} 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 { Derived, 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 { mutable_source, set, source } from './sources.js';\nimport { derived, derived_safe_equal } from './deriveds.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tget,\n\tis_signals_recorded,\n\tset_active_effect,\n\tuntrack,\n\tupdate\n} from '../runtime.js';\nimport { safe_equals } from './equality.js';\nimport * as e from '../errors.js';\nimport { BRANCH_EFFECT, DESTROYED, LEGACY_DERIVED_PROP, ROOT_EFFECT } from '../constants.js';\nimport { proxy } from '../proxy.js';\nimport { capture_store_binding } from './store.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, exclude: Array, 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} props\n * @param {string[]} exclude\n * @param {string} [name]\n * @returns {Record}\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, exclude: Array, special: Record unknown>, version: Source }>}}\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\t// Handle props that can temporarily get out of sync with the parent\n\t\t\t/** @type {Record unknown>} */\n\t\t\ttarget.special[key] = prop(\n\t\t\t\t{\n\t\t\t\t\tget [key]() {\n\t\t\t\t\t\treturn target.props[key];\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t/** @type {string} */ (key),\n\t\t\t\tPROPS_IS_UPDATED\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} props\n * @param {string[]} exclude\n * @returns {Record}\n */\nexport function legacy_rest_props(props, exclude) {\n\treturn new Proxy({ props, exclude, special: {}, version: source(0) }, legacy_rest_props_handler);\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 * @template {Record} T\n * @type {ProxyHandler<{ props: Array T)> }>}}\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\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} */\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\tfor (const key in 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)>} props\n * @returns {any}\n */\nexport function spread_props(...props) {\n\treturn new Proxy({ props }, spread_props_handler);\n}\n\n/**\n * @template T\n * @param {() => T} fn\n * @returns {T}\n */\nfunction with_parent_branch(fn) {\n\tvar effect = active_effect;\n\tvar previous_effect = active_effect;\n\n\twhile (effect !== null && (effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0) {\n\t\teffect = effect.parent;\n\t}\n\ttry {\n\t\tset_active_effect(effect);\n\t\treturn fn();\n\t} finally {\n\t\tset_active_effect(previous_effect);\n\t}\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} 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 immutable = (flags & PROPS_IS_IMMUTABLE) !== 0;\n\tvar runes = (flags & PROPS_IS_RUNES) !== 0;\n\tvar bindable = (flags & PROPS_IS_BINDABLE) !== 0;\n\tvar lazy = (flags & PROPS_IS_LAZY_INITIAL) !== 0;\n\tvar is_store_sub = false;\n\tvar prop_value;\n\n\tif (bindable) {\n\t\t[prop_value, is_store_sub] = capture_store_binding(() => /** @type {V} */ (props[key]));\n\t} else {\n\t\tprop_value = /** @type {V} */ (props[key]);\n\t}\n\tvar setter = get_descriptor(props, key)?.set;\n\n\tvar fallback_value = /** @type {V} */ (fallback);\n\tvar fallback_dirty = true;\n\tvar fallback_used = false;\n\n\tvar get_fallback = () => {\n\t\tfallback_used = true;\n\t\tif (fallback_dirty) {\n\t\t\tfallback_dirty = false;\n\t\t\tif (lazy) {\n\t\t\t\tfallback_value = untrack(/** @type {() => V} */ (fallback));\n\t\t\t} else {\n\t\t\t\tfallback_value = /** @type {V} */ (fallback);\n\t\t\t}\n\t\t}\n\n\t\treturn fallback_value;\n\t};\n\n\tif (prop_value === undefined && fallback !== undefined) {\n\t\tif (setter && runes) {\n\t\t\te.props_invalid_value(key);\n\t\t}\n\n\t\tprop_value = get_fallback();\n\t\tif (setter) setter(prop_value);\n\t}\n\n\t/** @type {() => V} */\n\tvar getter;\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\tfallback_used = false;\n\t\t\treturn value;\n\t\t};\n\t} else {\n\t\t// Svelte 4 did not trigger updates when a primitive value was updated to the same value.\n\t\t// Replicate that behavior through using a derived\n\t\tvar derived_getter = with_parent_branch(() =>\n\t\t\t(immutable ? derived : derived_safe_equal)(() => /** @type {V} */ (props[key]))\n\t\t);\n\t\tderived_getter.f |= LEGACY_DERIVED_PROP;\n\t\tgetter = () => {\n\t\t\tvar value = get(derived_getter);\n\t\t\tif (value !== undefined) fallback_value = /** @type {V} */ (undefined);\n\t\t\treturn value === undefined ? fallback_value : value;\n\t\t};\n\t}\n\n\t// easy mode — prop is never written to\n\tif ((flags & PROPS_IS_UPDATED) === 0) {\n\t\treturn getter;\n\t}\n\n\t// intermediate mode — prop is written to, but the parent component had\n\t// `bind:foo` which means we can just call `$$props.foo = value` directly\n\tif (setter) {\n\t\tvar legacy_parent = props.$$legacy;\n\t\treturn function (/** @type {any} */ value, /** @type {boolean} */ mutation) {\n\t\t\tif (arguments.length > 0) {\n\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// In that case the state proxy (if it exists) should take care of the notification.\n\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// has changed because the parent will not be able to detect the change otherwise.\n\t\t\t\tif (!runes || !mutation || legacy_parent || is_store_sub) {\n\t\t\t\t\t/** @type {Function} */ (setter)(mutation ? getter() : value);\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\treturn getter();\n\t\t\t}\n\t\t};\n\t}\n\n\t// hard mode. this is where it gets ugly — the value in the child should\n\t// synchronize with the parent, but it should also be possible to temporarily\n\t// set the value to something else locally.\n\tvar from_child = false;\n\tvar was_from_child = false;\n\n\t// The derived returns the current value. The underlying mutable\n\t// source is written to from various places to persist this value.\n\tvar inner_current_value = mutable_source(prop_value);\n\n\tvar current_value = with_parent_branch(() =>\n\t\tderived(() => {\n\t\t\tvar parent_value = getter();\n\t\t\tvar child_value = get(inner_current_value);\n\t\t\tvar current_derived = /** @type {Derived} */ (active_reaction);\n\n\t\t\t// If the getter from the parent returns undefined, switch\n\t\t\t// to using the local value from inner_current_value instead,\n\t\t\t// as the parent value might have been torn down\n\t\t\tif (from_child || (parent_value === undefined && (current_derived.f & DESTROYED) !== 0)) {\n\t\t\t\tfrom_child = false;\n\t\t\t\twas_from_child = true;\n\t\t\t\treturn child_value;\n\t\t\t}\n\n\t\t\twas_from_child = false;\n\t\t\treturn (inner_current_value.v = parent_value);\n\t\t})\n\t);\n\n\tif (!immutable) current_value.equals = safe_equals;\n\n\treturn function (/** @type {any} */ value, /** @type {boolean} */ mutation) {\n\t\t// legacy nonsense — need to ensure the source is invalidated when necessary\n\t\t// also needed for when handling inspect logic so we can inspect the correct source signal\n\t\tif (is_signals_recorded) {\n\t\t\t// set this so that we don't reset to the parent value if `d`\n\t\t\t// is invalidated because of `invalidate_inner_signals` (rather\n\t\t\t// than because the parent or child value changed)\n\t\t\tfrom_child = was_from_child;\n\t\t\t// invoke getters so that signals are picked up by `invalidate_inner_signals`\n\t\t\tgetter();\n\t\t\tget(inner_current_value);\n\t\t}\n\n\t\tif (arguments.length > 0) {\n\t\t\tconst new_value = mutation ? get(current_value) : runes && bindable ? proxy(value) : value;\n\n\t\t\tif (!current_value.equals(new_value)) {\n\t\t\t\tfrom_child = true;\n\t\t\t\tset(inner_current_value, new_value);\n\t\t\t\t// To ensure the fallback value is consistent when used with proxies, we\n\t\t\t\t// update the local fallback_value, but only if the fallback is actively used\n\t\t\t\tif (fallback_used && fallback_value !== undefined) {\n\t\t\t\t\tfallback_value = new_value;\n\t\t\t\t}\n\t\t\t\tuntrack(() => get(current_value)); // force a synchronisation immediately\n\t\t\t}\n\n\t\t\treturn value;\n\t\t}\n\t\treturn get(current_value);\n\t};\n}\n","// generated during release, do not modify\n\n/**\n * The current version, as set in package.json.\n *\n * https://svelte.dev/docs/svelte-compiler#svelte-version\n * @type {string}\n */\nexport const VERSION = '5.1.3';\nexport const PUBLIC_VERSION = '5';\n","import { PUBLIC_VERSION } from '../version.js';\n\nif (typeof window !== 'undefined')\n\t// @ts-ignore\n\t(window.__svelte ||= { v: new Set() }).v.add(PUBLIC_VERSION);\n"],"names":["proxy","value","parent","prev","STATE_SYMBOL","prototype","get_prototype_of","object_prototype","array_prototype","sources","is_proxied_array","is_array","version","source","metadata","_","prop","descriptor","e.state_descriptors_fixed","s","set","target","UNINITIALIZED","ls","n","update_version","receiver","exists","_a","get_descriptor","v","get","has","active_effect","i","other_s","own_keys","key","e.state_prototype_fixed","signal","d","all_registered_events","root_event_handles","create_event","event_name","dom","handler","options","target_handler","event","handle_event_propagation","previous_reaction","active_reaction","previous_effect","set_active_reaction","set_active_effect","queue_micro_task","capture","passive","teardown","handler_element","owner_document","path","current_target","path_idx","handled_at","at_idx","handler_idx","define_property","throw_error","other_errors","parent_element","delegated","fn","data","error","create_fragment_from_html","html","elem","assign_nodes","start","end","effect","template","content","flags","is_fragment","TEMPLATE_FRAGMENT","use_import_node","TEMPLATE_USE_IMPORT_NODE","node","has_start","hydrating","hydrate_node","get_first_child","clone","text","t","create_text","set_hydrate_node","comment","frag","anchor","append","hydrate_next","if_block","get_condition","consequent_fn","alternate_fn","elseif","consequent_effect","alternate_effect","condition","EFFECT_TRANSPARENT","block","mismatch","is_else","HYDRATION_START_ELSE","remove_nodes","set_hydrating","resume_effect","branch","pause_effect","is_store_binding","store_get","store","store_name","stores","entry","mutable_source","noop","is_synchronous_callback","subscribe_to_store","setup_stores","store_mutate","expression","new_value","capture_store_binding","previous_is_store_binding","legacy_rest_props_handler","PROPS_IS_UPDATED","update","legacy_rest_props","props","exclude","with_parent_branch","BRANCH_EFFECT","ROOT_EFFECT","fallback","immutable","PROPS_IS_IMMUTABLE","runes","PROPS_IS_RUNES","bindable","PROPS_IS_BINDABLE","lazy","PROPS_IS_LAZY_INITIAL","is_store_sub","prop_value","setter","fallback_value","fallback_dirty","fallback_used","get_fallback","untrack","e.props_invalid_value","getter","derived_getter","derived","derived_safe_equal","LEGACY_DERIVED_PROP","legacy_parent","mutation","from_child","was_from_child","inner_current_value","current_value","parent_value","child_value","current_derived","DESTROYED","safe_equals","PUBLIC_VERSION"],"mappings":"gdAuBO,SAASA,EAAMC,EAAOC,EAAS,KAAMC,EAAM,CAEjD,GAAI,OAAOF,GAAU,UAAYA,IAAU,MAAQG,KAAgBH,EAClE,OAAOA,EAGR,MAAMI,EAAYC,GAAiBL,CAAK,EAExC,GAAII,IAAcE,IAAoBF,IAAcG,GACnD,OAAOP,EAIR,IAAIQ,EAAU,IAAI,IACdC,EAAmBC,EAASV,CAAK,EACjCW,EAAUC,EAAO,CAAC,EAElBH,GAGHD,EAAQ,IAAI,SAAUI,EAA6BZ,EAAO,MAAM,CAAC,EAIlE,IAAIa,EAwBJ,OAAO,IAAI,MAA0Bb,EAAQ,CAC5C,eAAec,EAAGC,EAAMC,EAAY,EAElC,EAAE,UAAWA,IACbA,EAAW,eAAiB,IAC5BA,EAAW,aAAe,IAC1BA,EAAW,WAAa,KAMxBC,KAGD,IAAIC,EAAIV,EAAQ,IAAIO,CAAI,EAExB,OAAIG,IAAM,QACTA,EAAIN,EAAOI,EAAW,KAAK,EAC3BR,EAAQ,IAAIO,EAAMG,CAAC,GAEnBC,EAAID,EAAGnB,EAAMiB,EAAW,MAAOH,CAAQ,CAAC,EAGlC,EACP,EAED,eAAeO,EAAQL,EAAM,CAC5B,IAAIG,EAAIV,EAAQ,IAAIO,CAAI,EAExB,GAAIG,IAAM,OACLH,KAAQK,GACXZ,EAAQ,IAAIO,EAAMH,EAAOS,CAAa,CAAC,MAElC,CAGN,GAAIZ,GAAoB,OAAOM,GAAS,SAAU,CACjD,IAAIO,EAAoCd,EAAQ,IAAI,QAAQ,EACxDe,EAAI,OAAOR,CAAI,EAEf,OAAO,UAAUQ,CAAC,GAAKA,EAAID,EAAG,GACjCH,EAAIG,EAAIC,CAAC,CAEV,CACDJ,EAAID,EAAGG,CAAa,EACpBG,EAAeb,CAAO,CACtB,CAED,MAAO,EACP,EAED,IAAIS,EAAQL,EAAMU,EAAU,OAK3B,GAAIV,IAASZ,EACZ,OAAOH,EAGR,IAAIkB,EAAIV,EAAQ,IAAIO,CAAI,EACpBW,EAASX,KAAQK,EAQrB,GALIF,IAAM,SAAc,CAACQ,IAAUC,EAAAC,EAAeR,EAAQL,CAAI,IAA3B,MAAAY,EAA8B,YAChET,EAAIN,EAAOb,EAAM2B,EAASN,EAAOL,CAAI,EAAIM,EAAeR,CAAQ,CAAC,EACjEL,EAAQ,IAAIO,EAAMG,CAAC,GAGhBA,IAAM,OAAW,CACpB,IAAIW,EAAIC,EAAIZ,CAAC,EAiBb,OAAOW,IAAMR,EAAgB,OAAYQ,CACzC,CAED,OAAO,QAAQ,IAAIT,EAAQL,EAAMU,CAAQ,CACzC,EAED,yBAAyBL,EAAQL,EAAM,CACtC,IAAIC,EAAa,QAAQ,yBAAyBI,EAAQL,CAAI,EAE9D,GAAIC,GAAc,UAAWA,EAAY,CACxC,IAAIE,EAAIV,EAAQ,IAAIO,CAAI,EACpBG,IAAGF,EAAW,MAAQc,EAAIZ,CAAC,EACnC,SAAcF,IAAe,OAAW,CACpC,IAAIJ,EAASJ,EAAQ,IAAIO,CAAI,EACzBf,EAAQY,GAAA,YAAAA,EAAQ,EAEpB,GAAIA,IAAW,QAAaZ,IAAUqB,EACrC,MAAO,CACN,WAAY,GACZ,aAAc,GACd,MAAArB,EACA,SAAU,EAChB,CAEI,CAED,OAAOgB,CACP,EAED,IAAII,EAAQL,EAAM,OAKjB,GAAIA,IAASZ,EACZ,MAAO,GAGR,IAAIe,EAAIV,EAAQ,IAAIO,CAAI,EACpBgB,EAAOb,IAAM,QAAaA,EAAE,IAAMG,GAAkB,QAAQ,IAAID,EAAQL,CAAI,EAEhF,GACCG,IAAM,QACLc,IAAkB,OAAS,CAACD,IAAOJ,EAAAC,EAAeR,EAAQL,CAAI,IAA3B,MAAAY,EAA8B,UACjE,CACGT,IAAM,SACTA,EAAIN,EAAOmB,EAAMhC,EAAMqB,EAAOL,CAAI,EAAGF,CAAQ,EAAIQ,CAAa,EAC9Db,EAAQ,IAAIO,EAAMG,CAAC,GAGpB,IAAIlB,EAAQ8B,EAAIZ,CAAC,EACjB,GAAIlB,IAAUqB,EACb,MAAO,EAER,CAED,OAAOU,CACP,EAED,IAAIX,EAAQL,EAAMf,EAAOyB,EAAU,OAClC,IAAIP,EAAIV,EAAQ,IAAIO,CAAI,EACpBgB,EAAMhB,KAAQK,EAGlB,GAAIX,GAAoBM,IAAS,SAChC,QAASkB,EAAIjC,EAAOiC,EAAmCf,EAAG,EAAGe,GAAK,EAAG,CACpE,IAAIC,EAAU1B,EAAQ,IAAIyB,EAAI,EAAE,EAC5BC,IAAY,OACff,EAAIe,EAASb,CAAa,EAChBY,KAAKb,IAIfc,EAAUtB,EAAOS,CAAa,EAC9Bb,EAAQ,IAAIyB,EAAI,GAAIC,CAAO,EAE5B,CAOEhB,IAAM,QACL,CAACa,IAAOJ,EAAAC,EAAeR,EAAQL,CAAI,IAA3B,MAAAY,EAA8B,YACzCT,EAAIN,EAAO,MAAS,EACpBO,EAAID,EAAGnB,EAAMC,EAAOa,CAAQ,CAAC,EAC7BL,EAAQ,IAAIO,EAAMG,CAAC,IAGpBa,EAAMb,EAAE,IAAMG,EACdF,EAAID,EAAGnB,EAAMC,EAAOa,CAAQ,CAAC,GAY9B,IAAIG,EAAa,QAAQ,yBAAyBI,EAAQL,CAAI,EAO9D,GAJIC,GAAA,MAAAA,EAAY,KACfA,EAAW,IAAI,KAAKS,EAAUzB,CAAK,EAGhC,CAAC+B,EAAK,CAKT,GAAItB,GAAoB,OAAOM,GAAS,SAAU,CACjD,IAAIO,EAAoCd,EAAQ,IAAI,QAAQ,EACxDe,EAAI,OAAOR,CAAI,EAEf,OAAO,UAAUQ,CAAC,GAAKA,GAAKD,EAAG,GAClCH,EAAIG,EAAIC,EAAI,CAAC,CAEd,CAEDC,EAAeb,CAAO,CACtB,CAED,MAAO,EACP,EAED,QAAQS,EAAQ,CACfU,EAAInB,CAAO,EAEX,IAAIwB,EAAW,QAAQ,QAAQf,CAAM,EAAE,OAAQgB,GAAQ,CACtD,IAAIxB,EAASJ,EAAQ,IAAI4B,CAAG,EAC5B,OAAOxB,IAAW,QAAaA,EAAO,IAAMS,CAChD,CAAI,EAED,OAAS,CAACe,EAAKxB,CAAM,IAAKJ,EACrBI,EAAO,IAAMS,GAAiB,EAAEe,KAAOhB,IAC1Ce,EAAS,KAAKC,CAAG,EAInB,OAAOD,CACP,EAED,gBAAiB,CAChBE,IACA,CACH,CAAE,CACF,CAMA,SAASb,EAAec,EAAQC,EAAI,EAAG,CACtCpB,EAAImB,EAAQA,EAAO,EAAIC,CAAC,CACzB,CC/SY,MAACC,GAAwB,IAAI,IAG5BC,GAAqB,IAAI,IAmC/B,SAASC,GAAaC,EAAYC,EAAKC,EAASC,EAAS,CAI/D,SAASC,EAAoCC,EAAO,CAKnD,GAJKF,EAAQ,SAEZG,GAAyB,KAAKL,EAAKI,CAAK,EAErC,CAACA,EAAM,aAAc,CACxB,IAAIE,EAAoBC,EACpBC,EAAkBpB,EAEtBqB,EAAoB,IAAI,EACxBC,EAAkB,IAAI,EACtB,GAAI,CACH,OAAOT,EAAQ,KAAK,KAAMG,CAAK,CACnC,QAAa,CACTK,EAAoBH,CAAiB,EACrCI,EAAkBF,CAAe,CACjC,CACD,CACD,CAMD,OACCT,EAAW,WAAW,SAAS,GAC/BA,EAAW,WAAW,OAAO,GAC7BA,IAAe,QAEfY,GAAiB,IAAM,CACtBX,EAAI,iBAAiBD,EAAYI,EAAgBD,CAAO,CAC3D,CAAG,EAEDF,EAAI,iBAAiBD,EAAYI,EAAgBD,CAAO,EAGlDC,CACR,CA4BO,SAASC,GAAML,EAAYC,EAAKC,EAASW,EAASC,EAAS,CACjE,IAAIX,EAAU,CAAE,QAAAU,EAAS,QAAAC,GACrBV,EAAiBL,GAAaC,EAAYC,EAAKC,EAASC,CAAO,GAG/DF,IAAQ,SAAS,MAAQA,IAAQ,QAAUA,IAAQ,WACtDc,GAAS,IAAM,CACdd,EAAI,oBAAoBD,EAAYI,EAAgBD,CAAO,CAC9D,CAAG,CAEH,CAqBO,SAASG,GAAyBD,EAAO,OAC/C,IAAIW,EAAkB,KAClBC,EAAsCD,EAAiB,cACvDhB,EAAaK,EAAM,KACnBa,IAAOlC,EAAAqB,EAAM,eAAN,YAAArB,EAAA,KAAAqB,KAA0B,CAAA,EACjCc,EAAgDD,EAAK,CAAC,GAAKb,EAAM,OAMjEe,EAAW,EAGXC,EAAahB,EAAM,OAEvB,GAAIgB,EAAY,CACf,IAAIC,EAASJ,EAAK,QAAQG,CAAU,EACpC,GACCC,IAAW,KACVN,IAAoB,UAAYA,IAAwC,QACxE,CAKDX,EAAM,OAASW,EACf,MACA,CAOD,IAAIO,EAAcL,EAAK,QAAQF,CAAe,EAC9C,GAAIO,IAAgB,GAGnB,OAGGD,GAAUC,IACbH,EAAWE,EAEZ,CAMD,GAJAH,EAAyCD,EAAKE,CAAQ,GAAKf,EAAM,OAI7Dc,IAAmBH,EAGvB,CAAAQ,GAAgBnB,EAAO,gBAAiB,CACvC,aAAc,GACd,KAAM,CACL,OAAOc,GAAkBF,CACzB,CACH,CAAE,EAOD,IAAIV,EAAoBC,EACpBC,EAAkBpB,EACtBqB,EAAoB,IAAI,EACxBC,EAAkB,IAAI,EAEtB,GAAI,CAUH,QANIc,EAIAC,EAAe,CAAA,EAEZP,IAAmB,MAAM,CAE/B,IAAIQ,EACHR,EAAe,cACfA,EAAe,YACKA,EAAgB,MACpC,KAED,GAAI,CAEH,IAAIS,EAAYT,EAAe,KAAOnB,CAAU,EAEhD,GAAI4B,IAAc,QAAa,CAAsBT,EAAgB,SACpE,GAAIpD,EAAS6D,CAAS,EAAG,CACxB,GAAI,CAACC,EAAI,GAAGC,CAAI,EAAIF,EACpBC,EAAG,MAAMV,EAAgB,CAACd,EAAO,GAAGyB,CAAI,CAAC,CAC/C,MACMF,EAAU,KAAKT,EAAgBd,CAAK,CAGtC,OAAQ0B,EAAO,CACXN,EACHC,EAAa,KAAKK,CAAK,EAEvBN,EAAcM,CAEf,CACD,GAAI1B,EAAM,cAAgBsB,IAAmBX,GAAmBW,IAAmB,KAClF,MAEDR,EAAiBQ,CACjB,CAED,GAAIF,EAAa,CAChB,QAASM,KAASL,EAEjB,eAAe,IAAM,CACpB,MAAMK,CACX,CAAK,EAEF,MAAMN,CACN,CACH,QAAW,CAETpB,EAAM,OAASW,EAEf,OAAOX,EAAM,cACbK,EAAoBH,CAAiB,EACrCI,EAAkBF,CAAe,CACjC,EACF,CC3RO,SAASuB,GAA0BC,EAAM,CAC/C,IAAIC,EAAO,SAAS,cAAc,UAAU,EAC5C,OAAAA,EAAK,UAAYD,EACVC,EAAK,OACb,CCOO,SAASC,EAAaC,EAAOC,EAAK,CACxC,IAAIC,EAAgCjD,EAChCiD,EAAO,cAAgB,OAC1BA,EAAO,YAAcF,EACrBE,EAAO,UAAYD,EAErB,CAQO,SAASE,GAASC,EAASC,EAAO,CACxC,IAAIC,GAAeD,EAAQE,MAAuB,EAC9CC,GAAmBH,EAAQI,MAA8B,EAGzDC,EAMAC,EAAY,CAACP,EAAQ,WAAW,KAAK,EAEzC,MAAO,IAAM,CACZ,GAAIQ,EACH,OAAAb,EAAac,EAAc,IAAI,EACxBA,EAGJH,IAAS,SACZA,EAAOd,GAA0Be,EAAYP,EAAU,MAAQA,CAAO,EACjEE,IAAaI,EAA4BI,EAAgBJ,CAAI,IAGnE,IAAIK,EACHP,EAAkB,SAAS,WAAWE,EAAM,EAAI,EAAIA,EAAK,UAAU,EAAI,EAGxE,GAAIJ,EAAa,CAChB,IAAIN,EAAqCc,EAAgBC,CAAK,EAC1Dd,EAAmCc,EAAM,UAE7ChB,EAAaC,EAAOC,CAAG,CAC1B,MACGF,EAAagB,EAAOA,CAAK,EAG1B,OAAOA,CACT,CACA,CAmIO,SAASC,GAAK/F,EAAQ,GAAI,CAChC,GAAI,CAAC2F,EAAW,CACf,IAAIK,EAAIC,EAAYjG,EAAQ,EAAE,EAC9B,OAAA8E,EAAakB,EAAGA,CAAC,EACVA,CACP,CAED,IAAIP,EAAOG,EAEX,OAAIH,EAAK,WAAa,IAErBA,EAAK,OAAQA,EAAOQ,EAAa,CAAA,EACjCC,GAAiBT,CAAI,GAGtBX,EAAaW,EAAMA,CAAI,EAChBA,CACR,CAEO,SAASU,IAAU,CAEzB,GAAIR,EACH,OAAAb,EAAac,EAAc,IAAI,EACxBA,EAGR,IAAIQ,EAAO,SAAS,yBAChBrB,EAAQ,SAAS,cAAc,EAAE,EACjCsB,EAASJ,IACb,OAAAG,EAAK,OAAOrB,EAAOsB,CAAM,EAEzBvB,EAAaC,EAAOsB,CAAM,EAEnBD,CACR,CAQO,SAASE,GAAOD,EAAQzD,EAAK,CACnC,GAAI+C,EAAW,CACS3D,EAAe,UAAY4D,EAClDW,KACA,MACA,CAEGF,IAAW,MAKfA,EAAO,OAA4BzD,EACpC,CCtOO,SAAS4D,GAASf,EAAMgB,EAAeC,EAAeC,EAAe,KAAMC,EAAS,GAAO,CAC7FjB,GACHY,KAGD,IAAIF,EAASZ,EAGToB,EAAoB,KAGpBC,EAAmB,KAGnBC,EAAY,KAEZ3B,EAAQwB,EAASI,GAAqB,EAE1CC,GAAM,IAAM,CACX,GAAIF,KAAeA,EAAY,CAAC,CAACN,EAAa,GAAK,OAGnD,IAAIS,EAAW,GAEf,GAAIvB,EAAW,CACd,MAAMwB,EAAkCd,EAAQ,OAASe,GAErDL,IAAcI,IAGjBd,EAASgB,GAAY,EAErBnB,GAAiBG,CAAM,EACvBiB,EAAc,EAAK,EACnBJ,EAAW,GAEZ,CAEGH,GACCF,EACHU,EAAcV,CAAiB,EAE/BA,EAAoBW,EAAO,IAAMd,EAAcL,CAAM,CAAC,EAGnDS,GACHW,EAAaX,EAAkB,IAAM,CACpCA,EAAmB,IACxB,CAAK,IAGEA,EACHS,EAAcT,CAAgB,EACpBH,IACVG,EAAmBU,EAAO,IAAMb,EAAaN,CAAM,CAAC,GAGjDQ,GACHY,EAAaZ,EAAmB,IAAM,CACrCA,EAAoB,IACzB,CAAK,GAICK,GAEHI,EAAc,EAAI,CAEnB,EAAElC,CAAK,EAEJO,IACHU,EAAST,EAEX,CCjFA,IAAI8B,EAAmB,GAYhB,SAASC,GAAUC,EAAOC,EAAYC,EAAQ,CACpD,MAAMC,EAASD,EAAAD,KAAAC,EAAAD,GAAuB,CACrC,MAAO,KACP,OAAQG,GAAe,MAAS,EAChC,YAAaC,CACf,GAEC,GAAIF,EAAM,QAAUH,EAInB,GAHAG,EAAM,YAAW,EACjBA,EAAM,MAAQH,GAAS,KAEnBA,GAAS,KACZG,EAAM,OAAO,EAAI,OACjBA,EAAM,YAAcE,MACd,CACN,IAAIC,EAA0B,GAE9BH,EAAM,YAAcI,GAAmBP,EAAQ/F,GAAM,CAChDqG,EAGHH,EAAM,OAAO,EAAIlG,EAEjBV,EAAI4G,EAAM,OAAQlG,CAAC,CAExB,CAAI,EAEDqG,EAA0B,EAC1B,CAGF,OAAOpG,EAAIiG,EAAM,MAAM,CACxB,CAkDO,SAASK,IAAe,CAE9B,MAAMN,EAAS,CAAA,EAEf,OAAApE,GAAS,IAAM,CACd,QAASmE,KAAcC,EACVA,EAAOD,CAAU,EACzB,YAAW,CAElB,CAAE,EAEMC,CACR,CASO,SAASO,GAAaT,EAAOU,EAAYC,EAAW,CAC1D,OAAAX,EAAM,IAAIW,CAAS,EACZD,CACR,CAwCO,SAASE,GAAsBhE,EAAI,CACzC,IAAIiE,EAA4Bf,EAEhC,GAAI,CACH,OAAAA,EAAmB,GACZ,CAAClD,IAAMkD,CAAgB,CAChC,QAAW,CACTA,EAAmBe,CACnB,CACF,CC5EA,MAAMC,GAA4B,CACjC,IAAItH,EAAQgB,EAAK,CAChB,GAAI,CAAAhB,EAAO,QAAQ,SAASgB,CAAG,EAC/B,OAAAN,EAAIV,EAAO,OAAO,EACXgB,KAAOhB,EAAO,QAAUA,EAAO,QAAQgB,CAAG,IAAMhB,EAAO,MAAMgB,CAAG,CACvE,EACD,IAAIhB,EAAQgB,EAAKpC,EAAO,CACvB,OAAMoC,KAAOhB,EAAO,UAGnBA,EAAO,QAAQgB,CAAG,EAAIrB,GACrB,CACC,IAAKqB,CAAG,GAAI,CACX,OAAOhB,EAAO,MAAMgB,CAAG,CACvB,CACD,EACsBA,EACvBuG,EACJ,GAGEvH,EAAO,QAAQgB,CAAG,EAAEpC,CAAK,EACzB4I,EAAOxH,EAAO,OAAO,EACd,EACP,EACD,yBAAyBA,EAAQgB,EAAK,CACrC,GAAI,CAAAhB,EAAO,QAAQ,SAASgB,CAAG,GAC3BA,KAAOhB,EAAO,MACjB,MAAO,CACN,WAAY,GACZ,aAAc,GACd,MAAOA,EAAO,MAAMgB,CAAG,CAC3B,CAEE,EACD,eAAehB,EAAQgB,EAAK,CAE3B,OAAIhB,EAAO,QAAQ,SAASgB,CAAG,IAC/BhB,EAAO,QAAQ,KAAKgB,CAAG,EACvBwG,EAAOxH,EAAO,OAAO,GACd,EACP,EACD,IAAIA,EAAQgB,EAAK,CAChB,OAAIhB,EAAO,QAAQ,SAASgB,CAAG,EAAU,GAClCA,KAAOhB,EAAO,KACrB,EACD,QAAQA,EAAQ,CACf,OAAO,QAAQ,QAAQA,EAAO,KAAK,EAAE,OAAQgB,GAAQ,CAAChB,EAAO,QAAQ,SAASgB,CAAG,CAAC,CAClF,CACF,EAOO,SAASyG,GAAkBC,EAAOC,EAAS,CACjD,OAAO,IAAI,MAAM,CAAE,MAAAD,EAAO,QAAAC,EAAS,QAAS,GAAI,QAASnI,EAAO,CAAC,CAAG,EAAE8H,EAAyB,CAChG,CAoFA,SAASM,EAAmBxE,EAAI,CAI/B,QAHIS,EAASjD,EACToB,EAAkBpB,EAEfiD,IAAW,MAAS,EAAAA,EAAO,GAAKgE,GAAgBC,MACtDjE,EAASA,EAAO,OAEjB,GAAI,CACH,OAAA3B,EAAkB2B,CAAM,EACjBT,EAAE,CACX,QAAW,CACTlB,EAAkBF,CAAe,CACjC,CACF,CAYO,SAASrC,GAAK+H,EAAO1G,EAAKgD,EAAO+D,EAAU,OACjD,IAAIC,GAAahE,EAAQiE,MAAwB,EAC7CC,GAASlE,EAAQmE,MAAoB,EACrCC,GAAYpE,EAAQqE,MAAuB,EAC3CC,GAAQtE,EAAQuE,MAA2B,EAC3CC,EAAe,GACfC,EAEAL,EACH,CAACK,EAAYD,CAAY,EAAIpB,GAAsB,IAAwBM,EAAM1G,CAAG,CAAE,EAEtFyH,EAA+Bf,EAAM1G,CAAG,EAEzC,IAAI0H,GAASnI,EAAAC,EAAekH,EAAO1G,CAAG,IAAzB,YAAAT,EAA4B,IAErCoI,EAAmCZ,EACnCa,EAAiB,GACjBC,EAAgB,GAEhBC,EAAe,KAClBD,EAAgB,GACZD,IACHA,EAAiB,GACbN,EACHK,EAAiBI,EAAgChB,GAEjDY,EAAmCZ,GAI9BY,GAGJF,IAAe,QAAaV,IAAa,SACxCW,GAAUR,GACbc,GAAyB,EAG1BP,EAAaK,EAAY,EACrBJ,GAAQA,EAAOD,CAAU,GAI9B,IAAIQ,EACJ,GAAIf,EACHe,EAAS,IAAM,CACd,IAAIrK,EAA0B8I,EAAM1G,CAAG,EACvC,OAAIpC,IAAU,OAAkBkK,KAChCF,EAAiB,GACjBC,EAAgB,GACTjK,EACV,MACQ,CAGN,IAAIsK,EAAiBtB,EAAmB,KACtCI,EAAYmB,EAAUC,IAAoB,IAAwB1B,EAAM1G,CAAG,CAAE,CACjF,EACEkI,EAAe,GAAKG,GACpBJ,EAAS,IAAM,CACd,IAAIrK,EAAQ8B,EAAIwI,CAAc,EAC9B,OAAItK,IAAU,SAAW+J,EAAmC,QACrD/J,IAAU,OAAY+J,EAAiB/J,CACjD,CACE,CAGD,GAAK,EAAAoF,EAAQuD,IACZ,OAAO0B,EAKR,GAAIP,EAAQ,CACX,IAAIY,EAAgB5B,EAAM,SAC1B,OAAO,SAA6B9I,EAA8B2K,EAAU,CAC3E,OAAI,UAAU,OAAS,IAKlB,CAACrB,GAAS,CAACqB,GAAYD,GAAiBd,IAClBE,EAAQa,EAAWN,EAAQ,EAAGrK,CAAK,EAEtDA,GAEAqK,EAAM,CAEjB,CACE,CAKD,IAAIO,EAAa,GACbC,EAAiB,GAIjBC,EAAsB9C,GAAe6B,CAAU,EAE/CkB,EAAgB/B,EAAmB,IACtCuB,EAAQ,IAAM,CACb,IAAIS,EAAeX,IACfY,EAAcnJ,EAAIgJ,CAAmB,EACrCI,EAA0C/H,EAK9C,OAAIyH,GAAeI,IAAiB,QAAcE,EAAgB,EAAIC,IACrEP,EAAa,GACbC,EAAiB,GACVI,IAGRJ,EAAiB,GACTC,EAAoB,EAAIE,EACnC,CAAG,CACH,EAEC,OAAK5B,IAAW2B,EAAc,OAASK,IAEhC,SAA6BpL,EAA8B2K,EAAU,CAa3E,GAAI,UAAU,OAAS,EAAG,CACzB,MAAMpC,EAAYoC,EAAW7I,EAAIiJ,CAAa,EAAIzB,GAASE,EAAWzJ,EAAMC,CAAK,EAAIA,EAErF,OAAK+K,EAAc,OAAOxC,CAAS,IAClCqC,EAAa,GACbzJ,EAAI2J,EAAqBvC,CAAS,EAG9B0B,GAAiBF,IAAmB,SACvCA,EAAiBxB,GAElB4B,EAAQ,IAAMrI,EAAIiJ,CAAa,CAAC,GAG1B/K,CACP,CACD,OAAO8B,EAAIiJ,CAAa,CAC1B,CACA,CChaO,MAAMM,GAAiB,ICP1B,OAAO,OAAW,MAEpB,OAAO,WAAP,OAAO,SAAa,CAAE,EAAG,IAAI,OAAS,EAAE,IAAIA,EAAc","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}