@vkontakte/calls-audio-effects 1.2.10-dev.12fb226c.0 → 1.2.10-dev.1bc4af6a.0
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/AudioEffects.d.ts +1 -1
- package/audio-effects.cjs.js +568 -478
- package/audio-effects.esm.js +568 -478
- package/controllers/VadController.d.ts +6 -3
- package/effects/EffectVadAi.d.ts +20 -0
- package/package.json +2 -2
- package/workers/VadTfliteWorker.d.ts +6 -0
- /package/workers/{VadAiWorker.d.ts → VadOnnxWorker.d.ts} +0 -0
package/audio-effects.cjs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vkontakte/calls-audio-effects v1.2.10-dev.
|
|
3
|
-
*
|
|
2
|
+
* @vkontakte/calls-audio-effects v1.2.10-dev.1bc4af6a.0-dev
|
|
3
|
+
* Mon, 27 Jul 2026 11:15:12 GMT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
@@ -38,7 +38,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
38
38
|
// node_modules/@vkontakte/audio-processing/wasm_bindings.js
|
|
39
39
|
var require_wasm_bindings = __commonJS({
|
|
40
40
|
"node_modules/@vkontakte/audio-processing/wasm_bindings.js"(exports, module2) {
|
|
41
|
-
var
|
|
41
|
+
var wav2lip4 = (() => {
|
|
42
42
|
var _scriptName = typeof document != "undefined" ? document.currentScript?.src : void 0;
|
|
43
43
|
return function(moduleArg = {}) {
|
|
44
44
|
var moduleRtn;
|
|
@@ -49,12 +49,10 @@ var require_wasm_bindings = __commonJS({
|
|
|
49
49
|
readyPromiseReject = reject;
|
|
50
50
|
});
|
|
51
51
|
var ENVIRONMENT_IS_WEB = typeof window == "object";
|
|
52
|
-
var ENVIRONMENT_IS_WORKER = typeof
|
|
53
|
-
var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string";
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
Module.expectedDataFileDownloads++;
|
|
52
|
+
var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
|
|
53
|
+
var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
|
|
54
|
+
Module["expectedDataFileDownloads"] ??= 0;
|
|
55
|
+
Module["expectedDataFileDownloads"]++;
|
|
58
56
|
(() => {
|
|
59
57
|
var isPthread = typeof ENVIRONMENT_IS_PTHREAD != "undefined" && ENVIRONMENT_IS_PTHREAD;
|
|
60
58
|
var isWasmWorker = typeof ENVIRONMENT_IS_WASM_WORKER != "undefined" && ENVIRONMENT_IS_WASM_WORKER;
|
|
@@ -63,63 +61,55 @@ var require_wasm_bindings = __commonJS({
|
|
|
63
61
|
function loadPackage(metadata) {
|
|
64
62
|
var PACKAGE_PATH = "";
|
|
65
63
|
if (typeof window === "object") {
|
|
66
|
-
PACKAGE_PATH = window["encodeURIComponent"](window.location.pathname.
|
|
64
|
+
PACKAGE_PATH = window["encodeURIComponent"](window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/")) + "/");
|
|
67
65
|
} else if (typeof process === "undefined" && typeof location !== "undefined") {
|
|
68
|
-
PACKAGE_PATH = encodeURIComponent(location.pathname.
|
|
66
|
+
PACKAGE_PATH = encodeURIComponent(location.pathname.substring(0, location.pathname.lastIndexOf("/")) + "/");
|
|
69
67
|
}
|
|
70
68
|
var PACKAGE_NAME = "wasm_bindings.data";
|
|
71
69
|
var REMOTE_PACKAGE_BASE = "wasm_bindings.data";
|
|
72
|
-
if (typeof Module["locateFilePackage"] === "function" && !Module["locateFile"]) {
|
|
73
|
-
Module["locateFile"] = Module["locateFilePackage"];
|
|
74
|
-
err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)");
|
|
75
|
-
}
|
|
76
70
|
var REMOTE_PACKAGE_NAME = Module["locateFile"] ? Module["locateFile"](REMOTE_PACKAGE_BASE, "") : REMOTE_PACKAGE_BASE;
|
|
77
71
|
var REMOTE_PACKAGE_SIZE = metadata["remote_package_size"];
|
|
78
72
|
function fetchRemotePackage(packageName, packageSize, callback, errback) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var url = packageName;
|
|
84
|
-
var size = packageSize;
|
|
85
|
-
if (event.total)
|
|
86
|
-
size = event.total;
|
|
87
|
-
if (event.loaded) {
|
|
88
|
-
if (!xhr.addedTotal) {
|
|
89
|
-
xhr.addedTotal = true;
|
|
90
|
-
if (!Module.dataFileDownloads)
|
|
91
|
-
Module.dataFileDownloads = {};
|
|
92
|
-
Module.dataFileDownloads[url] = { loaded: event.loaded, total: size };
|
|
93
|
-
} else {
|
|
94
|
-
Module.dataFileDownloads[url].loaded = event.loaded;
|
|
95
|
-
}
|
|
96
|
-
var total = 0;
|
|
97
|
-
var loaded = 0;
|
|
98
|
-
var num = 0;
|
|
99
|
-
for (var download in Module.dataFileDownloads) {
|
|
100
|
-
var data = Module.dataFileDownloads[download];
|
|
101
|
-
total += data.total;
|
|
102
|
-
loaded += data.loaded;
|
|
103
|
-
num++;
|
|
104
|
-
}
|
|
105
|
-
total = Math.ceil(total * Module.expectedDataFileDownloads / num);
|
|
106
|
-
Module["setStatus"]?.(`Downloading data... (${loaded}/${total})`);
|
|
107
|
-
} else if (!Module.dataFileDownloads) {
|
|
108
|
-
Module["setStatus"]?.("Downloading data...");
|
|
73
|
+
Module["dataFileDownloads"] ??= {};
|
|
74
|
+
fetch(packageName).catch((cause) => Promise.reject(new Error(`Network Error: ${packageName}`, { cause }))).then((response) => {
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
return Promise.reject(new Error(`${response.status}: ${response.url}`));
|
|
109
77
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
throw new Error("NetworkError for: " + packageName);
|
|
113
|
-
};
|
|
114
|
-
xhr.onload = function(event) {
|
|
115
|
-
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || xhr.status == 0 && xhr.response) {
|
|
116
|
-
var packageData = xhr.response;
|
|
117
|
-
callback(packageData);
|
|
118
|
-
} else {
|
|
119
|
-
throw new Error(xhr.statusText + " : " + xhr.responseURL);
|
|
78
|
+
if (!response.body && response.arrayBuffer) {
|
|
79
|
+
return response.arrayBuffer().then(callback);
|
|
120
80
|
}
|
|
121
|
-
|
|
122
|
-
|
|
81
|
+
const reader = response.body.getReader();
|
|
82
|
+
const iterate = () => reader.read().then(handleChunk).catch((cause) => Promise.reject(new Error(`Unexpected error while handling : ${response.url} ${cause}`, { cause })));
|
|
83
|
+
const chunks = [];
|
|
84
|
+
const headers = response.headers;
|
|
85
|
+
const total = Number(headers.get("Content-Length") ?? packageSize);
|
|
86
|
+
let loaded = 0;
|
|
87
|
+
const handleChunk = ({ done, value }) => {
|
|
88
|
+
if (!done) {
|
|
89
|
+
chunks.push(value);
|
|
90
|
+
loaded += value.length;
|
|
91
|
+
Module["dataFileDownloads"][packageName] = { loaded, total };
|
|
92
|
+
let totalLoaded = 0;
|
|
93
|
+
let totalSize = 0;
|
|
94
|
+
for (const download of Object.values(Module["dataFileDownloads"])) {
|
|
95
|
+
totalLoaded += download.loaded;
|
|
96
|
+
totalSize += download.total;
|
|
97
|
+
}
|
|
98
|
+
Module["setStatus"]?.(`Downloading data... (${totalLoaded}/${totalSize})`);
|
|
99
|
+
return iterate();
|
|
100
|
+
} else {
|
|
101
|
+
const packageData = new Uint8Array(chunks.map((c) => c.length).reduce((a, b) => a + b, 0));
|
|
102
|
+
let offset = 0;
|
|
103
|
+
for (const chunk of chunks) {
|
|
104
|
+
packageData.set(chunk, offset);
|
|
105
|
+
offset += chunk.length;
|
|
106
|
+
}
|
|
107
|
+
callback(packageData.buffer);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
Module["setStatus"]?.("Downloading data...");
|
|
111
|
+
return iterate();
|
|
112
|
+
});
|
|
123
113
|
}
|
|
124
114
|
function handleError(error) {
|
|
125
115
|
console.error("package error:", error);
|
|
@@ -127,7 +117,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
127
117
|
var fetchedCallback = null;
|
|
128
118
|
var fetched = Module["getPreloadedPackage"] ? Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
|
|
129
119
|
if (!fetched)
|
|
130
|
-
fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE,
|
|
120
|
+
fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, (data) => {
|
|
131
121
|
if (fetchedCallback) {
|
|
132
122
|
fetchedCallback(data);
|
|
133
123
|
fetchedCallback = null;
|
|
@@ -175,9 +165,8 @@ var require_wasm_bindings = __commonJS({
|
|
|
175
165
|
Module2["removeRunDependency"]("datafile_wasm_bindings.data");
|
|
176
166
|
}
|
|
177
167
|
Module2["addRunDependency"]("datafile_wasm_bindings.data");
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
Module2.preloadResults[PACKAGE_NAME] = { fromCache: false };
|
|
168
|
+
Module2["preloadResults"] ??= {};
|
|
169
|
+
Module2["preloadResults"][PACKAGE_NAME] = { fromCache: false };
|
|
181
170
|
if (fetched) {
|
|
182
171
|
processPackageData(fetched);
|
|
183
172
|
fetched = null;
|
|
@@ -188,12 +177,10 @@ var require_wasm_bindings = __commonJS({
|
|
|
188
177
|
if (Module["calledRun"]) {
|
|
189
178
|
runWithFS(Module);
|
|
190
179
|
} else {
|
|
191
|
-
|
|
192
|
-
Module["preRun"] = [];
|
|
193
|
-
Module["preRun"].push(runWithFS);
|
|
180
|
+
(Module["preRun"] ??= []).push(runWithFS);
|
|
194
181
|
}
|
|
195
182
|
}
|
|
196
|
-
loadPackage({ files: [{ filename: "/animoji_v4.cfg", start: 0, end: 333 }, { filename: "/balloon.cfg", start: 333, end: 409 }, { filename: "/cathedral.cfg", start:
|
|
183
|
+
loadPackage({ files: [{ filename: "/animoji_v4.cfg", start: 0, end: 333 }, { filename: "/balloon.cfg", start: 333, end: 409 }, { filename: "/bcresnet_internal_state_20ms.tflite", start: 409, end: 274717 }, { filename: "/cathedral.cfg", start: 274717, end: 274894 }, { filename: "/chorus.cfg", start: 274894, end: 275173 }, { filename: "/denoise.cfg", start: 275173, end: 277566 }, { filename: "/df2_lstm_full_silent.tflite", start: 277566, end: 3444286 }, { filename: "/distortion.cfg", start: 3444286, end: 3444428 }, { filename: "/echo.cfg", start: 3444428, end: 3444565 }, { filename: "/evil.cfg", start: 3444565, end: 3444706 }, { filename: "/giant.cfg", start: 3444706, end: 3444782 }, { filename: "/hall.cfg", start: 3444782, end: 3444955 }, { filename: "/phaser.cfg", start: 3444955, end: 3445055 }, { filename: "/robot.cfg", start: 3445055, end: 3445195 }, { filename: "/squirell.cfg", start: 3445195, end: 3445271 }, { filename: "/vad.cfg", start: 3445271, end: 3445492 }, { filename: "/wav2lip_lite_rec-v4-v2.tflite", start: 3445492, end: 7730572 }], remote_package_size: 7730572 });
|
|
197
184
|
})();
|
|
198
185
|
var _scriptName2 = null;
|
|
199
186
|
var moduleOverrides = Object.assign({}, Module);
|
|
@@ -234,12 +221,13 @@ var require_wasm_bindings = __commonJS({
|
|
|
234
221
|
return new Uint8Array(xhr.response);
|
|
235
222
|
};
|
|
236
223
|
}
|
|
237
|
-
readAsync =
|
|
224
|
+
readAsync = async (url) => {
|
|
225
|
+
var response = await fetch(url, { credentials: "same-origin" });
|
|
238
226
|
if (response.ok) {
|
|
239
227
|
return response.arrayBuffer();
|
|
240
228
|
}
|
|
241
|
-
|
|
242
|
-
}
|
|
229
|
+
throw new Error(response.status + " : " + response.url);
|
|
230
|
+
};
|
|
243
231
|
}
|
|
244
232
|
} else {
|
|
245
233
|
}
|
|
@@ -251,11 +239,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
251
239
|
arguments_ = Module["arguments"];
|
|
252
240
|
if (Module["thisProgram"])
|
|
253
241
|
thisProgram = Module["thisProgram"];
|
|
254
|
-
|
|
255
|
-
quit_ = Module["quit"];
|
|
256
|
-
var wasmBinary;
|
|
257
|
-
if (Module["wasmBinary"])
|
|
258
|
-
wasmBinary = Module["wasmBinary"];
|
|
242
|
+
var wasmBinary = Module["wasmBinary"];
|
|
259
243
|
var wasmMemory;
|
|
260
244
|
var ABORT = false;
|
|
261
245
|
var EXITSTATUS;
|
|
@@ -287,7 +271,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
287
271
|
}
|
|
288
272
|
function initRuntime() {
|
|
289
273
|
runtimeInitialized = true;
|
|
290
|
-
if (!Module["noFSInit"] && !FS.
|
|
274
|
+
if (!Module["noFSInit"] && !FS.initialized)
|
|
291
275
|
FS.init();
|
|
292
276
|
FS.ignorePermissions = false;
|
|
293
277
|
TTY.init();
|
|
@@ -313,7 +297,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
313
297
|
__ATPOSTRUN__.unshift(cb);
|
|
314
298
|
}
|
|
315
299
|
var runDependencies = 0;
|
|
316
|
-
var runDependencyWatcher = null;
|
|
317
300
|
var dependenciesFulfilled = null;
|
|
318
301
|
function getUniqueRunDependency(id) {
|
|
319
302
|
return id;
|
|
@@ -326,10 +309,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
326
309
|
runDependencies--;
|
|
327
310
|
Module["monitorRunDependencies"]?.(runDependencies);
|
|
328
311
|
if (runDependencies == 0) {
|
|
329
|
-
if (runDependencyWatcher !== null) {
|
|
330
|
-
clearInterval(runDependencyWatcher);
|
|
331
|
-
runDependencyWatcher = null;
|
|
332
|
-
}
|
|
333
312
|
if (dependenciesFulfilled) {
|
|
334
313
|
var callback = dependenciesFulfilled;
|
|
335
314
|
dependenciesFulfilled = null;
|
|
@@ -342,7 +321,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
342
321
|
what = "Aborted(" + what + ")";
|
|
343
322
|
err(what);
|
|
344
323
|
ABORT = true;
|
|
345
|
-
EXITSTATUS = 1;
|
|
346
324
|
what += ". Build with -sASSERTIONS for more info.";
|
|
347
325
|
var e = new WebAssembly.RuntimeError(what);
|
|
348
326
|
readyPromiseReject(e);
|
|
@@ -367,49 +345,57 @@ var require_wasm_bindings = __commonJS({
|
|
|
367
345
|
}
|
|
368
346
|
throw "both async and sync fetching of the wasm failed";
|
|
369
347
|
}
|
|
370
|
-
function
|
|
348
|
+
async function getWasmBinary(binaryFile) {
|
|
371
349
|
if (!wasmBinary) {
|
|
372
|
-
|
|
350
|
+
try {
|
|
351
|
+
var response = await readAsync(binaryFile);
|
|
352
|
+
return new Uint8Array(response);
|
|
353
|
+
} catch {
|
|
354
|
+
}
|
|
373
355
|
}
|
|
374
|
-
return
|
|
356
|
+
return getBinarySync(binaryFile);
|
|
375
357
|
}
|
|
376
|
-
function instantiateArrayBuffer(binaryFile, imports
|
|
377
|
-
|
|
358
|
+
async function instantiateArrayBuffer(binaryFile, imports) {
|
|
359
|
+
try {
|
|
360
|
+
var binary = await getWasmBinary(binaryFile);
|
|
361
|
+
var instance = await WebAssembly.instantiate(binary, imports);
|
|
362
|
+
return instance;
|
|
363
|
+
} catch (reason) {
|
|
378
364
|
err(`failed to asynchronously prepare wasm: ${reason}`);
|
|
379
365
|
abort(reason);
|
|
380
|
-
}
|
|
366
|
+
}
|
|
381
367
|
}
|
|
382
|
-
function instantiateAsync(binary, binaryFile, imports
|
|
368
|
+
async function instantiateAsync(binary, binaryFile, imports) {
|
|
383
369
|
if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") {
|
|
384
|
-
|
|
385
|
-
var
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
}
|
|
370
|
+
try {
|
|
371
|
+
var response = fetch(binaryFile, { credentials: "same-origin" });
|
|
372
|
+
var instantiationResult = await WebAssembly.instantiateStreaming(response, imports);
|
|
373
|
+
return instantiationResult;
|
|
374
|
+
} catch (reason) {
|
|
375
|
+
err(`wasm streaming compile failed: ${reason}`);
|
|
376
|
+
err("falling back to ArrayBuffer instantiation");
|
|
377
|
+
}
|
|
392
378
|
}
|
|
393
|
-
return instantiateArrayBuffer(binaryFile, imports
|
|
379
|
+
return instantiateArrayBuffer(binaryFile, imports);
|
|
394
380
|
}
|
|
395
381
|
function getWasmImports() {
|
|
396
382
|
return { a: wasmImports };
|
|
397
383
|
}
|
|
398
|
-
function createWasm() {
|
|
399
|
-
var info = getWasmImports();
|
|
384
|
+
async function createWasm() {
|
|
400
385
|
function receiveInstance(instance, module3) {
|
|
401
386
|
wasmExports = instance.exports;
|
|
402
|
-
wasmMemory = wasmExports["
|
|
387
|
+
wasmMemory = wasmExports["ea"];
|
|
403
388
|
updateMemoryViews();
|
|
404
|
-
wasmTable = wasmExports["
|
|
405
|
-
addOnInit(wasmExports["
|
|
389
|
+
wasmTable = wasmExports["ha"];
|
|
390
|
+
addOnInit(wasmExports["fa"]);
|
|
406
391
|
removeRunDependency("wasm-instantiate");
|
|
407
392
|
return wasmExports;
|
|
408
393
|
}
|
|
409
394
|
addRunDependency("wasm-instantiate");
|
|
410
|
-
function receiveInstantiationResult(
|
|
411
|
-
receiveInstance(
|
|
395
|
+
function receiveInstantiationResult(result2) {
|
|
396
|
+
receiveInstance(result2["instance"]);
|
|
412
397
|
}
|
|
398
|
+
var info = getWasmImports();
|
|
413
399
|
if (Module["instantiateWasm"]) {
|
|
414
400
|
try {
|
|
415
401
|
return Module["instantiateWasm"](info, receiveInstance);
|
|
@@ -418,17 +404,46 @@ var require_wasm_bindings = __commonJS({
|
|
|
418
404
|
readyPromiseReject(e);
|
|
419
405
|
}
|
|
420
406
|
}
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
407
|
+
wasmBinaryFile ??= findWasmBinary();
|
|
408
|
+
try {
|
|
409
|
+
var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
|
|
410
|
+
receiveInstantiationResult(result);
|
|
411
|
+
return result;
|
|
412
|
+
} catch (e) {
|
|
413
|
+
readyPromiseReject(e);
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
425
416
|
}
|
|
426
417
|
var tempDouble;
|
|
427
418
|
var tempI64;
|
|
428
|
-
function
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
419
|
+
function hardware_concurrency() {
|
|
420
|
+
return self.navigator.hardwareConcurrency;
|
|
421
|
+
}
|
|
422
|
+
function xnnLoadWasmModuleJS(code, offset, offset_end, invalid_function_index) {
|
|
423
|
+
const tableOriginalSize = wasmTable.length;
|
|
424
|
+
const binary = new Uint8Array(HEAPU8.slice(code + offset, code + offset_end));
|
|
425
|
+
try {
|
|
426
|
+
var module3 = new WebAssembly.Module(binary);
|
|
427
|
+
var instance = new WebAssembly.Instance(module3, { env: { memory: wasmMemory } });
|
|
428
|
+
for (var symName in instance.exports) {
|
|
429
|
+
var value = instance.exports[symName];
|
|
430
|
+
addFunction(value);
|
|
431
|
+
}
|
|
432
|
+
if (tableOriginalSize < wasmTable.length) {
|
|
433
|
+
return tableOriginalSize;
|
|
434
|
+
}
|
|
435
|
+
return invalid_function_index;
|
|
436
|
+
} catch (error) {
|
|
437
|
+
console.log(error);
|
|
438
|
+
return invalid_function_index;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
class ExitStatus {
|
|
442
|
+
name = "ExitStatus";
|
|
443
|
+
constructor(status) {
|
|
444
|
+
this.message = `Program terminated with exit(${status})`;
|
|
445
|
+
this.status = status;
|
|
446
|
+
}
|
|
432
447
|
}
|
|
433
448
|
var callRuntimeCallbacks = (callbacks) => {
|
|
434
449
|
while (callbacks.length > 0) {
|
|
@@ -478,16 +493,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
478
493
|
get_adjusted_ptr() {
|
|
479
494
|
return HEAPU32[this.ptr + 16 >> 2];
|
|
480
495
|
}
|
|
481
|
-
get_exception_ptr() {
|
|
482
|
-
var isPointer = ___cxa_is_pointer_type(this.get_type());
|
|
483
|
-
if (isPointer) {
|
|
484
|
-
return HEAPU32[this.excPtr >> 2];
|
|
485
|
-
}
|
|
486
|
-
var adjusted = this.get_adjusted_ptr();
|
|
487
|
-
if (adjusted !== 0)
|
|
488
|
-
return adjusted;
|
|
489
|
-
return this.excPtr;
|
|
490
|
-
}
|
|
491
496
|
}
|
|
492
497
|
var exceptionLast = 0;
|
|
493
498
|
var uncaughtExceptionCount = 0;
|
|
@@ -498,12 +503,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
498
503
|
uncaughtExceptionCount++;
|
|
499
504
|
throw exceptionLast;
|
|
500
505
|
};
|
|
501
|
-
function syscallGetVarargI() {
|
|
502
|
-
var ret = HEAP32[+SYSCALLS.varargs >> 2];
|
|
503
|
-
SYSCALLS.varargs += 4;
|
|
504
|
-
return ret;
|
|
505
|
-
}
|
|
506
|
-
var syscallGetVarargP = syscallGetVarargI;
|
|
507
506
|
var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => {
|
|
508
507
|
var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
|
|
509
508
|
return splitPathRe.exec(filename).slice(1);
|
|
@@ -613,7 +612,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
613
612
|
return outputParts.join("/");
|
|
614
613
|
} };
|
|
615
614
|
var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : void 0;
|
|
616
|
-
var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
|
|
615
|
+
var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => {
|
|
617
616
|
var endIdx = idx + maxBytesToRead;
|
|
618
617
|
var endPtr = idx;
|
|
619
618
|
while (heapOrArray[endPtr] && !(endPtr >= endIdx))
|
|
@@ -766,7 +765,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
766
765
|
buffer[offset + i] = result;
|
|
767
766
|
}
|
|
768
767
|
if (bytesRead) {
|
|
769
|
-
stream.node.
|
|
768
|
+
stream.node.atime = Date.now();
|
|
770
769
|
}
|
|
771
770
|
return bytesRead;
|
|
772
771
|
}, write(stream, buffer, offset, length, pos) {
|
|
@@ -781,14 +780,14 @@ var require_wasm_bindings = __commonJS({
|
|
|
781
780
|
throw new FS.ErrnoError(29);
|
|
782
781
|
}
|
|
783
782
|
if (length) {
|
|
784
|
-
stream.node.
|
|
783
|
+
stream.node.mtime = stream.node.ctime = Date.now();
|
|
785
784
|
}
|
|
786
785
|
return i;
|
|
787
786
|
} }, default_tty_ops: { get_char(tty) {
|
|
788
787
|
return FS_stdin_getChar();
|
|
789
788
|
}, put_char(tty, val) {
|
|
790
789
|
if (val === null || val === 10) {
|
|
791
|
-
out(UTF8ArrayToString(tty.output
|
|
790
|
+
out(UTF8ArrayToString(tty.output));
|
|
792
791
|
tty.output = [];
|
|
793
792
|
} else {
|
|
794
793
|
if (val != 0)
|
|
@@ -796,7 +795,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
796
795
|
}
|
|
797
796
|
}, fsync(tty) {
|
|
798
797
|
if (tty.output && tty.output.length > 0) {
|
|
799
|
-
out(UTF8ArrayToString(tty.output
|
|
798
|
+
out(UTF8ArrayToString(tty.output));
|
|
800
799
|
tty.output = [];
|
|
801
800
|
}
|
|
802
801
|
}, ioctl_tcgets(tty) {
|
|
@@ -807,7 +806,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
807
806
|
return [24, 80];
|
|
808
807
|
} }, default_tty1_ops: { put_char(tty, val) {
|
|
809
808
|
if (val === null || val === 10) {
|
|
810
|
-
err(UTF8ArrayToString(tty.output
|
|
809
|
+
err(UTF8ArrayToString(tty.output));
|
|
811
810
|
tty.output = [];
|
|
812
811
|
} else {
|
|
813
812
|
if (val != 0)
|
|
@@ -815,29 +814,28 @@ var require_wasm_bindings = __commonJS({
|
|
|
815
814
|
}
|
|
816
815
|
}, fsync(tty) {
|
|
817
816
|
if (tty.output && tty.output.length > 0) {
|
|
818
|
-
err(UTF8ArrayToString(tty.output
|
|
817
|
+
err(UTF8ArrayToString(tty.output));
|
|
819
818
|
tty.output = [];
|
|
820
819
|
}
|
|
821
820
|
} } };
|
|
822
821
|
var zeroMemory = (address, size) => {
|
|
823
822
|
HEAPU8.fill(0, address, address + size);
|
|
824
|
-
return address;
|
|
825
823
|
};
|
|
826
824
|
var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
|
|
827
825
|
var mmapAlloc = (size) => {
|
|
828
826
|
size = alignMemory(size, 65536);
|
|
829
827
|
var ptr = _emscripten_builtin_memalign(65536, size);
|
|
830
|
-
if (
|
|
831
|
-
|
|
832
|
-
return
|
|
828
|
+
if (ptr)
|
|
829
|
+
zeroMemory(ptr, size);
|
|
830
|
+
return ptr;
|
|
833
831
|
};
|
|
834
832
|
var MEMFS = { ops_table: null, mount(mount) {
|
|
835
|
-
return MEMFS.createNode(null, "/",
|
|
833
|
+
return MEMFS.createNode(null, "/", 16895, 0);
|
|
836
834
|
}, createNode(parent, name, mode, dev) {
|
|
837
835
|
if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
|
|
838
836
|
throw new FS.ErrnoError(63);
|
|
839
837
|
}
|
|
840
|
-
MEMFS.ops_table
|
|
838
|
+
MEMFS.ops_table ||= { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } };
|
|
841
839
|
var node = FS.createNode(parent, name, mode, dev);
|
|
842
840
|
if (FS.isDir(node.mode)) {
|
|
843
841
|
node.node_ops = MEMFS.ops_table.dir.node;
|
|
@@ -855,10 +853,10 @@ var require_wasm_bindings = __commonJS({
|
|
|
855
853
|
node.node_ops = MEMFS.ops_table.chrdev.node;
|
|
856
854
|
node.stream_ops = MEMFS.ops_table.chrdev.stream;
|
|
857
855
|
}
|
|
858
|
-
node.
|
|
856
|
+
node.atime = node.mtime = node.ctime = Date.now();
|
|
859
857
|
if (parent) {
|
|
860
858
|
parent.contents[name] = node;
|
|
861
|
-
parent.
|
|
859
|
+
parent.atime = parent.mtime = parent.ctime = node.atime;
|
|
862
860
|
}
|
|
863
861
|
return node;
|
|
864
862
|
}, getFileDataAsTypedArray(node) {
|
|
@@ -911,60 +909,55 @@ var require_wasm_bindings = __commonJS({
|
|
|
911
909
|
} else {
|
|
912
910
|
attr.size = 0;
|
|
913
911
|
}
|
|
914
|
-
attr.atime = new Date(node.
|
|
915
|
-
attr.mtime = new Date(node.
|
|
916
|
-
attr.ctime = new Date(node.
|
|
912
|
+
attr.atime = new Date(node.atime);
|
|
913
|
+
attr.mtime = new Date(node.mtime);
|
|
914
|
+
attr.ctime = new Date(node.ctime);
|
|
917
915
|
attr.blksize = 4096;
|
|
918
916
|
attr.blocks = Math.ceil(attr.size / attr.blksize);
|
|
919
917
|
return attr;
|
|
920
918
|
}, setattr(node, attr) {
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
node.timestamp = attr.timestamp;
|
|
919
|
+
for (const key of ["mode", "atime", "mtime", "ctime"]) {
|
|
920
|
+
if (attr[key]) {
|
|
921
|
+
node[key] = attr[key];
|
|
922
|
+
}
|
|
926
923
|
}
|
|
927
924
|
if (attr.size !== void 0) {
|
|
928
925
|
MEMFS.resizeFileStorage(node, attr.size);
|
|
929
926
|
}
|
|
930
927
|
}, lookup(parent, name) {
|
|
931
|
-
throw
|
|
928
|
+
throw MEMFS.doesNotExistError;
|
|
932
929
|
}, mknod(parent, name, mode, dev) {
|
|
933
930
|
return MEMFS.createNode(parent, name, mode, dev);
|
|
934
931
|
}, rename(old_node, new_dir, new_name) {
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
if (
|
|
932
|
+
var new_node;
|
|
933
|
+
try {
|
|
934
|
+
new_node = FS.lookupNode(new_dir, new_name);
|
|
935
|
+
} catch (e) {
|
|
936
|
+
}
|
|
937
|
+
if (new_node) {
|
|
938
|
+
if (FS.isDir(old_node.mode)) {
|
|
942
939
|
for (var i in new_node.contents) {
|
|
943
940
|
throw new FS.ErrnoError(55);
|
|
944
941
|
}
|
|
945
942
|
}
|
|
943
|
+
FS.hashRemoveNode(new_node);
|
|
946
944
|
}
|
|
947
945
|
delete old_node.parent.contents[old_node.name];
|
|
948
|
-
old_node.parent.timestamp = Date.now();
|
|
949
|
-
old_node.name = new_name;
|
|
950
946
|
new_dir.contents[new_name] = old_node;
|
|
951
|
-
|
|
947
|
+
old_node.name = new_name;
|
|
948
|
+
new_dir.ctime = new_dir.mtime = old_node.parent.ctime = old_node.parent.mtime = Date.now();
|
|
952
949
|
}, unlink(parent, name) {
|
|
953
950
|
delete parent.contents[name];
|
|
954
|
-
parent.
|
|
951
|
+
parent.ctime = parent.mtime = Date.now();
|
|
955
952
|
}, rmdir(parent, name) {
|
|
956
953
|
var node = FS.lookupNode(parent, name);
|
|
957
954
|
for (var i in node.contents) {
|
|
958
955
|
throw new FS.ErrnoError(55);
|
|
959
956
|
}
|
|
960
957
|
delete parent.contents[name];
|
|
961
|
-
parent.
|
|
958
|
+
parent.ctime = parent.mtime = Date.now();
|
|
962
959
|
}, readdir(node) {
|
|
963
|
-
|
|
964
|
-
for (var key of Object.keys(node.contents)) {
|
|
965
|
-
entries.push(key);
|
|
966
|
-
}
|
|
967
|
-
return entries;
|
|
960
|
+
return [".", "..", ...Object.keys(node.contents)];
|
|
968
961
|
}, symlink(parent, newname, oldpath) {
|
|
969
962
|
var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
|
|
970
963
|
node.link = oldpath;
|
|
@@ -993,7 +986,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
993
986
|
if (!length)
|
|
994
987
|
return 0;
|
|
995
988
|
var node = stream.node;
|
|
996
|
-
node.
|
|
989
|
+
node.mtime = node.ctime = Date.now();
|
|
997
990
|
if (buffer.subarray && (!node.contents || node.contents.subarray)) {
|
|
998
991
|
if (canOwn) {
|
|
999
992
|
node.contents = buffer.subarray(offset, offset + length);
|
|
@@ -1041,44 +1034,34 @@ var require_wasm_bindings = __commonJS({
|
|
|
1041
1034
|
var ptr;
|
|
1042
1035
|
var allocated;
|
|
1043
1036
|
var contents = stream.node.contents;
|
|
1044
|
-
if (!(flags & 2) && contents.buffer === HEAP8.buffer) {
|
|
1037
|
+
if (!(flags & 2) && contents && contents.buffer === HEAP8.buffer) {
|
|
1045
1038
|
allocated = false;
|
|
1046
1039
|
ptr = contents.byteOffset;
|
|
1047
1040
|
} else {
|
|
1048
|
-
if (position > 0 || position + length < contents.length) {
|
|
1049
|
-
if (contents.subarray) {
|
|
1050
|
-
contents = contents.subarray(position, position + length);
|
|
1051
|
-
} else {
|
|
1052
|
-
contents = Array.prototype.slice.call(contents, position, position + length);
|
|
1053
|
-
}
|
|
1054
|
-
}
|
|
1055
1041
|
allocated = true;
|
|
1056
1042
|
ptr = mmapAlloc(length);
|
|
1057
1043
|
if (!ptr) {
|
|
1058
1044
|
throw new FS.ErrnoError(48);
|
|
1059
1045
|
}
|
|
1060
|
-
|
|
1046
|
+
if (contents) {
|
|
1047
|
+
if (position > 0 || position + length < contents.length) {
|
|
1048
|
+
if (contents.subarray) {
|
|
1049
|
+
contents = contents.subarray(position, position + length);
|
|
1050
|
+
} else {
|
|
1051
|
+
contents = Array.prototype.slice.call(contents, position, position + length);
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
1054
|
+
HEAP8.set(contents, ptr);
|
|
1055
|
+
}
|
|
1061
1056
|
}
|
|
1062
1057
|
return { ptr, allocated };
|
|
1063
1058
|
}, msync(stream, buffer, offset, length, mmapFlags) {
|
|
1064
1059
|
MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
|
|
1065
1060
|
return 0;
|
|
1066
1061
|
} } };
|
|
1067
|
-
var asyncLoad = (url
|
|
1068
|
-
var
|
|
1069
|
-
|
|
1070
|
-
onload(new Uint8Array(arrayBuffer));
|
|
1071
|
-
if (dep)
|
|
1072
|
-
removeRunDependency(dep);
|
|
1073
|
-
}, (err2) => {
|
|
1074
|
-
if (onerror) {
|
|
1075
|
-
onerror();
|
|
1076
|
-
} else {
|
|
1077
|
-
throw `Loading data file "${url}" failed.`;
|
|
1078
|
-
}
|
|
1079
|
-
});
|
|
1080
|
-
if (dep)
|
|
1081
|
-
addRunDependency(dep);
|
|
1062
|
+
var asyncLoad = async (url) => {
|
|
1063
|
+
var arrayBuffer = await readAsync(url);
|
|
1064
|
+
return new Uint8Array(arrayBuffer);
|
|
1082
1065
|
};
|
|
1083
1066
|
var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => {
|
|
1084
1067
|
FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn);
|
|
@@ -1120,7 +1103,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
1120
1103
|
}
|
|
1121
1104
|
addRunDependency(dep);
|
|
1122
1105
|
if (typeof url == "string") {
|
|
1123
|
-
asyncLoad(url
|
|
1106
|
+
asyncLoad(url).then(processData, onerror);
|
|
1124
1107
|
} else {
|
|
1125
1108
|
processData(url);
|
|
1126
1109
|
}
|
|
@@ -1142,14 +1125,12 @@ var require_wasm_bindings = __commonJS({
|
|
|
1142
1125
|
return mode;
|
|
1143
1126
|
};
|
|
1144
1127
|
var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: class {
|
|
1128
|
+
name = "ErrnoError";
|
|
1145
1129
|
constructor(errno) {
|
|
1146
|
-
this.name = "ErrnoError";
|
|
1147
1130
|
this.errno = errno;
|
|
1148
1131
|
}
|
|
1149
|
-
},
|
|
1150
|
-
|
|
1151
|
-
this.shared = {};
|
|
1152
|
-
}
|
|
1132
|
+
}, filesystems: null, syncFSRequests: 0, readFiles: {}, FSStream: class {
|
|
1133
|
+
shared = {};
|
|
1153
1134
|
get object() {
|
|
1154
1135
|
return this.node;
|
|
1155
1136
|
}
|
|
@@ -1178,21 +1159,22 @@ var require_wasm_bindings = __commonJS({
|
|
|
1178
1159
|
this.shared.position = val;
|
|
1179
1160
|
}
|
|
1180
1161
|
}, FSNode: class {
|
|
1162
|
+
node_ops = {};
|
|
1163
|
+
stream_ops = {};
|
|
1164
|
+
readMode = 292 | 73;
|
|
1165
|
+
writeMode = 146;
|
|
1166
|
+
mounted = null;
|
|
1181
1167
|
constructor(parent, name, mode, rdev) {
|
|
1182
1168
|
if (!parent) {
|
|
1183
1169
|
parent = this;
|
|
1184
1170
|
}
|
|
1185
1171
|
this.parent = parent;
|
|
1186
1172
|
this.mount = parent.mount;
|
|
1187
|
-
this.mounted = null;
|
|
1188
1173
|
this.id = FS.nextInode++;
|
|
1189
1174
|
this.name = name;
|
|
1190
1175
|
this.mode = mode;
|
|
1191
|
-
this.node_ops = {};
|
|
1192
|
-
this.stream_ops = {};
|
|
1193
1176
|
this.rdev = rdev;
|
|
1194
|
-
this.
|
|
1195
|
-
this.writeMode = 146;
|
|
1177
|
+
this.atime = this.mtime = this.ctime = Date.now();
|
|
1196
1178
|
}
|
|
1197
1179
|
get read() {
|
|
1198
1180
|
return (this.mode & this.readMode) === this.readMode;
|
|
@@ -1213,43 +1195,54 @@ var require_wasm_bindings = __commonJS({
|
|
|
1213
1195
|
return FS.isChrdev(this.mode);
|
|
1214
1196
|
}
|
|
1215
1197
|
}, lookupPath(path, opts = {}) {
|
|
1216
|
-
path = PATH_FS.resolve(path);
|
|
1217
1198
|
if (!path)
|
|
1218
1199
|
return { path: "", node: null };
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1200
|
+
opts.follow_mount ??= true;
|
|
1201
|
+
if (!PATH.isAbs(path)) {
|
|
1202
|
+
path = FS.cwd() + "/" + path;
|
|
1203
|
+
}
|
|
1204
|
+
linkloop:
|
|
1205
|
+
for (var nlinks = 0; nlinks < 40; nlinks++) {
|
|
1206
|
+
var parts = path.split("/").filter((p) => !!p && p !== ".");
|
|
1207
|
+
var current = FS.root;
|
|
1208
|
+
var current_path = "/";
|
|
1209
|
+
for (var i = 0; i < parts.length; i++) {
|
|
1210
|
+
var islast = i === parts.length - 1;
|
|
1211
|
+
if (islast && opts.parent) {
|
|
1212
|
+
break;
|
|
1213
|
+
}
|
|
1214
|
+
if (parts[i] === "..") {
|
|
1215
|
+
current_path = PATH.dirname(current_path);
|
|
1216
|
+
current = current.parent;
|
|
1217
|
+
continue;
|
|
1218
|
+
}
|
|
1219
|
+
current_path = PATH.join2(current_path, parts[i]);
|
|
1220
|
+
try {
|
|
1221
|
+
current = FS.lookupNode(current, parts[i]);
|
|
1222
|
+
} catch (e) {
|
|
1223
|
+
if (e?.errno === 44 && islast && opts.noent_okay) {
|
|
1224
|
+
return { path: current_path };
|
|
1225
|
+
}
|
|
1226
|
+
throw e;
|
|
1227
|
+
}
|
|
1228
|
+
if (FS.isMountpoint(current) && (!islast || opts.follow_mount)) {
|
|
1229
|
+
current = current.mounted.root;
|
|
1230
|
+
}
|
|
1231
|
+
if (FS.isLink(current.mode) && (!islast || opts.follow)) {
|
|
1232
|
+
if (!current.node_ops.readlink) {
|
|
1233
|
+
throw new FS.ErrnoError(52);
|
|
1234
|
+
}
|
|
1235
|
+
var link = current.node_ops.readlink(current);
|
|
1236
|
+
if (!PATH.isAbs(link)) {
|
|
1237
|
+
link = PATH.dirname(current_path) + "/" + link;
|
|
1238
|
+
}
|
|
1239
|
+
path = link + "/" + parts.slice(i + 1).join("/");
|
|
1240
|
+
continue linkloop;
|
|
1248
1241
|
}
|
|
1249
1242
|
}
|
|
1243
|
+
return { path: current_path, node: current };
|
|
1250
1244
|
}
|
|
1251
|
-
|
|
1252
|
-
return { path: current_path, node: current };
|
|
1245
|
+
throw new FS.ErrnoError(32);
|
|
1253
1246
|
}, getPath(node) {
|
|
1254
1247
|
var path;
|
|
1255
1248
|
while (true) {
|
|
@@ -1351,6 +1344,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
1351
1344
|
return 2;
|
|
1352
1345
|
return 0;
|
|
1353
1346
|
}, mayCreate(dir, name) {
|
|
1347
|
+
if (!FS.isDir(dir.mode)) {
|
|
1348
|
+
return 54;
|
|
1349
|
+
}
|
|
1354
1350
|
try {
|
|
1355
1351
|
var node = FS.lookupNode(dir, name);
|
|
1356
1352
|
return 20;
|
|
@@ -1538,13 +1534,18 @@ var require_wasm_bindings = __commonJS({
|
|
|
1538
1534
|
throw new FS.ErrnoError(63);
|
|
1539
1535
|
}
|
|
1540
1536
|
return parent.node_ops.mknod(parent, name, mode, dev);
|
|
1541
|
-
},
|
|
1542
|
-
|
|
1537
|
+
}, statfs(path) {
|
|
1538
|
+
var rtn = { bsize: 4096, frsize: 4096, blocks: 1e6, bfree: 5e5, bavail: 5e5, files: FS.nextInode, ffree: FS.nextInode - 1, fsid: 42, flags: 2, namelen: 255 };
|
|
1539
|
+
var parent = FS.lookupPath(path, { follow: true }).node;
|
|
1540
|
+
if (parent?.node_ops.statfs) {
|
|
1541
|
+
Object.assign(rtn, parent.node_ops.statfs(parent.mount.opts.root));
|
|
1542
|
+
}
|
|
1543
|
+
return rtn;
|
|
1544
|
+
}, create(path, mode = 438) {
|
|
1543
1545
|
mode &= 4095;
|
|
1544
1546
|
mode |= 32768;
|
|
1545
1547
|
return FS.mknod(path, mode, 0);
|
|
1546
|
-
}, mkdir(path, mode) {
|
|
1547
|
-
mode = mode !== void 0 ? mode : 511;
|
|
1548
|
+
}, mkdir(path, mode = 511) {
|
|
1548
1549
|
mode &= 511 | 512;
|
|
1549
1550
|
mode |= 16384;
|
|
1550
1551
|
return FS.mknod(path, mode, 0);
|
|
@@ -1702,7 +1703,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
1702
1703
|
if (!link.node_ops.readlink) {
|
|
1703
1704
|
throw new FS.ErrnoError(28);
|
|
1704
1705
|
}
|
|
1705
|
-
return
|
|
1706
|
+
return link.node_ops.readlink(link);
|
|
1706
1707
|
}, stat(path, dontFollow) {
|
|
1707
1708
|
var lookup = FS.lookupPath(path, { follow: !dontFollow });
|
|
1708
1709
|
var node = lookup.node;
|
|
@@ -1726,7 +1727,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
1726
1727
|
if (!node.node_ops.setattr) {
|
|
1727
1728
|
throw new FS.ErrnoError(63);
|
|
1728
1729
|
}
|
|
1729
|
-
node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095,
|
|
1730
|
+
node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, ctime: Date.now() });
|
|
1730
1731
|
}, lchmod(path, mode) {
|
|
1731
1732
|
FS.chmod(path, mode, true);
|
|
1732
1733
|
}, fchmod(fd, mode) {
|
|
@@ -1783,14 +1784,13 @@ var require_wasm_bindings = __commonJS({
|
|
|
1783
1784
|
}, utime(path, atime, mtime) {
|
|
1784
1785
|
var lookup = FS.lookupPath(path, { follow: true });
|
|
1785
1786
|
var node = lookup.node;
|
|
1786
|
-
node.node_ops.setattr(node, {
|
|
1787
|
-
}, open(path, flags, mode) {
|
|
1787
|
+
node.node_ops.setattr(node, { atime, mtime });
|
|
1788
|
+
}, open(path, flags, mode = 438) {
|
|
1788
1789
|
if (path === "") {
|
|
1789
1790
|
throw new FS.ErrnoError(44);
|
|
1790
1791
|
}
|
|
1791
1792
|
flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags;
|
|
1792
1793
|
if (flags & 64) {
|
|
1793
|
-
mode = typeof mode == "undefined" ? 438 : mode;
|
|
1794
1794
|
mode = mode & 4095 | 32768;
|
|
1795
1795
|
} else {
|
|
1796
1796
|
mode = 0;
|
|
@@ -1799,12 +1799,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
1799
1799
|
if (typeof path == "object") {
|
|
1800
1800
|
node = path;
|
|
1801
1801
|
} else {
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
node = lookup.node;
|
|
1806
|
-
} catch (e) {
|
|
1807
|
-
}
|
|
1802
|
+
var lookup = FS.lookupPath(path, { follow: !(flags & 131072), noent_okay: true });
|
|
1803
|
+
node = lookup.node;
|
|
1804
|
+
path = lookup.path;
|
|
1808
1805
|
}
|
|
1809
1806
|
var created = false;
|
|
1810
1807
|
if (flags & 64) {
|
|
@@ -1841,8 +1838,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
1841
1838
|
stream.stream_ops.open(stream);
|
|
1842
1839
|
}
|
|
1843
1840
|
if (Module["logReadFiles"] && !(flags & 1)) {
|
|
1844
|
-
if (!FS.readFiles)
|
|
1845
|
-
FS.readFiles = {};
|
|
1846
1841
|
if (!(path in FS.readFiles)) {
|
|
1847
1842
|
FS.readFiles[path] = 1;
|
|
1848
1843
|
}
|
|
@@ -1961,6 +1956,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
1961
1956
|
if (!stream.stream_ops.mmap) {
|
|
1962
1957
|
throw new FS.ErrnoError(43);
|
|
1963
1958
|
}
|
|
1959
|
+
if (!length) {
|
|
1960
|
+
throw new FS.ErrnoError(28);
|
|
1961
|
+
}
|
|
1964
1962
|
return stream.stream_ops.mmap(stream, length, position, prot, flags);
|
|
1965
1963
|
}, msync(stream, buffer, offset, length, mmapFlags) {
|
|
1966
1964
|
if (!stream.stream_ops.msync) {
|
|
@@ -1985,7 +1983,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
1985
1983
|
var buf = new Uint8Array(length);
|
|
1986
1984
|
FS.read(stream, buf, 0, length, 0);
|
|
1987
1985
|
if (opts.encoding === "utf8") {
|
|
1988
|
-
ret = UTF8ArrayToString(buf
|
|
1986
|
+
ret = UTF8ArrayToString(buf);
|
|
1989
1987
|
} else if (opts.encoding === "binary") {
|
|
1990
1988
|
ret = buf;
|
|
1991
1989
|
}
|
|
@@ -2023,7 +2021,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2023
2021
|
FS.mkdir("/home/web_user");
|
|
2024
2022
|
}, createDefaultDevices() {
|
|
2025
2023
|
FS.mkdir("/dev");
|
|
2026
|
-
FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length });
|
|
2024
|
+
FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length, llseek: () => 0 });
|
|
2027
2025
|
FS.mkdev("/dev/null", FS.makedev(1, 3));
|
|
2028
2026
|
TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
|
|
2029
2027
|
TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
|
|
@@ -2045,29 +2043,32 @@ var require_wasm_bindings = __commonJS({
|
|
|
2045
2043
|
var proc_self = FS.mkdir("/proc/self");
|
|
2046
2044
|
FS.mkdir("/proc/self/fd");
|
|
2047
2045
|
FS.mount({ mount() {
|
|
2048
|
-
var node = FS.createNode(proc_self, "fd",
|
|
2046
|
+
var node = FS.createNode(proc_self, "fd", 16895, 73);
|
|
2047
|
+
node.stream_ops = { llseek: MEMFS.stream_ops.llseek };
|
|
2049
2048
|
node.node_ops = { lookup(parent, name) {
|
|
2050
2049
|
var fd = +name;
|
|
2051
2050
|
var stream = FS.getStreamChecked(fd);
|
|
2052
|
-
var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } };
|
|
2051
|
+
var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path }, id: fd + 1 };
|
|
2053
2052
|
ret.parent = ret;
|
|
2054
2053
|
return ret;
|
|
2054
|
+
}, readdir() {
|
|
2055
|
+
return Array.from(FS.streams.entries()).filter(([k, v]) => v).map(([k, v]) => k.toString());
|
|
2055
2056
|
} };
|
|
2056
2057
|
return node;
|
|
2057
2058
|
} }, {}, "/proc/self/fd");
|
|
2058
|
-
}, createStandardStreams() {
|
|
2059
|
-
if (
|
|
2060
|
-
FS.createDevice("/dev", "stdin",
|
|
2059
|
+
}, createStandardStreams(input, output, error) {
|
|
2060
|
+
if (input) {
|
|
2061
|
+
FS.createDevice("/dev", "stdin", input);
|
|
2061
2062
|
} else {
|
|
2062
2063
|
FS.symlink("/dev/tty", "/dev/stdin");
|
|
2063
2064
|
}
|
|
2064
|
-
if (
|
|
2065
|
-
FS.createDevice("/dev", "stdout", null,
|
|
2065
|
+
if (output) {
|
|
2066
|
+
FS.createDevice("/dev", "stdout", null, output);
|
|
2066
2067
|
} else {
|
|
2067
2068
|
FS.symlink("/dev/tty", "/dev/stdout");
|
|
2068
2069
|
}
|
|
2069
|
-
if (
|
|
2070
|
-
FS.createDevice("/dev", "stderr", null,
|
|
2070
|
+
if (error) {
|
|
2071
|
+
FS.createDevice("/dev", "stderr", null, error);
|
|
2071
2072
|
} else {
|
|
2072
2073
|
FS.symlink("/dev/tty1", "/dev/stderr");
|
|
2073
2074
|
}
|
|
@@ -2075,10 +2076,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
2075
2076
|
var stdout = FS.open("/dev/stdout", 1);
|
|
2076
2077
|
var stderr = FS.open("/dev/stderr", 1);
|
|
2077
2078
|
}, staticInit() {
|
|
2078
|
-
[44].forEach((code) => {
|
|
2079
|
-
FS.genericErrors[code] = new FS.ErrnoError(code);
|
|
2080
|
-
FS.genericErrors[code].stack = "<generic error, no stack>";
|
|
2081
|
-
});
|
|
2082
2079
|
FS.nameTable = new Array(4096);
|
|
2083
2080
|
FS.mount(MEMFS, {}, "/");
|
|
2084
2081
|
FS.createDefaultDirectories();
|
|
@@ -2086,13 +2083,13 @@ var require_wasm_bindings = __commonJS({
|
|
|
2086
2083
|
FS.createSpecialDirectories();
|
|
2087
2084
|
FS.filesystems = { MEMFS };
|
|
2088
2085
|
}, init(input, output, error) {
|
|
2089
|
-
FS.
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
FS.createStandardStreams();
|
|
2086
|
+
FS.initialized = true;
|
|
2087
|
+
input ??= Module["stdin"];
|
|
2088
|
+
output ??= Module["stdout"];
|
|
2089
|
+
error ??= Module["stderr"];
|
|
2090
|
+
FS.createStandardStreams(input, output, error);
|
|
2094
2091
|
}, quit() {
|
|
2095
|
-
FS.
|
|
2092
|
+
FS.initialized = false;
|
|
2096
2093
|
for (var i = 0; i < FS.streams.length; i++) {
|
|
2097
2094
|
var stream = FS.streams[i];
|
|
2098
2095
|
if (!stream) {
|
|
@@ -2172,8 +2169,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2172
2169
|
}, createDevice(parent, name, input, output) {
|
|
2173
2170
|
var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name);
|
|
2174
2171
|
var mode = FS_getMode(!!input, !!output);
|
|
2175
|
-
|
|
2176
|
-
FS.createDevice.major = 64;
|
|
2172
|
+
FS.createDevice.major ??= 64;
|
|
2177
2173
|
var dev = FS.makedev(FS.createDevice.major++, 0);
|
|
2178
2174
|
FS.registerDevice(dev, { open(stream) {
|
|
2179
2175
|
stream.seekable = false;
|
|
@@ -2199,7 +2195,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2199
2195
|
buffer[offset + i] = result;
|
|
2200
2196
|
}
|
|
2201
2197
|
if (bytesRead) {
|
|
2202
|
-
stream.node.
|
|
2198
|
+
stream.node.atime = Date.now();
|
|
2203
2199
|
}
|
|
2204
2200
|
return bytesRead;
|
|
2205
2201
|
}, write(stream, buffer, offset, length, pos) {
|
|
@@ -2211,7 +2207,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2211
2207
|
}
|
|
2212
2208
|
}
|
|
2213
2209
|
if (length) {
|
|
2214
|
-
stream.node.
|
|
2210
|
+
stream.node.mtime = stream.node.ctime = Date.now();
|
|
2215
2211
|
}
|
|
2216
2212
|
return i;
|
|
2217
2213
|
} });
|
|
@@ -2231,10 +2227,8 @@ var require_wasm_bindings = __commonJS({
|
|
|
2231
2227
|
}
|
|
2232
2228
|
}, createLazyFile(parent, name, url, canRead, canWrite) {
|
|
2233
2229
|
class LazyUint8Array {
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
this.chunks = [];
|
|
2237
|
-
}
|
|
2230
|
+
lengthKnown = false;
|
|
2231
|
+
chunks = [];
|
|
2238
2232
|
get(idx) {
|
|
2239
2233
|
if (idx > this.length - 1 || idx < 0) {
|
|
2240
2234
|
return void 0;
|
|
@@ -2392,7 +2386,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2392
2386
|
}
|
|
2393
2387
|
return dir;
|
|
2394
2388
|
}
|
|
2395
|
-
return
|
|
2389
|
+
return dir + "/" + path;
|
|
2396
2390
|
}, doStat(func, path, buf) {
|
|
2397
2391
|
var stat = func(path);
|
|
2398
2392
|
HEAP32[buf >> 2] = stat.dev;
|
|
@@ -2408,11 +2402,11 @@ var require_wasm_bindings = __commonJS({
|
|
|
2408
2402
|
var mtime = stat.mtime.getTime();
|
|
2409
2403
|
var ctime = stat.ctime.getTime();
|
|
2410
2404
|
tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1];
|
|
2411
|
-
HEAPU32[buf + 48 >> 2] = atime % 1e3 * 1e3;
|
|
2405
|
+
HEAPU32[buf + 48 >> 2] = atime % 1e3 * 1e3 * 1e3;
|
|
2412
2406
|
tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >> 2] = tempI64[0], HEAP32[buf + 60 >> 2] = tempI64[1];
|
|
2413
|
-
HEAPU32[buf + 64 >> 2] = mtime % 1e3 * 1e3;
|
|
2407
|
+
HEAPU32[buf + 64 >> 2] = mtime % 1e3 * 1e3 * 1e3;
|
|
2414
2408
|
tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >> 2] = tempI64[0], HEAP32[buf + 76 >> 2] = tempI64[1];
|
|
2415
|
-
HEAPU32[buf + 80 >> 2] = ctime % 1e3 * 1e3;
|
|
2409
|
+
HEAPU32[buf + 80 >> 2] = ctime % 1e3 * 1e3 * 1e3;
|
|
2416
2410
|
tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >> 2] = tempI64[0], HEAP32[buf + 92 >> 2] = tempI64[1];
|
|
2417
2411
|
return 0;
|
|
2418
2412
|
}, doMsync(addr, stream, len, flags, offset) {
|
|
@@ -2431,6 +2425,41 @@ var require_wasm_bindings = __commonJS({
|
|
|
2431
2425
|
var ret = UTF8ToString(ptr);
|
|
2432
2426
|
return ret;
|
|
2433
2427
|
} };
|
|
2428
|
+
function ___syscall_faccessat(dirfd, path, amode, flags) {
|
|
2429
|
+
try {
|
|
2430
|
+
path = SYSCALLS.getStr(path);
|
|
2431
|
+
path = SYSCALLS.calculateAt(dirfd, path);
|
|
2432
|
+
if (amode & ~7) {
|
|
2433
|
+
return -28;
|
|
2434
|
+
}
|
|
2435
|
+
var lookup = FS.lookupPath(path, { follow: true });
|
|
2436
|
+
var node = lookup.node;
|
|
2437
|
+
if (!node) {
|
|
2438
|
+
return -44;
|
|
2439
|
+
}
|
|
2440
|
+
var perms = "";
|
|
2441
|
+
if (amode & 4)
|
|
2442
|
+
perms += "r";
|
|
2443
|
+
if (amode & 2)
|
|
2444
|
+
perms += "w";
|
|
2445
|
+
if (amode & 1)
|
|
2446
|
+
perms += "x";
|
|
2447
|
+
if (perms && FS.nodePermissions(node, perms)) {
|
|
2448
|
+
return -2;
|
|
2449
|
+
}
|
|
2450
|
+
return 0;
|
|
2451
|
+
} catch (e) {
|
|
2452
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
2453
|
+
throw e;
|
|
2454
|
+
return -e.errno;
|
|
2455
|
+
}
|
|
2456
|
+
}
|
|
2457
|
+
var syscallGetVarargI = () => {
|
|
2458
|
+
var ret = HEAP32[+SYSCALLS.varargs >> 2];
|
|
2459
|
+
SYSCALLS.varargs += 4;
|
|
2460
|
+
return ret;
|
|
2461
|
+
};
|
|
2462
|
+
var syscallGetVarargP = syscallGetVarargI;
|
|
2434
2463
|
function ___syscall_fcntl64(fd, cmd, varargs) {
|
|
2435
2464
|
SYSCALLS.varargs = varargs;
|
|
2436
2465
|
try {
|
|
@@ -2475,6 +2504,16 @@ var require_wasm_bindings = __commonJS({
|
|
|
2475
2504
|
return -e.errno;
|
|
2476
2505
|
}
|
|
2477
2506
|
}
|
|
2507
|
+
function ___syscall_fstat64(fd, buf) {
|
|
2508
|
+
try {
|
|
2509
|
+
var stream = SYSCALLS.getStreamFromFD(fd);
|
|
2510
|
+
return SYSCALLS.doStat(FS.stat, stream.path, buf);
|
|
2511
|
+
} catch (e) {
|
|
2512
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
2513
|
+
throw e;
|
|
2514
|
+
return -e.errno;
|
|
2515
|
+
}
|
|
2516
|
+
}
|
|
2478
2517
|
var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
|
|
2479
2518
|
function ___syscall_getcwd(buf, size) {
|
|
2480
2519
|
try {
|
|
@@ -2591,13 +2630,20 @@ var require_wasm_bindings = __commonJS({
|
|
|
2591
2630
|
return -e.errno;
|
|
2592
2631
|
}
|
|
2593
2632
|
}
|
|
2633
|
+
function ___syscall_lstat64(path, buf) {
|
|
2634
|
+
try {
|
|
2635
|
+
path = SYSCALLS.getStr(path);
|
|
2636
|
+
return SYSCALLS.doStat(FS.lstat, path, buf);
|
|
2637
|
+
} catch (e) {
|
|
2638
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
2639
|
+
throw e;
|
|
2640
|
+
return -e.errno;
|
|
2641
|
+
}
|
|
2642
|
+
}
|
|
2594
2643
|
function ___syscall_mkdirat(dirfd, path, mode) {
|
|
2595
2644
|
try {
|
|
2596
2645
|
path = SYSCALLS.getStr(path);
|
|
2597
2646
|
path = SYSCALLS.calculateAt(dirfd, path);
|
|
2598
|
-
path = PATH.normalize(path);
|
|
2599
|
-
if (path[path.length - 1] === "/")
|
|
2600
|
-
path = path.substr(0, path.length - 1);
|
|
2601
2647
|
FS.mkdir(path, mode, 0);
|
|
2602
2648
|
return 0;
|
|
2603
2649
|
} catch (e) {
|
|
@@ -2606,6 +2652,20 @@ var require_wasm_bindings = __commonJS({
|
|
|
2606
2652
|
return -e.errno;
|
|
2607
2653
|
}
|
|
2608
2654
|
}
|
|
2655
|
+
function ___syscall_newfstatat(dirfd, path, buf, flags) {
|
|
2656
|
+
try {
|
|
2657
|
+
path = SYSCALLS.getStr(path);
|
|
2658
|
+
var nofollow = flags & 256;
|
|
2659
|
+
var allowEmpty = flags & 4096;
|
|
2660
|
+
flags = flags & ~6400;
|
|
2661
|
+
path = SYSCALLS.calculateAt(dirfd, path, allowEmpty);
|
|
2662
|
+
return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf);
|
|
2663
|
+
} catch (e) {
|
|
2664
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
2665
|
+
throw e;
|
|
2666
|
+
return -e.errno;
|
|
2667
|
+
}
|
|
2668
|
+
}
|
|
2609
2669
|
function ___syscall_openat(dirfd, path, flags, varargs) {
|
|
2610
2670
|
SYSCALLS.varargs = varargs;
|
|
2611
2671
|
try {
|
|
@@ -2647,9 +2707,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2647
2707
|
return -e.errno;
|
|
2648
2708
|
}
|
|
2649
2709
|
}
|
|
2650
|
-
var __abort_js = () =>
|
|
2651
|
-
abort("");
|
|
2652
|
-
};
|
|
2710
|
+
var __abort_js = () => abort("");
|
|
2653
2711
|
var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => {
|
|
2654
2712
|
};
|
|
2655
2713
|
var embind_init_charCodes = () => {
|
|
@@ -2680,9 +2738,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
2680
2738
|
throw new InternalError(message);
|
|
2681
2739
|
};
|
|
2682
2740
|
var whenDependentTypesAreResolved = (myTypes, dependentTypes, getTypeConverters) => {
|
|
2683
|
-
myTypes.forEach(
|
|
2684
|
-
typeDependencies[type] = dependentTypes;
|
|
2685
|
-
});
|
|
2741
|
+
myTypes.forEach((type) => typeDependencies[type] = dependentTypes);
|
|
2686
2742
|
function onComplete(typeConverters2) {
|
|
2687
2743
|
var myTypeConverters = getTypeConverters(typeConverters2);
|
|
2688
2744
|
if (myTypeConverters.length !== myTypes.length) {
|
|
@@ -2737,9 +2793,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
2737
2793
|
}
|
|
2738
2794
|
}
|
|
2739
2795
|
function registerType(rawType, registeredInstance, options = {}) {
|
|
2740
|
-
if (!("argPackAdvance" in registeredInstance)) {
|
|
2741
|
-
throw new TypeError("registerType registeredInstance requires argPackAdvance");
|
|
2742
|
-
}
|
|
2743
2796
|
return sharedRegisterType(rawType, registeredInstance, options);
|
|
2744
2797
|
}
|
|
2745
2798
|
var GenericWireTypeSize = 8;
|
|
@@ -2791,37 +2844,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
2791
2844
|
return desiredClass.downcast(rv);
|
|
2792
2845
|
};
|
|
2793
2846
|
var registeredPointers = {};
|
|
2794
|
-
var getInheritedInstanceCount = () => Object.keys(registeredInstances).length;
|
|
2795
|
-
var getLiveInheritedInstances = () => {
|
|
2796
|
-
var rv = [];
|
|
2797
|
-
for (var k in registeredInstances) {
|
|
2798
|
-
if (registeredInstances.hasOwnProperty(k)) {
|
|
2799
|
-
rv.push(registeredInstances[k]);
|
|
2800
|
-
}
|
|
2801
|
-
}
|
|
2802
|
-
return rv;
|
|
2803
|
-
};
|
|
2804
|
-
var deletionQueue = [];
|
|
2805
|
-
var flushPendingDeletes = () => {
|
|
2806
|
-
while (deletionQueue.length) {
|
|
2807
|
-
var obj = deletionQueue.pop();
|
|
2808
|
-
obj.$$.deleteScheduled = false;
|
|
2809
|
-
obj["delete"]();
|
|
2810
|
-
}
|
|
2811
|
-
};
|
|
2812
|
-
var delayFunction;
|
|
2813
|
-
var setDelayFunction = (fn) => {
|
|
2814
|
-
delayFunction = fn;
|
|
2815
|
-
if (deletionQueue.length && delayFunction) {
|
|
2816
|
-
delayFunction(flushPendingDeletes);
|
|
2817
|
-
}
|
|
2818
|
-
};
|
|
2819
|
-
var init_embind = () => {
|
|
2820
|
-
Module["getInheritedInstanceCount"] = getInheritedInstanceCount;
|
|
2821
|
-
Module["getLiveInheritedInstances"] = getLiveInheritedInstances;
|
|
2822
|
-
Module["flushPendingDeletes"] = flushPendingDeletes;
|
|
2823
|
-
Module["setDelayFunction"] = setDelayFunction;
|
|
2824
|
-
};
|
|
2825
2847
|
var registeredInstances = {};
|
|
2826
2848
|
var getBasestPointer = (class_, ptr) => {
|
|
2827
2849
|
if (ptr === void 0) {
|
|
@@ -2915,6 +2937,15 @@ var require_wasm_bindings = __commonJS({
|
|
|
2915
2937
|
detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2);
|
|
2916
2938
|
return attachFinalizer(handle);
|
|
2917
2939
|
};
|
|
2940
|
+
var deletionQueue = [];
|
|
2941
|
+
var flushPendingDeletes = () => {
|
|
2942
|
+
while (deletionQueue.length) {
|
|
2943
|
+
var obj = deletionQueue.pop();
|
|
2944
|
+
obj.$$.deleteScheduled = false;
|
|
2945
|
+
obj["delete"]();
|
|
2946
|
+
}
|
|
2947
|
+
};
|
|
2948
|
+
var delayFunction;
|
|
2918
2949
|
var init_ClassHandle = () => {
|
|
2919
2950
|
Object.assign(ClassHandle.prototype, { isAliasOf(other) {
|
|
2920
2951
|
if (!(this instanceof ClassHandle)) {
|
|
@@ -3002,23 +3033,18 @@ var require_wasm_bindings = __commonJS({
|
|
|
3002
3033
|
throwBindingError(`Cannot register public name '${name}' twice`);
|
|
3003
3034
|
}
|
|
3004
3035
|
ensureOverloadTable(Module, name, name);
|
|
3005
|
-
if (Module.hasOwnProperty(numArguments)) {
|
|
3036
|
+
if (Module[name].overloadTable.hasOwnProperty(numArguments)) {
|
|
3006
3037
|
throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`);
|
|
3007
3038
|
}
|
|
3008
3039
|
Module[name].overloadTable[numArguments] = value;
|
|
3009
3040
|
} else {
|
|
3010
3041
|
Module[name] = value;
|
|
3011
|
-
|
|
3012
|
-
Module[name].numArguments = numArguments;
|
|
3013
|
-
}
|
|
3042
|
+
Module[name].argCount = numArguments;
|
|
3014
3043
|
}
|
|
3015
3044
|
};
|
|
3016
3045
|
var char_0 = 48;
|
|
3017
3046
|
var char_9 = 57;
|
|
3018
3047
|
var makeLegalFunctionName = (name) => {
|
|
3019
|
-
if (void 0 === name) {
|
|
3020
|
-
return "_unknown";
|
|
3021
|
-
}
|
|
3022
3048
|
name = name.replace(/[^a-zA-Z0-9_]/g, "$");
|
|
3023
3049
|
var f = name.charCodeAt(0);
|
|
3024
3050
|
if (f >= char_0 && f <= char_9) {
|
|
@@ -3279,15 +3305,14 @@ var require_wasm_bindings = __commonJS({
|
|
|
3279
3305
|
var __embind_register_class = (rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) => {
|
|
3280
3306
|
name = readLatin1String(name);
|
|
3281
3307
|
getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
|
|
3282
|
-
upcast
|
|
3283
|
-
downcast
|
|
3308
|
+
upcast &&= embind__requireFunction(upcastSignature, upcast);
|
|
3309
|
+
downcast &&= embind__requireFunction(downcastSignature, downcast);
|
|
3284
3310
|
rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
|
|
3285
3311
|
var legalFunctionName = makeLegalFunctionName(name);
|
|
3286
3312
|
exposePublicSymbol(legalFunctionName, function() {
|
|
3287
3313
|
throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]);
|
|
3288
3314
|
});
|
|
3289
3315
|
whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], (base) => {
|
|
3290
|
-
var _a;
|
|
3291
3316
|
base = base[0];
|
|
3292
3317
|
var baseClass;
|
|
3293
3318
|
var basePrototype;
|
|
@@ -3314,7 +3339,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3314
3339
|
constructor.prototype = instancePrototype;
|
|
3315
3340
|
var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);
|
|
3316
3341
|
if (registeredClass.baseClass) {
|
|
3317
|
-
|
|
3342
|
+
registeredClass.baseClass.__derivedClasses ??= [];
|
|
3318
3343
|
registeredClass.baseClass.__derivedClasses.push(registeredClass);
|
|
3319
3344
|
}
|
|
3320
3345
|
var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);
|
|
@@ -3353,9 +3378,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
3353
3378
|
var invokerFuncArgs = [];
|
|
3354
3379
|
var destructors = [];
|
|
3355
3380
|
var invokerFn = function(...args) {
|
|
3356
|
-
if (args.length !== expectedArgCount) {
|
|
3357
|
-
throwBindingError(`function ${humanName} called with ${args.length} arguments, expected ${expectedArgCount}`);
|
|
3358
|
-
}
|
|
3359
3381
|
destructors.length = 0;
|
|
3360
3382
|
var thisWired;
|
|
3361
3383
|
invokerFuncArgs.length = isClassMethodFunc ? 2 : 1;
|
|
@@ -3404,7 +3426,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3404
3426
|
return signature;
|
|
3405
3427
|
}
|
|
3406
3428
|
};
|
|
3407
|
-
var __embind_register_class_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync) => {
|
|
3429
|
+
var __embind_register_class_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync, isNonnullReturn) => {
|
|
3408
3430
|
var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
|
|
3409
3431
|
methodName = readLatin1String(methodName);
|
|
3410
3432
|
methodName = getFunctionName(methodName);
|
|
@@ -3470,7 +3492,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3470
3492
|
return [];
|
|
3471
3493
|
});
|
|
3472
3494
|
};
|
|
3473
|
-
var __embind_register_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) => {
|
|
3495
|
+
var __embind_register_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync, isNonnullReturn) => {
|
|
3474
3496
|
var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
|
|
3475
3497
|
methodName = readLatin1String(methodName);
|
|
3476
3498
|
methodName = getFunctionName(methodName);
|
|
@@ -3630,7 +3652,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3630
3652
|
name = readLatin1String(name);
|
|
3631
3653
|
registerType(rawType, { name, fromWireType: (value) => value, toWireType: (destructors, value) => value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: floatReadValueFromPointer(name, size), destructorFunction: null });
|
|
3632
3654
|
};
|
|
3633
|
-
var __embind_register_function = (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) => {
|
|
3655
|
+
var __embind_register_function = (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync, isNonnullReturn) => {
|
|
3634
3656
|
var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
|
|
3635
3657
|
name = readLatin1String(name);
|
|
3636
3658
|
name = getFunctionName(name);
|
|
@@ -3694,8 +3716,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
3694
3716
|
name = readLatin1String(name);
|
|
3695
3717
|
registerType(rawType, { name, fromWireType: decodeMemoryView, argPackAdvance: GenericWireTypeSize, readValueFromPointer: decodeMemoryView }, { ignoreDuplicateRegistrations: true });
|
|
3696
3718
|
};
|
|
3719
|
+
var EmValOptionalType = Object.assign({ optional: true }, EmValType);
|
|
3697
3720
|
var __embind_register_optional = (rawOptionalType, rawType) => {
|
|
3698
|
-
|
|
3721
|
+
registerType(rawOptionalType, EmValOptionalType);
|
|
3699
3722
|
};
|
|
3700
3723
|
var __embind_register_smart_ptr = (rawType, rawPointeeType, name, sharingPolicy, getPointeeSignature, rawGetPointee, constructorSignature, rawConstructor, shareSignature, rawShare, destructorSignature, rawDestructor) => {
|
|
3701
3724
|
name = readLatin1String(name);
|
|
@@ -3711,7 +3734,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3711
3734
|
};
|
|
3712
3735
|
var __embind_register_std_string = (rawType, name) => {
|
|
3713
3736
|
name = readLatin1String(name);
|
|
3714
|
-
var stdStringIsUTF8 =
|
|
3737
|
+
var stdStringIsUTF8 = true;
|
|
3715
3738
|
registerType(rawType, { name, fromWireType(value) {
|
|
3716
3739
|
var length = HEAPU32[value >> 2];
|
|
3717
3740
|
var payload = value + 4;
|
|
@@ -3804,7 +3827,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3804
3827
|
return str;
|
|
3805
3828
|
};
|
|
3806
3829
|
var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {
|
|
3807
|
-
maxBytesToWrite
|
|
3830
|
+
maxBytesToWrite ??= 2147483647;
|
|
3808
3831
|
if (maxBytesToWrite < 2)
|
|
3809
3832
|
return 0;
|
|
3810
3833
|
maxBytesToWrite -= 2;
|
|
@@ -3837,7 +3860,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3837
3860
|
return str;
|
|
3838
3861
|
};
|
|
3839
3862
|
var stringToUTF32 = (str, outPtr, maxBytesToWrite) => {
|
|
3840
|
-
maxBytesToWrite
|
|
3863
|
+
maxBytesToWrite ??= 2147483647;
|
|
3841
3864
|
if (maxBytesToWrite < 4)
|
|
3842
3865
|
return 0;
|
|
3843
3866
|
var startPtr = outPtr;
|
|
@@ -3920,8 +3943,6 @@ var require_wasm_bindings = __commonJS({
|
|
|
3920
3943
|
name = readLatin1String(name);
|
|
3921
3944
|
registerType(rawType, { isVoid: true, name, argPackAdvance: 0, fromWireType: () => void 0, toWireType: (destructors, o) => void 0 });
|
|
3922
3945
|
};
|
|
3923
|
-
var nowIsMonotonic = 1;
|
|
3924
|
-
var __emscripten_get_now_is_monotonic = () => nowIsMonotonic;
|
|
3925
3946
|
var __emscripten_memcpy_js = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num);
|
|
3926
3947
|
var emval_methodCallers = [];
|
|
3927
3948
|
var __emval_call = (caller, handle, destructorsRef, args) => {
|
|
@@ -3966,7 +3987,7 @@ var require_wasm_bindings = __commonJS({
|
|
|
3966
3987
|
var offset = 0;
|
|
3967
3988
|
for (var i = 0; i < argCount; ++i) {
|
|
3968
3989
|
argN[i] = types[i]["readValueFromPointer"](args + offset);
|
|
3969
|
-
offset += types[i]
|
|
3990
|
+
offset += types[i].argPackAdvance;
|
|
3970
3991
|
}
|
|
3971
3992
|
var rv = kind === 1 ? reflectConstruct(func, argN) : func.apply(obj, argN);
|
|
3972
3993
|
return emval_returnValue(retType, destructorsRef, rv);
|
|
@@ -4071,9 +4092,15 @@ var require_wasm_bindings = __commonJS({
|
|
|
4071
4092
|
var stdTimezoneOffset = Math.max(winterOffset, summerOffset);
|
|
4072
4093
|
HEAPU32[timezone >> 2] = stdTimezoneOffset * 60;
|
|
4073
4094
|
HEAP32[daylight >> 2] = Number(winterOffset != summerOffset);
|
|
4074
|
-
var extractZone = (
|
|
4075
|
-
|
|
4076
|
-
|
|
4095
|
+
var extractZone = (timezoneOffset) => {
|
|
4096
|
+
var sign = timezoneOffset >= 0 ? "-" : "+";
|
|
4097
|
+
var absOffset = Math.abs(timezoneOffset);
|
|
4098
|
+
var hours = String(Math.floor(absOffset / 60)).padStart(2, "0");
|
|
4099
|
+
var minutes = String(absOffset % 60).padStart(2, "0");
|
|
4100
|
+
return `UTC${sign}${hours}${minutes}`;
|
|
4101
|
+
};
|
|
4102
|
+
var winterName = extractZone(winterOffset);
|
|
4103
|
+
var summerName = extractZone(summerOffset);
|
|
4077
4104
|
if (summerOffset < winterOffset) {
|
|
4078
4105
|
stringToUTF8(winterName, std_name, 17);
|
|
4079
4106
|
stringToUTF8(summerName, dst_name, 17);
|
|
@@ -4082,14 +4109,32 @@ var require_wasm_bindings = __commonJS({
|
|
|
4082
4109
|
stringToUTF8(summerName, std_name, 17);
|
|
4083
4110
|
}
|
|
4084
4111
|
};
|
|
4112
|
+
var _emscripten_get_now = () => performance.now();
|
|
4085
4113
|
var _emscripten_date_now = () => Date.now();
|
|
4114
|
+
var nowIsMonotonic = 1;
|
|
4115
|
+
var checkWasiClock = (clock_id) => clock_id >= 0 && clock_id <= 3;
|
|
4116
|
+
function _clock_time_get(clk_id, ignored_precision_low, ignored_precision_high, ptime) {
|
|
4117
|
+
var ignored_precision = convertI32PairToI53Checked(ignored_precision_low, ignored_precision_high);
|
|
4118
|
+
if (!checkWasiClock(clk_id)) {
|
|
4119
|
+
return 28;
|
|
4120
|
+
}
|
|
4121
|
+
var now;
|
|
4122
|
+
if (clk_id === 0) {
|
|
4123
|
+
now = _emscripten_date_now();
|
|
4124
|
+
} else if (nowIsMonotonic) {
|
|
4125
|
+
now = _emscripten_get_now();
|
|
4126
|
+
} else {
|
|
4127
|
+
return 52;
|
|
4128
|
+
}
|
|
4129
|
+
var nsec = Math.round(now * 1e3 * 1e3);
|
|
4130
|
+
tempI64 = [nsec >>> 0, (tempDouble = nsec, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptime >> 2] = tempI64[0], HEAP32[ptime + 4 >> 2] = tempI64[1];
|
|
4131
|
+
return 0;
|
|
4132
|
+
}
|
|
4086
4133
|
var getHeapMax = () => 2147483648;
|
|
4087
4134
|
var _emscripten_get_heap_max = () => getHeapMax();
|
|
4088
|
-
var _emscripten_get_now;
|
|
4089
|
-
_emscripten_get_now = () => performance.now();
|
|
4090
4135
|
var growMemory = (size) => {
|
|
4091
4136
|
var b = wasmMemory.buffer;
|
|
4092
|
-
var pages = (size - b.byteLength + 65535) / 65536;
|
|
4137
|
+
var pages = (size - b.byteLength + 65535) / 65536 | 0;
|
|
4093
4138
|
try {
|
|
4094
4139
|
wasmMemory.grow(pages);
|
|
4095
4140
|
updateMemoryViews();
|
|
@@ -4104,11 +4149,10 @@ var require_wasm_bindings = __commonJS({
|
|
|
4104
4149
|
if (requestedSize > maxHeapSize) {
|
|
4105
4150
|
return false;
|
|
4106
4151
|
}
|
|
4107
|
-
var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;
|
|
4108
4152
|
for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
|
|
4109
4153
|
var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
|
|
4110
4154
|
overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
|
|
4111
|
-
var newSize = Math.min(maxHeapSize,
|
|
4155
|
+
var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
|
|
4112
4156
|
var replacement = growMemory(newSize);
|
|
4113
4157
|
if (replacement) {
|
|
4114
4158
|
return true;
|
|
@@ -4263,6 +4307,9 @@ var require_wasm_bindings = __commonJS({
|
|
|
4263
4307
|
if (curr < 0)
|
|
4264
4308
|
return -1;
|
|
4265
4309
|
ret += curr;
|
|
4310
|
+
if (curr < len) {
|
|
4311
|
+
break;
|
|
4312
|
+
}
|
|
4266
4313
|
if (typeof offset != "undefined") {
|
|
4267
4314
|
offset += curr;
|
|
4268
4315
|
}
|
|
@@ -4281,6 +4328,16 @@ var require_wasm_bindings = __commonJS({
|
|
|
4281
4328
|
return e.errno;
|
|
4282
4329
|
}
|
|
4283
4330
|
}
|
|
4331
|
+
function _random_get(buffer, size) {
|
|
4332
|
+
try {
|
|
4333
|
+
randomFill(HEAPU8.subarray(buffer, buffer + size));
|
|
4334
|
+
return 0;
|
|
4335
|
+
} catch (e) {
|
|
4336
|
+
if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
|
|
4337
|
+
throw e;
|
|
4338
|
+
return e.errno;
|
|
4339
|
+
}
|
|
4340
|
+
}
|
|
4284
4341
|
var FS_createPath = FS.createPath;
|
|
4285
4342
|
var FS_unlink = (path) => FS.unlink(path);
|
|
4286
4343
|
var FS_createLazyFile = FS.createLazyFile;
|
|
@@ -4293,6 +4350,8 @@ var require_wasm_bindings = __commonJS({
|
|
|
4293
4350
|
Module["FS_unlink"] = FS.unlink;
|
|
4294
4351
|
Module["FS_createLazyFile"] = FS.createLazyFile;
|
|
4295
4352
|
Module["FS_createDevice"] = FS.createDevice;
|
|
4353
|
+
MEMFS.doesNotExistError = new FS.ErrnoError(44);
|
|
4354
|
+
MEMFS.doesNotExistError.stack = "<generic error, no stack>";
|
|
4296
4355
|
embind_init_charCodes();
|
|
4297
4356
|
BindingError = Module["BindingError"] = class BindingError extends Error {
|
|
4298
4357
|
constructor(message) {
|
|
@@ -4307,28 +4366,30 @@ var require_wasm_bindings = __commonJS({
|
|
|
4307
4366
|
}
|
|
4308
4367
|
};
|
|
4309
4368
|
init_ClassHandle();
|
|
4310
|
-
init_embind();
|
|
4311
4369
|
init_RegisteredPointer();
|
|
4312
4370
|
UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
|
|
4313
4371
|
init_emval();
|
|
4314
|
-
var wasmImports = { a: ___cxa_throw,
|
|
4315
|
-
var wasmExports
|
|
4316
|
-
|
|
4317
|
-
var
|
|
4318
|
-
var
|
|
4319
|
-
var
|
|
4320
|
-
var
|
|
4321
|
-
var
|
|
4322
|
-
var
|
|
4323
|
-
var
|
|
4324
|
-
var
|
|
4325
|
-
var
|
|
4326
|
-
var
|
|
4327
|
-
var
|
|
4328
|
-
var
|
|
4329
|
-
var
|
|
4330
|
-
var
|
|
4331
|
-
var
|
|
4372
|
+
var wasmImports = { a: ___cxa_throw, V: ___syscall_faccessat, s: ___syscall_fcntl64, Q: ___syscall_fstat64, M: ___syscall_getcwd, S: ___syscall_ioctl, N: ___syscall_lstat64, I: ___syscall_mkdirat, O: ___syscall_newfstatat, t: ___syscall_openat, G: ___syscall_readlinkat, P: ___syscall_stat64, W: __abort_js, C: __embind_register_bigint, $: __embind_register_bool, e: __embind_register_class, m: __embind_register_class_class_function, r: __embind_register_class_constructor, g: __embind_register_class_function, p: __embind_register_class_property, Z: __embind_register_emval, u: __embind_register_float, h: __embind_register_function, d: __embind_register_integer, b: __embind_register_memory_view, v: __embind_register_optional, k: __embind_register_smart_ptr, _: __embind_register_std_string, o: __embind_register_std_wstring, aa: __embind_register_void, U: __emscripten_memcpy_js, ca: __emval_call, c: __emval_decref, da: __emval_get_method_caller, q: __emval_incref, ba: __emval_run_destructors, i: __emval_take_value, z: __gmtime_js, A: __localtime_js, x: __mmap_js, y: __munmap_js, H: __tzset_js, w: _clock_time_get, T: _emscripten_date_now, F: _emscripten_get_heap_max, j: _emscripten_get_now, E: _emscripten_resize_heap, K: _environ_get, L: _environ_sizes_get, f: _exit, n: _fd_close, J: _fd_fdstat_get, R: _fd_read, B: _fd_seek, l: _fd_write, X: hardware_concurrency, D: _random_get, Y: xnnLoadWasmModuleJS };
|
|
4373
|
+
var wasmExports;
|
|
4374
|
+
createWasm();
|
|
4375
|
+
var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["fa"])();
|
|
4376
|
+
var ___getTypeName = (a0) => (___getTypeName = wasmExports["ga"])(a0);
|
|
4377
|
+
var _malloc = (a0) => (_malloc = wasmExports["ia"])(a0);
|
|
4378
|
+
var _free = (a0) => (_free = wasmExports["ja"])(a0);
|
|
4379
|
+
var _emscripten_builtin_memalign = (a0, a1) => (_emscripten_builtin_memalign = wasmExports["ka"])(a0, a1);
|
|
4380
|
+
var dynCall_iiiijj = Module["dynCall_iiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7) => (dynCall_iiiijj = Module["dynCall_iiiijj"] = wasmExports["la"])(a0, a1, a2, a3, a4, a5, a6, a7);
|
|
4381
|
+
var dynCall_viijj = Module["dynCall_viijj"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijj = Module["dynCall_viijj"] = wasmExports["ma"])(a0, a1, a2, a3, a4, a5, a6);
|
|
4382
|
+
var dynCall_viiijjj = Module["dynCall_viiijjj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_viiijjj = Module["dynCall_viiijjj"] = wasmExports["na"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
|
4383
|
+
var dynCall_jjj = Module["dynCall_jjj"] = (a0, a1, a2, a3, a4) => (dynCall_jjj = Module["dynCall_jjj"] = wasmExports["oa"])(a0, a1, a2, a3, a4);
|
|
4384
|
+
var dynCall_viijji = Module["dynCall_viijji"] = (a0, a1, a2, a3, a4, a5, a6, a7) => (dynCall_viijji = Module["dynCall_viijji"] = wasmExports["pa"])(a0, a1, a2, a3, a4, a5, a6, a7);
|
|
4385
|
+
var dynCall_iiijj = Module["dynCall_iiijj"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiijj = Module["dynCall_iiijj"] = wasmExports["qa"])(a0, a1, a2, a3, a4, a5, a6);
|
|
4386
|
+
var dynCall_viijjj = Module["dynCall_viijjj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_viijjj = Module["dynCall_viijjj"] = wasmExports["ra"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);
|
|
4387
|
+
var dynCall_iji = Module["dynCall_iji"] = (a0, a1, a2, a3) => (dynCall_iji = Module["dynCall_iji"] = wasmExports["sa"])(a0, a1, a2, a3);
|
|
4388
|
+
var dynCall_jiji = Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["ta"])(a0, a1, a2, a3, a4);
|
|
4389
|
+
var dynCall_viijii = Module["dynCall_viijii"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijii = Module["dynCall_viijii"] = wasmExports["ua"])(a0, a1, a2, a3, a4, a5, a6);
|
|
4390
|
+
var dynCall_iiiiij = Module["dynCall_iiiiij"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiiiij = Module["dynCall_iiiiij"] = wasmExports["va"])(a0, a1, a2, a3, a4, a5, a6);
|
|
4391
|
+
var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = wasmExports["wa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);
|
|
4392
|
+
var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = wasmExports["xa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
|
|
4332
4393
|
Module["addRunDependency"] = addRunDependency;
|
|
4333
4394
|
Module["removeRunDependency"] = removeRunDependency;
|
|
4334
4395
|
Module["FS_createPreloadedFile"] = FS_createPreloadedFile;
|
|
@@ -4366,10 +4427,8 @@ var require_wasm_bindings = __commonJS({
|
|
|
4366
4427
|
}
|
|
4367
4428
|
if (Module["setStatus"]) {
|
|
4368
4429
|
Module["setStatus"]("Running...");
|
|
4369
|
-
setTimeout(
|
|
4370
|
-
setTimeout(
|
|
4371
|
-
Module["setStatus"]("");
|
|
4372
|
-
}, 1);
|
|
4430
|
+
setTimeout(() => {
|
|
4431
|
+
setTimeout(() => Module["setStatus"](""), 1);
|
|
4373
4432
|
doRun();
|
|
4374
4433
|
}, 1);
|
|
4375
4434
|
} else {
|
|
@@ -4388,12 +4447,13 @@ var require_wasm_bindings = __commonJS({
|
|
|
4388
4447
|
return moduleRtn;
|
|
4389
4448
|
};
|
|
4390
4449
|
})();
|
|
4391
|
-
if (typeof exports === "object" && typeof module2 === "object")
|
|
4392
|
-
module2.exports =
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4450
|
+
if (typeof exports === "object" && typeof module2 === "object") {
|
|
4451
|
+
module2.exports = wav2lip4;
|
|
4452
|
+
module2.exports.default = wav2lip4;
|
|
4453
|
+
} else if (typeof define === "function" && define["amd"])
|
|
4454
|
+
define([], () => wav2lip4);
|
|
4455
|
+
wav2lip4.getUrl = function(path) {
|
|
4456
|
+
return "https://calls-sdk.cdn-vk.ru/static/audio-processing/0-0-8-dev.557e631c/" + path;
|
|
4397
4457
|
};
|
|
4398
4458
|
}
|
|
4399
4459
|
});
|
|
@@ -4414,6 +4474,8 @@ module.exports = __toCommonJS(AudioEffects_exports);
|
|
|
4414
4474
|
|
|
4415
4475
|
// src/utils/Logger.ts
|
|
4416
4476
|
var Logger = class {
|
|
4477
|
+
loggerName;
|
|
4478
|
+
loggerFunction;
|
|
4417
4479
|
constructor(loggerFunction, loggerName = "AudioEffects") {
|
|
4418
4480
|
this.loggerFunction = loggerFunction;
|
|
4419
4481
|
this.loggerName = loggerName;
|
|
@@ -4443,19 +4505,17 @@ function createBlobObject(functionData, args = []) {
|
|
|
4443
4505
|
|
|
4444
4506
|
// src/processor/AudioProcessor.ts
|
|
4445
4507
|
var AudioProcessor = class {
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
});
|
|
4458
|
-
}
|
|
4508
|
+
/**
|
|
4509
|
+
* MediaStream, в который производится вывод результата
|
|
4510
|
+
* обработки аудио, если при инициализации был установлен флаг isOutputStream.
|
|
4511
|
+
*/
|
|
4512
|
+
outputStream = null;
|
|
4513
|
+
isInitialized = false;
|
|
4514
|
+
audioContext = null;
|
|
4515
|
+
workletNode = null;
|
|
4516
|
+
sourceNode = null;
|
|
4517
|
+
logger = new Logger(() => {
|
|
4518
|
+
});
|
|
4459
4519
|
/**
|
|
4460
4520
|
* @typedef {Object} AudioProcessorParams
|
|
4461
4521
|
* @param {AudioProcessorParams} params
|
|
@@ -4656,20 +4716,20 @@ function vmojiLmarksVolumeWorkletFunction() {
|
|
|
4656
4716
|
const MOUTH_OPEN_MIN = LMARKS_INIT_VECTOR[MOUTH_OPEN_INDEX];
|
|
4657
4717
|
const MOUTH_OPEN_RANGE = 1 - LMARKS_INIT_VECTOR[MOUTH_OPEN_INDEX];
|
|
4658
4718
|
class VmojiLmarksVolumeWorklet extends AudioWorkletProcessor {
|
|
4719
|
+
lastTime = 0;
|
|
4720
|
+
// in seconds
|
|
4721
|
+
frameSampleCount = 0;
|
|
4722
|
+
frameSampleAverage = 0;
|
|
4723
|
+
/**
|
|
4724
|
+
* Storing maximum user input volume in order to animate quiet speakers
|
|
4725
|
+
*/
|
|
4726
|
+
maxInputVolume = DEFAULT_MAX_INPUT_VOLUME;
|
|
4727
|
+
/**
|
|
4728
|
+
* Counting sequence for tremolo effect while speaking with constant volume
|
|
4729
|
+
*/
|
|
4730
|
+
sequence = 0;
|
|
4659
4731
|
constructor() {
|
|
4660
4732
|
super();
|
|
4661
|
-
this.lastTime = 0;
|
|
4662
|
-
// in seconds
|
|
4663
|
-
this.frameSampleCount = 0;
|
|
4664
|
-
this.frameSampleAverage = 0;
|
|
4665
|
-
/**
|
|
4666
|
-
* Storing maximum user input volume in order to animate quiet speakers
|
|
4667
|
-
*/
|
|
4668
|
-
this.maxInputVolume = DEFAULT_MAX_INPUT_VOLUME;
|
|
4669
|
-
/**
|
|
4670
|
-
* Counting sequence for tremolo effect while speaking with constant volume
|
|
4671
|
-
*/
|
|
4672
|
-
this.sequence = 0;
|
|
4673
4733
|
this.port.postMessage({ type: "init" /* INIT */ });
|
|
4674
4734
|
}
|
|
4675
4735
|
process(inputList) {
|
|
@@ -4709,15 +4769,12 @@ function vmojiLmarksVolumeWorkletFunction() {
|
|
|
4709
4769
|
|
|
4710
4770
|
// src/effects/EffectVmojiLmarksVolume.ts
|
|
4711
4771
|
var EffectVmojiLmarksVolume = class extends AudioProcessor {
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
this.onData = () => {
|
|
4719
|
-
};
|
|
4720
|
-
}
|
|
4772
|
+
/**
|
|
4773
|
+
* Коллбек, вызывающийся при генерации очередной серии точек Vmoji
|
|
4774
|
+
* @param {ArrayBuffer} data - точки Vmoji
|
|
4775
|
+
*/
|
|
4776
|
+
onData = () => {
|
|
4777
|
+
};
|
|
4721
4778
|
async init() {
|
|
4722
4779
|
await super.init({
|
|
4723
4780
|
workletFunction: vmojiLmarksVolumeWorkletFunction,
|
|
@@ -4734,11 +4791,8 @@ var import_audio_processing = __toESM(require_wasm_bindings());
|
|
|
4734
4791
|
|
|
4735
4792
|
// src/processor/WorkerAudioProcessor.ts
|
|
4736
4793
|
var WorkerAudioProcessor = class extends AudioProcessor {
|
|
4737
|
-
|
|
4738
|
-
|
|
4739
|
-
this.worker = null;
|
|
4740
|
-
this.performanceMonitor = null;
|
|
4741
|
-
}
|
|
4794
|
+
worker = null;
|
|
4795
|
+
performanceMonitor = null;
|
|
4742
4796
|
/**
|
|
4743
4797
|
* @typedef {Object} WorkerAudioProcessorParams
|
|
4744
4798
|
* @param {WorkerAudioProcessorParams} params
|
|
@@ -4842,15 +4896,12 @@ function pureWorkletFunction() {
|
|
|
4842
4896
|
// src/effects/EffectVmojiLmarksAi.ts
|
|
4843
4897
|
var VMOJI_LMARKS_AI_SAMPLE_RATE = 16e3;
|
|
4844
4898
|
var EffectVmojiLmarksAi = class extends WorkerAudioProcessor {
|
|
4845
|
-
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
|
|
4849
|
-
|
|
4850
|
-
|
|
4851
|
-
this.onData = () => {
|
|
4852
|
-
};
|
|
4853
|
-
}
|
|
4899
|
+
/**
|
|
4900
|
+
* Коллбек, вызывающийся при генерации очередной серии точек Vmoji
|
|
4901
|
+
* @param {ArrayBuffer} data - точки Vmoji
|
|
4902
|
+
*/
|
|
4903
|
+
onData = () => {
|
|
4904
|
+
};
|
|
4854
4905
|
async init() {
|
|
4855
4906
|
await super.init({
|
|
4856
4907
|
sampleRate: VMOJI_LMARKS_AI_SAMPLE_RATE,
|
|
@@ -4878,30 +4929,42 @@ var EffectVmojiLmarksAi = class extends WorkerAudioProcessor {
|
|
|
4878
4929
|
};
|
|
4879
4930
|
|
|
4880
4931
|
// src/effects/EffectVadAi.ts
|
|
4932
|
+
var import_audio_processing2 = __toESM(require_wasm_bindings());
|
|
4881
4933
|
var VAD_SAMPLE_RATE = 16e3;
|
|
4882
|
-
var
|
|
4883
|
-
|
|
4884
|
-
|
|
4885
|
-
|
|
4934
|
+
var DEFAULT_VAD_AI_URLS = {
|
|
4935
|
+
modelUrl: "https://calls-sdk.cdn-vk.ru/models/bcresnet_no_center_mult2_20ms.onnx",
|
|
4936
|
+
modelDataUrl: "https://calls-sdk.cdn-vk.ru/models/bcresnet_no_center_mult2_20ms.onnx.data",
|
|
4937
|
+
ortWasmUrl: "https://calls-sdk.cdn-vk.ru/vendor/onnxruntime-web/ort-wasm-simd-threaded.wasm",
|
|
4938
|
+
ortMjsUrl: "https://calls-sdk.cdn-vk.ru/vendor/onnxruntime-web/ort-wasm-simd-threaded.mjs"
|
|
4939
|
+
};
|
|
4886
4940
|
var EffectVadAi = class extends WorkerAudioProcessor {
|
|
4887
|
-
|
|
4888
|
-
|
|
4889
|
-
|
|
4890
|
-
|
|
4941
|
+
onData = () => {
|
|
4942
|
+
};
|
|
4943
|
+
_modelType;
|
|
4944
|
+
_modelUrl;
|
|
4945
|
+
_modelDataUrl;
|
|
4946
|
+
_ortWasmUrl;
|
|
4947
|
+
_ortMjsUrl;
|
|
4948
|
+
constructor(options) {
|
|
4949
|
+
super();
|
|
4950
|
+
this._modelType = options?.modelType ?? "onnx";
|
|
4951
|
+
this._modelUrl = options?.modelUrl ?? DEFAULT_VAD_AI_URLS.modelUrl;
|
|
4952
|
+
this._modelDataUrl = options?.modelDataUrl ?? DEFAULT_VAD_AI_URLS.modelDataUrl;
|
|
4953
|
+
this._ortWasmUrl = options?.ortWasmUrl ?? DEFAULT_VAD_AI_URLS.ortWasmUrl;
|
|
4954
|
+
this._ortMjsUrl = options?.ortMjsUrl ?? DEFAULT_VAD_AI_URLS.ortMjsUrl;
|
|
4891
4955
|
}
|
|
4892
4956
|
async init() {
|
|
4957
|
+
const isTflite = this._modelType === "tflite";
|
|
4893
4958
|
await super.init({
|
|
4894
4959
|
sampleRate: VAD_SAMPLE_RATE,
|
|
4895
4960
|
workletFunction: pureWorkletFunction,
|
|
4896
4961
|
workletName: "pureWorklet",
|
|
4897
|
-
workerFunctionString: '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\n var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {\n get: (a, b) => (typeof require !== "undefined" ? require : a)[b]\n }) : x)(function(x) {\n if (typeof require !== "undefined")\n return require.apply(this, arguments);\n throw new Error(\'Dynamic require of "\' + x + \'" is not supported\');\n });\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to2, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to2, key) && key !== except)\n __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to2;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n var __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);\n return value;\n };\n\n // src/workers/VadAiWorker.ts\n var VadAiWorker_exports = {};\n __export(VadAiWorker_exports, {\n default: () => VadAiWorker_default\n });\n\n // node_modules/onnxruntime-web/dist/ort.wasm.bundle.min.mjs\n var import_meta = {};\n var Jt = Object.defineProperty;\n var Xa = Object.getOwnPropertyDescriptor;\n var Qa = Object.getOwnPropertyNames;\n var Za = Object.prototype.hasOwnProperty;\n var qt = ((n) => typeof __require < "u" ? __require : typeof Proxy < "u" ? new Proxy(n, { get: (t, a) => (typeof __require < "u" ? __require : t)[a] }) : n)(function(n) {\n if (typeof __require < "u")\n return __require.apply(this, arguments);\n throw Error(\'Dynamic require of "\' + n + \'" is not supported\');\n });\n var N = (n, t) => () => (n && (t = n(n = 0)), t);\n var ut = (n, t) => {\n for (var a in t)\n Jt(n, a, { get: t[a], enumerable: true });\n };\n var Ka = (n, t, a, u) => {\n if (t && typeof t == "object" || typeof t == "function")\n for (let o of Qa(t))\n !Za.call(n, o) && o !== a && Jt(n, o, { get: () => t[o], enumerable: !(u = Xa(t, o)) || u.enumerable });\n return n;\n };\n var Xt = (n) => Ka(Jt({}, "__esModule", { value: true }), n);\n var ft;\n var Be;\n var qe;\n var es;\n var dr;\n var Qt = N(() => {\n "use strict";\n ft = /* @__PURE__ */ new Map(), Be = [], qe = (n, t, a) => {\n if (t && typeof t.init == "function" && typeof t.createInferenceSessionHandler == "function") {\n let u = ft.get(n);\n if (u === void 0)\n ft.set(n, { backend: t, priority: a });\n else {\n if (u.priority > a)\n return;\n if (u.priority === a && u.backend !== t)\n throw new Error(`cannot register backend "${n}" using priority ${a}`);\n }\n if (a >= 0) {\n let o = Be.indexOf(n);\n o !== -1 && Be.splice(o, 1);\n for (let d = 0; d < Be.length; d++)\n if (ft.get(Be[d]).priority <= a) {\n Be.splice(d, 0, n);\n return;\n }\n Be.push(n);\n }\n return;\n }\n throw new TypeError("not a valid backend");\n }, es = async (n) => {\n let t = ft.get(n);\n if (!t)\n return "backend not found.";\n if (t.initialized)\n return t.backend;\n if (t.aborted)\n return t.error;\n {\n let a = !!t.initPromise;\n try {\n return a || (t.initPromise = t.backend.init(n)), await t.initPromise, t.initialized = true, t.backend;\n } catch (u) {\n return a || (t.error = `${u}`, t.aborted = true), t.error;\n } finally {\n delete t.initPromise;\n }\n }\n }, dr = async (n) => {\n let t = n.executionProviders || [], a = t.map((m) => typeof m == "string" ? m : m.name), u = a.length === 0 ? Be : a, o, d = [], c = /* @__PURE__ */ new Set();\n for (let m of u) {\n let h = await es(m);\n typeof h == "string" ? d.push({ name: m, err: h }) : (o || (o = h), o === h && c.add(m));\n }\n if (!o)\n throw new Error(`no available backend found. ERR: ${d.map((m) => `[${m.name}] ${m.err}`).join(", ")}`);\n for (let { name: m, err: h } of d)\n a.includes(m) && console.warn(`removing requested execution provider "${m}" from session options because it is not available: ${h}`);\n let l = t.filter((m) => c.has(typeof m == "string" ? m : m.name));\n return [o, new Proxy(n, { get: (m, h) => h === "executionProviders" ? l : Reflect.get(m, h) })];\n };\n });\n var pr = N(() => {\n "use strict";\n Qt();\n });\n var mr;\n var hr = N(() => {\n "use strict";\n mr = "1.26.0";\n });\n var wr;\n var J;\n var Zt = N(() => {\n "use strict";\n hr();\n wr = "warning", J = { wasm: {}, webgl: {}, webgpu: {}, versions: { common: mr }, set logLevel(n) {\n if (n !== void 0) {\n if (typeof n != "string" || ["verbose", "info", "warning", "error", "fatal"].indexOf(n) === -1)\n throw new Error(`Unsupported logging level: ${n}`);\n wr = n;\n }\n }, get logLevel() {\n return wr;\n } };\n Object.defineProperty(J, "logLevel", { enumerable: true });\n });\n var Y;\n var br = N(() => {\n "use strict";\n Zt();\n Y = J;\n });\n var yr;\n var gr;\n var Er = N(() => {\n "use strict";\n yr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas") : new OffscreenCanvas(1, 1);\n a.width = n.dims[3], a.height = n.dims[2];\n let u = a.getContext("2d");\n if (u != null) {\n let o, d;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[3]) : (o = n.dims[3], d = n.dims[2]);\n let c = t?.format !== void 0 ? t.format : "RGB", l = t?.norm, m, h;\n l === void 0 || l.mean === void 0 ? m = [255, 255, 255, 255] : typeof l.mean == "number" ? m = [l.mean, l.mean, l.mean, l.mean] : (m = [l.mean[0], l.mean[1], l.mean[2], 0], l.mean[3] !== void 0 && (m[3] = l.mean[3])), l === void 0 || l.bias === void 0 ? h = [0, 0, 0, 0] : typeof l.bias == "number" ? h = [l.bias, l.bias, l.bias, l.bias] : (h = [l.bias[0], l.bias[1], l.bias[2], 0], l.bias[3] !== void 0 && (h[3] = l.bias[3]));\n let g = d * o, b = 0, y = g, T = g * 2, I = -1;\n c === "RGBA" ? (b = 0, y = g, T = g * 2, I = g * 3) : c === "RGB" ? (b = 0, y = g, T = g * 2) : c === "RBG" && (b = 0, T = g, y = g * 2);\n for (let D = 0; D < d; D++)\n for (let z = 0; z < o; z++) {\n let v = (n.data[b++] - h[0]) * m[0], O = (n.data[y++] - h[1]) * m[1], F = (n.data[T++] - h[2]) * m[2], _ = I === -1 ? 255 : (n.data[I++] - h[3]) * m[3];\n u.fillStyle = "rgba(" + v + "," + O + "," + F + "," + _ + ")", u.fillRect(z, D, 1, 1);\n }\n if ("toDataURL" in a)\n return a.toDataURL();\n throw new Error("toDataURL is not supported");\n } else\n throw new Error("Can not access image data");\n }, gr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas").getContext("2d") : new OffscreenCanvas(1, 1).getContext("2d"), u;\n if (a != null) {\n let o, d, c;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[1], c = n.dims[3]) : (o = n.dims[3], d = n.dims[2], c = n.dims[1]);\n let l = t !== void 0 && t.format !== void 0 ? t.format : "RGB", m = t?.norm, h, g;\n m === void 0 || m.mean === void 0 ? h = [255, 255, 255, 255] : typeof m.mean == "number" ? h = [m.mean, m.mean, m.mean, m.mean] : (h = [m.mean[0], m.mean[1], m.mean[2], 255], m.mean[3] !== void 0 && (h[3] = m.mean[3])), m === void 0 || m.bias === void 0 ? g = [0, 0, 0, 0] : typeof m.bias == "number" ? g = [m.bias, m.bias, m.bias, m.bias] : (g = [m.bias[0], m.bias[1], m.bias[2], 0], m.bias[3] !== void 0 && (g[3] = m.bias[3]));\n let b = d * o;\n if (t !== void 0 && (t.format !== void 0 && c === 4 && t.format !== "RGBA" || c === 3 && t.format !== "RGB" && t.format !== "BGR"))\n throw new Error("Tensor format doesn\'t match input tensor dims");\n let y = 4, T = 0, I = 1, D = 2, z = 3, v = 0, O = b, F = b * 2, _ = -1;\n l === "RGBA" ? (v = 0, O = b, F = b * 2, _ = b * 3) : l === "RGB" ? (v = 0, O = b, F = b * 2) : l === "RBG" && (v = 0, F = b, O = b * 2), u = a.createImageData(o, d);\n for (let k = 0; k < d * o; T += y, I += y, D += y, z += y, k++)\n u.data[T] = (n.data[v++] - g[0]) * h[0], u.data[I] = (n.data[O++] - g[1]) * h[1], u.data[D] = (n.data[F++] - g[2]) * h[2], u.data[z] = _ === -1 ? 255 : (n.data[_++] - g[3]) * h[3];\n } else\n throw new Error("Can not access image data");\n return u;\n };\n });\n var Kt;\n var Tr;\n var Sr;\n var vr;\n var Or;\n var Ar;\n var Ir = N(() => {\n "use strict";\n ct();\n Kt = (n, t) => {\n if (n === void 0)\n throw new Error("Image buffer must be defined");\n if (t.height === void 0 || t.width === void 0)\n throw new Error("Image height and width must be defined");\n if (t.tensorLayout === "NHWC")\n throw new Error("NHWC Tensor layout is not supported yet");\n let { height: a, width: u } = t, o = t.norm ?? { mean: 255, bias: 0 }, d, c;\n typeof o.mean == "number" ? d = [o.mean, o.mean, o.mean, o.mean] : d = [o.mean[0], o.mean[1], o.mean[2], o.mean[3] ?? 255], typeof o.bias == "number" ? c = [o.bias, o.bias, o.bias, o.bias] : c = [o.bias[0], o.bias[1], o.bias[2], o.bias[3] ?? 0];\n let l = t.format !== void 0 ? t.format : "RGBA", m = t.tensorFormat !== void 0 && t.tensorFormat !== void 0 ? t.tensorFormat : "RGB", h = a * u, g = m === "RGBA" ? new Float32Array(h * 4) : new Float32Array(h * 3), b = 4, y = 0, T = 1, I = 2, D = 3, z = 0, v = h, O = h * 2, F = -1;\n l === "RGB" && (b = 3, y = 0, T = 1, I = 2, D = -1), m === "RGBA" ? F = h * 3 : m === "RBG" ? (z = 0, O = h, v = h * 2) : m === "BGR" && (O = 0, v = h, z = h * 2);\n for (let k = 0; k < h; k++, y += b, I += b, T += b, D += b)\n g[z++] = (n[y] + c[0]) / d[0], g[v++] = (n[T] + c[1]) / d[1], g[O++] = (n[I] + c[2]) / d[2], F !== -1 && D !== -1 && (g[F++] = (n[D] + c[3]) / d[3]);\n return m === "RGBA" ? new Q("float32", g, [1, 4, a, u]) : new Q("float32", g, [1, 3, a, u]);\n }, Tr = async (n, t) => {\n let a = typeof HTMLImageElement < "u" && n instanceof HTMLImageElement, u = typeof ImageData < "u" && n instanceof ImageData, o = typeof ImageBitmap < "u" && n instanceof ImageBitmap, d = typeof n == "string", c, l = t ?? {}, m = () => {\n if (typeof document < "u")\n return document.createElement("canvas");\n if (typeof OffscreenCanvas < "u")\n return new OffscreenCanvas(1, 1);\n throw new Error("Canvas is not supported");\n }, h = (g) => typeof HTMLCanvasElement < "u" && g instanceof HTMLCanvasElement || g instanceof OffscreenCanvas ? g.getContext("2d") : null;\n if (a) {\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n if (t !== void 0 && t.resizedHeight !== void 0 && t.resizedWidth !== void 0 && (y = t.resizedHeight, T = t.resizedWidth), t !== void 0) {\n if (l = t, t.tensorFormat !== void 0)\n throw new Error("Image input config format must be RGBA for HTMLImageElement");\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n } else\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n b.drawImage(n, 0, 0), c = b.getImageData(0, 0, T, y).data;\n } else\n throw new Error("Can not access image data");\n } else if (u) {\n let g, b;\n if (t !== void 0 && t.resizedWidth !== void 0 && t.resizedHeight !== void 0 ? (g = t.resizedHeight, b = t.resizedWidth) : (g = n.height, b = n.width), t !== void 0 && (l = t), l.format = "RGBA", l.height = g, l.width = b, t !== void 0) {\n let y = m();\n y.width = b, y.height = g;\n let T = h(y);\n if (T != null)\n T.putImageData(n, 0, 0), c = T.getImageData(0, 0, b, g).data;\n else\n throw new Error("Can not access image data");\n } else\n c = n.data;\n } else if (o) {\n if (t === void 0)\n throw new Error("Please provide image config with format for Imagebitmap");\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n return b.drawImage(n, 0, 0, T, y), c = b.getImageData(0, 0, T, y).data, l.height = y, l.width = T, Kt(c, l);\n } else\n throw new Error("Can not access image data");\n } else {\n if (d)\n return new Promise((g, b) => {\n let y = m(), T = h(y);\n if (!n || !T)\n return b();\n let I = new Image();\n I.crossOrigin = "Anonymous", I.src = n, I.onload = () => {\n y.width = I.width, y.height = I.height, T.drawImage(I, 0, 0, y.width, y.height);\n let D = T.getImageData(0, 0, y.width, y.height);\n l.height = y.height, l.width = y.width, g(Kt(D.data, l));\n };\n });\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }\n if (c !== void 0)\n return Kt(c, l);\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }, Sr = (n, t) => {\n let { width: a, height: u, download: o, dispose: d } = t, c = [1, u, a, 4];\n return new Q({ location: "texture", type: "float32", texture: n, dims: c, download: o, dispose: d });\n }, vr = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "gpu-buffer", type: a ?? "float32", gpuBuffer: n, dims: u, download: o, dispose: d });\n }, Or = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "ml-tensor", type: a ?? "float32", mlTensor: n, dims: u, download: o, dispose: d });\n }, Ar = (n, t, a) => new Q({ location: "cpu-pinned", type: n, data: t, dims: a ?? [t.length] });\n });\n var Le;\n var Xe;\n var Br;\n var Lr;\n var _r = N(() => {\n "use strict";\n Le = /* @__PURE__ */ new Map([["float32", Float32Array], ["uint8", Uint8Array], ["int8", Int8Array], ["uint16", Uint16Array], ["int16", Int16Array], ["int32", Int32Array], ["bool", Uint8Array], ["float64", Float64Array], ["uint32", Uint32Array], ["int4", Uint8Array], ["uint4", Uint8Array]]), Xe = /* @__PURE__ */ new Map([[Float32Array, "float32"], [Uint8Array, "uint8"], [Int8Array, "int8"], [Uint16Array, "uint16"], [Int16Array, "int16"], [Int32Array, "int32"], [Float64Array, "float64"], [Uint32Array, "uint32"]]), Br = false, Lr = () => {\n if (!Br) {\n Br = true;\n let n = typeof BigInt64Array < "u" && BigInt64Array.from, t = typeof BigUint64Array < "u" && BigUint64Array.from, a = globalThis.Float16Array, u = typeof a < "u" && a.from;\n n && (Le.set("int64", BigInt64Array), Xe.set(BigInt64Array, "int64")), t && (Le.set("uint64", BigUint64Array), Xe.set(BigUint64Array, "uint64")), u ? (Le.set("float16", a), Xe.set(a, "float16")) : Le.set("float16", Uint16Array);\n }\n };\n });\n var Pr;\n var Dr;\n var Ur = N(() => {\n "use strict";\n ct();\n Pr = (n) => {\n let t = 1;\n for (let a = 0; a < n.length; a++) {\n let u = n[a];\n if (typeof u != "number" || !Number.isSafeInteger(u))\n throw new TypeError(`dims[${a}] must be an integer, got: ${u}`);\n if (u < 0)\n throw new RangeError(`dims[${a}] must be a non-negative integer, got: ${u}`);\n t *= u;\n }\n return t;\n }, Dr = (n, t) => {\n switch (n.location) {\n case "cpu":\n return new Q(n.type, n.data, t);\n case "cpu-pinned":\n return new Q({ location: "cpu-pinned", data: n.data, type: n.type, dims: t });\n case "texture":\n return new Q({ location: "texture", texture: n.texture, type: n.type, dims: t });\n case "gpu-buffer":\n return new Q({ location: "gpu-buffer", gpuBuffer: n.gpuBuffer, type: n.type, dims: t });\n case "ml-tensor":\n return new Q({ location: "ml-tensor", mlTensor: n.mlTensor, type: n.type, dims: t });\n default:\n throw new Error(`tensorReshape: tensor location ${n.location} is not supported`);\n }\n };\n });\n var Q;\n var ct = N(() => {\n "use strict";\n Er();\n Ir();\n _r();\n Ur();\n Q = class {\n constructor(t, a, u) {\n Lr();\n let o, d;\n if (typeof t == "object" && "location" in t)\n switch (this.dataLocation = t.location, o = t.type, d = t.dims, t.location) {\n case "cpu-pinned": {\n let l = Le.get(o);\n if (!l)\n throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);\n if (!(t.data instanceof l))\n throw new TypeError(`buffer should be of type ${l.name}`);\n this.cpuData = t.data;\n break;\n }\n case "texture": {\n if (o !== "float32")\n throw new TypeError(`unsupported type "${o}" to create tensor from texture`);\n this.gpuTextureData = t.texture, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "gpu-buffer": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from gpu buffer`);\n this.gpuBufferData = t.gpuBuffer, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "ml-tensor": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint64" && o !== "int8" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from MLTensor`);\n this.mlTensorData = t.mlTensor, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n default:\n throw new Error(`Tensor constructor: unsupported location \'${this.dataLocation}\'`);\n }\n else {\n let l, m;\n if (typeof t == "string")\n if (o = t, m = u, t === "string") {\n if (!Array.isArray(a))\n throw new TypeError("A string tensor\'s data must be a string array.");\n l = a;\n } else {\n let h = Le.get(t);\n if (h === void 0)\n throw new TypeError(`Unsupported tensor type: ${t}.`);\n if (Array.isArray(a)) {\n if (t === "float16" && h === Uint16Array || t === "uint4" || t === "int4")\n throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${h.name} as data.`);\n t === "uint64" || t === "int64" ? l = h.from(a, BigInt) : l = h.from(a);\n } else if (a instanceof h)\n l = a;\n else if (a instanceof Uint8ClampedArray)\n if (t === "uint8")\n l = Uint8Array.from(a);\n else\n throw new TypeError("A Uint8ClampedArray tensor\'s data must be type of uint8");\n else if (t === "float16" && a instanceof Uint16Array && h !== Uint16Array)\n l = new globalThis.Float16Array(a.buffer, a.byteOffset, a.length);\n else\n throw new TypeError(`A ${o} tensor\'s data must be type of ${h}`);\n }\n else if (m = a, Array.isArray(t)) {\n if (t.length === 0)\n throw new TypeError("Tensor type cannot be inferred from an empty array.");\n let h = typeof t[0];\n if (h === "string")\n o = "string", l = t;\n else if (h === "boolean")\n o = "bool", l = Uint8Array.from(t);\n else\n throw new TypeError(`Invalid element type of data array: ${h}.`);\n } else if (t instanceof Uint8ClampedArray)\n o = "uint8", l = Uint8Array.from(t);\n else {\n let h = Xe.get(t.constructor);\n if (h === void 0)\n throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);\n o = h, l = t;\n }\n if (m === void 0)\n m = [l.length];\n else if (!Array.isArray(m))\n throw new TypeError("A tensor\'s dims must be a number array");\n d = m, this.cpuData = l, this.dataLocation = "cpu";\n }\n let c = Pr(d);\n if (this.cpuData && c !== this.cpuData.length && !((o === "uint4" || o === "int4") && Math.ceil(c / 2) === this.cpuData.length))\n throw new Error(`Tensor\'s size(${c}) does not match data length(${this.cpuData.length}).`);\n this.type = o, this.dims = d, this.size = c;\n }\n static async fromImage(t, a) {\n return Tr(t, a);\n }\n static fromTexture(t, a) {\n return Sr(t, a);\n }\n static fromGpuBuffer(t, a) {\n return vr(t, a);\n }\n static fromMLTensor(t, a) {\n return Or(t, a);\n }\n static fromPinnedBuffer(t, a, u) {\n return Ar(t, a, u);\n }\n toDataURL(t) {\n return yr(this, t);\n }\n toImageData(t) {\n return gr(this, t);\n }\n get data() {\n if (this.ensureValid(), !this.cpuData)\n throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");\n return this.cpuData;\n }\n get location() {\n return this.dataLocation;\n }\n get texture() {\n if (this.ensureValid(), !this.gpuTextureData)\n throw new Error("The data is not stored as a WebGL texture.");\n return this.gpuTextureData;\n }\n get gpuBuffer() {\n if (this.ensureValid(), !this.gpuBufferData)\n throw new Error("The data is not stored as a WebGPU buffer.");\n return this.gpuBufferData;\n }\n get mlTensor() {\n if (this.ensureValid(), !this.mlTensorData)\n throw new Error("The data is not stored as a WebNN MLTensor.");\n return this.mlTensorData;\n }\n async getData(t) {\n switch (this.ensureValid(), this.dataLocation) {\n case "cpu":\n case "cpu-pinned":\n return this.data;\n case "texture":\n case "gpu-buffer":\n case "ml-tensor": {\n if (!this.downloader)\n throw new Error("The current tensor is not created with a specified data downloader.");\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n try {\n this.isDownloading = true;\n let a = await this.downloader();\n return this.downloader = void 0, this.dataLocation = "cpu", this.cpuData = a, t && this.disposer && (this.disposer(), this.disposer = void 0), a;\n } finally {\n this.isDownloading = false;\n }\n }\n default:\n throw new Error(`cannot get data from location: ${this.dataLocation}`);\n }\n }\n dispose() {\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n this.disposer && (this.disposer(), this.disposer = void 0), this.cpuData = void 0, this.gpuTextureData = void 0, this.gpuBufferData = void 0, this.mlTensorData = void 0, this.downloader = void 0, this.isDownloading = void 0, this.dataLocation = "none";\n }\n ensureValid() {\n if (this.dataLocation === "none")\n throw new Error("The tensor is disposed.");\n }\n reshape(t) {\n if (this.ensureValid(), this.downloader || this.disposer)\n throw new Error("Cannot reshape a tensor that owns GPU resource.");\n return Dr(this, t);\n }\n };\n });\n var de;\n var en = N(() => {\n "use strict";\n ct();\n de = Q;\n });\n var xr;\n var Mr;\n var _e;\n var Pe;\n var De;\n var Ue;\n var tn = N(() => {\n "use strict";\n Zt();\n xr = (n, t) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeStamp(`${n}::ORT::${t}`);\n }, Mr = (n, t) => {\n let a = new Error().stack?.split(/\\r\\n|\\r|\\n/g) || [], u = false;\n for (let o = 0; o < a.length; o++) {\n if (u && !a[o].includes("TRACE_FUNC")) {\n let d = `FUNC_${n}::${a[o].trim().split(" ")[1]}`;\n t && (d += `::${t}`), xr("CPU", d);\n return;\n }\n a[o].includes("TRACE_FUNC") && (u = true);\n }\n }, _e = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("BEGIN", n);\n }, Pe = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("END", n);\n }, De = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.time(`ORT::${n}`);\n }, Ue = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeEnd(`ORT::${n}`);\n };\n });\n var lt;\n var Cr = N(() => {\n "use strict";\n Qt();\n en();\n tn();\n lt = class n {\n constructor(t) {\n this.handler = t;\n }\n async run(t, a, u) {\n _e(), De("InferenceSession.run");\n let o = {}, d = {};\n if (typeof t != "object" || t === null || t instanceof de || Array.isArray(t))\n throw new TypeError("\'feeds\' must be an object that use input names as keys and OnnxValue as corresponding values.");\n let c = true;\n if (typeof a == "object") {\n if (a === null)\n throw new TypeError("Unexpected argument[1]: cannot be null.");\n if (a instanceof de)\n throw new TypeError("\'fetches\' cannot be a Tensor");\n if (Array.isArray(a)) {\n if (a.length === 0)\n throw new TypeError("\'fetches\' cannot be an empty array.");\n c = false;\n for (let h of a) {\n if (typeof h != "string")\n throw new TypeError("\'fetches\' must be a string array or an object.");\n if (this.outputNames.indexOf(h) === -1)\n throw new RangeError(`\'fetches\' contains invalid output name: ${h}.`);\n o[h] = null;\n }\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else {\n let h = false, g = Object.getOwnPropertyNames(a);\n for (let b of this.outputNames)\n if (g.indexOf(b) !== -1) {\n let y = a[b];\n (y === null || y instanceof de) && (h = true, c = false, o[b] = y);\n }\n if (h) {\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else\n d = a;\n }\n } else if (typeof a < "u")\n throw new TypeError("Unexpected argument[1]: must be \'fetches\' or \'options\'.");\n for (let h of this.inputNames)\n if (typeof t[h] > "u")\n throw new Error(`input \'${h}\' is missing in \'feeds\'.`);\n if (c)\n for (let h of this.outputNames)\n o[h] = null;\n let l = await this.handler.run(t, o, d), m = {};\n for (let h in l)\n if (Object.hasOwnProperty.call(l, h)) {\n let g = l[h];\n g instanceof de ? m[h] = g : m[h] = new de(g.type, g.data, g.dims);\n }\n return Ue("InferenceSession.run"), Pe(), m;\n }\n async release() {\n return this.handler.dispose();\n }\n static async create(t, a, u, o) {\n _e(), De("InferenceSession.create");\n let d, c = {};\n if (typeof t == "string") {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof Uint8Array) {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof ArrayBuffer || typeof SharedArrayBuffer < "u" && t instanceof SharedArrayBuffer) {\n let g = t, b = 0, y = t.byteLength;\n if (typeof a == "object" && a !== null)\n c = a;\n else if (typeof a == "number") {\n if (b = a, !Number.isSafeInteger(b))\n throw new RangeError("\'byteOffset\' must be an integer.");\n if (b < 0 || b >= g.byteLength)\n throw new RangeError(`\'byteOffset\' is out of range [0, ${g.byteLength}).`);\n if (y = t.byteLength - b, typeof u == "number") {\n if (y = u, !Number.isSafeInteger(y))\n throw new RangeError("\'byteLength\' must be an integer.");\n if (y <= 0 || b + y > g.byteLength)\n throw new RangeError(`\'byteLength\' is out of range (0, ${g.byteLength - b}].`);\n if (typeof o == "object" && o !== null)\n c = o;\n else if (typeof o < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (typeof u < "u")\n throw new TypeError("\'byteLength\' must be a number.");\n } else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n d = new Uint8Array(g, b, y);\n } else\n throw new TypeError("Unexpected argument[0]: must be \'path\' or \'buffer\'.");\n let [l, m] = await dr(c), h = await l.createInferenceSessionHandler(d, m);\n return Ue("InferenceSession.create"), Pe(), new n(h);\n }\n startProfiling() {\n this.handler.startProfiling();\n }\n endProfiling() {\n this.handler.endProfiling();\n }\n get inputNames() {\n return this.handler.inputNames;\n }\n get outputNames() {\n return this.handler.outputNames;\n }\n get inputMetadata() {\n return this.handler.inputMetadata;\n }\n get outputMetadata() {\n return this.handler.outputMetadata;\n }\n };\n });\n var ts;\n var Rr = N(() => {\n "use strict";\n Cr();\n ts = lt;\n });\n var Fr = N(() => {\n "use strict";\n });\n var Nr = N(() => {\n "use strict";\n });\n var kr = N(() => {\n "use strict";\n });\n var Wr = N(() => {\n "use strict";\n });\n var nn = {};\n ut(nn, { InferenceSession: () => ts, TRACE: () => xr, TRACE_EVENT_BEGIN: () => De, TRACE_EVENT_END: () => Ue, TRACE_FUNC_BEGIN: () => _e, TRACE_FUNC_END: () => Pe, Tensor: () => de, env: () => Y, registerBackend: () => qe });\n var Te = N(() => {\n "use strict";\n pr();\n br();\n Rr();\n en();\n Fr();\n Nr();\n tn();\n kr();\n Wr();\n });\n var dt = N(() => {\n "use strict";\n });\n var Hr = {};\n ut(Hr, { default: () => ns });\n var $r;\n var zr;\n var ns;\n var jr = N(() => {\n "use strict";\n rn();\n xe();\n pt();\n $r = "ort-wasm-proxy-worker", zr = globalThis.self?.name === $r;\n zr && (self.onmessage = (n) => {\n let { type: t, in: a } = n.data;\n try {\n switch (t) {\n case "init-wasm":\n mt(a.wasm).then(() => {\n ht(a).then(() => {\n postMessage({ type: t });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n break;\n case "init-ep": {\n let { epName: u, env: o } = a;\n wt(o, u).then(() => {\n postMessage({ type: t });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "copy-from": {\n let { buffer: u } = a, o = Qe(u);\n postMessage({ type: t, out: o });\n break;\n }\n case "create": {\n let { model: u, options: o } = a;\n bt(u, o).then((d) => {\n postMessage({ type: t, out: d });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "release":\n yt(a), postMessage({ type: t });\n break;\n case "run": {\n let { sessionId: u, inputIndices: o, inputs: d, outputIndices: c, options: l } = a;\n gt(u, o, d, c, new Array(c.length).fill(null), l).then((m) => {\n m.some((h) => h[3] !== "cpu") ? postMessage({ type: t, err: "Proxy does not support non-cpu tensor location." }) : postMessage({ type: t, out: m }, Tt([...d, ...m]));\n }, (m) => {\n postMessage({ type: t, err: m });\n });\n break;\n }\n case "end-profiling":\n Et(a), postMessage({ type: t });\n break;\n default:\n }\n } catch (u) {\n postMessage({ type: t, err: u });\n }\n });\n ns = zr ? null : (n) => new Worker(n ?? oe, { type: "module", name: $r });\n });\n var Yr = {};\n ut(Yr, { default: () => rs });\n async function Vr(n = {}) {\n var t = n, a = !!globalThis.window, u = !!globalThis.WorkerGlobalScope, o = u && self.name?.startsWith("em-pthread");\n t.mountExternalData = (e, r) => {\n e.startsWith("./") && (e = e.substring(2)), (t.Rb || (t.Rb = /* @__PURE__ */ new Map())).set(e, r);\n }, t.unmountExternalData = () => {\n delete t.Rb;\n }, globalThis.SharedArrayBuffer ?? new WebAssembly.Memory({ initial: 0, maximum: 0, shared: true }).buffer.constructor;\n var d, c, l = (e, r) => {\n throw r;\n }, m = import_meta.url, h = "";\n if (a || u) {\n try {\n h = new URL(".", m).href;\n } catch {\n }\n u && (c = (e) => {\n var r = new XMLHttpRequest();\n return r.open("GET", e, false), r.responseType = "arraybuffer", r.send(null), new Uint8Array(r.response);\n }), d = async (e) => {\n if (k(e))\n return new Promise((i, s) => {\n var f = new XMLHttpRequest();\n f.open("GET", e, true), f.responseType = "arraybuffer", f.onload = () => {\n f.status == 200 || f.status == 0 && f.response ? i(f.response) : s(f.status);\n }, f.onerror = s, f.send(null);\n });\n var r = await fetch(e, { credentials: "same-origin" });\n if (r.ok)\n return r.arrayBuffer();\n throw Error(r.status + " : " + r.url);\n };\n }\n var g, b, y, T, I, D, z = console.log.bind(console), v = console.error.bind(console), O = z, F = v, _ = false, k = (e) => e.startsWith("file://");\n function w() {\n ge.buffer != j.buffer && ee();\n }\n if (o) {\n let e = function(r) {\n try {\n var i = r.data, s = i.Pb;\n if (s === "load") {\n let f = [];\n self.onmessage = (p) => f.push(p), D = () => {\n postMessage({ Pb: "loaded" });\n for (let p of f)\n e(p);\n self.onmessage = e;\n };\n for (let p of i.Zb)\n t[p] && !t[p].proxy || (t[p] = (...E) => {\n postMessage({ Pb: "callHandler", Yb: p, args: E });\n }, p == "print" && (O = t[p]), p == "printErr" && (F = t[p]));\n ge = i.dc, ee(), b = i.ec, Ut(), it();\n } else if (s === "run") {\n (function(f) {\n var p = (w(), W)[f + 52 >>> 2 >>> 0];\n f = (w(), W)[f + 56 >>> 2 >>> 0], sr(p, p - f), P(p);\n })(i.Ob), zt(i.Ob, 0, 0, 1, 0, 0), wn(), Ft(i.Ob), Z || (Z = true);\n try {\n Ao(i.bc, i.Tb);\n } catch (f) {\n if (f != "unwind")\n throw f;\n }\n } else\n i.target !== "setimmediate" && (s === "checkMailbox" ? Z && rt() : s && (F(`worker: received unknown command ${s}`), F(i)));\n } catch (f) {\n throw tr(), f;\n }\n };\n var Ss = e, Z = false;\n self.onunhandledrejection = (r) => {\n throw r.reason || r;\n }, self.onmessage = e;\n }\n var j, ne, pe, B, W, re, me, A, K, je = false;\n function ee() {\n var e = ge.buffer;\n t.HEAP8 = j = new Int8Array(e), pe = new Int16Array(e), t.HEAPU8 = ne = new Uint8Array(e), new Uint16Array(e), t.HEAP32 = B = new Int32Array(e), t.HEAPU32 = W = new Uint32Array(e), re = new Float32Array(e), me = new Float64Array(e), A = new BigInt64Array(e), new BigUint64Array(e);\n }\n function he() {\n je = true, o ? D() : Ee.Ta();\n }\n function H(e) {\n throw F(e = "Aborted(" + e + ")"), _ = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), I?.(e), e;\n }\n function q() {\n return { a: { R: fa, f: Io, w: Bo, e: Lo, k: _o, g: Po, S: Do, b: Uo, G: xo, ta: vn, j: Mo, L: In, Ja: Bn, pa: Ln, ra: _n, Ka: Pn, Ha: Dn, Aa: Un, Ga: xn, Y: Mn, qa: Cn, na: Rn, Ia: Fn, oa: Nn, Pa: Co, Da: Ro, la: No, ua: ko, ia: Wo, T: Go, Ca: Ft, Ma: $o, xa: zo, ya: Ho, za: jo, va: $n, wa: zn, ja: Hn, Ra: Yo, Oa: Xo, V: Qo, U: Zo, Na: Jo, F: Ko, La: ea, ma: ta, u: Vo, H: na, Q: at, ka: oa, aa: ra, Sa: aa, Ea: Yn, Fa: Jn, sa: ye, I: qn, X: Xn, Ba: Qn, W: Zn, _: ja, M: Wa, $: Ha, N: ka, v: Pa, c: pa, m: la, n: ca, q: va, ba: Ra, x: Ba, o: wa, O: Fa, D: Ga, J: Ca, ca: Ma, da: xa, A: Oa, P: Ua, ea: Da, z: La, E: Na, d: da, r: ha, i: ma, Z: Va, l: ya, p: ga, s: ba, t: Ea, y: Aa, fa: _a, B: $a, K: Ia, C: za, ga: Sa, ha: Ta, h: ia, a: ge, Qa: V } };\n }\n async function Ut() {\n function e(s, f) {\n return Ee = s.exports, Ee = function() {\n var p = Ee, E = (x) => () => x() >>> 0, S = (x) => (R) => x(R) >>> 0;\n return (p = Object.assign({}, p)).sb = E(p.sb), p.ub = S(p.ub), p.Ib = S(p.Ib), p.Jb = E(p.Jb), p.Nb = S(p.Nb), p;\n }(), mn.push(Ee.vb), s = Ee, t._OrtInit = s.Ua, t._OrtGetLastError = s.Va, t._OrtCreateSessionOptions = s.Wa, t._OrtAppendExecutionProvider = s.Xa, t._OrtAddFreeDimensionOverride = s.Ya, t._OrtAddSessionConfigEntry = s.Za, t._OrtReleaseSessionOptions = s._a, t._OrtCreateSession = s.$a, t._OrtReleaseSession = s.ab, t._OrtGetInputOutputCount = s.bb, t._OrtGetInputOutputMetadata = s.cb, t._OrtFree = s.db, t._OrtCreateTensor = s.eb, t._OrtGetTensorData = s.fb, t._OrtReleaseTensor = s.gb, t._OrtCreateRunOptions = s.hb, t._OrtAddRunConfigEntry = s.ib, t._OrtReleaseRunOptions = s.jb, t._OrtCreateBinding = s.kb, t._OrtBindInput = s.lb, t._OrtBindOutput = s.mb, t._OrtClearBoundOutputs = s.nb, t._OrtReleaseBinding = s.ob, t._OrtRunWithBinding = s.pb, t._OrtRun = s.qb, t._OrtEndProfiling = s.rb, st = s.sb, Kn = t._free = s.tb, er = t._malloc = s.ub, zt = s.xb, tr = s.yb, nr = s.zb, rr = s.Ab, Ht = s.Bb, or = s.Cb, ar = s.Db, M = s.Eb, Je = s.Fb, sr = s.Gb, P = s.Hb, jt = s.Ib, U = s.Jb, ir = s.Kb, Vt = s.Lb, ur = s.Mb, fr = s.Nb, cr = s.wb, b = f, Ee;\n }\n var r, i = q();\n return t.instantiateWasm ? new Promise((s) => {\n t.instantiateWasm(i, (f, p) => {\n s(e(f, p));\n });\n }) : o ? e(new WebAssembly.Instance(b, q()), b) : (K ?? (K = t.locateFile ? t.locateFile ? t.locateFile("ort-wasm-simd-threaded.wasm", h) : h + "ort-wasm-simd-threaded.wasm" : new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href), r = await async function(s) {\n var f = K;\n if (!g && !k(f))\n try {\n var p = fetch(f, { credentials: "same-origin" });\n return await WebAssembly.instantiateStreaming(p, s);\n } catch (E) {\n F(`wasm streaming compile failed: ${E}`), F("falling back to ArrayBuffer instantiation");\n }\n return async function(E, S) {\n try {\n var x = await async function(R) {\n if (!g)\n try {\n var X = await d(R);\n return new Uint8Array(X);\n } catch {\n }\n if (R == K && g)\n R = new Uint8Array(g);\n else {\n if (!c)\n throw "both async and sync fetching of the wasm failed";\n R = c(R);\n }\n return R;\n }(E);\n return await WebAssembly.instantiate(x, S);\n } catch (R) {\n F(`failed to asynchronously prepare wasm: ${R}`), H(R);\n }\n }(f, s);\n }(i), e(r.instance, r.module));\n }\n class Se {\n constructor(r) {\n __publicField(this, "name", "ExitStatus");\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var ve = (e) => {\n e.terminate(), e.onmessage = () => {\n };\n }, Ve = [], Re = 0, te = null, ue = (e) => {\n ce.length == 0 && (yn(), bn(ce[0]));\n var r = ce.pop();\n if (!r)\n return 6;\n Fe.push(r), Oe[e.Ob] = r, r.Ob = e.Ob;\n var i = { Pb: "run", bc: e.ac, Tb: e.Tb, Ob: e.Ob };\n return r.postMessage(i, e.Xb), 0;\n }, se = 0, L = (e, r, ...i) => {\n var s, f = 16 * i.length, p = U(), E = jt(f), S = E >>> 3;\n for (s of i)\n typeof s == "bigint" ? ((w(), A)[S++ >>> 0] = 1n, (w(), A)[S++ >>> 0] = s) : ((w(), A)[S++ >>> 0] = 0n, (w(), me)[S++ >>> 0] = s);\n return e = nr(e, 0, f, E, r), P(p), e;\n };\n function V(e) {\n if (o)\n return L(0, 1, e);\n if (y = e, !(0 < se)) {\n for (var r of Fe)\n ve(r);\n for (r of ce)\n ve(r);\n ce = [], Fe = [], Oe = {}, _ = true;\n }\n l(0, new Se(e));\n }\n function fe(e) {\n if (o)\n return L(1, 0, e);\n ye(e);\n }\n var ye = (e) => {\n if (y = e, o)\n throw fe(e), "unwind";\n V(e);\n }, ce = [], Fe = [], mn = [], Oe = {}, hn = (e) => {\n var r = e.Ob;\n delete Oe[r], ce.push(e), Fe.splice(Fe.indexOf(e), 1), e.Ob = 0, rr(r);\n };\n function wn() {\n mn.forEach((e) => e());\n }\n var bn = (e) => new Promise((r) => {\n e.onmessage = (f) => {\n var p = f.data;\n if (f = p.Pb, p.Sb && p.Sb != st()) {\n var E = Oe[p.Sb];\n E ? E.postMessage(p, p.Xb) : F(`Internal error! Worker sent a message "${f}" to target pthread ${p.Sb}, but that thread no longer exists!`);\n } else\n f === "checkMailbox" ? rt() : f === "spawnThread" ? ue(p) : f === "cleanupThread" ? Rt(() => {\n hn(Oe[p.cc]);\n }) : f === "loaded" ? (e.loaded = true, r(e)) : p.target === "setimmediate" ? e.postMessage(p) : f === "uncaughtException" ? e.onerror(p.error) : f === "callHandler" ? t[p.Yb](...p.args) : f && F(`worker sent an unknown command ${f}`);\n }, e.onerror = (f) => {\n throw F(`worker sent an error! ${f.filename}:${f.lineno}: ${f.message}`), f;\n };\n var i, s = [];\n for (i of [])\n t.propertyIsEnumerable(i) && s.push(i);\n e.postMessage({ Pb: "load", Zb: s, dc: ge, ec: b });\n });\n function yn() {\n var e = new Worker((() => {\n let r = URL;\n return import_meta.url > "file:" && import_meta.url < "file;" ? new r("ort.wasm.bundle.min.mjs", import_meta.url) : new URL(import_meta.url);\n })(), { type: "module", workerData: "em-pthread", name: "em-pthread" });\n ce.push(e);\n }\n var ge, gn = [], C = (e) => {\n var r = gn[e];\n return r || (gn[e] = r = cr.get(e)), r;\n }, Ao = (e, r) => {\n se = 0, e = C(e)(r), 0 < se ? y = e : Ht(e);\n }, tt = [], nt = 0;\n function Io(e) {\n var r = new xt(e >>>= 0);\n return (w(), j)[r.Qb + 12 >>> 0] == 0 && (En(r, true), nt--), Tn(r, false), tt.push(r), fr(e);\n }\n var Ne = 0, Bo = () => {\n M(0, 0);\n var e = tt.pop();\n ir(e.Ub), Ne = 0;\n };\n function En(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 12 >>> 0] = r;\n }\n function Tn(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 13 >>> 0] = r;\n }\n class xt {\n constructor(r) {\n this.Ub = r, this.Qb = r - 24;\n }\n }\n var Mt = (e) => {\n var r = Ne;\n if (!r)\n return Je(0), 0;\n var i = new xt(r);\n (w(), W)[i.Qb + 16 >>> 2 >>> 0] = r;\n var s = (w(), W)[i.Qb + 4 >>> 2 >>> 0];\n if (!s)\n return Je(0), r;\n for (var f of e) {\n if (f === 0 || f === s)\n break;\n if (ur(f, s, i.Qb + 16))\n return Je(f), r;\n }\n return Je(s), r;\n };\n function Lo() {\n return Mt([]);\n }\n function _o(e) {\n return Mt([e >>> 0]);\n }\n function Po(e, r, i, s) {\n return Mt([e >>> 0, r >>> 0, i >>> 0, s >>> 0]);\n }\n var Do = () => {\n var e = tt.pop();\n e || H("no exception to throw");\n var r = e.Ub;\n throw (w(), j)[e.Qb + 13 >>> 0] == 0 && (tt.push(e), Tn(e, true), En(e, false), nt++), Vt(r), Ne = r;\n };\n function Uo(e, r, i) {\n var s = new xt(e >>>= 0);\n throw r >>>= 0, i >>>= 0, (w(), W)[s.Qb + 16 >>> 2 >>> 0] = 0, (w(), W)[s.Qb + 4 >>> 2 >>> 0] = r, (w(), W)[s.Qb + 8 >>> 2 >>> 0] = i, Vt(e), nt++, Ne = e;\n }\n var xo = () => nt;\n function Sn(e, r, i, s) {\n return o ? L(2, 1, e, r, i, s) : vn(e, r, i, s);\n }\n function vn(e, r, i, s) {\n if (e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0, !globalThis.SharedArrayBuffer)\n return 6;\n var f = [];\n return o && f.length === 0 ? Sn(e, r, i, s) : (e = { ac: i, Ob: e, Tb: s, Xb: f }, o ? (e.Pb = "spawnThread", postMessage(e, f), 0) : ue(e));\n }\n function Mo(e) {\n throw Ne || (Ne = e >>> 0), Ne;\n }\n var On = globalThis.TextDecoder && new TextDecoder(), An = (e, r = 0, i, s) => {\n var f = r >>>= 0;\n if (i = f + i, s)\n s = i;\n else {\n for (; e[f] && !(f >= i); )\n ++f;\n s = f;\n }\n if (16 < s - r && e.buffer && On)\n return On.decode(e.buffer instanceof ArrayBuffer ? e.subarray(r, s) : e.slice(r, s));\n for (f = ""; r < s; )\n if (128 & (i = e[r++])) {\n var p = 63 & e[r++];\n if ((224 & i) == 192)\n f += String.fromCharCode((31 & i) << 6 | p);\n else {\n var E = 63 & e[r++];\n 65536 > (i = (240 & i) == 224 ? (15 & i) << 12 | p << 6 | E : (7 & i) << 18 | p << 12 | E << 6 | 63 & e[r++]) ? f += String.fromCharCode(i) : (i -= 65536, f += String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i));\n }\n } else\n f += String.fromCharCode(i);\n return f;\n }, Ct = (e, r, i) => (e >>>= 0) ? An((w(), ne), e, r, i) : "";\n function In(e, r, i) {\n return o ? L(3, 1, e, r, i) : 0;\n }\n function Bn(e, r) {\n if (o)\n return L(4, 1, e, r);\n }\n function Ln(e, r) {\n if (o)\n return L(5, 1, e, r);\n }\n function _n(e, r, i) {\n if (o)\n return L(6, 1, e, r, i);\n }\n function Pn(e, r, i) {\n return o ? L(7, 1, e, r, i) : 0;\n }\n function Dn(e, r) {\n if (o)\n return L(8, 1, e, r);\n }\n function Un(e, r, i) {\n if (o)\n return L(9, 1, e, r, i);\n }\n function xn(e, r, i, s) {\n if (o)\n return L(10, 1, e, r, i, s);\n }\n function Mn(e, r, i, s) {\n if (o)\n return L(11, 1, e, r, i, s);\n }\n function Cn(e, r, i, s) {\n if (o)\n return L(12, 1, e, r, i, s);\n }\n function Rn(e) {\n if (o)\n return L(13, 1, e);\n }\n function Fn(e, r) {\n if (o)\n return L(14, 1, e, r);\n }\n function Nn(e, r, i) {\n if (o)\n return L(15, 1, e, r, i);\n }\n var Co = () => H("");\n function Ro(e) {\n zt(e >>> 0, !u, 1, !a, 131072, false), wn();\n }\n var Rt = (e) => {\n if (!_)\n try {\n if (e(), !(0 < se))\n try {\n o ? st() && Ht(y) : ye(y);\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n }, Fo = !Atomics.waitAsync || globalThis.navigator?.userAgent && 91 > Number((navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./) || [])[2]);\n function Ft(e) {\n e >>>= 0, Fo || (Atomics.waitAsync((w(), B), e >>> 2, e).value.then(rt), e += 128, Atomics.store((w(), B), e >>> 2, 1));\n }\n var rt = () => Rt(() => {\n var e = st();\n e && (Ft(e), ar());\n });\n function No(e, r) {\n (e >>>= 0) == r >>> 0 ? setTimeout(rt) : o ? postMessage({ Sb: e, Pb: "checkMailbox" }) : (e = Oe[e]) && e.postMessage({ Pb: "checkMailbox" });\n }\n var Nt = [];\n function ko(e, r, i, s, f) {\n for (r >>>= 0, f >>>= 0, Nt.length = 0, i = f >>> 3, s = f + s >>> 3; i < s; ) {\n var p;\n p = (w(), A)[i++ >>> 0] ? (w(), A)[i++ >>> 0] : (w(), me)[i++ >>> 0], Nt.push(p);\n }\n return (r ? lr[r] : ua[e])(...Nt);\n }\n var Wo = () => {\n se = 0;\n };\n function Go(e) {\n e >>>= 0, o ? postMessage({ Pb: "cleanupThread", cc: e }) : hn(Oe[e]);\n }\n function $o(e) {\n }\n function zo(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getUTCSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getUTCMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getUTCHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getUTCDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getUTCMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getUTCFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getUTCDay(), e = (e.getTime() - Date.UTC(e.getUTCFullYear(), 0, 1, 0, 0, 0, 0)) / 864e5 | 0, (w(), B)[r + 28 >>> 2 >>> 0] = e;\n }\n var kn = (e) => e % 4 == 0 && (e % 100 != 0 || e % 400 == 0), Wn = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335], Gn = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n function Ho(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getDay();\n var i = (kn(e.getFullYear()) ? Wn : Gn)[e.getMonth()] + e.getDate() - 1 | 0;\n (w(), B)[r + 28 >>> 2 >>> 0] = i, (w(), B)[r + 36 >>> 2 >>> 0] = -60 * e.getTimezoneOffset(), i = new Date(e.getFullYear(), 6, 1).getTimezoneOffset();\n var s = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n e = 0 | (i != s && e.getTimezoneOffset() == Math.min(s, i)), (w(), B)[r + 32 >>> 2 >>> 0] = e;\n }\n function jo(e) {\n e >>>= 0;\n var r = new Date((w(), B)[e + 20 >>> 2 >>> 0] + 1900, (w(), B)[e + 16 >>> 2 >>> 0], (w(), B)[e + 12 >>> 2 >>> 0], (w(), B)[e + 8 >>> 2 >>> 0], (w(), B)[e + 4 >>> 2 >>> 0], (w(), B)[e >>> 2 >>> 0], 0), i = (w(), B)[e + 32 >>> 2 >>> 0], s = r.getTimezoneOffset(), f = new Date(r.getFullYear(), 6, 1).getTimezoneOffset(), p = new Date(r.getFullYear(), 0, 1).getTimezoneOffset(), E = Math.min(p, f);\n return 0 > i ? (w(), B)[e + 32 >>> 2 >>> 0] = +(f != p && E == s) : 0 < i != (E == s) && (f = Math.max(p, f), r.setTime(r.getTime() + 6e4 * ((0 < i ? E : f) - s))), (w(), B)[e + 24 >>> 2 >>> 0] = r.getDay(), i = (kn(r.getFullYear()) ? Wn : Gn)[r.getMonth()] + r.getDate() - 1 | 0, (w(), B)[e + 28 >>> 2 >>> 0] = i, (w(), B)[e >>> 2 >>> 0] = r.getSeconds(), (w(), B)[e + 4 >>> 2 >>> 0] = r.getMinutes(), (w(), B)[e + 8 >>> 2 >>> 0] = r.getHours(), (w(), B)[e + 12 >>> 2 >>> 0] = r.getDate(), (w(), B)[e + 16 >>> 2 >>> 0] = r.getMonth(), (w(), B)[e + 20 >>> 2 >>> 0] = r.getYear(), e = r.getTime(), BigInt(isNaN(e) ? -1 : e / 1e3);\n }\n function $n(e, r, i, s, f, p, E) {\n return o ? L(16, 1, e, r, i, s, f, p, E) : -52;\n }\n function zn(e, r, i, s, f, p) {\n if (o)\n return L(17, 1, e, r, i, s, f, p);\n }\n var Ye = {}, Vo = () => performance.timeOrigin + performance.now();\n function Hn(e, r) {\n if (o)\n return L(18, 1, e, r);\n if (Ye[e] && (clearTimeout(Ye[e].id), delete Ye[e]), !r)\n return 0;\n var i = setTimeout(() => {\n delete Ye[e], Rt(() => or(e, performance.timeOrigin + performance.now()));\n }, r);\n return Ye[e] = { id: i, jc: r }, 0;\n }\n var Ae = (e, r, i) => {\n var s = (w(), ne);\n if (r >>>= 0, 0 < i) {\n var f = r;\n i = r + i - 1;\n for (var p = 0; p < e.length; ++p) {\n var E = e.codePointAt(p);\n if (127 >= E) {\n if (r >= i)\n break;\n s[r++ >>> 0] = E;\n } else if (2047 >= E) {\n if (r + 1 >= i)\n break;\n s[r++ >>> 0] = 192 | E >> 6, s[r++ >>> 0] = 128 | 63 & E;\n } else if (65535 >= E) {\n if (r + 2 >= i)\n break;\n s[r++ >>> 0] = 224 | E >> 12, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E;\n } else {\n if (r + 3 >= i)\n break;\n s[r++ >>> 0] = 240 | E >> 18, s[r++ >>> 0] = 128 | E >> 12 & 63, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E, p++;\n }\n }\n s[r >>> 0] = 0, e = r - f;\n } else\n e = 0;\n return e;\n };\n function Yo(e, r, i, s) {\n e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0;\n var f = (/* @__PURE__ */ new Date()).getFullYear(), p = new Date(f, 0, 1).getTimezoneOffset();\n f = new Date(f, 6, 1).getTimezoneOffset();\n var E = Math.max(p, f);\n (w(), W)[e >>> 2 >>> 0] = 60 * E, (w(), B)[r >>> 2 >>> 0] = +(p != f), e = (r = (S) => {\n var x = Math.abs(S);\n return `UTC${0 <= S ? "-" : "+"}${String(Math.floor(x / 60)).padStart(2, "0")}${String(x % 60).padStart(2, "0")}`;\n })(p), r = r(f), f < p ? (Ae(e, i, 17), Ae(r, s, 17)) : (Ae(e, s, 17), Ae(r, i, 17));\n }\n var Jo = () => Date.now(), qo = 1;\n function Xo(e, r, i) {\n if (i >>>= 0, !(0 <= e && 3 >= e))\n return 28;\n if (e === 0)\n e = Date.now();\n else {\n if (!qo)\n return 52;\n e = performance.timeOrigin + performance.now();\n }\n return e = Math.round(1e6 * e), (w(), A)[i >>> 3 >>> 0] = BigInt(e), 0;\n }\n var kt = [];\n function Qo(e, r, i) {\n e >>>= 0, r >>>= 0, i >>>= 0, kt.length = 0;\n for (var s; s = (w(), ne)[r++ >>> 0]; ) {\n var f = s != 105;\n i += (f &= s != 112) && i % 8 ? 4 : 0, kt.push(s == 112 ? (w(), W)[i >>> 2 >>> 0] : s == 106 ? (w(), A)[i >>> 3 >>> 0] : s == 105 ? (w(), B)[i >>> 2 >>> 0] : (w(), me)[i >>> 3 >>> 0]), i += f ? 8 : 4;\n }\n return lr[e](...kt);\n }\n var Zo = () => {\n };\n function Ko(e, r) {\n return F(Ct(e >>> 0, r >>> 0));\n }\n var ea = () => {\n throw se += 1, "unwind";\n };\n function ta() {\n return 4294901760;\n }\n var na = () => navigator.hardwareConcurrency, Ie = {}, Wt = (e) => {\n for (var r = 0, i = 0; i < e.length; ++i) {\n var s = e.charCodeAt(i);\n 127 >= s ? r++ : 2047 >= s ? r += 2 : 55296 <= s && 57343 >= s ? (r += 4, ++i) : r += 3;\n }\n return r;\n }, ot = (e) => {\n var r;\n return (r = /\\bwasm-function\\[\\d+\\]:(0x[0-9a-f]+)/.exec(e)) ? +r[1] : (r = /:(\\d+):\\d+(?:\\)|$)/.exec(e)) ? 2147483648 | +r[1] : 0;\n }, jn = (e) => {\n for (var r of e)\n (e = ot(r)) && (Ie[e] = r);\n };\n function ra() {\n var e = Error().stack.toString().split(`\n`);\n return e[0] == "Error" && e.shift(), jn(e), Ie.Vb = ot(e[3]), Ie.$b = e, Ie.Vb;\n }\n function at(e) {\n if (!(e = Ie[e >>> 0]))\n return 0;\n var r;\n if (r = /^\\s+at .*\\.wasm\\.(.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else if (r = /^\\s+at (.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else {\n if (!(r = /^(.+?)@/.exec(e)))\n return 0;\n e = r[1];\n }\n Kn(at.Wb ?? 0), r = Wt(e) + 1;\n var i = er(r);\n return i && Ae(e, i, r), at.Wb = i, at.Wb;\n }\n function oa(e) {\n e >>>= 0;\n var r = (w(), ne).length;\n if (e <= r || 4294901760 < e)\n return false;\n for (var i = 1; 4 >= i; i *= 2) {\n var s = r * (1 + 0.2 / i);\n s = Math.min(s, e + 100663296);\n e: {\n s = (Math.min(4294901760, 65536 * Math.ceil(Math.max(e, s) / 65536)) - ge.buffer.byteLength + 65535) / 65536 | 0;\n try {\n ge.grow(s), ee();\n var f = 1;\n break e;\n } catch {\n }\n f = void 0;\n }\n if (f)\n return true;\n }\n return false;\n }\n function aa(e, r, i) {\n if (e >>>= 0, r >>>= 0, Ie.Vb == e)\n var s = Ie.$b;\n else\n (s = Error().stack.toString().split(`\n`))[0] == "Error" && s.shift(), jn(s);\n for (var f = 3; s[f] && ot(s[f]) != e; )\n ++f;\n for (e = 0; e < i && s[e + f]; ++e)\n (w(), B)[r + 4 * e >>> 2 >>> 0] = ot(s[e + f]);\n return e;\n }\n var Gt, $t = {}, Vn = () => {\n if (!Gt) {\n var e, r = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8", _: "./this.program" };\n for (e in $t)\n $t[e] === void 0 ? delete r[e] : r[e] = $t[e];\n var i = [];\n for (e in r)\n i.push(`${e}=${r[e]}`);\n Gt = i;\n }\n return Gt;\n };\n function Yn(e, r) {\n if (o)\n return L(19, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i, s = 0, f = 0;\n for (i of Vn()) {\n var p = r + s;\n (w(), W)[e + f >>> 2 >>> 0] = p, s += Ae(i, p, 1 / 0) + 1, f += 4;\n }\n return 0;\n }\n function Jn(e, r) {\n if (o)\n return L(20, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i = Vn();\n for (var s of ((w(), W)[e >>> 2 >>> 0] = i.length, e = 0, i))\n e += Wt(s) + 1;\n return (w(), W)[r >>> 2 >>> 0] = e, 0;\n }\n function qn(e) {\n return o ? L(21, 1, e) : 52;\n }\n function Xn(e, r, i, s) {\n return o ? L(22, 1, e, r, i, s) : 52;\n }\n function Qn(e, r, i, s) {\n return o ? L(23, 1, e, r, i, s) : 70;\n }\n var sa = [null, [], []];\n function Zn(e, r, i, s) {\n if (o)\n return L(24, 1, e, r, i, s);\n r >>>= 0, i >>>= 0, s >>>= 0;\n for (var f = 0, p = 0; p < i; p++) {\n var E = (w(), W)[r >>> 2 >>> 0], S = (w(), W)[r + 4 >>> 2 >>> 0];\n r += 8;\n for (var x = 0; x < S; x++) {\n var R = e, X = (w(), ne)[E + x >>> 0], le = sa[R];\n X === 0 || X === 10 ? ((R === 1 ? O : F)(An(le)), le.length = 0) : le.push(X);\n }\n f += S;\n }\n return (w(), W)[s >>> 2 >>> 0] = f, 0;\n }\n function ia(e) {\n return e >>> 0;\n }\n o || function() {\n for (var e = t.numThreads - 1; e--; )\n yn();\n Ve.push(async () => {\n var r = async function() {\n if (!o)\n return Promise.all(ce.map(bn));\n }();\n Re++, await r, --Re == 0 && te && (r = te, te = null, r());\n });\n }(), o || (ge = new WebAssembly.Memory({ initial: 256, maximum: 65536, shared: true }), ee()), t.wasmBinary && (g = t.wasmBinary), t.stackSave = () => U(), t.stackRestore = (e) => P(e), t.stackAlloc = (e) => jt(e), t.setValue = function(e, r, i = "i8") {\n switch (i.endsWith("*") && (i = "*"), i) {\n case "i1":\n case "i8":\n (w(), j)[e >>> 0] = r;\n break;\n case "i16":\n (w(), pe)[e >>> 1 >>> 0] = r;\n break;\n case "i32":\n (w(), B)[e >>> 2 >>> 0] = r;\n break;\n case "i64":\n (w(), A)[e >>> 3 >>> 0] = BigInt(r);\n break;\n case "float":\n (w(), re)[e >>> 2 >>> 0] = r;\n break;\n case "double":\n (w(), me)[e >>> 3 >>> 0] = r;\n break;\n case "*":\n (w(), W)[e >>> 2 >>> 0] = r;\n break;\n default:\n H(`invalid type for setValue: ${i}`);\n }\n }, t.getValue = function(e, r = "i8") {\n switch (r.endsWith("*") && (r = "*"), r) {\n case "i1":\n case "i8":\n return (w(), j)[e >>> 0];\n case "i16":\n return (w(), pe)[e >>> 1 >>> 0];\n case "i32":\n return (w(), B)[e >>> 2 >>> 0];\n case "i64":\n return (w(), A)[e >>> 3 >>> 0];\n case "float":\n return (w(), re)[e >>> 2 >>> 0];\n case "double":\n return (w(), me)[e >>> 3 >>> 0];\n case "*":\n return (w(), W)[e >>> 2 >>> 0];\n default:\n H(`invalid type for getValue: ${r}`);\n }\n }, t.UTF8ToString = Ct, t.stringToUTF8 = Ae, t.lengthBytesUTF8 = Wt;\n var st, Kn, er, zt, tr, nr, rr, Ht, or, ar, M, Je, sr, P, jt, U, ir, Vt, ur, fr, cr, Ee, ua = [V, fe, Sn, In, Bn, Ln, _n, Pn, Dn, Un, xn, Mn, Cn, Rn, Fn, Nn, $n, zn, Hn, Yn, Jn, qn, Xn, Qn, Zn], lr = { 930988: (e, r, i, s, f) => {\n if (t === void 0 || !t.Rb)\n return 1;\n if ((e = Ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = t.Rb.get(e)))\n return 2;\n if (r = Number(r >>> 0), i = Number(i >>> 0), s = Number(s >>> 0), r + i > e.byteLength)\n return 3;\n try {\n let p = e.subarray(r, r + i);\n switch (f) {\n case 0:\n (w(), ne).set(p, s >>> 0);\n break;\n case 1:\n t.fc ? t.fc(s, p) : t.ic(s, p);\n break;\n default:\n return 4;\n }\n return 0;\n } catch {\n return 4;\n }\n }, 931812: () => typeof wasmOffsetConverter < "u" };\n function fa() {\n return typeof wasmOffsetConverter < "u";\n }\n function ca(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function la(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function da(e) {\n var r = U();\n try {\n C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function pa(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function ma(e, r, i) {\n var s = U();\n try {\n C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ha(e, r) {\n var i = U();\n try {\n C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function wa(e, r, i, s, f, p, E) {\n var S = U();\n try {\n return C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function ba(e, r, i, s, f, p) {\n var E = U();\n try {\n C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function ya(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function ga(e, r, i, s, f) {\n var p = U();\n try {\n C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ea(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Ta(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Sa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function va(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Oa(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Aa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Ia(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function Ba(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function La(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n return M(1, 0), 0n;\n }\n }\n function _a(e, r, i, s, f, p, E, S, x) {\n var R = U();\n try {\n C(e)(r, i, s, f, p, E, S, x);\n } catch (X) {\n if (P(R), X !== X + 0)\n throw X;\n M(1, 0);\n }\n }\n function Pa(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function Da(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n return M(1, 0), 0n;\n }\n }\n function Ua(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n return M(1, 0), 0n;\n }\n }\n function xa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ma(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ca(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Ra(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Fa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n return C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Na(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n return M(1, 0), 0n;\n }\n }\n function ka(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Wa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ga(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n return C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function $a(e, r, i, s, f, p, E, S, x, R, X) {\n var le = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X);\n } catch (we) {\n if (P(le), we !== we + 0)\n throw we;\n M(1, 0);\n }\n }\n function za(e, r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja) {\n var qa = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja);\n } catch (Yt) {\n if (P(qa), Yt !== Yt + 0)\n throw Yt;\n M(1, 0);\n }\n }\n function Ha(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ja(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Va(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function it() {\n if (0 < Re)\n te = it;\n else if (o)\n T?.(t), he();\n else {\n for (var e = Ve; 0 < e.length; )\n e.shift()(t);\n 0 < Re ? te = it : (t.calledRun = true, _ || (he(), T?.(t)));\n }\n }\n return o || (Ee = await Ut(), it()), t.PTR_SIZE = 4, je ? t : new Promise((e, r) => {\n T = e, I = r;\n });\n }\n var rs;\n var os;\n var Jr = N(() => {\n "use strict";\n rs = Vr, os = globalThis.self?.name?.startsWith("em-pthread");\n os && Vr();\n });\n var Qr;\n var an;\n var as;\n var oe;\n var Zr;\n var on;\n var ss;\n var is;\n var Kr;\n var us;\n var qr;\n var eo;\n var Xr;\n var to;\n var pt = N(() => {\n "use strict";\n dt();\n Qr = typeof location > "u" ? void 0 : location.origin, an = import_meta.url > "file:" && import_meta.url < "file;", as = () => {\n if (true) {\n if (an) {\n let n = URL;\n return new URL(new n("ort.wasm.bundle.min.mjs", import_meta.url).href, Qr).href;\n }\n return import_meta.url;\n }\n }, oe = as(), Zr = () => {\n if (oe && !oe.startsWith("blob:"))\n return oe.substring(0, oe.lastIndexOf("/") + 1);\n }, on = (n, t) => {\n try {\n let a = t ?? oe;\n return (a ? new URL(n, a) : new URL(n)).origin === Qr;\n } catch {\n return false;\n }\n }, ss = (n, t) => {\n let a = t ?? oe;\n try {\n return (a ? new URL(n, a) : new URL(n)).href;\n } catch {\n return;\n }\n }, is = (n, t) => `${t ?? "./"}${n}`, Kr = async (n) => {\n let a = await (await fetch(n, { credentials: "same-origin" })).blob();\n return URL.createObjectURL(a);\n }, us = async (n) => (await import(\n /*webpackIgnore:true*/\n /*@vite-ignore*/\n n\n )).default, qr = (jr(), Xt(Hr)).default, eo = async () => {\n if (!oe)\n throw new Error("Failed to load proxy worker: cannot determine the script source URL.");\n if (on(oe))\n return [void 0, qr()];\n let n = await Kr(oe);\n return [n, qr(n)];\n }, Xr = (Jr(), Xt(Yr)).default, to = async (n, t, a, u) => {\n let o = Xr && !(n || t);\n if (o)\n if (oe)\n o = on(oe) || u && !a;\n else if (u && !a)\n o = true;\n else\n throw new Error("cannot determine the script source URL.");\n if (o)\n return [void 0, Xr];\n {\n let d = "ort-wasm-simd-threaded.mjs", c = n ?? ss(d, t), l = a && c && !on(c, t), m = l ? await Kr(c) : c ?? is(d, t);\n return [l ? m : void 0, await us(m)];\n }\n };\n });\n var sn;\n var un;\n var St;\n var no;\n var fs;\n var cs;\n var ls;\n var mt;\n var $;\n var xe = N(() => {\n "use strict";\n pt();\n un = false, St = false, no = false, fs = () => {\n if (typeof SharedArrayBuffer > "u")\n return false;\n try {\n return typeof MessageChannel < "u" && new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)), WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 5, 4, 1, 3, 1, 1, 10, 11, 1, 9, 0, 65, 0, 254, 16, 2, 0, 26, 11]));\n } catch {\n return false;\n }\n }, cs = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 30, 1, 28, 0, 65, 0, 253, 15, 253, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 186, 1, 26, 11]));\n } catch {\n return false;\n }\n }, ls = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 19, 1, 17, 0, 65, 1, 253, 15, 65, 2, 253, 15, 65, 3, 253, 15, 253, 147, 2, 11]));\n } catch {\n return false;\n }\n }, mt = async (n) => {\n if (un)\n return Promise.resolve();\n if (St)\n throw new Error("multiple calls to \'initializeWebAssembly()\' detected.");\n if (no)\n throw new Error("previous call to \'initializeWebAssembly()\' failed.");\n St = true;\n let t = n.initTimeout, a = n.numThreads;\n if (n.simd !== false) {\n if (n.simd === "relaxed") {\n if (!ls())\n throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.");\n } else if (!cs())\n throw new Error("WebAssembly SIMD is not supported in the current environment.");\n }\n let u = fs();\n a > 1 && !u && (typeof self < "u" && !self.crossOriginIsolated && console.warn("env.wasm.numThreads is set to " + a + ", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."), console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."), n.numThreads = a = 1);\n let o = n.wasmPaths, d = typeof o == "string" ? o : void 0, c = o?.mjs, l = c?.href ?? c, m = o?.wasm, h = m?.href ?? m, g = n.wasmBinary, [b, y] = await to(l, d, a > 1, !!g || !!h), T = false, I = [];\n if (t > 0 && I.push(new Promise((D) => {\n setTimeout(() => {\n T = true, D();\n }, t);\n })), I.push(new Promise((D, z) => {\n let v = { numThreads: a };\n if (g)\n v.wasmBinary = g, v.locateFile = (O) => O;\n else if (h || d)\n v.locateFile = (O) => h ?? d + O;\n else if (l && l.indexOf("blob:") !== 0)\n v.locateFile = (O) => new URL(O, l).href;\n else if (b) {\n let O = Zr();\n O && (v.locateFile = (F) => O + F);\n }\n y(v).then((O) => {\n St = false, un = true, sn = O, D(), b && URL.revokeObjectURL(b);\n }, (O) => {\n St = false, no = true, z(O);\n });\n })), await Promise.race(I), T)\n throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`);\n }, $ = () => {\n if (un && sn)\n return sn;\n throw new Error("WebAssembly is not initialized yet.");\n };\n });\n var ae;\n var Ze;\n var G;\n var vt = N(() => {\n "use strict";\n xe();\n ae = (n, t) => {\n let a = $(), u = a.lengthBytesUTF8(n) + 1, o = a._malloc(u);\n return a.stringToUTF8(n, o, u), t.push(o), o;\n }, Ze = (n, t, a, u) => {\n if (typeof n == "object" && n !== null) {\n if (a.has(n))\n throw new Error("Circular reference in options");\n a.add(n);\n }\n Object.entries(n).forEach(([o, d]) => {\n let c = t ? t + o : o;\n if (typeof d == "object")\n Ze(d, c + ".", a, u);\n else if (typeof d == "string" || typeof d == "number")\n u(c, d.toString());\n else if (typeof d == "boolean")\n u(c, d ? "1" : "0");\n else\n throw new Error(`Can\'t handle extra config type: ${typeof d}`);\n });\n }, G = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetLastError(o, o + u);\n let d = Number(t.getValue(o, u === 4 ? "i32" : "i64")), c = t.getValue(o + u, "*"), l = c ? t.UTF8ToString(c) : "";\n throw new Error(`${n} ERROR_CODE: ${d}, ERROR_MESSAGE: ${l}`);\n } finally {\n t.stackRestore(a);\n }\n };\n });\n var ro;\n var oo = N(() => {\n "use strict";\n xe();\n vt();\n ro = (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n try {\n if (n?.logSeverityLevel === void 0)\n o.logSeverityLevel = 2;\n else if (typeof n.logSeverityLevel != "number" || !Number.isInteger(n.logSeverityLevel) || n.logSeverityLevel < 0 || n.logSeverityLevel > 4)\n throw new Error(`log severity level is not valid: ${n.logSeverityLevel}`);\n if (n?.logVerbosityLevel === void 0)\n o.logVerbosityLevel = 0;\n else if (typeof n.logVerbosityLevel != "number" || !Number.isInteger(n.logVerbosityLevel))\n throw new Error(`log verbosity level is not valid: ${n.logVerbosityLevel}`);\n n?.terminate === void 0 && (o.terminate = false);\n let d = 0;\n return n?.tag !== void 0 && (d = ae(n.tag, u)), a = t._OrtCreateRunOptions(o.logSeverityLevel, o.logVerbosityLevel, !!o.terminate, d), a === 0 && G("Can\'t create run options."), n?.extra !== void 0 && Ze(n.extra, "", /* @__PURE__ */ new WeakSet(), (c, l) => {\n let m = ae(c, u), h = ae(l, u);\n t._OrtAddRunConfigEntry(a, m, h) !== 0 && G(`Can\'t set a run config entry: ${c} - ${l}.`);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseRunOptions(a), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var ds;\n var ps;\n var ms;\n var ke;\n var hs;\n var ao;\n var so = N(() => {\n "use strict";\n xe();\n vt();\n ds = (n) => {\n switch (n) {\n case "disabled":\n return 0;\n case "basic":\n return 1;\n case "extended":\n return 2;\n case "layout":\n return 3;\n case "all":\n return 99;\n default:\n throw new Error(`unsupported graph optimization level: ${n}`);\n }\n }, ps = (n) => {\n switch (n) {\n case "sequential":\n return 0;\n case "parallel":\n return 1;\n default:\n throw new Error(`unsupported execution mode: ${n}`);\n }\n }, ms = (n) => {\n n.extra || (n.extra = {}), n.extra.session || (n.extra.session = {});\n let t = n.extra.session;\n t.use_ort_model_bytes_directly || (t.use_ort_model_bytes_directly = "1"), n.executionProviders && n.executionProviders.some((a) => (typeof a == "string" ? a : a.name) === "webgpu") && (n.enableMemPattern = false);\n }, ke = (n, t, a, u) => {\n let o = ae(t, u), d = ae(a, u);\n $()._OrtAddSessionConfigEntry(n, o, d) !== 0 && G(`Can\'t set a session config entry: ${t} - ${a}.`);\n }, hs = async (n, t, a) => {\n let u = t.executionProviders;\n for (let o of u) {\n let d = typeof o == "string" ? o : o.name, c = [];\n switch (d) {\n case "webnn":\n if (d = "WEBNN", ke(n, "session.disable_quant_qdq", "1", a), ke(n, "session.disable_qdq_constant_folding", "1", a), typeof o != "string") {\n let y = o?.deviceType;\n y && ke(n, "deviceType", y, a);\n }\n break;\n case "webgpu":\n if (d = "JS", typeof o != "string") {\n let b = o;\n if (b?.preferredLayout) {\n if (b.preferredLayout !== "NCHW" && b.preferredLayout !== "NHWC")\n throw new Error(`preferredLayout must be either \'NCHW\' or \'NHWC\': ${b.preferredLayout}`);\n ke(n, "preferredLayout", b.preferredLayout, a);\n }\n }\n break;\n case "wasm":\n case "cpu":\n continue;\n default:\n throw new Error(`not supported execution provider: ${d}`);\n }\n let l = ae(d, a), m = c.length, h = 0, g = 0;\n if (m > 0) {\n h = $()._malloc(m * $().PTR_SIZE), a.push(h), g = $()._malloc(m * $().PTR_SIZE), a.push(g);\n for (let b = 0; b < m; b++)\n $().setValue(h + b * $().PTR_SIZE, c[b][0], "*"), $().setValue(g + b * $().PTR_SIZE, c[b][1], "*");\n }\n await $()._OrtAppendExecutionProvider(n, l, h, g, m) !== 0 && G(`Can\'t append execution provider: ${d}.`);\n }\n }, ao = async (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n ms(o);\n try {\n let d = ds(o.graphOptimizationLevel ?? "all"), c = ps(o.executionMode ?? "sequential"), l = typeof o.logId == "string" ? ae(o.logId, u) : 0, m = o.logSeverityLevel ?? 2;\n if (!Number.isInteger(m) || m < 0 || m > 4)\n throw new Error(`log severity level is not valid: ${m}`);\n let h = o.logVerbosityLevel ?? 0;\n if (!Number.isInteger(h) || h < 0 || h > 4)\n throw new Error(`log verbosity level is not valid: ${h}`);\n let g = typeof o.optimizedModelFilePath == "string" ? ae(o.optimizedModelFilePath, u) : 0;\n if (a = t._OrtCreateSessionOptions(d, !!o.enableCpuMemArena, !!o.enableMemPattern, c, !!o.enableProfiling, 0, l, m, h, g), a === 0 && G("Can\'t create session options."), o.executionProviders && await hs(a, o, u), o.enableGraphCapture !== void 0) {\n if (typeof o.enableGraphCapture != "boolean")\n throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);\n ke(a, "enableGraphCapture", o.enableGraphCapture.toString(), u);\n }\n if (o.freeDimensionOverrides)\n for (let [b, y] of Object.entries(o.freeDimensionOverrides)) {\n if (typeof b != "string")\n throw new Error(`free dimension override name must be a string: ${b}`);\n if (typeof y != "number" || !Number.isInteger(y) || y < 0)\n throw new Error(`free dimension override value must be a non-negative integer: ${y}`);\n let T = ae(b, u);\n t._OrtAddFreeDimensionOverride(a, T, y) !== 0 && G(`Can\'t set a free dimension override: ${b} - ${y}.`);\n }\n return o.extra !== void 0 && Ze(o.extra, "", /* @__PURE__ */ new WeakSet(), (b, y) => {\n ke(a, b, y, u);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseSessionOptions(a) !== 0 && G("Can\'t release session options."), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var We;\n var Ot;\n var Ge;\n var io;\n var uo;\n var At;\n var It;\n var fo;\n var fn = N(() => {\n "use strict";\n We = (n) => {\n switch (n) {\n case "int8":\n return 3;\n case "uint8":\n return 2;\n case "bool":\n return 9;\n case "int16":\n return 5;\n case "uint16":\n return 4;\n case "int32":\n return 6;\n case "uint32":\n return 12;\n case "float16":\n return 10;\n case "float32":\n return 1;\n case "float64":\n return 11;\n case "string":\n return 8;\n case "int64":\n return 7;\n case "uint64":\n return 13;\n case "int4":\n return 22;\n case "uint4":\n return 21;\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ot = (n) => {\n switch (n) {\n case 3:\n return "int8";\n case 2:\n return "uint8";\n case 9:\n return "bool";\n case 5:\n return "int16";\n case 4:\n return "uint16";\n case 6:\n return "int32";\n case 12:\n return "uint32";\n case 10:\n return "float16";\n case 1:\n return "float32";\n case 11:\n return "float64";\n case 8:\n return "string";\n case 7:\n return "int64";\n case 13:\n return "uint64";\n case 22:\n return "int4";\n case 21:\n return "uint4";\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ge = (n, t) => {\n let a = [-1, 4, 1, 1, 2, 2, 4, 8, -1, 1, 2, 8, 4, 8, -1, -1, -1, -1, -1, -1, -1, 0.5, 0.5][n], u = typeof t == "number" ? t : t.reduce((o, d) => o * d, 1);\n return a > 0 ? Math.ceil(u * a) : void 0;\n }, io = (n) => {\n switch (n) {\n case "float16":\n return typeof Float16Array < "u" && Float16Array.from ? Float16Array : Uint16Array;\n case "float32":\n return Float32Array;\n case "uint8":\n return Uint8Array;\n case "int8":\n return Int8Array;\n case "uint16":\n return Uint16Array;\n case "int16":\n return Int16Array;\n case "int32":\n return Int32Array;\n case "bool":\n return Uint8Array;\n case "float64":\n return Float64Array;\n case "uint32":\n return Uint32Array;\n case "int64":\n return BigInt64Array;\n case "uint64":\n return BigUint64Array;\n default:\n throw new Error(`unsupported type: ${n}`);\n }\n }, uo = (n) => {\n switch (n) {\n case "verbose":\n return 0;\n case "info":\n return 1;\n case "warning":\n return 2;\n case "error":\n return 3;\n case "fatal":\n return 4;\n default:\n throw new Error(`unsupported logging level: ${n}`);\n }\n }, At = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", It = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint64" || n === "int8" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", fo = (n) => {\n switch (n) {\n case "none":\n return 0;\n case "cpu":\n return 1;\n case "cpu-pinned":\n return 2;\n case "texture":\n return 3;\n case "gpu-buffer":\n return 4;\n case "ml-tensor":\n return 5;\n default:\n throw new Error(`unsupported data location: ${n}`);\n }\n };\n });\n var Ke;\n var cn = N(() => {\n "use strict";\n dt();\n Ke = async (n) => {\n if (typeof n == "string")\n if (false)\n try {\n let { readFile: t } = qt("node:fs/promises");\n return new Uint8Array(await t(n));\n } catch (t) {\n if (t.code === "ERR_FS_FILE_TOO_LARGE") {\n let { createReadStream: a } = qt("node:fs"), u = a(n), o = [];\n for await (let d of u)\n o.push(d);\n return new Uint8Array(Buffer.concat(o));\n }\n throw t;\n }\n else {\n let t = await fetch(n);\n if (!t.ok)\n throw new Error(`failed to load external data file: ${n}`);\n let a = t.headers.get("Content-Length"), u = a ? parseInt(a, 10) : 0;\n if (u < 1073741824)\n return new Uint8Array(await t.arrayBuffer());\n {\n if (!t.body)\n throw new Error(`failed to load external data file: ${n}, no response body.`);\n let o = t.body.getReader(), d;\n try {\n d = new ArrayBuffer(u);\n } catch (l) {\n if (l instanceof RangeError) {\n let m = Math.ceil(u / 65536);\n d = new WebAssembly.Memory({ initial: m, maximum: m }).buffer;\n } else\n throw l;\n }\n let c = 0;\n for (; ; ) {\n let { done: l, value: m } = await o.read();\n if (l)\n break;\n let h = m.byteLength;\n new Uint8Array(d, c, h).set(m), c += h;\n }\n return new Uint8Array(d, 0, u);\n }\n }\n else\n return n instanceof Blob ? new Uint8Array(await n.arrayBuffer()) : n instanceof Uint8Array ? n : new Uint8Array(n);\n };\n });\n var ws;\n var ht;\n var wt;\n var $e;\n var bs;\n var co;\n var Qe;\n var bt;\n var yt;\n var lo;\n var gt;\n var Et;\n var Tt;\n var rn = N(() => {\n "use strict";\n Te();\n oo();\n so();\n fn();\n xe();\n vt();\n cn();\n ws = (n, t) => {\n $()._OrtInit(n, t) !== 0 && G("Can\'t initialize onnxruntime.");\n }, ht = async (n) => {\n ws(n.wasm.numThreads, uo(n.logLevel));\n }, wt = async (n, t) => {\n $().asyncInit?.();\n let a = n.webgpu.adapter;\n if (t === "webgpu") {\n if (typeof navigator > "u" || !navigator.gpu)\n throw new Error("WebGPU is not supported in current environment");\n if (a) {\n if (typeof a.limits != "object" || typeof a.features != "object" || typeof a.requestDevice != "function")\n throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.");\n } else {\n let u = n.webgpu.powerPreference;\n if (u !== void 0 && u !== "low-power" && u !== "high-performance")\n throw new Error(`Invalid powerPreference setting: "${u}"`);\n let o = n.webgpu.forceFallbackAdapter;\n if (o !== void 0 && typeof o != "boolean")\n throw new Error(`Invalid forceFallbackAdapter setting: "${o}"`);\n if (a = await navigator.gpu.requestAdapter({ powerPreference: u, forceFallbackAdapter: o }), !a)\n throw new Error(\'Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.\');\n }\n }\n if (t === "webnn" && (typeof navigator > "u" || !navigator.ml))\n throw new Error("WebNN is not supported in current environment");\n }, $e = /* @__PURE__ */ new Map(), bs = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetInputOutputCount(n, o, o + u) !== 0 && G("Can\'t get session input/output count.");\n let c = u === 4 ? "i32" : "i64";\n return [Number(t.getValue(o, c)), Number(t.getValue(o + u, c))];\n } finally {\n t.stackRestore(a);\n }\n }, co = (n, t) => {\n let a = $(), u = a.stackSave(), o = 0;\n try {\n let d = a.PTR_SIZE, c = a.stackAlloc(2 * d);\n a._OrtGetInputOutputMetadata(n, t, c, c + d) !== 0 && G("Can\'t get session input/output metadata.");\n let m = Number(a.getValue(c, "*"));\n o = Number(a.getValue(c + d, "*"));\n let h = a.HEAP32[o / 4];\n if (h === 0)\n return [m, 0];\n let g = a.HEAPU32[o / 4 + 1], b = [];\n for (let y = 0; y < g; y++) {\n let T = Number(a.getValue(o + 8 + y * d, "*"));\n b.push(T !== 0 ? a.UTF8ToString(T) : Number(a.getValue(o + 8 + (y + g) * d, "*")));\n }\n return [m, h, b];\n } finally {\n a.stackRestore(u), o !== 0 && a._OrtFree(o);\n }\n }, Qe = (n) => {\n let t = $(), a = t._malloc(n.byteLength);\n if (a === 0)\n throw new Error(`Can\'t create a session. failed to allocate a buffer of size ${n.byteLength}.`);\n return t.HEAPU8.set(n, a), [a, n.byteLength];\n }, bt = async (n, t) => {\n let a, u, o = $();\n Array.isArray(n) ? [a, u] = n : n.buffer === o.HEAPU8.buffer ? [a, u] = [n.byteOffset, n.byteLength] : [a, u] = Qe(n);\n let d = 0, c = 0, l = 0, m = [], h = [], g = [];\n try {\n if ([c, m] = await ao(t), t?.externalData && o.mountExternalData) {\n let _ = [];\n for (let k of t.externalData) {\n let w = typeof k == "string" ? k : k.path;\n _.push(Ke(typeof k == "string" ? k : k.data).then((Z) => {\n o.mountExternalData(w, Z);\n }));\n }\n await Promise.all(_);\n }\n for (let _ of t?.executionProviders ?? [])\n if ((typeof _ == "string" ? _ : _.name) === "webnn") {\n if (o.shouldTransferToMLTensor = false, typeof _ != "string") {\n let w = _, Z = w?.context, j = w?.gpuDevice, ne = w?.deviceType, pe = w?.powerPreference;\n Z ? o.currentContext = Z : j ? o.currentContext = await o.webnnCreateMLContext(j) : o.currentContext = await o.webnnCreateMLContext({ deviceType: ne, powerPreference: pe });\n } else\n o.currentContext = await o.webnnCreateMLContext();\n break;\n }\n d = await o._OrtCreateSession(a, u, c), o.webgpuOnCreateSession?.(d), d === 0 && G("Can\'t create a session."), o.jsepOnCreateSession?.(), o.currentContext && (o.webnnRegisterMLContext(d, o.currentContext), o.currentContext = void 0, o.shouldTransferToMLTensor = true);\n let [b, y] = bs(d), T = !!t?.enableGraphCapture, I = [], D = [], z = [], v = [], O = [];\n for (let _ = 0; _ < b; _++) {\n let [k, w, Z] = co(d, _);\n k === 0 && G("Can\'t get an input name."), h.push(k);\n let j = o.UTF8ToString(k);\n I.push(j), z.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n for (let _ = 0; _ < y; _++) {\n let [k, w, Z] = co(d, _ + b);\n k === 0 && G("Can\'t get an output name."), g.push(k);\n let j = o.UTF8ToString(k);\n D.push(j), v.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n return $e.set(d, [d, h, g, null, T, false]), [d, I, D, z, v];\n } catch (b) {\n throw h.forEach((y) => o._OrtFree(y)), g.forEach((y) => o._OrtFree(y)), l !== 0 && o._OrtReleaseBinding(l) !== 0 && G("Can\'t release IO binding."), d !== 0 && o._OrtReleaseSession(d) !== 0 && G("Can\'t release session."), b;\n } finally {\n o._free(a), c !== 0 && o._OrtReleaseSessionOptions(c) !== 0 && G("Can\'t release session options."), m.forEach((b) => o._free(b)), o.unmountExternalData?.();\n }\n }, yt = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error(`cannot release session. invalid session id: ${n}`);\n let [u, o, d, c, l] = a;\n c && (l && t._OrtClearBoundOutputs(c.handle) !== 0 && G("Can\'t clear bound outputs."), t._OrtReleaseBinding(c.handle) !== 0 && G("Can\'t release IO binding.")), t.jsepOnReleaseSession?.(n), t.webnnOnReleaseSession?.(n), t.webgpuOnReleaseSession?.(n), o.forEach((m) => t._OrtFree(m)), d.forEach((m) => t._OrtFree(m)), t._OrtReleaseSession(u) !== 0 && G("Can\'t release session."), $e.delete(n);\n }, lo = async (n, t, a, u, o, d, c = false) => {\n if (!n) {\n t.push(0);\n return;\n }\n let l = $(), m = l.PTR_SIZE, h = n[0], g = n[1], b = n[3], y = b, T, I;\n if (h === "string" && (b === "gpu-buffer" || b === "ml-tensor"))\n throw new Error("String tensor is not supported on GPU.");\n if (c && b !== "gpu-buffer")\n throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);\n if (b === "gpu-buffer") {\n let v = n[2].gpuBuffer;\n I = Ge(We(h), g);\n {\n let O = l.jsepRegisterBuffer;\n if (!O)\n throw new Error(\'Tensor location "gpu-buffer" is not supported without using WebGPU.\');\n T = O(u, d, v, I);\n }\n } else if (b === "ml-tensor") {\n let v = n[2].mlTensor;\n I = Ge(We(h), g);\n let O = l.webnnRegisterMLTensor;\n if (!O)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n T = O(u, v, We(h), g);\n } else {\n let v = n[2];\n if (Array.isArray(v)) {\n I = m * v.length, T = l._malloc(I), a.push(T);\n for (let O = 0; O < v.length; O++) {\n if (typeof v[O] != "string")\n throw new TypeError(`tensor data at index ${O} is not a string`);\n l.setValue(T + O * m, ae(v[O], a), "*");\n }\n } else {\n let O = l.webnnIsGraphInput, F = l.webnnIsGraphOutput;\n if (h !== "string" && O && F) {\n let _ = l.UTF8ToString(o);\n if (O(u, _) || F(u, _)) {\n let k = We(h);\n I = Ge(k, g), y = "ml-tensor";\n let w = l.webnnCreateTemporaryTensor, Z = l.webnnUploadTensor;\n if (!w || !Z)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n let j = await w(u, k, g);\n Z(j, new Uint8Array(v.buffer, v.byteOffset, v.byteLength)), T = j;\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n }\n }\n let D = l.stackSave(), z = l.stackAlloc(4 * g.length);\n try {\n g.forEach((O, F) => l.setValue(z + F * m, O, m === 4 ? "i32" : "i64"));\n let v = l._OrtCreateTensor(We(h), T, I, z, g.length, fo(y));\n v === 0 && G(`Can\'t create tensor for input/output. session=${u}, index=${d}.`), t.push(v);\n } finally {\n l.stackRestore(D);\n }\n }, gt = async (n, t, a, u, o, d) => {\n let c = $(), l = c.PTR_SIZE, m = $e.get(n);\n if (!m)\n throw new Error(`cannot run inference. invalid session id: ${n}`);\n let h = m[0], g = m[1], b = m[2], y = m[3], T = m[4], I = m[5], D = t.length, z = u.length, v = 0, O = [], F = [], _ = [], k = [], w = [], Z = c.stackSave(), j = c.stackAlloc(D * l), ne = c.stackAlloc(D * l), pe = c.stackAlloc(z * l), B = c.stackAlloc(z * l);\n try {\n [v, O] = ro(d), De("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n await lo(a[A], F, k, n, g[t[A]], t[A], T);\n for (let A = 0; A < z; A++)\n await lo(o[A], _, k, n, b[u[A]], D + u[A], T);\n Ue("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n c.setValue(j + A * l, F[A], "*"), c.setValue(ne + A * l, g[t[A]], "*");\n for (let A = 0; A < z; A++)\n c.setValue(pe + A * l, _[A], "*"), c.setValue(B + A * l, b[u[A]], "*");\n c.jsepOnRunStart?.(h), c.webnnOnRunStart?.(h);\n let W;\n W = await c._OrtRun(h, ne, j, D, B, z, pe, v), W !== 0 && G("failed to call OrtRun().");\n let re = [], me = [];\n De("wasm ProcessOutputTensor");\n for (let A = 0; A < z; A++) {\n let K = Number(c.getValue(pe + A * l, "*"));\n if (K === _[A] || w.includes(_[A])) {\n re.push(o[A]), K !== _[A] && c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n continue;\n }\n let je = c.stackSave(), ee = c.stackAlloc(4 * l), he = false, H, q = 0;\n try {\n c._OrtGetTensorData(K, ee, ee + l, ee + 2 * l, ee + 3 * l) !== 0 && G(`Can\'t access output tensor data on index ${A}.`);\n let Se = l === 4 ? "i32" : "i64", ve = Number(c.getValue(ee, Se));\n q = c.getValue(ee + l, "*");\n let Ve = c.getValue(ee + l * 2, "*"), Re = Number(c.getValue(ee + l * 3, Se)), te = [];\n for (let L = 0; L < Re; L++)\n te.push(Number(c.getValue(Ve + L * l, Se)));\n c._OrtFree(Ve) !== 0 && G("Can\'t free memory for tensor dims.");\n let ue = te.reduce((L, V) => L * V, 1);\n H = Ot(ve);\n let se = y?.outputPreferredLocations[u[A]];\n if (H === "string") {\n if (se === "gpu-buffer" || se === "ml-tensor")\n throw new Error("String tensor is not supported on GPU.");\n let L = [];\n for (let V = 0; V < ue; V++) {\n let fe = c.getValue(q + V * l, "*"), ye = c.getValue(q + (V + 1) * l, "*"), ce = V === ue - 1 ? void 0 : ye - fe;\n L.push(c.UTF8ToString(fe, ce));\n }\n re.push([H, te, L, "cpu"]);\n } else if (se === "gpu-buffer" && ue > 0) {\n let L = c.jsepGetBuffer;\n if (!L)\n throw new Error(\'preferredLocation "gpu-buffer" is not supported without using WebGPU.\');\n let V = L(q), fe = Ge(ve, ue);\n if (fe === void 0 || !At(H))\n throw new Error(`Unsupported data type: ${H}`);\n he = true, re.push([H, te, { gpuBuffer: V, download: c.jsepCreateDownloader(V, fe, H), dispose: () => {\n c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n } }, "gpu-buffer"]);\n } else if (se === "ml-tensor" && ue > 0) {\n let L = c.webnnEnsureTensor, V = c.webnnIsGraphInputOutputTypeSupported;\n if (!L || !V)\n throw new Error(\'preferredLocation "ml-tensor" is not supported without using WebNN.\');\n if (Ge(ve, ue) === void 0 || !It(H))\n throw new Error(`Unsupported data type: ${H}`);\n if (!V(n, H, false))\n throw new Error(`preferredLocation "ml-tensor" for ${H} output is not supported by current WebNN Context.`);\n let ye = await L(n, q, ve, te, false);\n he = true, re.push([H, te, { mlTensor: ye, download: c.webnnCreateMLTensorDownloader(q, H), dispose: () => {\n c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K);\n } }, "ml-tensor"]);\n } else if (se === "ml-tensor-cpu-output" && ue > 0) {\n let L = c.webnnCreateMLTensorDownloader(q, H)(), V = re.length;\n he = true, me.push((async () => {\n let fe = [V, await L];\n return c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K), fe;\n })()), re.push([H, te, [], "cpu"]);\n } else {\n let L = io(H), V = new L(ue);\n new Uint8Array(V.buffer, V.byteOffset, V.byteLength).set(c.HEAPU8.subarray(q, q + V.byteLength)), re.push([H, te, V, "cpu"]);\n }\n } finally {\n c.stackRestore(je), H === "string" && q && c._free(q), he || c._OrtReleaseTensor(K);\n }\n }\n y && !T && (c._OrtClearBoundOutputs(y.handle) !== 0 && G("Can\'t clear bound outputs."), $e.set(n, [h, g, b, y, T, false]));\n for (let [A, K] of await Promise.all(me))\n re[A][2] = K;\n return Ue("wasm ProcessOutputTensor"), re;\n } finally {\n c.webnnOnRunEnd?.(h), c.stackRestore(Z), F.forEach((W) => c._OrtReleaseTensor(W)), _.forEach((W) => c._OrtReleaseTensor(W)), k.forEach((W) => c._free(W)), v !== 0 && c._OrtReleaseRunOptions(v), O.forEach((W) => c._free(W));\n }\n }, Et = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error("invalid session id");\n let u = a[0], o = t._OrtEndProfiling(u);\n o === 0 && G("Can\'t get an profile file name."), t._OrtFree(o);\n }, Tt = (n) => {\n let t = [];\n for (let a of n) {\n let u = a[2];\n !Array.isArray(u) && "buffer" in u && t.push(u.buffer);\n }\n return t;\n };\n });\n var Ce;\n var ie;\n var et;\n var Lt;\n var _t;\n var Bt;\n var ln;\n var dn;\n var ze;\n var He;\n var gs;\n var po;\n var mo;\n var ho;\n var wo;\n var bo;\n var yo;\n var go;\n var pn = N(() => {\n "use strict";\n Te();\n rn();\n xe();\n pt();\n Ce = () => !!Y.wasm.proxy && typeof document < "u", et = false, Lt = false, _t = false, dn = /* @__PURE__ */ new Map(), ze = (n, t) => {\n let a = dn.get(n);\n a ? a.push(t) : dn.set(n, [t]);\n }, He = () => {\n if (et || !Lt || _t || !ie)\n throw new Error("worker not ready");\n }, gs = (n) => {\n switch (n.data.type) {\n case "init-wasm":\n et = false, n.data.err ? (_t = true, ln[1](n.data.err)) : (Lt = true, ln[0]()), Bt && (URL.revokeObjectURL(Bt), Bt = void 0);\n break;\n case "init-ep":\n case "copy-from":\n case "create":\n case "release":\n case "run":\n case "end-profiling": {\n let t = dn.get(n.data.type);\n n.data.err ? t.shift()[1](n.data.err) : t.shift()[0](n.data.out);\n break;\n }\n default:\n }\n }, po = async () => {\n if (!Lt) {\n if (et)\n throw new Error("multiple calls to \'initWasm()\' detected.");\n if (_t)\n throw new Error("previous call to \'initWasm()\' failed.");\n if (et = true, Ce())\n return new Promise((n, t) => {\n ie?.terminate(), eo().then(([a, u]) => {\n try {\n ie = u, ie.onerror = (d) => t(d), ie.onmessage = gs, ln = [n, t];\n let o = { type: "init-wasm", in: Y };\n !o.in.wasm.wasmPaths && (a || an) && (o.in.wasm.wasmPaths = { wasm: new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href }), ie.postMessage(o), Bt = a;\n } catch (o) {\n t(o);\n }\n }, t);\n });\n try {\n await mt(Y.wasm), await ht(Y), Lt = true;\n } catch (n) {\n throw _t = true, n;\n } finally {\n et = false;\n }\n }\n }, mo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("init-ep", [t, a]);\n let u = { type: "init-ep", in: { epName: n, env: Y } };\n ie.postMessage(u);\n });\n await wt(Y, n);\n }, ho = async (n) => Ce() ? (He(), new Promise((t, a) => {\n ze("copy-from", [t, a]);\n let u = { type: "copy-from", in: { buffer: n } };\n ie.postMessage(u, [n.buffer]);\n })) : Qe(n), wo = async (n, t) => {\n if (Ce()) {\n if (t?.preferredOutputLocation)\n throw new Error(\'session option "preferredOutputLocation" is not supported for proxy.\');\n return He(), new Promise((a, u) => {\n ze("create", [a, u]);\n let o = { type: "create", in: { model: n, options: { ...t } } }, d = [];\n n instanceof Uint8Array && d.push(n.buffer), ie.postMessage(o, d);\n });\n } else\n return bt(n, t);\n }, bo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("release", [t, a]);\n let u = { type: "release", in: n };\n ie.postMessage(u);\n });\n yt(n);\n }, yo = async (n, t, a, u, o, d) => {\n if (Ce()) {\n if (a.some((c) => c[3] !== "cpu"))\n throw new Error("input tensor on GPU is not supported for proxy.");\n if (o.some((c) => c))\n throw new Error("pre-allocated output tensor is not supported for proxy.");\n return He(), new Promise((c, l) => {\n ze("run", [c, l]);\n let m = a, h = { type: "run", in: { sessionId: n, inputIndices: t, inputs: m, outputIndices: u, options: d } };\n ie.postMessage(h, Tt(m));\n });\n } else\n return gt(n, t, a, u, o, d);\n }, go = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("end-profiling", [t, a]);\n let u = { type: "end-profiling", in: n };\n ie.postMessage(u);\n });\n Et(n);\n };\n });\n var Eo;\n var Es;\n var Pt;\n var To = N(() => {\n "use strict";\n Te();\n pn();\n fn();\n dt();\n cn();\n Eo = (n, t) => {\n switch (n.location) {\n case "cpu":\n return [n.type, n.dims, n.data, "cpu"];\n case "gpu-buffer":\n return [n.type, n.dims, { gpuBuffer: n.gpuBuffer }, "gpu-buffer"];\n case "ml-tensor":\n return [n.type, n.dims, { mlTensor: n.mlTensor }, "ml-tensor"];\n default:\n throw new Error(`invalid data location: ${n.location} for ${t()}`);\n }\n }, Es = (n) => {\n switch (n[3]) {\n case "cpu":\n return new de(n[0], n[2], n[1]);\n case "gpu-buffer": {\n let t = n[0];\n if (!At(t))\n throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);\n let { gpuBuffer: a, download: u, dispose: o } = n[2];\n return de.fromGpuBuffer(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n case "ml-tensor": {\n let t = n[0];\n if (!It(t))\n throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);\n let { mlTensor: a, download: u, dispose: o } = n[2];\n return de.fromMLTensor(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n default:\n throw new Error(`invalid data location: ${n[3]}`);\n }\n }, Pt = class {\n async fetchModelAndCopyToWasmMemory(t) {\n return ho(await Ke(t));\n }\n async loadModel(t, a) {\n _e();\n let u;\n typeof t == "string" ? u = await this.fetchModelAndCopyToWasmMemory(t) : u = t, [this.sessionId, this.inputNames, this.outputNames, this.inputMetadata, this.outputMetadata] = await wo(u, a), Pe();\n }\n async dispose() {\n return bo(this.sessionId);\n }\n async run(t, a, u) {\n _e();\n let o = [], d = [];\n Object.entries(t).forEach((y) => {\n let T = y[0], I = y[1], D = this.inputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid input \'${T}\'`);\n o.push(I), d.push(D);\n });\n let c = [], l = [];\n Object.entries(a).forEach((y) => {\n let T = y[0], I = y[1], D = this.outputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid output \'${T}\'`);\n c.push(I), l.push(D);\n });\n let m = o.map((y, T) => Eo(y, () => `input "${this.inputNames[d[T]]}"`)), h = c.map((y, T) => y ? Eo(y, () => `output "${this.outputNames[l[T]]}"`) : null), g = await yo(this.sessionId, d, m, l, h, u), b = {};\n for (let y = 0; y < g.length; y++)\n b[this.outputNames[l[y]]] = c[y] ?? Es(g[y]);\n return Pe(), b;\n }\n startProfiling() {\n }\n endProfiling() {\n go(this.sessionId);\n }\n };\n });\n var vo = {};\n ut(vo, { OnnxruntimeWebAssemblyBackend: () => Dt, initializeFlags: () => So, wasmBackend: () => Ts });\n var So;\n var Dt;\n var Ts;\n var Oo = N(() => {\n "use strict";\n Te();\n pn();\n To();\n So = () => {\n (typeof Y.wasm.initTimeout != "number" || Y.wasm.initTimeout < 0) && (Y.wasm.initTimeout = 0);\n let n = Y.wasm.simd;\n if (typeof n != "boolean" && n !== void 0 && n !== "fixed" && n !== "relaxed" && (console.warn(`Property "env.wasm.simd" is set to unknown value "${n}". Reset it to \\`false\\` and ignore SIMD feature checking.`), Y.wasm.simd = false), typeof Y.wasm.proxy != "boolean" && (Y.wasm.proxy = false), typeof Y.wasm.trace != "boolean" && (Y.wasm.trace = false), typeof Y.wasm.numThreads != "number" || !Number.isInteger(Y.wasm.numThreads) || Y.wasm.numThreads <= 0)\n if (typeof self < "u" && !self.crossOriginIsolated)\n Y.wasm.numThreads = 1;\n else {\n let t = typeof navigator > "u" ? qt("node:os").cpus().length : navigator.hardwareConcurrency;\n Y.wasm.numThreads = Math.min(4, Math.ceil((t || 1) / 2));\n }\n }, Dt = class {\n async init(t) {\n So(), await po(), await mo(t);\n }\n async createInferenceSessionHandler(t, a) {\n let u = new Pt();\n return await u.loadModel(t, a), u;\n }\n }, Ts = new Dt();\n });\n Te();\n Te();\n Te();\n var Gr = "1.26.0";\n {\n let n = (Oo(), Xt(vo)).wasmBackend;\n qe("cpu", n, 10), qe("wasm", n, 10);\n }\n Object.defineProperty(Y.versions, "web", { value: Gr, enumerable: true });\n\n // src/workers/VadAiWorker.ts\n var CHUNK_SIZE = 320;\n var MODEL_EXTERNAL_DATA_PATH = "bcresnet_no_center_mult2_20ms.onnx.data";\n var STATE_INPUT_DIMS_PBTXT = {\n audio_input_state: [800],\n input_states_0: [1, 4, 43],\n input_states_1: [16, 2, 1],\n input_states_2: [16, 2, 1],\n input_states_3: [24, 4, 1],\n input_states_4: [24, 4, 1],\n input_states_5: [32, 8, 1],\n input_states_6: [32, 8, 1],\n input_states_7: [32, 8, 1],\n input_states_8: [32, 8, 1],\n input_states_9: [40, 16, 1],\n input_states_10: [40, 16, 1],\n input_states_11: [40, 16, 1],\n input_states_12: [40, 16, 1],\n input_states_13: [40, 4, 5],\n input_states_14: [64, 30, 1]\n };\n var BATCH_SIZE = 1;\n var STATE_INPUT_DIMS = Object.fromEntries(\n Object.entries(STATE_INPUT_DIMS_PBTXT).map(([name, dims]) => [\n name,\n [BATCH_SIZE, ...dims]\n ])\n );\n var STATE_OUTPUT_TO_INPUT = {\n audio_output_state: "audio_input_state",\n output_states_0: "input_states_0",\n output_states_1: "input_states_1",\n output_states_2: "input_states_2",\n output_states_3: "input_states_3",\n output_states_4: "input_states_4",\n output_states_5: "input_states_5",\n output_states_6: "input_states_6",\n output_states_7: "input_states_7",\n output_states_8: "input_states_8",\n output_states_9: "input_states_9",\n output_states_10: "input_states_10",\n output_states_11: "input_states_11",\n output_states_12: "input_states_12",\n output_states_13: "input_states_13",\n output_states_14: "input_states_14"\n };\n var VadAiWorker_default = (modelUrl, modelDataUrl, ortWasmUrl, ortMjsUrl) => {\n let session = null;\n let state = null;\n let buffer = new Float32Array(0);\n let inferBusy = false;\n function postError(error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: error instanceof Error ? error.message : String(error)\n });\n }\n async function init() {\n Y.wasm.wasmPaths = { wasm: ortWasmUrl, mjs: ortMjsUrl };\n Y.wasm.numThreads = 1;\n const [modelRes, dataRes] = await Promise.all([\n fetch(modelUrl),\n fetch(modelDataUrl)\n ]);\n if (!modelRes.ok) {\n throw new Error(`Model fetch failed: ${modelRes.status} ${modelRes.statusText}`);\n }\n if (!dataRes.ok) {\n throw new Error(`Model data fetch failed: ${dataRes.status} ${dataRes.statusText}`);\n }\n const [modelBytes, dataBytes] = await Promise.all([\n modelRes.arrayBuffer(),\n dataRes.arrayBuffer()\n ]);\n session = await ts.create(new Uint8Array(modelBytes), {\n executionProviders: ["wasm"],\n externalData: [\n {\n path: MODEL_EXTERNAL_DATA_PATH,\n data: new Uint8Array(dataBytes)\n }\n ]\n });\n state = createZeroStateTensors(session, de);\n }\n function appendBuffer(chunk) {\n const next = new Float32Array(buffer.length + chunk.length);\n next.set(buffer, 0);\n next.set(chunk, buffer.length);\n buffer = next;\n }\n async function runChunk(chunk) {\n if (!session || !state || inferBusy) {\n return;\n }\n inferBusy = true;\n try {\n const audioTensor = new de("float32", chunk, [1, CHUNK_SIZE]);\n const feeds = {\n audio: audioTensor,\n ...state\n };\n const results = await session.run(feeds);\n updateStateFromOutputs(state, results);\n const probs = results.voice_probs?.data;\n if (!probs || probs.length < 2) {\n return;\n }\n const speechProb = Math.max(probs[0], probs[1]);\n const silenceProb = 1 - speechProb;\n self.postMessage({\n type: "data" /* DATA */,\n data: { speechProb, silenceProb }\n });\n } catch (err) {\n postError(err);\n } finally {\n inferBusy = false;\n }\n }\n function onAudio(data) {\n const samples = new Float32Array(data);\n appendBuffer(samples);\n while (buffer.length >= CHUNK_SIZE) {\n const chunk = new Float32Array(buffer.subarray(0, CHUNK_SIZE));\n buffer = new Float32Array(buffer.subarray(CHUNK_SIZE));\n void runChunk(chunk);\n }\n }\n init().then(() => {\n self.onmessage = (event) => {\n onAudio(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n function updateStateFromOutputs(state, outputs) {\n for (const [outName, inName] of Object.entries(STATE_OUTPUT_TO_INPUT)) {\n const next = outputs[outName];\n if (next) {\n state[inName] = next;\n }\n }\n }\n function createZeroStateTensors(session, TensorCtor) {\n const state = {};\n for (const name of session.inputNames) {\n if (name === "audio") {\n continue;\n }\n const dims = STATE_INPUT_DIMS[name];\n if (!dims) {\n continue;\n }\n const size = dims.reduce((a, b) => a * b, 1);\n state[name] = new TensorCtor("float32", new Float32Array(size), dims);\n }\n return state;\n }\n return __toCommonJS(VadAiWorker_exports);\n})();\n/*! Bundled license information:\n\nonnxruntime-web/dist/ort.wasm.bundle.min.mjs:\n (*!\n * ONNX Runtime Web v1.26.0\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n *)\n*/\n',
|
|
4898
|
-
|
|
4899
|
-
|
|
4900
|
-
|
|
4901
|
-
JSON.stringify(
|
|
4902
|
-
JSON.stringify(
|
|
4903
|
-
JSON.stringify(ORT_WASM_URL),
|
|
4904
|
-
JSON.stringify(ORT_MJS_URL)
|
|
4962
|
+
workerFunctionString: isTflite ? '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n\n // src/workers/VadTfliteWorker.ts\n var VadTfliteWorker_exports = {};\n __export(VadTfliteWorker_exports, {\n default: () => VadTfliteWorker_default\n });\n var INPUT_SAMPLES = 320;\n var VadTfliteWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let classifier = null;\n let buffer = new Float32Array(0);\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then((module) => {\n Wav2lip = module;\n const configInput = new Wav2lip.ConfigInput("vad.cfg", true, "/");\n const config = new Wav2lip.Config(configInput);\n classifier = Wav2lip.AudioClassifierFactory.createAlgorithm(config);\n });\n }\n function postError(error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: typeof error === "number" && Wav2lip ? Wav2lip.getExMessage(error) : error\n });\n }\n function appendBuffer(chunk) {\n const next = new Float32Array(buffer.length + chunk.length);\n next.set(buffer, 0);\n next.set(chunk, buffer.length);\n buffer = next;\n }\n function processAudio(data) {\n if (!classifier || !Wav2lip) {\n return;\n }\n try {\n appendBuffer(new Float32Array(data));\n while (buffer.length >= INPUT_SAMPLES) {\n const chunk = buffer.subarray(0, INPUT_SAMPLES);\n buffer = buffer.subarray(INPUT_SAMPLES);\n const inputVec = new Wav2lip.vector$float$();\n for (let i = 0; i < INPUT_SAMPLES; i++) {\n inputVec.push_back(chunk[i]);\n }\n const probs = Wav2lip.vadAccept(classifier, inputVec);\n inputVec.delete();\n const probsSize = probs.size();\n if (probsSize >= 4) {\n const speech0 = probs.get(1);\n const speech1 = probs.get(3);\n const speechProb = Math.max(speech0, speech1);\n self.postMessage({\n type: "data" /* DATA */,\n data: {\n speechProb,\n silenceProb: 1 - speechProb\n }\n });\n }\n probs.delete();\n }\n } catch (error) {\n postError(error);\n }\n }\n init().then(() => {\n self.onmessage = (event) => {\n processAudio(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n return __toCommonJS(VadTfliteWorker_exports);\n})();\n' : '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {\n get: (a, b) => (typeof require !== "undefined" ? require : a)[b]\n }) : x)(function(x) {\n if (typeof require !== "undefined")\n return require.apply(this, arguments);\n throw new Error(\'Dynamic require of "\' + x + \'" is not supported\');\n });\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to2, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to2, key) && key !== except)\n __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to2;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n\n // src/workers/VadOnnxWorker.ts\n var VadOnnxWorker_exports = {};\n __export(VadOnnxWorker_exports, {\n default: () => VadOnnxWorker_default\n });\n\n // node_modules/onnxruntime-web/dist/ort.wasm.bundle.min.mjs\n var import_meta = {};\n var Jt = Object.defineProperty;\n var Xa = Object.getOwnPropertyDescriptor;\n var Qa = Object.getOwnPropertyNames;\n var Za = Object.prototype.hasOwnProperty;\n var qt = ((n) => typeof __require < "u" ? __require : typeof Proxy < "u" ? new Proxy(n, { get: (t, a) => (typeof __require < "u" ? __require : t)[a] }) : n)(function(n) {\n if (typeof __require < "u")\n return __require.apply(this, arguments);\n throw Error(\'Dynamic require of "\' + n + \'" is not supported\');\n });\n var N = (n, t) => () => (n && (t = n(n = 0)), t);\n var ut = (n, t) => {\n for (var a in t)\n Jt(n, a, { get: t[a], enumerable: true });\n };\n var Ka = (n, t, a, u) => {\n if (t && typeof t == "object" || typeof t == "function")\n for (let o of Qa(t))\n !Za.call(n, o) && o !== a && Jt(n, o, { get: () => t[o], enumerable: !(u = Xa(t, o)) || u.enumerable });\n return n;\n };\n var Xt = (n) => Ka(Jt({}, "__esModule", { value: true }), n);\n var ft;\n var Be;\n var qe;\n var es;\n var dr;\n var Qt = N(() => {\n "use strict";\n ft = /* @__PURE__ */ new Map(), Be = [], qe = (n, t, a) => {\n if (t && typeof t.init == "function" && typeof t.createInferenceSessionHandler == "function") {\n let u = ft.get(n);\n if (u === void 0)\n ft.set(n, { backend: t, priority: a });\n else {\n if (u.priority > a)\n return;\n if (u.priority === a && u.backend !== t)\n throw new Error(`cannot register backend "${n}" using priority ${a}`);\n }\n if (a >= 0) {\n let o = Be.indexOf(n);\n o !== -1 && Be.splice(o, 1);\n for (let d = 0; d < Be.length; d++)\n if (ft.get(Be[d]).priority <= a) {\n Be.splice(d, 0, n);\n return;\n }\n Be.push(n);\n }\n return;\n }\n throw new TypeError("not a valid backend");\n }, es = async (n) => {\n let t = ft.get(n);\n if (!t)\n return "backend not found.";\n if (t.initialized)\n return t.backend;\n if (t.aborted)\n return t.error;\n {\n let a = !!t.initPromise;\n try {\n return a || (t.initPromise = t.backend.init(n)), await t.initPromise, t.initialized = true, t.backend;\n } catch (u) {\n return a || (t.error = `${u}`, t.aborted = true), t.error;\n } finally {\n delete t.initPromise;\n }\n }\n }, dr = async (n) => {\n let t = n.executionProviders || [], a = t.map((m) => typeof m == "string" ? m : m.name), u = a.length === 0 ? Be : a, o, d = [], c = /* @__PURE__ */ new Set();\n for (let m of u) {\n let h = await es(m);\n typeof h == "string" ? d.push({ name: m, err: h }) : (o || (o = h), o === h && c.add(m));\n }\n if (!o)\n throw new Error(`no available backend found. ERR: ${d.map((m) => `[${m.name}] ${m.err}`).join(", ")}`);\n for (let { name: m, err: h } of d)\n a.includes(m) && console.warn(`removing requested execution provider "${m}" from session options because it is not available: ${h}`);\n let l = t.filter((m) => c.has(typeof m == "string" ? m : m.name));\n return [o, new Proxy(n, { get: (m, h) => h === "executionProviders" ? l : Reflect.get(m, h) })];\n };\n });\n var pr = N(() => {\n "use strict";\n Qt();\n });\n var mr;\n var hr = N(() => {\n "use strict";\n mr = "1.26.0";\n });\n var wr;\n var J;\n var Zt = N(() => {\n "use strict";\n hr();\n wr = "warning", J = { wasm: {}, webgl: {}, webgpu: {}, versions: { common: mr }, set logLevel(n) {\n if (n !== void 0) {\n if (typeof n != "string" || ["verbose", "info", "warning", "error", "fatal"].indexOf(n) === -1)\n throw new Error(`Unsupported logging level: ${n}`);\n wr = n;\n }\n }, get logLevel() {\n return wr;\n } };\n Object.defineProperty(J, "logLevel", { enumerable: true });\n });\n var Y;\n var br = N(() => {\n "use strict";\n Zt();\n Y = J;\n });\n var yr;\n var gr;\n var Er = N(() => {\n "use strict";\n yr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas") : new OffscreenCanvas(1, 1);\n a.width = n.dims[3], a.height = n.dims[2];\n let u = a.getContext("2d");\n if (u != null) {\n let o, d;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[3]) : (o = n.dims[3], d = n.dims[2]);\n let c = t?.format !== void 0 ? t.format : "RGB", l = t?.norm, m, h;\n l === void 0 || l.mean === void 0 ? m = [255, 255, 255, 255] : typeof l.mean == "number" ? m = [l.mean, l.mean, l.mean, l.mean] : (m = [l.mean[0], l.mean[1], l.mean[2], 0], l.mean[3] !== void 0 && (m[3] = l.mean[3])), l === void 0 || l.bias === void 0 ? h = [0, 0, 0, 0] : typeof l.bias == "number" ? h = [l.bias, l.bias, l.bias, l.bias] : (h = [l.bias[0], l.bias[1], l.bias[2], 0], l.bias[3] !== void 0 && (h[3] = l.bias[3]));\n let g = d * o, b = 0, y = g, T = g * 2, I = -1;\n c === "RGBA" ? (b = 0, y = g, T = g * 2, I = g * 3) : c === "RGB" ? (b = 0, y = g, T = g * 2) : c === "RBG" && (b = 0, T = g, y = g * 2);\n for (let D = 0; D < d; D++)\n for (let z = 0; z < o; z++) {\n let v = (n.data[b++] - h[0]) * m[0], O = (n.data[y++] - h[1]) * m[1], F = (n.data[T++] - h[2]) * m[2], _ = I === -1 ? 255 : (n.data[I++] - h[3]) * m[3];\n u.fillStyle = "rgba(" + v + "," + O + "," + F + "," + _ + ")", u.fillRect(z, D, 1, 1);\n }\n if ("toDataURL" in a)\n return a.toDataURL();\n throw new Error("toDataURL is not supported");\n } else\n throw new Error("Can not access image data");\n }, gr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas").getContext("2d") : new OffscreenCanvas(1, 1).getContext("2d"), u;\n if (a != null) {\n let o, d, c;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[1], c = n.dims[3]) : (o = n.dims[3], d = n.dims[2], c = n.dims[1]);\n let l = t !== void 0 && t.format !== void 0 ? t.format : "RGB", m = t?.norm, h, g;\n m === void 0 || m.mean === void 0 ? h = [255, 255, 255, 255] : typeof m.mean == "number" ? h = [m.mean, m.mean, m.mean, m.mean] : (h = [m.mean[0], m.mean[1], m.mean[2], 255], m.mean[3] !== void 0 && (h[3] = m.mean[3])), m === void 0 || m.bias === void 0 ? g = [0, 0, 0, 0] : typeof m.bias == "number" ? g = [m.bias, m.bias, m.bias, m.bias] : (g = [m.bias[0], m.bias[1], m.bias[2], 0], m.bias[3] !== void 0 && (g[3] = m.bias[3]));\n let b = d * o;\n if (t !== void 0 && (t.format !== void 0 && c === 4 && t.format !== "RGBA" || c === 3 && t.format !== "RGB" && t.format !== "BGR"))\n throw new Error("Tensor format doesn\'t match input tensor dims");\n let y = 4, T = 0, I = 1, D = 2, z = 3, v = 0, O = b, F = b * 2, _ = -1;\n l === "RGBA" ? (v = 0, O = b, F = b * 2, _ = b * 3) : l === "RGB" ? (v = 0, O = b, F = b * 2) : l === "RBG" && (v = 0, F = b, O = b * 2), u = a.createImageData(o, d);\n for (let k = 0; k < d * o; T += y, I += y, D += y, z += y, k++)\n u.data[T] = (n.data[v++] - g[0]) * h[0], u.data[I] = (n.data[O++] - g[1]) * h[1], u.data[D] = (n.data[F++] - g[2]) * h[2], u.data[z] = _ === -1 ? 255 : (n.data[_++] - g[3]) * h[3];\n } else\n throw new Error("Can not access image data");\n return u;\n };\n });\n var Kt;\n var Tr;\n var Sr;\n var vr;\n var Or;\n var Ar;\n var Ir = N(() => {\n "use strict";\n ct();\n Kt = (n, t) => {\n if (n === void 0)\n throw new Error("Image buffer must be defined");\n if (t.height === void 0 || t.width === void 0)\n throw new Error("Image height and width must be defined");\n if (t.tensorLayout === "NHWC")\n throw new Error("NHWC Tensor layout is not supported yet");\n let { height: a, width: u } = t, o = t.norm ?? { mean: 255, bias: 0 }, d, c;\n typeof o.mean == "number" ? d = [o.mean, o.mean, o.mean, o.mean] : d = [o.mean[0], o.mean[1], o.mean[2], o.mean[3] ?? 255], typeof o.bias == "number" ? c = [o.bias, o.bias, o.bias, o.bias] : c = [o.bias[0], o.bias[1], o.bias[2], o.bias[3] ?? 0];\n let l = t.format !== void 0 ? t.format : "RGBA", m = t.tensorFormat !== void 0 && t.tensorFormat !== void 0 ? t.tensorFormat : "RGB", h = a * u, g = m === "RGBA" ? new Float32Array(h * 4) : new Float32Array(h * 3), b = 4, y = 0, T = 1, I = 2, D = 3, z = 0, v = h, O = h * 2, F = -1;\n l === "RGB" && (b = 3, y = 0, T = 1, I = 2, D = -1), m === "RGBA" ? F = h * 3 : m === "RBG" ? (z = 0, O = h, v = h * 2) : m === "BGR" && (O = 0, v = h, z = h * 2);\n for (let k = 0; k < h; k++, y += b, I += b, T += b, D += b)\n g[z++] = (n[y] + c[0]) / d[0], g[v++] = (n[T] + c[1]) / d[1], g[O++] = (n[I] + c[2]) / d[2], F !== -1 && D !== -1 && (g[F++] = (n[D] + c[3]) / d[3]);\n return m === "RGBA" ? new Q("float32", g, [1, 4, a, u]) : new Q("float32", g, [1, 3, a, u]);\n }, Tr = async (n, t) => {\n let a = typeof HTMLImageElement < "u" && n instanceof HTMLImageElement, u = typeof ImageData < "u" && n instanceof ImageData, o = typeof ImageBitmap < "u" && n instanceof ImageBitmap, d = typeof n == "string", c, l = t ?? {}, m = () => {\n if (typeof document < "u")\n return document.createElement("canvas");\n if (typeof OffscreenCanvas < "u")\n return new OffscreenCanvas(1, 1);\n throw new Error("Canvas is not supported");\n }, h = (g) => typeof HTMLCanvasElement < "u" && g instanceof HTMLCanvasElement || g instanceof OffscreenCanvas ? g.getContext("2d") : null;\n if (a) {\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n if (t !== void 0 && t.resizedHeight !== void 0 && t.resizedWidth !== void 0 && (y = t.resizedHeight, T = t.resizedWidth), t !== void 0) {\n if (l = t, t.tensorFormat !== void 0)\n throw new Error("Image input config format must be RGBA for HTMLImageElement");\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n } else\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n b.drawImage(n, 0, 0), c = b.getImageData(0, 0, T, y).data;\n } else\n throw new Error("Can not access image data");\n } else if (u) {\n let g, b;\n if (t !== void 0 && t.resizedWidth !== void 0 && t.resizedHeight !== void 0 ? (g = t.resizedHeight, b = t.resizedWidth) : (g = n.height, b = n.width), t !== void 0 && (l = t), l.format = "RGBA", l.height = g, l.width = b, t !== void 0) {\n let y = m();\n y.width = b, y.height = g;\n let T = h(y);\n if (T != null)\n T.putImageData(n, 0, 0), c = T.getImageData(0, 0, b, g).data;\n else\n throw new Error("Can not access image data");\n } else\n c = n.data;\n } else if (o) {\n if (t === void 0)\n throw new Error("Please provide image config with format for Imagebitmap");\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n return b.drawImage(n, 0, 0, T, y), c = b.getImageData(0, 0, T, y).data, l.height = y, l.width = T, Kt(c, l);\n } else\n throw new Error("Can not access image data");\n } else {\n if (d)\n return new Promise((g, b) => {\n let y = m(), T = h(y);\n if (!n || !T)\n return b();\n let I = new Image();\n I.crossOrigin = "Anonymous", I.src = n, I.onload = () => {\n y.width = I.width, y.height = I.height, T.drawImage(I, 0, 0, y.width, y.height);\n let D = T.getImageData(0, 0, y.width, y.height);\n l.height = y.height, l.width = y.width, g(Kt(D.data, l));\n };\n });\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }\n if (c !== void 0)\n return Kt(c, l);\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }, Sr = (n, t) => {\n let { width: a, height: u, download: o, dispose: d } = t, c = [1, u, a, 4];\n return new Q({ location: "texture", type: "float32", texture: n, dims: c, download: o, dispose: d });\n }, vr = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "gpu-buffer", type: a ?? "float32", gpuBuffer: n, dims: u, download: o, dispose: d });\n }, Or = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "ml-tensor", type: a ?? "float32", mlTensor: n, dims: u, download: o, dispose: d });\n }, Ar = (n, t, a) => new Q({ location: "cpu-pinned", type: n, data: t, dims: a ?? [t.length] });\n });\n var Le;\n var Xe;\n var Br;\n var Lr;\n var _r = N(() => {\n "use strict";\n Le = /* @__PURE__ */ new Map([["float32", Float32Array], ["uint8", Uint8Array], ["int8", Int8Array], ["uint16", Uint16Array], ["int16", Int16Array], ["int32", Int32Array], ["bool", Uint8Array], ["float64", Float64Array], ["uint32", Uint32Array], ["int4", Uint8Array], ["uint4", Uint8Array]]), Xe = /* @__PURE__ */ new Map([[Float32Array, "float32"], [Uint8Array, "uint8"], [Int8Array, "int8"], [Uint16Array, "uint16"], [Int16Array, "int16"], [Int32Array, "int32"], [Float64Array, "float64"], [Uint32Array, "uint32"]]), Br = false, Lr = () => {\n if (!Br) {\n Br = true;\n let n = typeof BigInt64Array < "u" && BigInt64Array.from, t = typeof BigUint64Array < "u" && BigUint64Array.from, a = globalThis.Float16Array, u = typeof a < "u" && a.from;\n n && (Le.set("int64", BigInt64Array), Xe.set(BigInt64Array, "int64")), t && (Le.set("uint64", BigUint64Array), Xe.set(BigUint64Array, "uint64")), u ? (Le.set("float16", a), Xe.set(a, "float16")) : Le.set("float16", Uint16Array);\n }\n };\n });\n var Pr;\n var Dr;\n var Ur = N(() => {\n "use strict";\n ct();\n Pr = (n) => {\n let t = 1;\n for (let a = 0; a < n.length; a++) {\n let u = n[a];\n if (typeof u != "number" || !Number.isSafeInteger(u))\n throw new TypeError(`dims[${a}] must be an integer, got: ${u}`);\n if (u < 0)\n throw new RangeError(`dims[${a}] must be a non-negative integer, got: ${u}`);\n t *= u;\n }\n return t;\n }, Dr = (n, t) => {\n switch (n.location) {\n case "cpu":\n return new Q(n.type, n.data, t);\n case "cpu-pinned":\n return new Q({ location: "cpu-pinned", data: n.data, type: n.type, dims: t });\n case "texture":\n return new Q({ location: "texture", texture: n.texture, type: n.type, dims: t });\n case "gpu-buffer":\n return new Q({ location: "gpu-buffer", gpuBuffer: n.gpuBuffer, type: n.type, dims: t });\n case "ml-tensor":\n return new Q({ location: "ml-tensor", mlTensor: n.mlTensor, type: n.type, dims: t });\n default:\n throw new Error(`tensorReshape: tensor location ${n.location} is not supported`);\n }\n };\n });\n var Q;\n var ct = N(() => {\n "use strict";\n Er();\n Ir();\n _r();\n Ur();\n Q = class {\n constructor(t, a, u) {\n Lr();\n let o, d;\n if (typeof t == "object" && "location" in t)\n switch (this.dataLocation = t.location, o = t.type, d = t.dims, t.location) {\n case "cpu-pinned": {\n let l = Le.get(o);\n if (!l)\n throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);\n if (!(t.data instanceof l))\n throw new TypeError(`buffer should be of type ${l.name}`);\n this.cpuData = t.data;\n break;\n }\n case "texture": {\n if (o !== "float32")\n throw new TypeError(`unsupported type "${o}" to create tensor from texture`);\n this.gpuTextureData = t.texture, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "gpu-buffer": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from gpu buffer`);\n this.gpuBufferData = t.gpuBuffer, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "ml-tensor": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint64" && o !== "int8" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from MLTensor`);\n this.mlTensorData = t.mlTensor, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n default:\n throw new Error(`Tensor constructor: unsupported location \'${this.dataLocation}\'`);\n }\n else {\n let l, m;\n if (typeof t == "string")\n if (o = t, m = u, t === "string") {\n if (!Array.isArray(a))\n throw new TypeError("A string tensor\'s data must be a string array.");\n l = a;\n } else {\n let h = Le.get(t);\n if (h === void 0)\n throw new TypeError(`Unsupported tensor type: ${t}.`);\n if (Array.isArray(a)) {\n if (t === "float16" && h === Uint16Array || t === "uint4" || t === "int4")\n throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${h.name} as data.`);\n t === "uint64" || t === "int64" ? l = h.from(a, BigInt) : l = h.from(a);\n } else if (a instanceof h)\n l = a;\n else if (a instanceof Uint8ClampedArray)\n if (t === "uint8")\n l = Uint8Array.from(a);\n else\n throw new TypeError("A Uint8ClampedArray tensor\'s data must be type of uint8");\n else if (t === "float16" && a instanceof Uint16Array && h !== Uint16Array)\n l = new globalThis.Float16Array(a.buffer, a.byteOffset, a.length);\n else\n throw new TypeError(`A ${o} tensor\'s data must be type of ${h}`);\n }\n else if (m = a, Array.isArray(t)) {\n if (t.length === 0)\n throw new TypeError("Tensor type cannot be inferred from an empty array.");\n let h = typeof t[0];\n if (h === "string")\n o = "string", l = t;\n else if (h === "boolean")\n o = "bool", l = Uint8Array.from(t);\n else\n throw new TypeError(`Invalid element type of data array: ${h}.`);\n } else if (t instanceof Uint8ClampedArray)\n o = "uint8", l = Uint8Array.from(t);\n else {\n let h = Xe.get(t.constructor);\n if (h === void 0)\n throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);\n o = h, l = t;\n }\n if (m === void 0)\n m = [l.length];\n else if (!Array.isArray(m))\n throw new TypeError("A tensor\'s dims must be a number array");\n d = m, this.cpuData = l, this.dataLocation = "cpu";\n }\n let c = Pr(d);\n if (this.cpuData && c !== this.cpuData.length && !((o === "uint4" || o === "int4") && Math.ceil(c / 2) === this.cpuData.length))\n throw new Error(`Tensor\'s size(${c}) does not match data length(${this.cpuData.length}).`);\n this.type = o, this.dims = d, this.size = c;\n }\n static async fromImage(t, a) {\n return Tr(t, a);\n }\n static fromTexture(t, a) {\n return Sr(t, a);\n }\n static fromGpuBuffer(t, a) {\n return vr(t, a);\n }\n static fromMLTensor(t, a) {\n return Or(t, a);\n }\n static fromPinnedBuffer(t, a, u) {\n return Ar(t, a, u);\n }\n toDataURL(t) {\n return yr(this, t);\n }\n toImageData(t) {\n return gr(this, t);\n }\n get data() {\n if (this.ensureValid(), !this.cpuData)\n throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");\n return this.cpuData;\n }\n get location() {\n return this.dataLocation;\n }\n get texture() {\n if (this.ensureValid(), !this.gpuTextureData)\n throw new Error("The data is not stored as a WebGL texture.");\n return this.gpuTextureData;\n }\n get gpuBuffer() {\n if (this.ensureValid(), !this.gpuBufferData)\n throw new Error("The data is not stored as a WebGPU buffer.");\n return this.gpuBufferData;\n }\n get mlTensor() {\n if (this.ensureValid(), !this.mlTensorData)\n throw new Error("The data is not stored as a WebNN MLTensor.");\n return this.mlTensorData;\n }\n async getData(t) {\n switch (this.ensureValid(), this.dataLocation) {\n case "cpu":\n case "cpu-pinned":\n return this.data;\n case "texture":\n case "gpu-buffer":\n case "ml-tensor": {\n if (!this.downloader)\n throw new Error("The current tensor is not created with a specified data downloader.");\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n try {\n this.isDownloading = true;\n let a = await this.downloader();\n return this.downloader = void 0, this.dataLocation = "cpu", this.cpuData = a, t && this.disposer && (this.disposer(), this.disposer = void 0), a;\n } finally {\n this.isDownloading = false;\n }\n }\n default:\n throw new Error(`cannot get data from location: ${this.dataLocation}`);\n }\n }\n dispose() {\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n this.disposer && (this.disposer(), this.disposer = void 0), this.cpuData = void 0, this.gpuTextureData = void 0, this.gpuBufferData = void 0, this.mlTensorData = void 0, this.downloader = void 0, this.isDownloading = void 0, this.dataLocation = "none";\n }\n ensureValid() {\n if (this.dataLocation === "none")\n throw new Error("The tensor is disposed.");\n }\n reshape(t) {\n if (this.ensureValid(), this.downloader || this.disposer)\n throw new Error("Cannot reshape a tensor that owns GPU resource.");\n return Dr(this, t);\n }\n };\n });\n var de;\n var en = N(() => {\n "use strict";\n ct();\n de = Q;\n });\n var xr;\n var Mr;\n var _e;\n var Pe;\n var De;\n var Ue;\n var tn = N(() => {\n "use strict";\n Zt();\n xr = (n, t) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeStamp(`${n}::ORT::${t}`);\n }, Mr = (n, t) => {\n let a = new Error().stack?.split(/\\r\\n|\\r|\\n/g) || [], u = false;\n for (let o = 0; o < a.length; o++) {\n if (u && !a[o].includes("TRACE_FUNC")) {\n let d = `FUNC_${n}::${a[o].trim().split(" ")[1]}`;\n t && (d += `::${t}`), xr("CPU", d);\n return;\n }\n a[o].includes("TRACE_FUNC") && (u = true);\n }\n }, _e = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("BEGIN", n);\n }, Pe = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("END", n);\n }, De = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.time(`ORT::${n}`);\n }, Ue = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeEnd(`ORT::${n}`);\n };\n });\n var lt;\n var Cr = N(() => {\n "use strict";\n Qt();\n en();\n tn();\n lt = class n {\n constructor(t) {\n this.handler = t;\n }\n async run(t, a, u) {\n _e(), De("InferenceSession.run");\n let o = {}, d = {};\n if (typeof t != "object" || t === null || t instanceof de || Array.isArray(t))\n throw new TypeError("\'feeds\' must be an object that use input names as keys and OnnxValue as corresponding values.");\n let c = true;\n if (typeof a == "object") {\n if (a === null)\n throw new TypeError("Unexpected argument[1]: cannot be null.");\n if (a instanceof de)\n throw new TypeError("\'fetches\' cannot be a Tensor");\n if (Array.isArray(a)) {\n if (a.length === 0)\n throw new TypeError("\'fetches\' cannot be an empty array.");\n c = false;\n for (let h of a) {\n if (typeof h != "string")\n throw new TypeError("\'fetches\' must be a string array or an object.");\n if (this.outputNames.indexOf(h) === -1)\n throw new RangeError(`\'fetches\' contains invalid output name: ${h}.`);\n o[h] = null;\n }\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else {\n let h = false, g = Object.getOwnPropertyNames(a);\n for (let b of this.outputNames)\n if (g.indexOf(b) !== -1) {\n let y = a[b];\n (y === null || y instanceof de) && (h = true, c = false, o[b] = y);\n }\n if (h) {\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else\n d = a;\n }\n } else if (typeof a < "u")\n throw new TypeError("Unexpected argument[1]: must be \'fetches\' or \'options\'.");\n for (let h of this.inputNames)\n if (typeof t[h] > "u")\n throw new Error(`input \'${h}\' is missing in \'feeds\'.`);\n if (c)\n for (let h of this.outputNames)\n o[h] = null;\n let l = await this.handler.run(t, o, d), m = {};\n for (let h in l)\n if (Object.hasOwnProperty.call(l, h)) {\n let g = l[h];\n g instanceof de ? m[h] = g : m[h] = new de(g.type, g.data, g.dims);\n }\n return Ue("InferenceSession.run"), Pe(), m;\n }\n async release() {\n return this.handler.dispose();\n }\n static async create(t, a, u, o) {\n _e(), De("InferenceSession.create");\n let d, c = {};\n if (typeof t == "string") {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof Uint8Array) {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof ArrayBuffer || typeof SharedArrayBuffer < "u" && t instanceof SharedArrayBuffer) {\n let g = t, b = 0, y = t.byteLength;\n if (typeof a == "object" && a !== null)\n c = a;\n else if (typeof a == "number") {\n if (b = a, !Number.isSafeInteger(b))\n throw new RangeError("\'byteOffset\' must be an integer.");\n if (b < 0 || b >= g.byteLength)\n throw new RangeError(`\'byteOffset\' is out of range [0, ${g.byteLength}).`);\n if (y = t.byteLength - b, typeof u == "number") {\n if (y = u, !Number.isSafeInteger(y))\n throw new RangeError("\'byteLength\' must be an integer.");\n if (y <= 0 || b + y > g.byteLength)\n throw new RangeError(`\'byteLength\' is out of range (0, ${g.byteLength - b}].`);\n if (typeof o == "object" && o !== null)\n c = o;\n else if (typeof o < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (typeof u < "u")\n throw new TypeError("\'byteLength\' must be a number.");\n } else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n d = new Uint8Array(g, b, y);\n } else\n throw new TypeError("Unexpected argument[0]: must be \'path\' or \'buffer\'.");\n let [l, m] = await dr(c), h = await l.createInferenceSessionHandler(d, m);\n return Ue("InferenceSession.create"), Pe(), new n(h);\n }\n startProfiling() {\n this.handler.startProfiling();\n }\n endProfiling() {\n this.handler.endProfiling();\n }\n get inputNames() {\n return this.handler.inputNames;\n }\n get outputNames() {\n return this.handler.outputNames;\n }\n get inputMetadata() {\n return this.handler.inputMetadata;\n }\n get outputMetadata() {\n return this.handler.outputMetadata;\n }\n };\n });\n var ts;\n var Rr = N(() => {\n "use strict";\n Cr();\n ts = lt;\n });\n var Fr = N(() => {\n "use strict";\n });\n var Nr = N(() => {\n "use strict";\n });\n var kr = N(() => {\n "use strict";\n });\n var Wr = N(() => {\n "use strict";\n });\n var nn = {};\n ut(nn, { InferenceSession: () => ts, TRACE: () => xr, TRACE_EVENT_BEGIN: () => De, TRACE_EVENT_END: () => Ue, TRACE_FUNC_BEGIN: () => _e, TRACE_FUNC_END: () => Pe, Tensor: () => de, env: () => Y, registerBackend: () => qe });\n var Te = N(() => {\n "use strict";\n pr();\n br();\n Rr();\n en();\n Fr();\n Nr();\n tn();\n kr();\n Wr();\n });\n var dt = N(() => {\n "use strict";\n });\n var Hr = {};\n ut(Hr, { default: () => ns });\n var $r;\n var zr;\n var ns;\n var jr = N(() => {\n "use strict";\n rn();\n xe();\n pt();\n $r = "ort-wasm-proxy-worker", zr = globalThis.self?.name === $r;\n zr && (self.onmessage = (n) => {\n let { type: t, in: a } = n.data;\n try {\n switch (t) {\n case "init-wasm":\n mt(a.wasm).then(() => {\n ht(a).then(() => {\n postMessage({ type: t });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n break;\n case "init-ep": {\n let { epName: u, env: o } = a;\n wt(o, u).then(() => {\n postMessage({ type: t });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "copy-from": {\n let { buffer: u } = a, o = Qe(u);\n postMessage({ type: t, out: o });\n break;\n }\n case "create": {\n let { model: u, options: o } = a;\n bt(u, o).then((d) => {\n postMessage({ type: t, out: d });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "release":\n yt(a), postMessage({ type: t });\n break;\n case "run": {\n let { sessionId: u, inputIndices: o, inputs: d, outputIndices: c, options: l } = a;\n gt(u, o, d, c, new Array(c.length).fill(null), l).then((m) => {\n m.some((h) => h[3] !== "cpu") ? postMessage({ type: t, err: "Proxy does not support non-cpu tensor location." }) : postMessage({ type: t, out: m }, Tt([...d, ...m]));\n }, (m) => {\n postMessage({ type: t, err: m });\n });\n break;\n }\n case "end-profiling":\n Et(a), postMessage({ type: t });\n break;\n default:\n }\n } catch (u) {\n postMessage({ type: t, err: u });\n }\n });\n ns = zr ? null : (n) => new Worker(n ?? oe, { type: "module", name: $r });\n });\n var Yr = {};\n ut(Yr, { default: () => rs });\n async function Vr(n = {}) {\n var t = n, a = !!globalThis.window, u = !!globalThis.WorkerGlobalScope, o = u && self.name?.startsWith("em-pthread");\n t.mountExternalData = (e, r) => {\n e.startsWith("./") && (e = e.substring(2)), (t.Rb || (t.Rb = /* @__PURE__ */ new Map())).set(e, r);\n }, t.unmountExternalData = () => {\n delete t.Rb;\n }, globalThis.SharedArrayBuffer ?? new WebAssembly.Memory({ initial: 0, maximum: 0, shared: true }).buffer.constructor;\n var d, c, l = (e, r) => {\n throw r;\n }, m = import_meta.url, h = "";\n if (a || u) {\n try {\n h = new URL(".", m).href;\n } catch {\n }\n u && (c = (e) => {\n var r = new XMLHttpRequest();\n return r.open("GET", e, false), r.responseType = "arraybuffer", r.send(null), new Uint8Array(r.response);\n }), d = async (e) => {\n if (k(e))\n return new Promise((i, s) => {\n var f = new XMLHttpRequest();\n f.open("GET", e, true), f.responseType = "arraybuffer", f.onload = () => {\n f.status == 200 || f.status == 0 && f.response ? i(f.response) : s(f.status);\n }, f.onerror = s, f.send(null);\n });\n var r = await fetch(e, { credentials: "same-origin" });\n if (r.ok)\n return r.arrayBuffer();\n throw Error(r.status + " : " + r.url);\n };\n }\n var g, b, y, T, I, D, z = console.log.bind(console), v = console.error.bind(console), O = z, F = v, _ = false, k = (e) => e.startsWith("file://");\n function w() {\n ge.buffer != j.buffer && ee();\n }\n if (o) {\n let e = function(r) {\n try {\n var i = r.data, s = i.Pb;\n if (s === "load") {\n let f = [];\n self.onmessage = (p) => f.push(p), D = () => {\n postMessage({ Pb: "loaded" });\n for (let p of f)\n e(p);\n self.onmessage = e;\n };\n for (let p of i.Zb)\n t[p] && !t[p].proxy || (t[p] = (...E) => {\n postMessage({ Pb: "callHandler", Yb: p, args: E });\n }, p == "print" && (O = t[p]), p == "printErr" && (F = t[p]));\n ge = i.dc, ee(), b = i.ec, Ut(), it();\n } else if (s === "run") {\n (function(f) {\n var p = (w(), W)[f + 52 >>> 2 >>> 0];\n f = (w(), W)[f + 56 >>> 2 >>> 0], sr(p, p - f), P(p);\n })(i.Ob), zt(i.Ob, 0, 0, 1, 0, 0), wn(), Ft(i.Ob), Z ||= true;\n try {\n Ao(i.bc, i.Tb);\n } catch (f) {\n if (f != "unwind")\n throw f;\n }\n } else\n i.target !== "setimmediate" && (s === "checkMailbox" ? Z && rt() : s && (F(`worker: received unknown command ${s}`), F(i)));\n } catch (f) {\n throw tr(), f;\n }\n };\n var Ss = e, Z = false;\n self.onunhandledrejection = (r) => {\n throw r.reason || r;\n }, self.onmessage = e;\n }\n var j, ne, pe, B, W, re, me, A, K, je = false;\n function ee() {\n var e = ge.buffer;\n t.HEAP8 = j = new Int8Array(e), pe = new Int16Array(e), t.HEAPU8 = ne = new Uint8Array(e), new Uint16Array(e), t.HEAP32 = B = new Int32Array(e), t.HEAPU32 = W = new Uint32Array(e), re = new Float32Array(e), me = new Float64Array(e), A = new BigInt64Array(e), new BigUint64Array(e);\n }\n function he() {\n je = true, o ? D() : Ee.Ta();\n }\n function H(e) {\n throw F(e = "Aborted(" + e + ")"), _ = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), I?.(e), e;\n }\n function q() {\n return { a: { R: fa, f: Io, w: Bo, e: Lo, k: _o, g: Po, S: Do, b: Uo, G: xo, ta: vn, j: Mo, L: In, Ja: Bn, pa: Ln, ra: _n, Ka: Pn, Ha: Dn, Aa: Un, Ga: xn, Y: Mn, qa: Cn, na: Rn, Ia: Fn, oa: Nn, Pa: Co, Da: Ro, la: No, ua: ko, ia: Wo, T: Go, Ca: Ft, Ma: $o, xa: zo, ya: Ho, za: jo, va: $n, wa: zn, ja: Hn, Ra: Yo, Oa: Xo, V: Qo, U: Zo, Na: Jo, F: Ko, La: ea, ma: ta, u: Vo, H: na, Q: at, ka: oa, aa: ra, Sa: aa, Ea: Yn, Fa: Jn, sa: ye, I: qn, X: Xn, Ba: Qn, W: Zn, _: ja, M: Wa, $: Ha, N: ka, v: Pa, c: pa, m: la, n: ca, q: va, ba: Ra, x: Ba, o: wa, O: Fa, D: Ga, J: Ca, ca: Ma, da: xa, A: Oa, P: Ua, ea: Da, z: La, E: Na, d: da, r: ha, i: ma, Z: Va, l: ya, p: ga, s: ba, t: Ea, y: Aa, fa: _a, B: $a, K: Ia, C: za, ga: Sa, ha: Ta, h: ia, a: ge, Qa: V } };\n }\n async function Ut() {\n function e(s, f) {\n return Ee = s.exports, Ee = function() {\n var p = Ee, E = (x) => () => x() >>> 0, S = (x) => (R) => x(R) >>> 0;\n return (p = Object.assign({}, p)).sb = E(p.sb), p.ub = S(p.ub), p.Ib = S(p.Ib), p.Jb = E(p.Jb), p.Nb = S(p.Nb), p;\n }(), mn.push(Ee.vb), s = Ee, t._OrtInit = s.Ua, t._OrtGetLastError = s.Va, t._OrtCreateSessionOptions = s.Wa, t._OrtAppendExecutionProvider = s.Xa, t._OrtAddFreeDimensionOverride = s.Ya, t._OrtAddSessionConfigEntry = s.Za, t._OrtReleaseSessionOptions = s._a, t._OrtCreateSession = s.$a, t._OrtReleaseSession = s.ab, t._OrtGetInputOutputCount = s.bb, t._OrtGetInputOutputMetadata = s.cb, t._OrtFree = s.db, t._OrtCreateTensor = s.eb, t._OrtGetTensorData = s.fb, t._OrtReleaseTensor = s.gb, t._OrtCreateRunOptions = s.hb, t._OrtAddRunConfigEntry = s.ib, t._OrtReleaseRunOptions = s.jb, t._OrtCreateBinding = s.kb, t._OrtBindInput = s.lb, t._OrtBindOutput = s.mb, t._OrtClearBoundOutputs = s.nb, t._OrtReleaseBinding = s.ob, t._OrtRunWithBinding = s.pb, t._OrtRun = s.qb, t._OrtEndProfiling = s.rb, st = s.sb, Kn = t._free = s.tb, er = t._malloc = s.ub, zt = s.xb, tr = s.yb, nr = s.zb, rr = s.Ab, Ht = s.Bb, or = s.Cb, ar = s.Db, M = s.Eb, Je = s.Fb, sr = s.Gb, P = s.Hb, jt = s.Ib, U = s.Jb, ir = s.Kb, Vt = s.Lb, ur = s.Mb, fr = s.Nb, cr = s.wb, b = f, Ee;\n }\n var r, i = q();\n return t.instantiateWasm ? new Promise((s) => {\n t.instantiateWasm(i, (f, p) => {\n s(e(f, p));\n });\n }) : o ? e(new WebAssembly.Instance(b, q()), b) : (K ??= t.locateFile ? t.locateFile ? t.locateFile("ort-wasm-simd-threaded.wasm", h) : h + "ort-wasm-simd-threaded.wasm" : new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href, r = await async function(s) {\n var f = K;\n if (!g && !k(f))\n try {\n var p = fetch(f, { credentials: "same-origin" });\n return await WebAssembly.instantiateStreaming(p, s);\n } catch (E) {\n F(`wasm streaming compile failed: ${E}`), F("falling back to ArrayBuffer instantiation");\n }\n return async function(E, S) {\n try {\n var x = await async function(R) {\n if (!g)\n try {\n var X = await d(R);\n return new Uint8Array(X);\n } catch {\n }\n if (R == K && g)\n R = new Uint8Array(g);\n else {\n if (!c)\n throw "both async and sync fetching of the wasm failed";\n R = c(R);\n }\n return R;\n }(E);\n return await WebAssembly.instantiate(x, S);\n } catch (R) {\n F(`failed to asynchronously prepare wasm: ${R}`), H(R);\n }\n }(f, s);\n }(i), e(r.instance, r.module));\n }\n class Se {\n name = "ExitStatus";\n constructor(r) {\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var ve = (e) => {\n e.terminate(), e.onmessage = () => {\n };\n }, Ve = [], Re = 0, te = null, ue = (e) => {\n ce.length == 0 && (yn(), bn(ce[0]));\n var r = ce.pop();\n if (!r)\n return 6;\n Fe.push(r), Oe[e.Ob] = r, r.Ob = e.Ob;\n var i = { Pb: "run", bc: e.ac, Tb: e.Tb, Ob: e.Ob };\n return r.postMessage(i, e.Xb), 0;\n }, se = 0, L = (e, r, ...i) => {\n var s, f = 16 * i.length, p = U(), E = jt(f), S = E >>> 3;\n for (s of i)\n typeof s == "bigint" ? ((w(), A)[S++ >>> 0] = 1n, (w(), A)[S++ >>> 0] = s) : ((w(), A)[S++ >>> 0] = 0n, (w(), me)[S++ >>> 0] = s);\n return e = nr(e, 0, f, E, r), P(p), e;\n };\n function V(e) {\n if (o)\n return L(0, 1, e);\n if (y = e, !(0 < se)) {\n for (var r of Fe)\n ve(r);\n for (r of ce)\n ve(r);\n ce = [], Fe = [], Oe = {}, _ = true;\n }\n l(0, new Se(e));\n }\n function fe(e) {\n if (o)\n return L(1, 0, e);\n ye(e);\n }\n var ye = (e) => {\n if (y = e, o)\n throw fe(e), "unwind";\n V(e);\n }, ce = [], Fe = [], mn = [], Oe = {}, hn = (e) => {\n var r = e.Ob;\n delete Oe[r], ce.push(e), Fe.splice(Fe.indexOf(e), 1), e.Ob = 0, rr(r);\n };\n function wn() {\n mn.forEach((e) => e());\n }\n var bn = (e) => new Promise((r) => {\n e.onmessage = (f) => {\n var p = f.data;\n if (f = p.Pb, p.Sb && p.Sb != st()) {\n var E = Oe[p.Sb];\n E ? E.postMessage(p, p.Xb) : F(`Internal error! Worker sent a message "${f}" to target pthread ${p.Sb}, but that thread no longer exists!`);\n } else\n f === "checkMailbox" ? rt() : f === "spawnThread" ? ue(p) : f === "cleanupThread" ? Rt(() => {\n hn(Oe[p.cc]);\n }) : f === "loaded" ? (e.loaded = true, r(e)) : p.target === "setimmediate" ? e.postMessage(p) : f === "uncaughtException" ? e.onerror(p.error) : f === "callHandler" ? t[p.Yb](...p.args) : f && F(`worker sent an unknown command ${f}`);\n }, e.onerror = (f) => {\n throw F(`worker sent an error! ${f.filename}:${f.lineno}: ${f.message}`), f;\n };\n var i, s = [];\n for (i of [])\n t.propertyIsEnumerable(i) && s.push(i);\n e.postMessage({ Pb: "load", Zb: s, dc: ge, ec: b });\n });\n function yn() {\n var e = new Worker((() => {\n let r = URL;\n return import_meta.url > "file:" && import_meta.url < "file;" ? new r("ort.wasm.bundle.min.mjs", import_meta.url) : new URL(import_meta.url);\n })(), { type: "module", workerData: "em-pthread", name: "em-pthread" });\n ce.push(e);\n }\n var ge, gn = [], C = (e) => {\n var r = gn[e];\n return r || (gn[e] = r = cr.get(e)), r;\n }, Ao = (e, r) => {\n se = 0, e = C(e)(r), 0 < se ? y = e : Ht(e);\n }, tt = [], nt = 0;\n function Io(e) {\n var r = new xt(e >>>= 0);\n return (w(), j)[r.Qb + 12 >>> 0] == 0 && (En(r, true), nt--), Tn(r, false), tt.push(r), fr(e);\n }\n var Ne = 0, Bo = () => {\n M(0, 0);\n var e = tt.pop();\n ir(e.Ub), Ne = 0;\n };\n function En(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 12 >>> 0] = r;\n }\n function Tn(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 13 >>> 0] = r;\n }\n class xt {\n constructor(r) {\n this.Ub = r, this.Qb = r - 24;\n }\n }\n var Mt = (e) => {\n var r = Ne;\n if (!r)\n return Je(0), 0;\n var i = new xt(r);\n (w(), W)[i.Qb + 16 >>> 2 >>> 0] = r;\n var s = (w(), W)[i.Qb + 4 >>> 2 >>> 0];\n if (!s)\n return Je(0), r;\n for (var f of e) {\n if (f === 0 || f === s)\n break;\n if (ur(f, s, i.Qb + 16))\n return Je(f), r;\n }\n return Je(s), r;\n };\n function Lo() {\n return Mt([]);\n }\n function _o(e) {\n return Mt([e >>> 0]);\n }\n function Po(e, r, i, s) {\n return Mt([e >>> 0, r >>> 0, i >>> 0, s >>> 0]);\n }\n var Do = () => {\n var e = tt.pop();\n e || H("no exception to throw");\n var r = e.Ub;\n throw (w(), j)[e.Qb + 13 >>> 0] == 0 && (tt.push(e), Tn(e, true), En(e, false), nt++), Vt(r), Ne = r;\n };\n function Uo(e, r, i) {\n var s = new xt(e >>>= 0);\n throw r >>>= 0, i >>>= 0, (w(), W)[s.Qb + 16 >>> 2 >>> 0] = 0, (w(), W)[s.Qb + 4 >>> 2 >>> 0] = r, (w(), W)[s.Qb + 8 >>> 2 >>> 0] = i, Vt(e), nt++, Ne = e;\n }\n var xo = () => nt;\n function Sn(e, r, i, s) {\n return o ? L(2, 1, e, r, i, s) : vn(e, r, i, s);\n }\n function vn(e, r, i, s) {\n if (e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0, !globalThis.SharedArrayBuffer)\n return 6;\n var f = [];\n return o && f.length === 0 ? Sn(e, r, i, s) : (e = { ac: i, Ob: e, Tb: s, Xb: f }, o ? (e.Pb = "spawnThread", postMessage(e, f), 0) : ue(e));\n }\n function Mo(e) {\n throw Ne ||= e >>> 0, Ne;\n }\n var On = globalThis.TextDecoder && new TextDecoder(), An = (e, r = 0, i, s) => {\n var f = r >>>= 0;\n if (i = f + i, s)\n s = i;\n else {\n for (; e[f] && !(f >= i); )\n ++f;\n s = f;\n }\n if (16 < s - r && e.buffer && On)\n return On.decode(e.buffer instanceof ArrayBuffer ? e.subarray(r, s) : e.slice(r, s));\n for (f = ""; r < s; )\n if (128 & (i = e[r++])) {\n var p = 63 & e[r++];\n if ((224 & i) == 192)\n f += String.fromCharCode((31 & i) << 6 | p);\n else {\n var E = 63 & e[r++];\n 65536 > (i = (240 & i) == 224 ? (15 & i) << 12 | p << 6 | E : (7 & i) << 18 | p << 12 | E << 6 | 63 & e[r++]) ? f += String.fromCharCode(i) : (i -= 65536, f += String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i));\n }\n } else\n f += String.fromCharCode(i);\n return f;\n }, Ct = (e, r, i) => (e >>>= 0) ? An((w(), ne), e, r, i) : "";\n function In(e, r, i) {\n return o ? L(3, 1, e, r, i) : 0;\n }\n function Bn(e, r) {\n if (o)\n return L(4, 1, e, r);\n }\n function Ln(e, r) {\n if (o)\n return L(5, 1, e, r);\n }\n function _n(e, r, i) {\n if (o)\n return L(6, 1, e, r, i);\n }\n function Pn(e, r, i) {\n return o ? L(7, 1, e, r, i) : 0;\n }\n function Dn(e, r) {\n if (o)\n return L(8, 1, e, r);\n }\n function Un(e, r, i) {\n if (o)\n return L(9, 1, e, r, i);\n }\n function xn(e, r, i, s) {\n if (o)\n return L(10, 1, e, r, i, s);\n }\n function Mn(e, r, i, s) {\n if (o)\n return L(11, 1, e, r, i, s);\n }\n function Cn(e, r, i, s) {\n if (o)\n return L(12, 1, e, r, i, s);\n }\n function Rn(e) {\n if (o)\n return L(13, 1, e);\n }\n function Fn(e, r) {\n if (o)\n return L(14, 1, e, r);\n }\n function Nn(e, r, i) {\n if (o)\n return L(15, 1, e, r, i);\n }\n var Co = () => H("");\n function Ro(e) {\n zt(e >>> 0, !u, 1, !a, 131072, false), wn();\n }\n var Rt = (e) => {\n if (!_)\n try {\n if (e(), !(0 < se))\n try {\n o ? st() && Ht(y) : ye(y);\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n }, Fo = !Atomics.waitAsync || globalThis.navigator?.userAgent && 91 > Number((navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./) || [])[2]);\n function Ft(e) {\n e >>>= 0, Fo || (Atomics.waitAsync((w(), B), e >>> 2, e).value.then(rt), e += 128, Atomics.store((w(), B), e >>> 2, 1));\n }\n var rt = () => Rt(() => {\n var e = st();\n e && (Ft(e), ar());\n });\n function No(e, r) {\n (e >>>= 0) == r >>> 0 ? setTimeout(rt) : o ? postMessage({ Sb: e, Pb: "checkMailbox" }) : (e = Oe[e]) && e.postMessage({ Pb: "checkMailbox" });\n }\n var Nt = [];\n function ko(e, r, i, s, f) {\n for (r >>>= 0, f >>>= 0, Nt.length = 0, i = f >>> 3, s = f + s >>> 3; i < s; ) {\n var p;\n p = (w(), A)[i++ >>> 0] ? (w(), A)[i++ >>> 0] : (w(), me)[i++ >>> 0], Nt.push(p);\n }\n return (r ? lr[r] : ua[e])(...Nt);\n }\n var Wo = () => {\n se = 0;\n };\n function Go(e) {\n e >>>= 0, o ? postMessage({ Pb: "cleanupThread", cc: e }) : hn(Oe[e]);\n }\n function $o(e) {\n }\n function zo(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getUTCSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getUTCMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getUTCHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getUTCDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getUTCMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getUTCFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getUTCDay(), e = (e.getTime() - Date.UTC(e.getUTCFullYear(), 0, 1, 0, 0, 0, 0)) / 864e5 | 0, (w(), B)[r + 28 >>> 2 >>> 0] = e;\n }\n var kn = (e) => e % 4 == 0 && (e % 100 != 0 || e % 400 == 0), Wn = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335], Gn = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n function Ho(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getDay();\n var i = (kn(e.getFullYear()) ? Wn : Gn)[e.getMonth()] + e.getDate() - 1 | 0;\n (w(), B)[r + 28 >>> 2 >>> 0] = i, (w(), B)[r + 36 >>> 2 >>> 0] = -60 * e.getTimezoneOffset(), i = new Date(e.getFullYear(), 6, 1).getTimezoneOffset();\n var s = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n e = 0 | (i != s && e.getTimezoneOffset() == Math.min(s, i)), (w(), B)[r + 32 >>> 2 >>> 0] = e;\n }\n function jo(e) {\n e >>>= 0;\n var r = new Date((w(), B)[e + 20 >>> 2 >>> 0] + 1900, (w(), B)[e + 16 >>> 2 >>> 0], (w(), B)[e + 12 >>> 2 >>> 0], (w(), B)[e + 8 >>> 2 >>> 0], (w(), B)[e + 4 >>> 2 >>> 0], (w(), B)[e >>> 2 >>> 0], 0), i = (w(), B)[e + 32 >>> 2 >>> 0], s = r.getTimezoneOffset(), f = new Date(r.getFullYear(), 6, 1).getTimezoneOffset(), p = new Date(r.getFullYear(), 0, 1).getTimezoneOffset(), E = Math.min(p, f);\n return 0 > i ? (w(), B)[e + 32 >>> 2 >>> 0] = +(f != p && E == s) : 0 < i != (E == s) && (f = Math.max(p, f), r.setTime(r.getTime() + 6e4 * ((0 < i ? E : f) - s))), (w(), B)[e + 24 >>> 2 >>> 0] = r.getDay(), i = (kn(r.getFullYear()) ? Wn : Gn)[r.getMonth()] + r.getDate() - 1 | 0, (w(), B)[e + 28 >>> 2 >>> 0] = i, (w(), B)[e >>> 2 >>> 0] = r.getSeconds(), (w(), B)[e + 4 >>> 2 >>> 0] = r.getMinutes(), (w(), B)[e + 8 >>> 2 >>> 0] = r.getHours(), (w(), B)[e + 12 >>> 2 >>> 0] = r.getDate(), (w(), B)[e + 16 >>> 2 >>> 0] = r.getMonth(), (w(), B)[e + 20 >>> 2 >>> 0] = r.getYear(), e = r.getTime(), BigInt(isNaN(e) ? -1 : e / 1e3);\n }\n function $n(e, r, i, s, f, p, E) {\n return o ? L(16, 1, e, r, i, s, f, p, E) : -52;\n }\n function zn(e, r, i, s, f, p) {\n if (o)\n return L(17, 1, e, r, i, s, f, p);\n }\n var Ye = {}, Vo = () => performance.timeOrigin + performance.now();\n function Hn(e, r) {\n if (o)\n return L(18, 1, e, r);\n if (Ye[e] && (clearTimeout(Ye[e].id), delete Ye[e]), !r)\n return 0;\n var i = setTimeout(() => {\n delete Ye[e], Rt(() => or(e, performance.timeOrigin + performance.now()));\n }, r);\n return Ye[e] = { id: i, jc: r }, 0;\n }\n var Ae = (e, r, i) => {\n var s = (w(), ne);\n if (r >>>= 0, 0 < i) {\n var f = r;\n i = r + i - 1;\n for (var p = 0; p < e.length; ++p) {\n var E = e.codePointAt(p);\n if (127 >= E) {\n if (r >= i)\n break;\n s[r++ >>> 0] = E;\n } else if (2047 >= E) {\n if (r + 1 >= i)\n break;\n s[r++ >>> 0] = 192 | E >> 6, s[r++ >>> 0] = 128 | 63 & E;\n } else if (65535 >= E) {\n if (r + 2 >= i)\n break;\n s[r++ >>> 0] = 224 | E >> 12, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E;\n } else {\n if (r + 3 >= i)\n break;\n s[r++ >>> 0] = 240 | E >> 18, s[r++ >>> 0] = 128 | E >> 12 & 63, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E, p++;\n }\n }\n s[r >>> 0] = 0, e = r - f;\n } else\n e = 0;\n return e;\n };\n function Yo(e, r, i, s) {\n e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0;\n var f = (/* @__PURE__ */ new Date()).getFullYear(), p = new Date(f, 0, 1).getTimezoneOffset();\n f = new Date(f, 6, 1).getTimezoneOffset();\n var E = Math.max(p, f);\n (w(), W)[e >>> 2 >>> 0] = 60 * E, (w(), B)[r >>> 2 >>> 0] = +(p != f), e = (r = (S) => {\n var x = Math.abs(S);\n return `UTC${0 <= S ? "-" : "+"}${String(Math.floor(x / 60)).padStart(2, "0")}${String(x % 60).padStart(2, "0")}`;\n })(p), r = r(f), f < p ? (Ae(e, i, 17), Ae(r, s, 17)) : (Ae(e, s, 17), Ae(r, i, 17));\n }\n var Jo = () => Date.now(), qo = 1;\n function Xo(e, r, i) {\n if (i >>>= 0, !(0 <= e && 3 >= e))\n return 28;\n if (e === 0)\n e = Date.now();\n else {\n if (!qo)\n return 52;\n e = performance.timeOrigin + performance.now();\n }\n return e = Math.round(1e6 * e), (w(), A)[i >>> 3 >>> 0] = BigInt(e), 0;\n }\n var kt = [];\n function Qo(e, r, i) {\n e >>>= 0, r >>>= 0, i >>>= 0, kt.length = 0;\n for (var s; s = (w(), ne)[r++ >>> 0]; ) {\n var f = s != 105;\n i += (f &= s != 112) && i % 8 ? 4 : 0, kt.push(s == 112 ? (w(), W)[i >>> 2 >>> 0] : s == 106 ? (w(), A)[i >>> 3 >>> 0] : s == 105 ? (w(), B)[i >>> 2 >>> 0] : (w(), me)[i >>> 3 >>> 0]), i += f ? 8 : 4;\n }\n return lr[e](...kt);\n }\n var Zo = () => {\n };\n function Ko(e, r) {\n return F(Ct(e >>> 0, r >>> 0));\n }\n var ea = () => {\n throw se += 1, "unwind";\n };\n function ta() {\n return 4294901760;\n }\n var na = () => navigator.hardwareConcurrency, Ie = {}, Wt = (e) => {\n for (var r = 0, i = 0; i < e.length; ++i) {\n var s = e.charCodeAt(i);\n 127 >= s ? r++ : 2047 >= s ? r += 2 : 55296 <= s && 57343 >= s ? (r += 4, ++i) : r += 3;\n }\n return r;\n }, ot = (e) => {\n var r;\n return (r = /\\bwasm-function\\[\\d+\\]:(0x[0-9a-f]+)/.exec(e)) ? +r[1] : (r = /:(\\d+):\\d+(?:\\)|$)/.exec(e)) ? 2147483648 | +r[1] : 0;\n }, jn = (e) => {\n for (var r of e)\n (e = ot(r)) && (Ie[e] = r);\n };\n function ra() {\n var e = Error().stack.toString().split(`\n`);\n return e[0] == "Error" && e.shift(), jn(e), Ie.Vb = ot(e[3]), Ie.$b = e, Ie.Vb;\n }\n function at(e) {\n if (!(e = Ie[e >>> 0]))\n return 0;\n var r;\n if (r = /^\\s+at .*\\.wasm\\.(.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else if (r = /^\\s+at (.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else {\n if (!(r = /^(.+?)@/.exec(e)))\n return 0;\n e = r[1];\n }\n Kn(at.Wb ?? 0), r = Wt(e) + 1;\n var i = er(r);\n return i && Ae(e, i, r), at.Wb = i, at.Wb;\n }\n function oa(e) {\n e >>>= 0;\n var r = (w(), ne).length;\n if (e <= r || 4294901760 < e)\n return false;\n for (var i = 1; 4 >= i; i *= 2) {\n var s = r * (1 + 0.2 / i);\n s = Math.min(s, e + 100663296);\n e: {\n s = (Math.min(4294901760, 65536 * Math.ceil(Math.max(e, s) / 65536)) - ge.buffer.byteLength + 65535) / 65536 | 0;\n try {\n ge.grow(s), ee();\n var f = 1;\n break e;\n } catch {\n }\n f = void 0;\n }\n if (f)\n return true;\n }\n return false;\n }\n function aa(e, r, i) {\n if (e >>>= 0, r >>>= 0, Ie.Vb == e)\n var s = Ie.$b;\n else\n (s = Error().stack.toString().split(`\n`))[0] == "Error" && s.shift(), jn(s);\n for (var f = 3; s[f] && ot(s[f]) != e; )\n ++f;\n for (e = 0; e < i && s[e + f]; ++e)\n (w(), B)[r + 4 * e >>> 2 >>> 0] = ot(s[e + f]);\n return e;\n }\n var Gt, $t = {}, Vn = () => {\n if (!Gt) {\n var e, r = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8", _: "./this.program" };\n for (e in $t)\n $t[e] === void 0 ? delete r[e] : r[e] = $t[e];\n var i = [];\n for (e in r)\n i.push(`${e}=${r[e]}`);\n Gt = i;\n }\n return Gt;\n };\n function Yn(e, r) {\n if (o)\n return L(19, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i, s = 0, f = 0;\n for (i of Vn()) {\n var p = r + s;\n (w(), W)[e + f >>> 2 >>> 0] = p, s += Ae(i, p, 1 / 0) + 1, f += 4;\n }\n return 0;\n }\n function Jn(e, r) {\n if (o)\n return L(20, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i = Vn();\n for (var s of ((w(), W)[e >>> 2 >>> 0] = i.length, e = 0, i))\n e += Wt(s) + 1;\n return (w(), W)[r >>> 2 >>> 0] = e, 0;\n }\n function qn(e) {\n return o ? L(21, 1, e) : 52;\n }\n function Xn(e, r, i, s) {\n return o ? L(22, 1, e, r, i, s) : 52;\n }\n function Qn(e, r, i, s) {\n return o ? L(23, 1, e, r, i, s) : 70;\n }\n var sa = [null, [], []];\n function Zn(e, r, i, s) {\n if (o)\n return L(24, 1, e, r, i, s);\n r >>>= 0, i >>>= 0, s >>>= 0;\n for (var f = 0, p = 0; p < i; p++) {\n var E = (w(), W)[r >>> 2 >>> 0], S = (w(), W)[r + 4 >>> 2 >>> 0];\n r += 8;\n for (var x = 0; x < S; x++) {\n var R = e, X = (w(), ne)[E + x >>> 0], le = sa[R];\n X === 0 || X === 10 ? ((R === 1 ? O : F)(An(le)), le.length = 0) : le.push(X);\n }\n f += S;\n }\n return (w(), W)[s >>> 2 >>> 0] = f, 0;\n }\n function ia(e) {\n return e >>> 0;\n }\n o || function() {\n for (var e = t.numThreads - 1; e--; )\n yn();\n Ve.push(async () => {\n var r = async function() {\n if (!o)\n return Promise.all(ce.map(bn));\n }();\n Re++, await r, --Re == 0 && te && (r = te, te = null, r());\n });\n }(), o || (ge = new WebAssembly.Memory({ initial: 256, maximum: 65536, shared: true }), ee()), t.wasmBinary && (g = t.wasmBinary), t.stackSave = () => U(), t.stackRestore = (e) => P(e), t.stackAlloc = (e) => jt(e), t.setValue = function(e, r, i = "i8") {\n switch (i.endsWith("*") && (i = "*"), i) {\n case "i1":\n case "i8":\n (w(), j)[e >>> 0] = r;\n break;\n case "i16":\n (w(), pe)[e >>> 1 >>> 0] = r;\n break;\n case "i32":\n (w(), B)[e >>> 2 >>> 0] = r;\n break;\n case "i64":\n (w(), A)[e >>> 3 >>> 0] = BigInt(r);\n break;\n case "float":\n (w(), re)[e >>> 2 >>> 0] = r;\n break;\n case "double":\n (w(), me)[e >>> 3 >>> 0] = r;\n break;\n case "*":\n (w(), W)[e >>> 2 >>> 0] = r;\n break;\n default:\n H(`invalid type for setValue: ${i}`);\n }\n }, t.getValue = function(e, r = "i8") {\n switch (r.endsWith("*") && (r = "*"), r) {\n case "i1":\n case "i8":\n return (w(), j)[e >>> 0];\n case "i16":\n return (w(), pe)[e >>> 1 >>> 0];\n case "i32":\n return (w(), B)[e >>> 2 >>> 0];\n case "i64":\n return (w(), A)[e >>> 3 >>> 0];\n case "float":\n return (w(), re)[e >>> 2 >>> 0];\n case "double":\n return (w(), me)[e >>> 3 >>> 0];\n case "*":\n return (w(), W)[e >>> 2 >>> 0];\n default:\n H(`invalid type for getValue: ${r}`);\n }\n }, t.UTF8ToString = Ct, t.stringToUTF8 = Ae, t.lengthBytesUTF8 = Wt;\n var st, Kn, er, zt, tr, nr, rr, Ht, or, ar, M, Je, sr, P, jt, U, ir, Vt, ur, fr, cr, Ee, ua = [V, fe, Sn, In, Bn, Ln, _n, Pn, Dn, Un, xn, Mn, Cn, Rn, Fn, Nn, $n, zn, Hn, Yn, Jn, qn, Xn, Qn, Zn], lr = { 930988: (e, r, i, s, f) => {\n if (t === void 0 || !t.Rb)\n return 1;\n if ((e = Ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = t.Rb.get(e)))\n return 2;\n if (r = Number(r >>> 0), i = Number(i >>> 0), s = Number(s >>> 0), r + i > e.byteLength)\n return 3;\n try {\n let p = e.subarray(r, r + i);\n switch (f) {\n case 0:\n (w(), ne).set(p, s >>> 0);\n break;\n case 1:\n t.fc ? t.fc(s, p) : t.ic(s, p);\n break;\n default:\n return 4;\n }\n return 0;\n } catch {\n return 4;\n }\n }, 931812: () => typeof wasmOffsetConverter < "u" };\n function fa() {\n return typeof wasmOffsetConverter < "u";\n }\n function ca(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function la(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function da(e) {\n var r = U();\n try {\n C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function pa(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function ma(e, r, i) {\n var s = U();\n try {\n C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ha(e, r) {\n var i = U();\n try {\n C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function wa(e, r, i, s, f, p, E) {\n var S = U();\n try {\n return C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function ba(e, r, i, s, f, p) {\n var E = U();\n try {\n C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function ya(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function ga(e, r, i, s, f) {\n var p = U();\n try {\n C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ea(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Ta(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Sa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function va(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Oa(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Aa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Ia(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function Ba(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function La(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n return M(1, 0), 0n;\n }\n }\n function _a(e, r, i, s, f, p, E, S, x) {\n var R = U();\n try {\n C(e)(r, i, s, f, p, E, S, x);\n } catch (X) {\n if (P(R), X !== X + 0)\n throw X;\n M(1, 0);\n }\n }\n function Pa(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function Da(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n return M(1, 0), 0n;\n }\n }\n function Ua(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n return M(1, 0), 0n;\n }\n }\n function xa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ma(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ca(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Ra(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Fa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n return C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Na(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n return M(1, 0), 0n;\n }\n }\n function ka(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Wa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ga(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n return C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function $a(e, r, i, s, f, p, E, S, x, R, X) {\n var le = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X);\n } catch (we) {\n if (P(le), we !== we + 0)\n throw we;\n M(1, 0);\n }\n }\n function za(e, r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja) {\n var qa = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja);\n } catch (Yt) {\n if (P(qa), Yt !== Yt + 0)\n throw Yt;\n M(1, 0);\n }\n }\n function Ha(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ja(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Va(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function it() {\n if (0 < Re)\n te = it;\n else if (o)\n T?.(t), he();\n else {\n for (var e = Ve; 0 < e.length; )\n e.shift()(t);\n 0 < Re ? te = it : (t.calledRun = true, _ || (he(), T?.(t)));\n }\n }\n return o || (Ee = await Ut(), it()), t.PTR_SIZE = 4, je ? t : new Promise((e, r) => {\n T = e, I = r;\n });\n }\n var rs;\n var os;\n var Jr = N(() => {\n "use strict";\n rs = Vr, os = globalThis.self?.name?.startsWith("em-pthread");\n os && Vr();\n });\n var Qr;\n var an;\n var as;\n var oe;\n var Zr;\n var on;\n var ss;\n var is;\n var Kr;\n var us;\n var qr;\n var eo;\n var Xr;\n var to;\n var pt = N(() => {\n "use strict";\n dt();\n Qr = typeof location > "u" ? void 0 : location.origin, an = import_meta.url > "file:" && import_meta.url < "file;", as = () => {\n if (true) {\n if (an) {\n let n = URL;\n return new URL(new n("ort.wasm.bundle.min.mjs", import_meta.url).href, Qr).href;\n }\n return import_meta.url;\n }\n }, oe = as(), Zr = () => {\n if (oe && !oe.startsWith("blob:"))\n return oe.substring(0, oe.lastIndexOf("/") + 1);\n }, on = (n, t) => {\n try {\n let a = t ?? oe;\n return (a ? new URL(n, a) : new URL(n)).origin === Qr;\n } catch {\n return false;\n }\n }, ss = (n, t) => {\n let a = t ?? oe;\n try {\n return (a ? new URL(n, a) : new URL(n)).href;\n } catch {\n return;\n }\n }, is = (n, t) => `${t ?? "./"}${n}`, Kr = async (n) => {\n let a = await (await fetch(n, { credentials: "same-origin" })).blob();\n return URL.createObjectURL(a);\n }, us = async (n) => (await import(\n /*webpackIgnore:true*/\n /*@vite-ignore*/\n n\n )).default, qr = (jr(), Xt(Hr)).default, eo = async () => {\n if (!oe)\n throw new Error("Failed to load proxy worker: cannot determine the script source URL.");\n if (on(oe))\n return [void 0, qr()];\n let n = await Kr(oe);\n return [n, qr(n)];\n }, Xr = (Jr(), Xt(Yr)).default, to = async (n, t, a, u) => {\n let o = Xr && !(n || t);\n if (o)\n if (oe)\n o = on(oe) || u && !a;\n else if (u && !a)\n o = true;\n else\n throw new Error("cannot determine the script source URL.");\n if (o)\n return [void 0, Xr];\n {\n let d = "ort-wasm-simd-threaded.mjs", c = n ?? ss(d, t), l = a && c && !on(c, t), m = l ? await Kr(c) : c ?? is(d, t);\n return [l ? m : void 0, await us(m)];\n }\n };\n });\n var sn;\n var un;\n var St;\n var no;\n var fs;\n var cs;\n var ls;\n var mt;\n var $;\n var xe = N(() => {\n "use strict";\n pt();\n un = false, St = false, no = false, fs = () => {\n if (typeof SharedArrayBuffer > "u")\n return false;\n try {\n return typeof MessageChannel < "u" && new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)), WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 5, 4, 1, 3, 1, 1, 10, 11, 1, 9, 0, 65, 0, 254, 16, 2, 0, 26, 11]));\n } catch {\n return false;\n }\n }, cs = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 30, 1, 28, 0, 65, 0, 253, 15, 253, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 186, 1, 26, 11]));\n } catch {\n return false;\n }\n }, ls = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 19, 1, 17, 0, 65, 1, 253, 15, 65, 2, 253, 15, 65, 3, 253, 15, 253, 147, 2, 11]));\n } catch {\n return false;\n }\n }, mt = async (n) => {\n if (un)\n return Promise.resolve();\n if (St)\n throw new Error("multiple calls to \'initializeWebAssembly()\' detected.");\n if (no)\n throw new Error("previous call to \'initializeWebAssembly()\' failed.");\n St = true;\n let t = n.initTimeout, a = n.numThreads;\n if (n.simd !== false) {\n if (n.simd === "relaxed") {\n if (!ls())\n throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.");\n } else if (!cs())\n throw new Error("WebAssembly SIMD is not supported in the current environment.");\n }\n let u = fs();\n a > 1 && !u && (typeof self < "u" && !self.crossOriginIsolated && console.warn("env.wasm.numThreads is set to " + a + ", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."), console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."), n.numThreads = a = 1);\n let o = n.wasmPaths, d = typeof o == "string" ? o : void 0, c = o?.mjs, l = c?.href ?? c, m = o?.wasm, h = m?.href ?? m, g = n.wasmBinary, [b, y] = await to(l, d, a > 1, !!g || !!h), T = false, I = [];\n if (t > 0 && I.push(new Promise((D) => {\n setTimeout(() => {\n T = true, D();\n }, t);\n })), I.push(new Promise((D, z) => {\n let v = { numThreads: a };\n if (g)\n v.wasmBinary = g, v.locateFile = (O) => O;\n else if (h || d)\n v.locateFile = (O) => h ?? d + O;\n else if (l && l.indexOf("blob:") !== 0)\n v.locateFile = (O) => new URL(O, l).href;\n else if (b) {\n let O = Zr();\n O && (v.locateFile = (F) => O + F);\n }\n y(v).then((O) => {\n St = false, un = true, sn = O, D(), b && URL.revokeObjectURL(b);\n }, (O) => {\n St = false, no = true, z(O);\n });\n })), await Promise.race(I), T)\n throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`);\n }, $ = () => {\n if (un && sn)\n return sn;\n throw new Error("WebAssembly is not initialized yet.");\n };\n });\n var ae;\n var Ze;\n var G;\n var vt = N(() => {\n "use strict";\n xe();\n ae = (n, t) => {\n let a = $(), u = a.lengthBytesUTF8(n) + 1, o = a._malloc(u);\n return a.stringToUTF8(n, o, u), t.push(o), o;\n }, Ze = (n, t, a, u) => {\n if (typeof n == "object" && n !== null) {\n if (a.has(n))\n throw new Error("Circular reference in options");\n a.add(n);\n }\n Object.entries(n).forEach(([o, d]) => {\n let c = t ? t + o : o;\n if (typeof d == "object")\n Ze(d, c + ".", a, u);\n else if (typeof d == "string" || typeof d == "number")\n u(c, d.toString());\n else if (typeof d == "boolean")\n u(c, d ? "1" : "0");\n else\n throw new Error(`Can\'t handle extra config type: ${typeof d}`);\n });\n }, G = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetLastError(o, o + u);\n let d = Number(t.getValue(o, u === 4 ? "i32" : "i64")), c = t.getValue(o + u, "*"), l = c ? t.UTF8ToString(c) : "";\n throw new Error(`${n} ERROR_CODE: ${d}, ERROR_MESSAGE: ${l}`);\n } finally {\n t.stackRestore(a);\n }\n };\n });\n var ro;\n var oo = N(() => {\n "use strict";\n xe();\n vt();\n ro = (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n try {\n if (n?.logSeverityLevel === void 0)\n o.logSeverityLevel = 2;\n else if (typeof n.logSeverityLevel != "number" || !Number.isInteger(n.logSeverityLevel) || n.logSeverityLevel < 0 || n.logSeverityLevel > 4)\n throw new Error(`log severity level is not valid: ${n.logSeverityLevel}`);\n if (n?.logVerbosityLevel === void 0)\n o.logVerbosityLevel = 0;\n else if (typeof n.logVerbosityLevel != "number" || !Number.isInteger(n.logVerbosityLevel))\n throw new Error(`log verbosity level is not valid: ${n.logVerbosityLevel}`);\n n?.terminate === void 0 && (o.terminate = false);\n let d = 0;\n return n?.tag !== void 0 && (d = ae(n.tag, u)), a = t._OrtCreateRunOptions(o.logSeverityLevel, o.logVerbosityLevel, !!o.terminate, d), a === 0 && G("Can\'t create run options."), n?.extra !== void 0 && Ze(n.extra, "", /* @__PURE__ */ new WeakSet(), (c, l) => {\n let m = ae(c, u), h = ae(l, u);\n t._OrtAddRunConfigEntry(a, m, h) !== 0 && G(`Can\'t set a run config entry: ${c} - ${l}.`);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseRunOptions(a), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var ds;\n var ps;\n var ms;\n var ke;\n var hs;\n var ao;\n var so = N(() => {\n "use strict";\n xe();\n vt();\n ds = (n) => {\n switch (n) {\n case "disabled":\n return 0;\n case "basic":\n return 1;\n case "extended":\n return 2;\n case "layout":\n return 3;\n case "all":\n return 99;\n default:\n throw new Error(`unsupported graph optimization level: ${n}`);\n }\n }, ps = (n) => {\n switch (n) {\n case "sequential":\n return 0;\n case "parallel":\n return 1;\n default:\n throw new Error(`unsupported execution mode: ${n}`);\n }\n }, ms = (n) => {\n n.extra || (n.extra = {}), n.extra.session || (n.extra.session = {});\n let t = n.extra.session;\n t.use_ort_model_bytes_directly || (t.use_ort_model_bytes_directly = "1"), n.executionProviders && n.executionProviders.some((a) => (typeof a == "string" ? a : a.name) === "webgpu") && (n.enableMemPattern = false);\n }, ke = (n, t, a, u) => {\n let o = ae(t, u), d = ae(a, u);\n $()._OrtAddSessionConfigEntry(n, o, d) !== 0 && G(`Can\'t set a session config entry: ${t} - ${a}.`);\n }, hs = async (n, t, a) => {\n let u = t.executionProviders;\n for (let o of u) {\n let d = typeof o == "string" ? o : o.name, c = [];\n switch (d) {\n case "webnn":\n if (d = "WEBNN", ke(n, "session.disable_quant_qdq", "1", a), ke(n, "session.disable_qdq_constant_folding", "1", a), typeof o != "string") {\n let y = o?.deviceType;\n y && ke(n, "deviceType", y, a);\n }\n break;\n case "webgpu":\n if (d = "JS", typeof o != "string") {\n let b = o;\n if (b?.preferredLayout) {\n if (b.preferredLayout !== "NCHW" && b.preferredLayout !== "NHWC")\n throw new Error(`preferredLayout must be either \'NCHW\' or \'NHWC\': ${b.preferredLayout}`);\n ke(n, "preferredLayout", b.preferredLayout, a);\n }\n }\n break;\n case "wasm":\n case "cpu":\n continue;\n default:\n throw new Error(`not supported execution provider: ${d}`);\n }\n let l = ae(d, a), m = c.length, h = 0, g = 0;\n if (m > 0) {\n h = $()._malloc(m * $().PTR_SIZE), a.push(h), g = $()._malloc(m * $().PTR_SIZE), a.push(g);\n for (let b = 0; b < m; b++)\n $().setValue(h + b * $().PTR_SIZE, c[b][0], "*"), $().setValue(g + b * $().PTR_SIZE, c[b][1], "*");\n }\n await $()._OrtAppendExecutionProvider(n, l, h, g, m) !== 0 && G(`Can\'t append execution provider: ${d}.`);\n }\n }, ao = async (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n ms(o);\n try {\n let d = ds(o.graphOptimizationLevel ?? "all"), c = ps(o.executionMode ?? "sequential"), l = typeof o.logId == "string" ? ae(o.logId, u) : 0, m = o.logSeverityLevel ?? 2;\n if (!Number.isInteger(m) || m < 0 || m > 4)\n throw new Error(`log severity level is not valid: ${m}`);\n let h = o.logVerbosityLevel ?? 0;\n if (!Number.isInteger(h) || h < 0 || h > 4)\n throw new Error(`log verbosity level is not valid: ${h}`);\n let g = typeof o.optimizedModelFilePath == "string" ? ae(o.optimizedModelFilePath, u) : 0;\n if (a = t._OrtCreateSessionOptions(d, !!o.enableCpuMemArena, !!o.enableMemPattern, c, !!o.enableProfiling, 0, l, m, h, g), a === 0 && G("Can\'t create session options."), o.executionProviders && await hs(a, o, u), o.enableGraphCapture !== void 0) {\n if (typeof o.enableGraphCapture != "boolean")\n throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);\n ke(a, "enableGraphCapture", o.enableGraphCapture.toString(), u);\n }\n if (o.freeDimensionOverrides)\n for (let [b, y] of Object.entries(o.freeDimensionOverrides)) {\n if (typeof b != "string")\n throw new Error(`free dimension override name must be a string: ${b}`);\n if (typeof y != "number" || !Number.isInteger(y) || y < 0)\n throw new Error(`free dimension override value must be a non-negative integer: ${y}`);\n let T = ae(b, u);\n t._OrtAddFreeDimensionOverride(a, T, y) !== 0 && G(`Can\'t set a free dimension override: ${b} - ${y}.`);\n }\n return o.extra !== void 0 && Ze(o.extra, "", /* @__PURE__ */ new WeakSet(), (b, y) => {\n ke(a, b, y, u);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseSessionOptions(a) !== 0 && G("Can\'t release session options."), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var We;\n var Ot;\n var Ge;\n var io;\n var uo;\n var At;\n var It;\n var fo;\n var fn = N(() => {\n "use strict";\n We = (n) => {\n switch (n) {\n case "int8":\n return 3;\n case "uint8":\n return 2;\n case "bool":\n return 9;\n case "int16":\n return 5;\n case "uint16":\n return 4;\n case "int32":\n return 6;\n case "uint32":\n return 12;\n case "float16":\n return 10;\n case "float32":\n return 1;\n case "float64":\n return 11;\n case "string":\n return 8;\n case "int64":\n return 7;\n case "uint64":\n return 13;\n case "int4":\n return 22;\n case "uint4":\n return 21;\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ot = (n) => {\n switch (n) {\n case 3:\n return "int8";\n case 2:\n return "uint8";\n case 9:\n return "bool";\n case 5:\n return "int16";\n case 4:\n return "uint16";\n case 6:\n return "int32";\n case 12:\n return "uint32";\n case 10:\n return "float16";\n case 1:\n return "float32";\n case 11:\n return "float64";\n case 8:\n return "string";\n case 7:\n return "int64";\n case 13:\n return "uint64";\n case 22:\n return "int4";\n case 21:\n return "uint4";\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ge = (n, t) => {\n let a = [-1, 4, 1, 1, 2, 2, 4, 8, -1, 1, 2, 8, 4, 8, -1, -1, -1, -1, -1, -1, -1, 0.5, 0.5][n], u = typeof t == "number" ? t : t.reduce((o, d) => o * d, 1);\n return a > 0 ? Math.ceil(u * a) : void 0;\n }, io = (n) => {\n switch (n) {\n case "float16":\n return typeof Float16Array < "u" && Float16Array.from ? Float16Array : Uint16Array;\n case "float32":\n return Float32Array;\n case "uint8":\n return Uint8Array;\n case "int8":\n return Int8Array;\n case "uint16":\n return Uint16Array;\n case "int16":\n return Int16Array;\n case "int32":\n return Int32Array;\n case "bool":\n return Uint8Array;\n case "float64":\n return Float64Array;\n case "uint32":\n return Uint32Array;\n case "int64":\n return BigInt64Array;\n case "uint64":\n return BigUint64Array;\n default:\n throw new Error(`unsupported type: ${n}`);\n }\n }, uo = (n) => {\n switch (n) {\n case "verbose":\n return 0;\n case "info":\n return 1;\n case "warning":\n return 2;\n case "error":\n return 3;\n case "fatal":\n return 4;\n default:\n throw new Error(`unsupported logging level: ${n}`);\n }\n }, At = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", It = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint64" || n === "int8" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", fo = (n) => {\n switch (n) {\n case "none":\n return 0;\n case "cpu":\n return 1;\n case "cpu-pinned":\n return 2;\n case "texture":\n return 3;\n case "gpu-buffer":\n return 4;\n case "ml-tensor":\n return 5;\n default:\n throw new Error(`unsupported data location: ${n}`);\n }\n };\n });\n var Ke;\n var cn = N(() => {\n "use strict";\n dt();\n Ke = async (n) => {\n if (typeof n == "string")\n if (false)\n try {\n let { readFile: t } = qt("node:fs/promises");\n return new Uint8Array(await t(n));\n } catch (t) {\n if (t.code === "ERR_FS_FILE_TOO_LARGE") {\n let { createReadStream: a } = qt("node:fs"), u = a(n), o = [];\n for await (let d of u)\n o.push(d);\n return new Uint8Array(Buffer.concat(o));\n }\n throw t;\n }\n else {\n let t = await fetch(n);\n if (!t.ok)\n throw new Error(`failed to load external data file: ${n}`);\n let a = t.headers.get("Content-Length"), u = a ? parseInt(a, 10) : 0;\n if (u < 1073741824)\n return new Uint8Array(await t.arrayBuffer());\n {\n if (!t.body)\n throw new Error(`failed to load external data file: ${n}, no response body.`);\n let o = t.body.getReader(), d;\n try {\n d = new ArrayBuffer(u);\n } catch (l) {\n if (l instanceof RangeError) {\n let m = Math.ceil(u / 65536);\n d = new WebAssembly.Memory({ initial: m, maximum: m }).buffer;\n } else\n throw l;\n }\n let c = 0;\n for (; ; ) {\n let { done: l, value: m } = await o.read();\n if (l)\n break;\n let h = m.byteLength;\n new Uint8Array(d, c, h).set(m), c += h;\n }\n return new Uint8Array(d, 0, u);\n }\n }\n else\n return n instanceof Blob ? new Uint8Array(await n.arrayBuffer()) : n instanceof Uint8Array ? n : new Uint8Array(n);\n };\n });\n var ws;\n var ht;\n var wt;\n var $e;\n var bs;\n var co;\n var Qe;\n var bt;\n var yt;\n var lo;\n var gt;\n var Et;\n var Tt;\n var rn = N(() => {\n "use strict";\n Te();\n oo();\n so();\n fn();\n xe();\n vt();\n cn();\n ws = (n, t) => {\n $()._OrtInit(n, t) !== 0 && G("Can\'t initialize onnxruntime.");\n }, ht = async (n) => {\n ws(n.wasm.numThreads, uo(n.logLevel));\n }, wt = async (n, t) => {\n $().asyncInit?.();\n let a = n.webgpu.adapter;\n if (t === "webgpu") {\n if (typeof navigator > "u" || !navigator.gpu)\n throw new Error("WebGPU is not supported in current environment");\n if (a) {\n if (typeof a.limits != "object" || typeof a.features != "object" || typeof a.requestDevice != "function")\n throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.");\n } else {\n let u = n.webgpu.powerPreference;\n if (u !== void 0 && u !== "low-power" && u !== "high-performance")\n throw new Error(`Invalid powerPreference setting: "${u}"`);\n let o = n.webgpu.forceFallbackAdapter;\n if (o !== void 0 && typeof o != "boolean")\n throw new Error(`Invalid forceFallbackAdapter setting: "${o}"`);\n if (a = await navigator.gpu.requestAdapter({ powerPreference: u, forceFallbackAdapter: o }), !a)\n throw new Error(\'Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.\');\n }\n }\n if (t === "webnn" && (typeof navigator > "u" || !navigator.ml))\n throw new Error("WebNN is not supported in current environment");\n }, $e = /* @__PURE__ */ new Map(), bs = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetInputOutputCount(n, o, o + u) !== 0 && G("Can\'t get session input/output count.");\n let c = u === 4 ? "i32" : "i64";\n return [Number(t.getValue(o, c)), Number(t.getValue(o + u, c))];\n } finally {\n t.stackRestore(a);\n }\n }, co = (n, t) => {\n let a = $(), u = a.stackSave(), o = 0;\n try {\n let d = a.PTR_SIZE, c = a.stackAlloc(2 * d);\n a._OrtGetInputOutputMetadata(n, t, c, c + d) !== 0 && G("Can\'t get session input/output metadata.");\n let m = Number(a.getValue(c, "*"));\n o = Number(a.getValue(c + d, "*"));\n let h = a.HEAP32[o / 4];\n if (h === 0)\n return [m, 0];\n let g = a.HEAPU32[o / 4 + 1], b = [];\n for (let y = 0; y < g; y++) {\n let T = Number(a.getValue(o + 8 + y * d, "*"));\n b.push(T !== 0 ? a.UTF8ToString(T) : Number(a.getValue(o + 8 + (y + g) * d, "*")));\n }\n return [m, h, b];\n } finally {\n a.stackRestore(u), o !== 0 && a._OrtFree(o);\n }\n }, Qe = (n) => {\n let t = $(), a = t._malloc(n.byteLength);\n if (a === 0)\n throw new Error(`Can\'t create a session. failed to allocate a buffer of size ${n.byteLength}.`);\n return t.HEAPU8.set(n, a), [a, n.byteLength];\n }, bt = async (n, t) => {\n let a, u, o = $();\n Array.isArray(n) ? [a, u] = n : n.buffer === o.HEAPU8.buffer ? [a, u] = [n.byteOffset, n.byteLength] : [a, u] = Qe(n);\n let d = 0, c = 0, l = 0, m = [], h = [], g = [];\n try {\n if ([c, m] = await ao(t), t?.externalData && o.mountExternalData) {\n let _ = [];\n for (let k of t.externalData) {\n let w = typeof k == "string" ? k : k.path;\n _.push(Ke(typeof k == "string" ? k : k.data).then((Z) => {\n o.mountExternalData(w, Z);\n }));\n }\n await Promise.all(_);\n }\n for (let _ of t?.executionProviders ?? [])\n if ((typeof _ == "string" ? _ : _.name) === "webnn") {\n if (o.shouldTransferToMLTensor = false, typeof _ != "string") {\n let w = _, Z = w?.context, j = w?.gpuDevice, ne = w?.deviceType, pe = w?.powerPreference;\n Z ? o.currentContext = Z : j ? o.currentContext = await o.webnnCreateMLContext(j) : o.currentContext = await o.webnnCreateMLContext({ deviceType: ne, powerPreference: pe });\n } else\n o.currentContext = await o.webnnCreateMLContext();\n break;\n }\n d = await o._OrtCreateSession(a, u, c), o.webgpuOnCreateSession?.(d), d === 0 && G("Can\'t create a session."), o.jsepOnCreateSession?.(), o.currentContext && (o.webnnRegisterMLContext(d, o.currentContext), o.currentContext = void 0, o.shouldTransferToMLTensor = true);\n let [b, y] = bs(d), T = !!t?.enableGraphCapture, I = [], D = [], z = [], v = [], O = [];\n for (let _ = 0; _ < b; _++) {\n let [k, w, Z] = co(d, _);\n k === 0 && G("Can\'t get an input name."), h.push(k);\n let j = o.UTF8ToString(k);\n I.push(j), z.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n for (let _ = 0; _ < y; _++) {\n let [k, w, Z] = co(d, _ + b);\n k === 0 && G("Can\'t get an output name."), g.push(k);\n let j = o.UTF8ToString(k);\n D.push(j), v.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n return $e.set(d, [d, h, g, null, T, false]), [d, I, D, z, v];\n } catch (b) {\n throw h.forEach((y) => o._OrtFree(y)), g.forEach((y) => o._OrtFree(y)), l !== 0 && o._OrtReleaseBinding(l) !== 0 && G("Can\'t release IO binding."), d !== 0 && o._OrtReleaseSession(d) !== 0 && G("Can\'t release session."), b;\n } finally {\n o._free(a), c !== 0 && o._OrtReleaseSessionOptions(c) !== 0 && G("Can\'t release session options."), m.forEach((b) => o._free(b)), o.unmountExternalData?.();\n }\n }, yt = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error(`cannot release session. invalid session id: ${n}`);\n let [u, o, d, c, l] = a;\n c && (l && t._OrtClearBoundOutputs(c.handle) !== 0 && G("Can\'t clear bound outputs."), t._OrtReleaseBinding(c.handle) !== 0 && G("Can\'t release IO binding.")), t.jsepOnReleaseSession?.(n), t.webnnOnReleaseSession?.(n), t.webgpuOnReleaseSession?.(n), o.forEach((m) => t._OrtFree(m)), d.forEach((m) => t._OrtFree(m)), t._OrtReleaseSession(u) !== 0 && G("Can\'t release session."), $e.delete(n);\n }, lo = async (n, t, a, u, o, d, c = false) => {\n if (!n) {\n t.push(0);\n return;\n }\n let l = $(), m = l.PTR_SIZE, h = n[0], g = n[1], b = n[3], y = b, T, I;\n if (h === "string" && (b === "gpu-buffer" || b === "ml-tensor"))\n throw new Error("String tensor is not supported on GPU.");\n if (c && b !== "gpu-buffer")\n throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);\n if (b === "gpu-buffer") {\n let v = n[2].gpuBuffer;\n I = Ge(We(h), g);\n {\n let O = l.jsepRegisterBuffer;\n if (!O)\n throw new Error(\'Tensor location "gpu-buffer" is not supported without using WebGPU.\');\n T = O(u, d, v, I);\n }\n } else if (b === "ml-tensor") {\n let v = n[2].mlTensor;\n I = Ge(We(h), g);\n let O = l.webnnRegisterMLTensor;\n if (!O)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n T = O(u, v, We(h), g);\n } else {\n let v = n[2];\n if (Array.isArray(v)) {\n I = m * v.length, T = l._malloc(I), a.push(T);\n for (let O = 0; O < v.length; O++) {\n if (typeof v[O] != "string")\n throw new TypeError(`tensor data at index ${O} is not a string`);\n l.setValue(T + O * m, ae(v[O], a), "*");\n }\n } else {\n let O = l.webnnIsGraphInput, F = l.webnnIsGraphOutput;\n if (h !== "string" && O && F) {\n let _ = l.UTF8ToString(o);\n if (O(u, _) || F(u, _)) {\n let k = We(h);\n I = Ge(k, g), y = "ml-tensor";\n let w = l.webnnCreateTemporaryTensor, Z = l.webnnUploadTensor;\n if (!w || !Z)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n let j = await w(u, k, g);\n Z(j, new Uint8Array(v.buffer, v.byteOffset, v.byteLength)), T = j;\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n }\n }\n let D = l.stackSave(), z = l.stackAlloc(4 * g.length);\n try {\n g.forEach((O, F) => l.setValue(z + F * m, O, m === 4 ? "i32" : "i64"));\n let v = l._OrtCreateTensor(We(h), T, I, z, g.length, fo(y));\n v === 0 && G(`Can\'t create tensor for input/output. session=${u}, index=${d}.`), t.push(v);\n } finally {\n l.stackRestore(D);\n }\n }, gt = async (n, t, a, u, o, d) => {\n let c = $(), l = c.PTR_SIZE, m = $e.get(n);\n if (!m)\n throw new Error(`cannot run inference. invalid session id: ${n}`);\n let h = m[0], g = m[1], b = m[2], y = m[3], T = m[4], I = m[5], D = t.length, z = u.length, v = 0, O = [], F = [], _ = [], k = [], w = [], Z = c.stackSave(), j = c.stackAlloc(D * l), ne = c.stackAlloc(D * l), pe = c.stackAlloc(z * l), B = c.stackAlloc(z * l);\n try {\n [v, O] = ro(d), De("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n await lo(a[A], F, k, n, g[t[A]], t[A], T);\n for (let A = 0; A < z; A++)\n await lo(o[A], _, k, n, b[u[A]], D + u[A], T);\n Ue("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n c.setValue(j + A * l, F[A], "*"), c.setValue(ne + A * l, g[t[A]], "*");\n for (let A = 0; A < z; A++)\n c.setValue(pe + A * l, _[A], "*"), c.setValue(B + A * l, b[u[A]], "*");\n c.jsepOnRunStart?.(h), c.webnnOnRunStart?.(h);\n let W;\n W = await c._OrtRun(h, ne, j, D, B, z, pe, v), W !== 0 && G("failed to call OrtRun().");\n let re = [], me = [];\n De("wasm ProcessOutputTensor");\n for (let A = 0; A < z; A++) {\n let K = Number(c.getValue(pe + A * l, "*"));\n if (K === _[A] || w.includes(_[A])) {\n re.push(o[A]), K !== _[A] && c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n continue;\n }\n let je = c.stackSave(), ee = c.stackAlloc(4 * l), he = false, H, q = 0;\n try {\n c._OrtGetTensorData(K, ee, ee + l, ee + 2 * l, ee + 3 * l) !== 0 && G(`Can\'t access output tensor data on index ${A}.`);\n let Se = l === 4 ? "i32" : "i64", ve = Number(c.getValue(ee, Se));\n q = c.getValue(ee + l, "*");\n let Ve = c.getValue(ee + l * 2, "*"), Re = Number(c.getValue(ee + l * 3, Se)), te = [];\n for (let L = 0; L < Re; L++)\n te.push(Number(c.getValue(Ve + L * l, Se)));\n c._OrtFree(Ve) !== 0 && G("Can\'t free memory for tensor dims.");\n let ue = te.reduce((L, V) => L * V, 1);\n H = Ot(ve);\n let se = y?.outputPreferredLocations[u[A]];\n if (H === "string") {\n if (se === "gpu-buffer" || se === "ml-tensor")\n throw new Error("String tensor is not supported on GPU.");\n let L = [];\n for (let V = 0; V < ue; V++) {\n let fe = c.getValue(q + V * l, "*"), ye = c.getValue(q + (V + 1) * l, "*"), ce = V === ue - 1 ? void 0 : ye - fe;\n L.push(c.UTF8ToString(fe, ce));\n }\n re.push([H, te, L, "cpu"]);\n } else if (se === "gpu-buffer" && ue > 0) {\n let L = c.jsepGetBuffer;\n if (!L)\n throw new Error(\'preferredLocation "gpu-buffer" is not supported without using WebGPU.\');\n let V = L(q), fe = Ge(ve, ue);\n if (fe === void 0 || !At(H))\n throw new Error(`Unsupported data type: ${H}`);\n he = true, re.push([H, te, { gpuBuffer: V, download: c.jsepCreateDownloader(V, fe, H), dispose: () => {\n c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n } }, "gpu-buffer"]);\n } else if (se === "ml-tensor" && ue > 0) {\n let L = c.webnnEnsureTensor, V = c.webnnIsGraphInputOutputTypeSupported;\n if (!L || !V)\n throw new Error(\'preferredLocation "ml-tensor" is not supported without using WebNN.\');\n if (Ge(ve, ue) === void 0 || !It(H))\n throw new Error(`Unsupported data type: ${H}`);\n if (!V(n, H, false))\n throw new Error(`preferredLocation "ml-tensor" for ${H} output is not supported by current WebNN Context.`);\n let ye = await L(n, q, ve, te, false);\n he = true, re.push([H, te, { mlTensor: ye, download: c.webnnCreateMLTensorDownloader(q, H), dispose: () => {\n c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K);\n } }, "ml-tensor"]);\n } else if (se === "ml-tensor-cpu-output" && ue > 0) {\n let L = c.webnnCreateMLTensorDownloader(q, H)(), V = re.length;\n he = true, me.push((async () => {\n let fe = [V, await L];\n return c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K), fe;\n })()), re.push([H, te, [], "cpu"]);\n } else {\n let L = io(H), V = new L(ue);\n new Uint8Array(V.buffer, V.byteOffset, V.byteLength).set(c.HEAPU8.subarray(q, q + V.byteLength)), re.push([H, te, V, "cpu"]);\n }\n } finally {\n c.stackRestore(je), H === "string" && q && c._free(q), he || c._OrtReleaseTensor(K);\n }\n }\n y && !T && (c._OrtClearBoundOutputs(y.handle) !== 0 && G("Can\'t clear bound outputs."), $e.set(n, [h, g, b, y, T, false]));\n for (let [A, K] of await Promise.all(me))\n re[A][2] = K;\n return Ue("wasm ProcessOutputTensor"), re;\n } finally {\n c.webnnOnRunEnd?.(h), c.stackRestore(Z), F.forEach((W) => c._OrtReleaseTensor(W)), _.forEach((W) => c._OrtReleaseTensor(W)), k.forEach((W) => c._free(W)), v !== 0 && c._OrtReleaseRunOptions(v), O.forEach((W) => c._free(W));\n }\n }, Et = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error("invalid session id");\n let u = a[0], o = t._OrtEndProfiling(u);\n o === 0 && G("Can\'t get an profile file name."), t._OrtFree(o);\n }, Tt = (n) => {\n let t = [];\n for (let a of n) {\n let u = a[2];\n !Array.isArray(u) && "buffer" in u && t.push(u.buffer);\n }\n return t;\n };\n });\n var Ce;\n var ie;\n var et;\n var Lt;\n var _t;\n var Bt;\n var ln;\n var dn;\n var ze;\n var He;\n var gs;\n var po;\n var mo;\n var ho;\n var wo;\n var bo;\n var yo;\n var go;\n var pn = N(() => {\n "use strict";\n Te();\n rn();\n xe();\n pt();\n Ce = () => !!Y.wasm.proxy && typeof document < "u", et = false, Lt = false, _t = false, dn = /* @__PURE__ */ new Map(), ze = (n, t) => {\n let a = dn.get(n);\n a ? a.push(t) : dn.set(n, [t]);\n }, He = () => {\n if (et || !Lt || _t || !ie)\n throw new Error("worker not ready");\n }, gs = (n) => {\n switch (n.data.type) {\n case "init-wasm":\n et = false, n.data.err ? (_t = true, ln[1](n.data.err)) : (Lt = true, ln[0]()), Bt && (URL.revokeObjectURL(Bt), Bt = void 0);\n break;\n case "init-ep":\n case "copy-from":\n case "create":\n case "release":\n case "run":\n case "end-profiling": {\n let t = dn.get(n.data.type);\n n.data.err ? t.shift()[1](n.data.err) : t.shift()[0](n.data.out);\n break;\n }\n default:\n }\n }, po = async () => {\n if (!Lt) {\n if (et)\n throw new Error("multiple calls to \'initWasm()\' detected.");\n if (_t)\n throw new Error("previous call to \'initWasm()\' failed.");\n if (et = true, Ce())\n return new Promise((n, t) => {\n ie?.terminate(), eo().then(([a, u]) => {\n try {\n ie = u, ie.onerror = (d) => t(d), ie.onmessage = gs, ln = [n, t];\n let o = { type: "init-wasm", in: Y };\n !o.in.wasm.wasmPaths && (a || an) && (o.in.wasm.wasmPaths = { wasm: new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href }), ie.postMessage(o), Bt = a;\n } catch (o) {\n t(o);\n }\n }, t);\n });\n try {\n await mt(Y.wasm), await ht(Y), Lt = true;\n } catch (n) {\n throw _t = true, n;\n } finally {\n et = false;\n }\n }\n }, mo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("init-ep", [t, a]);\n let u = { type: "init-ep", in: { epName: n, env: Y } };\n ie.postMessage(u);\n });\n await wt(Y, n);\n }, ho = async (n) => Ce() ? (He(), new Promise((t, a) => {\n ze("copy-from", [t, a]);\n let u = { type: "copy-from", in: { buffer: n } };\n ie.postMessage(u, [n.buffer]);\n })) : Qe(n), wo = async (n, t) => {\n if (Ce()) {\n if (t?.preferredOutputLocation)\n throw new Error(\'session option "preferredOutputLocation" is not supported for proxy.\');\n return He(), new Promise((a, u) => {\n ze("create", [a, u]);\n let o = { type: "create", in: { model: n, options: { ...t } } }, d = [];\n n instanceof Uint8Array && d.push(n.buffer), ie.postMessage(o, d);\n });\n } else\n return bt(n, t);\n }, bo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("release", [t, a]);\n let u = { type: "release", in: n };\n ie.postMessage(u);\n });\n yt(n);\n }, yo = async (n, t, a, u, o, d) => {\n if (Ce()) {\n if (a.some((c) => c[3] !== "cpu"))\n throw new Error("input tensor on GPU is not supported for proxy.");\n if (o.some((c) => c))\n throw new Error("pre-allocated output tensor is not supported for proxy.");\n return He(), new Promise((c, l) => {\n ze("run", [c, l]);\n let m = a, h = { type: "run", in: { sessionId: n, inputIndices: t, inputs: m, outputIndices: u, options: d } };\n ie.postMessage(h, Tt(m));\n });\n } else\n return gt(n, t, a, u, o, d);\n }, go = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("end-profiling", [t, a]);\n let u = { type: "end-profiling", in: n };\n ie.postMessage(u);\n });\n Et(n);\n };\n });\n var Eo;\n var Es;\n var Pt;\n var To = N(() => {\n "use strict";\n Te();\n pn();\n fn();\n dt();\n cn();\n Eo = (n, t) => {\n switch (n.location) {\n case "cpu":\n return [n.type, n.dims, n.data, "cpu"];\n case "gpu-buffer":\n return [n.type, n.dims, { gpuBuffer: n.gpuBuffer }, "gpu-buffer"];\n case "ml-tensor":\n return [n.type, n.dims, { mlTensor: n.mlTensor }, "ml-tensor"];\n default:\n throw new Error(`invalid data location: ${n.location} for ${t()}`);\n }\n }, Es = (n) => {\n switch (n[3]) {\n case "cpu":\n return new de(n[0], n[2], n[1]);\n case "gpu-buffer": {\n let t = n[0];\n if (!At(t))\n throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);\n let { gpuBuffer: a, download: u, dispose: o } = n[2];\n return de.fromGpuBuffer(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n case "ml-tensor": {\n let t = n[0];\n if (!It(t))\n throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);\n let { mlTensor: a, download: u, dispose: o } = n[2];\n return de.fromMLTensor(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n default:\n throw new Error(`invalid data location: ${n[3]}`);\n }\n }, Pt = class {\n async fetchModelAndCopyToWasmMemory(t) {\n return ho(await Ke(t));\n }\n async loadModel(t, a) {\n _e();\n let u;\n typeof t == "string" ? u = await this.fetchModelAndCopyToWasmMemory(t) : u = t, [this.sessionId, this.inputNames, this.outputNames, this.inputMetadata, this.outputMetadata] = await wo(u, a), Pe();\n }\n async dispose() {\n return bo(this.sessionId);\n }\n async run(t, a, u) {\n _e();\n let o = [], d = [];\n Object.entries(t).forEach((y) => {\n let T = y[0], I = y[1], D = this.inputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid input \'${T}\'`);\n o.push(I), d.push(D);\n });\n let c = [], l = [];\n Object.entries(a).forEach((y) => {\n let T = y[0], I = y[1], D = this.outputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid output \'${T}\'`);\n c.push(I), l.push(D);\n });\n let m = o.map((y, T) => Eo(y, () => `input "${this.inputNames[d[T]]}"`)), h = c.map((y, T) => y ? Eo(y, () => `output "${this.outputNames[l[T]]}"`) : null), g = await yo(this.sessionId, d, m, l, h, u), b = {};\n for (let y = 0; y < g.length; y++)\n b[this.outputNames[l[y]]] = c[y] ?? Es(g[y]);\n return Pe(), b;\n }\n startProfiling() {\n }\n endProfiling() {\n go(this.sessionId);\n }\n };\n });\n var vo = {};\n ut(vo, { OnnxruntimeWebAssemblyBackend: () => Dt, initializeFlags: () => So, wasmBackend: () => Ts });\n var So;\n var Dt;\n var Ts;\n var Oo = N(() => {\n "use strict";\n Te();\n pn();\n To();\n So = () => {\n (typeof Y.wasm.initTimeout != "number" || Y.wasm.initTimeout < 0) && (Y.wasm.initTimeout = 0);\n let n = Y.wasm.simd;\n if (typeof n != "boolean" && n !== void 0 && n !== "fixed" && n !== "relaxed" && (console.warn(`Property "env.wasm.simd" is set to unknown value "${n}". Reset it to \\`false\\` and ignore SIMD feature checking.`), Y.wasm.simd = false), typeof Y.wasm.proxy != "boolean" && (Y.wasm.proxy = false), typeof Y.wasm.trace != "boolean" && (Y.wasm.trace = false), typeof Y.wasm.numThreads != "number" || !Number.isInteger(Y.wasm.numThreads) || Y.wasm.numThreads <= 0)\n if (typeof self < "u" && !self.crossOriginIsolated)\n Y.wasm.numThreads = 1;\n else {\n let t = typeof navigator > "u" ? qt("node:os").cpus().length : navigator.hardwareConcurrency;\n Y.wasm.numThreads = Math.min(4, Math.ceil((t || 1) / 2));\n }\n }, Dt = class {\n async init(t) {\n So(), await po(), await mo(t);\n }\n async createInferenceSessionHandler(t, a) {\n let u = new Pt();\n return await u.loadModel(t, a), u;\n }\n }, Ts = new Dt();\n });\n Te();\n Te();\n Te();\n var Gr = "1.26.0";\n {\n let n = (Oo(), Xt(vo)).wasmBackend;\n qe("cpu", n, 10), qe("wasm", n, 10);\n }\n Object.defineProperty(Y.versions, "web", { value: Gr, enumerable: true });\n\n // src/workers/VadOnnxWorker.ts\n var CHUNK_SIZE = 320;\n var MODEL_EXTERNAL_DATA_PATH = "bcresnet_no_center_mult2_20ms.onnx.data";\n var STATE_INPUT_DIMS_PBTXT = {\n audio_input_state: [800],\n input_states_0: [1, 4, 43],\n input_states_1: [16, 2, 1],\n input_states_2: [16, 2, 1],\n input_states_3: [24, 4, 1],\n input_states_4: [24, 4, 1],\n input_states_5: [32, 8, 1],\n input_states_6: [32, 8, 1],\n input_states_7: [32, 8, 1],\n input_states_8: [32, 8, 1],\n input_states_9: [40, 16, 1],\n input_states_10: [40, 16, 1],\n input_states_11: [40, 16, 1],\n input_states_12: [40, 16, 1],\n input_states_13: [40, 4, 5],\n input_states_14: [64, 30, 1]\n };\n var BATCH_SIZE = 1;\n var STATE_INPUT_DIMS = Object.fromEntries(\n Object.entries(STATE_INPUT_DIMS_PBTXT).map(([name, dims]) => [\n name,\n [BATCH_SIZE, ...dims]\n ])\n );\n var STATE_OUTPUT_TO_INPUT = {\n audio_output_state: "audio_input_state",\n output_states_0: "input_states_0",\n output_states_1: "input_states_1",\n output_states_2: "input_states_2",\n output_states_3: "input_states_3",\n output_states_4: "input_states_4",\n output_states_5: "input_states_5",\n output_states_6: "input_states_6",\n output_states_7: "input_states_7",\n output_states_8: "input_states_8",\n output_states_9: "input_states_9",\n output_states_10: "input_states_10",\n output_states_11: "input_states_11",\n output_states_12: "input_states_12",\n output_states_13: "input_states_13",\n output_states_14: "input_states_14"\n };\n var VadOnnxWorker_default = (modelUrl, modelDataUrl, ortWasmUrl, ortMjsUrl) => {\n let session = null;\n let state = null;\n let buffer = new Float32Array(0);\n let draining = false;\n let feeds = {};\n let stateKeys = [];\n function postError(error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: error instanceof Error ? error.message : String(error)\n });\n }\n async function init() {\n Y.wasm.wasmPaths = { wasm: ortWasmUrl, mjs: ortMjsUrl };\n Y.wasm.numThreads = 1;\n const [modelRes, dataRes] = await Promise.all([\n fetch(modelUrl),\n fetch(modelDataUrl)\n ]);\n if (!modelRes.ok) {\n throw new Error(`Model fetch failed: ${modelRes.status} ${modelRes.statusText}`);\n }\n if (!dataRes.ok) {\n throw new Error(`Model data fetch failed: ${dataRes.status} ${dataRes.statusText}`);\n }\n const [modelBytes, dataBytes] = await Promise.all([\n modelRes.arrayBuffer(),\n dataRes.arrayBuffer()\n ]);\n session = await ts.create(new Uint8Array(modelBytes), {\n executionProviders: ["wasm"],\n externalData: [\n {\n path: MODEL_EXTERNAL_DATA_PATH,\n data: new Uint8Array(dataBytes)\n }\n ]\n });\n state = createZeroStateTensors(session, de);\n stateKeys = Object.keys(state);\n feeds = { audio: void 0 };\n for (const name of stateKeys) {\n feeds[name] = state[name];\n }\n }\n function appendBuffer(chunk) {\n const next = new Float32Array(buffer.length + chunk.length);\n next.set(buffer, 0);\n next.set(chunk, buffer.length);\n buffer = next;\n }\n async function drainBuffer() {\n if (draining) {\n return;\n }\n draining = true;\n try {\n while (buffer.length >= CHUNK_SIZE) {\n if (!session || !state) {\n break;\n }\n const chunk = buffer.subarray(0, CHUNK_SIZE);\n buffer = buffer.subarray(CHUNK_SIZE);\n feeds.audio = new de("float32", chunk, [1, CHUNK_SIZE]);\n for (const name of stateKeys) {\n feeds[name] = state[name];\n }\n const results = await session.run(feeds);\n updateStateFromOutputs(state, results);\n const probs = results.voice_probs?.data;\n if (!probs || probs.length < 2) {\n continue;\n }\n const speechProb = Math.max(probs[0], probs[1]);\n const silenceProb = 1 - speechProb;\n self.postMessage({\n type: "data" /* DATA */,\n data: { speechProb, silenceProb }\n });\n }\n } catch (err) {\n postError(err);\n } finally {\n draining = false;\n }\n }\n function onAudio(data) {\n appendBuffer(new Float32Array(data));\n void drainBuffer();\n }\n init().then(() => {\n self.onmessage = (event) => {\n onAudio(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n function updateStateFromOutputs(state, outputs) {\n for (const [outName, inName] of Object.entries(STATE_OUTPUT_TO_INPUT)) {\n const next = outputs[outName];\n if (next) {\n state[inName] = next;\n }\n }\n }\n function createZeroStateTensors(session, TensorCtor) {\n const state = {};\n for (const name of session.inputNames) {\n if (name === "audio") {\n continue;\n }\n const dims = STATE_INPUT_DIMS[name];\n if (!dims) {\n continue;\n }\n const size = dims.reduce((a, b) => a * b, 1);\n state[name] = new TensorCtor("float32", new Float32Array(size), dims);\n }\n return state;\n }\n return __toCommonJS(VadOnnxWorker_exports);\n})();\n/*! Bundled license information:\n\nonnxruntime-web/dist/ort.wasm.bundle.min.mjs:\n (*!\n * ONNX Runtime Web v1.26.0\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n *)\n*/\n',
|
|
4963
|
+
workerArgs: isTflite ? [import_audio_processing2.default, import_audio_processing2.default.getUrl] : [
|
|
4964
|
+
JSON.stringify(this._modelUrl),
|
|
4965
|
+
JSON.stringify(this._modelDataUrl),
|
|
4966
|
+
JSON.stringify(this._ortWasmUrl),
|
|
4967
|
+
JSON.stringify(this._ortMjsUrl)
|
|
4905
4968
|
]
|
|
4906
4969
|
});
|
|
4907
4970
|
}
|
|
@@ -4927,21 +4990,23 @@ var DEFAULT_THRESHOLD = 0.66;
|
|
|
4927
4990
|
var DEFAULT_HANGOVER_MS = 300;
|
|
4928
4991
|
var WATCHDOG_MS = 2e3;
|
|
4929
4992
|
var VadController = class {
|
|
4993
|
+
_effect = null;
|
|
4994
|
+
_sendTrack = null;
|
|
4995
|
+
_vadInputTrack = null;
|
|
4996
|
+
_threshold = DEFAULT_THRESHOLD;
|
|
4997
|
+
_hangoverMs = DEFAULT_HANGOVER_MS;
|
|
4998
|
+
_effectOptions = {};
|
|
4999
|
+
_isSpeaking = true;
|
|
5000
|
+
_lastSpeechAt = 0;
|
|
5001
|
+
_hangoverTimer = null;
|
|
5002
|
+
_watchdogTimer = null;
|
|
5003
|
+
_destroyed = false;
|
|
5004
|
+
_loggerFn = () => {
|
|
5005
|
+
};
|
|
5006
|
+
_logger = new Logger(this._loggerFn, "VAD");
|
|
4930
5007
|
constructor(sendTrack = null, options) {
|
|
4931
|
-
this._effect = null;
|
|
4932
|
-
this._sendTrack = null;
|
|
4933
|
-
this._vadInputTrack = null;
|
|
4934
|
-
this._threshold = DEFAULT_THRESHOLD;
|
|
4935
|
-
this._hangoverMs = DEFAULT_HANGOVER_MS;
|
|
4936
|
-
this._isSpeaking = true;
|
|
4937
|
-
this._lastSpeechAt = 0;
|
|
4938
|
-
this._hangoverTimer = null;
|
|
4939
|
-
this._watchdogTimer = null;
|
|
4940
|
-
this._destroyed = false;
|
|
4941
|
-
this._loggerFn = () => {
|
|
4942
|
-
};
|
|
4943
|
-
this._logger = new Logger(this._loggerFn, "VAD");
|
|
4944
5008
|
if (options) {
|
|
5009
|
+
this._applyEffectOptions(options);
|
|
4945
5010
|
this.setOptions(options);
|
|
4946
5011
|
}
|
|
4947
5012
|
this._sendTrack = sendTrack;
|
|
@@ -4954,6 +5019,23 @@ var VadController = class {
|
|
|
4954
5019
|
this._hangoverMs = options.hangoverMs;
|
|
4955
5020
|
}
|
|
4956
5021
|
}
|
|
5022
|
+
_applyEffectOptions(options) {
|
|
5023
|
+
if (options.modelType !== void 0) {
|
|
5024
|
+
this._effectOptions.modelType = options.modelType;
|
|
5025
|
+
}
|
|
5026
|
+
if (options.modelUrl !== void 0) {
|
|
5027
|
+
this._effectOptions.modelUrl = options.modelUrl;
|
|
5028
|
+
}
|
|
5029
|
+
if (options.modelDataUrl !== void 0) {
|
|
5030
|
+
this._effectOptions.modelDataUrl = options.modelDataUrl;
|
|
5031
|
+
}
|
|
5032
|
+
if (options.ortWasmUrl !== void 0) {
|
|
5033
|
+
this._effectOptions.ortWasmUrl = options.ortWasmUrl;
|
|
5034
|
+
}
|
|
5035
|
+
if (options.ortMjsUrl !== void 0) {
|
|
5036
|
+
this._effectOptions.ortMjsUrl = options.ortMjsUrl;
|
|
5037
|
+
}
|
|
5038
|
+
}
|
|
4957
5039
|
setLogger(loggerFunction, loggerName = "VAD") {
|
|
4958
5040
|
this._loggerFn = loggerFunction;
|
|
4959
5041
|
this._logger = new Logger(loggerFunction, loggerName);
|
|
@@ -4964,8 +5046,8 @@ var VadController = class {
|
|
|
4964
5046
|
this._logger.warn("EffectVadAi is not supported in this browser, VAD disabled");
|
|
4965
5047
|
return;
|
|
4966
5048
|
}
|
|
4967
|
-
this._logger.log("init: loading model ...");
|
|
4968
|
-
const effect = new EffectVadAi();
|
|
5049
|
+
this._logger.log("init: loading model ...", this._effectOptions.modelType ?? "onnx");
|
|
5050
|
+
const effect = new EffectVadAi(this._effectOptions);
|
|
4969
5051
|
effect.setLogger(this._loggerFn, "VAD");
|
|
4970
5052
|
effect.onData = (probs) => this._onProbs(probs);
|
|
4971
5053
|
this._effect = effect;
|
|
@@ -5086,16 +5168,16 @@ var VadController = class {
|
|
|
5086
5168
|
};
|
|
5087
5169
|
|
|
5088
5170
|
// src/effects/EffectVoiceChange.ts
|
|
5089
|
-
var
|
|
5171
|
+
var import_audio_processing3 = __toESM(require_wasm_bindings());
|
|
5090
5172
|
|
|
5091
5173
|
// src/worklets/VoiceChangeWorklet.ts
|
|
5092
5174
|
function voiceChangeWorkletFunction() {
|
|
5093
5175
|
class VoiceChangeWorklet extends AudioWorkletProcessor {
|
|
5176
|
+
samplesQueue = new Float32Array();
|
|
5177
|
+
lastFrameTime = 0;
|
|
5094
5178
|
// в секундах
|
|
5095
5179
|
constructor() {
|
|
5096
5180
|
super();
|
|
5097
|
-
this.samplesQueue = new Float32Array();
|
|
5098
|
-
this.lastFrameTime = 0;
|
|
5099
5181
|
this.port.postMessage({ type: "init" /* INIT */ });
|
|
5100
5182
|
this.port.onmessage = ({ data: { data } }) => {
|
|
5101
5183
|
const samplesIn = new Float32Array(data);
|
|
@@ -5138,6 +5220,18 @@ var PerformanceMonitorMode = /* @__PURE__ */ ((PerformanceMonitorMode2) => {
|
|
|
5138
5220
|
return PerformanceMonitorMode2;
|
|
5139
5221
|
})(PerformanceMonitorMode || {});
|
|
5140
5222
|
var PerformanceMonitor = class {
|
|
5223
|
+
threshold;
|
|
5224
|
+
intervalMs;
|
|
5225
|
+
mode;
|
|
5226
|
+
logPerformanceChecks;
|
|
5227
|
+
maxCountBadPerformanceBeforeCb;
|
|
5228
|
+
onBadPerformanceCb;
|
|
5229
|
+
onCheckPerformanceCb;
|
|
5230
|
+
logger = null;
|
|
5231
|
+
interval = 0;
|
|
5232
|
+
countBadPerformanceBeforeCb = 0;
|
|
5233
|
+
beginMarkTs = 0;
|
|
5234
|
+
performanceMeasures = [];
|
|
5141
5235
|
/**
|
|
5142
5236
|
* @typedef {Object} PerformanceMonitorOptions
|
|
5143
5237
|
* @param {PerformanceMonitorOptions} params
|
|
@@ -5170,11 +5264,6 @@ var PerformanceMonitor = class {
|
|
|
5170
5264
|
onBadPerformanceCb,
|
|
5171
5265
|
onCheckPerformanceCb
|
|
5172
5266
|
}) {
|
|
5173
|
-
this.logger = null;
|
|
5174
|
-
this.interval = 0;
|
|
5175
|
-
this.countBadPerformanceBeforeCb = 0;
|
|
5176
|
-
this.beginMarkTs = 0;
|
|
5177
|
-
this.performanceMeasures = [];
|
|
5178
5267
|
this.threshold = badPerformanceThreshold;
|
|
5179
5268
|
this.intervalMs = measureIntervalMs;
|
|
5180
5269
|
this.mode = mode;
|
|
@@ -5263,6 +5352,7 @@ var VoiceChangeEffectType = /* @__PURE__ */ ((VoiceChangeEffectType2) => {
|
|
|
5263
5352
|
return VoiceChangeEffectType2;
|
|
5264
5353
|
})(VoiceChangeEffectType || {});
|
|
5265
5354
|
var EffectVoiceChange = class extends WorkerAudioProcessor {
|
|
5355
|
+
mode;
|
|
5266
5356
|
/**
|
|
5267
5357
|
* @typedef {string} EffectVoiceChangeMode
|
|
5268
5358
|
* @typedef {Object} PerformanceMonitorOptions
|
|
@@ -5285,7 +5375,7 @@ var EffectVoiceChange = class extends WorkerAudioProcessor {
|
|
|
5285
5375
|
workletFunction: voiceChangeWorkletFunction,
|
|
5286
5376
|
workletName: "voiceChangeWorklet",
|
|
5287
5377
|
workerFunctionString: '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n\n // src/workers/VoiceChangeWorker.ts\n var VoiceChangeWorker_exports = {};\n __export(VoiceChangeWorker_exports, {\n VoiceChangeWorkerRequestType: () => VoiceChangeWorkerRequestType,\n default: () => VoiceChangeWorker_default\n });\n var VoiceChangeWorkerRequestType = /* @__PURE__ */ ((VoiceChangeWorkerRequestType2) => {\n VoiceChangeWorkerRequestType2["SET_EFFECTS"] = "set_effects";\n VoiceChangeWorkerRequestType2["DATA"] = "data";\n return VoiceChangeWorkerRequestType2;\n })(VoiceChangeWorkerRequestType || {});\n var VoiceChangeWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let effectsData = [];\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then((module) => {\n Wav2lip = module;\n });\n }\n function setEffects(effectInputs, isPreset = false) {\n if (!Wav2lip) {\n return;\n }\n try {\n for (const effectInput of effectInputs) {\n const configValue = `${effectInput}${isPreset ? ".cfg" : ""}`;\n const configInput = new Wav2lip.ConfigInput(configValue, isPreset, "/");\n const config = new Wav2lip.Config(configInput);\n const effect = Wav2lip.EffectFactory.createAlgorithm(config);\n effectsData.push({\n configInput,\n config,\n effect\n });\n }\n } catch (error) {\n self.postMessage({\n type: "debug" /* DEBUG */,\n message: "before error " + JSON.stringify(effectsData)\n });\n postError("setEffects error:", error);\n }\n }\n function clearEffects() {\n try {\n for (const effectData of effectsData) {\n effectData.configInput.delete();\n effectData.config.delete();\n effectData.effect.delete();\n }\n } catch (error) {\n postError("clearEffects error:", error);\n }\n effectsData = [];\n }\n function postError(source, error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: typeof error === "number" && Wav2lip ? Wav2lip.getExMessage(error) : source + error\n });\n }\n function requestSamples(data) {\n if (!Wav2lip || !effectsData.length) {\n return;\n }\n try {\n let inputVec = new Wav2lip.vector$float$();\n const dataArr = new Float32Array(data);\n for (const sample of dataArr) {\n inputVec.push_back(sample);\n }\n for (const { effect } of effectsData) {\n inputVec = Wav2lip.applyEffect(effect, inputVec);\n }\n const samplesCount = inputVec?.size?.();\n if (!samplesCount) {\n return;\n }\n const resultSamples = new Float32Array(samplesCount);\n for (let i = 0; i < samplesCount; i++) {\n resultSamples[i] = inputVec.get(i);\n }\n self.postMessage({\n type: "data" /* DATA */,\n data: resultSamples.buffer\n }, [resultSamples.buffer]);\n } catch (error) {\n postError("requestSamples error:", error);\n }\n }\n init().then(() => {\n self.onmessage = ({ data: request }) => {\n switch (request.type) {\n case "set_effects" /* SET_EFFECTS */: {\n clearEffects();\n setEffects(request.effects, request.isPreset);\n break;\n }\n case "data" /* DATA */: {\n requestSamples(request.data);\n break;\n }\n }\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch((error) => postError("init error:", error));\n };\n return __toCommonJS(VoiceChangeWorker_exports);\n})();\n',
|
|
5288
|
-
workerArgs: [
|
|
5378
|
+
workerArgs: [import_audio_processing3.default, import_audio_processing3.default.getUrl]
|
|
5289
5379
|
});
|
|
5290
5380
|
}
|
|
5291
5381
|
setEffects(effects, isPreset) {
|