UNPKG

@builder.io/qwik

Version:

An Open-Source sub-framework designed with a focus on server-side-rendering, lazy-loading, and styling/animation.

1 lines 1.71 MB
{"version":3,"file":"core.mjs","sources":["../../../dist-dev/tsc-out/packages/qwik/src/core/util/implicit_dollar.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/qdev.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/element.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/log.js","../../../dist-dev/tsc-out/packages/qwik/src/core/error/assert.js","../../../dist-dev/tsc-out/packages/qwik/src/core/error/error.js","../../../dist-dev/tsc-out/packages/qwik/src/core/platform/platform.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/types.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/promises.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/flyweight.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/dom.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/markers.js","../../../dist-dev/tsc-out/packages/qwik/src/core/state/constants.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/fast-calls.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/case.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/event.js","../../../dist-dev/tsc-out/packages/qwik/src/core/state/store.js","../../../dist-dev/tsc-out/packages/qwik/src/core/state/listeners.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/hash_code.js","../../../dist-dev/tsc-out/packages/qwik/src/core/style/qrl-styles.js","../../../dist-dev/tsc-out/packages/qwik/src/core/version.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-sequential-scope.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-context.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/error-handling.js","../../../dist-dev/tsc-out/packages/qwik/src/core/util/unitless_number.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/execute-component.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/ssr/render-ssr.js","../../../dist-dev/tsc-out/packages/qwik/src/core/qrl/inlined-fn.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/jsx/jsx-runtime.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/jsx/utils.public.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/dom/render-dom.js","../../../dist-dev/tsc-out/packages/qwik/src/core/container/resume.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-lexical-scope.public.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/dom/signals.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/dom/notify-render.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-on.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-signal.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-task.js","../../../dist-dev/tsc-out/packages/qwik/src/testing/html.js","../../../dist-dev/tsc-out/packages/qwik/src/core/state/context.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-locale.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-core.js","../../../dist-dev/tsc-out/packages/qwik/src/core/state/signal.js","../../../dist-dev/tsc-out/packages/qwik/src/core/container/container.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/dom/visitor.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/dom/operations.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/dom/virtual-element.js","../../../dist-dev/tsc-out/packages/qwik/src/core/container/pause.js","../../../dist-dev/tsc-out/packages/qwik/src/core/qrl/qrl.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-resource.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/jsx/slot.public.js","../../../dist-dev/tsc-out/packages/qwik/src/core/container/serializers.js","../../../dist-dev/tsc-out/packages/qwik/src/core/state/common.js","../../../dist-dev/tsc-out/packages/qwik/src/core/qrl/qrl-class.js","../../../dist-dev/tsc-out/packages/qwik/src/core/qrl/qrl.public.js","../../../dist-dev/tsc-out/packages/qwik/src/core/component/component.public.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/jsx/factory.js","../../../dist-dev/tsc-out/packages/qwik/src/core/render/dom/render.public.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-store.public.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-id.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-env-data.js","../../../dist-dev/tsc-out/packages/qwik/src/core/style/scoped-stylesheet.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-styles.js","../../../dist-dev/tsc-out/packages/qwik/src/core/use/use-error-boundary.js","../../../dist-dev/tsc-out/packages/qwik/src/core/components/prefetch.js"],"sourcesContent":["import { $ } from '../qrl/qrl.public';\n// <docs markdown=\"../readme.md#implicit$FirstArg\">\n// !!DO NOT EDIT THIS COMMENT DIRECTLY!!!\n// (edit ../readme.md#implicit$FirstArg instead)\n/**\n * Create a `____$(...)` convenience method from `___(...)`.\n *\n * It is very common for functions to take a lazy-loadable resource as a first argument. For this\n * reason, the Qwik Optimizer automatically extracts the first argument from any function which ends\n * in `$`.\n *\n * This means that `foo$(arg0)` and `foo($(arg0))` are equivalent with respect to Qwik Optimizer.\n * The former is just a shorthand for the latter.\n *\n * For example, these function calls are equivalent:\n *\n * - `component$(() => {...})` is same as `component($(() => {...}))`\n *\n * ```tsx\n * export function myApi(callback: QRL<() => void>): void {\n * // ...\n * }\n *\n * export const myApi$ = implicit$FirstArg(myApi);\n * // type of myApi$: (callback: () => void): void\n *\n * // can be used as:\n * myApi$(() => console.log('callback'));\n *\n * // will be transpiled to:\n * // FILE: <current file>\n * myApi(qrl('./chunk-abc.js', 'callback'));\n *\n * // FILE: chunk-abc.js\n * export const callback = () => console.log('callback');\n * ```\n *\n * @param fn - A function that should have its first argument automatically `$`.\n * @public\n */\n// </docs>\nexport const implicit$FirstArg = (fn) => {\n return function (first, ...rest) {\n return fn.call(null, $(first), ...rest);\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wbGljaXRfZG9sbGFyLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9xd2lrL3NyYy9jb3JlL3V0aWwvaW1wbGljaXRfZG9sbGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxtREFBbUQ7QUFDbkQseUNBQXlDO0FBQ3pDLGdEQUFnRDtBQUNoRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFDSCxVQUFVO0FBQ1YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FDL0IsRUFBMkMsRUFDTCxFQUFFO0lBQ3hDLE9BQU8sVUFBVSxLQUFZLEVBQUUsR0FBRyxJQUFVO1FBQzFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgJCwgdHlwZSBRUkwgfSBmcm9tICcuLi9xcmwvcXJsLnB1YmxpYyc7XG5cbi8vIDxkb2NzIG1hcmtkb3duPVwiLi4vcmVhZG1lLm1kI2ltcGxpY2l0JEZpcnN0QXJnXCI+XG4vLyAhIURPIE5PVCBFRElUIFRISVMgQ09NTUVOVCBESVJFQ1RMWSEhIVxuLy8gKGVkaXQgLi4vcmVhZG1lLm1kI2ltcGxpY2l0JEZpcnN0QXJnIGluc3RlYWQpXG4vKipcbiAqIENyZWF0ZSBhIGBfX19fJCguLi4pYCBjb252ZW5pZW5jZSBtZXRob2QgZnJvbSBgX19fKC4uLilgLlxuICpcbiAqIEl0IGlzIHZlcnkgY29tbW9uIGZvciBmdW5jdGlvbnMgdG8gdGFrZSBhIGxhenktbG9hZGFibGUgcmVzb3VyY2UgYXMgYSBmaXJzdCBhcmd1bWVudC4gRm9yIHRoaXNcbiAqIHJlYXNvbiwgdGhlIFF3aWsgT3B0aW1pemVyIGF1dG9tYXRpY2FsbHkgZXh0cmFjdHMgdGhlIGZpcnN0IGFyZ3VtZW50IGZyb20gYW55IGZ1bmN0aW9uIHdoaWNoIGVuZHNcbiAqIGluIGAkYC5cbiAqXG4gKiBUaGlzIG1lYW5zIHRoYXQgYGZvbyQoYXJnMClgIGFuZCBgZm9vKCQoYXJnMCkpYCBhcmUgZXF1aXZhbGVudCB3aXRoIHJlc3BlY3QgdG8gUXdpayBPcHRpbWl6ZXIuXG4gKiBUaGUgZm9ybWVyIGlzIGp1c3QgYSBzaG9ydGhhbmQgZm9yIHRoZSBsYXR0ZXIuXG4gKlxuICogRm9yIGV4YW1wbGUsIHRoZXNlIGZ1bmN0aW9uIGNhbGxzIGFyZSBlcXVpdmFsZW50OlxuICpcbiAqIC0gYGNvbXBvbmVudCQoKCkgPT4gey4uLn0pYCBpcyBzYW1lIGFzIGBjb21wb25lbnQoJCgoKSA9PiB7Li4ufSkpYFxuICpcbiAqIGBgYHRzeFxuICogZXhwb3J0IGZ1bmN0aW9uIG15QXBpKGNhbGxiYWNrOiBRUkw8KCkgPT4gdm9pZD4pOiB2b2lkIHtcbiAqICAgLy8gLi4uXG4gKiB9XG4gKlxuICogZXhwb3J0IGNvbnN0IG15QXBpJCA9IGltcGxpY2l0JEZpcnN0QXJnKG15QXBpKTtcbiAqIC8vIHR5cGUgb2YgbXlBcGkkOiAoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkXG4gKlxuICogLy8gY2FuIGJlIHVzZWQgYXM6XG4gKiBteUFwaSQoKCkgPT4gY29uc29sZS5sb2coJ2NhbGxiYWNrJykpO1xuICpcbiAqIC8vIHdpbGwgYmUgdHJhbnNwaWxlZCB0bzpcbiAqIC8vIEZJTEU6IDxjdXJyZW50IGZpbGU+XG4gKiBteUFwaShxcmwoJy4vY2h1bmstYWJjLmpzJywgJ2NhbGxiYWNrJykpO1xuICpcbiAqIC8vIEZJTEU6IGNodW5rLWFiYy5qc1xuICogZXhwb3J0IGNvbnN0IGNhbGxiYWNrID0gKCkgPT4gY29uc29sZS5sb2coJ2NhbGxiYWNrJyk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gZm4gLSBBIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGhhdmUgaXRzIGZpcnN0IGFyZ3VtZW50IGF1dG9tYXRpY2FsbHkgYCRgLlxuICogQHB1YmxpY1xuICovXG4vLyA8L2RvY3M+XG5leHBvcnQgY29uc3QgaW1wbGljaXQkRmlyc3RBcmcgPSA8RklSU1QsIFJFU1QgZXh0ZW5kcyBhbnlbXSwgUkVUPihcbiAgZm46IChxcmw6IFFSTDxGSVJTVD4sIC4uLnJlc3Q6IFJFU1QpID0+IFJFVFxuKTogKChxcmw6IEZJUlNULCAuLi5yZXN0OiBSRVNUKSA9PiBSRVQpID0+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChmaXJzdDogRklSU1QsIC4uLnJlc3Q6IFJFU1QpOiBSRVQge1xuICAgIHJldHVybiBmbi5jYWxsKG51bGwsICQoZmlyc3QpLCAuLi5yZXN0KTtcbiAgfTtcbn07XG4iXX0=","export const qDev = globalThis.qDev !== false;\nexport const qInspector = globalThis.qInspector === true;\nexport const qSerialize = globalThis.qSerialize !== false;\nexport const qDynamicPlatform = globalThis.qDynamicPlatform !== false;\nexport const qTest = globalThis.qTest === true;\nexport const qRuntimeQrl = globalThis.qRuntimeQrl === true;\nexport const seal = (obj) => {\n if (qDev) {\n Object.seal(obj);\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWRldi5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicGFja2FnZXMvcXdpay9zcmMvY29yZS91dGlsL3FkZXYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixLQUFLLEtBQUssQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFO0lBQy9CLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcURldiA9IGdsb2JhbFRoaXMucURldiAhPT0gZmFsc2U7XG5leHBvcnQgY29uc3QgcUluc3BlY3RvciA9IGdsb2JhbFRoaXMucUluc3BlY3RvciA9PT0gdHJ1ZTtcbmV4cG9ydCBjb25zdCBxU2VyaWFsaXplID0gZ2xvYmFsVGhpcy5xU2VyaWFsaXplICE9PSBmYWxzZTtcbmV4cG9ydCBjb25zdCBxRHluYW1pY1BsYXRmb3JtID0gZ2xvYmFsVGhpcy5xRHluYW1pY1BsYXRmb3JtICE9PSBmYWxzZTtcbmV4cG9ydCBjb25zdCBxVGVzdCA9IGdsb2JhbFRoaXMucVRlc3QgPT09IHRydWU7XG5leHBvcnQgY29uc3QgcVJ1bnRpbWVRcmwgPSBnbG9iYWxUaGlzLnFSdW50aW1lUXJsID09PSB0cnVlO1xuXG5leHBvcnQgY29uc3Qgc2VhbCA9IChvYmo6IGFueSkgPT4ge1xuICBpZiAocURldikge1xuICAgIE9iamVjdC5zZWFsKG9iaik7XG4gIH1cbn07XG5cbmRlY2xhcmUgY29uc3QgZ2xvYmFsVGhpczogYW55O1xuIl19","export const isNode = (value) => {\n return value && typeof value.nodeType === 'number';\n};\nexport const isDocument = (value) => {\n return value.nodeType === 9;\n};\nexport const isElement = (value) => {\n return value.nodeType === 1;\n};\nexport const isQwikElement = (value) => {\n const nodeType = value.nodeType;\n return nodeType === 1 || nodeType === 111;\n};\nexport const isNodeElement = (value) => {\n const nodeType = value.nodeType;\n return nodeType === 1 || nodeType === 111 || nodeType === 3;\n};\nexport const isVirtualElement = (value) => {\n return value.nodeType === 111;\n};\nexport const isVirtualElementOpenComment = (value) => {\n return isComment(value) && value.data.startsWith('qv ');\n};\nexport const isText = (value) => {\n return value.nodeType === 3;\n};\nexport const isComment = (value) => {\n return value.nodeType === 8;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicGFja2FnZXMvcXdpay9zcmMvY29yZS91dGlsL2VsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBVSxFQUFpQixFQUFFO0lBQ2xELE9BQU8sS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBVyxFQUFxQixFQUFFO0lBQzNELE9BQVEsS0FBYSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBYSxFQUFvQixFQUFFO0lBQzNELE9BQVEsS0FBYSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBYSxFQUF3QixFQUFFO0lBQ25FLE1BQU0sUUFBUSxHQUFJLEtBQWEsQ0FBQyxRQUFRLENBQUM7SUFDekMsT0FBTyxRQUFRLEtBQUssQ0FBQyxJQUFJLFFBQVEsS0FBSyxHQUFHLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBYSxFQUF3QixFQUFFO0lBQ25FLE1BQU0sUUFBUSxHQUFJLEtBQWEsQ0FBQyxRQUFRLENBQUM7SUFDekMsT0FBTyxRQUFRLEtBQUssQ0FBQyxJQUFJLFFBQVEsS0FBSyxHQUFHLElBQUksUUFBUSxLQUFLLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWEsRUFBMkIsRUFBRTtJQUN6RSxPQUFRLEtBQWEsQ0FBQyxRQUFRLEtBQUssR0FBRyxDQUFDO0FBQ3pDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsS0FBNEIsRUFBb0IsRUFBRTtJQUM1RixPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUF5QixFQUFpQixFQUFFO0lBQ2pFLE9BQVEsS0FBYSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBeUIsRUFBb0IsRUFBRTtJQUN2RSxPQUFRLEtBQWEsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXdpa0VsZW1lbnQsIFZpcnR1YWxFbGVtZW50IH0gZnJvbSAnLi4vcmVuZGVyL2RvbS92aXJ0dWFsLWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgaXNOb2RlID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBOb2RlID0+IHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZS5ub2RlVHlwZSA9PT0gJ251bWJlcic7XG59O1xuXG5leHBvcnQgY29uc3QgaXNEb2N1bWVudCA9ICh2YWx1ZTogTm9kZSk6IHZhbHVlIGlzIERvY3VtZW50ID0+IHtcbiAgcmV0dXJuICh2YWx1ZSBhcyBhbnkpLm5vZGVUeXBlID09PSA5O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRWxlbWVudCA9ICh2YWx1ZTogb2JqZWN0KTogdmFsdWUgaXMgRWxlbWVudCA9PiB7XG4gIHJldHVybiAodmFsdWUgYXMgYW55KS5ub2RlVHlwZSA9PT0gMTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1F3aWtFbGVtZW50ID0gKHZhbHVlOiBvYmplY3QpOiB2YWx1ZSBpcyBRd2lrRWxlbWVudCA9PiB7XG4gIGNvbnN0IG5vZGVUeXBlID0gKHZhbHVlIGFzIGFueSkubm9kZVR5cGU7XG4gIHJldHVybiBub2RlVHlwZSA9PT0gMSB8fCBub2RlVHlwZSA9PT0gMTExO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzTm9kZUVsZW1lbnQgPSAodmFsdWU6IG9iamVjdCk6IHZhbHVlIGlzIFF3aWtFbGVtZW50ID0+IHtcbiAgY29uc3Qgbm9kZVR5cGUgPSAodmFsdWUgYXMgYW55KS5ub2RlVHlwZTtcbiAgcmV0dXJuIG5vZGVUeXBlID09PSAxIHx8IG5vZGVUeXBlID09PSAxMTEgfHwgbm9kZVR5cGUgPT09IDM7XG59O1xuXG5leHBvcnQgY29uc3QgaXNWaXJ0dWFsRWxlbWVudCA9ICh2YWx1ZTogb2JqZWN0KTogdmFsdWUgaXMgVmlydHVhbEVsZW1lbnQgPT4ge1xuICByZXR1cm4gKHZhbHVlIGFzIGFueSkubm9kZVR5cGUgPT09IDExMTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1ZpcnR1YWxFbGVtZW50T3BlbkNvbW1lbnQgPSAodmFsdWU6IE5vZGUgfCBWaXJ0dWFsRWxlbWVudCk6IHZhbHVlIGlzIENvbW1lbnQgPT4ge1xuICByZXR1cm4gaXNDb21tZW50KHZhbHVlKSAmJiB2YWx1ZS5kYXRhLnN0YXJ0c1dpdGgoJ3F2ICcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGV4dCA9ICh2YWx1ZTogTm9kZSB8IFF3aWtFbGVtZW50KTogdmFsdWUgaXMgVGV4dCA9PiB7XG4gIHJldHVybiAodmFsdWUgYXMgYW55KS5ub2RlVHlwZSA9PT0gMztcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NvbW1lbnQgPSAodmFsdWU6IE5vZGUgfCBRd2lrRWxlbWVudCk6IHZhbHVlIGlzIENvbW1lbnQgPT4ge1xuICByZXR1cm4gKHZhbHVlIGFzIGFueSkubm9kZVR5cGUgPT09IDg7XG59O1xuIl19","import { isElement, isNode } from './element';\nimport { qDev, qTest } from './qdev';\nconst STYLE = qDev\n ? `background: #564CE0; color: white; padding: 2px 3px; border-radius: 2px; font-size: 0.8em;`\n : '';\nexport const logError = (message, ...optionalParams) => {\n return createAndLogError(false, message, ...optionalParams);\n};\nexport const throwErrorAndStop = (message, ...optionalParams) => {\n const error = createAndLogError(false, message, ...optionalParams);\n // eslint-disable-next-line no-debugger\n debugger;\n throw error;\n};\nexport const logErrorAndStop = (message, ...optionalParams) => {\n const err = createAndLogError(qDev, message, ...optionalParams);\n // eslint-disable-next-line no-debugger\n debugger;\n return err;\n};\nconst _printed = /*#__PURE__*/ new Set();\nexport const logOnceWarn = (message, ...optionalParams) => {\n if (qDev) {\n const key = 'warn' + String(message);\n if (!_printed.has(key)) {\n _printed.add(key);\n logWarn(message, ...optionalParams);\n }\n }\n};\nexport const logWarn = (message, ...optionalParams) => {\n if (qDev) {\n console.warn('%cQWIK WARN', STYLE, message, ...printParams(optionalParams));\n }\n};\nexport const logDebug = (message, ...optionalParams) => {\n if (qDev) {\n // eslint-disable-next-line no-console\n console.debug('%cQWIK', STYLE, message, ...printParams(optionalParams));\n }\n};\nexport const tryGetContext = (element) => {\n return element['_qc_'];\n};\nconst printParams = (optionalParams) => {\n if (qDev) {\n return optionalParams.map((p) => {\n if (isNode(p) && isElement(p)) {\n return printElement(p);\n }\n return p;\n });\n }\n return optionalParams;\n};\nconst printElement = (el) => {\n const ctx = tryGetContext(el);\n const isServer = /*#__PURE__*/ (() => typeof process !== 'undefined' && !!process.versions && !!process.versions.node)();\n return {\n tagName: el.tagName,\n renderQRL: ctx?.$componentQrl$?.getSymbol(),\n element: isServer ? undefined : el,\n ctx: isServer ? undefined : ctx,\n };\n};\nconst createAndLogError = (asyncThrow, message, ...optionalParams) => {\n const err = message instanceof Error ? message : new Error(message);\n // display the error message first, then the optional params, and finally the stack trace\n // the stack needs to be displayed last because the given params will be lost among large stack traces so it will\n // provide a bad developer experience\n console.error('%cQWIK ERROR', STYLE, err.message, ...printParams(optionalParams), err.stack);\n asyncThrow &&\n !qTest &&\n setTimeout(() => {\n // throwing error asynchronously to avoid breaking the current call stack.\n // We throw so that the error is delivered to the global error handler for\n // reporting it to a third-party tools such as Qwik Insights, Sentry or New Relic.\n throw err;\n }, 0);\n return err;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9xd2lrL3NyYy9jb3JlL3V0aWwvbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXJDLE1BQU0sS0FBSyxHQUFHLElBQUk7SUFDaEIsQ0FBQyxDQUFDLDRGQUE0RjtJQUM5RixDQUFDLENBQUMsRUFBRSxDQUFDO0FBRVAsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBYSxFQUFFLEdBQUcsY0FBcUIsRUFBRSxFQUFFO0lBQ2xFLE9BQU8saUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsT0FBYSxFQUFFLEdBQUcsY0FBcUIsRUFBUyxFQUFFO0lBQ2xGLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztJQUNuRSx1Q0FBdUM7SUFDdkMsUUFBUSxDQUFDO0lBQ1QsTUFBTSxLQUFLLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFhLEVBQUUsR0FBRyxjQUFxQixFQUFFLEVBQUU7SUFDekUsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQ2hFLHVDQUF1QztJQUN2QyxRQUFRLENBQUM7SUFDVCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE9BQWEsRUFBRSxHQUFHLGNBQXFCLEVBQUUsRUFBRTtJQUNyRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsTUFBTSxHQUFHLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEIsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBYSxFQUFFLEdBQUcsY0FBcUIsRUFBRSxFQUFFO0lBQ2pFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsR0FBRyxjQUFxQixFQUFFLEVBQUU7SUFDckUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULHNDQUFzQztRQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQW9CLEVBQXdCLEVBQUU7SUFDMUUsT0FBUSxPQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxjQUFxQixFQUFFLEVBQUU7SUFDNUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzlCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5QixPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQVcsRUFBRSxFQUFFO0lBQ25DLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixNQUFNLFFBQVEsR0FBWSxhQUFhLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FDNUMsT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFckYsT0FBTztRQUNMLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTztRQUNuQixTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUU7UUFDM0MsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ2xDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRztLQUNoQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFVBQW1CLEVBQUUsT0FBYSxFQUFFLEdBQUcsY0FBcUIsRUFBRSxFQUFFO0lBQ3pGLE1BQU0sR0FBRyxHQUFHLE9BQU8sWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEUseUZBQXlGO0lBQ3pGLGlIQUFpSDtJQUNqSCxxQ0FBcUM7SUFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTdGLFVBQVU7UUFDUixDQUFDLEtBQUs7UUFDTixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsMEVBQTBFO1lBQzFFLDBFQUEwRTtZQUMxRSxrRkFBa0Y7WUFDbEYsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXdpa0VsZW1lbnQgfSBmcm9tICcuLi9yZW5kZXIvZG9tL3ZpcnR1YWwtZWxlbWVudCc7XG5pbXBvcnQgdHlwZSB7IFFDb250ZXh0IH0gZnJvbSAnLi4vc3RhdGUvY29udGV4dCc7XG5pbXBvcnQgeyBpc0VsZW1lbnQsIGlzTm9kZSB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBxRGV2LCBxVGVzdCB9IGZyb20gJy4vcWRldic7XG5cbmNvbnN0IFNUWUxFID0gcURldlxuICA/IGBiYWNrZ3JvdW5kOiAjNTY0Q0UwOyBjb2xvcjogd2hpdGU7IHBhZGRpbmc6IDJweCAzcHg7IGJvcmRlci1yYWRpdXM6IDJweDsgZm9udC1zaXplOiAwLjhlbTtgXG4gIDogJyc7XG5cbmV4cG9ydCBjb25zdCBsb2dFcnJvciA9IChtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pID0+IHtcbiAgcmV0dXJuIGNyZWF0ZUFuZExvZ0Vycm9yKGZhbHNlLCBtZXNzYWdlLCAuLi5vcHRpb25hbFBhcmFtcyk7XG59O1xuXG5leHBvcnQgY29uc3QgdGhyb3dFcnJvckFuZFN0b3AgPSAobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKTogbmV2ZXIgPT4ge1xuICBjb25zdCBlcnJvciA9IGNyZWF0ZUFuZExvZ0Vycm9yKGZhbHNlLCBtZXNzYWdlLCAuLi5vcHRpb25hbFBhcmFtcyk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZWJ1Z2dlclxuICBkZWJ1Z2dlcjtcbiAgdGhyb3cgZXJyb3I7XG59O1xuXG5leHBvcnQgY29uc3QgbG9nRXJyb3JBbmRTdG9wID0gKG1lc3NhZ2U/OiBhbnksIC4uLm9wdGlvbmFsUGFyYW1zOiBhbnlbXSkgPT4ge1xuICBjb25zdCBlcnIgPSBjcmVhdGVBbmRMb2dFcnJvcihxRGV2LCBtZXNzYWdlLCAuLi5vcHRpb25hbFBhcmFtcyk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZWJ1Z2dlclxuICBkZWJ1Z2dlcjtcbiAgcmV0dXJuIGVycjtcbn07XG5cbmNvbnN0IF9wcmludGVkID0gLyojX19QVVJFX18qLyBuZXcgU2V0PHN0cmluZz4oKTtcblxuZXhwb3J0IGNvbnN0IGxvZ09uY2VXYXJuID0gKG1lc3NhZ2U/OiBhbnksIC4uLm9wdGlvbmFsUGFyYW1zOiBhbnlbXSkgPT4ge1xuICBpZiAocURldikge1xuICAgIGNvbnN0IGtleSA9ICd3YXJuJyArIFN0cmluZyhtZXNzYWdlKTtcbiAgICBpZiAoIV9wcmludGVkLmhhcyhrZXkpKSB7XG4gICAgICBfcHJpbnRlZC5hZGQoa2V5KTtcbiAgICAgIGxvZ1dhcm4obWVzc2FnZSwgLi4ub3B0aW9uYWxQYXJhbXMpO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGxvZ1dhcm4gPSAobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSA9PiB7XG4gIGlmIChxRGV2KSB7XG4gICAgY29uc29sZS53YXJuKCclY1FXSUsgV0FSTicsIFNUWUxFLCBtZXNzYWdlLCAuLi5wcmludFBhcmFtcyhvcHRpb25hbFBhcmFtcykpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbG9nRGVidWcgPSAobWVzc2FnZT86IHN0cmluZywgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSA9PiB7XG4gIGlmIChxRGV2KSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmRlYnVnKCclY1FXSUsnLCBTVFlMRSwgbWVzc2FnZSwgLi4ucHJpbnRQYXJhbXMob3B0aW9uYWxQYXJhbXMpKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHRyeUdldENvbnRleHQgPSAoZWxlbWVudDogUXdpa0VsZW1lbnQpOiBRQ29udGV4dCB8IHVuZGVmaW5lZCA9PiB7XG4gIHJldHVybiAoZWxlbWVudCBhcyBhbnkpWydfcWNfJ107XG59O1xuXG5jb25zdCBwcmludFBhcmFtcyA9IChvcHRpb25hbFBhcmFtczogYW55W10pID0+IHtcbiAgaWYgKHFEZXYpIHtcbiAgICByZXR1cm4gb3B0aW9uYWxQYXJhbXMubWFwKChwKSA9PiB7XG4gICAgICBpZiAoaXNOb2RlKHApICYmIGlzRWxlbWVudChwKSkge1xuICAgICAgICByZXR1cm4gcHJpbnRFbGVtZW50KHApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHA7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbmFsUGFyYW1zO1xufTtcblxuY29uc3QgcHJpbnRFbGVtZW50ID0gKGVsOiBFbGVtZW50KSA9PiB7XG4gIGNvbnN0IGN0eCA9IHRyeUdldENvbnRleHQoZWwpO1xuICBjb25zdCBpc1NlcnZlcjogYm9vbGVhbiA9IC8qI19fUFVSRV9fKi8gKCgpID0+XG4gICAgdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmICEhcHJvY2Vzcy52ZXJzaW9ucyAmJiAhIXByb2Nlc3MudmVyc2lvbnMubm9kZSkoKTtcblxuICByZXR1cm4ge1xuICAgIHRhZ05hbWU6IGVsLnRhZ05hbWUsXG4gICAgcmVuZGVyUVJMOiBjdHg/LiRjb21wb25lbnRRcmwkPy5nZXRTeW1ib2woKSxcbiAgICBlbGVtZW50OiBpc1NlcnZlciA/IHVuZGVmaW5lZCA6IGVsLFxuICAgIGN0eDogaXNTZXJ2ZXIgPyB1bmRlZmluZWQgOiBjdHgsXG4gIH07XG59O1xuXG5jb25zdCBjcmVhdGVBbmRMb2dFcnJvciA9IChhc3luY1Rocm93OiBib29sZWFuLCBtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pID0+IHtcbiAgY29uc3QgZXJyID0gbWVzc2FnZSBpbnN0YW5jZW9mIEVycm9yID8gbWVzc2FnZSA6IG5ldyBFcnJvcihtZXNzYWdlKTtcblxuICAvLyBkaXNwbGF5IHRoZSBlcnJvciBtZXNzYWdlIGZpcnN0LCB0aGVuIHRoZSBvcHRpb25hbCBwYXJhbXMsIGFuZCBmaW5hbGx5IHRoZSBzdGFjayB0cmFjZVxuICAvLyB0aGUgc3RhY2sgbmVlZHMgdG8gYmUgZGlzcGxheWVkIGxhc3QgYmVjYXVzZSB0aGUgZ2l2ZW4gcGFyYW1zIHdpbGwgYmUgbG9zdCBhbW9uZyBsYXJnZSBzdGFjayB0cmFjZXMgc28gaXQgd2lsbFxuICAvLyBwcm92aWRlIGEgYmFkIGRldmVsb3BlciBleHBlcmllbmNlXG4gIGNvbnNvbGUuZXJyb3IoJyVjUVdJSyBFUlJPUicsIFNUWUxFLCBlcnIubWVzc2FnZSwgLi4ucHJpbnRQYXJhbXMob3B0aW9uYWxQYXJhbXMpLCBlcnIuc3RhY2spO1xuXG4gIGFzeW5jVGhyb3cgJiZcbiAgICAhcVRlc3QgJiZcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIHRocm93aW5nIGVycm9yIGFzeW5jaHJvbm91c2x5IHRvIGF2b2lkIGJyZWFraW5nIHRoZSBjdXJyZW50IGNhbGwgc3RhY2suXG4gICAgICAvLyBXZSB0aHJvdyBzbyB0aGF0IHRoZSBlcnJvciBpcyBkZWxpdmVyZWQgdG8gdGhlIGdsb2JhbCBlcnJvciBoYW5kbGVyIGZvclxuICAgICAgLy8gcmVwb3J0aW5nIGl0IHRvIGEgdGhpcmQtcGFydHkgdG9vbHMgc3VjaCBhcyBRd2lrIEluc2lnaHRzLCBTZW50cnkgb3IgTmV3IFJlbGljLlxuICAgICAgdGhyb3cgZXJyO1xuICAgIH0sIDApO1xuICByZXR1cm4gZXJyO1xufTtcbiJdfQ==","import { isElement, isQwikElement } from '../util/element';\nimport { throwErrorAndStop } from '../util/log';\nimport { qDev } from '../util/qdev';\nconst ASSERT_DISCLAIMER = 'Internal assert, this is likely caused by a bug in Qwik: ';\nexport function assertDefined(value, text, ...parts) {\n if (qDev) {\n if (value != null) {\n return;\n }\n throwErrorAndStop(ASSERT_DISCLAIMER + text, ...parts);\n }\n}\nexport function assertEqual(value1, value2, text, ...parts) {\n if (qDev) {\n if (value1 === value2) {\n return;\n }\n throwErrorAndStop(ASSERT_DISCLAIMER + text, ...parts);\n }\n}\nexport function assertFail(text, ...parts) {\n if (qDev) {\n throwErrorAndStop(ASSERT_DISCLAIMER + text, ...parts);\n }\n}\nexport function assertTrue(value1, text, ...parts) {\n if (qDev) {\n if (value1 === true) {\n return;\n }\n throwErrorAndStop(ASSERT_DISCLAIMER + text, ...parts);\n }\n}\nexport function assertNumber(value1, text, ...parts) {\n if (qDev) {\n if (typeof value1 === 'number') {\n return;\n }\n throwErrorAndStop(ASSERT_DISCLAIMER + text, ...parts);\n }\n}\nexport function assertString(value1, text, ...parts) {\n if (qDev) {\n if (typeof value1 === 'string') {\n return;\n }\n throwErrorAndStop(ASSERT_DISCLAIMER + text, ...parts);\n }\n}\nexport function assertQwikElement(el) {\n if (qDev) {\n if (!isQwikElement(el)) {\n console.error('Not a Qwik Element, got', el);\n throwErrorAndStop(ASSERT_DISCLAIMER + 'Not a Qwik Element');\n }\n }\n}\nexport function assertElement(el) {\n if (qDev) {\n if (!isElement(el)) {\n console.error('Not a Element, got', el);\n throwErrorAndStop(ASSERT_DISCLAIMER + 'Not an Element');\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0LmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9xd2lrL3NyYy9jb3JlL2Vycm9yL2Fzc2VydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXBDLE1BQU0saUJBQWlCLEdBQUcsMkRBQTJELENBQUM7QUFFdEYsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsS0FBUSxFQUNSLElBQVksRUFDWixHQUFHLEtBQVk7SUFFZixJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFDRCxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3pCLE1BQVcsRUFDWCxNQUFXLEVBQ1gsSUFBWSxFQUNaLEdBQUcsS0FBWTtJQUVmLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUNELGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7QUFDSCxDQUFDO0FBR0QsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFZLEVBQUUsR0FBRyxLQUFZO0lBQ3RELElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBVyxFQUFFLElBQVksRUFBRSxHQUFHLEtBQVk7SUFDbkUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBQ0QsaUJBQWlCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQVcsRUFBRSxJQUFZLEVBQUUsR0FBRyxLQUFZO0lBQ3JFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDVCxDQUFDO1FBQ0QsaUJBQWlCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQVcsRUFBRSxJQUFZLEVBQUUsR0FBRyxLQUFZO0lBQ3JFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDVCxDQUFDO1FBQ0QsaUJBQWlCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBTztJQUN2QyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsaUJBQWlCLENBQUMsaUJBQWlCLEdBQUcsb0JBQW9CLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQXlCO0lBQ3JELElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4QyxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXdpa0VsZW1lbnQsIFZpcnR1YWxFbGVtZW50IH0gZnJvbSAnLi4vcmVuZGVyL2RvbS92aXJ0dWFsLWVsZW1lbnQnO1xuaW1wb3J0IHsgaXNFbGVtZW50LCBpc1F3aWtFbGVtZW50IH0gZnJvbSAnLi4vdXRpbC9lbGVtZW50JztcbmltcG9ydCB7IHRocm93RXJyb3JBbmRTdG9wIH0gZnJvbSAnLi4vdXRpbC9sb2cnO1xuaW1wb3J0IHsgcURldiB9IGZyb20gJy4uL3V0aWwvcWRldic7XG5cbmNvbnN0IEFTU0VSVF9ESVNDTEFJTUVSID0gJ0ludGVybmFsIGFzc2VydCwgdGhpcyBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFF3aWs6ICc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnREZWZpbmVkPFQ+KFxuICB2YWx1ZTogVCxcbiAgdGV4dDogc3RyaW5nLFxuICAuLi5wYXJ0czogYW55W11cbik6IGFzc2VydHMgdmFsdWUgaXMgTm9uTnVsbGFibGU8VD4ge1xuICBpZiAocURldikge1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRocm93RXJyb3JBbmRTdG9wKEFTU0VSVF9ESVNDTEFJTUVSICsgdGV4dCwgLi4ucGFydHMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRFcXVhbChcbiAgdmFsdWUxOiBhbnksXG4gIHZhbHVlMjogYW55LFxuICB0ZXh0OiBzdHJpbmcsXG4gIC4uLnBhcnRzOiBhbnlbXVxuKTogYXNzZXJ0cyB2YWx1ZTEgaXMgdHlwZW9mIHZhbHVlMiB7XG4gIGlmIChxRGV2KSB7XG4gICAgaWYgKHZhbHVlMSA9PT0gdmFsdWUyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRocm93RXJyb3JBbmRTdG9wKEFTU0VSVF9ESVNDTEFJTUVSICsgdGV4dCwgLi4ucGFydHMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRGYWlsKHRleHQ6IHN0cmluZywgLi4ucGFydHM6IGFueVtdKTogbmV2ZXI7XG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RmFpbCh0ZXh0OiBzdHJpbmcsIC4uLnBhcnRzOiBhbnlbXSkge1xuICBpZiAocURldikge1xuICAgIHRocm93RXJyb3JBbmRTdG9wKEFTU0VSVF9ESVNDTEFJTUVSICsgdGV4dCwgLi4ucGFydHMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRUcnVlKHZhbHVlMTogYW55LCB0ZXh0OiBzdHJpbmcsIC4uLnBhcnRzOiBhbnlbXSk6IGFzc2VydHMgdmFsdWUxIGlzIHRydWUge1xuICBpZiAocURldikge1xuICAgIGlmICh2YWx1ZTEgPT09IHRydWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhyb3dFcnJvckFuZFN0b3AoQVNTRVJUX0RJU0NMQUlNRVIgKyB0ZXh0LCAuLi5wYXJ0cyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydE51bWJlcih2YWx1ZTE6IGFueSwgdGV4dDogc3RyaW5nLCAuLi5wYXJ0czogYW55W10pOiBhc3NlcnRzIHZhbHVlMSBpcyBudW1iZXIge1xuICBpZiAocURldikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUxID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvd0Vycm9yQW5kU3RvcChBU1NFUlRfRElTQ0xBSU1FUiArIHRleHQsIC4uLnBhcnRzKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0U3RyaW5nKHZhbHVlMTogYW55LCB0ZXh0OiBzdHJpbmcsIC4uLnBhcnRzOiBhbnlbXSk6IGFzc2VydHMgdmFsdWUxIGlzIHN0cmluZyB7XG4gIGlmIChxRGV2KSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRocm93RXJyb3JBbmRTdG9wKEFTU0VSVF9ESVNDTEFJTUVSICsgdGV4dCwgLi4ucGFydHMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRRd2lrRWxlbWVudChlbDogYW55KTogYXNzZXJ0cyBlbCBpcyBRd2lrRWxlbWVudCB7XG4gIGlmIChxRGV2KSB7XG4gICAgaWYgKCFpc1F3aWtFbGVtZW50KGVsKSkge1xuICAgICAgY29uc29sZS5lcnJvcignTm90IGEgUXdpayBFbGVtZW50LCBnb3QnLCBlbCk7XG4gICAgICB0aHJvd0Vycm9yQW5kU3RvcChBU1NFUlRfRElTQ0xBSU1FUiArICdOb3QgYSBRd2lrIEVsZW1lbnQnKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEVsZW1lbnQoZWw6IE5vZGUgfCBWaXJ0dWFsRWxlbWVudCk6IGFzc2VydHMgZWwgaXMgRWxlbWVudCB7XG4gIGlmIChxRGV2KSB7XG4gICAgaWYgKCFpc0VsZW1lbnQoZWwpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdOb3QgYSBFbGVtZW50LCBnb3QnLCBlbCk7XG4gICAgICB0aHJvd0Vycm9yQW5kU3RvcChBU1NFUlRfRElTQ0xBSU1FUiArICdOb3QgYW4gRWxlbWVudCcpO1xuICAgIH1cbiAgfVxufVxuIl19","import { logErrorAndStop } from '../util/log';\nimport { qDev } from '../util/qdev';\nexport const codeToText = (code, ...parts) => {\n if (qDev) {\n // Keep one error, one line to make it easier to search for the error message.\n const MAP = [\n 'Error while serializing class or style attributes', // 0\n 'Can not serialize a HTML Node that is not an Element', // 1\n 'Runtime but no instance found on element.', // 2\n 'Only primitive and object literals can be serialized', // 3\n 'Crash while rendering', // 4\n 'You can render over a existing q:container. Skipping render().', // 5\n 'Set property {{0}}', // 6\n \"Only function's and 'string's are supported.\", // 7\n \"Only objects can be wrapped in 'QObject'\", // 8\n `Only objects literals can be wrapped in 'QObject'`, // 9\n 'QRL is not a function', // 10\n 'Dynamic import not found', // 11\n 'Unknown type argument', // 12\n `Actual value for useContext({{0}}) can not be found, make sure some ancestor component has set a value using useContextProvider(). In the browser make sure that the context was used during SSR so its state was serialized.`, // 13\n \"Invoking 'use*()' method outside of invocation context.\", // 14\n 'Cant access renderCtx for existing context', // 15\n 'Cant access document for existing context', // 16\n 'props are immutable', // 17\n '<div> component can only be used at the root of a Qwik component$()', // 18\n 'Props are immutable by default.', // 19\n `Calling a 'use*()' method outside 'component$(() => { HERE })' is not allowed. 'use*()' methods provide hooks to the 'component$' state and lifecycle, ie 'use' hooks can only be called synchronously within the 'component$' function or another 'use' method.\\nSee https://qwik.dev/docs/components/tasks/#use-method-rules`, // 20\n 'Container is already paused. Skipping', // 21\n '', // 22 -- unused\n 'When rendering directly on top of Document, the root node must be a <html>', // 23\n 'A <html> node must have 2 children. The first one <head> and the second one a <body>', // 24\n 'Invalid JSXNode type \"{{0}}\". It must be either a function or a string. Found:', // 25\n 'Tracking value changes can only be done to useStore() objects and component props', // 26\n 'Missing Object ID for captured object', // 27\n 'The provided Context reference \"{{0}}\" is not a valid context created by createContextId()', // 28\n '<html> is the root container, it can not be rendered inside a component', // 29\n 'QRLs can not be resolved because it does not have an attached container. This means that the QRL does not know where it belongs inside the DOM, so it cant dynamically import() from a relative path.', // 30\n 'QRLs can not be dynamically resolved, because it does not have a chunk path', // 31\n 'The JSX ref attribute must be a Signal', // 32\n ];\n let text = MAP[code] ?? '';\n if (parts.length) {\n text = text.replaceAll(/{{(\\d+)}}/g, (_, index) => {\n let v = parts[index];\n if (v && typeof v === 'object' && v.constructor === Object) {\n v = JSON.stringify(v).slice(0, 50);\n }\n return v;\n });\n }\n return `Code(${code}): ${text}`;\n }\n else {\n // cute little hack to give roughly the correct line number. Update the line number if it shifts.\n return `Code(${code}) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L${8 + code}`;\n }\n};\nexport const QError_stringifyClassOrStyle = 0;\nexport const QError_cannotSerializeNode = 1;\nexport const QError_runtimeQrlNoElement = 2;\nexport const QError_verifySerializable = 3;\nexport const QError_errorWhileRendering = 4;\nexport const QError_cannotRenderOverExistingContainer = 5;\nexport const QError_setProperty = 6;\nexport const QError_qrlOrError = 7;\nexport const QError_onlyObjectWrapped = 8;\nexport const QError_onlyLiteralWrapped = 9;\nexport const QError_qrlIsNotFunction = 10;\nexport const QError_dynamicImportFailed = 11;\nexport const QError_unknownTypeArgument = 12;\nexport const QError_notFoundContext = 13;\nexport const QError_useMethodOutsideContext = 14;\nexport const QError_missingRenderCtx = 15;\nexport const QError_missingDoc = 16;\nexport const QError_immutableProps = 17;\nexport const QError_hostCanOnlyBeAtRoot = 18;\nexport const QError_immutableJsxProps = 19;\nexport const QError_useInvokeContext = 20;\nexport const QError_containerAlreadyPaused = 21;\nexport const QError_unused_please_reuse = 22;\nexport const QError_rootNodeMustBeHTML = 23;\nexport const QError_strictHTMLChildren = 24;\nexport const QError_invalidJsxNodeType = 25;\nexport const QError_trackUseStore = 26;\nexport const QError_missingObjectId = 27;\nexport const QError_invalidContext = 28;\nexport const QError_canNotRenderHTML = 29;\nexport const QError_qrlMissingContainer = 30;\nexport const QError_qrlMissingChunk = 31;\nexport const QError_invalidRefValue = 32;\nexport const qError = (code, ...parts) => {\n const text = codeToText(code, ...parts);\n return logErrorAndStop(text, ...parts);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL3F3aWsvc3JjL2NvcmUvZXJyb3IvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxHQUFHLEtBQVksRUFBVSxFQUFFO0lBQ2xFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCw4RUFBOEU7UUFDOUUsTUFBTSxHQUFHLEdBQUc7WUFDVixtREFBbUQsRUFBRSxJQUFJO1lBQ3pELHNEQUFzRCxFQUFFLElBQUk7WUFDNUQsMkNBQTJDLEVBQUUsSUFBSTtZQUNqRCxzREFBc0QsRUFBRSxJQUFJO1lBQzVELHVCQUF1QixFQUFFLElBQUk7WUFDN0IsZ0VBQWdFLEVBQUUsSUFBSTtZQUN0RSxvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLDhDQUE4QyxFQUFFLElBQUk7WUFDcEQsMENBQTBDLEVBQUUsSUFBSTtZQUNoRCxtREFBbUQsRUFBRSxJQUFJO1lBQ3pELHVCQUF1QixFQUFFLEtBQUs7WUFDOUIsMEJBQTBCLEVBQUUsS0FBSztZQUNqQyx1QkFBdUIsRUFBRSxLQUFLO1lBQzlCLCtOQUErTixFQUFFLEtBQUs7WUFDdE8seURBQXlELEVBQUUsS0FBSztZQUNoRSw0Q0FBNEMsRUFBRSxLQUFLO1lBQ25ELDJDQUEyQyxFQUFFLEtBQUs7WUFDbEQscUJBQXFCLEVBQUUsS0FBSztZQUM1QixxRUFBcUUsRUFBRSxLQUFLO1lBQzVFLGlDQUFpQyxFQUFFLEtBQUs7WUFDeEMsZ1VBQWdVLEVBQUUsS0FBSztZQUN2VSx1Q0FBdUMsRUFBRSxLQUFLO1lBQzlDLEVBQUUsRUFBRSxlQUFlO1lBQ25CLDRFQUE0RSxFQUFFLEtBQUs7WUFDbkYsc0ZBQXNGLEVBQUUsS0FB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QUFNLHlCQUF5QixHQUFHLEVBQUUsQ0FBQztBQUM1QyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFDNUMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsRUFBRSxDQUFDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFDekMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQUUsR0FBRyxLQUFZLEVBQVMsRUFBRTtJQUM3RCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDeEMsT0FBTyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nRXJyb3JBbmRTdG9wIH0gZnJvbSAnLi4vdXRpbC9sb2cnO1xuaW1wb3J0IHsgcURldiB9IGZyb20gJy4uL3V0aWwvcWRldic7XG5cbmV4cG9ydCBjb25zdCBjb2RlVG9UZXh0ID0gKGNvZGU6IG51bWJlciwgLi4ucGFydHM6IGFueVtdKTogc3RyaW5nID0+IHtcbiAgaWYgKHFEZXYpIHtcbiAgICAvLyBLZWVwIG9uZSBlcnJvciwgb25lIGxpbmUgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc2VhcmNoIGZvciB0aGUgZXJyb3IgbWVzc2FnZS5cbiAgICBjb25zdCBNQVAgPSBbXG4gICAgICAnRXJyb3Igd2hpbGUgc2VyaWFsaXppbmcgY2xhc3Mgb3Igc3R5bGUgYXR0cmlidXRlcycsIC8vIDBcbiAgICAgICdDYW4gbm90IHNlcmlhbGl6ZSBhIEhUTUwgTm9kZSB0aGF0IGlzIG5vdCBhbiBFbGVtZW50JywgLy8gMVxuICAgICAgJ1J1bnRpbWUgYnV0IG5vIGluc3RhbmNlIGZvdW5kIG9uIGVsZW1lbnQuJywgLy8gMlxuICAgICAgJ09ubHkgcHJpbWl0aXZlIGFuZCBvYmplY3QgbGl0ZXJhbHMgY2FuIGJlIHNlcmlhbGl6ZWQnLCAvLyAzXG4gICAgICAnQ3Jhc2ggd2hpbGUgcmVuZGVyaW5nJywgLy8gNFxuICAgICAgJ1lvdSBjYW4gcmVuZGVyIG92ZXIgYSBleGlzdGluZyBxOmNvbnRhaW5lci4gU2tpcHBpbmcgcmVuZGVyKCkuJywgLy8gNVxuICAgICAgJ1NldCBwcm9wZXJ0eSB7ezB9fScsIC8vIDZcbiAgICAgIFwiT25seSBmdW5jdGlvbidzIGFuZCAnc3RyaW5nJ3MgYXJlIHN1cHBvcnRlZC5cIiwgLy8gN1xuICAgICAgXCJPbmx5IG9iamVjdHMgY2FuIGJlIHdyYXBwZWQgaW4gJ1FPYmplY3QnXCIsIC8vIDhcbiAgICAgIGBPbmx5IG9iamVjdHMgbGl0ZXJhbHMgY2FuIGJlIHdyYXBwZWQgaW4gJ1FPYmplY3QnYCwgLy8gOVxuICAgICAgJ1FSTCBpcyBub3QgYSBmdW5jdGlvbicsIC8vIDEwXG4gICAgICAnRHluYW1pYyBpbXBvcnQgbm90IGZvdW5kJywgLy8gMTFcbiAgICAgICdVbmtub3duIHR5cGUgYXJndW1lbnQnLCAvLyAxMlxuICAgICAgYEFjdHVhbCB2YWx1ZSBmb3IgdXNlQ29udGV4dCh7ezB9fSkgY2FuIG5vdCBiZSBmb3VuZCwgbWFrZSBzdXJlIHNvbWUgYW5jZXN0b3IgY29tcG9uZW50IGhhcyBzZXQgYSB2YWx1ZSB1c2luZyB1c2VDb250ZXh0UHJvdmlkZXIoKS4gSW4gdGhlIGJyb3dzZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGNvbnRleHQgd2FzIHVzZWQgZHVyaW5nIFNTUiBzbyBpdHMgc3RhdGUgd2FzIHNlcmlhbGl6ZWQuYCwgLy8gMTNcbiAgICAgIFwiSW52b2tpbmcgJ3VzZSooKScgbWV0aG9kIG91dHNpZGUgb2YgaW52b2NhdGlvbiBjb250ZXh0LlwiLCAvLyAxNFxuICAgICAgJ0NhbnQgYWNjZXNzIHJlbmRlckN0eCBmb3IgZXhpc3RpbmcgY29udGV4dCcsIC8vIDE1XG4gICAgICAnQ2FudCBhY2Nlc3MgZG9jdW1lbnQgZm9yIGV4aXN0aW5nIGNvbnRleHQnLCAvLyAxNlxuICAgICAgJ3Byb3BzIGFyZSBpbW11dGFibGUnLCAvLyAxN1xuICAgICAgJzxkaXY+IGNvbXBvbmVudCBjYW4gb25seSBiZSB1c2VkIGF0IHRoZSByb290IG9mIGEgUXdpayBjb21wb25lbnQkKCknLCAvLyAxOFxuICAgICAgJ1Byb3BzIGFyZSBpbW11dGFibGUgYnkgZGVmYXVsdC4nLCAvLyAxOVxuICAgICAgYENhbGxpbmcgYSAndXNlKigpJyBtZXRob2Qgb3V0c2lkZSAnY29tcG9uZW50JCgoKSA9PiB7IEhFUkUgfSknIGlzIG5vdCBhbGxvd2VkLiAndXNlKigpJyBtZXRob2RzIHByb3ZpZGUgaG9va3MgdG8gdGhlICdjb21wb25lbnQkJyBzdGF0ZSBhbmQgbGlmZWN5Y2xlLCBpZSAndXNlJyBob29rcyBjYW4gb25seSBiZSBjYWxsZWQgc3luY2hyb25vdXNseSB3aXRoaW4gdGhlICdjb21wb25lbnQkJyBmdW5jdGlvbiBvciBhbm90aGVyICd1c2UnIG1ldGhvZC5cXG5TZWUgaHR0cHM6Ly9xd2lrLmRldi9kb2NzL2NvbXBvbmVudHMvdGFza3MvI3VzZS1tZXRob2QtcnVsZXNgLCAvLyAyMFxuICAgICAgJ0NvbnRhaW5lciBpcyBhbHJlYWR5IHBhdXNlZC4gU2tpcHBpbmcnLCAvLyAyMVxuICAgICAgJycsIC8vIDIyIC0tIHVudXNlZFxuICAgICAgJ1doZW4gcmVuZGVyaW5nIGRpcmVjdGx5IG9uIHRvcCBvZiBEb2N1bWVudCwgdGhlIHJvb3Qgbm9kZSBtdXN0IGJlIGEgPGh0bWw+JywgLy8gMjNcbiAgICAgICdBIDxodG1sPiBub2RlIG11c3QgaGF2ZSAyIGNoaWxkcmVuLiBUaGUgZmlyc3Qgb25lIDxoZWFkPiBhbmQgdGhlIHNlY29uZCBvbmUgYSA8Ym9keT4nLCAvLyAyNFxuICAgICAgJ0ludmFsaWQgSlNYTm9kZSB0eXBlIFwie3swfX1cIi4gSXQgbXVzdCBiZSBlaXRoZXIgYSBmdW5jdGlvbiBvciBhIHN0cmluZy4gRm91bmQ6JywgLy8gMjVcbiAgICAgICdUcmFja2luZyB2YWx1ZSBjaGFuZ2VzIGNhbiBvbmx5IGJlIGRvbmUgdG8gdXNlU3RvcmUoKSBvYmplY3RzIGFuZCBjb21wb25lbnQgcHJvcHMnLCAvLyAyNlxuICAgICAgJ01pc3NpbmcgT2JqZWN0IElEIGZvciBjYXB0dXJlZCBvYmplY3QnLCAvLyAyN1xuICAgICAgJ1RoZSBwcm92aWRlZCBDb250ZXh0IHJlZmVyZW5jZSBcInt7MH19XCIgaXMgbm90IGEgdmFsaWQgY29udGV4dCBjcmVhdGVkIGJ5IGNyZWF0ZUNvbnRleHRJZCgpJywgLy8gMjhcbiAgICAgICc8aHRtbD4gaXMgdGhlIHJvb3QgY29udGFpbmVyLCBpdCBjYW4gbm90IGJlIHJlbmRlcmVkIGluc2lkZSBhIGNvbXBvbmVudCcsIC8vIDI5XG4gICAgICAnUVJMcyBjYW4gbm90IGJlIHJlc29sdmVkIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhbiBhdHRhY2hlZCBjb250YWluZXIuIFRoaXMgbWVhbnMgdGhhdCB0aGUgUVJMIGRvZXMgbm90IGtub3cgd2hlcmUgaXQgYmVsb25ncyBpbnNpZGUgdGhlIERPTSwgc28gaXQgY2FudCBkeW5hbWljYWxseSBpbXBvcnQoKSBmcm9tIGEgcmVsYXRpdmUgcGF0aC4nLCAvLyAzMFxuICAgICAgJ1FSTHMgY2FuIG5vdCBiZSBkeW5hbWljYWxseSByZXNvbHZlZCwgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgY2h1bmsgcGF0aCcsIC8vIDMxXG4gICAgICAnVGhlIEpTWCByZWYgYXR0cmlidXRlIG11c3QgYmUgYSBTaWduYWwnLCAvLyAzMlxuICAgIF07XG4gICAgbGV0IHRleHQgPSBNQVBbY29kZV0gPz8gJyc7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCkge1xuICAgICAgdGV4dCA9IHRleHQucmVwbGFjZUFsbCgve3soXFxkKyl9fS9nLCAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgbGV0IHYgPSBwYXJ0c1tpbmRleF07XG4gICAgICAgIGlmICh2ICYmIHR5cGVvZiB2ID09PSAnb2JqZWN0JyAmJiB2LmNvbnN0cnVjdG9yID09PSBPYmplY3QpIHtcbiAgICAgICAgICB2ID0gSlNPTi5zdHJpbmdpZnkodikuc2xpY2UoMCwgNTApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBgQ29kZSgke2NvZGV9KTogJHt0ZXh0fWA7XG4gIH0gZWxzZSB7XG4gICAgLy8gY3V0ZSBsaXR0bGUgaGFjayB0byBnaXZlIHJvdWdobHkgdGhlIGNvcnJlY3QgbGluZSBudW1iZXIuIFVwZGF0ZSB0aGUgbGluZSBudW1iZXIgaWYgaXQgc2hpZnRzLlxuICAgIHJldHVybiBgQ29kZSgke2NvZGV9KSBodHRwczovL2dpdGh1Yi5jb20vUXdpa0Rldi9xd2lrL2Jsb2IvbWFpbi9wYWNrYWdlcy9xd2lrL3NyYy9jb3JlL2Vycm9yL2Vycm9yLnRzI0wkezggKyBjb2RlfWA7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBRRXJyb3Jfc3RyaW5naWZ5Q2xhc3NPclN0eWxlID0gMDtcbmV4cG9ydCBjb25zdCBRRXJyb3JfY2Fubm90U2VyaWFsaXplTm9kZSA9IDE7XG5leHBvcnQgY29uc3QgUUVycm9yX3J1bnRpbWVRcmxOb0VsZW1lbnQgPSAyO1xuZXhwb3J0