@spz-loader/core
Version:
.spz Gaussian Splatting file loader
744 lines • 252 kB
JavaScript
var TI = (() => {
var a = import.meta.url;
return async function(R = {}) {
var s, D = R, H, t, P = new Promise((I, A) => {
H = I, t = A;
}), DI = typeof window == "object", wA = typeof WorkerGlobalScope < "u", z = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
if (z) {
const { createRequire: I } = await Promise.resolve().then(() => XI);
let A = import.meta.url;
A.startsWith("data:") && (A = "/");
var FA = I(A);
}
var tA = Object.assign({}, D), GA = "./this.program", K = "", v;
if (z) {
var iI = FA("fs"), rA = FA("path");
import.meta.url.startsWith("data:") || (K = rA.dirname(FA("url").fileURLToPath(import.meta.url)) + "/"), v = (I) => (I = GI(I) ? new URL(I) : rA.normalize(I), iI.readFileSync(I)), !D.thisProgram && 1 < process.argv.length && (GA = process.argv[1].replace(/\\/g, "/")), process.argv.slice(2);
} else (DI || wA) && (wA ? K = self.location.href : typeof document < "u" && document.currentScript && (K = document.currentScript.src), a && (K = a), K.startsWith("blob:") ? K = "" : K = K.substr(0, K.replace(/[?#].*/, "").lastIndexOf("/") + 1), wA && (v = (I) => {
var A = new XMLHttpRequest();
return A.open("GET", I, !1), A.responseType = "arraybuffer", A.send(null), new Uint8Array(A.response);
}));
var oI = D.print || console.log.bind(console), $ = D.printErr || console.error.bind(console);
Object.assign(D, tA), tA = null, D.thisProgram && (GA = D.thisProgram);
var KA = D.wasmBinary, _, nA = !1, Z, S, V, AA, W, y, fA, eA;
function qA() {
var I = _.buffer;
D.HEAP8 = Z = new Int8Array(I), D.HEAP16 = V = new Int16Array(I), D.HEAPU8 = S = new Uint8Array(I), D.HEAPU16 = AA = new Uint16Array(I), D.HEAP32 = W = new Int32Array(I), D.HEAPU32 = y = new Uint32Array(I), D.HEAPF32 = fA = new Float32Array(I), D.HEAPF64 = eA = new Float64Array(I);
}
var dA = [], lA = [], WA = [];
function wI() {
var I = D.preRun.shift();
dA.unshift(I);
}
var q = 0, p = null;
function xA(I) {
var A;
throw (A = D.onAbort) == null || A.call(D, I), I = "Aborted(" + I + ")", $(I), nA = !0, I = new WebAssembly.RuntimeError(I + ". Build with -sASSERTIONS for more info."), t(I), I;
}
var FI = (I) => I.startsWith("data:application/octet-stream;base64,"), GI = (I) => I.startsWith("file://"), aA;
function aI() {
var I = aA;
return Promise.resolve().then(() => {
if (I == aA && KA) var A = new Uint8Array(KA);
else {
if (FI(I)) if (A = I.slice(37), typeof z < "u" && z) A = Buffer.from(A, "base64"), A = new Uint8Array(A.buffer, A.byteOffset, A.length);
else {
A = atob(A);
for (var B = new Uint8Array(A.length), g = 0; g < A.length; ++g) B[g] = A.charCodeAt(g);
A = B;
}
else A = void 0;
if (!A) if (v) A = v(I);
else throw "both async and sync fetching of the wasm failed";
}
return A;
});
}
function RI(I, A) {
return aI().then((B) => WebAssembly.instantiate(B, I)).then(A, (B) => {
$(`failed to asynchronously prepare wasm: ${B}`), xA(B);
});
}
function hI(I, A) {
return RI(I, A);
}
var RA = (I) => {
for (; 0 < I.length; ) I.shift()(D);
}, IA = {}, TA = (I) => {
for (; I.length; ) {
var A = I.pop();
I.pop()(A);
}
};
function j(I) {
return this.fromWireType(y[I >> 2]);
}
var x = {}, d = {}, BA = {}, O, l = (I, A, B) => {
function g(E) {
if (E = B(E), E.length !== I.length) throw new O("Mismatched type converter count");
for (var o = 0; o < I.length; ++o) r(I[o], E[o]);
}
I.forEach((E) => BA[E] = A);
var Q = Array(A.length), C = [], i = 0;
A.forEach((E, o) => {
d.hasOwnProperty(E) ? Q[o] = d[E] : (C.push(E), x.hasOwnProperty(E) || (x[E] = []), x[E].push(() => {
Q[o] = d[E], ++i, i === C.length && g(Q);
}));
}), C.length === 0 && g(Q);
}, ZA, k = (I) => {
for (var A = ""; S[I]; ) A += ZA[S[I++]];
return A;
}, G, sI = (I) => {
throw new G(I);
};
function yI(I, A, B = {}) {
var g = A.name;
if (!I) throw new G(`type "${g}" must have a positive integer typeid pointer`);
if (d.hasOwnProperty(I)) {
if (B.sa) return;
throw new G(`Cannot register type '${g}' twice`);
}
d[I] = A, delete BA[I], x.hasOwnProperty(I) && (A = x[I], delete x[I], A.forEach((Q) => Q()));
}
function r(I, A, B = {}) {
return yI(I, A, B);
}
var hA = (I) => {
throw new G(I.K.N.L.name + " instance already deleted");
}, sA = !1, VA = () => {
}, pA = (I, A, B) => A === B ? I : B.R === void 0 ? null : (I = pA(I, A, B.R), I === null ? null : B.la(I)), jA = {}, NI = {}, MI = (I, A) => {
if (A === void 0) throw new G("ptr should not be undefined");
for (; I.R; ) A = I.aa(A), I = I.R;
return NI[A];
}, gA = (I, A) => {
if (!A.N || !A.M) throw new O("makeClassHandle requires ptr and ptrType");
if (!!A.S != !!A.P) throw new O("Both smartPtrType and smartPtr must be specified");
return A.count = { value: 1 }, X(Object.create(
I,
{ K: { value: A, writable: !0 } }
));
}, X = (I) => typeof FinalizationRegistry > "u" ? (X = (A) => A, I) : (sA = new FinalizationRegistry((A) => {
A = A.K, --A.count.value, A.count.value === 0 && (A.P ? A.S.U(A.P) : A.N.L.U(A.M));
}), X = (A) => {
var B = A.K;
return B.P && sA.register(A, { K: B }, A), A;
}, VA = (A) => {
sA.unregister(A);
}, X(I));
function QA() {
}
var CA = (I, A) => Object.defineProperty(A, "name", { value: I }), OA = (I, A, B) => {
if (I[A].O === void 0) {
var g = I[A];
I[A] = function(...Q) {
if (!I[A].O.hasOwnProperty(Q.length)) throw new G(`Function '${B}' called with an invalid number of arguments (${Q.length}) - expects one of (${I[A].O})!`);
return I[A].O[Q.length].apply(this, Q);
}, I[A].O = [], I[A].O[g.Y] = g;
}
}, XA = (I, A, B) => {
if (D.hasOwnProperty(I)) {
if (B === void 0 || D[I].O !== void 0 && D[I].O[B] !== void 0) throw new G(`Cannot register public name '${I}' twice`);
if (OA(D, I, I), D[I].O.hasOwnProperty(B)) throw new G(`Cannot register multiple overloads of a function with the same number of arguments (${B})!`);
D[I].O[B] = A;
} else D[I] = A, D[I].Y = B;
}, UI = (I) => {
I = I.replace(/[^a-zA-Z0-9_]/g, "$");
var A = I.charCodeAt(0);
return 48 <= A && 57 >= A ? `_${I}` : I;
};
function SI(I, A, B, g, Q, C, i, E) {
this.name = I, this.constructor = A, this.X = B, this.U = g, this.R = Q, this.na = C, this.aa = i, this.la = E, this.ua = [];
}
var yA = (I, A, B) => {
for (; A !== B; ) {
if (!A.aa) throw new G(`Expected null or instance of ${B.name}, got an instance of ${A.name}`);
I = A.aa(I), A = A.R;
}
return I;
};
function kI(I, A) {
if (A === null) {
if (this.ea) throw new G(`null is not a valid ${this.name}`);
return 0;
}
if (!A.K) throw new G(`Cannot pass "${JA(A)}" as a ${this.name}`);
if (!A.K.M) throw new G(`Cannot pass deleted object as a pointer of type ${this.name}`);
return yA(A.K.M, A.K.N.L, this.L);
}
function JI(I, A) {
if (A === null) {
if (this.ea) throw new G(`null is not a valid ${this.name}`);
if (this.da) {
var B = this.fa();
return I !== null && I.push(this.U, B), B;
}
return 0;
}
if (!A || !A.K) throw new G(`Cannot pass "${JA(A)}" as a ${this.name}`);
if (!A.K.M) throw new G(`Cannot pass deleted object as a pointer of type ${this.name}`);
if (!this.ba && A.K.N.ba) throw new G(`Cannot convert argument of type ${A.K.S ? A.K.S.name : A.K.N.name} to parameter type ${this.name}`);
if (B = yA(A.K.M, A.K.N.L, this.L), this.da) {
if (A.K.P === void 0) throw new G("Passing raw pointer to smart pointer is illegal");
switch (this.za) {
case 0:
if (A.K.S === this) B = A.K.P;
else throw new G(`Cannot convert argument of type ${A.K.S ? A.K.S.name : A.K.N.name} to parameter type ${this.name}`);
break;
case 1:
B = A.K.P;
break;
case 2:
if (A.K.S === this) B = A.K.P;
else {
var g = A.clone();
B = this.va(B, kA(() => g.delete())), I !== null && I.push(this.U, B);
}
break;
default:
throw new G("Unsupporting sharing policy");
}
}
return B;
}
function LI(I, A) {
if (A === null) {
if (this.ea) throw new G(`null is not a valid ${this.name}`);
return 0;
}
if (!A.K) throw new G(`Cannot pass "${JA(A)}" as a ${this.name}`);
if (!A.K.M) throw new G(`Cannot pass deleted object as a pointer of type ${this.name}`);
if (A.K.N.ba) throw new G(`Cannot convert argument of type ${A.K.N.name} to parameter type ${this.name}`);
return yA(A.K.M, A.K.N.L, this.L);
}
function EA(I, A, B, g, Q, C, i, E, o, w, F) {
this.name = I, this.L = A, this.ea = B, this.ba = g, this.da = Q, this.ta = C, this.za = i, this.ja = E, this.fa = o, this.va = w, this.U = F, Q || A.R !== void 0 ? this.toWireType = JI : (this.toWireType = g ? kI : LI, this.T = null);
}
var uA = (I, A, B) => {
if (!D.hasOwnProperty(I)) throw new O("Replacing nonexistent public symbol");
D[I].O !== void 0 && B !== void 0 ? D[I].O[B] = A : (D[I] = A, D[I].Y = B);
}, NA, YI = (I, A, B = []) => (I.includes("j") ? (I = I.replace(/p/g, "i"), A = (0, D["dynCall_" + I])(A, ...B)) : A = NA.get(A)(...B), A), HI = (I, A) => (...B) => YI(I, A, B), c = (I, A) => {
I = k(I);
var B = I.includes("j") ? HI(I, A) : NA.get(A);
if (typeof B != "function") throw new G(`unknown function pointer with signature ${I}: ${A}`);
return B;
}, mA, bA = (I) => {
I = QI(I);
var A = k(I);
return n(I), A;
}, DA = (I, A) => {
function B(C) {
Q[C] || d[C] || (BA[C] ? BA[C].forEach(B) : (g.push(C), Q[C] = !0));
}
var g = [], Q = {};
throw A.forEach(B), new mA(`${I}: ` + g.map(bA).join([", "]));
}, MA = (I, A) => {
for (var B = [], g = 0; g < I; g++) B.push(y[A + 4 * g >> 2]);
return B;
};
function PA(I) {
for (var A = 1; A < I.length; ++A) if (I[A] !== null && I[A].T === void 0) return !0;
return !1;
}
function cI(I) {
var A = Function;
if (!(A instanceof Function)) throw new TypeError(`new_ called with constructor type ${typeof A} which is not a function`);
var B = CA(A.name || "unknownFunctionName", function() {
});
return B.prototype = A.prototype, B = new B(), I = A.apply(B, I), I instanceof Object ? I : B;
}
function UA(I, A, B, g, Q, C) {
var i = A.length;
if (2 > i) throw new G("argTypes array size mismatch! Must at least get return value and 'this' types!");
var E = A[1] !== null && B !== null, o = PA(A);
for (B = A[0].name !== "void", g = [I, sI, g, Q, TA, A[0], A[1]], Q = 0; Q < i - 2; ++Q) g.push(A[Q + 2]);
if (!o) for (Q = E ? 1 : 2; Q < A.length; ++Q) A[Q].T !== null && g.push(A[Q].T);
o = PA(A), Q = A.length - 2;
var w = [], F = ["fn"];
for (E && F.push("thisWired"), i = 0; i < Q; ++i) w.push(`arg${i}`), F.push(`arg${i}Wired`);
w = w.join(","), F = F.join(","), w = `return function (${w}) {
`, o && (w += `var destructors = [];
`);
var h = o ? "destructors" : "null", N = "humanName throwBindingError invoker fn runDestructors retType classParam".split(" ");
for (E && (w += `var thisWired = classParam['toWireType'](${h}, this);
`), i = 0; i < Q; ++i) w += `var arg${i}Wired = argType${i}['toWireType'](${h}, arg${i});
`, N.push(`argType${i}`);
if (w += (B || C ? "var rv = " : "") + `invoker(${F});
`, o) w += `runDestructors(destructors);
`;
else for (i = E ? 1 : 2; i < A.length; ++i) C = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired", A[i].T !== null && (w += `${C}_dtor(${C});
`, N.push(`${C}_dtor`));
B && (w += `var ret = retType['fromWireType'](rv);
return ret;
`);
let [U, M] = [N, w + `}
`];
return U.push(M), A = cI(U)(...g), CA(I, A);
}
var zA = (I) => {
I = I.trim();
const A = I.indexOf("(");
return A !== -1 ? I.substr(0, A) : I;
}, SA = [], e = [], vA = (I) => {
9 < I && --e[I + 1] === 0 && (e[I] = void 0, SA.push(I));
}, kA = (I) => {
switch (I) {
case void 0:
return 2;
case null:
return 4;
case !0:
return 6;
case !1:
return 8;
default:
const A = SA.pop() || e.length;
return e[A] = I, e[A + 1] = 1, A;
}
}, $A = { name: "emscripten::val", fromWireType: (I) => {
if (!I) throw new G("Cannot use deleted val. handle = " + I);
var A = e[I];
return vA(I), A;
}, toWireType: (I, A) => kA(A), V: 8, readValueFromPointer: j, T: null }, JA = (I) => {
if (I === null) return "null";
var A = typeof I;
return A === "object" || A === "array" || A === "function" ? I.toString() : "" + I;
}, tI = (I, A) => {
switch (A) {
case 4:
return function(B) {
return this.fromWireType(fA[B >> 2]);
};
case 8:
return function(B) {
return this.fromWireType(eA[B >> 3]);
};
default:
throw new TypeError(`invalid float width (${A}): ${I}`);
}
}, rI = (I, A, B) => {
switch (A) {
case 1:
return B ? (g) => Z[g] : (g) => S[g];
case 2:
return B ? (g) => V[g >> 1] : (g) => AA[g >> 1];
case 4:
return B ? (g) => W[g >> 2] : (g) => y[g >> 2];
default:
throw new TypeError(`invalid integer width (${A}): ${I}`);
}
}, KI = Object.assign(
{ optional: !0 },
$A
), u = (I, A, B) => {
var g = S;
if (0 < B) {
B = A + B - 1;
for (var Q = 0; Q < I.length; ++Q) {
var C = I.charCodeAt(Q);
if (55296 <= C && 57343 >= C) {
var i = I.charCodeAt(++Q);
C = 65536 + ((C & 1023) << 10) | i & 1023;
}
if (127 >= C) {
if (A >= B) break;
g[A++] = C;
} else {
if (2047 >= C) {
if (A + 1 >= B) break;
g[A++] = 192 | C >> 6;
} else {
if (65535 >= C) {
if (A + 2 >= B) break;
g[A++] = 224 | C >> 12;
} else {
if (A + 3 >= B) break;
g[A++] = 240 | C >> 18, g[A++] = 128 | C >> 12 & 63;
}
g[A++] = 128 | C >> 6 & 63;
}
g[A++] = 128 | C & 63;
}
}
g[A] = 0;
}
}, _A = typeof TextDecoder < "u" ? new TextDecoder() : void 0, AI = (I, A = 0, B = NaN) => {
var g = A + B;
for (B = A; I[B] && !(B >= g); ) ++B;
if (16 < B - A && I.buffer && _A) return _A.decode(I.subarray(A, B));
for (g = ""; A < B; ) {
var Q = I[A++];
if (Q & 128) {
var C = I[A++] & 63;
if ((Q & 224) == 192) g += String.fromCharCode((Q & 31) << 6 | C);
else {
var i = I[A++] & 63;
Q = (Q & 240) == 224 ? (Q & 15) << 12 | C << 6 | i : (Q & 7) << 18 | C << 12 | i << 6 | I[A++] & 63, 65536 > Q ? g += String.fromCharCode(Q) : (Q -= 65536, g += String.fromCharCode(55296 | Q >> 10, 56320 | Q & 1023));
}
} else g += String.fromCharCode(Q);
}
return g;
}, II = typeof TextDecoder < "u" ? new TextDecoder("utf-16le") : void 0, nI = (I, A) => {
for (var B = I >> 1, g = B + A / 2; !(B >= g) && AA[B]; ) ++B;
if (B <<= 1, 32 < B - I && II) return II.decode(S.subarray(I, B));
for (B = "", g = 0; !(g >= A / 2); ++g) {
var Q = V[I + 2 * g >> 1];
if (Q == 0) break;
B += String.fromCharCode(Q);
}
return B;
}, fI = (I, A, B) => {
if (B ?? (B = 2147483647), 2 > B) return 0;
B -= 2;
var g = A;
B = B < 2 * I.length ? B / 2 : I.length;
for (var Q = 0; Q < B; ++Q) V[A >> 1] = I.charCodeAt(Q), A += 2;
return V[A >> 1] = 0, A - g;
}, eI = (I) => 2 * I.length, qI = (I, A) => {
for (var B = 0, g = ""; !(B >= A / 4); ) {
var Q = W[I + 4 * B >> 2];
if (Q == 0) break;
++B, 65536 <= Q ? (Q -= 65536, g += String.fromCharCode(55296 | Q >> 10, 56320 | Q & 1023)) : g += String.fromCharCode(Q);
}
return g;
}, dI = (I, A, B) => {
if (B ?? (B = 2147483647), 4 > B) return 0;
var g = A;
B = g + B - 4;
for (var Q = 0; Q < I.length; ++Q) {
var C = I.charCodeAt(Q);
if (55296 <= C && 57343 >= C) {
var i = I.charCodeAt(++Q);
C = 65536 + ((C & 1023) << 10) | i & 1023;
}
if (W[A >> 2] = C, A += 4, A + 4 > B) break;
}
return W[A >> 2] = 0, A - g;
}, lI = (I) => {
for (var A = 0, B = 0; B < I.length; ++B) {
var g = I.charCodeAt(B);
55296 <= g && 57343 >= g && ++B, A += 4;
}
return A;
}, LA = {}, BI = () => {
if (!YA) {
var I = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8", _: GA || "./this.program" }, A;
for (A in LA) LA[A] === void 0 ? delete I[A] : I[A] = LA[A];
var B = [];
for (A in I) B.push(`${A}=${I[A]}`);
YA = B;
}
return YA;
}, YA, WI = [null, [], []];
O = D.InternalError = class extends Error {
constructor(I) {
super(I), this.name = "InternalError";
}
};
for (var gI = Array(256), iA = 0; 256 > iA; ++iA) gI[iA] = String.fromCharCode(iA);
ZA = gI, G = D.BindingError = class extends Error {
constructor(I) {
super(I), this.name = "BindingError";
}
}, Object.assign(QA.prototype, { isAliasOf: function(I) {
if (!(this instanceof QA && I instanceof QA)) return !1;
var A = this.K.N.L, B = this.K.M;
I.K = I.K;
var g = I.K.N.L;
for (I = I.K.M; A.R; ) B = A.aa(B), A = A.R;
for (; g.R; ) I = g.aa(I), g = g.R;
return A === g && B === I;
}, clone: function() {
if (this.K.M || hA(this), this.K.$) return this.K.count.value += 1, this;
var I = X, A = Object, B = A.create, g = Object.getPrototypeOf(this), Q = this.K;
return I = I(B.call(A, g, { K: { value: { count: Q.count, Z: Q.Z, $: Q.$, M: Q.M, N: Q.N, P: Q.P, S: Q.S } } })), I.K.count.value += 1, I.K.Z = !1, I;
}, delete() {
if (this.K.M || hA(this), this.K.Z && !this.K.$) throw new G("Object already scheduled for deletion");
VA(this);
var I = this.K;
--I.count.value, I.count.value === 0 && (I.P ? I.S.U(I.P) : I.N.L.U(I.M)), this.K.$ || (this.K.P = void 0, this.K.M = void 0);
}, isDeleted: function() {
return !this.K.M;
}, deleteLater: function() {
if (this.K.M || hA(this), this.K.Z && !this.K.$) throw new G("Object already scheduled for deletion");
return this.K.Z = !0, this;
} }), Object.assign(EA.prototype, { oa(I) {
return this.ja && (I = this.ja(I)), I;
}, ha(I) {
var A;
(A = this.U) == null || A.call(this, I);
}, V: 8, readValueFromPointer: j, fromWireType: function(I) {
function A() {
return this.da ? gA(this.L.X, { N: this.ta, M: B, S: this, P: I }) : gA(this.L.X, { N: this, M: I });
}
var B = this.oa(I);
if (!B) return this.ha(I), null;
var g = MI(this.L, B);
if (g !== void 0)
return g.K.count.value === 0 ? (g.K.M = B, g.K.P = I, g.clone()) : (g = g.clone(), this.ha(I), g);
if (g = this.L.na(B), g = jA[g], !g) return A.call(this);
g = this.ba ? g.ka : g.pointerType;
var Q = pA(B, this.L, g.L);
return Q === null ? A.call(this) : this.da ? gA(g.L.X, { N: g, M: Q, S: this, P: I }) : gA(g.L.X, { N: g, M: Q });
} }), mA = D.UnboundTypeError = ((I, A) => {
var B = CA(A, function(g) {
this.name = A, this.message = g, g = Error(g).stack, g !== void 0 && (this.stack = this.toString() + `
` + g.replace(/^Error(:[^\n]*)?\n/, ""));
});
return B.prototype = Object.create(I.prototype), B.prototype.constructor = B, B.prototype.toString = function() {
return this.message === void 0 ? this.name : `${this.name}: ${this.message}`;
}, B;
})(Error, "UnboundTypeError"), e.push(0, 1, void 0, 1, null, 1, !0, 1, !1, 1), D.count_emval_handles = () => e.length / 2 - 5 - SA.length;
var xI = { u: () => {
xA("");
}, y: (I) => {
var A = IA[I];
delete IA[I];
var B = A.fa, g = A.U, Q = A.ia, C = Q.map((i) => i.ra).concat(Q.map((i) => i.xa));
l([I], C, (i) => {
var E = {};
return Q.forEach((o, w) => {
var F = i[w], h = o.pa, N = o.qa, U = i[w + Q.length], M = o.wa, Y = o.ya;
E[o.ma] = { read: (f) => F.fromWireType(h(N, f)), write: (f, m) => {
var L = [];
M(Y, f, U.toWireType(L, m)), TA(L);
} };
}), [{ name: A.name, fromWireType: (o) => {
var w = {}, F;
for (F in E) w[F] = E[F].read(o);
return g(o), w;
}, toWireType: (o, w) => {
for (var F in E) if (!(F in w)) throw new TypeError(`Missing field: "${F}"`);
var h = B();
for (F in E) E[F].write(h, w[F]);
return o !== null && o.push(g, h), h;
}, V: 8, readValueFromPointer: j, T: g }];
});
}, p: () => {
}, w: (I, A, B, g) => {
A = k(A), r(I, { name: A, fromWireType: function(Q) {
return !!Q;
}, toWireType: function(Q, C) {
return C ? B : g;
}, V: 8, readValueFromPointer: function(Q) {
return this.fromWireType(S[Q]);
}, T: null });
}, i: (I, A, B, g, Q, C, i, E, o, w, F, h, N) => {
F = k(F), C = c(Q, C), E && (E = c(i, E)), w && (w = c(o, w)), N = c(h, N);
var U = UI(F);
XA(U, function() {
DA(`Cannot construct ${F} due to unbound types`, [g]);
}), l([I, A, B], g ? [g] : [], (M) => {
if (M = M[0], g)
var Y = M.L, f = Y.X;
else f = QA.prototype;
M = CA(F, function(...cA) {
if (Object.getPrototypeOf(this) !== m) throw new G("Use 'new' to construct " + F);
if (L.W === void 0) throw new G(F + " has no accessible constructor");
var EI = L.W[cA.length];
if (EI === void 0) throw new G(`Tried to invoke ctor of ${F} with invalid number of parameters (${cA.length}) - expected (${Object.keys(L.W).toString()}) parameters instead!`);
return EI.apply(this, cA);
});
var m = Object.create(f, { constructor: { value: M } });
M.prototype = m;
var L = new SI(
F,
M,
m,
N,
Y,
C,
E,
w
);
if (L.R) {
var b;
(b = L.R).ga ?? (b.ga = []), L.R.ga.push(L);
}
return Y = new EA(F, L, !0, !1, !1), b = new EA(F + "*", L, !1, !1, !1), f = new EA(F + " const*", L, !1, !0, !1), jA[I] = { pointerType: b, ka: f }, uA(U, M), [Y, b, f];
});
}, g: (I, A, B, g, Q, C) => {
var i = MA(A, B);
Q = c(g, Q), l([], [I], (E) => {
E = E[0];
var o = `constructor ${E.name}`;
if (E.L.W === void 0 && (E.L.W = []), E.L.W[A - 1] !== void 0) throw new G(`Cannot register multiple constructors with identical number of parameters (${A - 1}) for class '${E.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
return E.L.W[A - 1] = () => {
DA(`Cannot construct ${E.name} due to unbound types`, i);
}, l([], i, (w) => (w.splice(1, 0, null), E.L.W[A - 1] = UA(o, w, null, Q, C), [])), [];
});
}, b: (I, A, B, g, Q, C, i, E, o) => {
var w = MA(B, g);
A = k(A), A = zA(A), C = c(Q, C), l([], [I], (F) => {
function h() {
DA(`Cannot call ${N} due to unbound types`, w);
}
F = F[0];
var N = `${F.name}.${A}`;
A.startsWith("@@") && (A = Symbol[A.substring(2)]), E && F.L.ua.push(A);
var U = F.L.X, M = U[A];
return M === void 0 || M.O === void 0 && M.className !== F.name && M.Y === B - 2 ? (h.Y = B - 2, h.className = F.name, U[A] = h) : (OA(
U,
A,
N
), U[A].O[B - 2] = h), l([], w, (Y) => (Y = UA(N, Y, F, C, i, o), U[A].O === void 0 ? (Y.Y = B - 2, U[A] = Y) : U[A].O[B - 2] = Y, [])), [];
});
}, v: (I) => r(I, $A), l: (I, A, B) => {
A = k(A), r(I, { name: A, fromWireType: (g) => g, toWireType: (g, Q) => Q, V: 8, readValueFromPointer: tI(A, B), T: null });
}, m: (I, A, B, g, Q, C, i) => {
var E = MA(A, B);
I = k(I), I = zA(I), Q = c(g, Q), XA(I, function() {
DA(`Cannot call ${I} due to unbound types`, E);
}, A - 1), l([], E, (o) => (o = [o[0], null].concat(o.slice(1)), uA(I, UA(I, o, null, Q, C, i), A - 1), []));
}, c: (I, A, B, g, Q) => {
if (A = k(A), Q === -1 && (Q = 4294967295), Q = (E) => E, g === 0) {
var C = 32 - 8 * B;
Q = (E) => E << C >>> C;
}
var i = A.includes("unsigned") ? function(E, o) {
return o >>> 0;
} : function(E, o) {
return o;
};
r(I, { name: A, fromWireType: Q, toWireType: i, V: 8, readValueFromPointer: rI(A, B, g !== 0), T: null });
}, a: (I, A, B) => {
function g(C) {
return new Q(Z.buffer, y[C + 4 >> 2], y[C >> 2]);
}
var Q = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array][A];
B = k(B), r(I, { name: B, fromWireType: g, V: 8, readValueFromPointer: g }, { sa: !0 });
}, h: (I) => {
r(I, KI);
}, k: (I, A) => {
A = k(A);
var B = A === "std::string";
r(I, { name: A, fromWireType: function(g) {
var Q = y[g >> 2], C = g + 4;
if (B) for (var i = C, E = 0; E <= Q; ++E) {
var o = C + E;
if (E == Q || S[o] == 0) {
if (i = i ? AI(S, i, o - i) : "", w === void 0) var w = i;
else w += "\0", w += i;
i = o + 1;
}
}
else {
for (w = Array(Q), E = 0; E < Q; ++E) w[E] = String.fromCharCode(S[C + E]);
w = w.join("");
}
return n(g), w;
}, toWireType: function(g, Q) {
Q instanceof ArrayBuffer && (Q = new Uint8Array(Q));
var C, i = typeof Q == "string";
if (!(i || Q instanceof Uint8Array || Q instanceof Uint8ClampedArray || Q instanceof Int8Array)) throw new G("Cannot pass non-string to std::string");
if (B && i) for (var E = C = 0; E < Q.length; ++E) {
var o = Q.charCodeAt(E);
127 >= o ? C++ : 2047 >= o ? C += 2 : 55296 <= o && 57343 >= o ? (C += 4, ++E) : C += 3;
}
else C = Q.length;
if (E = HA(4 + C + 1), o = E + 4, y[E >> 2] = C, B && i) u(Q, o, C + 1);
else if (i) for (i = 0; i < C; ++i) {
var w = Q.charCodeAt(i);
if (255 < w) throw n(o), new G("String has UTF-16 code units that do not fit in 8 bits");
S[o + i] = w;
}
else for (i = 0; i < C; ++i) S[o + i] = Q[i];
return g !== null && g.push(n, E), E;
}, V: 8, readValueFromPointer: j, T(g) {
n(g);
} });
}, e: (I, A, B) => {
if (B = k(B), A === 2)
var g = nI, Q = fI, C = eI, i = (E) => AA[E >> 1];
else A === 4 && (g = qI, Q = dI, C = lI, i = (E) => y[E >> 2]);
r(I, { name: B, fromWireType: (E) => {
for (var o = y[E >> 2], w, F = E + 4, h = 0; h <= o; ++h) {
var N = E + 4 + h * A;
(h == o || i(N) == 0) && (F = g(F, N - F), w === void 0 ? w = F : (w += "\0", w += F), F = N + A);
}
return n(E), w;
}, toWireType: (E, o) => {
if (typeof o != "string") throw new G(`Cannot pass non-string to C++ string type ${B}`);
var w = C(o), F = HA(4 + w + A);
return y[F >> 2] = w / A, Q(o, F + 4, w + A), E !== null && E.push(n, F), F;
}, V: 8, readValueFromPointer: j, T(E) {
n(E);
} });
}, o: (I, A, B, g, Q, C) => {
IA[I] = {
name: k(A),
fa: c(B, g),
U: c(Q, C),
ia: []
};
}, d: (I, A, B, g, Q, C, i, E, o, w) => {
IA[I].ia.push({ ma: k(A), ra: B, pa: c(g, Q), qa: C, xa: i, wa: c(E, o), ya: w });
}, x: (I, A) => {
A = k(A), r(I, { Aa: !0, name: A, V: 0, fromWireType: () => {
}, toWireType: () => {
} });
}, n: vA, f: (I, A) => {
var B = d[I];
if (B === void 0) throw I = `_emval_take_value has unknown type ${bA(I)}`, new G(I);
return I = B, I = I.readValueFromPointer(A), kA(I);
}, q: (I, A, B, g) => {
var Q = (/* @__PURE__ */ new Date()).getFullYear(), C = new Date(Q, 0, 1).getTimezoneOffset();
Q = new Date(Q, 6, 1).getTimezoneOffset(), y[I >> 2] = 60 * Math.max(C, Q), W[A >> 2] = +(C != Q), A = (i) => {
var E = Math.abs(i);
return `UTC${0 <= i ? "-" : "+"}${String(Math.floor(E / 60)).padStart(2, "0")}${String(E % 60).padStart(2, "0")}`;
}, I = A(C), A = A(Q), Q < C ? (u(I, B, 17), u(A, g, 17)) : (u(I, g, 17), u(A, B, 17));
}, t: (I) => {
var A = S.length;
if (I >>>= 0, 2147483648 < I) return !1;
for (var B = 1; 4 >= B; B *= 2) {
var g = A * (1 + 0.2 / B);
g = Math.min(g, I + 100663296);
A: {
g = (Math.min(2147483648, 65536 * Math.ceil(Math.max(I, g) / 65536)) - _.buffer.byteLength + 65535) / 65536 | 0;
try {
_.grow(g), qA();
var Q = 1;
break A;
} catch {
}
Q = void 0;
}
if (Q) return !0;
}
return !1;
}, r: (I, A) => {
var B = 0;
return BI().forEach((g, Q) => {
var C = A + B;
for (Q = y[I + 4 * Q >> 2] = C, C = 0; C < g.length; ++C) Z[Q++] = g.charCodeAt(C);
Z[Q] = 0, B += g.length + 1;
}), 0;
}, s: (I, A) => {
var B = BI();
y[I >> 2] = B.length;
var g = 0;
return B.forEach((Q) => g += Q.length + 1), y[A >> 2] = g, 0;
}, j: (I, A, B, g) => {
for (var Q = 0, C = 0; C < B; C++) {
var i = y[A >> 2], E = y[A + 4 >> 2];
A += 8;
for (var o = 0; o < E; o++) {
var w = S[i + o], F = WI[I];
w === 0 || w === 10 ? ((I === 1 ? oI : $)(AI(F)), F.length = 0) : F.push(w);
}
Q += E;
}
return y[g >> 2] = Q, 0;
} }, J = function() {
var B;
function I(g) {
var Q;
return J = g.exports, _ = J.z, qA(), NA = J.B, lA.unshift(J.A), q--, (Q = D.monitorRunDependencies) == null || Q.call(D, q), q == 0 && p && (g = p, p = null, g()), J;
}
q++, (B = D.monitorRunDependencies) == null || B.call(D, q);
var A = { a: xI };
if (D.instantiateWasm) try {
return D.instantiateWasm(A, I);
} catch (g) {
$(`Module.instantiateWasm callback failed with error: ${g}`), t(g);
}
return aA ?? (aA = "data:application/octet-stream;base64,AGFzbQEAAAAB1AM4YAF/AX9gAn9/AGABfwBgAn9/AX9gA39/fwF/YAN/f38AYAZ/f39/f38Bf2AEf39/fwBgBX9/f39/AX9gBH9/f38Bf2AGf39/f39/AGAFf39/f38AYAh/f39/f39/fwF/YAAAYAd/f39/f39/AX9gB39/f39/f38AYAV/fn5+fgBgBX9/f39+AX9gCn9/f39/f39/f38AYAABf2AFf39+f38AYAh/f39/f39/fwBgBH9+fn8AYAN/fn8BfmAKf39/f39/f39/fwF/YAd/f39/f35+AX9gBn9/f39+fgF/YAJ/fgBgA39/fwF+YAx/f39/f39/f39/f38Bf2AGf39/f35/AX9gD39/f39/f39/f39/f39/fwBgC39/f39/f39/f39/AX9gBH9/f38BfmAGf3x/f39/AX9gBX9/f398AX9gDX9/f39/f39/f39/f38AYAJ/fABgBH5+fn4Bf2ACfn8Bf2ABfwF8YAR/f39+AX5gAn5+AXxgBH9/fn4AYAN/f38BfGADf39/AX1gA39/fgBgAn5+AX1gAn9/AX5gBH9+fn4AYAN+fn4Bf2ACfH8BfGAEf39/fQF/YAl/f39/f39/f38Bf2AEf39/fQBgA39/fQAClwEZAWEBYQAFAWEBYgASAWEBYwALAWEBZAASAWEBZQAFAWEBZgADAWEBZwAKAWEBaAABAWEBaQAkAWEBagAJAWEBawABAWEBbAAFAWEBbQAVAWEBbgACAWEBbwAKAWEBcAAPAWEBcQAHAWEBcgADAWEBcwADAWEBdAAAAWEBdQANAWEBdgACAWEBdwAHAWEBeAABAWEBeQACA4wFigUAAAEDAAACAAABAQEDAxMCEAADBQIAAAIEAAACDQQBBAAAEAMFBwEWCwEABAEADQAAABADAQgAAQEBBQQDAQAAAQEBAQUABAQFAAIDGwAAAwEICAkEACUADAwHDQEAAAEBAQADAAcDAAAFAwYAAwMBAQYEJgMDAAUWAgQBAAEAAQAFAwMYBAAYAQAAAQEAAwcAAQAnAw0CCAUDBQEAAAQCCwEVAAMAAAIBAAAAAQQHAw4DAwIOCQkDCQMABQMFAQEAAAECAQMoAAQABgEKBQcDBQEcAAAABAMAAwsBAgACBB0LBB0LAQcAKQAAEAACAQIJAgUEAgAAAxsBACoDDQ0CAg0AHgYe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An9B8OQBKAIAIgdBASABdCICcUUEQEHw5AEgAiAHcjYCACAEIAM2AgBBGCEBQQgMAQsgAEEZIAFBAXZrQQAgAUEfRxt0IQEgBCgCACEEA0AgBCICKAIEQXhxIABGDQIgAUEddiEEIAFBAXQhASACIARBBHFqIgcoAhAiBA0ACyAHIAM2AhBBGCEBIAIhBEEICyEAIAMiAgwBCyACKAIIIgQgAzYCDCACIAM2AghBGCEAQQghAUEACyEHIAEgA2ogBDYCACADIAI2AgwgACADaiAHNgIAQYzlAUGM5QEoAgBBAWsiAEF/IAAbNgIACwu7CgIFfw9+IwBB4ABrIgUkACAEQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyEKIAJC////////P4MiDUIgiCEOIARCMIinQf//AXEhBwJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAdB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiC0KAgICAgIDA//8AVCALQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQoMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhCiADIQEMAgsgASALQoCAgICAgMD//wCFhFAEQCACIAOEUARAQoCAgICAgOD//wAhCkIAIQEMAwsgCkKAgICAgIDA//8AhCEKQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAIAEgC4RCACEBUARAQoCAgICAgOD//wAhCgwDCyAKQoCAgICAgMD//wCEIQoMAgsgASALhFAEQEIAIQEMAgsgAiADhFAEQEIAIQEMAgsgC0L///////8/WARAIAVB0ABqIAEgDSABIA0gDVAiBht5IAZBBnStfKciBkEPaxBAQRAgBmshBiAFKQNYIg1CIIghDiAFKQNQIQELIAJC////////P1YNACAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxBAIAYgCGtBEGohBiAFKQNIIQwgBSkDQCEDCyADQg+GIgtCgID+/w+DIgIgAUIgiCIEfiIQIAtCIIgiEyABQv////8PgyIBfnwiD0IghiIRIAEgAn58IgsgEVStIAIgDUL/////D4MiDX4iFSAEIBN+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IgMkACADIAE2AgwgACADQQxqEI0BIgBBBGogAhCNARogA0EQaiQAIAALCgAgACgCABCzAwsLACAAKAIAELgDwAs7AQJ/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAiAgRAIAAgAjYCBCAAKAIIGiACECgLIAFBEGokAAsGABCuAQALLQAgAkUEQCAAKAIEIAEoAgRGDwsgACABRgRAQQEPCyAAKAIEIAEoAgQQ0AFFCyQBAX8gACgCACECIAAgATYCACACBEAgAiAAEJkBKAIAEQIACwspAQF/IAIEQCAAIQMDQCADIAE6AAAgA0EBaiEDIAJBAWsiAg0ACwsgAAsNACAAKAIAELIDGiAACw0AIAAoAgAQmwIaIAALdQEBfiAAIAEgBH4gAiADfnwgA0IgiCICIAFCIIgiBH58IANC/////w+DIgMgAUL/////D4MiAX4iBUIgiCADIAR+fCIDQiCIfCABIAJ+IANC/////w+DfCIBQiCIfDcDCCAAIAVC/////w+DIAFCIIaENwMACxEAIAAgASAAKAIAKAIcEQMAC8EBAQN/IAAtAABBIHFFBEACQCAAKAIQIgMEfyADBSAAEOABDQEgACgCEAsgACgCFCIEayACSQRAIAAgASACIAAoAiQRBAAaDAELAkACQCACRSAAKAJQQQBIcg0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQQAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACEEQaIAAgACgCFCACajYCFAsLC6EBAQJ/AkAgABAZRSACIAFrQQVIcg0AIAEgAhDFASACQQRrIQQgABAdIgIgABAZaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACws8ACAALAALQQBIBEAgACgCCBogACgCABAoCyAAIAEpAgA3AgAgACABKAIINgIIIAFBADoACyABQQA6AAALUAEBfgJAIANBwABxBEAgASADQUBqrYYhAkIAIQEMAQsgA0UNACACIAOtIgSGIAFBwAAgA2utiIQhAiABIASGIQELIAAgATcDACAAIAI3AwgLaQEBfyMAQYACayIFJAAgBEGAwARxIAIgA0xyRQRAIAUgASACIANrIgNBgAIgA0GAAk