@shgysk8zer0/polyfills 0.3.4 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/all.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"all.min.js","sources":["globalThis.js","deprefixer.js","object.js","map.js","array.js","utils.js","symbols.js","function.js","url.js","number.js","iterator.js","math.js","secure-context.js","assets/utility.js","assets/Lock.js","assets/LockManager.js","assets/error.js","locks.js","share.js","appBadge.js","navigator.js","performance.js","abort.js","errors.js","match-media.js","promise.js","assets/TextEncoder.js","assets/TextDecoder.js","textEncoder.js","crypto.js","assets/CookieStore.js","animation.js","assets/attributes.js","assets/csp.js","assets/TrustedTypes.js","assets/trust.js","trustedTypes.js","assets/adoptedStylesheets.js","CSSStyleSheet.js","Document.js","ShadowRoot.js","aom.js","node_modules/@aegisjsproject/sanitizer/namespaces.js","node_modules/@aegisjsproject/sanitizer/config-utils.js","node_modules/@aegisjsproject/sanitizer/config/global.js","node_modules/@aegisjsproject/sanitizer/config/html.js","node_modules/@aegisjsproject/sanitizer/sanitize.js","node_modules/@aegisjsproject/sanitizer/polyfill.js","node_modules/@aegisjsproject/sanitizer/config/svg.js","node_modules/@aegisjsproject/sanitizer/config/mathml.js","element.js","node_modules/@aegisjsproject/sanitizer/config/base.js","node_modules/@aegisjsproject/sanitizer/config/complete.js","set.js","weakMap.js","window.js","assets/Scheduler.js","scheduler.js","elementInternals.js","Record.js","response.js","Tuple.js","JSON.js"],"sourcesContent":["(function() {\n\t'use strict';\n\n\tif (typeof globalThis === 'undefined') {\n\t\t/* global global: true */\n\t\tif (typeof window !== 'undefined') {\n\t\t\tObject.defineProperty(Window.prototype, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: window,\n\t\t\t});\n\t\t} else if (typeof global !== 'undefined') {\n\t\t\tObject.defineProperty(global, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: global,\n\t\t\t});\n\t\t} else if (typeof self !== 'undefined') {\n\t\t\tObject.defineProperty(self, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: self,\n\t\t\t});\n\t\t} else {\n\t\t\tObject.defineProperty(this, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: this,\n\t\t\t});\n\t\t}\n\t}\n})();\n","if (! ('crypto' in window) && 'msCrypto' in window) {\n\tglobalThis.crypto = globalThis.msCrypto;\n}\n\nif (!('Notification' in window)) {\n\tglobalThis.Notification = globalThis.notifications || globalThis.webkitNotifications || globalThis.oNotifications || globalThis.msNotifications || false;\n}\n\nif (!('doNotTrack' in navigator)) {\n\tnavigator.doNotTrack = globalThis.doNotTrack || navigator.msDoNotTrack || 'unspecified';\n}\n\nif (!('indexedDB' in window)) {\n\tglobalThis.indexedDB = globalThis.indexedDB || globalThis.mozIndexedDB || globalThis.webkitIndexedDB || globalThis.msIndexedDB || false;\n}\n\nif (!('hidden' in document)) {\n\tdocument.hidden = document.webkitHidden || document.msHidden || document.mozHidden || false;\n}\n\nif (!('visibilityState' in document)) {\n\tdocument.visibilityState = document.webkitVisibilityState || document.msVisibilityState || document.mozVisibilityState || 'visible';\n}\n\nif (!('fullscreenElement' in document)) {\n\tdocument.fullscreenElement = document.mozFullScreenElement || document.webkitFullscreenElement || false;\n}\n\nif (!('requestAnimationFrame' in window)) {\n\tglobalThis.requestAnimationFrame = globalThis.mozRequestAnimationFrame || globalThis.webkitRequestAnimationFrame || globalThis.msRequestAnimationFrame || false;\n}\n\nif (!('exitFullscreen' in Document.prototype)) {\n\tDocument.prototype.exitFullscreen = document.mozCancelFullScreen || document.webkitCancelFullScreen || document.msCancelFullScreen || false;\n}\n\nif (!('requestFullscreen' in HTMLElement.prototype)) {\n\tHTMLElement.prototype.requestFullscreen = HTMLElement.prototype.requestFullScreen || HTMLElement.prototype.mozRequestFullScreen || HTMLElement.prototype.webkitRequestFullScreen || false;\n}\n\nif (!('fullscreen' in Document.prototype)) {\n\tObject.defineProperty(Document.prototype, 'fullscreen', {\n\t\tget:() => document.fullscreenElement instanceof Element,\n\t});\n}\n","if (! (Object.groupBy instanceof Function)) {\n\tObject.groupBy = function(items, callbackFn) {\n\t\treturn Array.from(items).reduce((groups, element, index) => {\n\t\t\tconst key = callbackFn.call(groups, element, index);\n\n\t\t\tif (! groups.hasOwnProperty(key)) {\n\t\t\t\tgroups[key] = [element];\n\t\t\t} else {\n\t\t\t\tgroups[key].push(element);\n\t\t\t}\n\n\t\t\treturn groups;\n\t\t}, {});\n\t};\n}\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @see https://github.com/tc39/proposal-upsert\n\t */\n\n\tif (! (Map.prototype.emplace instanceof Function)) {\n\t\tMap.prototype.emplace = function emplace(key, { insert, update } = {}) {\n\t\t\tconst has = this.has(key);\n\n\t\t\tif (has && update instanceof Function) {\n\t\t\t\tconst existing = this.get(key);\n\t\t\t\tconst value = update.call(this, existing, key, this);\n\n\t\t\t\tif (value !== existing) {\n\t\t\t\t\tthis.set(key, value);\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t} else if (has) {\n\t\t\t\treturn this.get(key);\n\t\t\t} else if (insert instanceof Function) {\n\t\t\t\tconst value = insert.call(this, key, this);\n\t\t\t\tthis.set(key, value);\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\tthrow new Error('Key is not found and no `insert()` given');\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Map.groupBy instanceof Function)) {\n\t\tMap.groupBy = function groupTo(items, callbackFn) {\n\t\t\treturn Array.from(items).reduce((map, element, index) => {\n\t\t\t\tmap.emplace(callbackFn.call(map, element, index), {\n\t\t\t\t\tinsert: () => [element],\n\t\t\t\t\tupdate: existing => {\n\t\t\t\t\t\texisting.push(element);\n\t\t\t\t\t\treturn existing;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn map;\n\t\t\t}, new Map());\n\t\t};\n\t}\n})();\n","/**\n * @SEE https://github.com/tc39/proposal-relative-indexing-method#polyfill\n * @SEE https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\n */\n\nconst SHIM_TARGETS = [Array, String, globalThis.Int8Array, globalThis.Uint8Array,\n\tglobalThis.Uint8ClampedArray, globalThis.Int16Array, globalThis.Uint16Array,\n\tglobalThis.Int32Array, globalThis.Uint32Array, globalThis.Float32Array,\n\tglobalThis.Float64Array, globalThis.BigInt64Array, globalThis.BigUint64Array,\n];\n\nif (! (Array.prototype.flat instanceof Function)) {\n\tArray.prototype.flat = function(depth = 1) {\n\t\tconst result = [];\n\t\tdepth = Math.min(Number.MAX_SAFE_INTEGER, Math.max(0, depth));\n\n\t\tconst flattenFn = (item, depth) => {\n\t\t\tif (Array.isArray(item) && depth >= 0) {\n\t\t\t\titem.forEach(i => flattenFn(i, depth - 1));\n\t\t\t} else {\n\t\t\t\tresult.push(item);\n\t\t\t}\n\t\t};\n\n\t\tflattenFn(this, Number.isNaN(depth) ? 0 : depth);\n\t\treturn result;\n\t};\n}\n\nif (! (Array.prototype.flatMap instanceof Function)) {\n\tArray.prototype.flatMap = function(cb, thisArg) {\n\t\treturn this.map(cb, thisArg).flat(1);\n\t};\n}\n\nif (! (Array.prototype.findLast instanceof Function)) {\n\tArray.prototype.findLast = function(callback, thisArg) {\n\t\tlet found = undefined;\n\n\t\tthis.forEach((item, index, arr) => {\n\t\t\tif (callback.call(thisArg, item, index, arr)) {\n\t\t\t\tfound = item;\n\t\t\t}\n\t\t}, thisArg);\n\n\t\treturn found;\n\t};\n}\n\nif(! ('lastIndex' in Array.prototype)) {\n\tObject.defineProperty(Array.prototype, 'lastIndex', {\n\t\tenumerable: false,\n\t\tconfigurable: false,\n\t\tget: function() {\n\t\t\treturn Math.max(0, this.length - 1);\n\t\t}\n\t});\n}\n\nif(! ('lastItem' in Array.prototype)) {\n\tObject.defineProperty(Array.prototype, 'lastItem', {\n\t\tenumerable: false,\n\t\tconfigurable: false,\n\t\tget: function() {\n\t\t\treturn this[this.lastIndex];\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis[this.lastIndex] = val;\n\t\t}\n\t});\n}\n\nif (! (Array.prototype.findLastIndex instanceof Function)) {\n\tArray.prototype.findLastIndex = function(callback, thisArg) {\n\t\tlet found = -1;\n\n\t\tthis.forEach((item, index, arr) => {\n\t\t\tif (callback.call(thisArg, item, index, arr)) {\n\t\t\t\tfound = index;\n\t\t\t}\n\t\t}, thisArg);\n\n\t\treturn found;\n\t};\n}\n\nif (! (Array.prototype.at instanceof Function)) {\n\tconst at = function at(n) {\n\t\tn = Math.trunc(n) || 0;\n\t\tif (n < 0) n += this.length;\n\t\tif (n < 0 || n >= this.length) return undefined;\n\t\treturn this[n];\n\t};\n\n\tfor (const C of SHIM_TARGETS) {\n\t\tif (typeof C !== 'undefined') {\n\t\t\tObject.defineProperty(C.prototype, 'at', {\n\t\t\t\tvalue: at,\n\t\t\t\twritable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t}\n\t}\n}\n\n/**\n * @deprecated [moved to `Object.groupBy()`]\n * @see https://github.com/tc39/proposal-array-grouping\n */\nif (! (Array.prototype.group instanceof Function) && Object.groupBy instanceof Function) {\n\tArray.prototype.group = function group(callback) {\n\t\tconsole.warn('`Array.group()` is deprecated. Please use `Object.groupBy()` instead.');\n\t\treturn Object.groupBy(this, callback);\n\t};\n}\n\n/**\n * @deprecated [moved to `Object.groupBy()`]\n */\nif (! (Array.prototype.groupBy instanceof Function) && Object.groupBy instanceof Function) {\n\tArray.prototype.groupBy = function groupBy(callback) {\n\t\tconsole.warn('`Array.goupBy()` is deprecated. Please use `Object.groupBy()` instead.');\n\t\treturn Object.groupBy(this, callback);\n\t};\n}\n\n/**\n * @see https://github.com/tc39/proposal-array-grouping\n * @deprecated [moved to `Map.groupBy()`]\n * @requires `Map.prototype.emplace`\n */\nif (! (Array.prototype.groupToMap instanceof Function) && (Map.groupBy instanceof Function)) {\n\tArray.prototype.groupToMap = function groupToMap(callback) {\n\t\tconsole.warn('`Array.groupToMap()` is deprecated. Please use `Map.groupBy()` instead.');\n\t\treturn Map.groupBy(this, callback);\n\t};\n}\n\n/**\n * @deprecated [moved to `Map.groupBy()`]\n */\nif (Map.groupBy instanceof Function) {\n\tArray.prototype.groupByToMap = function groupByToMap(callback) {\n\t\tconsole.warn('`Array.groupByToMap()` is deprecated. Please use `Map.groupBy()` instead.');\n\t\treturn Map.groupBy(this, callback);\n\t};\n}\n\n/**\n * @see https://github.com/tc39/proposal-array-from-async\n */\nif (! (Array.fromAsync instanceof Function)) {\n\tArray.fromAsync = async function fromAsync(items, mapFn, thisArg = globalThis) {\n\t\tlet arr = [];\n\n\t\tfor await (const item of items) {\n\t\t\tarr.push(await item);\n\t\t}\n\n\t\treturn Array.from(arr, mapFn, thisArg);\n\t};\n}\n\n/**\n * @see https://github.com/tc39/proposal-array-equality/\n */\nif (! (Array.prototype.equals instanceof Function)) {\n\tArray.prototype.equals = function equals(arr) {\n\t\tif (this === arr) {\n\t\t\treturn true;\n\t\t} else if (! Array.isArray(arr)) {\n\t\t\treturn false;\n\t\t} else if (this.length !== arr.length) {\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn this.every((item, i) => {\n\t\t\t\tconst val = arr[i];\n\t\t\t\tif (Array.isArray(item)) {\n\t\t\t\t\treturn Array.isArray(val) && item.equals(val);\n\t\t\t\t} else {\n\t\t\t\t\treturn Object.is(item, val);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n}\n/**\n * @see https://github.com/tc39/proposal-array-unique\n */\nif (! (Array.prototype.uniqueBy instanceof Function)) {\n\tArray.prototype.uniqueBy = function uniqueBy(arg) {\n\t\tif (typeof arg === 'undefined') {\n\t\t\treturn [...new Set(this)];\n\t\t} else if (typeof arg === 'string') {\n\t\t\tconst found = [];\n\n\t\t\treturn this.filter(obj => {\n\t\t\t\tconst key = obj[arg];\n\t\t\t\tif (found.includes(key)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\tfound.push(key);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (arg instanceof Function) {\n\t\t\tconst found = [];\n\n\t\t\treturn this.filter((...args) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst key = arg.apply(this, args);\n\n\t\t\t\t\tif (typeof key !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else if (found.includes(key)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfound.push(key);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t} catch(err) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new TypeError('Not a valid argument for uniqueBy');\n\t\t}\n\t};\n}\n\n/**\n * Change Array by copy proposal\n * @Note: Not clear if should use `structedClone` or `[...this]` for copies\n * @see https://github.com/tc39/proposal-change-array-by-copy\n */\nif (! (Array.prototype.toReversed instanceof Function)) {\n\tArray.prototype.toReversed = function toReversed() {\n\t\treturn [...this].reverse();\n\t};\n}\n\nif (! (Array.prototype.toSorted instanceof Function)) {\n\tArray.prototype.toSorted = function toSorted(cmpFn) {\n\t\treturn [...this].sort(cmpFn);\n\t};\n}\n\nif (! (Array.prototype.toSpliced instanceof Function)) {\n\tArray.prototype.toSpliced = function toSpliced(start, deleteCount, ...items) {\n\t\tconst cpy = [...this];\n\t\tcpy.splice(start, deleteCount, ...items);\n\t\treturn cpy;\n\t};\n}\n\nif (! (Array.prototype.with instanceof Function)) {\n\tArray.prototype.with = function (index, value) {\n\t\tconst cpy = [...this];\n\t\tcpy[index] = value;\n\t\treturn cpy;\n\t};\n}\n\nif (! (Array.isTemplateObject instanceof Function)) {\n\tArray.isTemplateObject = function(target) {\n\t\tif (! (\n\t\t\tArray.isArray(target) && Array.isArray(target.raw)\n\t\t\t&& Object.isFrozen(target) && Object.isFrozen(target.raw)\n\t\t)) {\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn target.length !== 0 && target.length === target.raw.length;\n\t\t}\n\t};\n}\n\n/**\n * @see https://github.com/tc39/proposal-arraybuffer-base64\n */\nif (! (Uint8Array.prototype.toHex instanceof Function)) {\n\tUint8Array.prototype.toHex = function toHex() {\n\t\treturn Array.from(this).map(n => n.toString(16).padStart('0', 2)).join('');\n\t};\n}\n\nif (! (Uint8Array.prototype.toBase64 instanceof Function)) {\n\tUint8Array.prototype.toBase64 = function toBase64({ alphabet = 'base64' } = {}) {\n\t\tif (alphabet === 'base64') {\n\t\t\t// @todo Figure out encoding specifics\n\t\t\treturn btoa(String.fromCodePoint(...this));\n\t\t\t// return btoa(new TextDecoder().decode(this));\n\t\t} else if (alphabet === 'base64url') {\n\t\t\treturn this.toBase64({ alphabet: 'base64' }).replaceAll('+', '-').replaceAll('/', '_');\n\t\t} else {\n\t\t\tthrow new TypeError('expected alphabet to be either \"base64\" or \"base64url');\n\t\t}\n\t};\n}\n\nif (! (Uint8Array.fromHex instanceof Function)) {\n\tUint8Array.fromHex = function fromHex(str) {\n\t\tif (typeof str !== 'string') {\n\t\t\tthrow new TypeError('expected input to be a string');\n\t\t} else if (! (str.length & 1) === 0) {\n\t\t\tthrow new SyntaxError('string should be an even number of characters');\n\t\t} else {\n\t\t\treturn Uint8Array.from(\n\t\t\t\tglobalThis.Iterator.range(0, str.length, { step: 2 }),\n\t\t\t\ti => parseInt(str.substring(i, i + 2), 16)\n\t\t\t);\n\t\t}\n\t};\n}\n\nif (! (Uint8Array.fromBase64 instanceof Function)) {\n\tUint8Array.fromBase64 = function fromBase64(str, {\n\t\talphabet = 'base64',\n\t\tlastChunkHandling = 'loose',\n\t} = {}) {\n\t\tif (typeof str !== 'string') {\n\t\t\tthrow new TypeError('expected input to be a string');\n\t\t} else if (! ['base64', 'base64url'].includes(alphabet)) {\n\t\t\tthrow new TypeError('expected alphabet to be either \"base64\" or \"base64url');\n\t\t} else if (! ['loose', 'strict', 'stop-before-partial'].includes(lastChunkHandling)) {\n\t\t\tthrow new TypeError(`Invalid \\`lastChunkHandling\\`: \"${lastChunkHandling}\".`);\n\t\t} else if (alphabet === 'base64') {\n\t\t\tconst lastChunkLength = str.length % 4;\n\n\t\t\tif (lastChunkLength === 1) {\n\t\t\t\tthrow new TypeError('Invalid string length.');\n\t\t\t} else if (lastChunkLength !== 0) {\n\t\t\t\tswitch(lastChunkHandling) {\n\t\t\t\t\tcase 'strict':\n\t\t\t\t\t\tthrow new SyntaxError('Missing padding.');\n\n\t\t\t\t\tcase 'loose':\n\t\t\t\t\t\treturn Uint8Array.fromBase64(str.padEnd(str.length + (4 - lastChunkLength), '='), {\n\t\t\t\t\t\t\talphabet: 'base64',\n\t\t\t\t\t\t\tlastChunkHandling: 'strict',\n\t\t\t\t\t\t});\n\n\t\t\t\t\tcase 'stop-before-partial':\n\t\t\t\t\t\treturn Uint8Array.fromBase64(str.slice(0, str.length - lastChunkLength), {\n\t\t\t\t\t\t\talphabet: 'base64',\n\t\t\t\t\t\t\tlastChunkHandling: 'strict',\n\t\t\t\t\t\t});\n\n\t\t\t\t\t// Already checked for valid `lastChunkHandling`\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn new TextEncoder().encode(atob(str));\n\t\t\t}\n\t\t} else {\n\t\t\treturn Uint8Array.fromBase64(\n\t\t\t\tstr.replaceAll('-', '+').replaceAll('_', '/'),\n\t\t\t\t{ alphabet: 'base64', }\n\t\t\t);\n\t\t}\n\t};\n}\n\n// @todo Implement Uint8Array.fromBase64Into & Uint8Array.fromHexInto\n// if (! (Uint8Array.fromBase64Into instanceof Function)) {\n// \tUint8Array.fromBase64Into = function fromBase64Into(str, target) {\n// \t\tconst { read, written } = new TextEncoder().encodeInto(atob(str), target);\n// \t\treturn { read, written, target };\n// \t};\n// }\n","export function polyfillMethod(parent, name, value, {\n\twritable = true,\n\tenumerable = true,\n\tconfigurable = true,\n} = {}) {\n\tif (! (parent[name] instanceof Function)) {\n\t\tObject.defineProperty(parent, name, { value, writable, enumerable, configurable });\n\t}\n}\n\nexport function polyfillGetterSetter(parent, name, {\n\tget,\n\tset,\n\tenumerable = true,\n\tconfigurable = true,\n} = {}) {\n\tif (! parent.hasOwnProperty(name)) {\n\t\tObject.defineProperty(parent, name, { get, set, enumerable, configurable });\n\t}\n}\n\nexport function overwriteMethod(parent, name, func) {\n\tconst { value, enumerable, configurable, writable } = Object.getOwnPropertyDescriptor(parent, name);\n\tconst newMethod = func(value);\n\n\tif (! (newMethod instanceof Function)) {\n\t\tthrow new TypeError(`Error overwriting ${name}. The func MUST be a function that accepts the original as an argument and return a function.`);\n\t} else {\n\t\tObject.defineProperty(parent, name, { value: newMethod, enumerable, configurable, writable });\n\t}\n}\n","if ('Symbol' in globalThis) {\n\tif (typeof Symbol.toStringTag === 'undefined') {\n\t\tSymbol.toStringTag = Symbol('Symbol.toStringTag');\n\t}\n\n\tif (typeof Symbol.iterator === 'undefined') {\n\t\tSymbol.iterator = Symbol('Symbol.iterator');\n\t}\n}\n","(function() {\n\t'use strict';\n\n\tif (! (Function.prototype.once instanceof Function)) {\n\t\tconst funcs = new WeakMap();\n\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-function-once\n\t\t */\n\t\tFunction.prototype.once = function once(thisArg) {\n\t\t\tconst callback = this;\n\t\t\treturn function(...args) {\n\t\t\t\tif (funcs.has(callback)) {\n\t\t\t\t\treturn funcs.get(callback);\n\t\t\t\t} else if (callback.constructor.name === 'AsyncFunction') {\n\t\t\t\t\tconst retVal = callback.apply(thisArg || callback, args).catch(err => {\n\t\t\t\t\t\tfuncs.delete(callback);\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t});\n\n\t\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\t\treturn retVal;\n\t\t\t\t} else if (callback instanceof Function) {\n\t\t\t\t\tconst retVal = callback.apply(thisArg || callback, args);\n\t\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\t\treturn retVal;\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t}\n})();\n","import { polyfillMethod } from './utils.js';\n\npolyfillMethod(URL, 'canParse', (str, base) => {\n\ttry {\n\t\tnew URL(str, base);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n});\n","(function() {\n\t'use strict';\n\n\tif (! (Number.range instanceof Function)) {\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-Number.range\n\t\t * @deprecated - changed to `Iterator.range`\n\t\t */\n\t\tNumber.range = function range(start, end, step = 1) {\n\t\t\tconsole.warn('`Number.range()` is deprecated. Use `Iterator.range()` instead.');\n\t\t\treturn globalThis.Iterator.range(start, end, { step });\n\t\t};\n\t}\n})();\n","/**\n * @see https://github.com/tc39/proposal-iterator-helpers\n */\n\nconst supported = 'Iterator' in globalThis;\n\nconst IteratorPrototype = supported\n\t? Object.getPrototypeOf(globalThis.Iterator)\n\t: Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));\n\nconst Iterator = supported\n\t? globalThis.Iterator\n\t: (proto => {\n\t\tclass Iterator {\n\t\t\t[Symbol.iterator]() {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\n\t\tObject.setPrototypeOf(Iterator, proto);\n\n\t\treturn Iterator;\n\t})(IteratorPrototype);\n\nif (! (Iterator.range instanceof Function)) {\n\tIterator.range = function range(start, end, option) {\n\t\tif (typeof option === 'number' || typeof option === 'bigint') {\n\t\t\treturn Iterator.range(start, end, { step: option });\n\t\t} else if (typeof option !== 'object' || Object.is(option, null)) {\n\t\t\treturn Iterator.range(start, end, {});\n\t\t} else {\n\t\t\tconst {\n\t\t\t\t// Default to +/-, Number/BigInt based on start & end\n\t\t\t\tstep = typeof start === 'number'\n\t\t\t\t\t? start < end ? 1 : -1\n\t\t\t\t\t: start < end ? 1n : -1n,\n\t\t\t\tinclusive = false,\n\t\t\t} = option;\n\n\t\t\tif (typeof start !== 'number' && typeof start !== 'bigint') {\n\t\t\t\tthrow new TypeError('Start must be a number');\n\t\t\t} else if (Number.isNaN(start)) {\n\t\t\t\tthrow new RangeError('Invalid start');\n\t\t\t} else if (typeof end !== 'number' && typeof end !== 'bigint') {\n\t\t\t\tthrow new TypeError('End must be a number');\n\t\t\t} else if (Number.isNaN(end)) {\n\t\t\t\tthrow new RangeError('Invalid end');\n\t\t\t} else if (typeof step !== 'number' && typeof step !== 'bigint') {\n\t\t\t\tthrow new TypeError('Step must be a number');\n\t\t\t} else if (Number.isNaN(step)) {\n\t\t\t\tthrow new RangeError('Invalid step');\n\t\t\t} else if (step === 0) {\n\t\t\t\tthrow new RangeError('Step must not be 0');\n\t\t\t} else if ((step < 0 && start < end) || (step > 0 && start > end)) {\n\t\t\t\treturn;\n\t\t\t} else if (inclusive) {\n\t\t\t\tlet n = start;\n\t\t\t\tif (step > 0) {\n\t\t\t\t\treturn Iterator.from({\n\t\t\t\t\t\tnext() {\n\t\t\t\t\t\t\tconst ret = n <= end ? { value: n, done: false } : { done: true };\n\t\t\t\t\t\t\tn+= step;\n\t\t\t\t\t\t\treturn ret;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn Iterator.from({\n\t\t\t\t\t\tnext() {\n\t\t\t\t\t\t\tconst ret = n >= end ? { value: n, done: false } : { done: true };\n\t\t\t\t\t\t\tn+= step;\n\t\t\t\t\t\t\treturn ret;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet n = start;\n\n\t\t\t\tif (step > 0) {\n\t\t\t\t\treturn Iterator.from({\n\t\t\t\t\t\tnext() {\n\t\t\t\t\t\t\tconst ret = n < end ? { value: n, done: false } : { done: true };\n\t\t\t\t\t\t\tn+= step;\n\t\t\t\t\t\t\treturn ret;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tlet n = start;\n\n\t\t\t\t\treturn Iterator.from({\n\t\t\t\t\t\tnext() {\n\t\t\t\t\t\t\tconst ret = n > end ? { value: n, done: false } : { done: true };\n\t\t\t\t\t\t\tn+= step;\n\t\t\t\t\t\t\treturn ret;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\nif (! (IteratorPrototype[Symbol.toStringTag])) {\n\tIteratorPrototype[Symbol.toStringTag] = 'Iterator';\n}\n\nif (! (IteratorPrototype.take instanceof Function)) {\n\tIteratorPrototype.take = function take(limit) {\n\t\tlet n = 0;\n\t\tconst iter = this;\n\n\t\treturn Iterator.from({\n\t\t\tnext() {\n\t\t\t\tif (n++ >= limit) {\n\t\t\t\t\treturn { done: true };\n\t\t\t\t} else {\n\t\t\t\t\treturn iter.next();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n}\n\nif (! (IteratorPrototype.drop instanceof Function)) {\n\tIteratorPrototype.drop = function drop(limit) {\n\t\tfor (let n = 0; n < limit; n++) {\n\t\t\tconst { done } = this.next();\n\n\t\t\tif (done) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n}\n\nif (! (IteratorPrototype.toArray instanceof Function)) {\n\tIteratorPrototype.toArray = function toArray() {\n\t\treturn Array.from(this);\n\t};\n}\n\nif (! (IteratorPrototype.forEach instanceof Function)) {\n\tIteratorPrototype.forEach = function forEach(callback) {\n\t\tfor (const item of this) {\n\t\t\tcallback.call(this, item);\n\t\t}\n\t};\n}\n\nif (! (IteratorPrototype.flatMap instanceof Function)) {\n\tIteratorPrototype.flatMap = function flatMap(mapper) {\n\t\tconst iter = this;\n\t\tlet cur = this.next();\n\n\t\tconst getSubIter = ({ value, done = true } = {}) => {\n\t\t\treturn done\n\t\t\t\t? Iterator.from({\n\t\t\t\t\tnext() {\n\t\t\t\t\t\treturn { done: true };\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t: Iterator.from(mapper.call(iter, value));\n\t\t};\n\n\t\tlet sub = getSubIter(cur);\n\n\t\treturn Iterator.from({\n\t\t\tnext() {\n\t\t\t\tconst { value, done = true } = sub.next();\n\n\t\t\t\tif (cur.done && done) {\n\t\t\t\t\treturn { done: true };\n\t\t\t\t} else if (! done) {\n\t\t\t\t\treturn { value, done };\n\t\t\t\t} else if (! cur.done) {\n\t\t\t\t\tcur = iter.next();\n\t\t\t\t\tsub = getSubIter(cur);\n\t\t\t\t\treturn sub.next();\n\t\t\t\t} else {\n\t\t\t\t\treturn { done: true };\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t};\n}\n\nif (! (IteratorPrototype.map instanceof Function)) {\n\tIteratorPrototype.map = function map(callback) {\n\t\tconst iter = this;\n\n\t\treturn Iterator.from({\n\t\t\tnext() {\n\t\t\t\tconst { done, value } = iter.next();\n\n\t\t\t\tif (done) {\n\t\t\t\t\treturn { done };\n\t\t\t\t} else {\n\t\t\t\t\treturn { value: callback.call(iter, value), done: false };\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n}\n\nif (! (IteratorPrototype.reduce instanceof Function)) {\n\tIteratorPrototype.reduce = function reduce(callback, initialValue) {\n\t\tlet current = typeof initialValue === 'undefined' ? this.next().value : initialValue;\n\n\t\tfor (const item of this) {\n\t\t\tcurrent = callback.call(this, current, item);\n\t\t}\n\n\t\treturn current;\n\t};\n}\n\nif (! (IteratorPrototype.filter instanceof Function)) {\n\tIteratorPrototype.filter = function filter(callback) {\n\t\tconst iter = this;\n\t\tlet done = false;\n\t\tlet value = undefined;\n\n\t\treturn Iterator.from({\n\t\t\tnext() {\n\t\t\t\twhile (! done) {\n\t\t\t\t\tconst cur = iter.next();\n\t\t\t\t\tdone = cur.done;\n\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (callback.call(iter, cur.value)) {\n\t\t\t\t\t\tvalue = cur.value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn { done, value };\n\t\t\t}\n\t\t});\n\t};\n}\n\nif (! (IteratorPrototype.some instanceof Function)) {\n\tIteratorPrototype.some = function some(callback) {\n\t\tlet retVal = false;\n\t\tfor (const item of this) {\n\t\t\tif (callback.call(this, item)) {\n\t\t\t\tretVal = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn retVal;\n\t};\n}\n\nif (! (IteratorPrototype.every instanceof Function)) {\n\tIteratorPrototype.every = function every(callback) {\n\t\tlet retVal = true;\n\t\tfor (const item of this) {\n\t\t\tif (! callback.call(this, item)) {\n\t\t\t\tretVal = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn retVal;\n\t};\n}\n\nif (! (IteratorPrototype.find instanceof Function)) {\n\tIteratorPrototype.find = function find(callback) {\n\t\tfor (const item of this) {\n\t\t\tif (callback.call(this, item)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t};\n}\n\nif (! (IteratorPrototype.indexed instanceof Function)) {\n\tIteratorPrototype.indexed = function indexed() {\n\t\tlet n = 0;\n\t\treturn this.map(item => [n++, item]);\n\t};\n}\n\nif (! (IteratorPrototype.chunks instanceof Function)) {\n\tIteratorPrototype.chunks = function(size) {\n\t\tif (! Number.isSafeInteger(size) || size < 1) {\n\t\t\tthrow new TypeError('Size must be a positive integer.');\n\t\t} else {\n\t\t\tconst iter = this;\n\t\t\tlet done = false;\n\n\t\t\treturn Iterator.from({\n\t\t\t\tnext() {\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\treturn { done };\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst items = [];\n\t\t\t\t\t\tlet i = 0;\n\n\t\t\t\t\t\twhile(i++ < size && ! done) {\n\t\t\t\t\t\t\tconst next = iter.next();\n\n\t\t\t\t\t\t\tif (next.done) {\n\t\t\t\t\t\t\t\tdone = true;\n\n\t\t\t\t\t\t\t\tif (typeof next.value !== 'undefined') {\n\t\t\t\t\t\t\t\t\titems.push(next.value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\titems.push(next.value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn { value: items, done: false };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n}\n\nif (! (Iterator.from instanceof Function)) {\n\tIterator.from = function from(obj) {\n\t\tif (typeof obj !== 'object' || obj === null) {\n\t\t\tthrow new TypeError('Not an object.');\n\t\t} else if (obj.next instanceof Function) {\n\t\t\tconst iter = Object.create(IteratorPrototype, {\n\t\t\t\t'next': {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: (...args) => obj.next(...args),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn iter;\n\t\t} else if(obj[Symbol.iterator] instanceof Function) {\n\t\t\treturn Iterator.from(obj[Symbol.iterator]());\n\t\t}\n\t};\n}\n\nif (! supported) {\n\tglobalThis.Iterator = Iterator;\n}\n","if (! Number.hasOwnProperty('isSafeInteger')) {\n\tNumber.MAX_SAFE_INTEGER = 2**53 -1;\n\tNumber.MIN_SAFE_INTEGER = -Number.MAX_SAFE_INTEGER;\n\tNumber.isSafeInteger = num => num <= Number.MAX_SAFE_INTEGER && num >= Number.MIN_SAFE_INTEGER;\n}\n\nif (! Number.hasOwnProperty('EPSILON')) {\n\tNumber.EPSILON = 2**-52;\n}\n\nif (! Math.hasOwnProperty('sign')) {\n\tMath.sign = x => ((x > 0) - (x < 0)) || +x;\n}\n\nif (! Math.hasOwnProperty('trunc')) {\n\tMath.trunc = x => {\n\t\tconst n = x - x%1;\n\t\treturn n===0 && (x<0 || (x===0 && (1/x !== 1/0))) ? -0 : n;\n\t};\n}\n\nif (! Math.hasOwnProperty('expm1')) {\n\tMath.expm1 = x => Math.exp(x) - 1;\n}\n\nif (! Math.hasOwnProperty('hypot')) {\n\tMath.hypot = (...nums) => Math.sqrt(nums.reduce((sum, num) => sum + num**2, 0));\n}\n\nif (! Math.hasOwnProperty('cbrt')) {\n\tMath.cbrt = x => x**(1/3);\n}\n\nif (! Math.hasOwnProperty('log10')) {\n\tMath.log10 = x => Math.log(x) * Math.LOG10E;\n}\n\nif (! Math.hasOwnProperty('log2')) {\n\tMath.log2 = x => Math.log(x) * Math.LOG2E;\n}\n\nif (! Math.hasOwnProperty('log1p')) {\n\tMath.log1p = x => Math.log(1 + x);\n}\n\nif (! Math.hasOwnProperty('fround')) {\n\tMath.fround = (function (array) {\n\t\treturn function(x) {\n\t\t\treturn array[0] = x, array[0];\n\t\t};\n\t})(new Float32Array(1));\n}\n\nif (! (Math.clamp instanceof Function)) {\n\tMath.clamp = function(value, min, max) {\n\t\treturn Math.min(Math.max(value, min), max);\n\t};\n}\n\n/*\n * Question of if it will be `Math.clamp` or `Math.constrain`\n */\nif (! (Math.constrain instanceof Function)) {\n\tMath.constrain = Math.clamp;\n}\n\n/**\n * @see https://github.com/tc39/proposal-math-sum\n */\nif(! (Math.sum instanceof Function)) {\n\tMath.sum = function(...nums) {\n\t\treturn nums.map(num => parseFloat(num)).reduce((sum, num) => sum + num);\n\t};\n}\n","(function() {\n\t'use strict';\n\n\tif (! ('isSecureContext' in globalThis)) {\n\t\tconst hostnames = ['localhost', '127.0.0.1'];\n\t\tconst HTTPS = 'https:';\n\t\tconst protocols = [HTTPS, 'file:', 'wss:'];\n\t\tconst hasSecureScripts = (document = globalThis.document) => {\n\t\t\treturn [...document.scripts].every(({ src }) => {\n\t\t\t\tif (src.length === 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\tconst { protocol, hostname } = new URL(src, document.baseURI);\n\t\t\t\t\treturn protocol === HTTPS || hostname === location.hostname;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tObject.defineProperty(globalThis, 'isSecureContext', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: function isSecureContext() {\n\t\t\t\tif (window.parent !== window) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (protocols.includes(location.protocol) || hostnames.includes(location.hostname)) {\n\t\t\t\t\treturn hasSecureScripts();\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n})();\n","const funcs = new WeakMap();\n\nexport const between = (min, val, max) => typeof val === 'number' && val >= min && val <= max;\n\nexport function getDeferred() {\n\tif (Promise.withResolvers instanceof Function) {\n\t\treturn Promise.withResolvers();\n\t} else {\n\t\tconst def = {};\n\t\tdef.promise = new Promise((resolve, reject) => {\n\t\t\tdef.resolve = resolve;\n\t\t\tdef.reject = reject;\n\t\t});\n\n\t\treturn def;\n\t}\n}\n\nexport function isAsyncFunction(what) {\n\treturn what instanceof Function && what.constructor.name === 'AsyncFunction';\n}\n\nexport function isAsync(what) {\n\treturn isAsyncFunction(what) || what instanceof Promise;\n}\n\nexport function isObject(thing) {\n\treturn typeof thing === 'object' && ! Object.is(thing, null) && ! Array.isArray(thing);\n}\n\nexport function getType(thing) {\n\tswitch (typeof thing) {\n\t\tcase 'undefined':\n\t\t\treturn 'Undefined';\n\n\t\tcase 'function':\n\t\t\tif ('prototype' in thing) {\n\t\t\t\treturn getType(thing.prototype);\n\t\t\t} else if ('constructor' in thing) {\n\t\t\t\treturn thing.constructor.name;\n\t\t\t} else {\n\t\t\t\treturn 'Function';\n\t\t\t}\n\n\t\tcase 'object':\n\t\t\tif (Object.is(thing, null)) {\n\t\t\t\treturn 'Null';\n\t\t\t} else if ('constructor' in thing) {\n\t\t\t\treturn thing.constructor.name;\n\t\t\t} else if (Symbol.toStringTag in thing) {\n\t\t\t\treturn thing[Symbol.toStringTag];\n\t\t\t} else if ('prototype' in thing) {\n\t\t\t\treturn getType(thing.prototype);\n\t\t\t} else {\n\t\t\t\tconsole.log(thing);\n\t\t\t\treturn 'Unknown Object';\n\t\t\t}\n\n\t\tcase 'string':\n\t\t\treturn 'String';\n\n\t\tcase 'number':\n\t\t\treturn Number.isNaN(thing) ? 'NaN' : 'Number';\n\n\t\tcase 'bigint':\n\t\t\treturn 'BigInt';\n\n\t\tcase 'boolean':\n\t\t\treturn 'Boolean';\n\n\t\tcase 'symbol':\n\t\t\treturn 'Symbol';\n\n\t\tdefault:\n\t\t\treturn 'Unknown';\n\t}\n}\n\nexport function callOnce(callback, thisArg) {\n\tif (callback.once instanceof Function) {\n\t\treturn callback.once(thisArg);\n\t} else {\n\t\treturn function(...args) {\n\t\t\tif (funcs.has(callback)) {\n\t\t\t\treturn funcs.get(callback);\n\t\t\t} else if (isAsyncFunction(callback)) {\n\t\t\t\tconst retVal = callback.apply(thisArg || this, args).catch(err => {\n\t\t\t\t\tfuncs.delete(callback);\n\t\t\t\t\tthrow err;\n\t\t\t\t});\n\n\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\treturn retVal;\n\t\t\t} else if (callback instanceof Function) {\n\t\t\t\tconst retVal = callback.apply(thisArg || this, args);\n\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\treturn retVal;\n\t\t\t}\n\t\t};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Lock\n */\nconst protectedData = new WeakMap();\n\nexport class Lock {\n\tconstructor(name, mode = 'exclusive') {\n\t\tif (! ['exclusive', 'shared'].includes(mode)) {\n\t\t\tthrow new TypeError(`'${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t}\n\n\t\tif (typeof name !== 'string') {\n\t\t\tname = name.toString();\n\t\t}\n\n\t\tif (name.startsWith('-')) {\n\t\t\tthrow new DOMException('Names starting with `-` are reserved');\n\t\t}\n\n\t\tprotectedData.set(this, { name, mode });\n\t}\n\n\tget name() {\n\t\treturn protectedData.get(this).name;\n\t}\n\n\tget mode() {\n\t\treturn protectedData.get(this).mode;\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { getDeferred, isAsync } from './utility.js';\nimport { Lock } from './Lock.js';\nconst locks = new Map();\nconst symbols = {\n\tlockKey: Symbol('lock-key'),\n};\n\nexport const nativeSupport = 'locks' in navigator && navigator.locks.request instanceof Function;\nexport async function checkSupport() {\n\treturn await new Promise(resolve => {\n\t\tif ('locks' in navigator && navigator.locks.request instanceof Function) {\n\t\t\tnavigator.locks.query().then(() => resolve(true)).catch(() => resolve(false));\n\t\t} else {\n\t\t\tresolve(false);\n\t\t}\n\t});\n}\n/**\n * Some browsing contexts (iframes) have `navigator.locks` but methods only throw\n */\nexport const actuallySupported = checkSupport();\n\nasync function callFunction(callback, arg = null) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (isAsync(callback)) {\n\t\t\tcallback.call(globalThis, arg).then(resolve, reject);\n\t\t} else {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = callback.call(globalThis, arg);\n\t\t\t\t\tresolve(result);\n\t\t\t\t} catch(err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction shouldPend({ name, mode }) {\n\tswitch(mode) {\n\t\tcase 'exclusive': return getLocks().some(lock => lock.name === name);\n\t\tcase 'shared': return getLocks().some(lock => lock.name === name && lock.mode === 'exclusive');\n\t}\n}\n\nfunction stealLocks(name) {\n\t[...locks.entries()].filter(([lock]) => lock.name === name).forEach(([lock, { reject, controller }]) => {\n\t\trequestIdleCallback(() => {\n\t\t\tcontroller.abort();\n\t\t\tlocks.delete(lock);\n\t\t});\n\t\treject(new DOMException('The lock request is aborted'));\n\t});\n}\n\nasync function whenReleased(lock) {\n\tif (locks.has(lock)) {\n\t\tawait locks.get(lock).promise.catch(console.error);\n\t}\n}\n\nfunction queueTask(name, mode, callback) {\n\tconst { resolve, reject, promise } = getDeferred();\n\tconst controller = new AbortController();\n\tconst lock = new Lock(name, mode);\n\tconst pending = shouldPend(lock);\n\tlocks.set(lock, { resolve, reject, promise, callback, pending, controller });\n\treturn lock;\n}\n\nfunction setPending(lock, pending = true) {\n\tif (locks.has(lock)) {\n\t\tlocks.set(lock, {...locks.get(lock), pending });\n\t}\n}\n\nfunction isPending(lock) {\n\treturn lock instanceof Lock && locks.has(lock) && locks.get(lock).pending;\n}\n\nfunction getLocks(name) {\n\tif (typeof name === 'string') {\n\t\treturn [...locks.keys()].filter(lock => lock.name === name);\n\t} else {\n\t\treturn [...locks.keys()];\n\t}\n}\n\nfunction getHeldLocks(name) {\n\treturn getLocks(name).filter(lock => ! isPending(lock));\n}\n\nfunction getPendingLocks(name) {\n\treturn getLocks(name).filter(lock => isPending(lock));\n}\n\nasync function whenNotBlocked(lock) {\n\tswitch(lock.mode) {\n\t\tcase 'exclusive':\n\t\t\tawait Promise.allSettled(getLocks()\n\t\t\t\t.filter(l => l.name === lock.name && l !== lock).map(whenReleased));\n\t\t\tbreak;\n\t\tcase 'shared':\n\t\t\tawait Promise.allSettled(getLocks()\n\t\t\t\t.filter(l => l.name === lock.name && l.mode === 'exclusive' && l !== lock).map(whenReleased));\n\t\t\tbreak;\n\t}\n}\n\nfunction getLockSignal(lock) {\n\tif (locks.has(lock)) {\n\t\treturn locks.get(lock).controller.signal;\n\t}\n}\n\nasync function executeLock(lock) {\n\tif (locks.has(lock)) {\n\t\tconst { resolve, reject, promise, callback, pending, controller } = locks.get(lock);\n\t\tif (pending) {\n\t\t\tsetPending(lock, false);\n\t\t}\n\n\t\tcallFunction(callback, lock).then(resolve, reject).finally(() => {\n\t\t\tlocks.delete(lock);\n\t\t\trequestIdleCallback(() => controller.abort());\n\t\t});\n\n\t\treturn promise;\n\t}\n}\n\n/**\n * @see https://w3c.github.io/web-locks/\n * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager\n */\nexport class LockManager {\n\tconstructor(key) {\n\t\tif (key !== symbols.lockKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t}\n\t}\n\t/**\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\n\t * @param {[type]} name [description]\n\t * @param {[type]} args [description]\n\t * @return {Promise} [description]\n\t * static async request(name, callback)\n\t * static async request(name, { mode = 'exclusive', ifAvailable = false, steal = false, signal }, callback)\n\t */\n\tstatic async request(name, ...args) {\n\t\tlet opts = {}, callback;\n\t\tif (args[0] instanceof Function) {\n\t\t\tcallback = args[0];\n\t\t} else if (args[1] instanceof Function) {\n\t\t\t[opts, callback] = args;\n\t\t}\n\n\t\tif (typeof name !== 'string') {\n\t\t\tname = name.toString();\n\t\t}\n\n\t\tconst { mode = 'exclusive', ifAvailable = false, steal = false, signal } = opts;\n\n\t\tif (steal && ifAvailable) {\n\t\t\tthrow new DOMException('LockManager.request: `steal` and `ifAvailable` cannot be used together');\n\t\t} else if (name.startsWith('-')) {\n\t\t\tthrow new DOMException('LockManager.request: Names starting with `-` are reserved');\n\t\t} else if (! ['exclusive', 'shared'].includes(mode)) {\n\t\t\tthrow new TypeError(`LockManager.request: '${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t} else if (signal instanceof AbortSignal && signal.aborted) {\n\t\t\tthrow signal.reason;\n\t\t} else if (mode === 'shared' && steal) {\n\t\t\tthrow new DOMException('LockManager.request: `steal` is only supported for exclusive lock requests');\n\t\t}\n\n\t\tconst held = getHeldLocks(name);\n\t\tconst pending = getPendingLocks(name);\n\t\tconst alreadyLocked = [...held, ...pending].some(lock => lock.name === name);\n\n\t\tif (steal && alreadyLocked) {\n\t\t\tstealLocks(name);\n\t\t}\n\n\t\t/**\n\t\t * If shared & held lock found (none exclusive), then this lock may be held as well\n\t\t * If exclusive & held or pending lock found, this is pending\n\t\t */\n\t\tconst lock = queueTask(name, mode, callback);\n\t\tif (signal instanceof AbortSignal) {\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\tif (locks.has(lock)) {\n\t\t\t\t\tconst { reject, controller } = locks.get(lock);\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treject(new DOMException('The lock request is aborted'));\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t}\n\t\t\t}, { once: true, signal: getLockSignal(lock) });\n\t\t}\n\n\t\tswitch(mode) {\n\t\t\tcase 'exclusive': {\n\t\t\t\tif (ifAvailable && (held.length !== 0 || pending.length !== 0)) {\n\t\t\t\t\tconst controller = locks.get(lock).controller;\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treturn await callFunction(callback, null).then(result => {\n\t\t\t\t\t\trequestIdleCallback(() => controller.abort());\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'shared': {\n\t\t\t\tif (! ifAvailable) {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t} else if ([...held, ...pending].some(lock => lock.mode === 'exclusive')) {\n\t\t\t\t\tconst controller = locks.get(lock).controller;\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treturn await callFunction(callback, null).then(result => {\n\t\t\t\t\t\trequestIdleCallback(() => controller.abort());\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`LockManager.request: '${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t}\n\t}\n\n\t/**\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager/query\n\t * @return {Promise} { held: [], pending: [] }\n\t */\n\tstatic async query() {\n\t\treturn {\n\t\t\theld: getHeldLocks().map(({ name, mode }) => ({ name, mode, clientId: null })),\n\t\t\tpending: getPendingLocks().map(({ name, mode }) => ({ name, mode, clientId: null })),\n\t\t};\n\t}\n}\n\nexport async function request(...args) {\n\tif (await actuallySupported) {\n\t\treturn navigator.locks.request(...args);\n\t} else {\n\t\treturn LockManager.request(...args);\n\t}\n}\n\nexport async function query() {\n\tif (await actuallySupported) {\n\t\treturn navigator.locks.query();\n\t} else {\n\t\treturn LockManager.query();\n\t}\n}\n\nexport async function polyfill() {\n\tif (! nativeSupport) {\n\t\tglobalThis.Lock = Lock;\n\t\tglobalThis.LockManager = LockManager;\n\t\tnavigator.locks = LockManager;\n\t} else if (! await actuallySupported) {\n\t\tnavigator.locks.request = (...args) => LockManager.request(...args);\n\t\tnavigator.locks.query = () => LockManager.query();\n\t}\n}\n","export function errorToEvent(error, type = 'error') {\n\tif (error instanceof Error) {\n\t\tconst { message, name, fileName: filename, lineNumber: lineno, columnNumber: colno } = error;\n\t\treturn new ErrorEvent(type, { error, message: `${name}: ${message}`, filename, lineno, colno });\n\t} else {\n\t\tthrow new TypeError('`errorToEvent()` only accepts Errors');\n\t}\n}\n","import { LockManager, actuallySupported, nativeSupport } from './assets/LockManager.js';\nimport { errorToEvent } from './assets/error.js';\nlet polyfilled = false;\n\nconst polyfilledPromise = new Promise(async resolve => {\n\tif (nativeSupport) {\n\t\tif (await actuallySupported) {\n\t\t\tresolve(false);\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tnavigator.locks.request = LockManager.request;\n\t\t\t\tnavigator.locks.query = LockManager.query;\n\t\t\t\tpolyfilled = true;\n\t\t\t\tresolve(true);\n\t\t\t} catch(err) {\n\t\t\t\tglobalThis.dispatchEvent(errorToEvent(err));\n\t\t\t\tresolve(false);\n\t\t\t}\n\t\t}\n\t} else {\n\t\ttry {\n\t\t\tnavigator.locks = LockManager;\n\t\t\tpolyfilled = true;\n\t\t\tresolve(true);\n\t\t} catch(err) {\n\t\t\tglobalThis.dispatchEvent(errorToEvent(err));\n\t\t\tresolve(false);\n\t\t}\n\t}\n});\n\n\nexport { polyfilled, polyfilledPromise };\n","(function() {\n\t'use strict';\n\n\tif (! (navigator.canShare instanceof Function)) {\n\t\tnavigator.canShare = function({ title, text, url, files } = {}) {\n\t\t\tif (! (navigator.share instanceof Function)) {\n\t\t\t\treturn false;\n\t\t\t} else if (Array.isArray(files) && files.length !== 0) {\n\t\t\t\treturn false;\n\t\t\t} else if ([title, text, url].every(arg => typeof arg === 'undefined')) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn [title, text, url].some(arg => typeof arg === 'string' && arg.length !== 0);\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! (navigator.setAppBadge instanceof Function)) {\n\t\tnavigator.setAppBadge = async (n) => {\n\t\t\tif (! Number.isInteger(n)) {\n\t\t\t\tthrow new TypeError('Failed to execute \\'setAppBadge\\' on \\'Navigator\\': Value is not of type \\'unsigned long long\\'');\n\t\t\t} else if (n < 0) {\n\t\t\t\tthrow new TypeError('Failed to execute \\'setAppBadge\\' on \\'Navigator\\': Value is outside the \\'unsigned long long\\' value range.');\n\t\t\t} else if (n === 0) {\n\t\t\t\tif (document.title.startsWith('(')) {\n\t\t\t\t\tdocument.title = document.title.replace(/^\\((\\d{1,2}\\+?)\\)\\s/, '');\n\t\t\t\t}\n\t\t\t} else if (n < 100) {\n\t\t\t\tawait navigator.clearAppBadge();\n\t\t\t\tdocument.title = `(${n}) ${document.title}`;\n\t\t\t} else {\n\t\t\t\tawait navigator.clearAppBadge();\n\t\t\t\tdocument.title = `(99+) ${document.title}`;\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (navigator.clearAppBadge instanceof Function)) {\n\t\tnavigator.clearAppBadge = () => navigator.setAppBadge(0);\n\t}\n})();\n","import './locks.js';\nimport './share.js';\nimport './appBadge.js';\n\nif (! Navigator.prototype.hasOwnProperty('pdfViewerEnabled')) {\n\tObject.defineProperty(navigator, 'pdfViewerEnabled', {\n\t\tenumerable: true,\n\t\tconfigurable: false,\n\t\twritable: false,\n\t\tvalue: false,\n\t});\n}\n\nif (! (Navigator.prototype.getInstalledRelatedApps instanceof Function)) {\n\tNavigator.prototype.getInstalledRelatedApps = async () => [];\n}\n\nif (! (Navigator.prototype.getGamepads instanceof Function)) {\n\tNavigator.prototype.getGamepads = () => [];\n}\n\nif (! ('hardwareConcurrency' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'hardwareConcurrency', {\n\t\tget: () => 1,\n\t});\n}\n\nif (! ('connection' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'connection', {\n\t\tget: () => Object.create(EventTarget.prototype, {\n\t\t\ttype: { value: 'unknown' },\n\t\t\teffectiveType: { value: '4g' },\n\t\t\trtt: { value: NaN },\n\t\t\tdownlink: { value: NaN },\n\t\t\tdownlinkMax: { value: Infinity },\n\t\t\tsaveData: { value: false },\n\t\t\tonchange: { value: null, writable: true },\n\t\t\tontypechange: { value: null, writable: true },\n\t\t})\n\t});\n} else if (! ('type' in navigator.connection)) {\n\tnavigator.connection.type = 'unknown';\n}\n\nif (! ('doNotTrack' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'doNotTrack', {\n\t\tget: () => 'unspecified',\n\t});\n}\n\nif (! ('globalPrivacyControl' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'globalPrivacyControl', {\n\t\tget: () => false,\n\t});\n}\n","(function() {\n\t'use strict';\n\n\tif (! (globalThis.requestIdleCallback instanceof Function)) {\n\t\tconst isValidTimeout = timeout => Number.isSafeInteger(timeout) && timeout > 0;\n\n\t\tglobalThis.requestIdleCallback = function(callback, { timeout } = {}) {\n\t\t\tconst start = performance.now();\n\t\t\tconst timeRemaining = () => isValidTimeout(timeout)\n\t\t\t\t? Math.max(0, timeout - (performance.now() - start))\n\t\t\t\t: Math.max(0, 600 - (performance.now() - start));\n\n\t\t\treturn setTimeout(() => callback({\n\t\t\t\tdidTimeout: isValidTimeout(timeout) ? timeRemaining() === 0 : false,\n\t\t\t\ttimeRemaining,\n\t\t\t}), 1);\n\t\t};\n\t}\n\n\tif (! (globalThis.cancelIdleCallback instanceof Function)) {\n\t\tglobalThis.cancelIdleCallback = id => clearTimeout(id);\n\t}\n\n\tif (! (globalThis.requestAnimationFrame instanceof Function)) {\n\t\tglobalThis.requestAnimationFrame = callback => setTimeout(() => callback(performance.now()), 1000 / 60);\n\t}\n\n\tif (! (globalThis.cancelAnimationFrame instanceof Function)) {\n\t\tglobalThis.cancelAnimationFrame = id => clearTimeout(id);\n\t}\n\n\tif (! (globalThis.queueMicrotask instanceof Function)) {\n\t\tglobalThis.queueMicrotask = cb => Promise.resolve().then(cb)\n\t\t\t.catch(e => setTimeout(() => { throw e; }));\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! ('AbortSignal' in globalThis)) {\n\t\tconst symbols = {\n\t\t\tsignal: Symbol('signal'),\n\t\t\taborted: Symbol('aborted'),\n\t\t\treason: Symbol('reason'),\n\t\t\tonabort: Symbol('onabort'),\n\t\t};\n\n\t\tglobalThis.AbortError = class AbortError extends Error {};\n\n\t\tglobalThis.AbortSignal = class AbortSignal extends EventTarget {\n\t\t\tconstructor() {\n\t\t\t\tsuper();\n\n\t\t\t\tObject.defineProperties(this,{\n\t\t\t\t\t[symbols.aborted]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: false,\n\t\t\t\t\t},\n\t\t\t\t\t[symbols.reason]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t},\n\t\t\t\t\t[symbols.onabort]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tthis.addEventListener('abort', event => {\n\t\t\t\t\tif (this.onabort instanceof Function) {\n\t\t\t\t\t\tthis.onabort.call(this, event);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tget aborted() {\n\t\t\t\treturn this[symbols.aborted];\n\t\t\t}\n\n\t\t\tget onabort() {\n\t\t\t\treturn this[symbols.onabort];\n\t\t\t}\n\n\t\t\tset onabort(value) {\n\t\t\t\tif (value instanceof Function) {\n\t\t\t\t\tthis[symbols.onabort] = value;\n\t\t\t\t} else {\n\t\t\t\t\tthis[symbols.onabort] = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tget reason() {\n\t\t\t\treturn this[symbols.reason];\n\t\t\t}\n\n\t\t\tthrowIfAborted() {\n\t\t\t\tif (this.aborted) {\n\t\t\t\t\tthrow this.reason;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstatic abort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = new AbortSignal();\n\t\t\t\tsignal[symbols.aborted] = true;\n\t\t\t\tsignal[symbols.reason] = reason;\n\t\t\t\treturn signal;\n\t\t\t}\n\t\t};\n\n\t\tglobalThis.AbortController = class AbortController {\n\t\t\tconstructor() {\n\t\t\t\tthis[symbols.signal] = new AbortSignal();\n\t\t\t}\n\n\t\t\tget signal() {\n\t\t\t\treturn this[symbols.signal];\n\t\t\t}\n\n\t\t\tabort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = this.signal;\n\n\t\t\t\tif (! signal.aborted) {\n\t\t\t\t\tsignal[symbols.aborted] = true;\n\t\t\t\t\tsignal[symbols.reason] = reason;\n\t\t\t\t\tsignal.dispatchEvent(new Event('abort'));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! ('reason' in AbortSignal.prototype)) {\n\t\tconst reasons = new WeakMap();\n\t\tconst abort = AbortController.prototype.abort;\n\n\t\tif (AbortSignal.abort instanceof Function) {\n\t\t\tconst staticAbort = AbortSignal.abort;\n\n\t\t\tAbortSignal.abort = function(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = staticAbort();\n\t\t\t\treasons.set(signal, reason);\n\t\t\t\treturn signal;\n\t\t\t};\n\t\t} else {\n\t\t\tAbortSignal.abort = function abort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tcontroller.abort(reason);\n\t\t\t\treturn controller.reason;\n\t\t\t};\n\t\t}\n\n\t\tObject.defineProperty(AbortSignal.prototype, 'reason', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: function() {\n\t\t\t\tif (reasons.has(this)) {\n\t\t\t\t\treturn reasons.get(this);\n\t\t\t\t} else {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tAbortController.prototype.abort = function(reason = new DOMException('Operation aborted')) {\n\t\t\treasons.set(this.signal, reason);\n\t\t\tabort.call(this);\n\t\t};\n\t}\n\n\tif (! (AbortSignal.prototype.throwIfAborted instanceof Function)) {\n\t\tAbortSignal.prototype.throwIfAborted = function() {\n\t\t\tif (this.aborted) {\n\t\t\t\tthrow this.reason;\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (AbortSignal.timeout instanceof Function)) {\n\t\tAbortSignal.timeout = function(ms) {\n\t\t\tif (typeof ms === 'undefined') {\n\t\t\t\tthrow new TypeError('At least one 1 argument required but only 0 passed');\n\t\t\t} else if (! Number.isFinite(ms)) {\n\t\t\t\tthrow new TypeError('Argument 1 is not a finite value, so it is out of range for unsigned long long.');\n\t\t\t} else if (ms < 0) {\n\t\t\t\tthrow new TypeError('Argument 1 is out of range for unsigned long long.');\n\t\t\t} else {\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tsetTimeout(() => controller.abort(new DOMException('The operation timed out.')), ms);\n\t\t\t\treturn controller.signal;\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * @see https://chromestatus.com/feature/5202879349522432\n\t * @TODO How do I handle if a signal is already aborted\n\t * @TODO Should controller abort on a TypeError\n\t */\n\tif (! (AbortSignal.any instanceof Function)) {\n\t\tAbortSignal.any = function(signals) {\n\t\t\tif (! Array.isArray(signals)) {\n\t\t\t\tthrow new TypeError('Expected an array of signals');\n\t\t\t}\n\n\t\t\tconst controller = new AbortController();\n\n\t\t\tfor (const signal of signals) {\n\t\t\t\tif (! (signal instanceof AbortSignal)) {\n\t\t\t\t\tconst err = new TypeError('`signal` is not an `AbortSignal`');\n\t\t\t\t\tcontroller.abort(err);\n\t\t\t\t\tthrow err;\n\t\t\t\t} else if (signal.aborted) {\n\t\t\t\t\tcontroller.abort(signal.reason || new DOMException('Operation aborted.'));\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\tcontroller.abort(target.reason || new DOMException('Operation aborted.'));\n\t\t\t\t\t}, { signal: controller.signal });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn controller.signal;\n\t\t};\n\t}\n})();\n","import { errorToEvent } from './assets/error.js';\n\nif (! globalThis.hasOwnProperty('AggregateError')) {\n\tglobalThis.AggregateError = class AggregateError extends Error {\n\t\tconstructor(errors, message) {\n\t\t\tif (typeof message === 'undefined') {\n\t\t\t\tsuper(errors);\n\t\t\t\tthis.errors = [];\n\t\t\t} else {\n\t\t\t\tsuper(message);\n\t\t\t\tthis.errors = errors;\n\t\t\t}\n\t\t}\n\t};\n}\n\nif (! (globalThis.reportError instanceof Function)) {\n\tglobalThis.reportError = function reportError(error) {\n\t\tglobalThis.dispatchEvent(errorToEvent(error));\n\t};\n}\n","(function() {\n\t'use strict';\n\n\tif (! ('MediaQueryListEvent' in globalThis)) {\n\t\t/**\n\t\t * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryListEvent\n\t\t */\n\t\tglobalThis.MediaQueryListEvent = class MediaQueryListEvent extends Event {\n\t\t\tconstructor(type, { media, matches } = {}) {\n\t\t\t\tsuper(type);\n\t\t\t\tObject.defineProperties(this, {\n\t\t\t\t\t'media': {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tvalue: media,\n\t\t\t\t\t},\n\t\t\t\t\t'matches': {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tvalue: matches,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\n\tif ('MediaQueryList' in globalThis && ! (globalThis.MediaQueryList.prototype.addEventListener instanceof Function)) {\n\t\tconst targets = new WeakMap();\n\n\t\tconst listener = function listener() {\n\t\t\tconst { media, matches } = this;\n\t\t\tthis.dispatchEvent(new MediaQueryListEvent('change', { media, matches }));\n\t\t};\n\n\t\tconst init = function init(mql) {\n\t\t\tif (! targets.has(mql)) {\n\t\t\t\ttargets.set(mql, new EventTarget());\n\t\t\t\tmql.addListener(listener.bind(mql));\n\t\t\t}\n\n\t\t\treturn targets.get(mql);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.addEventListener = function addEventListener(type, callback, opts) {\n\t\t\tinit(this).addEventListener(type, callback, opts);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.removeEventListener = function removeEventListner(type, callback, opts) {\n\t\t\tinit(this).removeEventListener(type, callback, opts);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.dispatchEvent = function dispatchEvent(event) {\n\t\t\tinit(this).dispatchEvent(event);\n\t\t};\n\t}\n})();\n","if ('Promise' in globalThis) {\n\tif (! (Promise.prototype.finally instanceof Function)) {\n\t\tPromise.prototype.finally = function(callback) {\n\t\t\treturn this.then(async val => {\n\t\t\t\tawait callback();\n\t\t\t\treturn val;\n\t\t\t}, async val => {\n\t\t\t\tawait callback();\n\t\t\t\treturn val;\n\t\t\t});\n\t\t};\n\t}\n\n\tif (! (Promise.allSettled instanceof Function)) {\n\t\tPromise.allSettled = function(promises) {\n\t\t\treturn Promise.all(Array.from(promises).map(function(call) {\n\t\t\t\treturn new Promise(function(resolve) {\n\t\t\t\t\tif (! (call instanceof Promise)) {\n\t\t\t\t\t\tcall = Promise.resolve(call);\n\t\t\t\t\t}\n\t\t\t\t\tcall.then(function(value) {\n\t\t\t\t\t\tresolve({ status: 'fulfilled', value: value });\n\t\t\t\t\t}).catch(function(reason) {\n\t\t\t\t\t\tresolve({ status: 'rejected', reason: reason });\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}));\n\t\t};\n\t}\n\n\tif (! (Promise.any instanceof Function)) {\n\t\tPromise.any = (promises) => new Promise((resolve, reject) => {\n\t\t\tlet errors = [];\n\n\t\t\tpromises.forEach(promise => {\n\t\t\t\tpromise.then(resolve).catch(e => {\n\t\t\t\t\terrors.push(e);\n\t\t\t\t\tif (errors.length === promises.length) {\n\t\t\t\t\t\treject(new globalThis.AggregateError(errors, 'No Promise in Promise.any was resolved'));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tif (! (Promise.race instanceof Function)) {\n\t\tPromise.race = (promises) => new Promise((resolve, reject) => {\n\t\t\tpromises.forEach(promise => promise.then(resolve, reject));\n\t\t});\n\t}\n\n\tif (! (Promise.try instanceof Function)) {\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-promise-try\n\t\t */\n\t\tPromise.try = callback => new Promise(resolve => resolve(callback()));\n\t}\n\n\tif (! (Promise.withResolvers instanceof Function)) {\n\t\tPromise.withResolvers = function() {\n\t\t\tconst def = {};\n\t\t\tdef.promise = new Promise((resolve, reject) => {\n\t\t\t\tdef.resolve = resolve;\n\t\t\t\tdef.reject = reject;\n\t\t\t});\n\n\t\t\treturn def;\n\t\t};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport class TextEncoder {\n\tget encoding() {\n\t\treturn 'utf-8';\n\t}\n\n\tencode(str) {\n\t\t// Identical to char up to 127, then [194, (n)] for n=(128-191),\n\t\t// then [194, (128-191)] for n=(192-255)\n\t\t// and it looks like this holds in intervals of 64\n\t\treturn new Uint8Array(str.split('').flatMap(char => {\n\t\t\tconst code = char.charCodeAt(0);\n\n\t\t\tif (code < 128) {\n\t\t\t\treturn [code];\n\t\t\t} else {\n\t\t\t\tconst pt = 194 + Math.floor((code - 128) / 64);\n\t\t\t\treturn [pt, (code % 64) + 128];\n\t\t\t}\n\t\t}));\n\t}\n\n\tencodeInto(str, ui8arr) {\n\t\tif (! (ui8arr instanceof Uint8Array)) {\n\t\t\tthrow new TypeError('TextEncoder.encodeInto: Argument 2 does not implement interface Uint8Array.');\n\t\t} else {\n\t\t\tconst encoded = this.encode(str);\n\t\t\tconst len = Math.min(ui8arr.length, encoded.length);\n\n\t\t\tif (encoded.length > ui8arr.length) {\n\t\t\t\tui8arr.set(encoded.slice(0, len));\n\t\t\t} else {\n\t\t\t\tui8arr.set(encoded);\n\t\t\t}\n\n\t\t\treturn { read: len, written: len };\n\t\t}\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { between } from './utility.js';\n/**\n *\n * Array of supported encodings\n * @Todo: At least add utf-16\n * @type {Array}\n */\nconst supportedEncodings = ['utf-8', 'utf8'];\n\nexport const BOM = new Uint8Array([0xEF, 0xBB, 0xBF]);\n\nexport class TextDecoder {\n\tconstructor(encoding = 'utf-8', { fatal = false, ignoreBOM = false } = {}) {\n\t\tif (typeof encoding !== 'string') {\n\t\t\tencoding = encoding.toString().toLowerCase();\n\t\t} else {\n\t\t\tencoding = encoding.toLowerCase();\n\t\t}\n\n\t\tif (! supportedEncodings.includes(encoding)) {\n\t\t\tthrow new RangeError(`TextDecoder constructor: The given encoding '${encoding}' is not supported.`);\n\t\t}\n\n\t\tObject.defineProperties(this, {\n\t\t\tencoding: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: encoding,\n\t\t\t},\n\t\t\tfatal: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: fatal,\n\t\t\t},\n\t\t\tignoreBOM: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: ignoreBOM,\n\t\t\t},\n\t\t});\n\t}\n\n\tdecode(data) {\n\t\tswitch(this.encoding) {\n\t\t\tcase 'utf-8':\n\t\t\tcase 'utf8': {\n\t\t\t\tlet prev = NaN;\n\t\t\t\t/**\n\t\t\t\t * For (0,127) we just take the charCode\n\t\t\t\t * For charCode 128+this will be in the form [n=194+, m=(128-191)]\n\t\t\t\t * where n increments after m reaches 191, increments, and rolls back to 128\n\t\t\t\t */\n\t\t\t\treturn data.reduce((str, i, n) => {\n\t\t\t\t\tif (Number.isNaN(prev) && i < 128) {\n\t\t\t\t\t\treturn str + String.fromCharCode(i);\n\t\t\t\t\t} else if (Number.isNaN(prev) && i > 193) {\n\t\t\t\t\t\tprev = i;\n\t\t\t\t\t\treturn str;\n\t\t\t\t\t} else if (prev > 193 && between(128, i, 194)) {\n\t\t\t\t\t\tconst offset = (prev - 194) * 64;\n\t\t\t\t\t\tprev = NaN;\n\t\t\t\t\t\treturn str + String.fromCharCode(offset + i);\n\t\t\t\t\t} else if (this.fatal) {\n\t\t\t\t\t\tthrow new RangeError(`Unhandled character at postion ${n}`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprev = NaN;\n\t\t\t\t\t\treturn str;\n\t\t\t\t\t}\n\t\t\t\t}, '');\n\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`Unsupported encoding '${this.encoding}'`);\n\t\t}\n\t}\n}\n","import { TextEncoder } from './assets/TextEncoder.js';\nimport { TextDecoder } from './assets/TextDecoder.js';\n\nif (! ('TextEncoder' in globalThis)) {\n\tglobalThis.TextEncoder = TextEncoder;\n}\n\nif (! ('TextDecoder' in globalThis)) {\n\tglobalThis.TextDecoder = TextDecoder;\n}\n\nif (! (globalThis.TextEncoder.prototype.encodeInto instanceof Function)) {\n\tglobalThis.TextEncoder.prototype.encodeInto = function(...args) {\n\t\treturn TextEncoder.prototype.encodeInto.apply(this, args);\n\t};\n}\n","if (crypto in globalThis && ! (crypto.randomUUID instanceof Function)) {\n\tcrypto.randomUUID = function randomUUID() {\n\t\t'use strict';\n\t\treturn ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>\n\t\t\t(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n\t\t);\n\t};\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @SEE https://wicg.github.io/cookie-store/\n * @SEE https://wicg.github.io/cookie-store/explainer.html\n * @NOTE: This offers similar methods but is not a substitute and cannot get extended\n * cookie properties, such as expires, etc.\n *\n * @TODO verify spec compliance as best as is possible\n */\n\nexport const nativeSupport = 'cookieStore' in globalThis;\n\nconst symbols = {\n\tconstructor: Symbol('constructor'),\n};\n\nfunction getAllCookies() {\n\tif (document.cookie.length === 0) {\n\t\treturn [];\n\t} else {\n\t\treturn document.cookie.split(';').map(str => {\n\t\t\tconst [name, value = null] = str.split('=');\n\t\t\treturn {\n\t\t\t\tname: decodeURIComponent(name.trim()),\n\t\t\t\tvalue: typeof value === 'string' ? decodeURIComponent(value.trim()) : null,\n\t\t\t\tpath: undefined,\n\t\t\t\texpires: undefined,\n\t\t\t\tdomain: undefined,\n\t\t\t\tsameSite: undefined,\n\t\t\t\tsecure: undefined,\n\t\t\t\tpartitioned: false,\n\t\t\t};\n\t\t});\n\t}\n}\n\nfunction defaultParams({\n\tname,\n\tvalue = null,\n\tdomain = null,\n\tpath = '/',\n\texpires = null,\n\tmaxAge = null,\n\tsameSite = 'lax',\n\tsecure = false,\n\tpartitioned = false,\n}) {\n\treturn { name, value, domain, path, expires, maxAge, sameSite, secure, partitioned };\n}\n\nfunction getter({ name = null, value = null } = {}) {\n\tif (typeof name === 'string') {\n\t\tname = decodeURIComponent(name);\n\t}\n\n\tif (typeof value === 'string') {\n\t\tvalue = decodeURIComponent(value);\n\t}\n\n\tif (typeof name === 'string' && typeof value === 'string') {\n\t\treturn getAllCookies().filter((cookie) =>\n\t\t\tcookie.name === name && cookie.value === value\n\t\t);\n\t} else if (typeof name === 'string') {\n\t\treturn getAllCookies().filter(cookie => cookie.name === name);\n\t} else if (typeof value === 'string') {\n\t\treturn getAllCookies().filter(cookie => cookie.value === value);\n\t} else {\n\t\treturn getAllCookies();\n\t}\n}\n\nfunction setter({\n\tname,\n\tvalue,\n\texpires = null,\n\tmaxAge = null,\n\tpath = '/',\n\tsameSite = 'lax',\n\tdomain = null,\n\tsecure = false,\n\tpartitioned = false,\n}) {\n\tif (Number.isInteger(maxAge)) {\n\t\tsetter({\n\t\t\tname, value, expires: Date.now() + maxAge, path, sameSite, domain, secure, partitioned,\n\t\t});\n\t} else {\n\t\tlet cookie = `${encodeURIComponent(name)}=`;\n\n\t\tif (value) {\n\t\t\tcookie += encodeURIComponent(value);\n\t\t}\n\n\t\tif (Number.isInteger(expires)) {\n\t\t\tcookie += `;expires=${new Date(expires).toUTCString()}`;\n\t\t} else if (expires instanceof Date) {\n\t\t\tcookie += `;expires=${expires.toUTCString()}`;\n\t\t}\n\n\t\tif (typeof path === 'string') {\n\t\t\tcookie += `;path=${path}`;\n\t\t}\n\n\t\tif (typeof domain === 'string') {\n\t\t\tcookie += `;domain=${domain}`;\n\t\t}\n\n\t\tif (typeof sameSite === 'string') {\n\t\t\tcookie += `;sameSite=${sameSite}`;\n\t\t}\n\n\t\tif (secure === true) {\n\t\t\tcookie += ';secure';\n\t\t}\n\n\t\tif (partitioned === true) {\n\t\t\tcookie += ';partitioned';\n\t\t}\n\n\t\tdocument.cookie = cookie;\n\t}\n}\n\nexport class CookieStore extends EventTarget {\n\tconstructor(key) {\n\t\tif (key !== symbols.constructor) {\n\t\t\tthrow new DOMException('Invalid constructor');\n\t\t}\n\n\t\tsuper();\n\n\t\tObject.defineProperty(this, symbols.onchange, {\n\t\t\tenumerable: false,\n\t\t\tconfigurable: false,\n\t\t\twritable: true,\n\t\t\tvalue: null,\n\t\t});\n\t}\n\n\tget onchange() {\n\t\treturn this[symbols.onchange];\n\t}\n\n\tset onchange(callback) {\n\t\tif (this[symbols.onchange] instanceof Function) {\n\t\t\tthis.removeEventListener('change', this[symbols.onchange]);\n\t\t}\n\n\t\tif (callback instanceof Function) {\n\t\t\tthis.addEventListener('change', callback);\n\t\t}\n\t}\n\n\tasync get(args) {\n\t\tconst cookies = await this.getAll(args);\n\n\t\tif (Array.isArray(cookies) && cookies.length !== 0) {\n\t\t\treturn cookies[0];\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tasync getAll(args) {\n\t\tif (typeof args === 'string') {\n\t\t\treturn getter({ name: args });\n\t\t} else {\n\t\t\treturn getter(args);\n\t\t}\n\t}\n\n\tasync set(...args) {\n\t\tif (args.length === 1 && typeof args[0] === 'object' && typeof args[0].name === 'string') {\n\t\t\tconst cookie = defaultParams(args[0]);\n\t\t\tsetter(cookie);\n\t\t\tconst event = new Event('change');\n\t\t\tevent.changed = [cookie];\n\t\t\tevent.deleted = [];\n\n\t\t\tthis.dispatchEvent(event);\n\t\t} else if (args.length === 2) {\n\t\t\tthis.set({ name: args[0], value: args[1] });\n\t\t} else {\n\t\t\tthrow new Error('Invalid arguments');\n\t\t}\n\t}\n\n\tasync delete(args = {}) {\n\t\tif (typeof args === 'string') {\n\t\t\tthis.delete({ name: args });\n\t\t} else if (typeof args === 'object' && typeof args.name === 'string') {\n\t\t\tconst cookies = await this.getAll(args);\n\n\t\t\tif (cookies.length !== 0) {\n\t\t\t\tconst event = new Event('change');\n\t\t\t\tevent.changed = [];\n\t\t\t\tevent.deleted = new Array(cookies.length);\n\n\t\t\t\tcookies.forEach((cookie, i) => {\n\t\t\t\t\tcookie.path = args.path || '/';\n\t\t\t\t\tcookie.domain = args.domain || null;\n\t\t\t\t\tcookie.secure = args.secure || null;\n\t\t\t\t\tdelete cookie.value;\n\t\t\t\t\tcookie.sameSite = args.sameSite || 'lax';\n\n\t\t\t\t\tevent.deleted[i] = cookie;\n\t\t\t\t\tsetter({...cookie, value: null, expires: 1 });\n\t\t\t\t});\n\n\t\t\t\tthis.dispatchEvent(event);\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to execute \\'delete\\' on \\'CookieStore\\': required member name is undefined.');\n\t\t}\n\t}\n}\n\nexport const cookieStore = new CookieStore(symbols.constructor);\n\nexport function polyfill() {\n\tif (! nativeSupport) {\n\t\tglobalThis.cookieStore = cookieStore;\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n}\n","(function() {\n\t'use strict';\n\n\tif (globalThis.hasOwnProperty('Animation') && ! Animation.prototype.hasOwnProperty('finished')) {\n\t\tObject.defineProperty(Animation.prototype, 'finished', {\n\t\t\tget: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (this.playState === 'finished') {\n\t\t\t\t\t\tresolve(this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.addEventListener('finish', () => resolve(this), { once: true });\n\t\t\t\t\t\tthis.addEventListener('error', event => reject(event), { once: true });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tif (globalThis.hasOwnProperty('Animation') && ! Animation.prototype.hasOwnProperty('ready')) {\n\t\tObject.defineProperty(Animation.prototype, 'ready', {\n\t\t\tget: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (! this.pending) {\n\t\t\t\t\t\tresolve(this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.addEventListener('ready', () => resolve(this), { once: true });\n\t\t\t\t\t\tthis.addEventListener('error', event => reject(event), { once: true });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n})();\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const events = Object.keys(\n\tObject.getOwnPropertyDescriptors(HTMLElement.prototype)\n).filter(desc => desc.startsWith('on'));\n\nexport const urls = [\n\t'action',\n\t'cite',\n\t'formaction',\n\t'href',\n\t'ping',\n\t'src',\n];\n","import { callOnce } from './utility.js';\n\nexport const getHTTPCSP = callOnce(async function getHTTPCSP() {\n\tconst { ok, headers } = await fetch(location.href, { method: 'HEAD' });\n\n\tif (ok && headers.has('Content-Security-Policy')) {\n\t\tconst directives = headers.get('Content-Security-Policy').trim().split(';').filter(str => str.length !== 0);\n\n\t\treturn Object.fromEntries(directives.map(directive => {\n\t\t\tconst [key, ...rest] = directive.trim().split(' ').filter(part => part.length !== 0);\n\t\t\treturn [key, rest];\n\t\t}));\n\t}\n});\n\nexport function getMetaCSP() {\n\tconst meta = document.head.querySelector('meta[http-equiv=\"Content-Security-Policy\"][content]');\n\n\tif (meta instanceof HTMLMetaElement) {\n\t\tconst directives = meta.content.trim().split(';').filter(str => str.length !== 0);\n\n\t\treturn Object.fromEntries(directives.map(directive => {\n\t\t\tconst [key, ...rest] = directive.trim().split(' ').filter(part => part.length !== 0);\n\t\t\treturn [key, rest];\n\t\t}));\n\t} else {\n\t\treturn {};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { supported as isSupported } from './trust.js';\nimport { events } from './attributes.js';\nimport { getMetaCSP, getHTTPCSP } from './csp.js';\n/**\n * @See https://github.com/w3c/webappsec-trusted-types/blob/main/src/trustedtypes.js\n * @See https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API\n */\n\n// `<html data-fetch-trust-csp=\"1\">` will enable using actual CSP\nconst fetchCSP = document.documentElement.dataset.fetchTrustCsp === '1';\n\nfunction parseCSP({ 'trusted-types': trustedTypes = null } = {}) {\n\tif (Array.isArray(trustedTypes)) {\n\t\tconst policies = new Set(trustedTypes);\n\t\tconst allowDuplicates = policies.has('\\'allow-duplicates\\'');\n\t\tconst hasNone = policies.has('\\'none\\'');\n\n\t\tif (allowDuplicates) {\n\t\t\tpolicies.delete('\\'allow-duplicates\\'');\n\t\t}\n\n\t\tif (hasNone) {\n\t\t\tpolicies.clear();\n\t\t}\n\n\t\tpolicies.add('empty#html');\n\t\tpolicies.add('empty#script');\n\n\t\treturn { policies, allowDuplicates, hasNone };\n\t} else {\n\t\treturn {};\n\t}\n}\n\nasync function getActualCSP() {\n\tconst { policies, allowDuplicates = false, hasNone = false } = await getHTTPCSP().then(parseCSP);\n\n\tif (policies instanceof Set) {\n\t\treturn { policies, allowDuplicates, hasNone };\n\t} else {\n\t\treturn {};\n\t}\n}\n\nfunction init() {\n\t// Temporary config if/while fetching actual CSP\n\t// Maps to `trusted-types 'allow-duplicates'`\n\tconst getAllowDuplicates = () => {\n\t\tconst csp = parseCSP(getMetaCSP());\n\n\t\tif (typeof csp === 'object' && 'allowDuplicates' in csp) {\n\t\t\treturn csp.allowDuplicates;\n\t\t} else {\n\t\t\treturn document.documentElement.dataset.allowTrustDuplicates === '1';\n\t\t}\n\t};\n\n\tconst getAllowedPolicies = () => {\n\t\tif (document.documentElement.dataset.hasOwnProperty('trustedPolicies')) {\n\t\t\treturn new Set([\n\t\t\t\t'empty#html', 'empty#script',\n\t\t\t\t...document.documentElement.dataset.trustedPolicies.split(' '),\n\t\t\t]);\n\t\t} else {\n\t\t\tconst { policies } = parseCSP(getMetaCSP());\n\n\t\t\tif (policies instanceof Set) {\n\t\t\t\treturn policies;\n\t\t\t} else {\n\t\t\t\treturn new Set(['empty#html', 'empty#script']);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst fromCSP = parseCSP(getMetaCSP());\n\n\tif (typeof fromCSP === 'object' && fromCSP.policies instanceof Set) {\n\t\tconst { policies: allowedPolicies, allowDuplicates } = fromCSP;\n\t\treturn { allowDuplicates, allowedPolicies };\n\t} else {\n\t\tconst allowDuplicates = getAllowDuplicates();\n\t\tconst allowedPolicies = getAllowedPolicies();\n\n\t\tif (allowedPolicies.has('\\'none\\'')) {\n\t\t\tallowedPolicies.clear();\n\t\t}\n\n\t\tallowedPolicies.add('empty#html');\n\t\tallowedPolicies.add('empty#script');\n\n\t\treturn { allowDuplicates, allowedPolicies };\n\t}\n}\n\nconst { allowDuplicates, allowedPolicies } = init();\n\n/**\n * [supported description]\n */\nexport const supported = isSupported();\n\n/**\n * [symbols description]\n * @type {Object}\n */\nconst symbols = {\n\ttrustedValue: Symbol('[[Data]]'),\n\ttrustedKey: Symbol('trusted-key'),\n\temptyHTML: Symbol('policy-empty#html'),\n\temptyScript: Symbol('policy-empty#script'),\n\tpolicy: Symbol.for('trust-policy'),\n\tdefaultPolicy: Symbol('default-policy'),\n\ttrustedTypesCSP: Symbol('trusted-types-csp'),\n};\n\nif (! Symbol.hasOwnProperty('toStringTag')) {\n\tSymbol.toStringTag = Symbol('Symbol.toStringTag');\n}\n\nconst policies = [];\n\nfunction getPolicy(name) {\n\treturn policies.find(policy => policy.name === name) || null;\n}\n\nfunction hasPolicy(name) {\n\treturn getPolicy(name) !== null;\n}\n\n/**\n * [getUnsetPolicyException description]\n * @param {TrustedTypePolicy} policy [description]\n * @param {String} method [description]\n */\nfunction getUnsetPolicyException(policy, method) {\n\treturn function() {\n\t\tthrow new TypeError(`Failed to execute '${method}' on 'TrustedTypePolicy': Policy ${policy.name}'s TrustedTypePolicyOptions did not specify a '${method}' member.`);\n\t};\n}\n\n/**\n * [TrustedType description]\n * @type {TrustedType}\n */\nexport class TrustedType {\n\t/**\n\t * [constructor description]\n\t * @param {String} value [description]\n\t * @param {Symbol} key [description]\n\t */\n\tconstructor(value, { key, policy }) {\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t} else {\n\t\t\tObject.defineProperties(this, {\n\t\t\t\t[symbols.trustedValue]: {\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: value.toString(),\n\t\t\t\t},\n\t\t\t\t[symbols.policy]: {\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: policy.name,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.freeze(this);\n\t\t}\n\t}\n\n\t/**\n\t * [toString description]\n\t * @return {String} [description]\n\t */\n\ttoString() {\n\t\treturn this.valueOf();\n\t}\n\n\t/**\n\t * [toJSON description]\n\t * @return {String} [description]\n\t */\n\ttoJSON() {\n\t\treturn this.valueOf();\n\t}\n\n\tvalueOf() {\n\t\treturn this[symbols.trustedValue];\n\t}\n}\n\n/**\n * [description]\n * @type {TrustedHTML}\n */\nexport class TrustedHTML extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedHTML';\n\t}\n}\n\n/**\n * [description]\n * @type {TrustedScript}\n */\nexport class TrustedScript extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedScript';\n\t}\n}\n\n/**\n * [name description]\n * @type {TrustedScriptURL}\n */\nexport class TrustedScriptURL extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedScriptURL';\n\t}\n}\n\n/**\n * [name description]\n * @type {TrustedTypePolicy}\n */\nexport class TrustedTypePolicy {\n\t/**\n\t * [constructor description]\n\t * @param {String} name [description]\n\t * @param {Function} createHTML [description]\n\t * @param {Function} createScript [description]\n\t * @param {Function} createScriptURL [description]\n\t * @param {String} key [description]\n\t */\n\tconstructor(name, { createHTML, createScript, createScriptURL } = {}, { key }) {\n\t\t// @TODO: Chrome seems to allow any same-origin scripts creating policies\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t} else {\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: name.toString(),\n\t\t\t\t},\n\t\t\t\tcreateHTML: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createHTML instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedHTML(\n\t\t\t\t\t\t\tcreateHTML(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createHTML'),\n\t\t\t\t},\n\t\t\t\tcreateScript: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createScript instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedScript(\n\t\t\t\t\t\t\tcreateScript(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createScript'),\n\t\t\t\t},\n\t\t\t\tcreateScriptURL: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createScriptURL instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedScriptURL(\n\t\t\t\t\t\t\tcreateScriptURL(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createScriptURL'),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n}\n\n/**\n * [enumerable description]\n * @type {TrustedTypePolicyFactory}\n */\nexport class TrustedTypePolicyFactory extends EventTarget {\n\t/**\n\t * [constructor description]\n\t * @param {Symbol} key [description]\n\t */\n\tconstructor(key) {\n\t\tsuper();\n\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t}\n\n\t\tif (fetchCSP) {\n\t\t\tgetActualCSP().then(({ policies, allowDuplicates = false, hasNone = false }) => {\n\t\t\t\tif (typeof policies !== 'undefined') {\n\t\t\t\t\tObject.defineProperty(TrustedTypePolicyFactory, symbols.trustedTypesCSP, {\n\t\t\t\t\t\tvalue: { policies, allowDuplicates, hasNone },\n\t\t\t\t\t\tenumberable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}).catch(err => console.error(err));\n\t\t}\n\n\t\tObject.defineProperties(this, {\n\t\t\t[symbols.defaultPolicy]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: null,\n\t\t\t},\n\t\t\t[symbols.emptyHTML]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: this.createPolicy('empty#html', { createHTML: () => '' }),\n\t\t\t},\n\t\t\t[symbols.emptyScript]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: this.createPolicy('empty#script', { createScript: () => '' }),\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * [isHTML description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisHTML(value) {\n\t\treturn value instanceof globalThis.TrustedHTML;\n\t}\n\n\t/**\n\t * [isScript description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisScript(value) {\n\t\treturn value instanceof globalThis.TrustedScript;\n\t}\n\n\t/**\n\t * [isScriptURL description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisScriptURL(value) {\n\t\treturn value instanceof globalThis.TrustedScriptURL;\n\t}\n\n\t/**\n\t * [createPolicy description]\n\t * @param {String} name [description]\n\t * @param {Function} createHTML [description]\n\t * @param {Function} createScript [description]\n\t * @param {Function} createScriptURL [description]\n\t */\n\tcreatePolicy(name, { createHTML, createScript, createScriptURL } = {}) {\n\t\tconst policy = new TrustedTypePolicy(name, { createHTML, createScript, createScriptURL }, { key: symbols.trustedKey });\n\n\t\tif (! name.toString().match(/^[-#a-zA-Z0-9=_/@.%]+$/g)) {\n\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" contains invalid characters.`);\n\t\t} else if (TrustedTypePolicyFactory.hasOwnProperty(symbols.trustedTypesCSP)) {\n\t\t\t// This requires `fetch()` and parsing response headers, so will not be immediately available\n\t\t\tconst { policies, allowDuplicates, hasNone } = TrustedTypePolicyFactory[symbols.trustedTypesCSP];\n\n\t\t\t// Will always allow `empty#html` and `empty#script`\n\t\t\tif (hasNone && name !== 'empty#html' && name !== 'empty#script') {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if (! policies.has(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if(! allowDuplicates && hasPolicy(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" already exists.`);\n\t\t\t}\n\t\t} else {\n\t\t\t// This is the fallback for before CSP headers are fetched and uses `document.documentElement.dataset`\n\t\t\tif (allowedPolicies.size > 2 && ! allowedPolicies.has(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if(! allowDuplicates && hasPolicy(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" already exists.`);\n\t\t\t}\n\t\t}\n\n\t\tif (policy.name === 'default') {\n\t\t\tthis[symbols.defaultPolicy] = policy;\n\t\t}\n\n\t\tpolicies.push(policy);\n\n\t\treturn policy;\n\t}\n\n\t/**\n\t * [getAttributeType description]\n\t * @param {String} tagName [description]\n\t * @param {String} attribute [description]\n\t * @param {String} elementNs [description]\n\t * @return {String} [description]\n\t */\n\tgetAttributeType(tagName, attribute, elementNs/*, attrNs*/) {\n\t\ttagName = tagName.toLowerCase();\n\t\tattribute = attribute.toLowerCase();\n\n\t\t/**\n\t\t * @Todo handle namespaced attributes\n\t\t */\n\t\tif (typeof elementNS === 'string' && elementNs.length !== 0) {\n\t\t\treturn events.includes(attribute) ? 'TrustedScript' : null;\n\t\t}\n\n\t\t/**\n\t\t * This is an `on*` attribute\n\t\t */\n\t\tif (events.includes(attribute)) {\n\t\t\treturn 'TrustedScript';\n\t\t}\n\n\t\tswitch(tagName) {\n\t\t\tcase 'script': {\n\t\t\t\tif (attribute === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'iframe': {\n\t\t\t\tif (attribute === 'srcdoc') {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else if (attribute === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * [getPropertyType description]\n\t * @param {String} tagName [description]\n\t * @param {String} property [description]\n\t * @return {String} [description]\n\t */\n\tgetPropertyType(tagName, property/*, elementNS*/) {\n\t\ttagName = tagName.toLowerCase();\n\n\t\tif (events.includes(property.toLowerCase())) {\n\t\t\treturn 'TrustedScript';\n\t\t}\n\n\t\tswitch(tagName) {\n\t\t\tcase 'embed':\n\t\t\tcase 'iframe': {\n\t\t\t\tif (property === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'script': {\n\t\t\t\tif (property === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else if (['text', 'innerText', 'textContent', 'innerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedScript';\n\t\t\t\t} else if (['outerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tif (['innerHTML', 'outerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * [emptyHTML description]\n\t * @return {TrustedHTML}\n\t */\n\tget emptyHTML() {\n\t\treturn this[symbols.emptyHTML].createHTML('');\n\t}\n\n\t/**\n\t * [emptyScript description]\n\t * @return {TrustedScript}\n\t */\n\tget emptyScript() {\n\t\treturn this[symbols.emptyScript].createScript('');\n\t}\n\n\t/**\n\t * [defaultPolicy description]\n\t * @return {TrustedTypePolicy} [description]\n\t */\n\tget defaultPolicy() {\n\t\treturn this[symbols.defaultPolicy];\n\t}\n\n\t/**\n\t * For consistency with existing polyfill\n\t * @return {Boolean} [description]\n\t */\n\tget _isPolyfill_() {\n\t\treturn true;\n\t}\n\n\tstatic get allowDuplicates() {\n\t\treturn allowDuplicates;\n\t}\n}\n\n/**\n * [trustedTypes description]\n * @type {TrustedTypeFactory}\n */\nexport const trustedTypes = new TrustedTypePolicyFactory(symbols.trustedKey);\n\n/**\n * [polyfill description]\n * @return {[type]} [description]\n */\nexport function polyfill() {\n\tif (! ('TrustedTypePolicyFactory' in globalThis)) {\n\t\tglobalThis.TrustedTypePolicyFactory = TrustedTypePolicyFactory;\n\t}\n\n\tif (! ('TrustedTypePolicy' in globalThis)) {\n\t\tglobalThis.TrustedTypePolicy = TrustedTypePolicy;\n\t}\n\n\tif (! ('TrustedType' in globalThis)) {\n\t\tglobalThis.TrustedType = TrustedType;\n\t}\n\n\tif (! ('TrustedHTML' in globalThis)) {\n\t\tglobalThis.TrustedHTML = TrustedHTML;\n\t}\n\n\tif (! ('TrustedScript' in globalThis)) {\n\t\tglobalThis.TrustedScript = TrustedScript;\n\t}\n\n\tif (! ('TrustedScriptURL' in globalThis)) {\n\t\tglobalThis.TrustedScriptURL = TrustedScriptURL;\n\t}\n\n\tif (! ('trustedTypes' in globalThis)) {\n\t\tglobalThis.trustedTypes = trustedTypes;\n\t} else {\n\t\ttry {\n\t\t\t/**\n\t\t\t * Create these policies even if not needed to prevent\n\t\t\t * their use elsewhere. Not creating them but allowing them via CSP\n\t\t\t * would allow creating them as arbitrary policies.\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\tglobalThis.trustedTypes.createPolicy('empty#html', { createHTML: () => '' });\n\t\t\tglobalThis.trustedTypes.createPolicy('empty#script', { createScript: () => '' });\n\t\t} catch(err) {\n\t\t\tconsole.error(err);\n\t\t}\n\t}\n}\n\nexport const trustPolicies = [...allowedPolicies];\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { callOnce } from './utility.js';\n\nexport function setProp(el, prop, val, {\n\tpolicy,\n} = {}) {\n\tswitch(getPropertyType(el.tagName, prop)) {\n\t\tcase 'TrustedScript':\n\t\t\tel[prop] = createScript(val, { policy });\n\t\t\tbreak;\n\n\t\tcase 'TrustedScriptURL':\n\t\t\tel[prop] = createScriptURL(val, { policy });\n\t\t\tbreak;\n\n\t\tcase 'TrustedHTML':\n\t\t\tel[prop] = createHTML(val, { policy });\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tel[prop] = val;\n\t}\n}\n\nexport function setAttr(el, attr, val, {\n\telementNs,\n\tpolicy,\n} = {}) {\n\tswitch(getAttributeType(el.tagName, attr, elementNs)) {\n\t\tcase 'TrustedScriptURL':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNs(elementNs, attr, createScriptURL(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createScriptURL(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'TrustedScript':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, createScript(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createScript(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'TrustedHTML':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, createHTML(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createHTML(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, val);\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, val);\n\t\t\t}\n\t}\n}\n\nexport function supported() {\n\treturn 'trustedTypes' in globalThis\n\t\t&& trustedTypes instanceof EventTarget\n\t\t&& trustedTypes.createPolicy instanceof Function;\n}\n\nexport function isTrustPolicy(policy) {\n\tif ('TrustedTypePolicy' in globalThis && policy instanceof TrustedTypePolicy) {\n\t\treturn true;\n\t} else {\n\t\treturn policy != null && policy.createHTML instanceof Function;\n\t}\n}\n\nexport function hasDefaultPolicy() {\n\treturn supported() && isTrustPolicy(trustedTypes.defaultPolicy);\n}\n\nexport function getAttributeType(tagName, attribute, elementNs) {\n\tif (supported()) {\n\t\treturn trustedTypes.getAttributeType(tagName.toLowerCase(), attribute, elementNs);\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport function getPropertyType(tagName, property) {\n\tif (supported()) {\n\t\treturn trustedTypes.getPropertyType(tagName.toLowerCase(), property);\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport function isHTML(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isHTML(input);\n\t} else {\n\t\treturn typeof input === 'string';\n\t}\n}\n\nexport function isScript(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isScript(input);\n\t} else {\n\t\treturn typeof input === 'string';\n\t}\n}\n\nexport function isScriptURL(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isScriptURL(input);\n\t} else {\n\t\treturn typeof input === 'string' || input instanceof URL;\n\t}\n}\n\nexport function isTrustedType(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isHTML(input) || trustedTypes.isScript(input) || trustedTypes.isScriptURL(input);\n\t} else {\n\t\treturn true;\n\t}\n}\n\nexport function createHTML(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isHTML(input)) {\n\t\treturn policy.createHTML(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createScript(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isScript(input)) {\n\t\treturn policy.createScript(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createScriptURL(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isScriptURL(input)) {\n\t\treturn policy.createScriptURL(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createPolicy(name, {\n\tcreateHTML = () => {\n\t\tthrow new TypeError('This policy does not provide `createHTML()`');\n\t},\n\tcreateScript = () => {\n\t\tthrow new TypeError('This policy does not provide `createScript()`');\n\t},\n\tcreateScriptURL = () => {\n\t\tthrow new TypeError('This policy does not provide `createScriptURL()`');\n\t},\n}) {\n\tif (supported()) {\n\t\treturn trustedTypes.createPolicy(name, { createHTML, createScript, createScriptURL });\n\t} else {\n\t\treturn Object.freeze({\n\t\t\tname,\n\t\t\tcreateHTML: (input, ...args) => createHTML(input.toString(), ...args),\n\t\t\tcreateScript: (input, ...args) => createScript(input.toString(), ...args),\n\t\t\tcreateScriptURL: (input, ...args) => createScriptURL(input.toString(), ...args),\n\t\t});\n\t}\n}\n\nexport function getDefaultPolicy() {\n\tif (supported()) {\n\t\treturn trustedTypes.defaultPolicy;\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport const createHTMLPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createHTML: cb }));\n\nexport const createScriptPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createScript: cb }));\n\nexport const createScriptURLPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createScriptURL: cb }));\n","import { polyfill, trustPolicies } from './assets/TrustedTypes.js';\nconst polyfilled = polyfill();\nexport { trustPolicies, polyfilled };\n","/**\n * This **REQUIRES** a CSP with `style-src blob:`\n */\nexport const adoptedStyleSheets = {\n\tget() {\n\t\treturn Array.from(this.styleSheets)\n\t\t\t.filter(sheet => sheet.ownerNode.classList.contains('_adopted'));\n\t},\n\tset(sheets) {\n\t\tif (! Array.isArray(sheets)) {\n\t\t\tthrow new TypeError('Must be an array');\n\t\t} else {\n\t\t\tconst current = new Set(this.adoptedStyleSheets);\n\n\t\t\tcurrent.difference(sheets).forEach(sheet => sheet.ownerNode.remove());\n\n\t\t\tconst links = [...new Set(sheets).difference(current)].map(sheet => {\n\t\t\t\tconst link = document.createElement('link');\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tconst signal = controller.signal;\n\t\t\t\tconst url = URL.createObjectURL(new File([], 'adopted.css', { type: 'text/css' }));\n\t\t\t\tlink.rel = 'stylesheet';\n\t\t\t\tlink.href = url;\n\t\t\t\tlink.classList.add('_adopted');\n\t\t\t\tlink.disabled = sheet.disabled;\n\n\n\t\t\t\tlink.addEventListener('load', ({ target }) => {\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t\tlink.media = sheet.media.mediaText;\n\t\t\t\t\t[...sheet.cssRules].forEach((rule, index) => {\n\t\t\t\t\t\ttarget.sheet.insertRule(rule.cssText, index);\n\t\t\t\t\t});\n\n\t\t\t\t\tsetTimeout(() => URL.revokeObjectURL(target.href), 100);\n\t\t\t\t}, { once: true, signal });\n\n\t\t\t\tlink.addEventListener('error', ({ target }) => {\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t\tURL.revokeObjectURL(target.href);\n\t\t\t\t}, { once: true, signal });\n\n\t\t\t\treturn link;\n\t\t\t});\n\n\t\t\tif (this instanceof Document) {\n\t\t\t\tthis.head.append(...links);\n\t\t\t} else {\n\t\t\t\tthis.append(...links);\n\t\t\t}\n\t\t}\n\t}\n};\n","export function createSheet(rules = '', { disabled = false, media } = {}) {\n\tconst style = Document.parseHTML(\n\t\t`<style>${rules}</style>`,\n\t\t{ sanitizer: new Sanitizer({ allowElements: ['style', 'html', 'head', 'body'] }) }\n\t);\n\n\tconst sheet = style.styleSheets.item(0);\n\n\tif (typeof media === 'string') {\n\t\tsheet.media.appendMedium(media);\n\t}\n\tsheet.disabled = disabled;\n\treturn sheet;\n}\n\nexport function clearCSSRules(sheet) {\n\twhile (sheet.cssRules.length > 0) {\n\t\tsheet.deleteRule(0);\n\t}\n}\n\ntry {\n\tnew CSSStyleSheet();\n} catch {\n\tconst NativeStyleSheet = globalThis.CSSStyleSheet;\n\n\tglobalThis.CSSStyleSheet = function CSSStyleSheet({ disabled = false, media } = {}) {\n\t\t// Need at least one rule to create the `.sheet`\n\t\tconst sheet = createSheet('#dfgbkjdfg{color:red;}', { disabled, media });\n\t\tsheet.deleteRule(0);\n\t\treturn sheet;\n\t};\n\n\tglobalThis.CSSStyleSheet.prototype = NativeStyleSheet.prototype;\n\tNativeStyleSheet.prototype.constructor = globalThis.CSSStyleSheet;\n}\n\nif (! (CSSStyleSheet.prototype.replace instanceof Function)) {\n\tCSSStyleSheet.prototype.replace = function replace(rules) {\n\t\tconst link = document.createElement('link');\n\t\tconst controller = new AbortController();\n\t\tconst { resolve, reject, promise } = Promise.withResolvers();\n\n\t\tlink.addEventListener('load', ({ target }) => {\n\t\t\tclearCSSRules(this);\n\t\t\t[...target.sheet.cssRules].forEach((rule, i) => this.insertRule(rule.cssText, i));\n\t\t\tresolve(this);\n\t\t\tcontroller.abort();\n\t\t\tURL.revokeObjectURL(target.href);\n\t\t\ttarget.remove();\n\t\t}, { once: true, signal: controller.signal });\n\n\t\tlink.addEventListener('error', ({ target }) => {\n\t\t\tconst error = new DOMException('Error loading stylesheet.');\n\t\t\treject(error);\n\t\t\tcontroller.abort(error);\n\t\t\tURL.revokeObjectURL(target.href);\n\t\t\ttarget.remove();\n\t\t}, { once: true, signal: controller.signal });\n\n\t\tlink.rel = 'stylesheet';\n\t\tlink.crossOrigin = 'anonymous';\n\t\tlink.referrerPolicy = 'no-referrer';\n\t\tlink.media = 'no-op';\n\t\tlink.href = URL.createObjectURL(new File([rules], 'tmp.css', { type: 'text/css' }));\n\t\tdocument.head.append(link);\n\n\t\treturn promise;\n\t};\n}\n\nif (! (CSSStyleSheet.prototype.replaceSync instanceof Function)) {\n\tCSSStyleSheet.prototype.replaceSync = function replaceSync(rules) {\n\t\tconst sheet = Document.parseHTML(\n\t\t\t`<style>${rules}</style>`,\n\t\t\t{ sanitizer: new Sanitizer({ allowElements: ['style', 'html', 'head', 'body'] }) }\n\t\t).styleSheets.item(0);\n\n\t\tclearCSSRules(this);\n\n\t\t[...sheet.cssRules].forEach((rule, i) => this.insertRule(rule.cssText, i));\n\t};\n}\n","import { polyfillGetterSetter } from './utils.js';\nimport { adoptedStyleSheets } from './assets/adoptedStylesheets.js';\n\npolyfillGetterSetter(Document.prototype, 'adoptedStyleSheets', adoptedStyleSheets);\n","import { polyfillGetterSetter } from './utils.js';\nimport { adoptedStyleSheets } from './assets/adoptedStylesheets.js';\n\nif ('ShadowRoot' in globalThis) {\n\tpolyfillGetterSetter(ShadowRoot.prototype, 'adoptedStyleSheets', adoptedStyleSheets);\n}\n","export const aria = {\n\tariaAtomic: 'aria-atomic',\n\tariaAutoComplete: 'aria-autocomplete',\n\tariaBusy: 'aria-busy',\n\tariaChecked: 'aria-checked',\n\tariaColCount: 'aria-colcount',\n\tariaColIndex: 'aria-colindex',\n\tariaColIndexText: 'aria-colindextext',\n\tariaColSpan: 'aria-colspan',\n\tariaCurrent: 'aria-current',\n\tariaDisabled: 'aria-disabled',\n\tariaExpanded: 'aria-expanded',\n\tariaHasPopup: 'aria-haspopup',\n\tariaHidden: 'aria-hidden',\n\tariaInvalid: 'aria-invalid',\n\tariaKeyShortcuts: 'aria-keyshortcuts',\n\tariaLabel: 'aria-label',\n\tariaLevel: 'aria-level',\n\tariaLive: 'aria-live',\n\tariaModal: 'aria-modal',\n\tariaMultiLine: 'aria-multiline',\n\tariaMultiSelectable: 'aria-multiselectable',\n\tariaOrientation: 'aria-orientation',\n\tariaPlaceholder: 'aria-placeholder',\n\tariaPosInSet: 'aria-posinset',\n\tariaPressed: 'aria-pressed',\n\tariaReadOnly: 'aria-readonly',\n\tariaRelevant: 'aria-relevant',\n\tariaRequired: 'aria-required',\n\tariaRoleDescription: 'aria-roledescription',\n\tariaRowCount: 'aria-rowcount',\n\tariaRowIndex: 'aria-rowindex',\n\tariaRowIndexText: 'aria-rowindextext',\n\tariaRowSpan: 'aria-rowspan',\n\tariaSelected: 'aria-selected',\n\tariaSetSize: 'aria-setsize',\n\tariaSort: 'aria-sort',\n\tariaValueMax: 'aria-valuemax',\n\tariaValueMin: 'aria-valuemin',\n\tariaValueNow: 'aria-valuenow',\n\tariaValueText: 'aria-valuetext',\n\trole: 'role'\n};\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const HTML = 'http://www.w3.org/1999/xhtml';\nexport const SVG = 'http://www.w3.org/2000/svg';\nexport const XLINK = 'http://www.w3.org/1999/xlink';\nexport const MATHML = 'http://www.w3.org/1998/Math/MathML';\n","import { HTML as HTMLNS } from './namespaces.js';\n\nexport const EVENT_ATTRS = new Set(('HTMLElement' in globalThis\n\t? Object.keys(HTMLElement.prototype) : [])\n\t.filter(name => name.startsWith('on')));\n\nexport function normalizeElement(opt, defaultNS = HTMLNS) {\n\tif (typeof opt === 'string') {\n\t\treturn Object.freeze({ name: opt, namespace: defaultNS });\n\t} else if (typeof opt === 'object' && typeof opt.name === 'string') {\n\t\tconst { name, namespace = defaultNS, attributes } = opt;\n\t\treturn Object.freeze({\n\t\t\tname,\n\t\t\tnamespace: typeof namespace === 'string' && namespace.length !== 0 ? namespace : defaultNS,\n\t\t\tattributes,\n\t\t});\n\t} else {\n\t\tthrow new TypeError('Invalid config entry for `elements`.');\n\t}\n}\n\nfunction normalizeElementsConfig({ elements, allowElements }, defaultNS = HTMLNS) {\n\tif (Array.isArray(allowElements)) {\n\t\tconsole.warn('Use of `allowElements` is deprecated. Please use `elements` instead.');\n\t\treturn normalizeElementsConfig({ elements: allowElements }, defaultNS);\n\t} else if (! Array.isArray(elements)) {\n\t\tthrow new TypeError('`elements` expected to be an array.');\n\t} else {\n\t\treturn elements.map(opt => normalizeElement(opt, defaultNS));\n\t}\n}\n\nexport function normalizeAttr(opt, defaultNS ='') {\n\tif (typeof opt === 'string') {\n\t\treturn Object.freeze({ name: opt, namespace: defaultNS });\n\t} else if (typeof opt === 'object' && typeof opt.name === 'string') {\n\t\tconst { name, namespace = defaultNS, elements } = opt;\n\t\treturn Object.freeze({\n\t\t\tname,\n\t\t\tnamespace: typeof namespace === 'string' ? namespace : defaultNS,\n\t\t\telements,\n\t\t});\n\t} else {\n\t\tthrow new TypeError('Invalid entry in `attributes` config.');\n\t}\n}\n\nfunction normalizeAttrsConfig({ attributes, allowAttributes }, defaultNS = '') {\n\tif (typeof allowAttributes !== 'undefined') {\n\t\tconsole.warn('Use of `allowAttributes` is deprecated. Please use `attributes` instead.');\n\t\treturn normalizeAttrsConfig({ attributes: allowAttributes }, defaultNS);\n\t} else if (Array.isArray(attributes)) {\n\t\treturn attributes.map(opt => normalizeAttr(opt, defaultNS));\n\t} else if (typeof attributes === 'object' && attributes !== null) {\n\t\tconsole.warn('`attributes` should be an array, not an oobject.');\n\t\treturn normalizeAttrsConfig({\n\t\t\tattributes: Object.entries(attributes).map(([name, elements]) => ({ name, elements })),\n\t\t}, defaultNS);\n\t} else {\n\t\tthrow new TypeError('`attributes` expected to be an array.');\n\t}\n}\n\nfunction normalizeCommentsConfig({ comments, allowComments }) {\n\tif (typeof comments === 'boolean') {\n\t\treturn comments;\n\t} else if (typeof allowComments === 'boolean') {\n\t\tconsole.warn('Use of `allowComments` is deprecated. Please use `comments` instead.');\n\t\treturn allowComments;\n\t} else {\n\t\treturn false;\n\t}\n}\n\nexport function normalizeConfig(config, {\n\telementNS = HTMLNS,\n\tattributeNS = '',\n} = {}) {\n\treturn {\n\t\telements: normalizeElementsConfig(config, elementNS),\n\t\tattributes: normalizeAttrsConfig(config, attributeNS),\n\t\tcomments: normalizeCommentsConfig(config),\n\t};\n}\n\nfunction convertAttrConfig({ attributes, allowAttributes }, defaultNS) {\n\treturn Object.freeze(\n\t\tObject.groupBy(\n\t\t\tnormalizeAttrsConfig({ attributes, allowAttributes }, defaultNS),\n\t\t\t({ namespace }) => namespace\n\t\t)\n\t);\n}\n\nfunction convertElementConfig({ elements, allowElements }, defaultNS = HTMLNS) {\n\treturn Object.freeze(\n\t\tObject.groupBy(\n\t\t\tnormalizeElementsConfig({ elements, allowElements }, defaultNS),\n\t\t\t({ namespace }) => namespace\n\t\t)\n\t);\n}\n\nexport function convertConfig(config, {\n\telementNS = HTMLNS,\n\tattributeNS = '',\n} = {}) {\n\tif (typeof config !== 'object' || config === null) {\n\t\tthrow new TypeError('Sanitizer config must be an object.');\n\t} else if (config.getConfiguration instanceof Function) {\n\t\tconsole.warn('`Sanitzer` objects are deprecated and will be removed.');\n\n\t\tconst {\n\t\t\tallowElements: elements,\n\t\t\tallowAttributes: attributes,\n\t\t\tallowComments: comments,\n\t\t} = config.getConfiguration();\n\n\t\treturn Object.freeze({\n\t\t\telements: convertElementConfig({ elements }, elementNS),\n\t\t\tattributes: convertAttrConfig({ attributes }, attributeNS),\n\t\t\tcomments,\n\t\t});\n\t} else {\n\t\treturn Object.freeze({\n\t\t\telements: convertElementConfig(config, elementNS),\n\t\t\tattributes: convertAttrConfig(config, attributeNS),\n\t\t\tcomments: normalizeCommentsConfig(config),\n\t\t});\n\t}\n}\n","import { normalizeAttr } from '../config-utils.js';\n\nexport const attributes = Object.freeze([\n\t'accesskey', 'autocapitalize', 'autofocus', 'class', 'contenteditable',\n\t'dir', 'draggable', 'enterkeyhint', 'exportparts', 'hidden', 'id',\n\t'inert', 'inputmode', 'itemid', 'itemprop', 'itemref',\n\t'itemscope', 'itemtype', 'lang', 'part', 'popover',\n\t'slot', 'spellcheck', 'tabindex', 'title', 'translate',\n\t'virtualkeyboardpolicy',\n\t/**\n\t * Aria-Attributes\n\t * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/\n\t */\n\t'aria-keyshortcuts', 'aria-activedescendant', 'aria-atomic', 'aria-autocomplete',\n\t'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked',\n\t'aria-colcount', 'aria-colindex', 'aria-colindextext', 'aria-colspan',\n\t'aria-controls', 'aria-current', 'aria-describedby', 'aria-description',\n\t'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage',\n\t'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden',\n\t'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level',\n\t'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation',\n\t'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed',\n\t'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription',\n\t'aria-rowcount', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan',\n\t'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin',\n\t'aria-valuenow', 'aria-valuetext',\n].map(attr => normalizeAttr(attr, '' )));\n","/**\n * @copyright 2023-2024 Chris Zuber <admin@kernvalley.us>\n * @see https://wicg.github.io/sanitizer-api/#default-configuration-dictionary\n */\nimport { HTML as namespace } from '../namespaces.js';\nimport { normalizeAttr, normalizeElement } from '../config-utils.js';\nimport { attributes as globalAttrs } from './global.js';\nexport const allowCustomElements = true;\nexport const allowUnknownMarkup = false;\nexport const comments = false;\n\n\n/**\n * Tags listed on MDN, + a few deprecated / experimental ones\n * Selector: `#content table td > a[href^=\"/en-US/docs/Web/HTML/Element/\"] > code`\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n */\nexport const elements = Object.freeze([\n\t'html', 'head', 'link', 'meta', 'body', 'address', 'article', 'aside', 'footer',\n\t'header', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup', 'main', 'nav', 'section',\n\t'search', 'blockquote', 'cite', 'div', 'dd', 'dt', 'dl', 'figcaption', 'figure',\n\t'hr', 'li', 'ol', 'ul', 'menu', 'p', 'pre', 'a', 'abbr', 'b', 'bdi', 'bdo', 'br',\n\t'code', 'data', 'dfn', 'em', 'i', 'kbd', 'mark', 'q', 'rp', 'ruby', 'rt', 's',\n\t'del', 'ins', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u',\n\t'var', 'wbr', 'area', 'audio', 'img', 'map', 'track', 'video', 'picture',\n\t'source', 'canvas', 'caption', 'col', 'colgroup', 'table', 'tbody', 'tr', 'td',\n\t'tfoot', 'th', 'thead', 'button', 'datalist', 'option', 'fieldset', 'label',\n\t'form', 'input', 'legend', 'meter', 'optgroup', 'select', 'output', 'progress',\n\t'textarea', 'details', 'summary', 'dialog', 'slot', 'template', 'dir',\n\t'strike', 'selectmenu', 'center',\n].map(el => normalizeElement(el, namespace)));\n\nexport const attributes = Object.freeze([\n\t'abbr',\n\t'accept',\n\t'accept-charset',\n\t// 'accesskey', //global\n\t// 'action',\n\t'align',\n\t'alink',\n\t'allow',\n\t'allowfullscreen',\n\t'alt',\n\t'anchor',\n\t'archive',\n\t'as',\n\t'async',\n\t// 'autocapitalize', //global\n\t'autocomplete',\n\t'autocorrect',\n\t// 'autofocus', //global\n\t'autopictureinpicture',\n\t'autoplay',\n\t'axis',\n\t'background',\n\t'behavior',\n\t// 'bgcolor',\n\t'border',\n\t'bordercolor',\n\t'capture',\n\t'cellpadding',\n\t'cellspacing',\n\t'challenge',\n\t'char',\n\t'charoff',\n\t'charset',\n\t'checked',\n\t'cite',\n\t// 'class', //global\n\t'classid',\n\t'clear',\n\t'code',\n\t// 'codebase',\n\t'codetype',\n\t'color',\n\t'cols',\n\t'colspan',\n\t'compact',\n\t'content',\n\t// 'contenteditable', //global\n\t'controls',\n\t'controlslist',\n\t'conversiondestination',\n\t'coords',\n\t'crossorigin',\n\t'csp',\n\t'data',\n\t'datetime',\n\t'declare',\n\t'decoding',\n\t'default',\n\t'defer',\n\t// 'dir', //global\n\t'direction',\n\t'dirname',\n\t'disabled',\n\t'disablepictureinpicture',\n\t'disableremoteplayback',\n\t'disallowdocumentaccess',\n\t'download',\n\t// 'draggable', //global\n\t'elementtiming',\n\t'enctype',\n\t'end',\n\t// 'enterkeyhint', //global\n\t// 'event',\n\t// 'exportparts', //global\n\t// 'face',\n\t'for',\n\t'form',\n\t// 'formaction',\n\t'formenctype',\n\t'formmethod',\n\t'formnovalidate',\n\t'formtarget',\n\t// 'frame',\n\t'frameborder',\n\t'headers',\n\t'height',\n\t// 'hidden', //global\n\t'high',\n\t'href',\n\t'hreflang',\n\t'hreftranslate',\n\t'hspace',\n\t// 'http-equiv',\n\t// 'id', //global\n\t'imagesizes',\n\t'imagesrcset',\n\t'importance',\n\t'impressiondata',\n\t'impressionexpiry',\n\t'incremental',\n\t// 'inert', //global\n\t// 'inputmode', //global\n\t'integrity',\n\t'invisible',\n\t'invoketarget',\n\t'invokeaction',\n\t'is',\n\t'ismap',\n\t'keytype',\n\t'kind',\n\t'label',\n\t// 'lang', //global\n\t'language',\n\t'latencyhint',\n\t'leftmargin',\n\t'link',\n\t'list',\n\t'loading',\n\t'longdesc',\n\t'loop',\n\t'low',\n\t'lowsrc',\n\t'manifest',\n\t'marginheight',\n\t'marginwidth',\n\t'max',\n\t'maxlength',\n\t'mayscript',\n\t'media',\n\t'method',\n\t'min',\n\t'minlength',\n\t'multiple',\n\t'muted',\n\t'name',\n\t'nohref',\n\t'nomodule',\n\t// 'nonce',\n\t'noresize',\n\t'noshade',\n\t'novalidate',\n\t'nowrap',\n\t'object',\n\t'open',\n\t'optimum',\n\t// 'part', //global\n\t'pattern',\n\t'ping',\n\t'placeholder',\n\t'playsinline',\n\t'policy',\n\t// 'popover', //global\n\t'popovertarget',\n\t'popovertargetaction',\n\t'poster',\n\t'preload',\n\t'pseudo',\n\t'readonly',\n\t'referrerpolicy',\n\t'rel',\n\t'reportingorigin',\n\t'required',\n\t'resources',\n\t'rev',\n\t'reversed',\n\t'role',\n\t'rows',\n\t'rowspan',\n\t'rules',\n\t'sandbox',\n\t'scheme',\n\t'scope',\n\t'scopes',\n\t'scrollamount',\n\t'scrolldelay',\n\t'scrolling',\n\t'select',\n\t'selected',\n\t'shadowrootmode',\n\t'shadowrootdelegatesfocus',\n\t'shape',\n\t'size',\n\t'sizes',\n\t// 'slot', //global\n\t'span',\n\t// 'spellcheck', //global\n\t'src',\n\t'srcdoc',\n\t'srclang',\n\t'srcset',\n\t'standby',\n\t'start',\n\t'step',\n\t// 'style',\n\t'summary',\n\t// 'tabindex',//global\n\t'target',\n\t'text',\n\t// 'title', //global\n\t'topmargin',\n\t// 'translate', //global\n\t'truespeed',\n\t'trusttoken',\n\t'type',\n\t'usemap',\n\t'valign',\n\t'value',\n\t'valuetype',\n\t'version',\n\t// 'virtualkeyboardpolicy', //global\n\t'vlink',\n\t'vspace',\n\t'webkitdirectory',\n\t'width',\n\t'wrap',\n].map(attr => normalizeAttr(attr)).concat(globalAttrs));\n\nexport const sanitizer = Object.freeze({\n\tallowCustomElements, allowUnknownMarkup, comments, elements,\n\tattributes,\n});\n","import { sanitizer as sanitizerConfig } from './config/html.js';\nimport { convertConfig, EVENT_ATTRS } from './config-utils.js';\n\nconst LINK_ATTRS = new Set(['href', 'src' , 'action']);\nconst ILLEGAL_PROTOCOLS = new Set(['javascript:', 'about:', 'data:', 'file:', 'ftp:']);\n\nif (location.protocol === 'https:') {\n\tILLEGAL_PROTOCOLS.add('http:');\n}\n\nfunction createPolicy(name, { createHTML, createScript, createScriptURL }) {\n\tif ('trustedTypes' in globalThis) {\n\t\treturn globalThis.trustedTypes.createPolicy(name, { createHTML, createScript, createScriptURL });\n\t} else {\n\t\treturn Object.freeze({\n\t\t\t[Symbol.for('policy-name')]: name,\n\t\t\tcreateHTML: createHTML instanceof Function\n\t\t\t\t? (input, ...args) => createHTML(input.toString(), ...args).toString()\n\t\t\t\t: null,\n\t\t\tcreateScript: createScript instanceof Function\n\t\t\t\t? (input, ...args) => createScript(input.toString(), ...args).toString()\n\t\t\t\t: null,\n\t\t\tcreateScriptURL: createScriptURL instanceof Function\n\t\t\t\t? (input, ...args) => createScriptURL(input.toString(), ...args).toString()\n\t\t\t\t: null,\n\t\t});\n\t}\n}\n\nconst policy = createPolicy('aegis-sanitizer#html', { createHTML: input => input });\n\nexport function setHTML(el, content, { sanitizer = sanitizerConfig } = {}) {\n\tconst tmp = document.createElement('template');\n\ttmp.innerHTML = policy.createHTML(content);\n\tsanitize(tmp.content, sanitizer);\n\tel.replaceChildren(tmp.content);\n}\n\nexport function parseHTML(content, { sanitizer = sanitizerConfig } = {}) {\n\tconst doc = new DOMParser().parseFromString(content, 'text/html');\n\tsanitize(doc, sanitizer);\n\treturn doc;\n}\n\nexport function sanitize(node, config = sanitizerConfig) {\n\tif (! (node instanceof Node)) {\n\t\tthrow new TypeError('Not a node.');\n\t} else {\n\t\tconst converted = convertConfig(config);\n\t\treturn sanitizeNode(node, converted);\n\t}\n}\n\nfunction isAllowedElement(el, config) {\n\treturn el.namespaceURI in config.elements\n\t\t&& config.elements[el.namespaceURI].some(opt => opt.name === el.localName);\n}\n\nfunction isIllegalURLAttr(attr) {\n\tif (! LINK_ATTRS.has(attr.localName)) {\n\t\treturn false;\n\t} else if (! URL.canParse(attr.value)) {\n\t\treturn false;\n\t} else {\n\t\tconst { protocol } = new URL(attr.value);\n\t\treturn ILLEGAL_PROTOCOLS.has(protocol);\n\t}\n}\n\nfunction isAllowedAttr(attr, config) {\n\treturn attr.name.startsWith('data-') || (\n\t\t(attr.namespaceURI ?? '') in config.attributes\n\t\t&& config.attributes[attr.namespaceURI ?? ''].some(opt => opt.name === attr.localName)\n\t\t&& ! EVENT_ATTRS.has(attr.localName)\n\t\t&& ! isIllegalURLAttr(attr)\n\t);\n}\n\nfunction sanitizeNode(node, config) {\n\tswitch(node.nodeType) {\n\t\tcase Node.ELEMENT_NODE:\n\t\t\tsanitizeElement(node, config);\n\t\t\tbreak;\n\n\t\tcase Node.DOCUMENT_NODE:\n\t\tcase Node.DOCUMENT_FRAGMENT_NODE:\n\t\t\tsanitizeFragOrDoc(node, config);\n\t\t\tbreak;\n\n\t\tcase Node.COMMENT_NODE:\n\t\t\tsanitizeComment(node, config);\n\t\t\tbreak;\n\n\t\tcase Node.ATTRIBUTE_NODE:\n\t\t\tsanitizeAttr(node, config);\n\t\t\tbreak;\n\n\t\tcase Node.TEXT_NODE:\n\t\tcase Node.DOCUMENT_TYPE_NODE:\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tif (node.ownerElement instanceof Element) {\n\t\t\t\tnode.ownerElement.removeChild(node);\n\t\t\t}\n\t}\n}\n\nfunction sanitizeElement(el, config) {\n\tif (! isAllowedElement(el, config)) {\n\t\tel.remove();\n\t} else {\n\t\t[...el.attributes].forEach(attr => sanitizeAttr(attr, config));\n\n\t\tif (el.tagName === 'TEMPLATE') {\n\t\t\tsanitizeFragOrDoc(el.content, config);\n\t\t} else if (el.hasChildNodes()) {\n\t\t\tel.childNodes.forEach(node => sanitizeNode(node, config));\n\t\t}\n\t}\n}\n\nfunction sanitizeAttr(attr, config) {\n\tif (! isAllowedAttr(attr, config) && attr.ownerElement instanceof Element) {\n\t\tattr.ownerElement.removeAttributeNode(attr);\n\t}\n}\n\nfunction sanitizeFragOrDoc(node, config) {\n\tnode.childNodes.forEach(child => sanitizeNode(child, config));\n}\n\nfunction sanitizeComment(node, config) {\n\tif (! config.comments) {\n\t\tnode.remove();\n\t}\n}\n","import { setHTML as html, parseHTML as parse } from './sanitize.js';\nimport {\n\tsanitizer as sanitizerConfig,\n\telements as els,\n\tattributes as attrs,\n\tcomments as cmnts\n} from './config/html.js';\n\n/**\n * This is needed for working with sanitizer configs & arrts\n */\n\nif (! (URL.canParse instanceof Function)) {\n\tURL.canParse = function canParse(url, base) {\n\t\ttry {\n\t\t\tnew URL(url, base);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t};\n}\n\nif (! (Object.groupBy instanceof Function)) {\n\tObject.groupBy = function groupBy(arr, callback) {\n\t\treturn Object.fromEntries(arr.map(item => [callback(item), item]));\n\t};\n}\n\nif (! (Element.prototype.setHTML instanceof Function)) {\n\tElement.prototype.setHTML = function setHTML(content, {\n\t\tsanitizer: {\n\t\t\telements = els,\n\t\t\tattributes = attrs,\n\t\t\tcomments = cmnts,\n\t\t} = sanitizerConfig,\n\t} = {}) {\n\t\thtml(this, content, { sanitizer: { elements, attributes, comments }});\n\t};\n}\n\nif (! (Document.parseHTML instanceof Function)) {\n\tDocument.parseHTML = function parseHTML(content, {\n\t\tsanitizer: {\n\t\t\telements = els,\n\t\t\tattributes = attrs,\n\t\t\tcomments = cmnts,\n\t\t} = sanitizerConfig,\n\t} = {}) {\n\t\treturn parse(content, { sanitizer: { elements, attributes, comments }});\n\t};\n}\n","import { SVG as SVGNS } from '../namespaces.js';\nimport { attributes as globalAttrs } from './global.js';\nimport { normalizeAttr, normalizeElement } from '../config-utils.js';\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Element\n */\n\nexport const comments = false;\n\nexport const elements = Object.freeze([\n\t'a', 'animate', 'animateMotion', 'animateTransform', 'circle', 'clipPath',\n\t'defs', 'desc', 'ellipse', 'feBlend', 'feColorMatrix', 'feComponentTransfer',\n\t'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap',\n\t'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG',\n\t'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology',\n\t'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile',\n\t'feTurbulence', 'filter', 'foreignObject', 'g', 'image', 'line', 'linearGradient',\n\t'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline',\n\t'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch',\n\t'symbol', 'text', 'textPath', 'title', 'tspan', 'view', 'missing-glyph', 'font',\n\t'font-face', 'font-face-format', 'font-face-name', 'font-face-src',\n\t'font-face-uri', 'hkern', 'vkern', 'glyph', 'glyphRef', 'tref', 'cursor',\n].map(el => normalizeElement(el, SVGNS)));\n\nexport const attributes = Object.freeze([\n\t'accent-height', 'accumulate', 'additive', 'alignment-baseline',\n\t'alphabetic', 'amplitude', 'arabic-form', 'ascent', 'attributeName',\n\t'attributeType', 'azimuth', 'baseFrequency', 'baseline-shift', 'baseProfile',\n\t'bbox', 'begin', 'bias', 'by', 'calcMode', 'cap-height', 'class', 'clip',\n\t'clipPathUnits', 'clip-path', 'clip-rule', 'color', 'color-interpolation',\n\t'color-interpolation-filters', 'color-profile', 'color-rendering', 'crossorigin',\n\t'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction',\n\t'display', 'divisor', 'dominant-baseline', 'dur', 'dx', 'dy', 'edgeMode',\n\t'elevation', 'enable-background', 'end', 'exponent', 'fill', 'fill-opacity',\n\t'fill-rule', 'filter','filterUnits', 'flood-color', 'flood-opacity',\n\t'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style',\n\t'font-variant', 'font-weight', 'format', 'from', 'fr', 'fx', 'fy', 'g1', 'g2',\n\t'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical',\n\t'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'height', 'href',\n\t'hreflang', 'horiz-adv-x', 'horiz-origin-x', 'id', 'ideographic', 'image-rendering',\n\t'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kernelMatrix',\n\t'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lang',\n\t'lengthAdjust', 'letter-spacing', 'lighting-color', 'limitingConeAngle', 'local',\n\t'marker-end', 'marker-mid', 'marker-start', 'markerHeight', 'markerUnits',\n\t'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'max',\n\t'media', 'method', 'min', 'mode', 'name', 'numOctaves', 'offset', 'opacity',\n\t'operator', 'order', 'orient', 'orientation', 'origin', 'overflow',\n\t'overline-position', 'overline-thickness', 'panose-1', 'paint-order',\n\t'path', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits',\n\t'ping', 'pointer-events', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ',\n\t'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius',\n\t'referrerPolicy', 'refX', 'refY', 'rel', 'rendering-intent', 'repeatCount',\n\t'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result',\n\t'rotate', 'rx', 'ry', 'scale', 'seed', 'shape-rendering', 'slope', 'spacing',\n\t'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset',\n\t'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stop-color', 'stop-opacity',\n\t'strikethrough-position', 'strikethrough-thickness', 'string', 'stroke',\n\t'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin',\n\t'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'style', 'surfaceScale',\n\t'systemLanguage', 'tabindex', 'tableValues', 'target', 'targetX', 'targetY',\n\t'text-anchor', 'text-decoration', 'text-rendering', 'textLength', 'to', 'transform',\n\t'transform-origin', 'type', 'u1', 'u2', 'underline-position', 'underline-thickness',\n\t'unicode', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic',\n\t'v-hanging', 'v-ideographic', 'v-mathematical', 'values', 'vector-effect',\n\t'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'viewBox',\n\t'visibility', 'width', 'widths', 'word-spacing', 'writing-mode', 'x', 'x-height',\n\t'x1', 'x2', 'xChannelSelector', 'xlink:actuate', 'xlink:arcrole', 'xlink:href',\n\t'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang',\n\t'xml:space', 'y', 'y1', 'y2', 'yChannelSelector', 'z', 'zoomAndPan',\n\t'autoReverse', 'accelerate',\n].map(attr => normalizeAttr(attr,'')).concat(globalAttrs));\n\nexport const sanitizer = Object.freeze({ elements, attributes, comments });\n","import { MATHML as MATHNS } from '../namespaces.js';\nimport { attributes as globalAttrs } from './global.js';\nimport { normalizeAttr, normalizeElement } from '../config-utils.js';\n\nexport const comments = false;\n\n/**\n *@see https://developer.mozilla.org/en-US/docs/Web/MathML/Element\n */\nexport const elements = Object.freeze([\n\t'math', 'maction', 'annotation', 'annotation-xml', 'menclose', 'merror',\n\t'mfenced', 'mfrac', 'mi', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded',\n\t'mphantom', 'mprescripts', 'mroot', 'mrow', 'ms', 'semantics', 'mspace',\n\t'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext',\n\t'mtr', 'munder', 'munderover',\n].map(el => normalizeElement(el, MATHNS)));\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute\n */\nexport const attributes = Object.freeze([\n\t'accent', 'accentunder', 'actiontype', 'align',\n\t'background', 'close', 'color', 'columnalign', 'columnlines', 'columnspacing',\n\t'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'fence',\n\t'fontfamily', 'fontsize', 'fontstyle', 'fontweight', 'frame', 'framespacing',\n\t'height', 'href', 'id', 'linethickness', 'lspace', 'lquote', 'mathbackground',\n\t'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits',\n\t'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan',\n\t'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier',\n\t'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'superscriptshift',\n\t'symmetric', 'voffset', 'width', 'xmlns',\n].map(attr => normalizeAttr(attr, '')).concat(globalAttrs));\n\nexport const sanitizer = Object.freeze({ elements, attributes, comments });\n","import { aria } from './aom.js';\nimport { polyfillGetterSetter } from './utils.js';\nimport './sanitizer.js';\n\nfunction handlePopover({ currentTarget }) {\n\tswitch(currentTarget.popoverTargetAction) {\n\t\tcase 'show':\n\t\t\tcurrentTarget.popoverTargetElement.showPopover();\n\t\t\tbreak;\n\n\t\tcase 'hide':\n\t\t\tcurrentTarget.popoverTargetElement.hidePopover();\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tcurrentTarget.popoverTargetElement.togglePopover();\n\t}\n}\n\nexport function initPopover(target = document.body) {\n\ttarget.querySelectorAll('button[popovertarget], input[type=\"button\"][popovertarget]')\n\t\t.forEach(el => el.addEventListener('click', handlePopover));\n}\n\nif ((globalThis.ToggleEvent instanceof Function)) {\n\tclass ToggleEvent extends Event {\n\t\t#newState;\n\t\t#oldState;\n\n\t\tconstructor(type, { newState, oldState }) {\n\t\t\tsuper(type, { bubbles: true });\n\t\t\tthis.#newState = newState;\n\t\t\tthis.#oldState = oldState;\n\t\t}\n\n\t\tget newState() {\n\t\t\treturn this.#newState;\n\t\t}\n\n\t\tget oldState() {\n\t\t\treturn this.#oldState;\n\t\t}\n\t}\n\n\tglobalThis.ToggleEvent = ToggleEvent;\n}\n\nif (! (HTMLElement.prototype.showPopover instanceof Function)) {\n\tconst isPopoverOpen = el => el.classList.contains('_popover-open');\n\n\tObject.defineProperties(HTMLElement.prototype, {\n\t\tshowPopover: {\n\t\t\tvalue: function showPopover() {\n\t\t\t\tif (! isPopoverOpen(this)) {\n\t\t\t\t\tthis.dispatchEvent(new ToggleEvent('beforetoggle', { oldState: 'closed', newState: 'open' }));\n\n\t\t\t\t\tif (this.getAttribute('popover') === 'auto') {\n\t\t\t\t\t\tconst controller = new AbortController();\n\n\t\t\t\t\t\tdocument.body.addEventListener('click', ({ target }) => {\n\t\t\t\t\t\t\tif (! this.contains(target) && ! this.isSameNode(target.popoverTargetElement)) {\n\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\tthis.hidePopover();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, { signal: controller.signal, capture: true });\n\n\t\t\t\t\t\tdocument.body.addEventListener('keydown', ({ key }) => {\n\t\t\t\t\t\t\tif (key === 'Escape') {\n\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\tthis.hidePopover();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, { signal: controller.signal, capture: true });\n\n\t\t\t\t\t\tdocument.addEventListener('beforetoggle', ({ target }) => {\n\t\t\t\t\t\t\tif (! target.isSameNode(this) && target.getAttribute('popover') === 'auto') {\n\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\tthis.hidePopover();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, { signal: controller.signal });\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.classList.add('_popover-open');\n\t\t\t\t\tthis.dispatchEvent(new ToggleEvent('toggle', { oldState: 'closed', newState: 'open' }));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thidePopover: {\n\t\t\tvalue: function hidePopover() {\n\t\t\t\tif (isPopoverOpen(this)) {\n\t\t\t\t\tthis.dispatchEvent(new ToggleEvent('beforetoggle', { oldState: 'open', newState: 'closed' }));\n\t\t\t\t\tqueueMicrotask(() => this.classList.remove('_popover-open'));\n\t\t\t\t\tthis.dispatchEvent(new ToggleEvent('toggle', { oldState: 'open', newState: 'closed' }));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttogglePopover: {\n\t\t\tvalue: function togglePopover() {\n\t\t\t\tisPopoverOpen(this) ? this.hidePopover() : this.showPopover();\n\t\t\t}\n\t\t}\n\t});\n\n\tObject.defineProperties(HTMLButtonElement.prototype, {\n\t\tpopoverTargetElement: {\n\t\t\tget() {\n\t\t\t\treturn document.getElementById(this.getAttribute('popovertarget'));\n\t\t\t}\n\t\t},\n\t\tpopoverTargetAction: {\n\t\t\tget() {\n\t\t\t\treturn this.getAttribute('popovertargetaction') || 'toggle';\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.setAttribute('popovertargetaction', val);\n\t\t\t}\n\t\t}\n\t});\n\n\tinitPopover();\n}\n\nif (! (HTMLScriptElement.supports instanceof Function)) {\n\tHTMLScriptElement.supports = function supports(type) {\n\t\tswitch(type.toLowerCase()) {\n\t\t\tcase 'classic':\n\t\t\t\treturn true;\n\n\t\t\tcase 'module':\n\t\t\t\treturn 'noModule' in HTMLScriptElement.prototype;\n\n\t\t\tcase 'importmap':\n\t\t\t\treturn false;\n\n\t\t\tcase 'speculationrules':\n\t\t\t\treturn false;\n\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t};\n}\n\nif (! Element.prototype.hasOwnProperty(aria.role)) {\n\tconst enumerable = true;\n\tconst configurable = true;\n\n\tconst props = Object.fromEntries(Object.entries(aria).map(([prop, attr]) => [prop, {\n\t\tget: function() {\n\t\t\treturn this.getAttribute(attr);\n\t\t},\n\t\tset: function(val) {\n\t\t\tif (typeof val === 'string') {\n\t\t\t\tthis.setAttribute(attr, val);\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute(attr);\n\t\t\t}\n\t\t},\n\t\tenumerable, configurable,\n\t}]));\n\n\tObject.defineProperties(Element.prototype, props);\n}\n\nif (! HTMLElement.prototype.hasOwnProperty('inert')) {\n\t// CSS will handle pointer events\n\tconst previous = new WeakMap();\n\tconst restoreTabIndex = el => {\n\t\tif (previous.has(el)) {\n\t\t\tel.tabIndex = previous.get(el);\n\t\t}\n\n\t\tif (el.hasChildNodes()) {\n\t\t\t[...el.children].forEach(restoreTabIndex);\n\t\t}\n\t};\n\n\tconst setTabIndex = el => {\n\t\tif (el.tabIndex !== -1) {\n\t\t\tprevious.set(el, el.tabIndex);\n\t\t\tel.tabIndex = -1;\n\t\t}\n\n\t\tif (el.hasChildNodes()) {\n\t\t\t[...el.children].forEach(setTabIndex);\n\t\t}\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'inert', {\n\t\tget: function() {\n\t\t\treturn this.hasAttribute('inert');\n\t\t},\n\t\tset: function(val) {\n\t\t\tif (val) {\n\t\t\t\tthis.setAttribute('aria-hidden', 'true');\n\t\t\t\tthis.setAttribute('inert', '');\n\t\t\t\tsetTabIndex(this);\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute('aria-hidden');\n\t\t\t\tthis.removeAttribute('inert');\n\t\t\t\trestoreTabIndex(this);\n\t\t\t}\n\t\t},\n\t\tenumerable: true, configurable: true,\n\t});\n}\n\nif (! HTMLImageElement.prototype.hasOwnProperty('complete')) {\n\t/**\n\t * Note: This shim cannot detect if an image has an error while loading\n\t * and will return false on an invalid URL, for example. It also does not\n\t * work for 0-sized images, if such a thing is possible.\n\t */\n\tObject.defineProperty(HTMLImageElement.prototype, 'complete', {\n\t\tget: function() {\n\t\t\treturn this.src === '' || this.naturalHeight > 0;\n\t\t}\n\t});\n}\n\nif (! (HTMLImageElement.prototype.decode instanceof Function)) {\n\tHTMLImageElement.prototype.decode = function () {\n\t\tif (this.complete) {\n\t\t\treturn Promise.resolve();\n\t\t} else {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst load = () => {\n\t\t\t\t\tthis.removeEventListener('error', error);\n\t\t\t\t\tthis.removeEventListener('load', load);\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst error = (err) => {\n\t\t\t\t\tthis.removeEventListener('error', error);\n\t\t\t\t\tthis.removeEventListener('load', load);\n\t\t\t\t\treject(err);\n\t\t\t\t};\n\n\t\t\t\tthis.addEventListener('load', load);\n\t\t\t\tthis.addEventListener('error', error);\n\t\t\t});\n\t\t}\n\t};\n}\n\nif (! HTMLTemplateElement.prototype.hasOwnProperty('shadowRootMode')) {\n\tObject.defineProperty(HTMLTemplateElement.prototype, 'shadowRootMode', {\n\t\tget: function() {\n\t\t\treturn this.getAttribute('shadowrootmode');\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis.setAttribute('shadowrootmode', val);\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true,\n\t});\n\n\tconst attachShadows = (base = document) => {\n\t\tbase.querySelectorAll('template[shadowrootmode]').forEach(tmp => {\n\t\t\tconst shadow = tmp.parentElement.attachShadow({ mode: tmp.shadowRootMode });\n\t\t\tshadow.append(tmp.content);\n\t\t\ttmp.remove();\n\t\t\tattachShadows(shadow);\n\t\t});\n\t};\n\n\tif (document.readyState === 'loading') {\n\t\tdocument.addEventListener('readystatechange', () => attachShadows(document), { once: true });\n\t} else {\n\t\tattachShadows(document);\n\t}\n}\n\nif (! (HTMLFormElement.prototype.requestSubmit instanceof Function)) {\n\tHTMLFormElement.prototype.requestSubmit = function(submitter) {\n\t\tif (typeof submitter === 'undefined') {\n\t\t\tconst btn = document.createElement('button');\n\t\t\tbtn.type = 'submit';\n\t\t\tbtn.hidden = true;\n\t\t\tthis.append(btn);\n\t\t\tthis.requestSubmit(btn);\n\t\t\tsetTimeout(() => btn.remove(), 100);\n\t\t} else if (! (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement)) {\n\t\t\tthrow new TypeError('HTMLFormElement.requestSubmit: The submitter is not a submit button.');\n\t\t} else if (submitter.type !== 'submit' && ! (submitter instanceof HTMLInputElement && submitter.type === 'image')) {\n\t\t\tthrow new TypeError('HTMLFormElement.requestSubmit: The submitter is not a submit button.');\n\t\t} else if (! this.isSameNode(submitter.form)) {\n\t\t\tthrow new DOMException('HTMLFormElement.requestSubmit: The submitter is not owned by this form.', 'NotFoundError');\n\t\t} else {\n\t\t\tsubmitter.click();\n\t\t}\n\t};\n}\n\nif (! ('loading' in HTMLIFrameElement.prototype)) {\n\tpolyfillGetterSetter(HTMLIFrameElement.prototype, 'loading', {\n\t\tget: function() {\n\t\t\treturn this.getAttribute('loading') || 'auto';\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis.setAttribute('loading', val);\n\t\t}\n\t});\n}\n\nif (! ('credentialless' in HTMLIFrameElement.prototype)) {\n\tpolyfillGetterSetter(HTMLIFrameElement.prototype, 'credentialless', {\n\t\tget: function() {\n\t\t\treturn this.hasAttribute('credentialless');\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis.toggleAttribute('credentialless', val);\n\t\t}\n\t});\n}\n","import { elements as HTMLElements, attributes as HTMLAttributes } from './html.js';\nimport { elements as SVGElements,attributes as SVGAttributes } from './svg.js';\n\nexport const elements = Object.freeze([...HTMLElements, ...SVGElements]);\n\nexport const attributes = Object.freeze(Array.from(new Set([...HTMLAttributes, ...SVGAttributes])));\n\nexport const comments = false;\n\nexport const sanitizer = Object.freeze({ elements, attributes, comments });\n","import { elements as HTMLElements, attributes as HTMLAttributes } from './html.js';\nimport { elements as SVGElements, attributes as SVGAttributes } from './svg.js';\nimport { elements as MathMLElements, attributes as MathMLAttributes } from './mathml.js';\n\nexport const elements = Object.freeze([...HTMLElements, ...SVGElements, ...MathMLElements]);\n\nexport const attributes = Object.freeze(Array.from(new Set([...HTMLAttributes, ...SVGAttributes, ...MathMLAttributes])));\n\nexport const comments = false;\n\nexport const sanitizer = Object.freeze({ elements, attributes, comments });\n","/**\n * @see https://github.com/tc39/proposal-set-methods\n */\n'use strict';\n\nconst TYPE_ERR_MSG = 'Expected a set-like object.';\nconst SET_METHODS = ['has', 'keys'];\nconst SET_PROPS = ['size'];\nconst isSet = thing => thing instanceof Set;\nconst isSetLike = thing => isSet(thing) || (\n\ttypeof thing === 'object'\n\t&& thing !== null\n\t&& SET_METHODS.every(method => thing[method] instanceof Function)\n\t&& SET_PROPS.every(prop => prop in thing)\n);\n\nif (! (Set.prototype.intersection instanceof Function)) {\n\tSet.prototype.intersection = function intersection(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\treturn new Set([...this].filter(item => set.has(item)));\n\t};\n}\n\nif (! (Set.prototype.difference instanceof Function)) {\n\tSet.prototype.difference = function difference(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\treturn new Set([...this].filter(item => ! set.has(item)));\n\t};\n}\n\nif (! (Set.prototype.union instanceof Function)) {\n\tSet.prototype.union = function union(set) {\n\t\treturn new Set([...this, ...set]);\n\t};\n}\n\nif (! (Set.prototype.isSubsetOf instanceof Function)) {\n\tSet.prototype.isSubsetOf = function isSubsetOf(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\treturn [...this].every(item => set.has(item));\n\t};\n}\n\nif (! (Set.prototype.isSupersetOf instanceof Function)) {\n\tSet.prototype.isSupersetOf = function isSupersetOf(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\t// @TODO Handle when `set` is set-like\n\t\treturn isSet(set)\n\t\t\t? set.isSubsetOf(this)\n\t\t\t: new Set(set.keys()).isSubsetOf(this);\n\t};\n}\n\nif (! (Set.prototype.symmetricDifference instanceof Function)) {\n\tSet.prototype.symmetricDifference = function symmetricDifference(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\t// @TODO Handle when `set` is set-like\n\t\treturn isSet(set)\n\t\t\t? new Set([...this.difference(set), ...set.difference(this)])\n\t\t\t: new Set([...this.difference(set), ...new Set(set.keys()).difference(this)]);\n\t};\n}\n\nif (! (Set.prototype.isDisjointFrom instanceof Function)) {\n\tSet.prototype.isDisjointFrom = function isDisjointFrom(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\treturn new Set([...this, ...set]).size === this.size + set.size;\n\t};\n}\n","(function() {\n\t'use strict';\n\n\tif (! (WeakMap.prototype.emplace instanceof Function)) {\n\t\tWeakMap.prototype.emplace = function emplace(key, { insert, update } = {}) {\n\t\t\tconst has = this.has(key);\n\n\t\t\tif (has && update instanceof Function) {\n\t\t\t\tconst existing = this.get(key);\n\t\t\t\tconst value = update.call(this, existing, key, this);\n\n\t\t\t\tif (value !== existing) {\n\t\t\t\t\tthis.set(key, existing);\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t} else if (has) {\n\t\t\t\treturn this.get(key);\n\t\t\t} else if (insert instanceof Function) {\n\t\t\t\tconst value = insert.call(this, key, this);\n\t\t\t\tthis.set(key, value);\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\tthrow new Error('Key is not found and no `insert()` given');\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif ('screen' in globalThis && ! (globalThis.getScreenDetails instanceof Function)) {\n\t\tclass ScreenDetailed extends EventTarget {\n\t\t\tget availHeight() {\n\t\t\t\treturn screen.availHeight;\n\t\t\t}\n\n\t\t\tget availLeft() {\n\t\t\t\treturn screen.availLeft;\n\t\t\t}\n\n\t\t\tget availTop() {\n\t\t\t\treturn screen.availTop;\n\t\t\t}\n\n\t\t\tget availWidth() {\n\t\t\t\treturn screen.availWidth;\n\t\t\t}\n\n\t\t\tget colorDepth() {\n\t\t\t\treturn screen.colorDepth;\n\t\t\t}\n\n\t\t\tget devicePixelRatio() {\n\t\t\t\treturn globalThis.devicePixelRatio || 1;\n\t\t\t}\n\n\t\t\tget height() {\n\t\t\t\treturn screen.height;\n\t\t\t}\n\n\t\t\tget isExtended() {\n\t\t\t\treturn screen.isExtended;\n\t\t\t}\n\n\t\t\tget isInternal() {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tget isPrimary() {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tget label() {\n\t\t\t\treturn 'Unknown';\n\t\t\t}\n\n\t\t\tget orientation() {\n\t\t\t\treturn screen.orientation;\n\t\t\t}\n\n\t\t\tget pixelDepth() {\n\t\t\t\treturn screen.pixelDepth;\n\t\t\t}\n\n\t\t\tget top() {\n\t\t\t\treturn screen.top;\n\t\t\t}\n\n\t\t\tget width() {\n\t\t\t\treturn screen.width;\n\t\t\t}\n\t\t}\n\n\t\tclass ScreenDetails extends EventTarget {\n\t\t\tget currentScreen() {\n\t\t\t\treturn new ScreenDetailed();\n\t\t\t}\n\n\t\t\tget screens() {\n\t\t\t\treturn [this.currentScreen];\n\t\t\t}\n\t\t}\n\n\t\tObject.defineProperty(Screen.prototype, 'isExtended', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => false,\n\t\t});\n\n\t\tglobalThis.getScreenDetails = async () => new ScreenDetails();\n\t}\n})();\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const PRIORITIES = {\n\tblocking: 'user-blocking',\n\tvisible: 'user-visible',\n\tbackground: 'background',\n};\n\nasync function delayCallback(cb, { delay = 0, signal } = {}) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (signal instanceof AbortSignal && signal.aborted) {\n\t\t\treject(signal.reason);\n\t\t} else {\n\t\t\tconst controller = new AbortController();\n\t\t\tconst handle = setTimeout(() => {\n\t\t\t\tresolve(cb());\n\t\t\t\tcontroller.abort();\n\t\t\t}, delay);\n\n\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\treject(target.reason);\n\t\t\t\t\tclearTimeout(handle);\n\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t}\n\t\t}\n\t});\n}\n\nexport class Scheduler {\n\tasync postTask(callback, {\n\t\tpriority = PRIORITIES.visible,\n\t\tdelay,\n\t\tsignal,\n\t} = {}) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (signal instanceof AbortSignal && signal.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t} else {\n\t\t\t\tswitch(priority) {\n\t\t\t\t\tcase PRIORITIES.blocking:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(callback, { delay, signal })\n\t\t\t\t\t\t\t\t.then(resolve, reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve((async () => await callback())());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PRIORITIES.visible:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(() => requestAnimationFrame(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}), { delay, signal }).catch(reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\t\tconst handle = requestAnimationFrame(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\t\t\t\tcancelAnimationFrame(handle);\n\t\t\t\t\t\t\t\t\treject(target.reason);\n\t\t\t\t\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PRIORITIES.background:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(() => requestIdleCallback(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}), { delay, signal }).catch(reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\t\tconst handle = requestIdleCallback(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\t\t\t\tcancelIdleCallback(handle);\n\t\t\t\t\t\t\t\t\treject(target.reason);\n\t\t\t\t\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new TypeError(`Scheduler.postTask: '${priority}' (value of 'priority' member of SchedulerPostTaskOptions) is not a valid value for enumeration TaskPriority.`);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Scheduler } from './assets/Scheduler.js';\n\nif (! ('scheduler' in globalThis)) {\n\tglobalThis.scheduler = new Scheduler();\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals\n * @see https://caniuse.com/mdn-api_formdataevent\n * @see https://caniuse.com/mdn-api_elementinternals\n * @todo: Figure out how to cleanup MutationObserver for removed inputs\n * @todo: Can I add a MutationObserver to automatically set/unset forms,\n * even in `ShadowRoot`s?\n *\n * This polyfill needs a bit of extra work from the custom element to work.\n * Check if `internals._polyfilled` to see if extra steps are necessary:\n * - Call `internals._associateForm(form, this)` in `connectedCallback()`\n * - Call again with `(null, this)` in `disconnectedCallback()` to disassociate\n *\n * Additionally, if `internals.states._polyfilled`\n * - Use `._state--*` in addition to `:--*` to query element internals states\n * - This includes `:disabled` -> `._state--disabled` & `:invalid` -> `._state--invalid`\n */\nimport { aria } from './aom.js';\n\nconst symbols = {\n\tkey: Symbol('key'),\n\tinternals: Symbol('element-internals'),\n\tform: Symbol('form'),\n\tfieldset: Symbol('fieldset'),\n\telement: Symbol('element'),\n\tvalidity: Symbol('validity'),\n\tvalidationMessage: Symbol('validation-message'),\n\tvalue: Symbol('value'),\n\tstate: Symbol('state'),\n\tformController: Symbol('form-controller'),\n\tanchor: Symbol('anchor'),\n\tcustomInputs: Symbol('custom-inputs'),\n};\n\nfunction shimAria(prototype) {\n\tconst enumerable = true;\n\tconst configurable = true;\n\tconst props = Object.fromEntries(Object.keys(aria).map(prop => [prop, {\n\t\tget: function() {\n\t\t\treturn this[symbols.element][prop];\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis[symbols.element][prop] = val;\n\t\t},\n\t\tenumerable, configurable,\n\t}]));\n\n\tObject.defineProperties(prototype, props);\n}\n\nif (! (HTMLElement.prototype.attachInternals instanceof Function) && 'FormDataEvent' in globalThis) {\n\tconst validationObject = {\n\t\tvalueMissing: false, typeMismatch: false, patternMismatch: false, tooLong: false,\n\t\ttooShort: false, rangeUnderflow: false, rangeOverflow: false, stepMismatch: false,\n\t\tbadInput: false, customError: false, valid: true,\n\t};\n\n\tconst hasDisabledFieldset = component => component.hasOwnProperty(symbols.fieldset)\n\t\t&& component[symbols.fieldset] instanceof HTMLFieldSetElement\n\t\t&& component[symbols.fieldset].disabled;\n\n\tconst isFormAssociated = (component) => {\n\t\treturn component instanceof HTMLElement\n\t\t\t&& component.tagName.includes('-')\n\t\t\t&& customElements.get(component.tagName.toLowerCase()).formAssociated;\n\t};\n\n\tconst getFormDataHandler = (component, internals) => {\n\t\treturn function(event) {\n\t\t\tif (! event.target.reportValidity()) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tevent.stopPropagation();\n\t\t\t} else if (internals.willValidate && event.formData instanceof FormData) {\n\t\t\t\tconst value = internals[symbols.value];\n\n\t\t\t\tif (value instanceof FormData) {\n\t\t\t\t\tvalue.entries().forEach(([k, v]) => event.formData.set(k, v));\n\t\t\t\t} else if (component.hasAttribute('name')) {\n\t\t\t\t\tevent.formData.set(component.getAttribute('name'), internals[symbols.value]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t};\n\n\tconst css = (el, rules) => {\n\t\tObject.entries(rules).forEach(([k, v]) => el.style.setProperty(k, v));\n\t};\n\n\tconst findAssociatedForm = (component) => {\n\t\tif (component.hasAttribute('form')) {\n\t\t\treturn document.forms[component.getAttribute('form')] || component.closest('form');\n\t\t} else {\n\t\t\treturn component.closest('form');\n\t\t}\n\t};\n\n\t// To be used in/after `connectedCallback`\n\tconst associateForm = (form, internals, component) => {\n\t\tif (! (form instanceof HTMLFormElement)) {\n\t\t\tif (internals[symbols.formController] instanceof AbortController) {\n\t\t\t\tinternals[symbols.formController].abort();\n\t\t\t}\n\n\t\t\tinternals[symbols.form] = null;\n\t\t\tinternals[symbols.formController] = null;\n\n\t\t\tif (component.hasOwnProperty(symbols.fieldset)) {\n\t\t\t\tconst fieldset = component[symbols.fieldset];\n\n\t\t\t\tif (fieldset.hasOwnProperty(symbols.customInputs)) {\n\t\t\t\t\tfieldset[symbols.customInputs].delete(component);\n\n\t\t\t\t\tif (fieldset[symbols.customInputs.size] === 0) {\n\t\t\t\t\t\tdelete fieldset[symbols.customInputs];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcomponent[symbols.fieldset] = null;\n\t\t\t}\n\t\t} else if (! (component instanceof HTMLElement && component.tagName.includes('-'))) {\n\t\t\tthrow new TypeError('Not a custom element');\n\t\t} else if (! (internals instanceof ElementInternals || internals instanceof globalThis.ElementInternals)) {\n\t\t\tthrow new TypeError('Invalid ElementInternals');\n\t\t} else if (! isFormAssociated(component)) {\n\t\t\tthrow new TypeError(`${component.tagName} is not form associated.`);\n\t\t} else if (! (component.formAssociatedCallback instanceof Function)) {\n\t\t\tthrow new TypeError(`${component.tagName} is missing a formAssociatedCallback method.`);\n\t\t} else {\n\t\t\tconst controller = new AbortController();\n\t\t\tconst fieldset = component.closest('fieldset');\n\n\t\t\tif (fieldset instanceof Element) {\n\t\t\t\tcomponent[symbols.fieldset] = fieldset;\n\t\t\t\tif (! fieldset.hasOwnProperty(symbols.customInputs)) {\n\t\t\t\t\tfieldset[symbols.customInputs] = new Set();\n\t\t\t\t}\n\n\t\t\t\tfieldset[symbols.customInputs].add(component);\n\t\t\t\tobserver.observe(fieldset, observerOpts);\n\t\t\t}\n\n\t\t\tinternals[symbols.form] = form;\n\t\t\tinternals[symbols.formController] = controller;\n\n\t\t\tconst { checkValidity, reportValidity } = form;\n\n\t\t\tform.reportValidity = function() {\n\t\t\t\tif (! reportValidity.call(this)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn internals.reportValidity();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tform.checkValidity = function() {\n\t\t\t\tif (! checkValidity.call(this)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn internals.checkValidity();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tcontroller.signal.addEventListener('abort', () => {\n\t\t\t\tform.reportValidity = reportValidity;\n\t\t\t\tform.checkValidity = checkValidity;\n\t\t\t}, { once: true });\n\n\t\t\tform.addEventListener('formdata', getFormDataHandler(component, internals), { signal: controller.signal });\n\t\t\tform.addEventListener('submit', event => {\n\t\t\t\tif (! event.target.reportValidity()) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t}, { signal: controller.signal });\n\n\t\t\tif (component.formResetCallback instanceof Function) {\n\t\t\t\tform.addEventListener('reset', () => component.formResetCallback(), { signal: controller.signal });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst observer = new MutationObserver((mutations) => {\n\t\tmutations.forEach(({ target, type, attributeName }) => {\n\t\t\tif (type === 'attributes' && attributeName === 'disabled') {\n\t\t\t\tconst disabled = target.hasAttribute('disabled');\n\n\t\t\t\t/**\n\t\t\t\t * Check that target is a valid candiate and not a child of a\n\t\t\t\t * `<fieldset disabled>`, unless they are both being toggled\n\t\t\t\t * together to the same value.\n\t\t\t\t */\n\t\t\t\tif (\n\t\t\t\t\tisFormAssociated(target)\n\t\t\t\t\t&& target.hasOwnProperty(symbols.internals)\n\t\t\t\t\t&& target[symbols.internals].states.has('--disabled') !== disabled\n\t\t\t\t\t&& (\n\t\t\t\t\t\tmutations.length === 1\n\t\t\t\t\t\t\t// target is not a descendant of a `<fieldset disabled>`\n\t\t\t\t\t\t\t? ! hasDisabledFieldset(target)\n\t\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\t// target & `<fieldset>` are being enabled/disabled together\n\t\t\t\t\t\t\t\ttarget.hasAttribute('disabled') === hasDisabledFieldset(target)\n\t\t\t\t\t\t\t\t&& mutations.some((m) =>\n\t\t\t\t\t\t\t\t\tm.target.isSameNode(target[symbols.fieldset])\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconst internals = target[symbols.internals];\n\n\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\tinternals.states.add('--disabled');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinternals.states.delete('--disabled');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (target.formDisabledCallback instanceof Function) {\n\t\t\t\t\t\ttarget.formDisabledCallback(disabled);\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\ttarget.tagName === 'FIELDSET'\n\t\t\t\t\t&& target.hasOwnProperty(symbols.customInputs)\n\t\t\t\t\t&& (\n\t\t\t\t\t\tmutations.length === 1\n\t\t\t\t\t\t|| ! mutations.some(m => target[symbols.customInputs].has(m.target))\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\ttarget[symbols.customInputs].forEach(el => {\n\t\t\t\t\t\tif (el.isConnected && el.hasOwnProperty(symbols.internals)) {\n\t\t\t\t\t\t\t// Do not toggle disabled on elements that are `disabled`\n\t\t\t\t\t\t\tif (! el.hasAttribute('disabled')) {\n\t\t\t\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\t\t\t\tel[symbols.internals].states.add('--disabled');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tel[symbols.internals].states.delete('--disabled');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (el.formDisabledCallback instanceof Function) {\n\t\t\t\t\t\t\t\t\tel.formDisabledCallback(disabled);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttarget[symbols.customInputs].delete(el);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\n\tconst observerOpts = { attributes :true, attributeFilter: ['disabled'] };\n\n\tclass ElementInternals {\n\t\tconstructor(element, key) {\n\t\t\tif (key !== symbols.key) {\n\t\t\t\tthrow new TypeError('Illegal constructor');\n\t\t\t} else if (! (element instanceof HTMLElement)) {\n\t\t\t\tthrow new TypeError('Must be called on an HTMLElement');\n\t\t\t} else if (! element.tagName.includes('-')) {\n\t\t\t\tthrow new DOMException('Cannot attach internals to a built-in element.');\n\t\t\t} else {\n\t\t\t\t// internals.add(this);\n\t\t\t\tconst configurable = true;\n\t\t\t\tconst enumerable = false;\n\t\t\t\tconst writable = true;\n\n\t\t\t\tObject.defineProperties(this, {\n\t\t\t\t\t[symbols.element]: { value: element, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.form]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.fieldset]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.anchor]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.validity]: { value: validationObject, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.validationMessage]: { value: '', configurable, enumerable, writable },\n\t\t\t\t\t[symbols.value]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.state]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.formController]: { value: null, configurable, enumerable, writable },\n\t\t\t\t});\n\n\t\t\t\tif (isFormAssociated(element)) {\n\t\t\t\t\tobserver.observe(element, observerOpts);\n\t\t\t\t}\n\n\t\t\t\tObject.defineProperty(element, symbols.internals, {\n\t\t\t\t\tvalue: this,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t});\n\n\t\t\t\tsetTimeout(() => this.states.add('--element-internals-polyfilled'), 10);\n\t\t\t}\n\t\t}\n\n\t\tget form() {\n\t\t\treturn this[symbols.form];\n\t\t}\n\n\t\tget labels() {\n\t\t\tconst form = this.form;\n\n\t\t\tif (form instanceof HTMLFormElement && this[symbols.element].id.length !== 0) {\n\t\t\t\treturn form.querySelectorAll(`label[for=\"${this[symbols.element].id}\"]`);\n\t\t\t} else {\n\t\t\t\treturn document.createDocumentFragment().childNodes;\n\t\t\t}\n\t\t}\n\n\t\tget _polyfilled() {\n\t\t\treturn true;\n\t\t}\n\n\t\tget shadowRoot() {\n\t\t\tconst el = this[symbols.element];\n\t\t\treturn el.shadowRoot;\n\t\t}\n\n\t\tget validity() {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\treturn this[symbols.validity];\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tget validationMessage() {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\treturn this[symbols.validationMessage] || '';\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tget willValidate() {\n\t\t\tconst element = this[symbols.element];\n\n\t\t\treturn isFormAssociated(element)\n\t\t\t\t&& ! hasDisabledFieldset(element)\n\t\t\t\t&& ! ['disabled', 'readonly'].some(attr => element.hasAttribute(attr));\n\t\t}\n\n\t\tcheckValidity() {\n\t\t\tif (! this.willValidate) {\n\t\t\t\treturn true;\n\t\t\t} else if (! this.validity.valid) {\n\t\t\t\tthis[symbols.element].dispatchEvent(new Event('invalid'));\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst next = this[symbols.element].nextElementSibling;\n\n\t\t\t\tif (next instanceof HTMLElement && next.classList.contains('_element-internals-popup')) {\n\t\t\t\t\tnext.remove();\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treportValidity() {\n\t\t\tif (! this.checkValidity()) {\n\t\t\t\tconst message = this.validationMessage;\n\n\t\t\t\tif (typeof message === 'string' && message.length !== 0) {\n\t\t\t\t\t// this[symbols.element].scrollIntoView({ block: 'start' });\n\t\t\t\t\tconst { bottom, left } = this[symbols.element].getBoundingClientRect();\n\t\t\t\t\tconst el = document.createElement('div');\n\t\t\t\t\tel.textContent = message;\n\n\t\t\t\t\tcss(el, {\n\t\t\t\t\t\t'position': 'fixed',\n\t\t\t\t\t\t'background-color': '#2b2a33',\n\t\t\t\t\t\t'color': '#fafafa',\n\t\t\t\t\t\t'top': `${bottom + 2}px`,\n\t\t\t\t\t\t'left': `${left}px`,\n\t\t\t\t\t\t'z-index': 2147483647,\n\t\t\t\t\t\t'color-scheme': 'light-dark',\n\t\t\t\t\t\t'font-family': 'system-ui, serif',\n\t\t\t\t\t\t'font-size': '18px',\n\t\t\t\t\t\t'display': 'inline-block',\n\t\t\t\t\t\t'padding': '0.6em 0.8em',\n\t\t\t\t\t\t'border': '1px solid #1a1a1a',\n\t\t\t\t\t\t'border-radius': '6px',\n\t\t\t\t\t});\n\n\t\t\t\t\tel.classList.add('_element-internals-popup');\n\n\t\t\t\t\tthis[symbols.element].focus();\n\n\t\t\t\t\tconst next = this[symbols.element].nextElementSibling;\n\n\t\t\t\t\tif (next instanceof Element && next.classList.contains('_element-internals-popup')) {\n\t\t\t\t\t\tnext.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis[symbols.element].insertAdjacentElement('afterend', el);\n\n\t\t\t\t\tif (this[symbols.anchor] instanceof Element) {\n\t\t\t\t\t\tthis[symbols.anchor].focus();\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (el.isConnected) {\n\t\t\t\t\t\t\tel.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 3000);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tsetFormValue(value, state) {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\tthis[symbols.value] = value;\n\t\t\t\tthis[symbols.state] = state;\n\t\t\t} else {\n\t\t\t\tthrow new DOMException('Not form associated');\n\t\t\t}\n\t\t}\n\n\t\tsetValidity({\n\t\t\tvalueMissing = false,\n\t\t\ttypeMismatch = false,\n\t\t\tpatternMismatch = false,\n\t\t\ttooLong = false,\n\t\t\ttooShort = false,\n\t\t\trangeUnderflow = false,\n\t\t\trangeOverflow = false,\n\t\t\tstepMismatch = false,\n\t\t\tbadInput = false,\n\t\t\tcustomError = false,\n\t\t}, message = '', anchor) {\n\t\t\tif (! isFormAssociated(this[symbols.element])) {\n\t\t\t\tthrow new DOMException('Not form associated');\n\t\t\t} else if (\n\t\t\t\t(typeof message !== 'string' || message.length === 0)\n\t\t\t\t&& (\n\t\t\t\t\tvalueMissing || typeMismatch || patternMismatch || tooLong || tooShort\n\t\t\t\t\t|| rangeUnderflow || rangeOverflow || stepMismatch || badInput || customError\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new DOMException('Message required if any flags are true.');\n\t\t\t} else {\n\t\t\t\tconst valid = [\n\t\t\t\t\tvalueMissing, typeMismatch, patternMismatch, tooLong, tooShort,\n\t\t\t\t\trangeUnderflow, rangeOverflow, stepMismatch, badInput, customError,\n\t\t\t\t].every(val => val === false);\n\n\t\t\t\tthis[symbols.validity] = {\n\t\t\t\t\tvalueMissing, typeMismatch, patternMismatch, tooLong, tooShort,\n\t\t\t\t\trangeUnderflow, rangeOverflow, stepMismatch, badInput, customError,\n\t\t\t\t\tvalid,\n\t\t\t\t};\n\n\t\t\t\tthis[symbols.validationMessage] = message;\n\t\t\t\tthis[symbols.anchor] = anchor;\n\n\t\t\t\tif (! valid) {\n\t\t\t\t\tthis.states.add('--invalid');\n\t\t\t\t\tthis.states.delete('--valid');\n\t\t\t\t\tthis[symbols.element].dispatchEvent(new Event('invalid'));\n\t\t\t\t} else {\n\t\t\t\t\tthis.states.delete('--invalid');\n\t\t\t\t\tthis.states.add('--valid');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t_associateForm(form, component) {\n\t\t\tassociateForm(form, this, component);\n\t\t}\n\n\t\t_findAssociatedForm(component) {\n\t\t\treturn findAssociatedForm(component);\n\t\t}\n\t}\n\n\tHTMLElement.prototype.attachInternals = function attachInternals() {\n\t\tif (this.hasOwnProperty(symbols.internals)) {\n\t\t\tthrow new DOMException('Invalid operation');\n\t\t} else if (! this.tagName.includes('-')) {\n\t\t\tthrow new DOMException('Cannot call attachInternals on built-in elements.');\n\t\t} else {\n\t\t\treturn new ElementInternals(this, symbols.key);\n\t\t}\n\t};\n\n\tglobalThis.ElementInternals = ElementInternals;\n}\n\n/**\n * Add `states` to `ElementInternals`\n * Uses `._state--foo` instead of `:--foo` though\n * Requires Iterator Helpers (`./iterator.js`)\n */\nif ('ElementInternals' in globalThis && ! ('CustomStateSet' in globalThis)) {\n\tconst prefix = '_state';\n\tconst protectedData = new WeakMap();\n\tconst getCName = state => {\n\t\tif (! state.toString().startsWith('--')) {\n\t\t\tthrow new DOMException(`Failed to execute 'add' on 'CustomStateSet': The specified value '${state}' must start with '--'.`);\n\t\t} else {\n\t\t\treturn `${prefix}${state}`;\n\t\t}\n\t};\n\n\tconst {\n\t\tvalue, writable, configurable, enumerable,\n\t} = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'attachInternals');\n\n\tclass CustomStateSet {\n\t\tconstructor(el, key) {\n\t\t\tif (key !== symbols.key) {\n\t\t\t\tthrow new TypeError('Illegal Constructor');\n\t\t\t} else if (! (el instanceof HTMLElement)) {\n\t\t\t\tthrow new TypeError('el must be an HTMLElement');\n\t\t\t} else {\n\t\t\t\tprotectedData.set(this, el);\n\t\t\t\tthis.add('--custom-states-polyfilled');\n\t\t\t}\n\t\t}\n\n\t\tget _polyfilled() {\n\t\t\treturn true;\n\t\t}\n\n\t\tget size() {\n\t\t\treturn [...this.values()].length;\n\t\t}\n\n\t\tadd(state) {\n\t\t\tprotectedData.get(this).classList.add(getCName(state));\n\t\t}\n\n\t\thas(state) {\n\t\t\treturn protectedData.get(this).classList.contains(getCName(state));\n\t\t}\n\n\t\tdelete(state) {\n\t\t\tconst c = getCName(state);\n\n\t\t\tif (protectedData.get(this).classList.contains(c)) {\n\t\t\t\tprotectedData.get(this).classList.remove(c);\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tclear() {\n\t\t\tthis.values().forEach(state => this.delete(state));\n\t\t}\n\n\t\tkeys() {\n\t\t\treturn this.values();\n\t\t}\n\n\t\tvalues() {\n\t\t\tconst states = protectedData.get(this).classList.values()\n\t\t\t\t.filter(c => c.startsWith(`${prefix}--`));\n\n\t\t\treturn states.map(c => c.substr(prefix.length));\n\t\t}\n\n\t\tentries() {\n\t\t\treturn this.values().map(c => [c, c]);\n\t\t}\n\n\t\tforEach(callbackFn, thisArg) {\n\t\t\tthis.values().forEach(state => callbackFn.call(thisArg || this, state, state, this));\n\t\t}\n\n\t\t[Symbol.toStringTag]() {\n\t\t\treturn 'CustomStateSet';\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values();\n\t\t}\n\t}\n\n\tObject.defineProperty(HTMLElement.prototype, 'attachInternals', {\n\t\tvalue: function() {\n\t\t\tconst internals = value.call(this);\n\n\t\t\tObject.defineProperty(internals, symbols.element, {\n\t\t\t\tvalue: this,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t});\n\n\t\t\tObject.defineProperty(internals, 'states', {\n\t\t\t\tvalue: new CustomStateSet(this, symbols.key),\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumberable: true,\n\t\t\t});\n\n\t\t\tif (Object.is(internals.shadowRoot, null) && ! Object.is(this.shadowRoot, null)) {\n\t\t\t\tObject.defineProperty(internals, 'shadowRoot', {\n\t\t\t\t\tvalue: this.shadowRoot,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn internals;\n\t\t},\n\t\twritable, configurable, enumerable,\n\t});\n\n\tglobalThis.CustomStateSet = CustomStateSet;\n\tshimAria(ElementInternals.prototype);\n}\n","if (! (globalThis.Record instanceof Function)) {\n\t/* eslint-disable no-inner-declarations */\n\tfunction Record(obj) {\n\t\tif (new.target === Record) {\n\t\t\tthrow new TypeError('Record is not a constructor');\n\t\t}\n\n\t\tconst record = Object.create(Record.prototype);\n\t\tObject.defineProperties(record, Object.fromEntries(Object.entries(obj).map(([key, value]) => [\n\t\t\tkey, {\n\t\t\t\t'enumerable': true,\n\t\t\t\t'configurable': false,\n\t\t\t\t'writable': false,\n\t\t\t\t'value': value,\n\t\t\t}\n\t\t])));\n\n\t\tObject.freeze(record);\n\t\treturn record;\n\t}\n\n\tRecord.prototype.constructor = Record;\n\tObject.defineProperty(Record.prototype, Symbol.toStringTag, {\n\t\tvalue: 'Record',\n\t\tenumerable: true,\n\t\tconfigurable: false,\n\t\twritable: false,\n\t});\n\n\tRecord.fromEntries = function fromEntries(entries) {\n\t\treturn Record(Object.fromEntries(entries));\n\t};\n\n\tglobalThis.Record = Record;\n}\n","import { polyfillMethod } from './utils.js';\n\npolyfillMethod(Response, 'json', (data, { status = 200, statusText = '', headers = new Headers() } = {}) => {\n\tif (! (headers instanceof Headers)) {\n\t\treturn Response.json(data, { status, statusText, headers: new Headers(headers) });\n\t} else {\n\t\theaders.set('Content-Type', 'application/json');\n\t\treturn new Response(JSON.stringify(data), { status, statusText, headers });\n\t}\n});\n\npolyfillMethod(Response, 'redirect', (url, status = 302) => {\n\treturn new Response('', {\n\t\tstatus,\n\t\theaders: new Headers({ Location: url }),\n\t});\n});\n","if (! (globalThis.Tuple instanceof Function)) {\n\t/* eslint-disable no-inner-declarations */\n\n\t/**\n\t * Creates an unfrozen Tuple, such as for `Tuple.of()`\n\t */\n\tconst createTuple = items => {\n\t\tconst tuple = Array.apply(Object.create(Tuple.prototype), items);\n\t\tObject.setPrototypeOf(tuple, Tuple.prototype);\n\t\treturn tuple;\n\t};\n\n\tfunction Tuple(...items) {\n\t\tif (new.target === Tuple) {\n\t\t\tthrow new TypeError('Tuple is not a constructor');\n\t\t}\n\n\t\tconst tuple = createTuple(items);\n\t\tObject.freeze(tuple);\n\t\treturn tuple;\n\t}\n\n\tTuple.prototype.forEach = function forEach(callbackFn, thisArg) {\n\t\tArray.prototype.forEach.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.join = function join(separator = ',') {\n\t\treturn Array.prototype.join.call(this, separator);\n\t};\n\n\tTuple.prototype.concat = function concat(...values) {\n\t\treturn Tuple(...this, ...values);\n\t};\n\n\tTuple.prototype.slice = function slice(start, end) {\n\t\treturn Tuple.from(Array.prototype.slice.call(this, start, end));\n\t};\n\n\tTuple.prototype.indexOf = function indexOf(searchElement, fromIndex) {\n\t\treturn Array.prototype.indexOf.call(this, searchElement, fromIndex);\n\t};\n\n\tTuple.prototype.lastIndexOf = function lastIndexOf(searchElement, fromIndex) {\n\t\treturn Array.prototype.lastIndexOf.call(this, searchElement, fromIndex);\n\t};\n\n\tTuple.prototype.findIndex = function findIndex(callbackFn, thisArg) {\n\t\treturn Array.prototype.findIndex.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.find = function find(callbackFn, thisArg) {\n\t\treturn Array.prototype.find.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.findLast = function findLast(callbackFn, thisArg) {\n\t\treturn Array.prototype.findLast.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.findLastIndex = function findLastIndex(callbackFn, thisArg) {\n\t\treturn Array.prototype.findLastIndex.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.every = function every(callbackFn, thisArg) {\n\t\treturn Array.prototype.every.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.some = function some(callbackFn, thisArg) {\n\t\treturn Array.prototype.some.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.includes = function includes(searchElement, fromIndex) {\n\t\treturn Array.prototype.includes.call(this, searchElement, fromIndex);\n\t};\n\n\tTuple.prototype.map = function map(callbackFn, thisArg) {\n\t\treturn Tuple.from(Array.prototype.map.call(this, callbackFn, thisArg));\n\t};\n\n\tTuple.prototype.filter = function filter(callbackFn, thisArg) {\n\t\treturn Tuple.from(Array.prototype.filter.call(this, callbackFn, thisArg));\n\t};\n\n\tTuple.prototype.flat = function flat(depth) {\n\t\treturn Tuple.from(Array.prototype.flat.call(this, depth));\n\t};\n\n\tTuple.prototype.flatMap = function flatMap(callbackFn, thisArg) {\n\t\treturn Tuple.from(Array.prototype.flatMap.call(this, callbackFn, thisArg));\n\t};\n\n\tTuple.prototype.at = function at(index) {\n\t\treturn Array.prototype.at.call(this, index);\n\t};\n\n\tTuple.prototype.reduce = function reduce(callbackFn, initialValue) {\n\t\treturn Tuple.from(Array.prototype.reduce.call(this, callbackFn, initialValue));\n\t};\n\n\tTuple.prototype.reduceRight = function reduceRight(callbackFn, initialValue) {\n\t\treturn Tuple.from(Array.prototype.reduceRight.call(this, callbackFn, initialValue));\n\t};\n\n\tTuple.prototype.toSorted = function toSorted(toStringTag) {\n\t\treturn Tuple.from(Array.prototype.toSorted.call(this, toStringTag));\n\t};\n\n\tTuple.prototype.toSpliced = function toSpliced(start, deleteCount, ...items) {\n\t\treturn Tuple.from(Array.prototype.toSpliced.call(this, start, deleteCount, ...items));\n\t};\n\n\tTuple.prototype.toReversed = function toReversed() {\n\t\treturn Tuple.from(Array.prototype.toReversed.apply(this));\n\t};\n\n\tTuple.prototype.with = function(index, value) {\n\t\treturn Tuple.from(Array.prototype.with.call(this, index, value));\n\t};\n\n\tTuple.prototype.toLocaleString = function toLocaleString(locales, options) {\n\t\treturn Array.prototype.toLocaleString.call(this, locales, options);\n\t};\n\n\tTuple.prototype.toJSON = function toJSON() {\n\t\treturn [...this];\n\t};\n\n\tTuple.prototype.keys = function keys() {\n\t\treturn Array.prototype.keys.apply(this);\n\t};\n\n\tTuple.prototype.values = function values(){\n\t\treturn Array.prototype.values.apply(this);\n\t};\n\n\tTuple.prototype.entries = function entries(){\n\t\treturn Array.prototype.entries.apply(this);\n\t};\n\n\tTuple.prototype[Symbol.iterator] = function() {\n\t\treturn Array.prototype[Symbol.iterator].apply(this);\n\t};\n\n\tTuple.from = function from(items, mapFn, thisArg) {\n\t\tconst tuple = createTuple([]);\n\t\tArray.prototype.push.apply(tuple, Array.from(items, mapFn, thisArg));\n\t\tObject.freeze(tuple);\n\t\treturn tuple;\n\t};\n\n\tTuple.of = function(...items) {\n\t\treturn Tuple.from(items);\n\t};\n\n\tObject.defineProperties(Tuple.prototype, {\n\t\t'length': {\n\t\t\tget: function() {\n\t\t\t\treturn Object.getOwnPropertyDescriptor(Array.prototype, 'length').get.apply(this);\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t},\n\t\t'lastItem': {\n\t\t\tget: function() {\n\t\t\t\treturn this[this.lastIndex];\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t},\n\t\t'lastIndex': {\n\t\t\tget: function() {\n\t\t\t\treturn Object.getOwnPropertyDescriptor(Array.prototype, 'lastIndex').get.apply(this);\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t},\n\t\t[Symbol.toStringTag]: {\n\t\t\tvalue: 'Tuple',\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\twritable: false,\n\t\t},\n\t});\n\n\tglobalThis.Tuple = Tuple;\n}\n","if (! (JSON.parseImmutable instanceof Function)) {\n\t/* eslint-disable no-inner-declarations */\n\tfunction getImmutable(thing) {\n\t\tswitch (typeof thing) {\n\t\t\tcase 'object':\n\t\t\t\tif (thing === null) {\n\t\t\t\t\treturn null;\n\t\t\t\t} else if (Array.isArray(thing)) {\n\t\t\t\t\treturn Tuple.from(thing.map(item => getImmutable(item)));\n\t\t\t\t}\n\t\t\t\treturn Record.fromEntries(\n\t\t\t\t\tObject.entries(thing).map(([key, val]) => [key, getImmutable(val)])\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn thing;\n\t\t}\n\t}\n\n\tJSON.parseImmutable = function parseImmutable(str) {\n\t\treturn JSON.parse(str, (_, value) => getImmutable(value));\n\t};\n}\n"],"names":["globalThis","window","Object","defineProperty","Window","prototype","enumerable","writable","configurable","value","global","self","this","crypto","msCrypto","Notification","notifications","webkitNotifications","oNotifications","msNotifications","navigator","doNotTrack","msDoNotTrack","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","document","hidden","webkitHidden","msHidden","mozHidden","visibilityState","webkitVisibilityState","msVisibilityState","mozVisibilityState","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","Document","exitFullscreen","mozCancelFullScreen","webkitCancelFullScreen","msCancelFullScreen","HTMLElement","requestFullscreen","requestFullScreen","mozRequestFullScreen","webkitRequestFullScreen","get","Element","groupBy","Function","items","callbackFn","Array","from","reduce","groups","element","index","key","call","hasOwnProperty","push","Map","emplace","insert","update","has","existing","set","Error","map","SHIM_TARGETS","String","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","flat","depth","result","Math","min","Number","MAX_SAFE_INTEGER","max","flattenFn","item","isArray","forEach","i","isNaN","flatMap","cb","thisArg","findLast","callback","found","arr","length","lastIndex","val","findLastIndex","at","n","trunc","C","polyfillMethod","parent","name","polyfillGetterSetter","group","console","warn","groupToMap","groupByToMap","fromAsync","async","mapFn","equals","every","is","uniqueBy","arg","Set","filter","obj","includes","args","apply","err","TypeError","toReversed","reverse","toSorted","cmpFn","sort","toSpliced","start","deleteCount","cpy","splice","with","isTemplateObject","target","raw","isFrozen","toHex","toString","padStart","join","toBase64","alphabet","btoa","fromCodePoint","replaceAll","fromHex","str","SyntaxError","Iterator","range","step","parseInt","substring","fromBase64","lastChunkHandling","lastChunkLength","TextEncoder","encode","atob","padEnd","slice","Symbol","toStringTag","iterator","once","funcs","WeakMap","constructor","retVal","catch","delete","URL","base","end","supported","IteratorPrototype","getPrototypeOf","proto","setPrototypeOf","array","option","inclusive","RangeError","next","ret","done","take","limit","iter","drop","toArray","mapper","cur","getSubIter","sub","initialValue","current","some","find","indexed","chunks","size","isSafeInteger","create","MIN_SAFE_INTEGER","num","EPSILON","sign","x","expm1","exp","hypot","nums","sqrt","sum","cbrt","log10","log","LOG10E","log2","LOG2E","log1p","fround","clamp","constrain","parseFloat","hostnames","HTTPS","protocols","hasSecureScripts","scripts","src","protocol","hostname","baseURI","location","isAsyncFunction","what","protectedData","Lock","mode","startsWith","DOMException","locks","symbols","nativeSupport","request","actuallySupported","Promise","resolve","query","then","checkSupport","callFunction","reject","queueMicrotask","whenReleased","lock","promise","error","queueTask","withResolvers","def","getDeferred","controller","AbortController","pending","getLocks","shouldPend","isPending","keys","getHeldLocks","getPendingLocks","whenNotBlocked","allSettled","l","getLockSignal","signal","executeLock","setPending","finally","requestIdleCallback","abort","LockManager","static","opts","ifAvailable","steal","AbortSignal","aborted","reason","held","alreadyLocked","entries","stealLocks","addEventListener","clientId","errorToEvent","type","message","fileName","filename","lineNumber","lineno","columnNumber","colno","ErrorEvent","polyfilled","dispatchEvent","canShare","title","text","url","files","share","setAppBadge","isInteger","replace","clearAppBadge","Navigator","getInstalledRelatedApps","getGamepads","connection","EventTarget","effectiveType","rtt","NaN","downlink","downlinkMax","Infinity","saveData","onchange","ontypechange","isValidTimeout","timeout","performance","now","timeRemaining","setTimeout","didTimeout","cancelIdleCallback","id","clearTimeout","cancelAnimationFrame","e","onabort","AbortError","super","defineProperties","undefined","event","throwIfAborted","Event","reasons","staticAbort","ms","isFinite","any","signals","AggregateError","errors","reportError","MediaQueryListEvent","media","matches","MediaQueryList","targets","listener","init","mql","addListener","bind","removeEventListener","promises","all","status","race","try","TextEncoder$1","encoding","split","char","code","charCodeAt","floor","encodeInto","ui8arr","encoded","len","read","written","supportedEncodings","TextDecoder","fatal","ignoreBOM","toLowerCase","decode","data","prev","fromCharCode","offset","randomUUID","c","getRandomValues","getAllCookies","cookie","decodeURIComponent","trim","path","expires","domain","sameSite","secure","partitioned","getter","setter","maxAge","Date","encodeURIComponent","toUTCString","CookieStore","cookies","getAll","defaultParams","changed","deleted","cookieStore","Animation","playState","events","getOwnPropertyDescriptors","desc","getHTTPCSP","ok","headers","fetch","href","method","directives","fromEntries","directive","rest","part","getMetaCSP","meta","head","querySelector","HTMLMetaElement","content","fetchCSP","documentElement","dataset","fetchTrustCsp","parseCSP","trustedTypes","policies","allowDuplicates","hasNone","clear","add","allowedPolicies","fromCSP","csp","allowTrustDuplicates","getAllowDuplicates","trustedPolicies","getAllowedPolicies","createPolicy","trustedValue","trustedKey","emptyHTML","emptyScript","policy","for","defaultPolicy","trustedTypesCSP","hasPolicy","getPolicy","getUnsetPolicyException","TrustedType","freeze","valueOf","toJSON","TrustedHTML","TrustedScript","TrustedScriptURL","TrustedTypePolicy","createHTML","createScript","createScriptURL","input","TrustedTypePolicyFactory","getActualCSP","enumberable","isHTML","isScript","isScriptURL","match","getAttributeType","tagName","attribute","elementNs","elementNS","getPropertyType","property","_isPolyfill_","polyfill","adoptedStyleSheets","styleSheets","sheet","ownerNode","classList","contains","sheets","difference","remove","links","link","createElement","createObjectURL","File","rel","disabled","mediaText","cssRules","rule","insertRule","cssText","revokeObjectURL","append","clearCSSRules","deleteRule","ShadowRoot","CSSStyleSheet","NativeStyleSheet","rules","parseHTML","sanitizer","Sanitizer","allowElements","appendMedium","createSheet","crossOrigin","referrerPolicy","replaceSync","aria","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColIndexText","ariaColSpan","ariaCurrent","ariaDisabled","ariaExpanded","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowIndexText","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","HTML","EVENT_ATTRS","normalizeElement","opt","defaultNS","HTMLNS","namespace","attributes","normalizeElementsConfig","elements","normalizeAttr","normalizeAttrsConfig","allowAttributes","normalizeCommentsConfig","comments","allowComments","convertAttrConfig","convertElementConfig","attr","el","concat","globalAttrs","allowCustomElements","allowUnknownMarkup","LINK_ATTRS","ILLEGAL_PROTOCOLS","sanitize","node","config","sanitizerConfig","Node","converted","attributeNS","getConfiguration","convertConfig","sanitizeNode","isAllowedAttr","namespaceURI","localName","canParse","isIllegalURLAttr","nodeType","ELEMENT_NODE","isAllowedElement","sanitizeAttr","sanitizeFragOrDoc","hasChildNodes","childNodes","sanitizeElement","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","COMMENT_NODE","sanitizeComment","ATTRIBUTE_NODE","TEXT_NODE","DOCUMENT_TYPE_NODE","ownerElement","removeChild","removeAttributeNode","child","setHTML","els","attrs","cmnts","tmp","innerHTML","replaceChildren","html","doc","DOMParser","parseFromString","parse","handlePopover","currentTarget","popoverTargetAction","popoverTargetElement","showPopover","hidePopover","togglePopover","HTMLElements","SVGElements","HTMLAttributes","SVGAttributes","MathMLElements","MathMLAttributes","ToggleEvent","newState","oldState","bubbles","isPopoverOpen","getAttribute","body","isSameNode","capture","HTMLButtonElement","getElementById","setAttribute","querySelectorAll","initPopover","HTMLScriptElement","supports","props","prop","removeAttribute","previous","restoreTabIndex","tabIndex","children","setTabIndex","hasAttribute","HTMLImageElement","naturalHeight","complete","load","HTMLTemplateElement","attachShadows","shadow","parentElement","attachShadow","shadowRootMode","readyState","HTMLFormElement","requestSubmit","submitter","btn","HTMLInputElement","form","click","HTMLIFrameElement","toggleAttribute","TYPE_ERR_MSG","SET_METHODS","SET_PROPS","isSet","thing","isSetLike","intersection","union","isSubsetOf","isSupersetOf","symmetricDifference","isDisjointFrom","getScreenDetails","ScreenDetailed","availHeight","screen","availLeft","availTop","availWidth","colorDepth","devicePixelRatio","height","isExtended","isInternal","isPrimary","label","orientation","pixelDepth","top","width","ScreenDetails","currentScreen","screens","Screen","PRIORITIES","delayCallback","delay","handle","Scheduler","priority","scheduler","internals","fieldset","validity","validationMessage","state","formController","anchor","customInputs","attachInternals","validationObject","valueMissing","typeMismatch","patternMismatch","tooLong","tooShort","rangeUnderflow","rangeOverflow","stepMismatch","badInput","customError","valid","hasDisabledFieldset","component","HTMLFieldSetElement","isFormAssociated","customElements","formAssociated","getFormDataHandler","reportValidity","willValidate","formData","FormData","k","v","preventDefault","stopImmediatePropagation","stopPropagation","css","style","setProperty","findAssociatedForm","forms","closest","associateForm","ElementInternals","formAssociatedCallback","observer","observe","observerOpts","checkValidity","formResetCallback","MutationObserver","mutations","attributeName","states","m","formDisabledCallback","isConnected","attributeFilter","labels","createDocumentFragment","_polyfilled","shadowRoot","nextElementSibling","bottom","left","getBoundingClientRect","textContent","position","color","display","padding","border","focus","insertAdjacentElement","setFormValue","setValidity","_associateForm","_findAssociatedForm","prefix","getCName","getOwnPropertyDescriptor","CustomStateSet","values","substr","shimAria","Response","statusText","Headers","JSON","stringify","json","Location","Record","record","Tuple","createTuple","tuple","separator","indexOf","searchElement","fromIndex","lastIndexOf","findIndex","reduceRight","toLocaleString","locales","options","of","lastItem","parseImmutable","getImmutable","_"],"mappings":"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OAAQ,QAAS,SAAU,QAAS,WAAY,SAAU,SAAU,WACpE,WAAY,UAAW,UAAW,SAAU,OAAQ,WAAY,MAChE,SAAU,aAAc,UACvB3a,KAAIyiB,GAAMjB,GAAiBiB,EAAIb,OAEpBC,GAAaxmB,OAAOsf,OAAO,CACvC,OACA,SACA,iBAGA,QACA,QACA,QACA,kBACA,MACA,SACA,UACA,KACA,QAEA,eACA,cAEA,uBACA,WACA,OACA,aACA,WAEA,SACA,cACA,UACA,cACA,cACA,YACA,OACA,UACA,UACA,UACA,OAEA,UACA,QACA,OAEA,WACA,QACA,OACA,UACA,UACA,UAEA,WACA,eACA,wBACA,SACA,cACA,MACA,OACA,WACA,UACA,WACA,UACA,QAEA,YACA,UACA,WACA,0BACA,wBACA,yBACA,WAEA,gBACA,UACA,MAKA,MACA,OAEA,cACA,aACA,iBACA,aAEA,cACA,UACA,SAEA,OACA,OACA,WACA,gBACA,SAGA,aACA,cACA,aACA,iBACA,mBACA,cAGA,YACA,YACA,eACA,eACA,KACA,QACA,UACA,OACA,QAEA,WACA,cACA,aACA,OACA,OACA,UACA,WACA,OACA,MACA,SACA,WACA,eACA,cACA,MACA,YACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,SACA,WAEA,WACA,UACA,aACA,SACA,SACA,OACA,UAEA,UACA,OACA,cACA,cACA,SAEA,gBACA,sBACA,SACA,UACA,SACA,WACA,iBACA,MACA,kBACA,WACA,YACA,MACA,WACA,OACA,OACA,UACA,QACA,UACA,SACA,QACA,SACA,eACA,cACA,YACA,SACA,WACA,iBACA,2BACA,QACA,OACA,QAEA,OAEA,MACA,SACA,UACA,SACA,UACA,QACA,OAEA,UAEA,SACA,OAEA,YAEA,YACA,aACA,OACA,SACA,SACA,QACA,YACA,UAEA,QACA,SACA,kBACA,QACA,QACC3a,KAAIwiB,GAAQR,GAAcQ,KAAOE,OAAOC,KAE7BvE,GAAY/iB,OAAOsf,OAAO,CACtCiI,qBApPkC,EAoPbC,oBAnPY,EAmPQT,qBAAUL,GAC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","x_google_ignoreList":[42,43,44,45,46,47,48,49,51,52]}
1
+ {"version":3,"file":"all.min.js","sources":["globalThis.js","deprefixer.js","object.js","map.js","array.js","utils.js","symbols.js","function.js","url.js","number.js","iterator.js","math.js","secure-context.js","assets/utility.js","assets/Lock.js","assets/LockManager.js","assets/error.js","locks.js","share.js","appBadge.js","navigator.js","performance.js","abort.js","errors.js","match-media.js","promise.js","assets/TextEncoder.js","assets/TextDecoder.js","textEncoder.js","crypto.js","assets/CookieStore.js","animation.js","assets/attributes.js","assets/csp.js","assets/TrustedTypes.js","assets/trust.js","trustedTypes.js","assets/adoptedStylesheets.js","CSSStyleSheet.js","Document.js","ShadowRoot.js","aom.js","node_modules/@aegisjsproject/sanitizer/namespaces.js","node_modules/@aegisjsproject/sanitizer/config-utils.js","node_modules/@aegisjsproject/sanitizer/config/global.js","node_modules/@aegisjsproject/sanitizer/config/html.js","node_modules/@aegisjsproject/sanitizer/sanitize.js","node_modules/@aegisjsproject/sanitizer/polyfill.js","node_modules/@aegisjsproject/sanitizer/config/svg.js","node_modules/@aegisjsproject/sanitizer/config/mathml.js","element.js","node_modules/@aegisjsproject/sanitizer/config/base.js","node_modules/@aegisjsproject/sanitizer/config/complete.js","set.js","weakMap.js","window.js","assets/Scheduler.js","scheduler.js","elementInternals.js","Record.js","response.js","Tuple.js","JSON.js"],"sourcesContent":["(function() {\n\t'use strict';\n\n\tif (typeof globalThis === 'undefined') {\n\t\t/* global global: true */\n\t\tif (typeof window !== 'undefined') {\n\t\t\tObject.defineProperty(Window.prototype, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: window,\n\t\t\t});\n\t\t} else if (typeof global !== 'undefined') {\n\t\t\tObject.defineProperty(global, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: global,\n\t\t\t});\n\t\t} else if (typeof self !== 'undefined') {\n\t\t\tObject.defineProperty(self, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: self,\n\t\t\t});\n\t\t} else {\n\t\t\tObject.defineProperty(this, 'globalThis', {\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: this,\n\t\t\t});\n\t\t}\n\t}\n})();\n","if (! ('crypto' in window) && 'msCrypto' in window) {\n\tglobalThis.crypto = globalThis.msCrypto;\n}\n\nif (!('Notification' in window)) {\n\tglobalThis.Notification = globalThis.notifications || globalThis.webkitNotifications || globalThis.oNotifications || globalThis.msNotifications || false;\n}\n\nif (!('doNotTrack' in navigator)) {\n\tnavigator.doNotTrack = globalThis.doNotTrack || navigator.msDoNotTrack || 'unspecified';\n}\n\nif (!('indexedDB' in window)) {\n\tglobalThis.indexedDB = globalThis.indexedDB || globalThis.mozIndexedDB || globalThis.webkitIndexedDB || globalThis.msIndexedDB || false;\n}\n\nif (!('hidden' in document)) {\n\tdocument.hidden = document.webkitHidden || document.msHidden || document.mozHidden || false;\n}\n\nif (!('visibilityState' in document)) {\n\tdocument.visibilityState = document.webkitVisibilityState || document.msVisibilityState || document.mozVisibilityState || 'visible';\n}\n\nif (!('fullscreenElement' in document)) {\n\tdocument.fullscreenElement = document.mozFullScreenElement || document.webkitFullscreenElement || false;\n}\n\nif (!('requestAnimationFrame' in window)) {\n\tglobalThis.requestAnimationFrame = globalThis.mozRequestAnimationFrame || globalThis.webkitRequestAnimationFrame || globalThis.msRequestAnimationFrame || false;\n}\n\nif (!('exitFullscreen' in Document.prototype)) {\n\tDocument.prototype.exitFullscreen = document.mozCancelFullScreen || document.webkitCancelFullScreen || document.msCancelFullScreen || false;\n}\n\nif (!('requestFullscreen' in HTMLElement.prototype)) {\n\tHTMLElement.prototype.requestFullscreen = HTMLElement.prototype.requestFullScreen || HTMLElement.prototype.mozRequestFullScreen || HTMLElement.prototype.webkitRequestFullScreen || false;\n}\n\nif (!('fullscreen' in Document.prototype)) {\n\tObject.defineProperty(Document.prototype, 'fullscreen', {\n\t\tget:() => document.fullscreenElement instanceof Element,\n\t});\n}\n","if (! (Object.groupBy instanceof Function)) {\n\tObject.groupBy = function(items, callbackFn) {\n\t\treturn Array.from(items).reduce((groups, element, index) => {\n\t\t\tconst key = callbackFn.call(groups, element, index);\n\n\t\t\tif (! groups.hasOwnProperty(key)) {\n\t\t\t\tgroups[key] = [element];\n\t\t\t} else {\n\t\t\t\tgroups[key].push(element);\n\t\t\t}\n\n\t\t\treturn groups;\n\t\t}, {});\n\t};\n}\n","(function() {\n\t'use strict';\n\n\t/**\n\t * @see https://github.com/tc39/proposal-upsert\n\t */\n\n\tif (! (Map.prototype.emplace instanceof Function)) {\n\t\tMap.prototype.emplace = function emplace(key, { insert, update } = {}) {\n\t\t\tconst has = this.has(key);\n\n\t\t\tif (has && update instanceof Function) {\n\t\t\t\tconst existing = this.get(key);\n\t\t\t\tconst value = update.call(this, existing, key, this);\n\n\t\t\t\tif (value !== existing) {\n\t\t\t\t\tthis.set(key, value);\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t} else if (has) {\n\t\t\t\treturn this.get(key);\n\t\t\t} else if (insert instanceof Function) {\n\t\t\t\tconst value = insert.call(this, key, this);\n\t\t\t\tthis.set(key, value);\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\tthrow new Error('Key is not found and no `insert()` given');\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (Map.groupBy instanceof Function)) {\n\t\tMap.groupBy = function groupTo(items, callbackFn) {\n\t\t\treturn Array.from(items).reduce((map, element, index) => {\n\t\t\t\tmap.emplace(callbackFn.call(map, element, index), {\n\t\t\t\t\tinsert: () => [element],\n\t\t\t\t\tupdate: existing => {\n\t\t\t\t\t\texisting.push(element);\n\t\t\t\t\t\treturn existing;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn map;\n\t\t\t}, new Map());\n\t\t};\n\t}\n})();\n","/**\n * @SEE https://github.com/tc39/proposal-relative-indexing-method#polyfill\n * @SEE https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\n */\n\nconst SHIM_TARGETS = [Array, String, globalThis.Int8Array, globalThis.Uint8Array,\n\tglobalThis.Uint8ClampedArray, globalThis.Int16Array, globalThis.Uint16Array,\n\tglobalThis.Int32Array, globalThis.Uint32Array, globalThis.Float32Array,\n\tglobalThis.Float64Array, globalThis.BigInt64Array, globalThis.BigUint64Array,\n];\n\nif (! (Array.prototype.flat instanceof Function)) {\n\tArray.prototype.flat = function(depth = 1) {\n\t\tconst result = [];\n\t\tdepth = Math.min(Number.MAX_SAFE_INTEGER, Math.max(0, depth));\n\n\t\tconst flattenFn = (item, depth) => {\n\t\t\tif (Array.isArray(item) && depth >= 0) {\n\t\t\t\titem.forEach(i => flattenFn(i, depth - 1));\n\t\t\t} else {\n\t\t\t\tresult.push(item);\n\t\t\t}\n\t\t};\n\n\t\tflattenFn(this, Number.isNaN(depth) ? 0 : depth);\n\t\treturn result;\n\t};\n}\n\nif (! (Array.prototype.flatMap instanceof Function)) {\n\tArray.prototype.flatMap = function(cb, thisArg) {\n\t\treturn this.map(cb, thisArg).flat(1);\n\t};\n}\n\nif (! (Array.prototype.findLast instanceof Function)) {\n\tArray.prototype.findLast = function(callback, thisArg) {\n\t\tlet found = undefined;\n\n\t\tthis.forEach((item, index, arr) => {\n\t\t\tif (callback.call(thisArg, item, index, arr)) {\n\t\t\t\tfound = item;\n\t\t\t}\n\t\t}, thisArg);\n\n\t\treturn found;\n\t};\n}\n\nif(! ('lastIndex' in Array.prototype)) {\n\tObject.defineProperty(Array.prototype, 'lastIndex', {\n\t\tenumerable: false,\n\t\tconfigurable: false,\n\t\tget: function() {\n\t\t\treturn Math.max(0, this.length - 1);\n\t\t}\n\t});\n}\n\nif(! ('lastItem' in Array.prototype)) {\n\tObject.defineProperty(Array.prototype, 'lastItem', {\n\t\tenumerable: false,\n\t\tconfigurable: false,\n\t\tget: function() {\n\t\t\treturn this[this.lastIndex];\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis[this.lastIndex] = val;\n\t\t}\n\t});\n}\n\nif (! (Array.prototype.findLastIndex instanceof Function)) {\n\tArray.prototype.findLastIndex = function(callback, thisArg) {\n\t\tlet found = -1;\n\n\t\tthis.forEach((item, index, arr) => {\n\t\t\tif (callback.call(thisArg, item, index, arr)) {\n\t\t\t\tfound = index;\n\t\t\t}\n\t\t}, thisArg);\n\n\t\treturn found;\n\t};\n}\n\nif (! (Array.prototype.at instanceof Function)) {\n\tconst at = function at(n) {\n\t\tn = Math.trunc(n) || 0;\n\t\tif (n < 0) n += this.length;\n\t\tif (n < 0 || n >= this.length) return undefined;\n\t\treturn this[n];\n\t};\n\n\tfor (const C of SHIM_TARGETS) {\n\t\tif (typeof C !== 'undefined') {\n\t\t\tObject.defineProperty(C.prototype, 'at', {\n\t\t\t\tvalue: at,\n\t\t\t\twritable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t}\n\t}\n}\n\n/**\n * @deprecated [moved to `Object.groupBy()`]\n * @see https://github.com/tc39/proposal-array-grouping\n */\nif (! (Array.prototype.group instanceof Function) && Object.groupBy instanceof Function) {\n\tArray.prototype.group = function group(callback) {\n\t\tconsole.warn('`Array.group()` is deprecated. Please use `Object.groupBy()` instead.');\n\t\treturn Object.groupBy(this, callback);\n\t};\n}\n\n/**\n * @deprecated [moved to `Object.groupBy()`]\n */\nif (! (Array.prototype.groupBy instanceof Function) && Object.groupBy instanceof Function) {\n\tArray.prototype.groupBy = function groupBy(callback) {\n\t\tconsole.warn('`Array.goupBy()` is deprecated. Please use `Object.groupBy()` instead.');\n\t\treturn Object.groupBy(this, callback);\n\t};\n}\n\n/**\n * @see https://github.com/tc39/proposal-array-grouping\n * @deprecated [moved to `Map.groupBy()`]\n * @requires `Map.prototype.emplace`\n */\nif (! (Array.prototype.groupToMap instanceof Function) && (Map.groupBy instanceof Function)) {\n\tArray.prototype.groupToMap = function groupToMap(callback) {\n\t\tconsole.warn('`Array.groupToMap()` is deprecated. Please use `Map.groupBy()` instead.');\n\t\treturn Map.groupBy(this, callback);\n\t};\n}\n\n/**\n * @deprecated [moved to `Map.groupBy()`]\n */\nif (Map.groupBy instanceof Function) {\n\tArray.prototype.groupByToMap = function groupByToMap(callback) {\n\t\tconsole.warn('`Array.groupByToMap()` is deprecated. Please use `Map.groupBy()` instead.');\n\t\treturn Map.groupBy(this, callback);\n\t};\n}\n\n/**\n * @see https://github.com/tc39/proposal-array-from-async\n */\nif (! (Array.fromAsync instanceof Function)) {\n\tArray.fromAsync = async function fromAsync(items, mapFn, thisArg = globalThis) {\n\t\tlet arr = [];\n\n\t\tfor await (const item of items) {\n\t\t\tarr.push(await item);\n\t\t}\n\n\t\treturn Array.from(arr, mapFn, thisArg);\n\t};\n}\n\n/**\n * @see https://github.com/tc39/proposal-array-equality/\n */\nif (! (Array.prototype.equals instanceof Function)) {\n\tArray.prototype.equals = function equals(arr) {\n\t\tif (this === arr) {\n\t\t\treturn true;\n\t\t} else if (! Array.isArray(arr)) {\n\t\t\treturn false;\n\t\t} else if (this.length !== arr.length) {\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn this.every((item, i) => {\n\t\t\t\tconst val = arr[i];\n\t\t\t\tif (Array.isArray(item)) {\n\t\t\t\t\treturn Array.isArray(val) && item.equals(val);\n\t\t\t\t} else {\n\t\t\t\t\treturn Object.is(item, val);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n}\n/**\n * @see https://github.com/tc39/proposal-array-unique\n */\nif (! (Array.prototype.uniqueBy instanceof Function)) {\n\tArray.prototype.uniqueBy = function uniqueBy(arg) {\n\t\tif (typeof arg === 'undefined') {\n\t\t\treturn [...new Set(this)];\n\t\t} else if (typeof arg === 'string') {\n\t\t\tconst found = [];\n\n\t\t\treturn this.filter(obj => {\n\t\t\t\tconst key = obj[arg];\n\t\t\t\tif (found.includes(key)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\tfound.push(key);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (arg instanceof Function) {\n\t\t\tconst found = [];\n\n\t\t\treturn this.filter((...args) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst key = arg.apply(this, args);\n\n\t\t\t\t\tif (typeof key !== 'string') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else if (found.includes(key)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfound.push(key);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t} catch(err) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new TypeError('Not a valid argument for uniqueBy');\n\t\t}\n\t};\n}\n\n/**\n * Change Array by copy proposal\n * @Note: Not clear if should use `structedClone` or `[...this]` for copies\n * @see https://github.com/tc39/proposal-change-array-by-copy\n */\nif (! (Array.prototype.toReversed instanceof Function)) {\n\tArray.prototype.toReversed = function toReversed() {\n\t\treturn [...this].reverse();\n\t};\n}\n\nif (! (Array.prototype.toSorted instanceof Function)) {\n\tArray.prototype.toSorted = function toSorted(cmpFn) {\n\t\treturn [...this].sort(cmpFn);\n\t};\n}\n\nif (! (Array.prototype.toSpliced instanceof Function)) {\n\tArray.prototype.toSpliced = function toSpliced(start, deleteCount, ...items) {\n\t\tconst cpy = [...this];\n\t\tcpy.splice(start, deleteCount, ...items);\n\t\treturn cpy;\n\t};\n}\n\nif (! (Array.prototype.with instanceof Function)) {\n\tArray.prototype.with = function (index, value) {\n\t\tconst cpy = [...this];\n\t\tcpy[index] = value;\n\t\treturn cpy;\n\t};\n}\n\nif (! (Array.isTemplateObject instanceof Function)) {\n\tArray.isTemplateObject = function(target) {\n\t\tif (! (\n\t\t\tArray.isArray(target) && Array.isArray(target.raw)\n\t\t\t&& Object.isFrozen(target) && Object.isFrozen(target.raw)\n\t\t)) {\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn target.length !== 0 && target.length === target.raw.length;\n\t\t}\n\t};\n}\n\n/**\n * @see https://github.com/tc39/proposal-arraybuffer-base64\n */\nif (! (Uint8Array.prototype.toHex instanceof Function)) {\n\tUint8Array.prototype.toHex = function toHex() {\n\t\treturn Array.from(this).map(n => n.toString(16).padStart('0', 2)).join('');\n\t};\n}\n\nif (! (Uint8Array.prototype.toBase64 instanceof Function)) {\n\tUint8Array.prototype.toBase64 = function toBase64({ alphabet = 'base64' } = {}) {\n\t\tif (alphabet === 'base64') {\n\t\t\t// @todo Figure out encoding specifics\n\t\t\treturn btoa(String.fromCodePoint(...this));\n\t\t\t// return btoa(new TextDecoder().decode(this));\n\t\t} else if (alphabet === 'base64url') {\n\t\t\treturn this.toBase64({ alphabet: 'base64' }).replaceAll('+', '-').replaceAll('/', '_');\n\t\t} else {\n\t\t\tthrow new TypeError('expected alphabet to be either \"base64\" or \"base64url');\n\t\t}\n\t};\n}\n\nif (! (Uint8Array.fromHex instanceof Function)) {\n\tUint8Array.fromHex = function fromHex(str) {\n\t\tif (typeof str !== 'string') {\n\t\t\tthrow new TypeError('expected input to be a string');\n\t\t} else if (! (str.length & 1) === 0) {\n\t\t\tthrow new SyntaxError('string should be an even number of characters');\n\t\t} else {\n\t\t\treturn Uint8Array.from(\n\t\t\t\tglobalThis.Iterator.range(0, str.length, { step: 2 }),\n\t\t\t\ti => parseInt(str.substring(i, i + 2), 16)\n\t\t\t);\n\t\t}\n\t};\n}\n\nif (! (Uint8Array.fromBase64 instanceof Function)) {\n\tUint8Array.fromBase64 = function fromBase64(str, {\n\t\talphabet = 'base64',\n\t\tlastChunkHandling = 'loose',\n\t} = {}) {\n\t\tif (typeof str !== 'string') {\n\t\t\tthrow new TypeError('expected input to be a string');\n\t\t} else if (! ['base64', 'base64url'].includes(alphabet)) {\n\t\t\tthrow new TypeError('expected alphabet to be either \"base64\" or \"base64url');\n\t\t} else if (! ['loose', 'strict', 'stop-before-partial'].includes(lastChunkHandling)) {\n\t\t\tthrow new TypeError(`Invalid \\`lastChunkHandling\\`: \"${lastChunkHandling}\".`);\n\t\t} else if (alphabet === 'base64') {\n\t\t\tconst lastChunkLength = str.length % 4;\n\n\t\t\tif (lastChunkLength === 1) {\n\t\t\t\tthrow new TypeError('Invalid string length.');\n\t\t\t} else if (lastChunkLength !== 0) {\n\t\t\t\tswitch(lastChunkHandling) {\n\t\t\t\t\tcase 'strict':\n\t\t\t\t\t\tthrow new SyntaxError('Missing padding.');\n\n\t\t\t\t\tcase 'loose':\n\t\t\t\t\t\treturn Uint8Array.fromBase64(str.padEnd(str.length + (4 - lastChunkLength), '='), {\n\t\t\t\t\t\t\talphabet: 'base64',\n\t\t\t\t\t\t\tlastChunkHandling: 'strict',\n\t\t\t\t\t\t});\n\n\t\t\t\t\tcase 'stop-before-partial':\n\t\t\t\t\t\treturn Uint8Array.fromBase64(str.slice(0, str.length - lastChunkLength), {\n\t\t\t\t\t\t\talphabet: 'base64',\n\t\t\t\t\t\t\tlastChunkHandling: 'strict',\n\t\t\t\t\t\t});\n\n\t\t\t\t\t// Already checked for valid `lastChunkHandling`\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn new TextEncoder().encode(atob(str));\n\t\t\t}\n\t\t} else {\n\t\t\treturn Uint8Array.fromBase64(\n\t\t\t\tstr.replaceAll('-', '+').replaceAll('_', '/'),\n\t\t\t\t{ alphabet: 'base64', }\n\t\t\t);\n\t\t}\n\t};\n}\n\n// @todo Implement Uint8Array.fromBase64Into & Uint8Array.fromHexInto\n// if (! (Uint8Array.fromBase64Into instanceof Function)) {\n// \tUint8Array.fromBase64Into = function fromBase64Into(str, target) {\n// \t\tconst { read, written } = new TextEncoder().encodeInto(atob(str), target);\n// \t\treturn { read, written, target };\n// \t};\n// }\n","export function polyfillMethod(parent, name, value, {\n\twritable = true,\n\tenumerable = true,\n\tconfigurable = true,\n} = {}) {\n\tif (! (parent[name] instanceof Function)) {\n\t\tObject.defineProperty(parent, name, { value, writable, enumerable, configurable });\n\t}\n}\n\nexport function polyfillGetterSetter(parent, name, {\n\tget,\n\tset,\n\tenumerable = true,\n\tconfigurable = true,\n} = {}) {\n\tif (! parent.hasOwnProperty(name)) {\n\t\tObject.defineProperty(parent, name, { get, set, enumerable, configurable });\n\t}\n}\n\nexport function overwriteMethod(parent, name, func) {\n\tconst { value, enumerable, configurable, writable } = Object.getOwnPropertyDescriptor(parent, name);\n\tconst newMethod = func(value);\n\n\tif (! (newMethod instanceof Function)) {\n\t\tthrow new TypeError(`Error overwriting ${name}. The func MUST be a function that accepts the original as an argument and return a function.`);\n\t} else {\n\t\tObject.defineProperty(parent, name, { value: newMethod, enumerable, configurable, writable });\n\t}\n}\n","if ('Symbol' in globalThis) {\n\tif (typeof Symbol.toStringTag === 'undefined') {\n\t\tSymbol.toStringTag = Symbol('Symbol.toStringTag');\n\t}\n\n\tif (typeof Symbol.iterator === 'undefined') {\n\t\tSymbol.iterator = Symbol('Symbol.iterator');\n\t}\n}\n","(function() {\n\t'use strict';\n\n\tif (! (Function.prototype.once instanceof Function)) {\n\t\tconst funcs = new WeakMap();\n\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-function-once\n\t\t */\n\t\tFunction.prototype.once = function once(thisArg) {\n\t\t\tconst callback = this;\n\t\t\treturn function(...args) {\n\t\t\t\tif (funcs.has(callback)) {\n\t\t\t\t\treturn funcs.get(callback);\n\t\t\t\t} else if (callback.constructor.name === 'AsyncFunction') {\n\t\t\t\t\tconst retVal = callback.apply(thisArg || callback, args).catch(err => {\n\t\t\t\t\t\tfuncs.delete(callback);\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t});\n\n\t\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\t\treturn retVal;\n\t\t\t\t} else if (callback instanceof Function) {\n\t\t\t\t\tconst retVal = callback.apply(thisArg || callback, args);\n\t\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\t\treturn retVal;\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t}\n})();\n","import { polyfillMethod } from './utils.js';\n\npolyfillMethod(URL, 'canParse', (str, base) => {\n\ttry {\n\t\tnew URL(str, base);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n});\n","(function() {\n\t'use strict';\n\n\tif (! (Number.range instanceof Function)) {\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-Number.range\n\t\t * @deprecated - changed to `Iterator.range`\n\t\t */\n\t\tNumber.range = function range(start, end, step = 1) {\n\t\t\tconsole.warn('`Number.range()` is deprecated. Use `Iterator.range()` instead.');\n\t\t\treturn globalThis.Iterator.range(start, end, { step });\n\t\t};\n\t}\n})();\n","/**\n * @see https://github.com/tc39/proposal-iterator-helpers\n */\n\nconst supported = 'Iterator' in globalThis;\n\nconst IteratorPrototype = supported\n\t? Object.getPrototypeOf(globalThis.Iterator)\n\t: Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));\n\nconst Iterator = supported\n\t? globalThis.Iterator\n\t: (proto => {\n\t\tclass Iterator {\n\t\t\t[Symbol.iterator]() {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\n\t\tObject.setPrototypeOf(Iterator, proto);\n\n\t\treturn Iterator;\n\t})(IteratorPrototype);\n\nif (! (Iterator.range instanceof Function)) {\n\tIterator.range = function range(start, end, option) {\n\t\tif (typeof option === 'number' || typeof option === 'bigint') {\n\t\t\treturn Iterator.range(start, end, { step: option });\n\t\t} else if (typeof option !== 'object' || Object.is(option, null)) {\n\t\t\treturn Iterator.range(start, end, {});\n\t\t} else {\n\t\t\tconst {\n\t\t\t\t// Default to +/-, Number/BigInt based on start & end\n\t\t\t\tstep = typeof start === 'number'\n\t\t\t\t\t? start < end ? 1 : -1\n\t\t\t\t\t: start < end ? 1n : -1n,\n\t\t\t\tinclusive = false,\n\t\t\t} = option;\n\n\t\t\tif (typeof start !== 'number' && typeof start !== 'bigint') {\n\t\t\t\tthrow new TypeError('Start must be a number');\n\t\t\t} else if (Number.isNaN(start)) {\n\t\t\t\tthrow new RangeError('Invalid start');\n\t\t\t} else if (typeof end !== 'number' && typeof end !== 'bigint') {\n\t\t\t\tthrow new TypeError('End must be a number');\n\t\t\t} else if (Number.isNaN(end)) {\n\t\t\t\tthrow new RangeError('Invalid end');\n\t\t\t} else if (typeof step !== 'number' && typeof step !== 'bigint') {\n\t\t\t\tthrow new TypeError('Step must be a number');\n\t\t\t} else if (Number.isNaN(step)) {\n\t\t\t\tthrow new RangeError('Invalid step');\n\t\t\t} else if (step === 0) {\n\t\t\t\tthrow new RangeError('Step must not be 0');\n\t\t\t} else if ((step < 0 && start < end) || (step > 0 && start > end)) {\n\t\t\t\treturn;\n\t\t\t} else if (inclusive) {\n\t\t\t\tlet n = start;\n\t\t\t\tif (step > 0) {\n\t\t\t\t\treturn Iterator.from({\n\t\t\t\t\t\tnext() {\n\t\t\t\t\t\t\tconst ret = n <= end ? { value: n, done: false } : { done: true };\n\t\t\t\t\t\t\tn+= step;\n\t\t\t\t\t\t\treturn ret;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn Iterator.from({\n\t\t\t\t\t\tnext() {\n\t\t\t\t\t\t\tconst ret = n >= end ? { value: n, done: false } : { done: true };\n\t\t\t\t\t\t\tn+= step;\n\t\t\t\t\t\t\treturn ret;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet n = start;\n\n\t\t\t\tif (step > 0) {\n\t\t\t\t\treturn Iterator.from({\n\t\t\t\t\t\tnext() {\n\t\t\t\t\t\t\tconst ret = n < end ? { value: n, done: false } : { done: true };\n\t\t\t\t\t\t\tn+= step;\n\t\t\t\t\t\t\treturn ret;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tlet n = start;\n\n\t\t\t\t\treturn Iterator.from({\n\t\t\t\t\t\tnext() {\n\t\t\t\t\t\t\tconst ret = n > end ? { value: n, done: false } : { done: true };\n\t\t\t\t\t\t\tn+= step;\n\t\t\t\t\t\t\treturn ret;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\nif (! (IteratorPrototype[Symbol.toStringTag])) {\n\tIteratorPrototype[Symbol.toStringTag] = 'Iterator';\n}\n\nif (! (IteratorPrototype.take instanceof Function)) {\n\tIteratorPrototype.take = function take(limit) {\n\t\tlet n = 0;\n\t\tconst iter = this;\n\n\t\treturn Iterator.from({\n\t\t\tnext() {\n\t\t\t\tif (n++ >= limit) {\n\t\t\t\t\treturn { done: true };\n\t\t\t\t} else {\n\t\t\t\t\treturn iter.next();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n}\n\nif (! (IteratorPrototype.drop instanceof Function)) {\n\tIteratorPrototype.drop = function drop(limit) {\n\t\tfor (let n = 0; n < limit; n++) {\n\t\t\tconst { done } = this.next();\n\n\t\t\tif (done) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n}\n\nif (! (IteratorPrototype.toArray instanceof Function)) {\n\tIteratorPrototype.toArray = function toArray() {\n\t\treturn Array.from(this);\n\t};\n}\n\nif (! (IteratorPrototype.forEach instanceof Function)) {\n\tIteratorPrototype.forEach = function forEach(callback) {\n\t\tfor (const item of this) {\n\t\t\tcallback.call(this, item);\n\t\t}\n\t};\n}\n\nif (! (IteratorPrototype.flatMap instanceof Function)) {\n\tIteratorPrototype.flatMap = function flatMap(mapper) {\n\t\tconst iter = this;\n\t\tlet cur = this.next();\n\n\t\tconst getSubIter = ({ value, done = true } = {}) => {\n\t\t\treturn done\n\t\t\t\t? Iterator.from({\n\t\t\t\t\tnext() {\n\t\t\t\t\t\treturn { done: true };\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t: Iterator.from(mapper.call(iter, value));\n\t\t};\n\n\t\tlet sub = getSubIter(cur);\n\n\t\treturn Iterator.from({\n\t\t\tnext() {\n\t\t\t\tconst { value, done = true } = sub.next();\n\n\t\t\t\tif (cur.done && done) {\n\t\t\t\t\treturn { done: true };\n\t\t\t\t} else if (! done) {\n\t\t\t\t\treturn { value, done };\n\t\t\t\t} else if (! cur.done) {\n\t\t\t\t\tcur = iter.next();\n\t\t\t\t\tsub = getSubIter(cur);\n\t\t\t\t\treturn sub.next();\n\t\t\t\t} else {\n\t\t\t\t\treturn { done: true };\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t};\n}\n\nif (! (IteratorPrototype.map instanceof Function)) {\n\tIteratorPrototype.map = function map(callback) {\n\t\tconst iter = this;\n\n\t\treturn Iterator.from({\n\t\t\tnext() {\n\t\t\t\tconst { done, value } = iter.next();\n\n\t\t\t\tif (done) {\n\t\t\t\t\treturn { done };\n\t\t\t\t} else {\n\t\t\t\t\treturn { value: callback.call(iter, value), done: false };\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n}\n\nif (! (IteratorPrototype.reduce instanceof Function)) {\n\tIteratorPrototype.reduce = function reduce(callback, initialValue) {\n\t\tlet current = typeof initialValue === 'undefined' ? this.next().value : initialValue;\n\n\t\tfor (const item of this) {\n\t\t\tcurrent = callback.call(this, current, item);\n\t\t}\n\n\t\treturn current;\n\t};\n}\n\nif (! (IteratorPrototype.filter instanceof Function)) {\n\tIteratorPrototype.filter = function filter(callback) {\n\t\tconst iter = this;\n\t\tlet done = false;\n\t\tlet value = undefined;\n\n\t\treturn Iterator.from({\n\t\t\tnext() {\n\t\t\t\twhile (! done) {\n\t\t\t\t\tconst cur = iter.next();\n\t\t\t\t\tdone = cur.done;\n\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (callback.call(iter, cur.value)) {\n\t\t\t\t\t\tvalue = cur.value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn { done, value };\n\t\t\t}\n\t\t});\n\t};\n}\n\nif (! (IteratorPrototype.some instanceof Function)) {\n\tIteratorPrototype.some = function some(callback) {\n\t\tlet retVal = false;\n\t\tfor (const item of this) {\n\t\t\tif (callback.call(this, item)) {\n\t\t\t\tretVal = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn retVal;\n\t};\n}\n\nif (! (IteratorPrototype.every instanceof Function)) {\n\tIteratorPrototype.every = function every(callback) {\n\t\tlet retVal = true;\n\t\tfor (const item of this) {\n\t\t\tif (! callback.call(this, item)) {\n\t\t\t\tretVal = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn retVal;\n\t};\n}\n\nif (! (IteratorPrototype.find instanceof Function)) {\n\tIteratorPrototype.find = function find(callback) {\n\t\tfor (const item of this) {\n\t\t\tif (callback.call(this, item)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t};\n}\n\nif (! (IteratorPrototype.indexed instanceof Function)) {\n\tIteratorPrototype.indexed = function indexed() {\n\t\tlet n = 0;\n\t\treturn this.map(item => [n++, item]);\n\t};\n}\n\nif (! (IteratorPrototype.chunks instanceof Function)) {\n\tIteratorPrototype.chunks = function(size) {\n\t\tif (! Number.isSafeInteger(size) || size < 1) {\n\t\t\tthrow new TypeError('Size must be a positive integer.');\n\t\t} else {\n\t\t\tconst iter = this;\n\t\t\tlet done = false;\n\n\t\t\treturn Iterator.from({\n\t\t\t\tnext() {\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\treturn { done };\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst items = [];\n\t\t\t\t\t\tlet i = 0;\n\n\t\t\t\t\t\twhile(i++ < size && ! done) {\n\t\t\t\t\t\t\tconst next = iter.next();\n\n\t\t\t\t\t\t\tif (next.done) {\n\t\t\t\t\t\t\t\tdone = true;\n\n\t\t\t\t\t\t\t\tif (typeof next.value !== 'undefined') {\n\t\t\t\t\t\t\t\t\titems.push(next.value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\titems.push(next.value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn { value: items, done: false };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n}\n\nif (! (Iterator.from instanceof Function)) {\n\tIterator.from = function from(obj) {\n\t\tif (typeof obj !== 'object' || obj === null) {\n\t\t\tthrow new TypeError('Not an object.');\n\t\t} else if (obj.next instanceof Function) {\n\t\t\tconst iter = Object.create(IteratorPrototype, {\n\t\t\t\t'next': {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: (...args) => obj.next(...args),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn iter;\n\t\t} else if(obj[Symbol.iterator] instanceof Function) {\n\t\t\treturn Iterator.from(obj[Symbol.iterator]());\n\t\t}\n\t};\n}\n\nif (! supported) {\n\tglobalThis.Iterator = Iterator;\n}\n","if (! Number.hasOwnProperty('isSafeInteger')) {\n\tNumber.MAX_SAFE_INTEGER = 2**53 -1;\n\tNumber.MIN_SAFE_INTEGER = -Number.MAX_SAFE_INTEGER;\n\tNumber.isSafeInteger = num => num <= Number.MAX_SAFE_INTEGER && num >= Number.MIN_SAFE_INTEGER;\n}\n\nif (! Number.hasOwnProperty('EPSILON')) {\n\tNumber.EPSILON = 2**-52;\n}\n\nif (! Math.hasOwnProperty('sign')) {\n\tMath.sign = x => ((x > 0) - (x < 0)) || +x;\n}\n\nif (! Math.hasOwnProperty('trunc')) {\n\tMath.trunc = x => {\n\t\tconst n = x - x%1;\n\t\treturn n===0 && (x<0 || (x===0 && (1/x !== 1/0))) ? -0 : n;\n\t};\n}\n\nif (! Math.hasOwnProperty('expm1')) {\n\tMath.expm1 = x => Math.exp(x) - 1;\n}\n\nif (! Math.hasOwnProperty('hypot')) {\n\tMath.hypot = (...nums) => Math.sqrt(nums.reduce((sum, num) => sum + num**2, 0));\n}\n\nif (! Math.hasOwnProperty('cbrt')) {\n\tMath.cbrt = x => x**(1/3);\n}\n\nif (! Math.hasOwnProperty('log10')) {\n\tMath.log10 = x => Math.log(x) * Math.LOG10E;\n}\n\nif (! Math.hasOwnProperty('log2')) {\n\tMath.log2 = x => Math.log(x) * Math.LOG2E;\n}\n\nif (! Math.hasOwnProperty('log1p')) {\n\tMath.log1p = x => Math.log(1 + x);\n}\n\nif (! Math.hasOwnProperty('fround')) {\n\tMath.fround = (function (array) {\n\t\treturn function(x) {\n\t\t\treturn array[0] = x, array[0];\n\t\t};\n\t})(new Float32Array(1));\n}\n\nif (! (Math.clamp instanceof Function)) {\n\tMath.clamp = function(value, min, max) {\n\t\treturn Math.min(Math.max(value, min), max);\n\t};\n}\n\n/*\n * Question of if it will be `Math.clamp` or `Math.constrain`\n */\nif (! (Math.constrain instanceof Function)) {\n\tMath.constrain = Math.clamp;\n}\n\n/**\n * @see https://github.com/tc39/proposal-math-sum\n */\nif(! (Math.sum instanceof Function)) {\n\tMath.sum = function(...nums) {\n\t\treturn nums.map(num => parseFloat(num)).reduce((sum, num) => sum + num);\n\t};\n}\n","(function() {\n\t'use strict';\n\n\tif (! ('isSecureContext' in globalThis)) {\n\t\tconst hostnames = ['localhost', '127.0.0.1'];\n\t\tconst HTTPS = 'https:';\n\t\tconst protocols = [HTTPS, 'file:', 'wss:'];\n\t\tconst hasSecureScripts = (document = globalThis.document) => {\n\t\t\treturn [...document.scripts].every(({ src }) => {\n\t\t\t\tif (src.length === 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\tconst { protocol, hostname } = new URL(src, document.baseURI);\n\t\t\t\t\treturn protocol === HTTPS || hostname === location.hostname;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tObject.defineProperty(globalThis, 'isSecureContext', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: function isSecureContext() {\n\t\t\t\tif (window.parent !== window) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (protocols.includes(location.protocol) || hostnames.includes(location.hostname)) {\n\t\t\t\t\treturn hasSecureScripts();\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n})();\n","const funcs = new WeakMap();\n\nexport const between = (min, val, max) => typeof val === 'number' && val >= min && val <= max;\n\nexport function getDeferred() {\n\tif (Promise.withResolvers instanceof Function) {\n\t\treturn Promise.withResolvers();\n\t} else {\n\t\tconst def = {};\n\t\tdef.promise = new Promise((resolve, reject) => {\n\t\t\tdef.resolve = resolve;\n\t\t\tdef.reject = reject;\n\t\t});\n\n\t\treturn def;\n\t}\n}\n\nexport function isAsyncFunction(what) {\n\treturn what instanceof Function && what.constructor.name === 'AsyncFunction';\n}\n\nexport function isAsync(what) {\n\treturn isAsyncFunction(what) || what instanceof Promise;\n}\n\nexport function isObject(thing) {\n\treturn typeof thing === 'object' && ! Object.is(thing, null) && ! Array.isArray(thing);\n}\n\nexport function getType(thing) {\n\tswitch (typeof thing) {\n\t\tcase 'undefined':\n\t\t\treturn 'Undefined';\n\n\t\tcase 'function':\n\t\t\tif ('prototype' in thing) {\n\t\t\t\treturn getType(thing.prototype);\n\t\t\t} else if ('constructor' in thing) {\n\t\t\t\treturn thing.constructor.name;\n\t\t\t} else {\n\t\t\t\treturn 'Function';\n\t\t\t}\n\n\t\tcase 'object':\n\t\t\tif (Object.is(thing, null)) {\n\t\t\t\treturn 'Null';\n\t\t\t} else if ('constructor' in thing) {\n\t\t\t\treturn thing.constructor.name;\n\t\t\t} else if (Symbol.toStringTag in thing) {\n\t\t\t\treturn thing[Symbol.toStringTag];\n\t\t\t} else if ('prototype' in thing) {\n\t\t\t\treturn getType(thing.prototype);\n\t\t\t} else {\n\t\t\t\tconsole.log(thing);\n\t\t\t\treturn 'Unknown Object';\n\t\t\t}\n\n\t\tcase 'string':\n\t\t\treturn 'String';\n\n\t\tcase 'number':\n\t\t\treturn Number.isNaN(thing) ? 'NaN' : 'Number';\n\n\t\tcase 'bigint':\n\t\t\treturn 'BigInt';\n\n\t\tcase 'boolean':\n\t\t\treturn 'Boolean';\n\n\t\tcase 'symbol':\n\t\t\treturn 'Symbol';\n\n\t\tdefault:\n\t\t\treturn 'Unknown';\n\t}\n}\n\nexport function callOnce(callback, thisArg) {\n\tif (callback.once instanceof Function) {\n\t\treturn callback.once(thisArg);\n\t} else {\n\t\treturn function(...args) {\n\t\t\tif (funcs.has(callback)) {\n\t\t\t\treturn funcs.get(callback);\n\t\t\t} else if (isAsyncFunction(callback)) {\n\t\t\t\tconst retVal = callback.apply(thisArg || this, args).catch(err => {\n\t\t\t\t\tfuncs.delete(callback);\n\t\t\t\t\tthrow err;\n\t\t\t\t});\n\n\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\treturn retVal;\n\t\t\t} else if (callback instanceof Function) {\n\t\t\t\tconst retVal = callback.apply(thisArg || this, args);\n\t\t\t\tfuncs.set(callback, retVal);\n\t\t\t\treturn retVal;\n\t\t\t}\n\t\t};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Lock\n */\nconst protectedData = new WeakMap();\n\nexport class Lock {\n\tconstructor(name, mode = 'exclusive') {\n\t\tif (! ['exclusive', 'shared'].includes(mode)) {\n\t\t\tthrow new TypeError(`'${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t}\n\n\t\tif (typeof name !== 'string') {\n\t\t\tname = name.toString();\n\t\t}\n\n\t\tif (name.startsWith('-')) {\n\t\t\tthrow new DOMException('Names starting with `-` are reserved');\n\t\t}\n\n\t\tprotectedData.set(this, { name, mode });\n\t}\n\n\tget name() {\n\t\treturn protectedData.get(this).name;\n\t}\n\n\tget mode() {\n\t\treturn protectedData.get(this).mode;\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { getDeferred, isAsync } from './utility.js';\nimport { Lock } from './Lock.js';\nconst locks = new Map();\nconst symbols = {\n\tlockKey: Symbol('lock-key'),\n};\n\nexport const nativeSupport = 'locks' in navigator && navigator.locks.request instanceof Function;\nexport async function checkSupport() {\n\treturn await new Promise(resolve => {\n\t\tif ('locks' in navigator && navigator.locks.request instanceof Function) {\n\t\t\tnavigator.locks.query().then(() => resolve(true)).catch(() => resolve(false));\n\t\t} else {\n\t\t\tresolve(false);\n\t\t}\n\t});\n}\n/**\n * Some browsing contexts (iframes) have `navigator.locks` but methods only throw\n */\nexport const actuallySupported = checkSupport();\n\nasync function callFunction(callback, arg = null) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (isAsync(callback)) {\n\t\t\tcallback.call(globalThis, arg).then(resolve, reject);\n\t\t} else {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = callback.call(globalThis, arg);\n\t\t\t\t\tresolve(result);\n\t\t\t\t} catch(err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction shouldPend({ name, mode }) {\n\tswitch(mode) {\n\t\tcase 'exclusive': return getLocks().some(lock => lock.name === name);\n\t\tcase 'shared': return getLocks().some(lock => lock.name === name && lock.mode === 'exclusive');\n\t}\n}\n\nfunction stealLocks(name) {\n\t[...locks.entries()].filter(([lock]) => lock.name === name).forEach(([lock, { reject, controller }]) => {\n\t\trequestIdleCallback(() => {\n\t\t\tcontroller.abort();\n\t\t\tlocks.delete(lock);\n\t\t});\n\t\treject(new DOMException('The lock request is aborted'));\n\t});\n}\n\nasync function whenReleased(lock) {\n\tif (locks.has(lock)) {\n\t\tawait locks.get(lock).promise.catch(console.error);\n\t}\n}\n\nfunction queueTask(name, mode, callback) {\n\tconst { resolve, reject, promise } = getDeferred();\n\tconst controller = new AbortController();\n\tconst lock = new Lock(name, mode);\n\tconst pending = shouldPend(lock);\n\tlocks.set(lock, { resolve, reject, promise, callback, pending, controller });\n\treturn lock;\n}\n\nfunction setPending(lock, pending = true) {\n\tif (locks.has(lock)) {\n\t\tlocks.set(lock, {...locks.get(lock), pending });\n\t}\n}\n\nfunction isPending(lock) {\n\treturn lock instanceof Lock && locks.has(lock) && locks.get(lock).pending;\n}\n\nfunction getLocks(name) {\n\tif (typeof name === 'string') {\n\t\treturn [...locks.keys()].filter(lock => lock.name === name);\n\t} else {\n\t\treturn [...locks.keys()];\n\t}\n}\n\nfunction getHeldLocks(name) {\n\treturn getLocks(name).filter(lock => ! isPending(lock));\n}\n\nfunction getPendingLocks(name) {\n\treturn getLocks(name).filter(lock => isPending(lock));\n}\n\nasync function whenNotBlocked(lock) {\n\tswitch(lock.mode) {\n\t\tcase 'exclusive':\n\t\t\tawait Promise.allSettled(getLocks()\n\t\t\t\t.filter(l => l.name === lock.name && l !== lock).map(whenReleased));\n\t\t\tbreak;\n\t\tcase 'shared':\n\t\t\tawait Promise.allSettled(getLocks()\n\t\t\t\t.filter(l => l.name === lock.name && l.mode === 'exclusive' && l !== lock).map(whenReleased));\n\t\t\tbreak;\n\t}\n}\n\nfunction getLockSignal(lock) {\n\tif (locks.has(lock)) {\n\t\treturn locks.get(lock).controller.signal;\n\t}\n}\n\nasync function executeLock(lock) {\n\tif (locks.has(lock)) {\n\t\tconst { resolve, reject, promise, callback, pending, controller } = locks.get(lock);\n\t\tif (pending) {\n\t\t\tsetPending(lock, false);\n\t\t}\n\n\t\tcallFunction(callback, lock).then(resolve, reject).finally(() => {\n\t\t\tlocks.delete(lock);\n\t\t\trequestIdleCallback(() => controller.abort());\n\t\t});\n\n\t\treturn promise;\n\t}\n}\n\n/**\n * @see https://w3c.github.io/web-locks/\n * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager\n */\nexport class LockManager {\n\tconstructor(key) {\n\t\tif (key !== symbols.lockKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t}\n\t}\n\t/**\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\n\t * @param {[type]} name [description]\n\t * @param {[type]} args [description]\n\t * @return {Promise} [description]\n\t * static async request(name, callback)\n\t * static async request(name, { mode = 'exclusive', ifAvailable = false, steal = false, signal }, callback)\n\t */\n\tstatic async request(name, ...args) {\n\t\tlet opts = {}, callback;\n\t\tif (args[0] instanceof Function) {\n\t\t\tcallback = args[0];\n\t\t} else if (args[1] instanceof Function) {\n\t\t\t[opts, callback] = args;\n\t\t}\n\n\t\tif (typeof name !== 'string') {\n\t\t\tname = name.toString();\n\t\t}\n\n\t\tconst { mode = 'exclusive', ifAvailable = false, steal = false, signal } = opts;\n\n\t\tif (steal && ifAvailable) {\n\t\t\tthrow new DOMException('LockManager.request: `steal` and `ifAvailable` cannot be used together');\n\t\t} else if (name.startsWith('-')) {\n\t\t\tthrow new DOMException('LockManager.request: Names starting with `-` are reserved');\n\t\t} else if (! ['exclusive', 'shared'].includes(mode)) {\n\t\t\tthrow new TypeError(`LockManager.request: '${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t} else if (signal instanceof AbortSignal && signal.aborted) {\n\t\t\tthrow signal.reason;\n\t\t} else if (mode === 'shared' && steal) {\n\t\t\tthrow new DOMException('LockManager.request: `steal` is only supported for exclusive lock requests');\n\t\t}\n\n\t\tconst held = getHeldLocks(name);\n\t\tconst pending = getPendingLocks(name);\n\t\tconst alreadyLocked = [...held, ...pending].some(lock => lock.name === name);\n\n\t\tif (steal && alreadyLocked) {\n\t\t\tstealLocks(name);\n\t\t}\n\n\t\t/**\n\t\t * If shared & held lock found (none exclusive), then this lock may be held as well\n\t\t * If exclusive & held or pending lock found, this is pending\n\t\t */\n\t\tconst lock = queueTask(name, mode, callback);\n\t\tif (signal instanceof AbortSignal) {\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\tif (locks.has(lock)) {\n\t\t\t\t\tconst { reject, controller } = locks.get(lock);\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treject(new DOMException('The lock request is aborted'));\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t}\n\t\t\t}, { once: true, signal: getLockSignal(lock) });\n\t\t}\n\n\t\tswitch(mode) {\n\t\t\tcase 'exclusive': {\n\t\t\t\tif (ifAvailable && (held.length !== 0 || pending.length !== 0)) {\n\t\t\t\t\tconst controller = locks.get(lock).controller;\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treturn await callFunction(callback, null).then(result => {\n\t\t\t\t\t\trequestIdleCallback(() => controller.abort());\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'shared': {\n\t\t\t\tif (! ifAvailable) {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t} else if ([...held, ...pending].some(lock => lock.mode === 'exclusive')) {\n\t\t\t\t\tconst controller = locks.get(lock).controller;\n\t\t\t\t\tlocks.delete(lock);\n\t\t\t\t\treturn await callFunction(callback, null).then(result => {\n\t\t\t\t\t\trequestIdleCallback(() => controller.abort());\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tawait whenNotBlocked(lock);\n\t\t\t\t\treturn await executeLock(lock);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`LockManager.request: '${mode}' (value of 'mode' member of LockOptions) is not a valid value for enumeration LockMode.`);\n\t\t}\n\t}\n\n\t/**\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/LockManager/query\n\t * @return {Promise} { held: [], pending: [] }\n\t */\n\tstatic async query() {\n\t\treturn {\n\t\t\theld: getHeldLocks().map(({ name, mode }) => ({ name, mode, clientId: null })),\n\t\t\tpending: getPendingLocks().map(({ name, mode }) => ({ name, mode, clientId: null })),\n\t\t};\n\t}\n}\n\nexport async function request(...args) {\n\tif (await actuallySupported) {\n\t\treturn navigator.locks.request(...args);\n\t} else {\n\t\treturn LockManager.request(...args);\n\t}\n}\n\nexport async function query() {\n\tif (await actuallySupported) {\n\t\treturn navigator.locks.query();\n\t} else {\n\t\treturn LockManager.query();\n\t}\n}\n\nexport async function polyfill() {\n\tif (! nativeSupport) {\n\t\tglobalThis.Lock = Lock;\n\t\tglobalThis.LockManager = LockManager;\n\t\tnavigator.locks = LockManager;\n\t} else if (! await actuallySupported) {\n\t\tnavigator.locks.request = (...args) => LockManager.request(...args);\n\t\tnavigator.locks.query = () => LockManager.query();\n\t}\n}\n","export function errorToEvent(error, type = 'error') {\n\tif (error instanceof Error) {\n\t\tconst { message, name, fileName: filename, lineNumber: lineno, columnNumber: colno } = error;\n\t\treturn new ErrorEvent(type, { error, message: `${name}: ${message}`, filename, lineno, colno });\n\t} else {\n\t\tthrow new TypeError('`errorToEvent()` only accepts Errors');\n\t}\n}\n","import { LockManager, actuallySupported, nativeSupport } from './assets/LockManager.js';\nimport { errorToEvent } from './assets/error.js';\nlet polyfilled = false;\n\nconst polyfilledPromise = new Promise(async resolve => {\n\tif (nativeSupport) {\n\t\tif (await actuallySupported) {\n\t\t\tresolve(false);\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tnavigator.locks.request = LockManager.request;\n\t\t\t\tnavigator.locks.query = LockManager.query;\n\t\t\t\tpolyfilled = true;\n\t\t\t\tresolve(true);\n\t\t\t} catch(err) {\n\t\t\t\tglobalThis.dispatchEvent(errorToEvent(err));\n\t\t\t\tresolve(false);\n\t\t\t}\n\t\t}\n\t} else {\n\t\ttry {\n\t\t\tnavigator.locks = LockManager;\n\t\t\tpolyfilled = true;\n\t\t\tresolve(true);\n\t\t} catch(err) {\n\t\t\tglobalThis.dispatchEvent(errorToEvent(err));\n\t\t\tresolve(false);\n\t\t}\n\t}\n});\n\n\nexport { polyfilled, polyfilledPromise };\n","(function() {\n\t'use strict';\n\n\tif (! (navigator.canShare instanceof Function)) {\n\t\tnavigator.canShare = function({ title, text, url, files } = {}) {\n\t\t\tif (! (navigator.share instanceof Function)) {\n\t\t\t\treturn false;\n\t\t\t} else if (Array.isArray(files) && files.length !== 0) {\n\t\t\t\treturn false;\n\t\t\t} else if ([title, text, url].every(arg => typeof arg === 'undefined')) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn [title, text, url].some(arg => typeof arg === 'string' && arg.length !== 0);\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! (navigator.setAppBadge instanceof Function)) {\n\t\tnavigator.setAppBadge = async (n) => {\n\t\t\tif (! Number.isInteger(n)) {\n\t\t\t\tthrow new TypeError('Failed to execute \\'setAppBadge\\' on \\'Navigator\\': Value is not of type \\'unsigned long long\\'');\n\t\t\t} else if (n < 0) {\n\t\t\t\tthrow new TypeError('Failed to execute \\'setAppBadge\\' on \\'Navigator\\': Value is outside the \\'unsigned long long\\' value range.');\n\t\t\t} else if (n === 0) {\n\t\t\t\tif (document.title.startsWith('(')) {\n\t\t\t\t\tdocument.title = document.title.replace(/^\\((\\d{1,2}\\+?)\\)\\s/, '');\n\t\t\t\t}\n\t\t\t} else if (n < 100) {\n\t\t\t\tawait navigator.clearAppBadge();\n\t\t\t\tdocument.title = `(${n}) ${document.title}`;\n\t\t\t} else {\n\t\t\t\tawait navigator.clearAppBadge();\n\t\t\t\tdocument.title = `(99+) ${document.title}`;\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (navigator.clearAppBadge instanceof Function)) {\n\t\tnavigator.clearAppBadge = () => navigator.setAppBadge(0);\n\t}\n})();\n","import './locks.js';\nimport './share.js';\nimport './appBadge.js';\n\nif (! Navigator.prototype.hasOwnProperty('pdfViewerEnabled')) {\n\tObject.defineProperty(navigator, 'pdfViewerEnabled', {\n\t\tenumerable: true,\n\t\tconfigurable: false,\n\t\twritable: false,\n\t\tvalue: false,\n\t});\n}\n\nif (! (Navigator.prototype.getInstalledRelatedApps instanceof Function)) {\n\tNavigator.prototype.getInstalledRelatedApps = async () => [];\n}\n\nif (! (Navigator.prototype.getGamepads instanceof Function)) {\n\tNavigator.prototype.getGamepads = () => [];\n}\n\nif (! ('hardwareConcurrency' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'hardwareConcurrency', {\n\t\tget: () => 1,\n\t});\n}\n\nif (! ('connection' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'connection', {\n\t\tget: () => Object.create(EventTarget.prototype, {\n\t\t\ttype: { value: 'unknown' },\n\t\t\teffectiveType: { value: '4g' },\n\t\t\trtt: { value: NaN },\n\t\t\tdownlink: { value: NaN },\n\t\t\tdownlinkMax: { value: Infinity },\n\t\t\tsaveData: { value: false },\n\t\t\tonchange: { value: null, writable: true },\n\t\t\tontypechange: { value: null, writable: true },\n\t\t})\n\t});\n} else if (! ('type' in navigator.connection)) {\n\tnavigator.connection.type = 'unknown';\n}\n\nif (! ('doNotTrack' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'doNotTrack', {\n\t\tget: () => 'unspecified',\n\t});\n}\n\nif (! ('globalPrivacyControl' in Navigator.prototype)) {\n\tObject.defineProperty(Navigator.prototype, 'globalPrivacyControl', {\n\t\tget: () => false,\n\t});\n}\n","(function() {\n\t'use strict';\n\n\tif (! (globalThis.requestIdleCallback instanceof Function)) {\n\t\tconst isValidTimeout = timeout => Number.isSafeInteger(timeout) && timeout > 0;\n\n\t\tglobalThis.requestIdleCallback = function(callback, { timeout } = {}) {\n\t\t\tconst start = performance.now();\n\t\t\tconst timeRemaining = () => isValidTimeout(timeout)\n\t\t\t\t? Math.max(0, timeout - (performance.now() - start))\n\t\t\t\t: Math.max(0, 600 - (performance.now() - start));\n\n\t\t\treturn setTimeout(() => callback({\n\t\t\t\tdidTimeout: isValidTimeout(timeout) ? timeRemaining() === 0 : false,\n\t\t\t\ttimeRemaining,\n\t\t\t}), 1);\n\t\t};\n\t}\n\n\tif (! (globalThis.cancelIdleCallback instanceof Function)) {\n\t\tglobalThis.cancelIdleCallback = id => clearTimeout(id);\n\t}\n\n\tif (! (globalThis.requestAnimationFrame instanceof Function)) {\n\t\tglobalThis.requestAnimationFrame = callback => setTimeout(() => callback(performance.now()), 1000 / 60);\n\t}\n\n\tif (! (globalThis.cancelAnimationFrame instanceof Function)) {\n\t\tglobalThis.cancelAnimationFrame = id => clearTimeout(id);\n\t}\n\n\tif (! (globalThis.queueMicrotask instanceof Function)) {\n\t\tglobalThis.queueMicrotask = cb => Promise.resolve().then(cb)\n\t\t\t.catch(e => setTimeout(() => { throw e; }));\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif (! ('AbortSignal' in globalThis)) {\n\t\tconst symbols = {\n\t\t\tsignal: Symbol('signal'),\n\t\t\taborted: Symbol('aborted'),\n\t\t\treason: Symbol('reason'),\n\t\t\tonabort: Symbol('onabort'),\n\t\t};\n\n\t\tglobalThis.AbortError = class AbortError extends Error {};\n\n\t\tglobalThis.AbortSignal = class AbortSignal extends EventTarget {\n\t\t\tconstructor() {\n\t\t\t\tsuper();\n\n\t\t\t\tObject.defineProperties(this,{\n\t\t\t\t\t[symbols.aborted]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: false,\n\t\t\t\t\t},\n\t\t\t\t\t[symbols.reason]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t},\n\t\t\t\t\t[symbols.onabort]: {\n\t\t\t\t\t\tenumerable: false,\n\t\t\t\t\t\twritable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tthis.addEventListener('abort', event => {\n\t\t\t\t\tif (this.onabort instanceof Function) {\n\t\t\t\t\t\tthis.onabort.call(this, event);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tget aborted() {\n\t\t\t\treturn this[symbols.aborted];\n\t\t\t}\n\n\t\t\tget onabort() {\n\t\t\t\treturn this[symbols.onabort];\n\t\t\t}\n\n\t\t\tset onabort(value) {\n\t\t\t\tif (value instanceof Function) {\n\t\t\t\t\tthis[symbols.onabort] = value;\n\t\t\t\t} else {\n\t\t\t\t\tthis[symbols.onabort] = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tget reason() {\n\t\t\t\treturn this[symbols.reason];\n\t\t\t}\n\n\t\t\tthrowIfAborted() {\n\t\t\t\tif (this.aborted) {\n\t\t\t\t\tthrow this.reason;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstatic abort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = new AbortSignal();\n\t\t\t\tsignal[symbols.aborted] = true;\n\t\t\t\tsignal[symbols.reason] = reason;\n\t\t\t\treturn signal;\n\t\t\t}\n\t\t};\n\n\t\tglobalThis.AbortController = class AbortController {\n\t\t\tconstructor() {\n\t\t\t\tthis[symbols.signal] = new AbortSignal();\n\t\t\t}\n\n\t\t\tget signal() {\n\t\t\t\treturn this[symbols.signal];\n\t\t\t}\n\n\t\t\tabort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = this.signal;\n\n\t\t\t\tif (! signal.aborted) {\n\t\t\t\t\tsignal[symbols.aborted] = true;\n\t\t\t\t\tsignal[symbols.reason] = reason;\n\t\t\t\t\tsignal.dispatchEvent(new Event('abort'));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! ('reason' in AbortSignal.prototype)) {\n\t\tconst reasons = new WeakMap();\n\t\tconst abort = AbortController.prototype.abort;\n\n\t\tif (AbortSignal.abort instanceof Function) {\n\t\t\tconst staticAbort = AbortSignal.abort;\n\n\t\t\tAbortSignal.abort = function(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst signal = staticAbort();\n\t\t\t\treasons.set(signal, reason);\n\t\t\t\treturn signal;\n\t\t\t};\n\t\t} else {\n\t\t\tAbortSignal.abort = function abort(reason = new DOMException('Operation aborted')) {\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tcontroller.abort(reason);\n\t\t\t\treturn controller.reason;\n\t\t\t};\n\t\t}\n\n\t\tObject.defineProperty(AbortSignal.prototype, 'reason', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: function() {\n\t\t\t\tif (reasons.has(this)) {\n\t\t\t\t\treturn reasons.get(this);\n\t\t\t\t} else {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tAbortController.prototype.abort = function(reason = new DOMException('Operation aborted')) {\n\t\t\treasons.set(this.signal, reason);\n\t\t\tabort.call(this);\n\t\t};\n\t}\n\n\tif (! (AbortSignal.prototype.throwIfAborted instanceof Function)) {\n\t\tAbortSignal.prototype.throwIfAborted = function() {\n\t\t\tif (this.aborted) {\n\t\t\t\tthrow this.reason;\n\t\t\t}\n\t\t};\n\t}\n\n\tif (! (AbortSignal.timeout instanceof Function)) {\n\t\tAbortSignal.timeout = function(ms) {\n\t\t\tif (typeof ms === 'undefined') {\n\t\t\t\tthrow new TypeError('At least one 1 argument required but only 0 passed');\n\t\t\t} else if (! Number.isFinite(ms)) {\n\t\t\t\tthrow new TypeError('Argument 1 is not a finite value, so it is out of range for unsigned long long.');\n\t\t\t} else if (ms < 0) {\n\t\t\t\tthrow new TypeError('Argument 1 is out of range for unsigned long long.');\n\t\t\t} else {\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tsetTimeout(() => controller.abort(new DOMException('The operation timed out.')), ms);\n\t\t\t\treturn controller.signal;\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * @see https://chromestatus.com/feature/5202879349522432\n\t * @TODO How do I handle if a signal is already aborted\n\t * @TODO Should controller abort on a TypeError\n\t */\n\tif (! (AbortSignal.any instanceof Function)) {\n\t\tAbortSignal.any = function(signals) {\n\t\t\tif (! Array.isArray(signals)) {\n\t\t\t\tthrow new TypeError('Expected an array of signals');\n\t\t\t}\n\n\t\t\tconst controller = new AbortController();\n\n\t\t\tfor (const signal of signals) {\n\t\t\t\tif (! (signal instanceof AbortSignal)) {\n\t\t\t\t\tconst err = new TypeError('`signal` is not an `AbortSignal`');\n\t\t\t\t\tcontroller.abort(err);\n\t\t\t\t\tthrow err;\n\t\t\t\t} else if (signal.aborted) {\n\t\t\t\t\tcontroller.abort(signal.reason || new DOMException('Operation aborted.'));\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\tcontroller.abort(target.reason || new DOMException('Operation aborted.'));\n\t\t\t\t\t}, { signal: controller.signal });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn controller.signal;\n\t\t};\n\t}\n})();\n","import { errorToEvent } from './assets/error.js';\n\nif (! globalThis.hasOwnProperty('AggregateError')) {\n\tglobalThis.AggregateError = class AggregateError extends Error {\n\t\tconstructor(errors, message) {\n\t\t\tif (typeof message === 'undefined') {\n\t\t\t\tsuper(errors);\n\t\t\t\tthis.errors = [];\n\t\t\t} else {\n\t\t\t\tsuper(message);\n\t\t\t\tthis.errors = errors;\n\t\t\t}\n\t\t}\n\t};\n}\n\nif (! (globalThis.reportError instanceof Function)) {\n\tglobalThis.reportError = function reportError(error) {\n\t\tglobalThis.dispatchEvent(errorToEvent(error));\n\t};\n}\n","(function() {\n\t'use strict';\n\n\tif (! ('MediaQueryListEvent' in globalThis)) {\n\t\t/**\n\t\t * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryListEvent\n\t\t */\n\t\tglobalThis.MediaQueryListEvent = class MediaQueryListEvent extends Event {\n\t\t\tconstructor(type, { media, matches } = {}) {\n\t\t\t\tsuper(type);\n\t\t\t\tObject.defineProperties(this, {\n\t\t\t\t\t'media': {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tvalue: media,\n\t\t\t\t\t},\n\t\t\t\t\t'matches': {\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tvalue: matches,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\n\tif ('MediaQueryList' in globalThis && ! (globalThis.MediaQueryList.prototype.addEventListener instanceof Function)) {\n\t\tconst targets = new WeakMap();\n\n\t\tconst listener = function listener() {\n\t\t\tconst { media, matches } = this;\n\t\t\tthis.dispatchEvent(new MediaQueryListEvent('change', { media, matches }));\n\t\t};\n\n\t\tconst init = function init(mql) {\n\t\t\tif (! targets.has(mql)) {\n\t\t\t\ttargets.set(mql, new EventTarget());\n\t\t\t\tmql.addListener(listener.bind(mql));\n\t\t\t}\n\n\t\t\treturn targets.get(mql);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.addEventListener = function addEventListener(type, callback, opts) {\n\t\t\tinit(this).addEventListener(type, callback, opts);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.removeEventListener = function removeEventListner(type, callback, opts) {\n\t\t\tinit(this).removeEventListener(type, callback, opts);\n\t\t};\n\n\t\tglobalThis.MediaQueryList.prototype.dispatchEvent = function dispatchEvent(event) {\n\t\t\tinit(this).dispatchEvent(event);\n\t\t};\n\t}\n})();\n","if ('Promise' in globalThis) {\n\tif (! (Promise.prototype.finally instanceof Function)) {\n\t\tPromise.prototype.finally = function(callback) {\n\t\t\treturn this.then(async val => {\n\t\t\t\tawait callback();\n\t\t\t\treturn val;\n\t\t\t}, async val => {\n\t\t\t\tawait callback();\n\t\t\t\treturn val;\n\t\t\t});\n\t\t};\n\t}\n\n\tif (! (Promise.allSettled instanceof Function)) {\n\t\tPromise.allSettled = function(promises) {\n\t\t\treturn Promise.all(Array.from(promises).map(function(call) {\n\t\t\t\treturn new Promise(function(resolve) {\n\t\t\t\t\tif (! (call instanceof Promise)) {\n\t\t\t\t\t\tcall = Promise.resolve(call);\n\t\t\t\t\t}\n\t\t\t\t\tcall.then(function(value) {\n\t\t\t\t\t\tresolve({ status: 'fulfilled', value: value });\n\t\t\t\t\t}).catch(function(reason) {\n\t\t\t\t\t\tresolve({ status: 'rejected', reason: reason });\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}));\n\t\t};\n\t}\n\n\tif (! (Promise.any instanceof Function)) {\n\t\tPromise.any = (promises) => new Promise((resolve, reject) => {\n\t\t\tlet errors = [];\n\n\t\t\tpromises.forEach(promise => {\n\t\t\t\tpromise.then(resolve).catch(e => {\n\t\t\t\t\terrors.push(e);\n\t\t\t\t\tif (errors.length === promises.length) {\n\t\t\t\t\t\treject(new globalThis.AggregateError(errors, 'No Promise in Promise.any was resolved'));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tif (! (Promise.race instanceof Function)) {\n\t\tPromise.race = (promises) => new Promise((resolve, reject) => {\n\t\t\tpromises.forEach(promise => promise.then(resolve, reject));\n\t\t});\n\t}\n\n\tif (! (Promise.try instanceof Function)) {\n\t\t/**\n\t\t * @see https://github.com/tc39/proposal-promise-try\n\t\t */\n\t\tPromise.try = callback => new Promise(resolve => resolve(callback()));\n\t}\n\n\tif (! (Promise.withResolvers instanceof Function)) {\n\t\tPromise.withResolvers = function() {\n\t\t\tconst def = {};\n\t\t\tdef.promise = new Promise((resolve, reject) => {\n\t\t\t\tdef.resolve = resolve;\n\t\t\t\tdef.reject = reject;\n\t\t\t});\n\n\t\t\treturn def;\n\t\t};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport class TextEncoder {\n\tget encoding() {\n\t\treturn 'utf-8';\n\t}\n\n\tencode(str) {\n\t\t// Identical to char up to 127, then [194, (n)] for n=(128-191),\n\t\t// then [194, (128-191)] for n=(192-255)\n\t\t// and it looks like this holds in intervals of 64\n\t\treturn new Uint8Array(str.split('').flatMap(char => {\n\t\t\tconst code = char.charCodeAt(0);\n\n\t\t\tif (code < 128) {\n\t\t\t\treturn [code];\n\t\t\t} else {\n\t\t\t\tconst pt = 194 + Math.floor((code - 128) / 64);\n\t\t\t\treturn [pt, (code % 64) + 128];\n\t\t\t}\n\t\t}));\n\t}\n\n\tencodeInto(str, ui8arr) {\n\t\tif (! (ui8arr instanceof Uint8Array)) {\n\t\t\tthrow new TypeError('TextEncoder.encodeInto: Argument 2 does not implement interface Uint8Array.');\n\t\t} else {\n\t\t\tconst encoded = this.encode(str);\n\t\t\tconst len = Math.min(ui8arr.length, encoded.length);\n\n\t\t\tif (encoded.length > ui8arr.length) {\n\t\t\t\tui8arr.set(encoded.slice(0, len));\n\t\t\t} else {\n\t\t\t\tui8arr.set(encoded);\n\t\t\t}\n\n\t\t\treturn { read: len, written: len };\n\t\t}\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { between } from './utility.js';\n/**\n *\n * Array of supported encodings\n * @Todo: At least add utf-16\n * @type {Array}\n */\nconst supportedEncodings = ['utf-8', 'utf8'];\n\nexport const BOM = new Uint8Array([0xEF, 0xBB, 0xBF]);\n\nexport class TextDecoder {\n\tconstructor(encoding = 'utf-8', { fatal = false, ignoreBOM = false } = {}) {\n\t\tif (typeof encoding !== 'string') {\n\t\t\tencoding = encoding.toString().toLowerCase();\n\t\t} else {\n\t\t\tencoding = encoding.toLowerCase();\n\t\t}\n\n\t\tif (! supportedEncodings.includes(encoding)) {\n\t\t\tthrow new RangeError(`TextDecoder constructor: The given encoding '${encoding}' is not supported.`);\n\t\t}\n\n\t\tObject.defineProperties(this, {\n\t\t\tencoding: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: encoding,\n\t\t\t},\n\t\t\tfatal: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: fatal,\n\t\t\t},\n\t\t\tignoreBOM: {\n\t\t\t\tconfigurable: false,\n\t\t\t\tenumerable: true,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: ignoreBOM,\n\t\t\t},\n\t\t});\n\t}\n\n\tdecode(data) {\n\t\tswitch(this.encoding) {\n\t\t\tcase 'utf-8':\n\t\t\tcase 'utf8': {\n\t\t\t\tlet prev = NaN;\n\t\t\t\t/**\n\t\t\t\t * For (0,127) we just take the charCode\n\t\t\t\t * For charCode 128+this will be in the form [n=194+, m=(128-191)]\n\t\t\t\t * where n increments after m reaches 191, increments, and rolls back to 128\n\t\t\t\t */\n\t\t\t\treturn data.reduce((str, i, n) => {\n\t\t\t\t\tif (Number.isNaN(prev) && i < 128) {\n\t\t\t\t\t\treturn str + String.fromCharCode(i);\n\t\t\t\t\t} else if (Number.isNaN(prev) && i > 193) {\n\t\t\t\t\t\tprev = i;\n\t\t\t\t\t\treturn str;\n\t\t\t\t\t} else if (prev > 193 && between(128, i, 194)) {\n\t\t\t\t\t\tconst offset = (prev - 194) * 64;\n\t\t\t\t\t\tprev = NaN;\n\t\t\t\t\t\treturn str + String.fromCharCode(offset + i);\n\t\t\t\t\t} else if (this.fatal) {\n\t\t\t\t\t\tthrow new RangeError(`Unhandled character at postion ${n}`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprev = NaN;\n\t\t\t\t\t\treturn str;\n\t\t\t\t\t}\n\t\t\t\t}, '');\n\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`Unsupported encoding '${this.encoding}'`);\n\t\t}\n\t}\n}\n","import { TextEncoder } from './assets/TextEncoder.js';\nimport { TextDecoder } from './assets/TextDecoder.js';\n\nif (! ('TextEncoder' in globalThis)) {\n\tglobalThis.TextEncoder = TextEncoder;\n}\n\nif (! ('TextDecoder' in globalThis)) {\n\tglobalThis.TextDecoder = TextDecoder;\n}\n\nif (! (globalThis.TextEncoder.prototype.encodeInto instanceof Function)) {\n\tglobalThis.TextEncoder.prototype.encodeInto = function(...args) {\n\t\treturn TextEncoder.prototype.encodeInto.apply(this, args);\n\t};\n}\n","if (crypto in globalThis && ! (crypto.randomUUID instanceof Function)) {\n\tcrypto.randomUUID = function randomUUID() {\n\t\t'use strict';\n\t\treturn ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>\n\t\t\t(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n\t\t);\n\t};\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @SEE https://wicg.github.io/cookie-store/\n * @SEE https://wicg.github.io/cookie-store/explainer.html\n * @NOTE: This offers similar methods but is not a substitute and cannot get extended\n * cookie properties, such as expires, etc.\n *\n * @TODO verify spec compliance as best as is possible\n */\n\nexport const nativeSupport = 'cookieStore' in globalThis;\n\nconst symbols = {\n\tconstructor: Symbol('constructor'),\n};\n\nfunction getAllCookies() {\n\tif (document.cookie.length === 0) {\n\t\treturn [];\n\t} else {\n\t\treturn document.cookie.split(';').map(str => {\n\t\t\tconst [name, value = null] = str.split('=');\n\t\t\treturn {\n\t\t\t\tname: decodeURIComponent(name.trim()),\n\t\t\t\tvalue: typeof value === 'string' ? decodeURIComponent(value.trim()) : null,\n\t\t\t\tpath: undefined,\n\t\t\t\texpires: undefined,\n\t\t\t\tdomain: undefined,\n\t\t\t\tsameSite: undefined,\n\t\t\t\tsecure: undefined,\n\t\t\t\tpartitioned: false,\n\t\t\t};\n\t\t});\n\t}\n}\n\nfunction defaultParams({\n\tname,\n\tvalue = null,\n\tdomain = null,\n\tpath = '/',\n\texpires = null,\n\tmaxAge = null,\n\tsameSite = 'lax',\n\tsecure = false,\n\tpartitioned = false,\n}) {\n\treturn { name, value, domain, path, expires, maxAge, sameSite, secure, partitioned };\n}\n\nfunction getter({ name = null, value = null } = {}) {\n\tif (typeof name === 'string') {\n\t\tname = decodeURIComponent(name);\n\t}\n\n\tif (typeof value === 'string') {\n\t\tvalue = decodeURIComponent(value);\n\t}\n\n\tif (typeof name === 'string' && typeof value === 'string') {\n\t\treturn getAllCookies().filter((cookie) =>\n\t\t\tcookie.name === name && cookie.value === value\n\t\t);\n\t} else if (typeof name === 'string') {\n\t\treturn getAllCookies().filter(cookie => cookie.name === name);\n\t} else if (typeof value === 'string') {\n\t\treturn getAllCookies().filter(cookie => cookie.value === value);\n\t} else {\n\t\treturn getAllCookies();\n\t}\n}\n\nfunction setter({\n\tname,\n\tvalue,\n\texpires = null,\n\tmaxAge = null,\n\tpath = '/',\n\tsameSite = 'lax',\n\tdomain = null,\n\tsecure = false,\n\tpartitioned = false,\n}) {\n\tif (Number.isInteger(maxAge)) {\n\t\tsetter({\n\t\t\tname, value, expires: Date.now() + maxAge, path, sameSite, domain, secure, partitioned,\n\t\t});\n\t} else {\n\t\tlet cookie = `${encodeURIComponent(name)}=`;\n\n\t\tif (value) {\n\t\t\tcookie += encodeURIComponent(value);\n\t\t}\n\n\t\tif (Number.isInteger(expires)) {\n\t\t\tcookie += `;expires=${new Date(expires).toUTCString()}`;\n\t\t} else if (expires instanceof Date) {\n\t\t\tcookie += `;expires=${expires.toUTCString()}`;\n\t\t}\n\n\t\tif (typeof path === 'string') {\n\t\t\tcookie += `;path=${path}`;\n\t\t}\n\n\t\tif (typeof domain === 'string') {\n\t\t\tcookie += `;domain=${domain}`;\n\t\t}\n\n\t\tif (typeof sameSite === 'string') {\n\t\t\tcookie += `;sameSite=${sameSite}`;\n\t\t}\n\n\t\tif (secure === true) {\n\t\t\tcookie += ';secure';\n\t\t}\n\n\t\tif (partitioned === true) {\n\t\t\tcookie += ';partitioned';\n\t\t}\n\n\t\tdocument.cookie = cookie;\n\t}\n}\n\nexport class CookieStore extends EventTarget {\n\tconstructor(key) {\n\t\tif (key !== symbols.constructor) {\n\t\t\tthrow new DOMException('Invalid constructor');\n\t\t}\n\n\t\tsuper();\n\n\t\tObject.defineProperty(this, symbols.onchange, {\n\t\t\tenumerable: false,\n\t\t\tconfigurable: false,\n\t\t\twritable: true,\n\t\t\tvalue: null,\n\t\t});\n\t}\n\n\tget onchange() {\n\t\treturn this[symbols.onchange];\n\t}\n\n\tset onchange(callback) {\n\t\tif (this[symbols.onchange] instanceof Function) {\n\t\t\tthis.removeEventListener('change', this[symbols.onchange]);\n\t\t}\n\n\t\tif (callback instanceof Function) {\n\t\t\tthis.addEventListener('change', callback);\n\t\t}\n\t}\n\n\tasync get(args) {\n\t\tconst cookies = await this.getAll(args);\n\n\t\tif (Array.isArray(cookies) && cookies.length !== 0) {\n\t\t\treturn cookies[0];\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tasync getAll(args) {\n\t\tif (typeof args === 'string') {\n\t\t\treturn getter({ name: args });\n\t\t} else {\n\t\t\treturn getter(args);\n\t\t}\n\t}\n\n\tasync set(...args) {\n\t\tif (args.length === 1 && typeof args[0] === 'object' && typeof args[0].name === 'string') {\n\t\t\tconst cookie = defaultParams(args[0]);\n\t\t\tsetter(cookie);\n\t\t\tconst event = new Event('change');\n\t\t\tevent.changed = [cookie];\n\t\t\tevent.deleted = [];\n\n\t\t\tthis.dispatchEvent(event);\n\t\t} else if (args.length === 2) {\n\t\t\tthis.set({ name: args[0], value: args[1] });\n\t\t} else {\n\t\t\tthrow new Error('Invalid arguments');\n\t\t}\n\t}\n\n\tasync delete(args = {}) {\n\t\tif (typeof args === 'string') {\n\t\t\tthis.delete({ name: args });\n\t\t} else if (typeof args === 'object' && typeof args.name === 'string') {\n\t\t\tconst cookies = await this.getAll(args);\n\n\t\t\tif (cookies.length !== 0) {\n\t\t\t\tconst event = new Event('change');\n\t\t\t\tevent.changed = [];\n\t\t\t\tevent.deleted = new Array(cookies.length);\n\n\t\t\t\tcookies.forEach((cookie, i) => {\n\t\t\t\t\tcookie.path = args.path || '/';\n\t\t\t\t\tcookie.domain = args.domain || null;\n\t\t\t\t\tcookie.secure = args.secure || null;\n\t\t\t\t\tdelete cookie.value;\n\t\t\t\t\tcookie.sameSite = args.sameSite || 'lax';\n\n\t\t\t\t\tevent.deleted[i] = cookie;\n\t\t\t\t\tsetter({...cookie, value: null, expires: 1 });\n\t\t\t\t});\n\n\t\t\t\tthis.dispatchEvent(event);\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to execute \\'delete\\' on \\'CookieStore\\': required member name is undefined.');\n\t\t}\n\t}\n}\n\nexport const cookieStore = new CookieStore(symbols.constructor);\n\nexport function polyfill() {\n\tif (! nativeSupport) {\n\t\tglobalThis.cookieStore = cookieStore;\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n}\n","(function() {\n\t'use strict';\n\n\tif (globalThis.hasOwnProperty('Animation') && ! Animation.prototype.hasOwnProperty('finished')) {\n\t\tObject.defineProperty(Animation.prototype, 'finished', {\n\t\t\tget: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (this.playState === 'finished') {\n\t\t\t\t\t\tresolve(this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.addEventListener('finish', () => resolve(this), { once: true });\n\t\t\t\t\t\tthis.addEventListener('error', event => reject(event), { once: true });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tif (globalThis.hasOwnProperty('Animation') && ! Animation.prototype.hasOwnProperty('ready')) {\n\t\tObject.defineProperty(Animation.prototype, 'ready', {\n\t\t\tget: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (! this.pending) {\n\t\t\t\t\t\tresolve(this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.addEventListener('ready', () => resolve(this), { once: true });\n\t\t\t\t\t\tthis.addEventListener('error', event => reject(event), { once: true });\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n})();\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const events = Object.keys(\n\tObject.getOwnPropertyDescriptors(HTMLElement.prototype)\n).filter(desc => desc.startsWith('on'));\n\nexport const urls = [\n\t'action',\n\t'cite',\n\t'formaction',\n\t'href',\n\t'ping',\n\t'src',\n];\n","import { callOnce } from './utility.js';\n\nexport const getHTTPCSP = callOnce(async function getHTTPCSP() {\n\tconst { ok, headers } = await fetch(location.href, { method: 'HEAD' });\n\n\tif (ok && headers.has('Content-Security-Policy')) {\n\t\tconst directives = headers.get('Content-Security-Policy').trim().split(';').filter(str => str.length !== 0);\n\n\t\treturn Object.fromEntries(directives.map(directive => {\n\t\t\tconst [key, ...rest] = directive.trim().split(' ').filter(part => part.length !== 0);\n\t\t\treturn [key, rest];\n\t\t}));\n\t}\n});\n\nexport function getMetaCSP() {\n\tconst meta = document.head.querySelector('meta[http-equiv=\"Content-Security-Policy\"][content]');\n\n\tif (meta instanceof HTMLMetaElement) {\n\t\tconst directives = meta.content.trim().split(';').filter(str => str.length !== 0);\n\n\t\treturn Object.fromEntries(directives.map(directive => {\n\t\t\tconst [key, ...rest] = directive.trim().split(' ').filter(part => part.length !== 0);\n\t\t\treturn [key, rest];\n\t\t}));\n\t} else {\n\t\treturn {};\n\t}\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { supported as isSupported } from './trust.js';\nimport { events } from './attributes.js';\nimport { getMetaCSP, getHTTPCSP } from './csp.js';\n/**\n * @See https://github.com/w3c/webappsec-trusted-types/blob/main/src/trustedtypes.js\n * @See https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API\n */\n\n// `<html data-fetch-trust-csp=\"1\">` will enable using actual CSP\nconst fetchCSP = document.documentElement.dataset.fetchTrustCsp === '1';\n\nfunction parseCSP({ 'trusted-types': trustedTypes = null } = {}) {\n\tif (Array.isArray(trustedTypes)) {\n\t\tconst policies = new Set(trustedTypes);\n\t\tconst allowDuplicates = policies.has('\\'allow-duplicates\\'');\n\t\tconst hasNone = policies.has('\\'none\\'');\n\n\t\tif (allowDuplicates) {\n\t\t\tpolicies.delete('\\'allow-duplicates\\'');\n\t\t}\n\n\t\tif (hasNone) {\n\t\t\tpolicies.clear();\n\t\t}\n\n\t\tpolicies.add('empty#html');\n\t\tpolicies.add('empty#script');\n\n\t\treturn { policies, allowDuplicates, hasNone };\n\t} else {\n\t\treturn {};\n\t}\n}\n\nasync function getActualCSP() {\n\tconst { policies, allowDuplicates = false, hasNone = false } = await getHTTPCSP().then(parseCSP);\n\n\tif (policies instanceof Set) {\n\t\treturn { policies, allowDuplicates, hasNone };\n\t} else {\n\t\treturn {};\n\t}\n}\n\nfunction init() {\n\t// Temporary config if/while fetching actual CSP\n\t// Maps to `trusted-types 'allow-duplicates'`\n\tconst getAllowDuplicates = () => {\n\t\tconst csp = parseCSP(getMetaCSP());\n\n\t\tif (typeof csp === 'object' && 'allowDuplicates' in csp) {\n\t\t\treturn csp.allowDuplicates;\n\t\t} else {\n\t\t\treturn document.documentElement.dataset.allowTrustDuplicates === '1';\n\t\t}\n\t};\n\n\tconst getAllowedPolicies = () => {\n\t\tif (document.documentElement.dataset.hasOwnProperty('trustedPolicies')) {\n\t\t\treturn new Set([\n\t\t\t\t'empty#html', 'empty#script',\n\t\t\t\t...document.documentElement.dataset.trustedPolicies.split(' '),\n\t\t\t]);\n\t\t} else {\n\t\t\tconst { policies } = parseCSP(getMetaCSP());\n\n\t\t\tif (policies instanceof Set) {\n\t\t\t\treturn policies;\n\t\t\t} else {\n\t\t\t\treturn new Set(['empty#html', 'empty#script']);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst fromCSP = parseCSP(getMetaCSP());\n\n\tif (typeof fromCSP === 'object' && fromCSP.policies instanceof Set) {\n\t\tconst { policies: allowedPolicies, allowDuplicates } = fromCSP;\n\t\treturn { allowDuplicates, allowedPolicies };\n\t} else {\n\t\tconst allowDuplicates = getAllowDuplicates();\n\t\tconst allowedPolicies = getAllowedPolicies();\n\n\t\tif (allowedPolicies.has('\\'none\\'')) {\n\t\t\tallowedPolicies.clear();\n\t\t}\n\n\t\tallowedPolicies.add('empty#html');\n\t\tallowedPolicies.add('empty#script');\n\n\t\treturn { allowDuplicates, allowedPolicies };\n\t}\n}\n\nconst { allowDuplicates, allowedPolicies } = init();\n\n/**\n * [supported description]\n */\nexport const supported = isSupported();\n\n/**\n * [symbols description]\n * @type {Object}\n */\nconst symbols = {\n\ttrustedValue: Symbol('[[Data]]'),\n\ttrustedKey: Symbol('trusted-key'),\n\temptyHTML: Symbol('policy-empty#html'),\n\temptyScript: Symbol('policy-empty#script'),\n\tpolicy: Symbol.for('trust-policy'),\n\tdefaultPolicy: Symbol('default-policy'),\n\ttrustedTypesCSP: Symbol('trusted-types-csp'),\n};\n\nif (! Symbol.hasOwnProperty('toStringTag')) {\n\tSymbol.toStringTag = Symbol('Symbol.toStringTag');\n}\n\nconst policies = [];\n\nfunction getPolicy(name) {\n\treturn policies.find(policy => policy.name === name) || null;\n}\n\nfunction hasPolicy(name) {\n\treturn getPolicy(name) !== null;\n}\n\n/**\n * [getUnsetPolicyException description]\n * @param {TrustedTypePolicy} policy [description]\n * @param {String} method [description]\n */\nfunction getUnsetPolicyException(policy, method) {\n\treturn function() {\n\t\tthrow new TypeError(`Failed to execute '${method}' on 'TrustedTypePolicy': Policy ${policy.name}'s TrustedTypePolicyOptions did not specify a '${method}' member.`);\n\t};\n}\n\n/**\n * [TrustedType description]\n * @type {TrustedType}\n */\nexport class TrustedType {\n\t/**\n\t * [constructor description]\n\t * @param {String} value [description]\n\t * @param {Symbol} key [description]\n\t */\n\tconstructor(value, { key, policy }) {\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t} else {\n\t\t\tObject.defineProperties(this, {\n\t\t\t\t[symbols.trustedValue]: {\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: value.toString(),\n\t\t\t\t},\n\t\t\t\t[symbols.policy]: {\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: policy.name,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.freeze(this);\n\t\t}\n\t}\n\n\t/**\n\t * [toString description]\n\t * @return {String} [description]\n\t */\n\ttoString() {\n\t\treturn this.valueOf();\n\t}\n\n\t/**\n\t * [toJSON description]\n\t * @return {String} [description]\n\t */\n\ttoJSON() {\n\t\treturn this.valueOf();\n\t}\n\n\tvalueOf() {\n\t\treturn this[symbols.trustedValue];\n\t}\n}\n\n/**\n * [description]\n * @type {TrustedHTML}\n */\nexport class TrustedHTML extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedHTML';\n\t}\n}\n\n/**\n * [description]\n * @type {TrustedScript}\n */\nexport class TrustedScript extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedScript';\n\t}\n}\n\n/**\n * [name description]\n * @type {TrustedScriptURL}\n */\nexport class TrustedScriptURL extends TrustedType {\n\t[Symbol.toStringTag]() {\n\t\treturn 'TrustedScriptURL';\n\t}\n}\n\n/**\n * [name description]\n * @type {TrustedTypePolicy}\n */\nexport class TrustedTypePolicy {\n\t/**\n\t * [constructor description]\n\t * @param {String} name [description]\n\t * @param {Function} createHTML [description]\n\t * @param {Function} createScript [description]\n\t * @param {Function} createScriptURL [description]\n\t * @param {String} key [description]\n\t */\n\tconstructor(name, { createHTML, createScript, createScriptURL } = {}, { key }) {\n\t\t// @TODO: Chrome seems to allow any same-origin scripts creating policies\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t} else {\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tname: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: name.toString(),\n\t\t\t\t},\n\t\t\t\tcreateHTML: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createHTML instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedHTML(\n\t\t\t\t\t\t\tcreateHTML(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createHTML'),\n\t\t\t\t},\n\t\t\t\tcreateScript: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createScript instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedScript(\n\t\t\t\t\t\t\tcreateScript(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createScript'),\n\t\t\t\t},\n\t\t\t\tcreateScriptURL: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t\tvalue: createScriptURL instanceof Function\n\t\t\t\t\t\t? (input, ...args) => new TrustedScriptURL(\n\t\t\t\t\t\t\tcreateScriptURL(input.toString(), ...args),\n\t\t\t\t\t\t\t{ key: symbols.trustedKey, policy: this }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: getUnsetPolicyException(this, 'createScriptURL'),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n}\n\n/**\n * [enumerable description]\n * @type {TrustedTypePolicyFactory}\n */\nexport class TrustedTypePolicyFactory extends EventTarget {\n\t/**\n\t * [constructor description]\n\t * @param {Symbol} key [description]\n\t */\n\tconstructor(key) {\n\t\tsuper();\n\n\t\tif (key !== symbols.trustedKey) {\n\t\t\tthrow new TypeError('Invalid constructor');\n\t\t}\n\n\t\tif (fetchCSP) {\n\t\t\tgetActualCSP().then(({ policies, allowDuplicates = false, hasNone = false }) => {\n\t\t\t\tif (typeof policies !== 'undefined') {\n\t\t\t\t\tObject.defineProperty(TrustedTypePolicyFactory, symbols.trustedTypesCSP, {\n\t\t\t\t\t\tvalue: { policies, allowDuplicates, hasNone },\n\t\t\t\t\t\tenumberable: false,\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tconfigurable: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}).catch(err => console.error(err));\n\t\t}\n\n\t\tObject.defineProperties(this, {\n\t\t\t[symbols.defaultPolicy]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: null,\n\t\t\t},\n\t\t\t[symbols.emptyHTML]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: this.createPolicy('empty#html', { createHTML: () => '' }),\n\t\t\t},\n\t\t\t[symbols.emptyScript]: {\n\t\t\t\tenumerable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t\twritable: false,\n\t\t\t\tvalue: this.createPolicy('empty#script', { createScript: () => '' }),\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * [isHTML description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisHTML(value) {\n\t\treturn value instanceof globalThis.TrustedHTML;\n\t}\n\n\t/**\n\t * [isScript description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisScript(value) {\n\t\treturn value instanceof globalThis.TrustedScript;\n\t}\n\n\t/**\n\t * [isScriptURL description]\n\t * @param {String} value [description]\n\t * @return {Boolean} [description]\n\t */\n\tisScriptURL(value) {\n\t\treturn value instanceof globalThis.TrustedScriptURL;\n\t}\n\n\t/**\n\t * [createPolicy description]\n\t * @param {String} name [description]\n\t * @param {Function} createHTML [description]\n\t * @param {Function} createScript [description]\n\t * @param {Function} createScriptURL [description]\n\t */\n\tcreatePolicy(name, { createHTML, createScript, createScriptURL } = {}) {\n\t\tconst policy = new TrustedTypePolicy(name, { createHTML, createScript, createScriptURL }, { key: symbols.trustedKey });\n\n\t\tif (! name.toString().match(/^[-#a-zA-Z0-9=_/@.%]+$/g)) {\n\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" contains invalid characters.`);\n\t\t} else if (TrustedTypePolicyFactory.hasOwnProperty(symbols.trustedTypesCSP)) {\n\t\t\t// This requires `fetch()` and parsing response headers, so will not be immediately available\n\t\t\tconst { policies, allowDuplicates, hasNone } = TrustedTypePolicyFactory[symbols.trustedTypesCSP];\n\n\t\t\t// Will always allow `empty#html` and `empty#script`\n\t\t\tif (hasNone && name !== 'empty#html' && name !== 'empty#script') {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if (! policies.has(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if(! allowDuplicates && hasPolicy(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" already exists.`);\n\t\t\t}\n\t\t} else {\n\t\t\t// This is the fallback for before CSP headers are fetched and uses `document.documentElement.dataset`\n\t\t\tif (allowedPolicies.size > 2 && ! allowedPolicies.has(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" disallowed.`);\n\t\t\t} else if(! allowDuplicates && hasPolicy(name)) {\n\t\t\t\tthrow new TypeError(`Failed to execute 'createPolicy' on 'TrustedTypePolicyFactory': Policy: \"${name}\" already exists.`);\n\t\t\t}\n\t\t}\n\n\t\tif (policy.name === 'default') {\n\t\t\tthis[symbols.defaultPolicy] = policy;\n\t\t}\n\n\t\tpolicies.push(policy);\n\n\t\treturn policy;\n\t}\n\n\t/**\n\t * [getAttributeType description]\n\t * @param {String} tagName [description]\n\t * @param {String} attribute [description]\n\t * @param {String} elementNs [description]\n\t * @return {String} [description]\n\t */\n\tgetAttributeType(tagName, attribute, elementNs/*, attrNs*/) {\n\t\ttagName = tagName.toLowerCase();\n\t\tattribute = attribute.toLowerCase();\n\n\t\t/**\n\t\t * @Todo handle namespaced attributes\n\t\t */\n\t\tif (typeof elementNS === 'string' && elementNs.length !== 0) {\n\t\t\treturn events.includes(attribute) ? 'TrustedScript' : null;\n\t\t}\n\n\t\t/**\n\t\t * This is an `on*` attribute\n\t\t */\n\t\tif (events.includes(attribute)) {\n\t\t\treturn 'TrustedScript';\n\t\t}\n\n\t\tswitch(tagName) {\n\t\t\tcase 'script': {\n\t\t\t\tif (attribute === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'iframe': {\n\t\t\t\tif (attribute === 'srcdoc') {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else if (attribute === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * [getPropertyType description]\n\t * @param {String} tagName [description]\n\t * @param {String} property [description]\n\t * @return {String} [description]\n\t */\n\tgetPropertyType(tagName, property/*, elementNS*/) {\n\t\ttagName = tagName.toLowerCase();\n\n\t\tif (events.includes(property.toLowerCase())) {\n\t\t\treturn 'TrustedScript';\n\t\t}\n\n\t\tswitch(tagName) {\n\t\t\tcase 'embed':\n\t\t\tcase 'iframe': {\n\t\t\t\tif (property === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase 'script': {\n\t\t\t\tif (property === 'src') {\n\t\t\t\t\treturn 'TrustedScriptURL';\n\t\t\t\t} else if (['text', 'innerText', 'textContent', 'innerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedScript';\n\t\t\t\t} else if (['outerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tif (['innerHTML', 'outerHTML'].includes(property)) {\n\t\t\t\t\treturn 'TrustedHTML';\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * [emptyHTML description]\n\t * @return {TrustedHTML}\n\t */\n\tget emptyHTML() {\n\t\treturn this[symbols.emptyHTML].createHTML('');\n\t}\n\n\t/**\n\t * [emptyScript description]\n\t * @return {TrustedScript}\n\t */\n\tget emptyScript() {\n\t\treturn this[symbols.emptyScript].createScript('');\n\t}\n\n\t/**\n\t * [defaultPolicy description]\n\t * @return {TrustedTypePolicy} [description]\n\t */\n\tget defaultPolicy() {\n\t\treturn this[symbols.defaultPolicy];\n\t}\n\n\t/**\n\t * For consistency with existing polyfill\n\t * @return {Boolean} [description]\n\t */\n\tget _isPolyfill_() {\n\t\treturn true;\n\t}\n\n\tstatic get allowDuplicates() {\n\t\treturn allowDuplicates;\n\t}\n}\n\n/**\n * [trustedTypes description]\n * @type {TrustedTypeFactory}\n */\nexport const trustedTypes = new TrustedTypePolicyFactory(symbols.trustedKey);\n\n/**\n * [polyfill description]\n * @return {[type]} [description]\n */\nexport function polyfill() {\n\tif (! ('TrustedTypePolicyFactory' in globalThis)) {\n\t\tglobalThis.TrustedTypePolicyFactory = TrustedTypePolicyFactory;\n\t}\n\n\tif (! ('TrustedTypePolicy' in globalThis)) {\n\t\tglobalThis.TrustedTypePolicy = TrustedTypePolicy;\n\t}\n\n\tif (! ('TrustedType' in globalThis)) {\n\t\tglobalThis.TrustedType = TrustedType;\n\t}\n\n\tif (! ('TrustedHTML' in globalThis)) {\n\t\tglobalThis.TrustedHTML = TrustedHTML;\n\t}\n\n\tif (! ('TrustedScript' in globalThis)) {\n\t\tglobalThis.TrustedScript = TrustedScript;\n\t}\n\n\tif (! ('TrustedScriptURL' in globalThis)) {\n\t\tglobalThis.TrustedScriptURL = TrustedScriptURL;\n\t}\n\n\tif (! ('trustedTypes' in globalThis)) {\n\t\tglobalThis.trustedTypes = trustedTypes;\n\t} else {\n\t\ttry {\n\t\t\t/**\n\t\t\t * Create these policies even if not needed to prevent\n\t\t\t * their use elsewhere. Not creating them but allowing them via CSP\n\t\t\t * would allow creating them as arbitrary policies.\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\tglobalThis.trustedTypes.createPolicy('empty#html', { createHTML: () => '' });\n\t\t\tglobalThis.trustedTypes.createPolicy('empty#script', { createScript: () => '' });\n\t\t} catch(err) {\n\t\t\tconsole.error(err);\n\t\t}\n\t}\n}\n\nexport const trustPolicies = [...allowedPolicies];\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nimport { callOnce } from './utility.js';\n\nexport function setProp(el, prop, val, {\n\tpolicy,\n} = {}) {\n\tswitch(getPropertyType(el.tagName, prop)) {\n\t\tcase 'TrustedScript':\n\t\t\tel[prop] = createScript(val, { policy });\n\t\t\tbreak;\n\n\t\tcase 'TrustedScriptURL':\n\t\t\tel[prop] = createScriptURL(val, { policy });\n\t\t\tbreak;\n\n\t\tcase 'TrustedHTML':\n\t\t\tel[prop] = createHTML(val, { policy });\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tel[prop] = val;\n\t}\n}\n\nexport function setAttr(el, attr, val, {\n\telementNs,\n\tpolicy,\n} = {}) {\n\tswitch(getAttributeType(el.tagName, attr, elementNs)) {\n\t\tcase 'TrustedScriptURL':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNs(elementNs, attr, createScriptURL(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createScriptURL(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'TrustedScript':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, createScript(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createScript(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'TrustedHTML':\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, createHTML(val, { policy }));\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, createHTML(val, { policy }));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tif (typeof elementNs === 'string') {\n\t\t\t\tel.setAttributeNS(elementNs, attr, val);\n\t\t\t} else {\n\t\t\t\tel.setAttribute(attr, val);\n\t\t\t}\n\t}\n}\n\nexport function supported() {\n\treturn 'trustedTypes' in globalThis\n\t\t&& trustedTypes instanceof EventTarget\n\t\t&& trustedTypes.createPolicy instanceof Function;\n}\n\nexport function isTrustPolicy(policy) {\n\tif ('TrustedTypePolicy' in globalThis && policy instanceof TrustedTypePolicy) {\n\t\treturn true;\n\t} else {\n\t\treturn policy != null && policy.createHTML instanceof Function;\n\t}\n}\n\nexport function hasDefaultPolicy() {\n\treturn supported() && isTrustPolicy(trustedTypes.defaultPolicy);\n}\n\nexport function getAttributeType(tagName, attribute, elementNs) {\n\tif (supported()) {\n\t\treturn trustedTypes.getAttributeType(tagName.toLowerCase(), attribute, elementNs);\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport function getPropertyType(tagName, property) {\n\tif (supported()) {\n\t\treturn trustedTypes.getPropertyType(tagName.toLowerCase(), property);\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport function isHTML(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isHTML(input);\n\t} else {\n\t\treturn typeof input === 'string';\n\t}\n}\n\nexport function isScript(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isScript(input);\n\t} else {\n\t\treturn typeof input === 'string';\n\t}\n}\n\nexport function isScriptURL(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isScriptURL(input);\n\t} else {\n\t\treturn typeof input === 'string' || input instanceof URL;\n\t}\n}\n\nexport function isTrustedType(input) {\n\tif (supported()) {\n\t\treturn trustedTypes.isHTML(input) || trustedTypes.isScript(input) || trustedTypes.isScriptURL(input);\n\t} else {\n\t\treturn true;\n\t}\n}\n\nexport function createHTML(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isHTML(input)) {\n\t\treturn policy.createHTML(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createScript(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isScript(input)) {\n\t\treturn policy.createScript(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createScriptURL(input, { policy = getDefaultPolicy() } = {}) {\n\tif (isTrustPolicy(policy) && ! isScriptURL(input)) {\n\t\treturn policy.createScriptURL(input);\n\t} else {\n\t\treturn input;\n\t}\n}\n\nexport function createPolicy(name, {\n\tcreateHTML = () => {\n\t\tthrow new TypeError('This policy does not provide `createHTML()`');\n\t},\n\tcreateScript = () => {\n\t\tthrow new TypeError('This policy does not provide `createScript()`');\n\t},\n\tcreateScriptURL = () => {\n\t\tthrow new TypeError('This policy does not provide `createScriptURL()`');\n\t},\n}) {\n\tif (supported()) {\n\t\treturn trustedTypes.createPolicy(name, { createHTML, createScript, createScriptURL });\n\t} else {\n\t\treturn Object.freeze({\n\t\t\tname,\n\t\t\tcreateHTML: (input, ...args) => createHTML(input.toString(), ...args),\n\t\t\tcreateScript: (input, ...args) => createScript(input.toString(), ...args),\n\t\t\tcreateScriptURL: (input, ...args) => createScriptURL(input.toString(), ...args),\n\t\t});\n\t}\n}\n\nexport function getDefaultPolicy() {\n\tif (supported()) {\n\t\treturn trustedTypes.defaultPolicy;\n\t} else {\n\t\treturn null;\n\t}\n}\n\nexport const createHTMLPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createHTML: cb }));\n\nexport const createScriptPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createScript: cb }));\n\nexport const createScriptURLPolicyGetter = (name, cb) => callOnce(() => createPolicy(name, { createScriptURL: cb }));\n","import { polyfill, trustPolicies } from './assets/TrustedTypes.js';\nconst polyfilled = polyfill();\nexport { trustPolicies, polyfilled };\n","/**\n * This **REQUIRES** a CSP with `style-src blob:`\n */\nexport const adoptedStyleSheets = {\n\tget() {\n\t\treturn Array.from(this.styleSheets)\n\t\t\t.filter(sheet => sheet.ownerNode.classList.contains('_adopted'));\n\t},\n\tset(sheets) {\n\t\tif (! Array.isArray(sheets)) {\n\t\t\tthrow new TypeError('Must be an array');\n\t\t} else {\n\t\t\tconst current = new Set(this.adoptedStyleSheets);\n\n\t\t\tcurrent.difference(sheets).forEach(sheet => sheet.ownerNode.remove());\n\n\t\t\tconst links = [...new Set(sheets).difference(current)].map(sheet => {\n\t\t\t\tconst link = document.createElement('link');\n\t\t\t\tconst controller = new AbortController();\n\t\t\t\tconst signal = controller.signal;\n\t\t\t\tconst url = URL.createObjectURL(new File([], 'adopted.css', { type: 'text/css' }));\n\t\t\t\tlink.rel = 'stylesheet';\n\t\t\t\tlink.href = url;\n\t\t\t\tlink.classList.add('_adopted');\n\t\t\t\tlink.disabled = sheet.disabled;\n\n\n\t\t\t\tlink.addEventListener('load', ({ target }) => {\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t\tlink.media = sheet.media.mediaText;\n\t\t\t\t\t[...sheet.cssRules].forEach((rule, index) => {\n\t\t\t\t\t\ttarget.sheet.insertRule(rule.cssText, index);\n\t\t\t\t\t});\n\n\t\t\t\t\tsetTimeout(() => URL.revokeObjectURL(target.href), 100);\n\t\t\t\t}, { once: true, signal });\n\n\t\t\t\tlink.addEventListener('error', ({ target }) => {\n\t\t\t\t\tcontroller.abort();\n\t\t\t\t\tURL.revokeObjectURL(target.href);\n\t\t\t\t}, { once: true, signal });\n\n\t\t\t\treturn link;\n\t\t\t});\n\n\t\t\tif (this instanceof Document) {\n\t\t\t\tthis.head.append(...links);\n\t\t\t} else {\n\t\t\t\tthis.append(...links);\n\t\t\t}\n\t\t}\n\t}\n};\n","export function createSheet(rules = '', { disabled = false, media } = {}) {\n\tconst style = Document.parseHTML(\n\t\t`<style>${rules}</style>`,\n\t\t{ sanitizer: new Sanitizer({ allowElements: ['style', 'html', 'head', 'body'] }) }\n\t);\n\n\tconst sheet = style.styleSheets.item(0);\n\n\tif (typeof media === 'string') {\n\t\tsheet.media.appendMedium(media);\n\t}\n\tsheet.disabled = disabled;\n\treturn sheet;\n}\n\nexport function clearCSSRules(sheet) {\n\twhile (sheet.cssRules.length > 0) {\n\t\tsheet.deleteRule(0);\n\t}\n}\n\ntry {\n\tnew CSSStyleSheet();\n} catch {\n\tconst NativeStyleSheet = globalThis.CSSStyleSheet;\n\n\tglobalThis.CSSStyleSheet = function CSSStyleSheet({ disabled = false, media } = {}) {\n\t\t// Need at least one rule to create the `.sheet`\n\t\tconst sheet = createSheet('#dfgbkjdfg{color:red;}', { disabled, media });\n\t\tsheet.deleteRule(0);\n\t\treturn sheet;\n\t};\n\n\tglobalThis.CSSStyleSheet.prototype = NativeStyleSheet.prototype;\n\tNativeStyleSheet.prototype.constructor = globalThis.CSSStyleSheet;\n}\n\nif (! (CSSStyleSheet.prototype.replace instanceof Function)) {\n\tCSSStyleSheet.prototype.replace = function replace(rules) {\n\t\tconst link = document.createElement('link');\n\t\tconst controller = new AbortController();\n\t\tconst { resolve, reject, promise } = Promise.withResolvers();\n\n\t\tlink.addEventListener('load', ({ target }) => {\n\t\t\tclearCSSRules(this);\n\t\t\t[...target.sheet.cssRules].forEach((rule, i) => this.insertRule(rule.cssText, i));\n\t\t\tresolve(this);\n\t\t\tcontroller.abort();\n\t\t\tURL.revokeObjectURL(target.href);\n\t\t\ttarget.remove();\n\t\t}, { once: true, signal: controller.signal });\n\n\t\tlink.addEventListener('error', ({ target }) => {\n\t\t\tconst error = new DOMException('Error loading stylesheet.');\n\t\t\treject(error);\n\t\t\tcontroller.abort(error);\n\t\t\tURL.revokeObjectURL(target.href);\n\t\t\ttarget.remove();\n\t\t}, { once: true, signal: controller.signal });\n\n\t\tlink.rel = 'stylesheet';\n\t\tlink.crossOrigin = 'anonymous';\n\t\tlink.referrerPolicy = 'no-referrer';\n\t\tlink.media = 'no-op';\n\t\tlink.href = URL.createObjectURL(new File([rules], 'tmp.css', { type: 'text/css' }));\n\t\tdocument.head.append(link);\n\n\t\treturn promise;\n\t};\n}\n\nif (! (CSSStyleSheet.prototype.replaceSync instanceof Function)) {\n\tCSSStyleSheet.prototype.replaceSync = function replaceSync(rules) {\n\t\tconst sheet = Document.parseHTML(\n\t\t\t`<style>${rules}</style>`,\n\t\t\t{ sanitizer: new Sanitizer({ allowElements: ['style', 'html', 'head', 'body'] }) }\n\t\t).styleSheets.item(0);\n\n\t\tclearCSSRules(this);\n\n\t\t[...sheet.cssRules].forEach((rule, i) => this.insertRule(rule.cssText, i));\n\t};\n}\n","import { polyfillGetterSetter } from './utils.js';\nimport { adoptedStyleSheets } from './assets/adoptedStylesheets.js';\n\npolyfillGetterSetter(Document.prototype, 'adoptedStyleSheets', adoptedStyleSheets);\n","import { polyfillGetterSetter } from './utils.js';\nimport { adoptedStyleSheets } from './assets/adoptedStylesheets.js';\n\nif ('ShadowRoot' in globalThis) {\n\tpolyfillGetterSetter(ShadowRoot.prototype, 'adoptedStyleSheets', adoptedStyleSheets);\n}\n","export const aria = {\n\tariaAtomic: 'aria-atomic',\n\tariaAutoComplete: 'aria-autocomplete',\n\tariaBusy: 'aria-busy',\n\tariaChecked: 'aria-checked',\n\tariaColCount: 'aria-colcount',\n\tariaColIndex: 'aria-colindex',\n\tariaColIndexText: 'aria-colindextext',\n\tariaColSpan: 'aria-colspan',\n\tariaCurrent: 'aria-current',\n\tariaDisabled: 'aria-disabled',\n\tariaExpanded: 'aria-expanded',\n\tariaHasPopup: 'aria-haspopup',\n\tariaHidden: 'aria-hidden',\n\tariaInvalid: 'aria-invalid',\n\tariaKeyShortcuts: 'aria-keyshortcuts',\n\tariaLabel: 'aria-label',\n\tariaLevel: 'aria-level',\n\tariaLive: 'aria-live',\n\tariaModal: 'aria-modal',\n\tariaMultiLine: 'aria-multiline',\n\tariaMultiSelectable: 'aria-multiselectable',\n\tariaOrientation: 'aria-orientation',\n\tariaPlaceholder: 'aria-placeholder',\n\tariaPosInSet: 'aria-posinset',\n\tariaPressed: 'aria-pressed',\n\tariaReadOnly: 'aria-readonly',\n\tariaRelevant: 'aria-relevant',\n\tariaRequired: 'aria-required',\n\tariaRoleDescription: 'aria-roledescription',\n\tariaRowCount: 'aria-rowcount',\n\tariaRowIndex: 'aria-rowindex',\n\tariaRowIndexText: 'aria-rowindextext',\n\tariaRowSpan: 'aria-rowspan',\n\tariaSelected: 'aria-selected',\n\tariaSetSize: 'aria-setsize',\n\tariaSort: 'aria-sort',\n\tariaValueMax: 'aria-valuemax',\n\tariaValueMin: 'aria-valuemin',\n\tariaValueNow: 'aria-valuenow',\n\tariaValueText: 'aria-valuetext',\n\trole: 'role'\n};\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const HTML = 'http://www.w3.org/1999/xhtml';\nexport const SVG = 'http://www.w3.org/2000/svg';\nexport const XLINK = 'http://www.w3.org/1999/xlink';\nexport const MATHML = 'http://www.w3.org/1998/Math/MathML';\n","import { HTML as HTMLNS } from './namespaces.js';\n\nexport const EVENT_ATTRS = new Set(('HTMLElement' in globalThis\n\t? Object.keys(HTMLElement.prototype) : [])\n\t.filter(name => name.startsWith('on')));\n\nexport function normalizeElement(opt, defaultNS = HTMLNS) {\n\tif (typeof opt === 'string') {\n\t\treturn Object.freeze({ name: opt, namespace: defaultNS });\n\t} else if (typeof opt === 'object' && typeof opt.name === 'string') {\n\t\tconst { name, namespace = defaultNS, attributes } = opt;\n\t\treturn Object.freeze({\n\t\t\tname,\n\t\t\tnamespace: typeof namespace === 'string' && namespace.length !== 0 ? namespace : defaultNS,\n\t\t\tattributes,\n\t\t});\n\t} else {\n\t\tthrow new TypeError('Invalid config entry for `elements`.');\n\t}\n}\n\nfunction normalizeElementsConfig({ elements, allowElements }, defaultNS = HTMLNS) {\n\tif (Array.isArray(allowElements)) {\n\t\tconsole.warn('Use of `allowElements` is deprecated. Please use `elements` instead.');\n\t\treturn normalizeElementsConfig({ elements: allowElements }, defaultNS);\n\t} else if (! Array.isArray(elements)) {\n\t\tthrow new TypeError('`elements` expected to be an array.');\n\t} else {\n\t\treturn elements.map(opt => normalizeElement(opt, defaultNS));\n\t}\n}\n\nexport function normalizeAttr(opt, defaultNS ='') {\n\tif (typeof opt === 'string') {\n\t\treturn Object.freeze({ name: opt, namespace: defaultNS });\n\t} else if (typeof opt === 'object' && typeof opt.name === 'string') {\n\t\tconst { name, namespace = defaultNS, elements } = opt;\n\t\treturn Object.freeze({\n\t\t\tname,\n\t\t\tnamespace: typeof namespace === 'string' ? namespace : defaultNS,\n\t\t\telements,\n\t\t});\n\t} else {\n\t\tthrow new TypeError('Invalid entry in `attributes` config.');\n\t}\n}\n\nfunction normalizeAttrsConfig({ attributes, allowAttributes }, defaultNS = '') {\n\tif (typeof allowAttributes !== 'undefined') {\n\t\tconsole.warn('Use of `allowAttributes` is deprecated. Please use `attributes` instead.');\n\t\treturn normalizeAttrsConfig({ attributes: allowAttributes }, defaultNS);\n\t} else if (Array.isArray(attributes)) {\n\t\treturn attributes.map(opt => normalizeAttr(opt, defaultNS));\n\t} else if (typeof attributes === 'object' && attributes !== null) {\n\t\tconsole.warn('`attributes` should be an array, not an oobject.');\n\t\treturn normalizeAttrsConfig({\n\t\t\tattributes: Object.entries(attributes).map(([name, elements]) => ({ name, elements })),\n\t\t}, defaultNS);\n\t} else {\n\t\tthrow new TypeError('`attributes` expected to be an array.');\n\t}\n}\n\nfunction normalizeCommentsConfig({ comments, allowComments }) {\n\tif (typeof comments === 'boolean') {\n\t\treturn comments;\n\t} else if (typeof allowComments === 'boolean') {\n\t\tconsole.warn('Use of `allowComments` is deprecated. Please use `comments` instead.');\n\t\treturn allowComments;\n\t} else {\n\t\treturn false;\n\t}\n}\n\nexport function normalizeConfig(config, {\n\telementNS = HTMLNS,\n\tattributeNS = '',\n} = {}) {\n\treturn {\n\t\telements: normalizeElementsConfig(config, elementNS),\n\t\tattributes: normalizeAttrsConfig(config, attributeNS),\n\t\tcomments: normalizeCommentsConfig(config),\n\t};\n}\n\nfunction convertAttrConfig({ attributes, allowAttributes }, defaultNS) {\n\treturn Object.freeze(\n\t\tObject.groupBy(\n\t\t\tnormalizeAttrsConfig({ attributes, allowAttributes }, defaultNS),\n\t\t\t({ namespace }) => namespace\n\t\t)\n\t);\n}\n\nfunction convertElementConfig({ elements, allowElements }, defaultNS = HTMLNS) {\n\treturn Object.freeze(\n\t\tObject.groupBy(\n\t\t\tnormalizeElementsConfig({ elements, allowElements }, defaultNS),\n\t\t\t({ namespace }) => namespace\n\t\t)\n\t);\n}\n\nexport function convertConfig(config, {\n\telementNS = HTMLNS,\n\tattributeNS = '',\n} = {}) {\n\tif (typeof config !== 'object' || config === null) {\n\t\tthrow new TypeError('Sanitizer config must be an object.');\n\t} else if (config.getConfiguration instanceof Function) {\n\t\tconsole.warn('`Sanitzer` objects are deprecated and will be removed.');\n\n\t\tconst {\n\t\t\tallowElements: elements,\n\t\t\tallowAttributes: attributes,\n\t\t\tallowComments: comments,\n\t\t} = config.getConfiguration();\n\n\t\treturn Object.freeze({\n\t\t\telements: convertElementConfig({ elements }, elementNS),\n\t\t\tattributes: convertAttrConfig({ attributes }, attributeNS),\n\t\t\tcomments,\n\t\t});\n\t} else {\n\t\treturn Object.freeze({\n\t\t\telements: convertElementConfig(config, elementNS),\n\t\t\tattributes: convertAttrConfig(config, attributeNS),\n\t\t\tcomments: normalizeCommentsConfig(config),\n\t\t});\n\t}\n}\n","import { normalizeAttr } from '../config-utils.js';\n\nexport const attributes = Object.freeze([\n\t'accesskey', 'autocapitalize', 'autofocus', 'class', 'contenteditable',\n\t'dir', 'draggable', 'enterkeyhint', 'exportparts', 'hidden', 'id',\n\t'inert', 'inputmode', 'itemid', 'itemprop', 'itemref',\n\t'itemscope', 'itemtype', 'lang', 'part', 'popover',\n\t'slot', 'spellcheck', 'tabindex', 'title', 'translate',\n\t'virtualkeyboardpolicy',\n\t/**\n\t * Aria-Attributes\n\t * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/\n\t */\n\t'aria-keyshortcuts', 'aria-activedescendant', 'aria-atomic', 'aria-autocomplete',\n\t'aria-braillelabel', 'aria-brailleroledescription', 'aria-busy', 'aria-checked',\n\t'aria-colcount', 'aria-colindex', 'aria-colindextext', 'aria-colspan',\n\t'aria-controls', 'aria-current', 'aria-describedby', 'aria-description',\n\t'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-errormessage',\n\t'aria-expanded', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden',\n\t'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level',\n\t'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation',\n\t'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed',\n\t'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription',\n\t'aria-rowcount', 'aria-rowindex', 'aria-rowindextext', 'aria-rowspan',\n\t'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin',\n\t'aria-valuenow', 'aria-valuetext',\n].map(attr => normalizeAttr(attr, '' )));\n","/**\n * @copyright 2023-2024 Chris Zuber <admin@kernvalley.us>\n * @see https://wicg.github.io/sanitizer-api/#default-configuration-dictionary\n */\nimport { HTML as namespace } from '../namespaces.js';\nimport { normalizeAttr, normalizeElement } from '../config-utils.js';\nimport { attributes as globalAttrs } from './global.js';\nexport const allowCustomElements = true;\nexport const allowUnknownMarkup = false;\nexport const comments = false;\n\n\n/**\n * Tags listed on MDN, + a few deprecated / experimental ones\n * Selector: `#content table td > a[href^=\"/en-US/docs/Web/HTML/Element/\"] > code`\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n */\nexport const elements = Object.freeze([\n\t'html', 'head', 'link', 'meta', 'body', 'address', 'article', 'aside', 'footer',\n\t'header', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup', 'main', 'nav', 'section',\n\t'search', 'blockquote', 'cite', 'div', 'dd', 'dt', 'dl', 'figcaption', 'figure',\n\t'hr', 'li', 'ol', 'ul', 'menu', 'p', 'pre', 'a', 'abbr', 'b', 'bdi', 'bdo', 'br',\n\t'code', 'data', 'dfn', 'em', 'i', 'kbd', 'mark', 'q', 'rp', 'ruby', 'rt', 's',\n\t'del', 'ins', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u',\n\t'var', 'wbr', 'area', 'audio', 'img', 'map', 'track', 'video', 'picture',\n\t'source', 'canvas', 'caption', 'col', 'colgroup', 'table', 'tbody', 'tr', 'td',\n\t'tfoot', 'th', 'thead', 'button', 'datalist', 'option', 'fieldset', 'label',\n\t'form', 'input', 'legend', 'meter', 'optgroup', 'select', 'output', 'progress',\n\t'textarea', 'details', 'summary', 'dialog', 'slot', 'template', 'dir',\n\t'strike', 'selectmenu', 'center',\n].map(el => normalizeElement(el, namespace)));\n\nexport const attributes = Object.freeze([\n\t'abbr',\n\t'accept',\n\t'accept-charset',\n\t// 'accesskey', //global\n\t// 'action',\n\t'align',\n\t'alink',\n\t'allow',\n\t'allowfullscreen',\n\t'alt',\n\t'anchor',\n\t'archive',\n\t'as',\n\t'async',\n\t// 'autocapitalize', //global\n\t'autocomplete',\n\t'autocorrect',\n\t// 'autofocus', //global\n\t'autopictureinpicture',\n\t'autoplay',\n\t'axis',\n\t'background',\n\t'behavior',\n\t// 'bgcolor',\n\t'border',\n\t'bordercolor',\n\t'capture',\n\t'cellpadding',\n\t'cellspacing',\n\t'challenge',\n\t'char',\n\t'charoff',\n\t'charset',\n\t'checked',\n\t'cite',\n\t// 'class', //global\n\t'classid',\n\t'clear',\n\t'code',\n\t// 'codebase',\n\t'codetype',\n\t'color',\n\t'cols',\n\t'colspan',\n\t'compact',\n\t'content',\n\t// 'contenteditable', //global\n\t'controls',\n\t'controlslist',\n\t'conversiondestination',\n\t'coords',\n\t'crossorigin',\n\t'csp',\n\t'data',\n\t'datetime',\n\t'declare',\n\t'decoding',\n\t'default',\n\t'defer',\n\t// 'dir', //global\n\t'direction',\n\t'dirname',\n\t'disabled',\n\t'disablepictureinpicture',\n\t'disableremoteplayback',\n\t'disallowdocumentaccess',\n\t'download',\n\t// 'draggable', //global\n\t'elementtiming',\n\t'enctype',\n\t'end',\n\t// 'enterkeyhint', //global\n\t// 'event',\n\t// 'exportparts', //global\n\t// 'face',\n\t'for',\n\t'form',\n\t// 'formaction',\n\t'formenctype',\n\t'formmethod',\n\t'formnovalidate',\n\t'formtarget',\n\t// 'frame',\n\t'frameborder',\n\t'headers',\n\t'height',\n\t// 'hidden', //global\n\t'high',\n\t'href',\n\t'hreflang',\n\t'hreftranslate',\n\t'hspace',\n\t// 'http-equiv',\n\t// 'id', //global\n\t'imagesizes',\n\t'imagesrcset',\n\t'importance',\n\t'impressiondata',\n\t'impressionexpiry',\n\t'incremental',\n\t// 'inert', //global\n\t// 'inputmode', //global\n\t'integrity',\n\t'invisible',\n\t'invoketarget',\n\t'invokeaction',\n\t'is',\n\t'ismap',\n\t'keytype',\n\t'kind',\n\t'label',\n\t// 'lang', //global\n\t'language',\n\t'latencyhint',\n\t'leftmargin',\n\t'link',\n\t'list',\n\t'loading',\n\t'longdesc',\n\t'loop',\n\t'low',\n\t'lowsrc',\n\t'manifest',\n\t'marginheight',\n\t'marginwidth',\n\t'max',\n\t'maxlength',\n\t'mayscript',\n\t'media',\n\t'method',\n\t'min',\n\t'minlength',\n\t'multiple',\n\t'muted',\n\t'name',\n\t'nohref',\n\t'nomodule',\n\t// 'nonce',\n\t'noresize',\n\t'noshade',\n\t'novalidate',\n\t'nowrap',\n\t'object',\n\t'open',\n\t'optimum',\n\t// 'part', //global\n\t'pattern',\n\t'ping',\n\t'placeholder',\n\t'playsinline',\n\t'policy',\n\t// 'popover', //global\n\t'popovertarget',\n\t'popovertargetaction',\n\t'poster',\n\t'preload',\n\t'pseudo',\n\t'readonly',\n\t'referrerpolicy',\n\t'rel',\n\t'reportingorigin',\n\t'required',\n\t'resources',\n\t'rev',\n\t'reversed',\n\t'role',\n\t'rows',\n\t'rowspan',\n\t'rules',\n\t'sandbox',\n\t'scheme',\n\t'scope',\n\t'scopes',\n\t'scrollamount',\n\t'scrolldelay',\n\t'scrolling',\n\t'select',\n\t'selected',\n\t'shadowrootmode',\n\t'shadowrootdelegatesfocus',\n\t'shape',\n\t'size',\n\t'sizes',\n\t// 'slot', //global\n\t'span',\n\t// 'spellcheck', //global\n\t'src',\n\t'srcdoc',\n\t'srclang',\n\t'srcset',\n\t'standby',\n\t'start',\n\t'step',\n\t// 'style',\n\t'summary',\n\t// 'tabindex',//global\n\t'target',\n\t'text',\n\t// 'title', //global\n\t'topmargin',\n\t// 'translate', //global\n\t'truespeed',\n\t'trusttoken',\n\t'type',\n\t'usemap',\n\t'valign',\n\t'value',\n\t'valuetype',\n\t'version',\n\t// 'virtualkeyboardpolicy', //global\n\t'vlink',\n\t'vspace',\n\t'webkitdirectory',\n\t'width',\n\t'wrap',\n].map(attr => normalizeAttr(attr)).concat(globalAttrs));\n\nexport const sanitizer = Object.freeze({\n\tallowCustomElements, allowUnknownMarkup, comments, elements,\n\tattributes,\n});\n","import { sanitizer as sanitizerConfig } from './config/html.js';\nimport { convertConfig, EVENT_ATTRS } from './config-utils.js';\n\nconst LINK_ATTRS = new Set(['href', 'src' , 'action']);\nconst ILLEGAL_PROTOCOLS = new Set(['javascript:', 'about:', 'data:', 'file:', 'ftp:']);\n\nif (location.protocol === 'https:') {\n\tILLEGAL_PROTOCOLS.add('http:');\n}\n\nfunction createPolicy(name, { createHTML, createScript, createScriptURL }) {\n\tif ('trustedTypes' in globalThis) {\n\t\treturn globalThis.trustedTypes.createPolicy(name, { createHTML, createScript, createScriptURL });\n\t} else {\n\t\treturn Object.freeze({\n\t\t\t[Symbol.for('policy-name')]: name,\n\t\t\tcreateHTML: createHTML instanceof Function\n\t\t\t\t? (input, ...args) => createHTML(input.toString(), ...args).toString()\n\t\t\t\t: null,\n\t\t\tcreateScript: createScript instanceof Function\n\t\t\t\t? (input, ...args) => createScript(input.toString(), ...args).toString()\n\t\t\t\t: null,\n\t\t\tcreateScriptURL: createScriptURL instanceof Function\n\t\t\t\t? (input, ...args) => createScriptURL(input.toString(), ...args).toString()\n\t\t\t\t: null,\n\t\t});\n\t}\n}\n\nconst policy = createPolicy('aegis-sanitizer#html', { createHTML: input => input });\n\nexport function setHTML(el, content, { sanitizer = sanitizerConfig } = {}) {\n\tconst tmp = document.createElement('template');\n\ttmp.innerHTML = policy.createHTML(content);\n\tsanitize(tmp.content, sanitizer);\n\tel.replaceChildren(tmp.content);\n}\n\nexport function parseHTML(content, { sanitizer = sanitizerConfig } = {}) {\n\tconst doc = new DOMParser().parseFromString(policy.createHTML(content), 'text/html');\n\tsanitize(doc, sanitizer);\n\treturn doc;\n}\n\nexport function sanitize(node, config = sanitizerConfig) {\n\tif (! (node instanceof Node)) {\n\t\tthrow new TypeError('Not a node.');\n\t} else {\n\t\tconst converted = convertConfig(config);\n\t\treturn sanitizeNode(node, converted);\n\t}\n}\n\nfunction isAllowedElement(el, config) {\n\treturn el.namespaceURI in config.elements\n\t\t&& config.elements[el.namespaceURI].some(opt => opt.name === el.localName);\n}\n\nfunction isIllegalURLAttr(attr) {\n\tif (! LINK_ATTRS.has(attr.localName)) {\n\t\treturn false;\n\t} else if (! URL.canParse(attr.value)) {\n\t\treturn false;\n\t} else {\n\t\tconst { protocol } = new URL(attr.value);\n\t\treturn ILLEGAL_PROTOCOLS.has(protocol);\n\t}\n}\n\nfunction isAllowedAttr(attr, config) {\n\treturn attr.name.startsWith('data-') || (\n\t\t(attr.namespaceURI ?? '') in config.attributes\n\t\t&& config.attributes[attr.namespaceURI ?? ''].some(opt => opt.name === attr.localName)\n\t\t&& ! EVENT_ATTRS.has(attr.localName)\n\t\t&& ! isIllegalURLAttr(attr)\n\t);\n}\n\nfunction sanitizeNode(node, config) {\n\tswitch(node.nodeType) {\n\t\tcase Node.ELEMENT_NODE:\n\t\t\tsanitizeElement(node, config);\n\t\t\tbreak;\n\n\t\tcase Node.DOCUMENT_NODE:\n\t\tcase Node.DOCUMENT_FRAGMENT_NODE:\n\t\t\tsanitizeFragOrDoc(node, config);\n\t\t\tbreak;\n\n\t\tcase Node.COMMENT_NODE:\n\t\t\tsanitizeComment(node, config);\n\t\t\tbreak;\n\n\t\tcase Node.ATTRIBUTE_NODE:\n\t\t\tsanitizeAttr(node, config);\n\t\t\tbreak;\n\n\t\tcase Node.TEXT_NODE:\n\t\tcase Node.DOCUMENT_TYPE_NODE:\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tif (node.ownerElement instanceof Element) {\n\t\t\t\tnode.ownerElement.removeChild(node);\n\t\t\t}\n\t}\n}\n\nfunction sanitizeElement(el, config) {\n\tif (! isAllowedElement(el, config)) {\n\t\tel.remove();\n\t} else {\n\t\t[...el.attributes].forEach(attr => sanitizeAttr(attr, config));\n\n\t\tif (el.tagName === 'TEMPLATE') {\n\t\t\tsanitizeFragOrDoc(el.content, config);\n\t\t} else if (el.hasChildNodes()) {\n\t\t\tel.childNodes.forEach(node => sanitizeNode(node, config));\n\t\t}\n\t}\n}\n\nfunction sanitizeAttr(attr, config) {\n\tif (! isAllowedAttr(attr, config) && attr.ownerElement instanceof Element) {\n\t\tattr.ownerElement.removeAttributeNode(attr);\n\t}\n}\n\nfunction sanitizeFragOrDoc(node, config) {\n\tnode.childNodes.forEach(child => sanitizeNode(child, config));\n}\n\nfunction sanitizeComment(node, config) {\n\tif (! config.comments) {\n\t\tnode.remove();\n\t}\n}\n","import { setHTML as html, parseHTML as parse } from './sanitize.js';\nimport {\n\tsanitizer as sanitizerConfig,\n\telements as els,\n\tattributes as attrs,\n\tcomments as cmnts\n} from './config/html.js';\n\n/**\n * This is needed for working with sanitizer configs & arrts\n */\n\nif (! (URL.canParse instanceof Function)) {\n\tURL.canParse = function canParse(url, base) {\n\t\ttry {\n\t\t\tnew URL(url, base);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t};\n}\n\nif (! (Object.groupBy instanceof Function)) {\n\tObject.groupBy = function groupBy(arr, callback) {\n\t\treturn Object.fromEntries(arr.map(item => [callback(item), item]));\n\t};\n}\n\nif (! (Element.prototype.setHTML instanceof Function)) {\n\tElement.prototype.setHTML = function setHTML(content, {\n\t\tsanitizer: {\n\t\t\telements = els,\n\t\t\tattributes = attrs,\n\t\t\tcomments = cmnts,\n\t\t} = sanitizerConfig,\n\t} = {}) {\n\t\thtml(this, content, { sanitizer: { elements, attributes, comments }});\n\t};\n}\n\nif (! (Document.parseHTML instanceof Function)) {\n\tDocument.parseHTML = function parseHTML(content, {\n\t\tsanitizer: {\n\t\t\telements = els,\n\t\t\tattributes = attrs,\n\t\t\tcomments = cmnts,\n\t\t} = sanitizerConfig,\n\t} = {}) {\n\t\treturn parse(content, { sanitizer: { elements, attributes, comments }});\n\t};\n}\n","import { SVG as SVGNS } from '../namespaces.js';\nimport { attributes as globalAttrs } from './global.js';\nimport { normalizeAttr, normalizeElement } from '../config-utils.js';\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Element\n */\n\nexport const comments = false;\n\nexport const elements = Object.freeze([\n\t'a', 'animate', 'animateMotion', 'animateTransform', 'circle', 'clipPath',\n\t'defs', 'desc', 'ellipse', 'feBlend', 'feColorMatrix', 'feComponentTransfer',\n\t'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap',\n\t'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG',\n\t'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology',\n\t'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile',\n\t'feTurbulence', 'filter', 'foreignObject', 'g', 'image', 'line', 'linearGradient',\n\t'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline',\n\t'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch',\n\t'symbol', 'text', 'textPath', 'title', 'tspan', 'view', 'missing-glyph', 'font',\n\t'font-face', 'font-face-format', 'font-face-name', 'font-face-src',\n\t'font-face-uri', 'hkern', 'vkern', 'glyph', 'glyphRef', 'tref', 'cursor',\n].map(el => normalizeElement(el, SVGNS)));\n\nexport const attributes = Object.freeze([\n\t'accent-height', 'accumulate', 'additive', 'alignment-baseline',\n\t'alphabetic', 'amplitude', 'arabic-form', 'ascent', 'attributeName',\n\t'attributeType', 'azimuth', 'baseFrequency', 'baseline-shift', 'baseProfile',\n\t'bbox', 'begin', 'bias', 'by', 'calcMode', 'cap-height', 'class', 'clip',\n\t'clipPathUnits', 'clip-path', 'clip-rule', 'color', 'color-interpolation',\n\t'color-interpolation-filters', 'color-profile', 'color-rendering', 'crossorigin',\n\t'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction',\n\t'display', 'divisor', 'dominant-baseline', 'dur', 'dx', 'dy', 'edgeMode',\n\t'elevation', 'enable-background', 'end', 'exponent', 'fill', 'fill-opacity',\n\t'fill-rule', 'filter','filterUnits', 'flood-color', 'flood-opacity',\n\t'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style',\n\t'font-variant', 'font-weight', 'format', 'from', 'fr', 'fx', 'fy', 'g1', 'g2',\n\t'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical',\n\t'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'height', 'href',\n\t'hreflang', 'horiz-adv-x', 'horiz-origin-x', 'id', 'ideographic', 'image-rendering',\n\t'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kernelMatrix',\n\t'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lang',\n\t'lengthAdjust', 'letter-spacing', 'lighting-color', 'limitingConeAngle', 'local',\n\t'marker-end', 'marker-mid', 'marker-start', 'markerHeight', 'markerUnits',\n\t'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'max',\n\t'media', 'method', 'min', 'mode', 'name', 'numOctaves', 'offset', 'opacity',\n\t'operator', 'order', 'orient', 'orientation', 'origin', 'overflow',\n\t'overline-position', 'overline-thickness', 'panose-1', 'paint-order',\n\t'path', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits',\n\t'ping', 'pointer-events', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ',\n\t'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius',\n\t'referrerPolicy', 'refX', 'refY', 'rel', 'rendering-intent', 'repeatCount',\n\t'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result',\n\t'rotate', 'rx', 'ry', 'scale', 'seed', 'shape-rendering', 'slope', 'spacing',\n\t'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset',\n\t'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stop-color', 'stop-opacity',\n\t'strikethrough-position', 'strikethrough-thickness', 'string', 'stroke',\n\t'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin',\n\t'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'style', 'surfaceScale',\n\t'systemLanguage', 'tabindex', 'tableValues', 'target', 'targetX', 'targetY',\n\t'text-anchor', 'text-decoration', 'text-rendering', 'textLength', 'to', 'transform',\n\t'transform-origin', 'type', 'u1', 'u2', 'underline-position', 'underline-thickness',\n\t'unicode', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic',\n\t'v-hanging', 'v-ideographic', 'v-mathematical', 'values', 'vector-effect',\n\t'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'viewBox',\n\t'visibility', 'width', 'widths', 'word-spacing', 'writing-mode', 'x', 'x-height',\n\t'x1', 'x2', 'xChannelSelector', 'xlink:actuate', 'xlink:arcrole', 'xlink:href',\n\t'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang',\n\t'xml:space', 'y', 'y1', 'y2', 'yChannelSelector', 'z', 'zoomAndPan',\n\t'autoReverse', 'accelerate',\n].map(attr => normalizeAttr(attr,'')).concat(globalAttrs));\n\nexport const sanitizer = Object.freeze({ elements, attributes, comments });\n","import { MATHML as MATHNS } from '../namespaces.js';\nimport { attributes as globalAttrs } from './global.js';\nimport { normalizeAttr, normalizeElement } from '../config-utils.js';\n\nexport const comments = false;\n\n/**\n *@see https://developer.mozilla.org/en-US/docs/Web/MathML/Element\n */\nexport const elements = Object.freeze([\n\t'math', 'maction', 'annotation', 'annotation-xml', 'menclose', 'merror',\n\t'mfenced', 'mfrac', 'mi', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded',\n\t'mphantom', 'mprescripts', 'mroot', 'mrow', 'ms', 'semantics', 'mspace',\n\t'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext',\n\t'mtr', 'munder', 'munderover',\n].map(el => normalizeElement(el, MATHNS)));\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute\n */\nexport const attributes = Object.freeze([\n\t'accent', 'accentunder', 'actiontype', 'align',\n\t'background', 'close', 'color', 'columnalign', 'columnlines', 'columnspacing',\n\t'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'fence',\n\t'fontfamily', 'fontsize', 'fontstyle', 'fontweight', 'frame', 'framespacing',\n\t'height', 'href', 'id', 'linethickness', 'lspace', 'lquote', 'mathbackground',\n\t'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits',\n\t'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan',\n\t'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier',\n\t'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'superscriptshift',\n\t'symmetric', 'voffset', 'width', 'xmlns',\n].map(attr => normalizeAttr(attr, '')).concat(globalAttrs));\n\nexport const sanitizer = Object.freeze({ elements, attributes, comments });\n","import { aria } from './aom.js';\nimport { polyfillGetterSetter } from './utils.js';\nimport './sanitizer.js';\n\nfunction handlePopover({ currentTarget }) {\n\tswitch(currentTarget.popoverTargetAction) {\n\t\tcase 'show':\n\t\t\tcurrentTarget.popoverTargetElement.showPopover();\n\t\t\tbreak;\n\n\t\tcase 'hide':\n\t\t\tcurrentTarget.popoverTargetElement.hidePopover();\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tcurrentTarget.popoverTargetElement.togglePopover();\n\t}\n}\n\nexport function initPopover(target = document.body) {\n\ttarget.querySelectorAll('button[popovertarget], input[type=\"button\"][popovertarget]')\n\t\t.forEach(el => el.addEventListener('click', handlePopover));\n}\n\nif ((globalThis.ToggleEvent instanceof Function)) {\n\tclass ToggleEvent extends Event {\n\t\t#newState;\n\t\t#oldState;\n\n\t\tconstructor(type, { newState, oldState }) {\n\t\t\tsuper(type, { bubbles: true });\n\t\t\tthis.#newState = newState;\n\t\t\tthis.#oldState = oldState;\n\t\t}\n\n\t\tget newState() {\n\t\t\treturn this.#newState;\n\t\t}\n\n\t\tget oldState() {\n\t\t\treturn this.#oldState;\n\t\t}\n\t}\n\n\tglobalThis.ToggleEvent = ToggleEvent;\n}\n\nif (! (HTMLElement.prototype.showPopover instanceof Function)) {\n\tconst isPopoverOpen = el => el.classList.contains('_popover-open');\n\n\tObject.defineProperties(HTMLElement.prototype, {\n\t\tshowPopover: {\n\t\t\tvalue: function showPopover() {\n\t\t\t\tif (! isPopoverOpen(this)) {\n\t\t\t\t\tthis.dispatchEvent(new ToggleEvent('beforetoggle', { oldState: 'closed', newState: 'open' }));\n\n\t\t\t\t\tif (this.getAttribute('popover') === 'auto') {\n\t\t\t\t\t\tconst controller = new AbortController();\n\n\t\t\t\t\t\tdocument.body.addEventListener('click', ({ target }) => {\n\t\t\t\t\t\t\tif (! this.contains(target) && ! this.isSameNode(target.popoverTargetElement)) {\n\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\tthis.hidePopover();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, { signal: controller.signal, capture: true });\n\n\t\t\t\t\t\tdocument.body.addEventListener('keydown', ({ key }) => {\n\t\t\t\t\t\t\tif (key === 'Escape') {\n\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\tthis.hidePopover();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, { signal: controller.signal, capture: true });\n\n\t\t\t\t\t\tdocument.addEventListener('beforetoggle', ({ target }) => {\n\t\t\t\t\t\t\tif (! target.isSameNode(this) && target.getAttribute('popover') === 'auto') {\n\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\tthis.hidePopover();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, { signal: controller.signal });\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.classList.add('_popover-open');\n\t\t\t\t\tthis.dispatchEvent(new ToggleEvent('toggle', { oldState: 'closed', newState: 'open' }));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thidePopover: {\n\t\t\tvalue: function hidePopover() {\n\t\t\t\tif (isPopoverOpen(this)) {\n\t\t\t\t\tthis.dispatchEvent(new ToggleEvent('beforetoggle', { oldState: 'open', newState: 'closed' }));\n\t\t\t\t\tqueueMicrotask(() => this.classList.remove('_popover-open'));\n\t\t\t\t\tthis.dispatchEvent(new ToggleEvent('toggle', { oldState: 'open', newState: 'closed' }));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttogglePopover: {\n\t\t\tvalue: function togglePopover() {\n\t\t\t\tisPopoverOpen(this) ? this.hidePopover() : this.showPopover();\n\t\t\t}\n\t\t}\n\t});\n\n\tObject.defineProperties(HTMLButtonElement.prototype, {\n\t\tpopoverTargetElement: {\n\t\t\tget() {\n\t\t\t\treturn document.getElementById(this.getAttribute('popovertarget'));\n\t\t\t}\n\t\t},\n\t\tpopoverTargetAction: {\n\t\t\tget() {\n\t\t\t\treturn this.getAttribute('popovertargetaction') || 'toggle';\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.setAttribute('popovertargetaction', val);\n\t\t\t}\n\t\t}\n\t});\n\n\tinitPopover();\n}\n\nif (! (HTMLScriptElement.supports instanceof Function)) {\n\tHTMLScriptElement.supports = function supports(type) {\n\t\tswitch(type.toLowerCase()) {\n\t\t\tcase 'classic':\n\t\t\t\treturn true;\n\n\t\t\tcase 'module':\n\t\t\t\treturn 'noModule' in HTMLScriptElement.prototype;\n\n\t\t\tcase 'importmap':\n\t\t\t\treturn false;\n\n\t\t\tcase 'speculationrules':\n\t\t\t\treturn false;\n\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t};\n}\n\nif (! Element.prototype.hasOwnProperty(aria.role)) {\n\tconst enumerable = true;\n\tconst configurable = true;\n\n\tconst props = Object.fromEntries(Object.entries(aria).map(([prop, attr]) => [prop, {\n\t\tget: function() {\n\t\t\treturn this.getAttribute(attr);\n\t\t},\n\t\tset: function(val) {\n\t\t\tif (typeof val === 'string') {\n\t\t\t\tthis.setAttribute(attr, val);\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute(attr);\n\t\t\t}\n\t\t},\n\t\tenumerable, configurable,\n\t}]));\n\n\tObject.defineProperties(Element.prototype, props);\n}\n\nif (! HTMLElement.prototype.hasOwnProperty('inert')) {\n\t// CSS will handle pointer events\n\tconst previous = new WeakMap();\n\tconst restoreTabIndex = el => {\n\t\tif (previous.has(el)) {\n\t\t\tel.tabIndex = previous.get(el);\n\t\t}\n\n\t\tif (el.hasChildNodes()) {\n\t\t\t[...el.children].forEach(restoreTabIndex);\n\t\t}\n\t};\n\n\tconst setTabIndex = el => {\n\t\tif (el.tabIndex !== -1) {\n\t\t\tprevious.set(el, el.tabIndex);\n\t\t\tel.tabIndex = -1;\n\t\t}\n\n\t\tif (el.hasChildNodes()) {\n\t\t\t[...el.children].forEach(setTabIndex);\n\t\t}\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'inert', {\n\t\tget: function() {\n\t\t\treturn this.hasAttribute('inert');\n\t\t},\n\t\tset: function(val) {\n\t\t\tif (val) {\n\t\t\t\tthis.setAttribute('aria-hidden', 'true');\n\t\t\t\tthis.setAttribute('inert', '');\n\t\t\t\tsetTabIndex(this);\n\t\t\t} else {\n\t\t\t\tthis.removeAttribute('aria-hidden');\n\t\t\t\tthis.removeAttribute('inert');\n\t\t\t\trestoreTabIndex(this);\n\t\t\t}\n\t\t},\n\t\tenumerable: true, configurable: true,\n\t});\n}\n\nif (! HTMLImageElement.prototype.hasOwnProperty('complete')) {\n\t/**\n\t * Note: This shim cannot detect if an image has an error while loading\n\t * and will return false on an invalid URL, for example. It also does not\n\t * work for 0-sized images, if such a thing is possible.\n\t */\n\tObject.defineProperty(HTMLImageElement.prototype, 'complete', {\n\t\tget: function() {\n\t\t\treturn this.src === '' || this.naturalHeight > 0;\n\t\t}\n\t});\n}\n\nif (! (HTMLImageElement.prototype.decode instanceof Function)) {\n\tHTMLImageElement.prototype.decode = function () {\n\t\tif (this.complete) {\n\t\t\treturn Promise.resolve();\n\t\t} else {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst load = () => {\n\t\t\t\t\tthis.removeEventListener('error', error);\n\t\t\t\t\tthis.removeEventListener('load', load);\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst error = (err) => {\n\t\t\t\t\tthis.removeEventListener('error', error);\n\t\t\t\t\tthis.removeEventListener('load', load);\n\t\t\t\t\treject(err);\n\t\t\t\t};\n\n\t\t\t\tthis.addEventListener('load', load);\n\t\t\t\tthis.addEventListener('error', error);\n\t\t\t});\n\t\t}\n\t};\n}\n\nif (! HTMLTemplateElement.prototype.hasOwnProperty('shadowRootMode')) {\n\tObject.defineProperty(HTMLTemplateElement.prototype, 'shadowRootMode', {\n\t\tget: function() {\n\t\t\treturn this.getAttribute('shadowrootmode');\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis.setAttribute('shadowrootmode', val);\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true,\n\t});\n\n\tconst attachShadows = (base = document) => {\n\t\tbase.querySelectorAll('template[shadowrootmode]').forEach(tmp => {\n\t\t\tconst shadow = tmp.parentElement.attachShadow({ mode: tmp.shadowRootMode });\n\t\t\tshadow.append(tmp.content);\n\t\t\ttmp.remove();\n\t\t\tattachShadows(shadow);\n\t\t});\n\t};\n\n\tif (document.readyState === 'loading') {\n\t\tdocument.addEventListener('readystatechange', () => attachShadows(document), { once: true });\n\t} else {\n\t\tattachShadows(document);\n\t}\n}\n\nif (! (HTMLFormElement.prototype.requestSubmit instanceof Function)) {\n\tHTMLFormElement.prototype.requestSubmit = function(submitter) {\n\t\tif (typeof submitter === 'undefined') {\n\t\t\tconst btn = document.createElement('button');\n\t\t\tbtn.type = 'submit';\n\t\t\tbtn.hidden = true;\n\t\t\tthis.append(btn);\n\t\t\tthis.requestSubmit(btn);\n\t\t\tsetTimeout(() => btn.remove(), 100);\n\t\t} else if (! (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement)) {\n\t\t\tthrow new TypeError('HTMLFormElement.requestSubmit: The submitter is not a submit button.');\n\t\t} else if (submitter.type !== 'submit' && ! (submitter instanceof HTMLInputElement && submitter.type === 'image')) {\n\t\t\tthrow new TypeError('HTMLFormElement.requestSubmit: The submitter is not a submit button.');\n\t\t} else if (! this.isSameNode(submitter.form)) {\n\t\t\tthrow new DOMException('HTMLFormElement.requestSubmit: The submitter is not owned by this form.', 'NotFoundError');\n\t\t} else {\n\t\t\tsubmitter.click();\n\t\t}\n\t};\n}\n\nif (! ('loading' in HTMLIFrameElement.prototype)) {\n\tpolyfillGetterSetter(HTMLIFrameElement.prototype, 'loading', {\n\t\tget: function() {\n\t\t\treturn this.getAttribute('loading') || 'auto';\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis.setAttribute('loading', val);\n\t\t}\n\t});\n}\n\nif (! ('credentialless' in HTMLIFrameElement.prototype)) {\n\tpolyfillGetterSetter(HTMLIFrameElement.prototype, 'credentialless', {\n\t\tget: function() {\n\t\t\treturn this.hasAttribute('credentialless');\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis.toggleAttribute('credentialless', val);\n\t\t}\n\t});\n}\n","import { elements as HTMLElements, attributes as HTMLAttributes } from './html.js';\nimport { elements as SVGElements,attributes as SVGAttributes } from './svg.js';\n\nexport const elements = Object.freeze([...HTMLElements, ...SVGElements]);\n\nexport const attributes = Object.freeze(Array.from(new Set([...HTMLAttributes, ...SVGAttributes])));\n\nexport const comments = false;\n\nexport const sanitizer = Object.freeze({ elements, attributes, comments });\n","import { elements as HTMLElements, attributes as HTMLAttributes } from './html.js';\nimport { elements as SVGElements, attributes as SVGAttributes } from './svg.js';\nimport { elements as MathMLElements, attributes as MathMLAttributes } from './mathml.js';\n\nexport const elements = Object.freeze([...HTMLElements, ...SVGElements, ...MathMLElements]);\n\nexport const attributes = Object.freeze(Array.from(new Set([...HTMLAttributes, ...SVGAttributes, ...MathMLAttributes])));\n\nexport const comments = false;\n\nexport const sanitizer = Object.freeze({ elements, attributes, comments });\n","/**\n * @see https://github.com/tc39/proposal-set-methods\n */\n'use strict';\n\nconst TYPE_ERR_MSG = 'Expected a set-like object.';\nconst SET_METHODS = ['has', 'keys'];\nconst SET_PROPS = ['size'];\nconst isSet = thing => thing instanceof Set;\nconst isSetLike = thing => isSet(thing) || (\n\ttypeof thing === 'object'\n\t&& thing !== null\n\t&& SET_METHODS.every(method => thing[method] instanceof Function)\n\t&& SET_PROPS.every(prop => prop in thing)\n);\n\nif (! (Set.prototype.intersection instanceof Function)) {\n\tSet.prototype.intersection = function intersection(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\treturn new Set([...this].filter(item => set.has(item)));\n\t};\n}\n\nif (! (Set.prototype.difference instanceof Function)) {\n\tSet.prototype.difference = function difference(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\treturn new Set([...this].filter(item => ! set.has(item)));\n\t};\n}\n\nif (! (Set.prototype.union instanceof Function)) {\n\tSet.prototype.union = function union(set) {\n\t\treturn new Set([...this, ...set]);\n\t};\n}\n\nif (! (Set.prototype.isSubsetOf instanceof Function)) {\n\tSet.prototype.isSubsetOf = function isSubsetOf(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\treturn [...this].every(item => set.has(item));\n\t};\n}\n\nif (! (Set.prototype.isSupersetOf instanceof Function)) {\n\tSet.prototype.isSupersetOf = function isSupersetOf(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\t// @TODO Handle when `set` is set-like\n\t\treturn isSet(set)\n\t\t\t? set.isSubsetOf(this)\n\t\t\t: new Set(set.keys()).isSubsetOf(this);\n\t};\n}\n\nif (! (Set.prototype.symmetricDifference instanceof Function)) {\n\tSet.prototype.symmetricDifference = function symmetricDifference(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\t// @TODO Handle when `set` is set-like\n\t\treturn isSet(set)\n\t\t\t? new Set([...this.difference(set), ...set.difference(this)])\n\t\t\t: new Set([...this.difference(set), ...new Set(set.keys()).difference(this)]);\n\t};\n}\n\nif (! (Set.prototype.isDisjointFrom instanceof Function)) {\n\tSet.prototype.isDisjointFrom = function isDisjointFrom(set) {\n\t\tif (! isSetLike(set)) {\n\t\t\tthrow new TypeError(TYPE_ERR_MSG);\n\t\t}\n\n\t\treturn new Set([...this, ...set]).size === this.size + set.size;\n\t};\n}\n","(function() {\n\t'use strict';\n\n\tif (! (WeakMap.prototype.emplace instanceof Function)) {\n\t\tWeakMap.prototype.emplace = function emplace(key, { insert, update } = {}) {\n\t\t\tconst has = this.has(key);\n\n\t\t\tif (has && update instanceof Function) {\n\t\t\t\tconst existing = this.get(key);\n\t\t\t\tconst value = update.call(this, existing, key, this);\n\n\t\t\t\tif (value !== existing) {\n\t\t\t\t\tthis.set(key, existing);\n\t\t\t\t}\n\n\t\t\t\treturn value;\n\t\t\t} else if (has) {\n\t\t\t\treturn this.get(key);\n\t\t\t} else if (insert instanceof Function) {\n\t\t\t\tconst value = insert.call(this, key, this);\n\t\t\t\tthis.set(key, value);\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\tthrow new Error('Key is not found and no `insert()` given');\n\t\t\t}\n\t\t};\n\t}\n})();\n","(function() {\n\t'use strict';\n\n\tif ('screen' in globalThis && ! (globalThis.getScreenDetails instanceof Function)) {\n\t\tclass ScreenDetailed extends EventTarget {\n\t\t\tget availHeight() {\n\t\t\t\treturn screen.availHeight;\n\t\t\t}\n\n\t\t\tget availLeft() {\n\t\t\t\treturn screen.availLeft;\n\t\t\t}\n\n\t\t\tget availTop() {\n\t\t\t\treturn screen.availTop;\n\t\t\t}\n\n\t\t\tget availWidth() {\n\t\t\t\treturn screen.availWidth;\n\t\t\t}\n\n\t\t\tget colorDepth() {\n\t\t\t\treturn screen.colorDepth;\n\t\t\t}\n\n\t\t\tget devicePixelRatio() {\n\t\t\t\treturn globalThis.devicePixelRatio || 1;\n\t\t\t}\n\n\t\t\tget height() {\n\t\t\t\treturn screen.height;\n\t\t\t}\n\n\t\t\tget isExtended() {\n\t\t\t\treturn screen.isExtended;\n\t\t\t}\n\n\t\t\tget isInternal() {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tget isPrimary() {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tget label() {\n\t\t\t\treturn 'Unknown';\n\t\t\t}\n\n\t\t\tget orientation() {\n\t\t\t\treturn screen.orientation;\n\t\t\t}\n\n\t\t\tget pixelDepth() {\n\t\t\t\treturn screen.pixelDepth;\n\t\t\t}\n\n\t\t\tget top() {\n\t\t\t\treturn screen.top;\n\t\t\t}\n\n\t\t\tget width() {\n\t\t\t\treturn screen.width;\n\t\t\t}\n\t\t}\n\n\t\tclass ScreenDetails extends EventTarget {\n\t\t\tget currentScreen() {\n\t\t\t\treturn new ScreenDetailed();\n\t\t\t}\n\n\t\t\tget screens() {\n\t\t\t\treturn [this.currentScreen];\n\t\t\t}\n\t\t}\n\n\t\tObject.defineProperty(Screen.prototype, 'isExtended', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => false,\n\t\t});\n\n\t\tglobalThis.getScreenDetails = async () => new ScreenDetails();\n\t}\n})();\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n */\nexport const PRIORITIES = {\n\tblocking: 'user-blocking',\n\tvisible: 'user-visible',\n\tbackground: 'background',\n};\n\nasync function delayCallback(cb, { delay = 0, signal } = {}) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (signal instanceof AbortSignal && signal.aborted) {\n\t\t\treject(signal.reason);\n\t\t} else {\n\t\t\tconst controller = new AbortController();\n\t\t\tconst handle = setTimeout(() => {\n\t\t\t\tresolve(cb());\n\t\t\t\tcontroller.abort();\n\t\t\t}, delay);\n\n\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\treject(target.reason);\n\t\t\t\t\tclearTimeout(handle);\n\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t}\n\t\t}\n\t});\n}\n\nexport class Scheduler {\n\tasync postTask(callback, {\n\t\tpriority = PRIORITIES.visible,\n\t\tdelay,\n\t\tsignal,\n\t} = {}) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (signal instanceof AbortSignal && signal.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t} else {\n\t\t\t\tswitch(priority) {\n\t\t\t\t\tcase PRIORITIES.blocking:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(callback, { delay, signal })\n\t\t\t\t\t\t\t\t.then(resolve, reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve((async () => await callback())());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PRIORITIES.visible:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(() => requestAnimationFrame(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}), { delay, signal }).catch(reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\t\tconst handle = requestAnimationFrame(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\t\t\t\tcancelAnimationFrame(handle);\n\t\t\t\t\t\t\t\t\treject(target.reason);\n\t\t\t\t\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PRIORITIES.background:\n\t\t\t\t\t\tif (typeof delay === 'number' && ! Number.isNaN(delay) && delay > 0) {\n\t\t\t\t\t\t\tdelayCallback(() => requestIdleCallback(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}), { delay, signal }).catch(reject);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\t\tconst handle = requestIdleCallback(async () => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst result = await callback();\n\t\t\t\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t\t\t\t} catch(err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (signal instanceof AbortSignal) {\n\t\t\t\t\t\t\t\tsignal.addEventListener('abort', ({ target }) => {\n\t\t\t\t\t\t\t\t\tcancelIdleCallback(handle);\n\t\t\t\t\t\t\t\t\treject(target.reason);\n\t\t\t\t\t\t\t\t}, { once: true, signal: controller.signal });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new TypeError(`Scheduler.postTask: '${priority}' (value of 'priority' member of SchedulerPostTaskOptions) is not a valid value for enumeration TaskPriority.`);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Scheduler } from './assets/Scheduler.js';\n\nif (! ('scheduler' in globalThis)) {\n\tglobalThis.scheduler = new Scheduler();\n}\n","/**\n * @copyright 2023 Chris Zuber <admin@kernvalley.us>\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals\n * @see https://caniuse.com/mdn-api_formdataevent\n * @see https://caniuse.com/mdn-api_elementinternals\n * @todo: Figure out how to cleanup MutationObserver for removed inputs\n * @todo: Can I add a MutationObserver to automatically set/unset forms,\n * even in `ShadowRoot`s?\n *\n * This polyfill needs a bit of extra work from the custom element to work.\n * Check if `internals._polyfilled` to see if extra steps are necessary:\n * - Call `internals._associateForm(form, this)` in `connectedCallback()`\n * - Call again with `(null, this)` in `disconnectedCallback()` to disassociate\n *\n * Additionally, if `internals.states._polyfilled`\n * - Use `._state--*` in addition to `:--*` to query element internals states\n * - This includes `:disabled` -> `._state--disabled` & `:invalid` -> `._state--invalid`\n */\nimport { aria } from './aom.js';\n\nconst symbols = {\n\tkey: Symbol('key'),\n\tinternals: Symbol('element-internals'),\n\tform: Symbol('form'),\n\tfieldset: Symbol('fieldset'),\n\telement: Symbol('element'),\n\tvalidity: Symbol('validity'),\n\tvalidationMessage: Symbol('validation-message'),\n\tvalue: Symbol('value'),\n\tstate: Symbol('state'),\n\tformController: Symbol('form-controller'),\n\tanchor: Symbol('anchor'),\n\tcustomInputs: Symbol('custom-inputs'),\n};\n\nfunction shimAria(prototype) {\n\tconst enumerable = true;\n\tconst configurable = true;\n\tconst props = Object.fromEntries(Object.keys(aria).map(prop => [prop, {\n\t\tget: function() {\n\t\t\treturn this[symbols.element][prop];\n\t\t},\n\t\tset: function(val) {\n\t\t\tthis[symbols.element][prop] = val;\n\t\t},\n\t\tenumerable, configurable,\n\t}]));\n\n\tObject.defineProperties(prototype, props);\n}\n\nif (! (HTMLElement.prototype.attachInternals instanceof Function) && 'FormDataEvent' in globalThis) {\n\tconst validationObject = {\n\t\tvalueMissing: false, typeMismatch: false, patternMismatch: false, tooLong: false,\n\t\ttooShort: false, rangeUnderflow: false, rangeOverflow: false, stepMismatch: false,\n\t\tbadInput: false, customError: false, valid: true,\n\t};\n\n\tconst hasDisabledFieldset = component => component.hasOwnProperty(symbols.fieldset)\n\t\t&& component[symbols.fieldset] instanceof HTMLFieldSetElement\n\t\t&& component[symbols.fieldset].disabled;\n\n\tconst isFormAssociated = (component) => {\n\t\treturn component instanceof HTMLElement\n\t\t\t&& component.tagName.includes('-')\n\t\t\t&& customElements.get(component.tagName.toLowerCase()).formAssociated;\n\t};\n\n\tconst getFormDataHandler = (component, internals) => {\n\t\treturn function(event) {\n\t\t\tif (! event.target.reportValidity()) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tevent.stopPropagation();\n\t\t\t} else if (internals.willValidate && event.formData instanceof FormData) {\n\t\t\t\tconst value = internals[symbols.value];\n\n\t\t\t\tif (value instanceof FormData) {\n\t\t\t\t\tvalue.entries().forEach(([k, v]) => event.formData.set(k, v));\n\t\t\t\t} else if (component.hasAttribute('name')) {\n\t\t\t\t\tevent.formData.set(component.getAttribute('name'), internals[symbols.value]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t};\n\n\tconst css = (el, rules) => {\n\t\tObject.entries(rules).forEach(([k, v]) => el.style.setProperty(k, v));\n\t};\n\n\tconst findAssociatedForm = (component) => {\n\t\tif (component.hasAttribute('form')) {\n\t\t\treturn document.forms[component.getAttribute('form')] || component.closest('form');\n\t\t} else {\n\t\t\treturn component.closest('form');\n\t\t}\n\t};\n\n\t// To be used in/after `connectedCallback`\n\tconst associateForm = (form, internals, component) => {\n\t\tif (! (form instanceof HTMLFormElement)) {\n\t\t\tif (internals[symbols.formController] instanceof AbortController) {\n\t\t\t\tinternals[symbols.formController].abort();\n\t\t\t}\n\n\t\t\tinternals[symbols.form] = null;\n\t\t\tinternals[symbols.formController] = null;\n\n\t\t\tif (component.hasOwnProperty(symbols.fieldset)) {\n\t\t\t\tconst fieldset = component[symbols.fieldset];\n\n\t\t\t\tif (fieldset.hasOwnProperty(symbols.customInputs)) {\n\t\t\t\t\tfieldset[symbols.customInputs].delete(component);\n\n\t\t\t\t\tif (fieldset[symbols.customInputs.size] === 0) {\n\t\t\t\t\t\tdelete fieldset[symbols.customInputs];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcomponent[symbols.fieldset] = null;\n\t\t\t}\n\t\t} else if (! (component instanceof HTMLElement && component.tagName.includes('-'))) {\n\t\t\tthrow new TypeError('Not a custom element');\n\t\t} else if (! (internals instanceof ElementInternals || internals instanceof globalThis.ElementInternals)) {\n\t\t\tthrow new TypeError('Invalid ElementInternals');\n\t\t} else if (! isFormAssociated(component)) {\n\t\t\tthrow new TypeError(`${component.tagName} is not form associated.`);\n\t\t} else if (! (component.formAssociatedCallback instanceof Function)) {\n\t\t\tthrow new TypeError(`${component.tagName} is missing a formAssociatedCallback method.`);\n\t\t} else {\n\t\t\tconst controller = new AbortController();\n\t\t\tconst fieldset = component.closest('fieldset');\n\n\t\t\tif (fieldset instanceof Element) {\n\t\t\t\tcomponent[symbols.fieldset] = fieldset;\n\t\t\t\tif (! fieldset.hasOwnProperty(symbols.customInputs)) {\n\t\t\t\t\tfieldset[symbols.customInputs] = new Set();\n\t\t\t\t}\n\n\t\t\t\tfieldset[symbols.customInputs].add(component);\n\t\t\t\tobserver.observe(fieldset, observerOpts);\n\t\t\t}\n\n\t\t\tinternals[symbols.form] = form;\n\t\t\tinternals[symbols.formController] = controller;\n\n\t\t\tconst { checkValidity, reportValidity } = form;\n\n\t\t\tform.reportValidity = function() {\n\t\t\t\tif (! reportValidity.call(this)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn internals.reportValidity();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tform.checkValidity = function() {\n\t\t\t\tif (! checkValidity.call(this)) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn internals.checkValidity();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tcontroller.signal.addEventListener('abort', () => {\n\t\t\t\tform.reportValidity = reportValidity;\n\t\t\t\tform.checkValidity = checkValidity;\n\t\t\t}, { once: true });\n\n\t\t\tform.addEventListener('formdata', getFormDataHandler(component, internals), { signal: controller.signal });\n\t\t\tform.addEventListener('submit', event => {\n\t\t\t\tif (! event.target.reportValidity()) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t}, { signal: controller.signal });\n\n\t\t\tif (component.formResetCallback instanceof Function) {\n\t\t\t\tform.addEventListener('reset', () => component.formResetCallback(), { signal: controller.signal });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst observer = new MutationObserver((mutations) => {\n\t\tmutations.forEach(({ target, type, attributeName }) => {\n\t\t\tif (type === 'attributes' && attributeName === 'disabled') {\n\t\t\t\tconst disabled = target.hasAttribute('disabled');\n\n\t\t\t\t/**\n\t\t\t\t * Check that target is a valid candiate and not a child of a\n\t\t\t\t * `<fieldset disabled>`, unless they are both being toggled\n\t\t\t\t * together to the same value.\n\t\t\t\t */\n\t\t\t\tif (\n\t\t\t\t\tisFormAssociated(target)\n\t\t\t\t\t&& target.hasOwnProperty(symbols.internals)\n\t\t\t\t\t&& target[symbols.internals].states.has('--disabled') !== disabled\n\t\t\t\t\t&& (\n\t\t\t\t\t\tmutations.length === 1\n\t\t\t\t\t\t\t// target is not a descendant of a `<fieldset disabled>`\n\t\t\t\t\t\t\t? ! hasDisabledFieldset(target)\n\t\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\t// target & `<fieldset>` are being enabled/disabled together\n\t\t\t\t\t\t\t\ttarget.hasAttribute('disabled') === hasDisabledFieldset(target)\n\t\t\t\t\t\t\t\t&& mutations.some((m) =>\n\t\t\t\t\t\t\t\t\tm.target.isSameNode(target[symbols.fieldset])\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tconst internals = target[symbols.internals];\n\n\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\tinternals.states.add('--disabled');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinternals.states.delete('--disabled');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (target.formDisabledCallback instanceof Function) {\n\t\t\t\t\t\ttarget.formDisabledCallback(disabled);\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\ttarget.tagName === 'FIELDSET'\n\t\t\t\t\t&& target.hasOwnProperty(symbols.customInputs)\n\t\t\t\t\t&& (\n\t\t\t\t\t\tmutations.length === 1\n\t\t\t\t\t\t|| ! mutations.some(m => target[symbols.customInputs].has(m.target))\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\ttarget[symbols.customInputs].forEach(el => {\n\t\t\t\t\t\tif (el.isConnected && el.hasOwnProperty(symbols.internals)) {\n\t\t\t\t\t\t\t// Do not toggle disabled on elements that are `disabled`\n\t\t\t\t\t\t\tif (! el.hasAttribute('disabled')) {\n\t\t\t\t\t\t\t\tif (disabled) {\n\t\t\t\t\t\t\t\t\tel[symbols.internals].states.add('--disabled');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tel[symbols.internals].states.delete('--disabled');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (el.formDisabledCallback instanceof Function) {\n\t\t\t\t\t\t\t\t\tel.formDisabledCallback(disabled);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttarget[symbols.customInputs].delete(el);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\n\tconst observerOpts = { attributes :true, attributeFilter: ['disabled'] };\n\n\tclass ElementInternals {\n\t\tconstructor(element, key) {\n\t\t\tif (key !== symbols.key) {\n\t\t\t\tthrow new TypeError('Illegal constructor');\n\t\t\t} else if (! (element instanceof HTMLElement)) {\n\t\t\t\tthrow new TypeError('Must be called on an HTMLElement');\n\t\t\t} else if (! element.tagName.includes('-')) {\n\t\t\t\tthrow new DOMException('Cannot attach internals to a built-in element.');\n\t\t\t} else {\n\t\t\t\t// internals.add(this);\n\t\t\t\tconst configurable = true;\n\t\t\t\tconst enumerable = false;\n\t\t\t\tconst writable = true;\n\n\t\t\t\tObject.defineProperties(this, {\n\t\t\t\t\t[symbols.element]: { value: element, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.form]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.fieldset]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.anchor]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.validity]: { value: validationObject, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.validationMessage]: { value: '', configurable, enumerable, writable },\n\t\t\t\t\t[symbols.value]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.state]: { value: null, configurable, enumerable, writable },\n\t\t\t\t\t[symbols.formController]: { value: null, configurable, enumerable, writable },\n\t\t\t\t});\n\n\t\t\t\tif (isFormAssociated(element)) {\n\t\t\t\t\tobserver.observe(element, observerOpts);\n\t\t\t\t}\n\n\t\t\t\tObject.defineProperty(element, symbols.internals, {\n\t\t\t\t\tvalue: this,\n\t\t\t\t\tenumerable: false,\n\t\t\t\t\tconfigurable: false,\n\t\t\t\t\twritable: false,\n\t\t\t\t});\n\n\t\t\t\tsetTimeout(() => this.states.add('--element-internals-polyfilled'), 10);\n\t\t\t}\n\t\t}\n\n\t\tget form() {\n\t\t\treturn this[symbols.form];\n\t\t}\n\n\t\tget labels() {\n\t\t\tconst form = this.form;\n\n\t\t\tif (form instanceof HTMLFormElement && this[symbols.element].id.length !== 0) {\n\t\t\t\treturn form.querySelectorAll(`label[for=\"${this[symbols.element].id}\"]`);\n\t\t\t} else {\n\t\t\t\treturn document.createDocumentFragment().childNodes;\n\t\t\t}\n\t\t}\n\n\t\tget _polyfilled() {\n\t\t\treturn true;\n\t\t}\n\n\t\tget shadowRoot() {\n\t\t\tconst el = this[symbols.element];\n\t\t\treturn el.shadowRoot;\n\t\t}\n\n\t\tget validity() {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\treturn this[symbols.validity];\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tget validationMessage() {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\treturn this[symbols.validationMessage] || '';\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\tget willValidate() {\n\t\t\tconst element = this[symbols.element];\n\n\t\t\treturn isFormAssociated(element)\n\t\t\t\t&& ! hasDisabledFieldset(element)\n\t\t\t\t&& ! ['disabled', 'readonly'].some(attr => element.hasAttribute(attr));\n\t\t}\n\n\t\tcheckValidity() {\n\t\t\tif (! this.willValidate) {\n\t\t\t\treturn true;\n\t\t\t} else if (! this.validity.valid) {\n\t\t\t\tthis[symbols.element].dispatchEvent(new Event('invalid'));\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tconst next = this[symbols.element].nextElementSibling;\n\n\t\t\t\tif (next instanceof HTMLElement && next.classList.contains('_element-internals-popup')) {\n\t\t\t\t\tnext.remove();\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treportValidity() {\n\t\t\tif (! this.checkValidity()) {\n\t\t\t\tconst message = this.validationMessage;\n\n\t\t\t\tif (typeof message === 'string' && message.length !== 0) {\n\t\t\t\t\t// this[symbols.element].scrollIntoView({ block: 'start' });\n\t\t\t\t\tconst { bottom, left } = this[symbols.element].getBoundingClientRect();\n\t\t\t\t\tconst el = document.createElement('div');\n\t\t\t\t\tel.textContent = message;\n\n\t\t\t\t\tcss(el, {\n\t\t\t\t\t\t'position': 'fixed',\n\t\t\t\t\t\t'background-color': '#2b2a33',\n\t\t\t\t\t\t'color': '#fafafa',\n\t\t\t\t\t\t'top': `${bottom + 2}px`,\n\t\t\t\t\t\t'left': `${left}px`,\n\t\t\t\t\t\t'z-index': 2147483647,\n\t\t\t\t\t\t'color-scheme': 'light-dark',\n\t\t\t\t\t\t'font-family': 'system-ui, serif',\n\t\t\t\t\t\t'font-size': '18px',\n\t\t\t\t\t\t'display': 'inline-block',\n\t\t\t\t\t\t'padding': '0.6em 0.8em',\n\t\t\t\t\t\t'border': '1px solid #1a1a1a',\n\t\t\t\t\t\t'border-radius': '6px',\n\t\t\t\t\t});\n\n\t\t\t\t\tel.classList.add('_element-internals-popup');\n\n\t\t\t\t\tthis[symbols.element].focus();\n\n\t\t\t\t\tconst next = this[symbols.element].nextElementSibling;\n\n\t\t\t\t\tif (next instanceof Element && next.classList.contains('_element-internals-popup')) {\n\t\t\t\t\t\tnext.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis[symbols.element].insertAdjacentElement('afterend', el);\n\n\t\t\t\t\tif (this[symbols.anchor] instanceof Element) {\n\t\t\t\t\t\tthis[symbols.anchor].focus();\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (el.isConnected) {\n\t\t\t\t\t\t\tel.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 3000);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tsetFormValue(value, state) {\n\t\t\tif (isFormAssociated(this[symbols.element])) {\n\t\t\t\tthis[symbols.value] = value;\n\t\t\t\tthis[symbols.state] = state;\n\t\t\t} else {\n\t\t\t\tthrow new DOMException('Not form associated');\n\t\t\t}\n\t\t}\n\n\t\tsetValidity({\n\t\t\tvalueMissing = false,\n\t\t\ttypeMismatch = false,\n\t\t\tpatternMismatch = false,\n\t\t\ttooLong = false,\n\t\t\ttooShort = false,\n\t\t\trangeUnderflow = false,\n\t\t\trangeOverflow = false,\n\t\t\tstepMismatch = false,\n\t\t\tbadInput = false,\n\t\t\tcustomError = false,\n\t\t}, message = '', anchor) {\n\t\t\tif (! isFormAssociated(this[symbols.element])) {\n\t\t\t\tthrow new DOMException('Not form associated');\n\t\t\t} else if (\n\t\t\t\t(typeof message !== 'string' || message.length === 0)\n\t\t\t\t&& (\n\t\t\t\t\tvalueMissing || typeMismatch || patternMismatch || tooLong || tooShort\n\t\t\t\t\t|| rangeUnderflow || rangeOverflow || stepMismatch || badInput || customError\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new DOMException('Message required if any flags are true.');\n\t\t\t} else {\n\t\t\t\tconst valid = [\n\t\t\t\t\tvalueMissing, typeMismatch, patternMismatch, tooLong, tooShort,\n\t\t\t\t\trangeUnderflow, rangeOverflow, stepMismatch, badInput, customError,\n\t\t\t\t].every(val => val === false);\n\n\t\t\t\tthis[symbols.validity] = {\n\t\t\t\t\tvalueMissing, typeMismatch, patternMismatch, tooLong, tooShort,\n\t\t\t\t\trangeUnderflow, rangeOverflow, stepMismatch, badInput, customError,\n\t\t\t\t\tvalid,\n\t\t\t\t};\n\n\t\t\t\tthis[symbols.validationMessage] = message;\n\t\t\t\tthis[symbols.anchor] = anchor;\n\n\t\t\t\tif (! valid) {\n\t\t\t\t\tthis.states.add('--invalid');\n\t\t\t\t\tthis.states.delete('--valid');\n\t\t\t\t\tthis[symbols.element].dispatchEvent(new Event('invalid'));\n\t\t\t\t} else {\n\t\t\t\t\tthis.states.delete('--invalid');\n\t\t\t\t\tthis.states.add('--valid');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t_associateForm(form, component) {\n\t\t\tassociateForm(form, this, component);\n\t\t}\n\n\t\t_findAssociatedForm(component) {\n\t\t\treturn findAssociatedForm(component);\n\t\t}\n\t}\n\n\tHTMLElement.prototype.attachInternals = function attachInternals() {\n\t\tif (this.hasOwnProperty(symbols.internals)) {\n\t\t\tthrow new DOMException('Invalid operation');\n\t\t} else if (! this.tagName.includes('-')) {\n\t\t\tthrow new DOMException('Cannot call attachInternals on built-in elements.');\n\t\t} else {\n\t\t\treturn new ElementInternals(this, symbols.key);\n\t\t}\n\t};\n\n\tglobalThis.ElementInternals = ElementInternals;\n}\n\n/**\n * Add `states` to `ElementInternals`\n * Uses `._state--foo` instead of `:--foo` though\n * Requires Iterator Helpers (`./iterator.js`)\n */\nif ('ElementInternals' in globalThis && ! ('CustomStateSet' in globalThis)) {\n\tconst prefix = '_state';\n\tconst protectedData = new WeakMap();\n\tconst getCName = state => {\n\t\tif (! state.toString().startsWith('--')) {\n\t\t\tthrow new DOMException(`Failed to execute 'add' on 'CustomStateSet': The specified value '${state}' must start with '--'.`);\n\t\t} else {\n\t\t\treturn `${prefix}${state}`;\n\t\t}\n\t};\n\n\tconst {\n\t\tvalue, writable, configurable, enumerable,\n\t} = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'attachInternals');\n\n\tclass CustomStateSet {\n\t\tconstructor(el, key) {\n\t\t\tif (key !== symbols.key) {\n\t\t\t\tthrow new TypeError('Illegal Constructor');\n\t\t\t} else if (! (el instanceof HTMLElement)) {\n\t\t\t\tthrow new TypeError('el must be an HTMLElement');\n\t\t\t} else {\n\t\t\t\tprotectedData.set(this, el);\n\t\t\t\tthis.add('--custom-states-polyfilled');\n\t\t\t}\n\t\t}\n\n\t\tget _polyfilled() {\n\t\t\treturn true;\n\t\t}\n\n\t\tget size() {\n\t\t\treturn [...this.values()].length;\n\t\t}\n\n\t\tadd(state) {\n\t\t\tprotectedData.get(this).classList.add(getCName(state));\n\t\t}\n\n\t\thas(state) {\n\t\t\treturn protectedData.get(this).classList.contains(getCName(state));\n\t\t}\n\n\t\tdelete(state) {\n\t\t\tconst c = getCName(state);\n\n\t\t\tif (protectedData.get(this).classList.contains(c)) {\n\t\t\t\tprotectedData.get(this).classList.remove(c);\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tclear() {\n\t\t\tthis.values().forEach(state => this.delete(state));\n\t\t}\n\n\t\tkeys() {\n\t\t\treturn this.values();\n\t\t}\n\n\t\tvalues() {\n\t\t\tconst states = protectedData.get(this).classList.values()\n\t\t\t\t.filter(c => c.startsWith(`${prefix}--`));\n\n\t\t\treturn states.map(c => c.substr(prefix.length));\n\t\t}\n\n\t\tentries() {\n\t\t\treturn this.values().map(c => [c, c]);\n\t\t}\n\n\t\tforEach(callbackFn, thisArg) {\n\t\t\tthis.values().forEach(state => callbackFn.call(thisArg || this, state, state, this));\n\t\t}\n\n\t\t[Symbol.toStringTag]() {\n\t\t\treturn 'CustomStateSet';\n\t\t}\n\n\t\t[Symbol.iterator]() {\n\t\t\treturn this.values();\n\t\t}\n\t}\n\n\tObject.defineProperty(HTMLElement.prototype, 'attachInternals', {\n\t\tvalue: function() {\n\t\t\tconst internals = value.call(this);\n\n\t\t\tObject.defineProperty(internals, symbols.element, {\n\t\t\t\tvalue: this,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: false,\n\t\t\t\tconfigurable: false,\n\t\t\t});\n\n\t\t\tObject.defineProperty(internals, 'states', {\n\t\t\t\tvalue: new CustomStateSet(this, symbols.key),\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumberable: true,\n\t\t\t});\n\n\t\t\tif (Object.is(internals.shadowRoot, null) && ! Object.is(this.shadowRoot, null)) {\n\t\t\t\tObject.defineProperty(internals, 'shadowRoot', {\n\t\t\t\t\tvalue: this.shadowRoot,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn internals;\n\t\t},\n\t\twritable, configurable, enumerable,\n\t});\n\n\tglobalThis.CustomStateSet = CustomStateSet;\n\tshimAria(ElementInternals.prototype);\n}\n","if (! (globalThis.Record instanceof Function)) {\n\t/* eslint-disable no-inner-declarations */\n\tfunction Record(obj) {\n\t\tif (new.target === Record) {\n\t\t\tthrow new TypeError('Record is not a constructor');\n\t\t}\n\n\t\tconst record = Object.create(Record.prototype);\n\t\tObject.defineProperties(record, Object.fromEntries(Object.entries(obj).map(([key, value]) => [\n\t\t\tkey, {\n\t\t\t\t'enumerable': true,\n\t\t\t\t'configurable': false,\n\t\t\t\t'writable': false,\n\t\t\t\t'value': value,\n\t\t\t}\n\t\t])));\n\n\t\tObject.freeze(record);\n\t\treturn record;\n\t}\n\n\tRecord.prototype.constructor = Record;\n\tObject.defineProperty(Record.prototype, Symbol.toStringTag, {\n\t\tvalue: 'Record',\n\t\tenumerable: true,\n\t\tconfigurable: false,\n\t\twritable: false,\n\t});\n\n\tRecord.fromEntries = function fromEntries(entries) {\n\t\treturn Record(Object.fromEntries(entries));\n\t};\n\n\tglobalThis.Record = Record;\n}\n","import { polyfillMethod } from './utils.js';\n\npolyfillMethod(Response, 'json', (data, { status = 200, statusText = '', headers = new Headers() } = {}) => {\n\tif (! (headers instanceof Headers)) {\n\t\treturn Response.json(data, { status, statusText, headers: new Headers(headers) });\n\t} else {\n\t\theaders.set('Content-Type', 'application/json');\n\t\treturn new Response(JSON.stringify(data), { status, statusText, headers });\n\t}\n});\n\npolyfillMethod(Response, 'redirect', (url, status = 302) => {\n\treturn new Response('', {\n\t\tstatus,\n\t\theaders: new Headers({ Location: url }),\n\t});\n});\n","if (! (globalThis.Tuple instanceof Function)) {\n\t/* eslint-disable no-inner-declarations */\n\n\t/**\n\t * Creates an unfrozen Tuple, such as for `Tuple.of()`\n\t */\n\tconst createTuple = items => {\n\t\tconst tuple = Array.apply(Object.create(Tuple.prototype), items);\n\t\tObject.setPrototypeOf(tuple, Tuple.prototype);\n\t\treturn tuple;\n\t};\n\n\tfunction Tuple(...items) {\n\t\tif (new.target === Tuple) {\n\t\t\tthrow new TypeError('Tuple is not a constructor');\n\t\t}\n\n\t\tconst tuple = createTuple(items);\n\t\tObject.freeze(tuple);\n\t\treturn tuple;\n\t}\n\n\tTuple.prototype.forEach = function forEach(callbackFn, thisArg) {\n\t\tArray.prototype.forEach.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.join = function join(separator = ',') {\n\t\treturn Array.prototype.join.call(this, separator);\n\t};\n\n\tTuple.prototype.concat = function concat(...values) {\n\t\treturn Tuple(...this, ...values);\n\t};\n\n\tTuple.prototype.slice = function slice(start, end) {\n\t\treturn Tuple.from(Array.prototype.slice.call(this, start, end));\n\t};\n\n\tTuple.prototype.indexOf = function indexOf(searchElement, fromIndex) {\n\t\treturn Array.prototype.indexOf.call(this, searchElement, fromIndex);\n\t};\n\n\tTuple.prototype.lastIndexOf = function lastIndexOf(searchElement, fromIndex) {\n\t\treturn Array.prototype.lastIndexOf.call(this, searchElement, fromIndex);\n\t};\n\n\tTuple.prototype.findIndex = function findIndex(callbackFn, thisArg) {\n\t\treturn Array.prototype.findIndex.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.find = function find(callbackFn, thisArg) {\n\t\treturn Array.prototype.find.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.findLast = function findLast(callbackFn, thisArg) {\n\t\treturn Array.prototype.findLast.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.findLastIndex = function findLastIndex(callbackFn, thisArg) {\n\t\treturn Array.prototype.findLastIndex.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.every = function every(callbackFn, thisArg) {\n\t\treturn Array.prototype.every.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.some = function some(callbackFn, thisArg) {\n\t\treturn Array.prototype.some.call(this, callbackFn, thisArg);\n\t};\n\n\tTuple.prototype.includes = function includes(searchElement, fromIndex) {\n\t\treturn Array.prototype.includes.call(this, searchElement, fromIndex);\n\t};\n\n\tTuple.prototype.map = function map(callbackFn, thisArg) {\n\t\treturn Tuple.from(Array.prototype.map.call(this, callbackFn, thisArg));\n\t};\n\n\tTuple.prototype.filter = function filter(callbackFn, thisArg) {\n\t\treturn Tuple.from(Array.prototype.filter.call(this, callbackFn, thisArg));\n\t};\n\n\tTuple.prototype.flat = function flat(depth) {\n\t\treturn Tuple.from(Array.prototype.flat.call(this, depth));\n\t};\n\n\tTuple.prototype.flatMap = function flatMap(callbackFn, thisArg) {\n\t\treturn Tuple.from(Array.prototype.flatMap.call(this, callbackFn, thisArg));\n\t};\n\n\tTuple.prototype.at = function at(index) {\n\t\treturn Array.prototype.at.call(this, index);\n\t};\n\n\tTuple.prototype.reduce = function reduce(callbackFn, initialValue) {\n\t\treturn Tuple.from(Array.prototype.reduce.call(this, callbackFn, initialValue));\n\t};\n\n\tTuple.prototype.reduceRight = function reduceRight(callbackFn, initialValue) {\n\t\treturn Tuple.from(Array.prototype.reduceRight.call(this, callbackFn, initialValue));\n\t};\n\n\tTuple.prototype.toSorted = function toSorted(toStringTag) {\n\t\treturn Tuple.from(Array.prototype.toSorted.call(this, toStringTag));\n\t};\n\n\tTuple.prototype.toSpliced = function toSpliced(start, deleteCount, ...items) {\n\t\treturn Tuple.from(Array.prototype.toSpliced.call(this, start, deleteCount, ...items));\n\t};\n\n\tTuple.prototype.toReversed = function toReversed() {\n\t\treturn Tuple.from(Array.prototype.toReversed.apply(this));\n\t};\n\n\tTuple.prototype.with = function(index, value) {\n\t\treturn Tuple.from(Array.prototype.with.call(this, index, value));\n\t};\n\n\tTuple.prototype.toLocaleString = function toLocaleString(locales, options) {\n\t\treturn Array.prototype.toLocaleString.call(this, locales, options);\n\t};\n\n\tTuple.prototype.toJSON = function toJSON() {\n\t\treturn [...this];\n\t};\n\n\tTuple.prototype.keys = function keys() {\n\t\treturn Array.prototype.keys.apply(this);\n\t};\n\n\tTuple.prototype.values = function values(){\n\t\treturn Array.prototype.values.apply(this);\n\t};\n\n\tTuple.prototype.entries = function entries(){\n\t\treturn Array.prototype.entries.apply(this);\n\t};\n\n\tTuple.prototype[Symbol.iterator] = function() {\n\t\treturn Array.prototype[Symbol.iterator].apply(this);\n\t};\n\n\tTuple.from = function from(items, mapFn, thisArg) {\n\t\tconst tuple = createTuple([]);\n\t\tArray.prototype.push.apply(tuple, Array.from(items, mapFn, thisArg));\n\t\tObject.freeze(tuple);\n\t\treturn tuple;\n\t};\n\n\tTuple.of = function(...items) {\n\t\treturn Tuple.from(items);\n\t};\n\n\tObject.defineProperties(Tuple.prototype, {\n\t\t'length': {\n\t\t\tget: function() {\n\t\t\t\treturn Object.getOwnPropertyDescriptor(Array.prototype, 'length').get.apply(this);\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t},\n\t\t'lastItem': {\n\t\t\tget: function() {\n\t\t\t\treturn this[this.lastIndex];\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t},\n\t\t'lastIndex': {\n\t\t\tget: function() {\n\t\t\t\treturn Object.getOwnPropertyDescriptor(Array.prototype, 'lastIndex').get.apply(this);\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t},\n\t\t[Symbol.toStringTag]: {\n\t\t\tvalue: 'Tuple',\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\twritable: false,\n\t\t},\n\t});\n\n\tglobalThis.Tuple = Tuple;\n}\n","if (! (JSON.parseImmutable instanceof Function)) {\n\t/* eslint-disable no-inner-declarations */\n\tfunction getImmutable(thing) {\n\t\tswitch (typeof thing) {\n\t\t\tcase 'object':\n\t\t\t\tif (thing === null) {\n\t\t\t\t\treturn null;\n\t\t\t\t} else if (Array.isArray(thing)) {\n\t\t\t\t\treturn Tuple.from(thing.map(item => getImmutable(item)));\n\t\t\t\t}\n\t\t\t\treturn Record.fromEntries(\n\t\t\t\t\tObject.entries(thing).map(([key, val]) => [key, getImmutable(val)])\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn thing;\n\t\t}\n\t}\n\n\tJSON.parseImmutable = function parseImmutable(str) {\n\t\treturn JSON.parse(str, (_, value) => getImmutable(value));\n\t};\n}\n"],"names":["globalThis","window","Object","defineProperty","Window","prototype","enumerable","writable","configurable","value","global","self","this","crypto","msCrypto","Notification","notifications","webkitNotifications","oNotifications","msNotifications","navigator","doNotTrack","msDoNotTrack","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","document","hidden","webkitHidden","msHidden","mozHidden","visibilityState","webkitVisibilityState","msVisibilityState","mozVisibilityState","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","Document","exitFullscreen","mozCancelFullScreen","webkitCancelFullScreen","msCancelFullScreen","HTMLElement","requestFullscreen","requestFullScreen","mozRequestFullScreen","webkitRequestFullScreen","get","Element","groupBy","Function","items","callbackFn","Array","from","reduce","groups","element","index","key","call","hasOwnProperty","push","Map","emplace","insert","update","has","existing","set","Error","map","SHIM_TARGETS","String","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","flat","depth","result","Math","min","Number","MAX_SAFE_INTEGER","max","flattenFn","item","isArray","forEach","i","isNaN","flatMap","cb","thisArg","findLast","callback","found","arr","length","lastIndex","val","findLastIndex","at","n","trunc","C","polyfillMethod","parent","name","polyfillGetterSetter","group","console","warn","groupToMap","groupByToMap","fromAsync","async","mapFn","equals","every","is","uniqueBy","arg","Set","filter","obj","includes","args","apply","err","TypeError","toReversed","reverse","toSorted","cmpFn","sort","toSpliced","start","deleteCount","cpy","splice","with","isTemplateObject","target","raw","isFrozen","toHex","toString","padStart","join","toBase64","alphabet","btoa","fromCodePoint","replaceAll","fromHex","str","SyntaxError","Iterator","range","step","parseInt","substring","fromBase64","lastChunkHandling","lastChunkLength","TextEncoder","encode","atob","padEnd","slice","Symbol","toStringTag","iterator","once","funcs","WeakMap","constructor","retVal","catch","delete","URL","base","end","supported","IteratorPrototype","getPrototypeOf","proto","setPrototypeOf","array","option","inclusive","RangeError","next","ret","done","take","limit","iter","drop","toArray","mapper","cur","getSubIter","sub","initialValue","current","some","find","indexed","chunks","size","isSafeInteger","create","MIN_SAFE_INTEGER","num","EPSILON","sign","x","expm1","exp","hypot","nums","sqrt","sum","cbrt","log10","log","LOG10E","log2","LOG2E","log1p","fround","clamp","constrain","parseFloat","hostnames","HTTPS","protocols","hasSecureScripts","scripts","src","protocol","hostname","baseURI","location","isAsyncFunction","what","protectedData","Lock","mode","startsWith","DOMException","locks","symbols","nativeSupport","request","actuallySupported","Promise","resolve","query","then","checkSupport","callFunction","reject","queueMicrotask","whenReleased","lock","promise","error","queueTask","withResolvers","def","getDeferred","controller","AbortController","pending","getLocks","shouldPend","isPending","keys","getHeldLocks","getPendingLocks","whenNotBlocked","allSettled","l","getLockSignal","signal","executeLock","setPending","finally","requestIdleCallback","abort","LockManager","static","opts","ifAvailable","steal","AbortSignal","aborted","reason","held","alreadyLocked","entries","stealLocks","addEventListener","clientId","errorToEvent","type","message","fileName","filename","lineNumber","lineno","columnNumber","colno","ErrorEvent","polyfilled","dispatchEvent","canShare","title","text","url","files","share","setAppBadge","isInteger","replace","clearAppBadge","Navigator","getInstalledRelatedApps","getGamepads","connection","EventTarget","effectiveType","rtt","NaN","downlink","downlinkMax","Infinity","saveData","onchange","ontypechange","isValidTimeout","timeout","performance","now","timeRemaining","setTimeout","didTimeout","cancelIdleCallback","id","clearTimeout","cancelAnimationFrame","e","onabort","AbortError","super","defineProperties","undefined","event","throwIfAborted","Event","reasons","staticAbort","ms","isFinite","any","signals","AggregateError","errors","reportError","MediaQueryListEvent","media","matches","MediaQueryList","targets","listener","init","mql","addListener","bind","removeEventListener","promises","all","status","race","try","TextEncoder$1","encoding","split","char","code","charCodeAt","floor","encodeInto","ui8arr","encoded","len","read","written","supportedEncodings","TextDecoder","fatal","ignoreBOM","toLowerCase","decode","data","prev","fromCharCode","offset","randomUUID","c","getRandomValues","getAllCookies","cookie","decodeURIComponent","trim","path","expires","domain","sameSite","secure","partitioned","getter","setter","maxAge","Date","encodeURIComponent","toUTCString","CookieStore","cookies","getAll","defaultParams","changed","deleted","cookieStore","Animation","playState","events","getOwnPropertyDescriptors","desc","getHTTPCSP","ok","headers","fetch","href","method","directives","fromEntries","directive","rest","part","getMetaCSP","meta","head","querySelector","HTMLMetaElement","content","fetchCSP","documentElement","dataset","fetchTrustCsp","parseCSP","trustedTypes","policies","allowDuplicates","hasNone","clear","add","allowedPolicies","fromCSP","csp","allowTrustDuplicates","getAllowDuplicates","trustedPolicies","getAllowedPolicies","createPolicy","trustedValue","trustedKey","emptyHTML","emptyScript","policy","for","defaultPolicy","trustedTypesCSP","hasPolicy","getPolicy","getUnsetPolicyException","TrustedType","freeze","valueOf","toJSON","TrustedHTML","TrustedScript","TrustedScriptURL","TrustedTypePolicy","createHTML","createScript","createScriptURL","input","TrustedTypePolicyFactory","getActualCSP","enumberable","isHTML","isScript","isScriptURL","match","getAttributeType","tagName","attribute","elementNs","elementNS","getPropertyType","property","_isPolyfill_","polyfill","adoptedStyleSheets","styleSheets","sheet","ownerNode","classList","contains","sheets","difference","remove","links","link","createElement","createObjectURL","File","rel","disabled","mediaText","cssRules","rule","insertRule","cssText","revokeObjectURL","append","clearCSSRules","deleteRule","ShadowRoot","CSSStyleSheet","NativeStyleSheet","rules","parseHTML","sanitizer","Sanitizer","allowElements","appendMedium","createSheet","crossOrigin","referrerPolicy","replaceSync","aria","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColIndexText","ariaColSpan","ariaCurrent","ariaDisabled","ariaExpanded","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowIndexText","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","HTML","EVENT_ATTRS","normalizeElement","opt","defaultNS","HTMLNS","namespace","attributes","normalizeElementsConfig","elements","normalizeAttr","normalizeAttrsConfig","allowAttributes","normalizeCommentsConfig","comments","allowComments","convertAttrConfig","convertElementConfig","attr","el","concat","globalAttrs","allowCustomElements","allowUnknownMarkup","LINK_ATTRS","ILLEGAL_PROTOCOLS","sanitize","node","config","sanitizerConfig","Node","converted","attributeNS","getConfiguration","convertConfig","sanitizeNode","isAllowedAttr","namespaceURI","localName","canParse","isIllegalURLAttr","nodeType","ELEMENT_NODE","isAllowedElement","sanitizeAttr","sanitizeFragOrDoc","hasChildNodes","childNodes","sanitizeElement","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","COMMENT_NODE","sanitizeComment","ATTRIBUTE_NODE","TEXT_NODE","DOCUMENT_TYPE_NODE","ownerElement","removeChild","removeAttributeNode","child","setHTML","els","attrs","cmnts","tmp","innerHTML","replaceChildren","html","doc","DOMParser","parseFromString","parse","handlePopover","currentTarget","popoverTargetAction","popoverTargetElement","showPopover","hidePopover","togglePopover","HTMLElements","SVGElements","HTMLAttributes","SVGAttributes","MathMLElements","MathMLAttributes","ToggleEvent","newState","oldState","bubbles","isPopoverOpen","getAttribute","body","isSameNode","capture","HTMLButtonElement","getElementById","setAttribute","querySelectorAll","initPopover","HTMLScriptElement","supports","props","prop","removeAttribute","previous","restoreTabIndex","tabIndex","children","setTabIndex","hasAttribute","HTMLImageElement","naturalHeight","complete","load","HTMLTemplateElement","attachShadows","shadow","parentElement","attachShadow","shadowRootMode","readyState","HTMLFormElement","requestSubmit","submitter","btn","HTMLInputElement","form","click","HTMLIFrameElement","toggleAttribute","TYPE_ERR_MSG","SET_METHODS","SET_PROPS","isSet","thing","isSetLike","intersection","union","isSubsetOf","isSupersetOf","symmetricDifference","isDisjointFrom","getScreenDetails","ScreenDetailed","availHeight","screen","availLeft","availTop","availWidth","colorDepth","devicePixelRatio","height","isExtended","isInternal","isPrimary","label","orientation","pixelDepth","top","width","ScreenDetails","currentScreen","screens","Screen","PRIORITIES","delayCallback","delay","handle","Scheduler","priority","scheduler","internals","fieldset","validity","validationMessage","state","formController","anchor","customInputs","attachInternals","validationObject","valueMissing","typeMismatch","patternMismatch","tooLong","tooShort","rangeUnderflow","rangeOverflow","stepMismatch","badInput","customError","valid","hasDisabledFieldset","component","HTMLFieldSetElement","isFormAssociated","customElements","formAssociated","getFormDataHandler","reportValidity","willValidate","formData","FormData","k","v","preventDefault","stopImmediatePropagation","stopPropagation","css","style","setProperty","findAssociatedForm","forms","closest","associateForm","ElementInternals","formAssociatedCallback","observer","observe","observerOpts","checkValidity","formResetCallback","MutationObserver","mutations","attributeName","states","m","formDisabledCallback","isConnected","attributeFilter","labels","createDocumentFragment","_polyfilled","shadowRoot","nextElementSibling","bottom","left","getBoundingClientRect","textContent","position","color","display","padding","border","focus","insertAdjacentElement","setFormValue","setValidity","_associateForm","_findAssociatedForm","prefix","getCName","getOwnPropertyDescriptor","CustomStateSet","values","substr","shimAria","Response","statusText","Headers","JSON","stringify","json","Location","Record","record","Tuple","createTuple","tuple","separator","indexOf","searchElement","fromIndex","lastIndexOf","findIndex","reduceRight","toLocaleString","locales","options","of","lastItem","parseImmutable","getImmutable","_"],"mappings":"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OAAQ,QAAS,SAAU,QAAS,WAAY,SAAU,SAAU,WACpE,WAAY,UAAW,UAAW,SAAU,OAAQ,WAAY,MAChE,SAAU,aAAc,UACvB3a,KAAIyiB,GAAMjB,GAAiBiB,EAAIb,OAEpBC,GAAaxmB,OAAOsf,OAAO,CACvC,OACA,SACA,iBAGA,QACA,QACA,QACA,kBACA,MACA,SACA,UACA,KACA,QAEA,eACA,cAEA,uBACA,WACA,OACA,aACA,WAEA,SACA,cACA,UACA,cACA,cACA,YACA,OACA,UACA,UACA,UACA,OAEA,UACA,QACA,OAEA,WACA,QACA,OACA,UACA,UACA,UAEA,WACA,eACA,wBACA,SACA,cACA,MACA,OACA,WACA,UACA,WACA,UACA,QAEA,YACA,UACA,WACA,0BACA,wBACA,yBACA,WAEA,gBACA,UACA,MAKA,MACA,OAEA,cACA,aACA,iBACA,aAEA,cACA,UACA,SAEA,OACA,OACA,WACA,gBACA,SAGA,aACA,cACA,aACA,iBACA,mBACA,cAGA,YACA,YACA,eACA,eACA,KACA,QACA,UACA,OACA,QAEA,WACA,cACA,aACA,OACA,OACA,UACA,WACA,OACA,MACA,SACA,WACA,eACA,cACA,MACA,YACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,SACA,WAEA,WACA,UACA,aACA,SACA,SACA,OACA,UAEA,UACA,OACA,cACA,cACA,SAEA,gBACA,sBACA,SACA,UACA,SACA,WACA,iBACA,MACA,kBACA,WACA,YACA,MACA,WACA,OACA,OACA,UACA,QACA,UACA,SACA,QACA,SACA,eACA,cACA,YACA,SACA,WACA,iBACA,2BACA,QACA,OACA,QAEA,OAEA,MACA,SACA,UACA,SACA,UACA,QACA,OAEA,UAEA,SACA,OAEA,YAEA,YACA,aACA,OACA,SACA,SACA,QACA,YACA,UAEA,QACA,SACA,kBACA,QACA,QACC3a,KAAIwiB,GAAQR,GAAcQ,KAAOE,OAAOC,KAE7BvE,GAAY/iB,OAAOsf,OAAO,CACtCiI,qBApPkC,EAoPbC,oBAnPY,EAmPQT,qBAAUL,GAC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","x_google_ignoreList":[42,43,44,45,46,47,48,49,51,52]}