var getUsdModule = ((args) => { var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; return function (moduleArg = { // module overrides can be supplied here locateFile: (path, prefix) => { if (!prefix && _scriptDir) prefix = _scriptDir.substr(0, _scriptDir.lastIndexOf('/') + 1); return prefix + path; }, ...args }) { function GROWABLE_HEAP_I8() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAP8; } function GROWABLE_HEAP_U8() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPU8; } function GROWABLE_HEAP_I16() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAP16; } function GROWABLE_HEAP_U16() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPU16; } function GROWABLE_HEAP_I32() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAP32; } function GROWABLE_HEAP_U32() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPU32; } function GROWABLE_HEAP_F32() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPF32; } function GROWABLE_HEAP_F64() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPF64; } var Module = moduleArg; var readyPromiseResolve, readyPromiseReject; Module["ready"] = new Promise((resolve, reject) => { readyPromiseResolve = resolve; readyPromiseReject = reject; }); if (!Module.expectedDataFileDownloads) { Module.expectedDataFileDownloads = 0; } Module.expectedDataFileDownloads++; (function () { if (Module["ENVIRONMENT_IS_PTHREAD"] || Module["$ww"]) return; var loadPackage = function (metadata) { var PACKAGE_PATH = ""; if (typeof window === "object") { PACKAGE_PATH = window["encodeURIComponent"]( window.location.pathname .toString() .substring( 0, window.location.pathname.toString().lastIndexOf("/"), ) + "/", ); } else if ( typeof process === "undefined" && typeof location !== "undefined" ) { PACKAGE_PATH = encodeURIComponent( location.pathname .toString() .substring(0, location.pathname.toString().lastIndexOf("/")) + "/", ); } var PACKAGE_NAME = "emHdBindings.data"; var REMOTE_PACKAGE_BASE = "emHdBindings.data"; if ( typeof Module["locateFilePackage"] === "function" && !Module["locateFile"] ) { Module["locateFile"] = Module["locateFilePackage"]; err( "warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)", ); } var REMOTE_PACKAGE_NAME = Module["locateFile"] ? Module["locateFile"](REMOTE_PACKAGE_BASE, "") : REMOTE_PACKAGE_BASE; var REMOTE_PACKAGE_SIZE = metadata["remote_package_size"]; function fetchRemotePackage( packageName, packageSize, callback, errback, ) { if ( typeof process === "object" && typeof process.versions === "object" && typeof process.versions.node === "string" ) { require("fs").readFile(packageName, function (err, contents) { if (err) { errback(err); } else { callback(contents.buffer); } }); return; } var xhr = new XMLHttpRequest(); xhr.open("GET", packageName, true); xhr.responseType = "arraybuffer"; xhr.onprogress = function (event) { var url = packageName; var size = packageSize; if (event.total) size = event.total; if (event.loaded) { if (!xhr.addedTotal) { xhr.addedTotal = true; if (!Module.dataFileDownloads) Module.dataFileDownloads = {}; Module.dataFileDownloads[url] = { loaded: event.loaded, total: size, }; } else { Module.dataFileDownloads[url].loaded = event.loaded; } var total = 0; var loaded = 0; var num = 0; for (var download in Module.dataFileDownloads) { var data = Module.dataFileDownloads[download]; total += data.total; loaded += data.loaded; num++; } total = Math.ceil( (total * Module.expectedDataFileDownloads) / num, ); if (Module["setStatus"]) Module["setStatus"](`Downloading data... (${loaded}/${total})`); } else if (!Module.dataFileDownloads) { if (Module["setStatus"]) Module["setStatus"]("Downloading data..."); } }; xhr.onerror = function (event) { throw new Error("NetworkError for: " + packageName); }; xhr.onload = function (event) { if ( xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response) ) { var packageData = xhr.response; callback(packageData); } else { throw new Error(xhr.statusText + " : " + xhr.responseURL); } }; xhr.send(null); } function handleError(error) { console.error("package error:", error); } var fetchedCallback = null; var fetched = Module["getPreloadedPackage"] ? Module["getPreloadedPackage"]( REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, ) : null; if (!fetched) fetchRemotePackage( REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function (data) { if (fetchedCallback) { fetchedCallback(data); fetchedCallback = null; } else { fetched = data; } }, handleError, ); function runWithFS() { function assert(check, msg) { if (!check) throw msg + new Error().stack; } Module["FS_createPath"]("/", "usd", true, true); Module["FS_createPath"]("/usd", "ar", true, true); Module["FS_createPath"]("/usd/ar", "resources", true, true); Module["FS_createPath"]("/usd", "hd", true, true); Module["FS_createPath"]("/usd/hd", "resources", true, true); Module["FS_createPath"]( "/usd/hd/resources", "codegenTemplates", true, true, ); Module["FS_createPath"]("/usd", "httpResolver", true, true); Module["FS_createPath"]("/usd/httpResolver", "resources", true, true); Module["FS_createPath"]("/usd", "ndr", true, true); Module["FS_createPath"]("/usd/ndr", "resources", true, true); Module["FS_createPath"]("/usd", "sdf", true, true); Module["FS_createPath"]("/usd/sdf", "resources", true, true); Module["FS_createPath"]("/usd", "usd", true, true); Module["FS_createPath"]("/usd/usd", "resources", true, true); Module["FS_createPath"]( "/usd/usd/resources", "codegenTemplates", true, true, ); Module["FS_createPath"]("/usd/usd/resources", "usd", true, true); Module["FS_createPath"]("/usd", "usdGeom", true, true); Module["FS_createPath"]("/usd/usdGeom", "resources", true, true); Module["FS_createPath"]( "/usd/usdGeom/resources", "usdGeom", true, true, ); Module["FS_createPath"]("/usd", "usdHydra", true, true); Module["FS_createPath"]("/usd/usdHydra", "resources", true, true); Module["FS_createPath"]( "/usd/usdHydra/resources", "shaders", true, true, ); Module["FS_createPath"]( "/usd/usdHydra/resources", "usdHydra", true, true, ); Module["FS_createPath"]("/usd", "usdImaging", true, true); Module["FS_createPath"]("/usd/usdImaging", "resources", true, true); Module["FS_createPath"]("/usd", "usdLux", true, true); Module["FS_createPath"]("/usd/usdLux", "resources", true, true); Module["FS_createPath"]( "/usd/usdLux/resources", "usdLux", true, true, ); Module["FS_createPath"]("/usd", "usdRender", true, true); Module["FS_createPath"]("/usd/usdRender", "resources", true, true); Module["FS_createPath"]( "/usd/usdRender/resources", "usdRender", true, true, ); Module["FS_createPath"]("/usd", "usdShade", true, true); Module["FS_createPath"]("/usd/usdShade", "resources", true, true); Module["FS_createPath"]( "/usd/usdShade/resources", "usdShade", true, true, ); Module["FS_createPath"]("/usd", "usdShaders", true, true); Module["FS_createPath"]("/usd/usdShaders", "resources", true, true); Module["FS_createPath"]( "/usd/usdShaders/resources", "shaders", true, true, ); Module["FS_createPath"]("/usd", "usdSkel", true, true); Module["FS_createPath"]("/usd/usdSkel", "resources", true, true); Module["FS_createPath"]( "/usd/usdSkel/resources", "usdSkel", true, true, ); Module["FS_createPath"]("/usd", "usdVol", true, true); Module["FS_createPath"]("/usd/usdVol", "resources", true, true); Module["FS_createPath"]( "/usd/usdVol/resources", "usdVol", true, true, ); function DataRequest(start, end, audio) { this.start = start; this.end = end; this.audio = audio; } DataRequest.prototype = { requests: {}, open: function (mode, name) { this.name = name; this.requests[name] = this; Module["addRunDependency"](`fp ${this.name}`); }, send: function () {}, onload: function () { var byteArray = this.byteArray.subarray(this.start, this.end); this.finish(byteArray); }, finish: function (byteArray) { var that = this; Module["FS_createDataFile"]( this.name, null, byteArray, true, true, true, ); Module["removeRunDependency"](`fp ${that.name}`); this.requests[this.name] = null; }, }; var files = metadata["files"]; for (var i = 0; i < files.length; ++i) { new DataRequest( files[i]["start"], files[i]["end"], files[i]["audio"] || 0, ).open("GET", files[i]["filename"]); } function processPackageData(arrayBuffer) { assert(arrayBuffer, "Loading data file failed."); assert( arrayBuffer.constructor.name === ArrayBuffer.name, "bad input to processPackageData", ); var byteArray = new Uint8Array(arrayBuffer); DataRequest.prototype.byteArray = byteArray; var files = metadata["files"]; for (var i = 0; i < files.length; ++i) { DataRequest.prototype.requests[files[i].filename].onload(); } Module["removeRunDependency"]("datafile_emHdBindings.data"); } Module["addRunDependency"]("datafile_emHdBindings.data"); if (!Module.preloadResults) Module.preloadResults = {}; Module.preloadResults[PACKAGE_NAME] = { fromCache: false }; if (fetched) { processPackageData(fetched); fetched = null; } else { fetchedCallback = processPackageData; } } if (Module["calledRun"]) { runWithFS(); } else { if (!Module["preRun"]) Module["preRun"] = []; Module["preRun"].push(runWithFS); } }; loadPackage({ files: [ { filename: "/usd/ar/resources/plugInfo.json", start: 0, end: 589 }, { filename: "/usd/hd/resources/codegenTemplates/schemaClass.cpp", start: 589, end: 9620, }, { filename: "/usd/hd/resources/codegenTemplates/schemaClass.h", start: 9620, end: 20258, }, { filename: "/usd/hd/resources/plugInfo.json", start: 20258, end: 20483, }, { filename: "/usd/httpResolver/resources/plugInfo.json", start: 20483, end: 20823, }, { filename: "/usd/ndr/resources/plugInfo.json", start: 20823, end: 21397, }, { filename: "/usd/plugInfo.json", start: 21397, end: 21448 }, { filename: "/usd/sdf/resources/plugInfo.json", start: 21448, end: 22544, }, { filename: "/usd/usd/resources/codegenTemplates/api.h", start: 22544, end: 24646, }, { filename: "/usd/usd/resources/codegenTemplates/plugInfo.json", start: 24646, end: 25003, }, { filename: "/usd/usd/resources/codegenTemplates/schemaClass.cpp", start: 25003, end: 37342, }, { filename: "/usd/usd/resources/codegenTemplates/schemaClass.h", start: 37342, end: 54229, }, { filename: "/usd/usd/resources/codegenTemplates/tokens.cpp", start: 54229, end: 55817, }, { filename: "/usd/usd/resources/codegenTemplates/tokens.h", start: 55817, end: 59072, }, { filename: "/usd/usd/resources/codegenTemplates/wrapSchemaClass.cpp", start: 59072, end: 68578, }, { filename: "/usd/usd/resources/codegenTemplates/wrapTokens.cpp", start: 68578, end: 71099, }, { filename: "/usd/usd/resources/generatedSchema.usda", start: 71099, end: 86803, }, { filename: "/usd/usd/resources/plugInfo.json", start: 86803, end: 92530, }, { filename: "/usd/usd/resources/usd/schema.usda", start: 92530, end: 110774, }, { filename: "/usd/usdGeom/resources/generatedSchema.usda", start: 110774, end: 355640, }, { filename: "/usd/usdGeom/resources/plugInfo.json", start: 355640, end: 371761, }, { filename: "/usd/usdGeom/resources/usdGeom/schema.usda", start: 371761, end: 500520, }, { filename: "/usd/usdHydra/resources/generatedSchema.usda", start: 500520, end: 501538, }, { filename: "/usd/usdHydra/resources/plugInfo.json", start: 501538, end: 502826, }, { filename: "/usd/usdHydra/resources/shaders/empty.glslfx", start: 502826, end: 504049, }, { filename: "/usd/usdHydra/resources/shaders/shaderDefs.usda", start: 504049, end: 510806, }, { filename: "/usd/usdHydra/resources/usdHydra/schema.usda", start: 510806, end: 518107, }, { filename: "/usd/usdImaging/resources/plugInfo.json", start: 518107, end: 531776, }, { filename: "/usd/usdLux/resources/generatedSchema.usda", start: 531776, end: 610666, }, { filename: "/usd/usdLux/resources/plugInfo.json", start: 610666, end: 620463, }, { filename: "/usd/usdLux/resources/usdLux/schema.usda", start: 620463, end: 662394, }, { filename: "/usd/usdRender/resources/generatedSchema.usda", start: 662394, end: 685685, }, { filename: "/usd/usdRender/resources/plugInfo.json", start: 685685, end: 688784, }, { filename: "/usd/usdRender/resources/usdRender/schema.usda", start: 688784, end: 705492, }, { filename: "/usd/usdShade/resources/generatedSchema.usda", start: 705492, end: 721492, }, { filename: "/usd/usdShade/resources/plugInfo.json", start: 721492, end: 727378, }, { filename: "/usd/usdShade/resources/usdShade/schema.usda", start: 727378, end: 754223, }, { filename: "/usd/usdShaders/resources/plugInfo.json", start: 754223, end: 754902, }, { filename: "/usd/usdShaders/resources/shaders/previewSurface.glslfx", start: 754902, end: 768823, }, { filename: "/usd/usdShaders/resources/shaders/primvarReader.glslfx", start: 768823, end: 770046, }, { filename: "/usd/usdShaders/resources/shaders/shaderDefs.usda", start: 770046, end: 784976, }, { filename: "/usd/usdShaders/resources/shaders/transform2d.glslfx", start: 784976, end: 786199, }, { filename: "/usd/usdShaders/resources/shaders/uvTexture.glslfx", start: 786199, end: 787422, }, { filename: "/usd/usdSkel/resources/generatedSchema.usda", start: 787422, end: 802913, }, { filename: "/usd/usdSkel/resources/plugInfo.json", start: 802913, end: 805907, }, { filename: "/usd/usdSkel/resources/usdSkel/schema.usda", start: 805907, end: 816312, }, { filename: "/usd/usdVol/resources/generatedSchema.usda", start: 816312, end: 840757, }, { filename: "/usd/usdVol/resources/plugInfo.json", start: 840757, end: 843193, }, { filename: "/usd/usdVol/resources/usdVol/schema.usda", start: 843193, end: 849069, }, ], remote_package_size: 849069, }); })(); if (!Module["ENVIRONMENT_IS_PTHREAD"]) { function isMobileDevice() { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent, ); } const MAX_MEMORY_MOBILE = 1024 * 1024 * 1024; const MAX_MEMORY_DESKTOP = 4 * 1024 * 1024 * 1024; const MAX_DEVICE_MEMORY = isMobileDevice() ? MAX_MEMORY_MOBILE : MAX_MEMORY_DESKTOP; Module["wasmMemory"] = new WebAssembly.Memory({ initial: 16777216 / 65536, maximum: MAX_DEVICE_MEMORY / 65536, shared: true, }); } var moduleOverrides = Object.assign({}, Module); var arguments_ = []; var thisProgram = "./this.program"; var quit_ = (status, toThrow) => { throw toThrow; }; var ENVIRONMENT_IS_WEB = typeof window == "object"; var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false; var scriptDirectory = ""; function locateFile(path) { if (Module["locateFile"]) { return Module["locateFile"](path, scriptDirectory); } return scriptDirectory + path; } var read_, readAsync, readBinary; if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var nodePath = require("path"); if (ENVIRONMENT_IS_WORKER) { scriptDirectory = nodePath.dirname(scriptDirectory) + "/"; } else { scriptDirectory = __dirname + "/"; } read_ = (filename, binary) => { filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); return fs.readFileSync(filename, binary ? undefined : "utf8"); }; readBinary = (filename) => { var ret = read_(filename, true); if (!ret.buffer) { ret = new Uint8Array(ret); } return ret; }; readAsync = (filename, onload, onerror, binary = true) => { filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); fs.readFile(filename, binary ? undefined : "utf8", (err, data) => { if (err) onerror(err); else onload(binary ? data.buffer : data); }); }; if (!Module["thisProgram"] && process.argv.length > 1) { thisProgram = process.argv[1].replace(/\\/g, "/"); } arguments_ = process.argv.slice(2); quit_ = (status, toThrow) => { process.exitCode = status; throw toThrow; }; Module["inspect"] = () => "[Emscripten Module object]"; let nodeWorkerThreads; try { nodeWorkerThreads = require("worker_threads"); } catch (e) { console.error( 'The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?', ); throw e; } global.Worker = nodeWorkerThreads.Worker; } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { if (ENVIRONMENT_IS_WORKER) { scriptDirectory = self.location.href; } else if (typeof document != "undefined" && document.currentScript) { scriptDirectory = document.currentScript.src; } if (_scriptDir) { scriptDirectory = _scriptDir; } if (scriptDirectory.indexOf("blob:") !== 0) { scriptDirectory = scriptDirectory.substr( 0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1, ); } else { scriptDirectory = ""; } if (!ENVIRONMENT_IS_NODE) { read_ = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.send(null); return xhr.responseText; }; if (ENVIRONMENT_IS_WORKER) { readBinary = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.responseType = "arraybuffer"; xhr.send(null); return new Uint8Array(xhr.response); }; } readAsync = (url, onload, onerror) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = () => { if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { onload(xhr.response); return; } onerror(); }; xhr.onerror = onerror; xhr.send(null); }; } } else { } if (ENVIRONMENT_IS_NODE) { if (typeof performance == "undefined") { global.performance = require("perf_hooks").performance; } } var defaultPrint = console.log.bind(console); var defaultPrintErr = console.error.bind(console); if (ENVIRONMENT_IS_NODE) { defaultPrint = (...args) => fs.writeSync(1, args.join(" ") + "\n"); defaultPrintErr = (...args) => fs.writeSync(2, args.join(" ") + "\n"); } var out = Module["print"] || defaultPrint; var err = Module["printErr"] || defaultPrintErr; Object.assign(Module, moduleOverrides); moduleOverrides = null; if (Module["arguments"]) arguments_ = Module["arguments"]; if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; if (Module["quit"]) quit_ = Module["quit"]; var wasmBinary; if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; if (typeof WebAssembly != "object") { abort("no native wasm support detected"); } var wasmMemory; var wasmModule; var ABORT = false; var EXITSTATUS; function assert(condition, text) { if (!condition) { abort(text); } } var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; function updateMemoryViews() { var b = wasmMemory.buffer; Module["HEAP8"] = HEAP8 = new Int8Array(b); Module["HEAP16"] = HEAP16 = new Int16Array(b); Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); Module["HEAP32"] = HEAP32 = new Int32Array(b); Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); Module["HEAPF32"] = HEAPF32 = new Float32Array(b); Module["HEAPF64"] = HEAPF64 = new Float64Array(b); } var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; assert( INITIAL_MEMORY >= 5242880, "INITIAL_MEMORY should be larger than STACK_SIZE, was " + INITIAL_MEMORY + "! (STACK_SIZE=" + 5242880 + ")", ); if (ENVIRONMENT_IS_PTHREAD) { wasmMemory = Module["wasmMemory"]; } else { if (Module["wasmMemory"]) { wasmMemory = Module["wasmMemory"]; } else { wasmMemory = new WebAssembly.Memory({ initial: INITIAL_MEMORY / 65536, maximum: 4294967296 / 65536, shared: true, }); if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) { err( "requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag", ); if (ENVIRONMENT_IS_NODE) { err( "(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)", ); } throw Error("bad memory"); } } } updateMemoryViews(); INITIAL_MEMORY = wasmMemory.buffer.byteLength; var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATPOSTRUN__ = []; var runtimeInitialized = false; function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function initRuntime() { runtimeInitialized = true; if (ENVIRONMENT_IS_PTHREAD) return; if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); FS.ignorePermissions = false; TTY.init(); callRuntimeCallbacks(__ATINIT__); } function postRun() { if (ENVIRONMENT_IS_PTHREAD) return; if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } function addOnInit(cb) { __ATINIT__.unshift(cb); } function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } var runDependencies = 0; var runDependencyWatcher = null; var dependenciesFulfilled = null; function getUniqueRunDependency(id) { return id; } function addRunDependency(id) { runDependencies++; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } } function removeRunDependency(id) { runDependencies--; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } if (runDependencies == 0) { if (runDependencyWatcher !== null) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; } if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } function abort(what) { if (Module["onAbort"]) { Module["onAbort"](what); } what = "Aborted(" + what + ")"; err(what); // ABORT = true; // this does not allow anything to work after being set, however we're actually okay to try other assets so we shouldn't do this EXITSTATUS = 1; what += ". Build with -sASSERTIONS for more info."; var e = new WebAssembly.RuntimeError(what); readyPromiseReject(e); throw e; } var dataURIPrefix = "data:application/octet-stream;base64,"; var isDataURI = (filename) => filename.startsWith(dataURIPrefix); var isFileURI = (filename) => filename.startsWith("file://"); var wasmBinaryFile; wasmBinaryFile = "emHdBindings.wasm"; if (!isDataURI(wasmBinaryFile)) { wasmBinaryFile = locateFile(wasmBinaryFile); } function getBinarySync(file) { if (file == wasmBinaryFile && wasmBinary) { return new Uint8Array(wasmBinary); } if (readBinary) { return readBinary(file); } throw "both async and sync fetching of the wasm failed"; } function getBinaryPromise(binaryFile) { if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { if (typeof fetch == "function" && !isFileURI(binaryFile)) { return fetch(binaryFile, { credentials: "same-origin" }) .then((response) => { if (!response["ok"]) { throw "failed to load wasm binary file at '" + binaryFile + "'"; } return response["arrayBuffer"](); }) .catch(() => getBinarySync(binaryFile)); } else if (readAsync) { return new Promise((resolve, reject) => { readAsync( binaryFile, (response) => resolve(new Uint8Array(response)), reject, ); }); } } return Promise.resolve().then(() => getBinarySync(binaryFile)); } function instantiateArrayBuffer(binaryFile, imports, receiver) { return getBinaryPromise(binaryFile) .then((binary) => WebAssembly.instantiate(binary, imports)) .then((instance) => instance) .then(receiver, (reason) => { err(`failed to asynchronously prepare wasm: ${reason}`); abort(reason); }); } function instantiateAsync(binary, binaryFile, imports, callback) { if ( !binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && !isFileURI(binaryFile) && !ENVIRONMENT_IS_NODE && typeof fetch == "function" ) { return fetch(binaryFile, { credentials: "same-origin" }).then( (response) => { var result = WebAssembly.instantiateStreaming(response, imports); return result.then(callback, function (reason) { err(`wasm streaming compile failed: ${reason}`); err("falling back to ArrayBuffer instantiation"); return instantiateArrayBuffer(binaryFile, imports, callback); }); }, ); } return instantiateArrayBuffer(binaryFile, imports, callback); } function createWasm() { var info = { a: wasmImports }; function receiveInstance(instance, module) { wasmExports = instance.exports; wasmExports = Asyncify.instrumentWasmExports(wasmExports); wasmExports = applySignatureConversions(wasmExports); registerTLSInit(wasmExports["Hd"]); wasmTable = wasmExports["Dd"]; addOnInit(wasmExports["Bd"]); wasmModule = module; removeRunDependency("wasm-instantiate"); return wasmExports; } addRunDependency("wasm-instantiate"); function receiveInstantiationResult(result) { receiveInstance(result["instance"], result["module"]); } if (Module["instantiateWasm"]) { try { return Module["instantiateWasm"](info, receiveInstance); } catch (e) { err(`Module.instantiateWasm callback failed with error: ${e}`); readyPromiseReject(e); } } instantiateAsync( wasmBinary, wasmBinaryFile, info, receiveInstantiationResult, ).catch(readyPromiseReject); return {}; } var tempDouble; var tempI64; function __asyncjs__fetch_asset(route, dataPtr) { return Asyncify.handleAsync(async () => { const routeString = UTF8ToString(route); const absoluteUrl = new URL(routeString); try { const response = await fetch(absoluteUrl); if (!response.ok) throw new Error("Fetch failed: " + response.statusText); const buffer = await response.arrayBuffer(); const length = buffer.byteLength; const ptr = _malloc(length); GROWABLE_HEAP_U8().set(new Uint8Array(buffer), ptr >>> 0); Module.HEAP32[dataPtr >> 2] = ptr; Module.HEAP32[(dataPtr >> 2) + 1] = length; } catch (err) { console.error("Error in fetch_asset: ", err); Module.HEAP32[dataPtr >> 2] = 0; Module.HEAP32[(dataPtr >> 2) + 1] = 0; } }); } function addToLoadedFiles(path) { if (typeof self !== "undefined") { if (typeof self.loadedFiles === "undefined") { self.loadedFiles = []; } } else { console.log("Neither window nor self is defined"); } self.loadedFiles.push(UTF8ToString(path)); } function downloadJS(data, filenamedata) { const text = UTF8ToString(data); const filename = UTF8ToString(filenamedata); let element = document.createElement("a"); element.setAttribute( "href", "data:text/plain;charset=utf-8," + encodeURIComponent(text), ); element.setAttribute("download", filename); element.style.display = "none"; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function ExitStatus(status) { this.name = "ExitStatus"; this.message = `Program terminated with exit(${status})`; this.status = status; } var terminateWorker = (worker) => { worker.terminate(); worker.onmessage = (e) => {}; }; var killThread = (pthread_ptr) => { var worker = PThread.pthreads[pthread_ptr]; delete PThread.pthreads[pthread_ptr]; terminateWorker(worker); __emscripten_thread_free_data(pthread_ptr); PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); worker.pthread_ptr = 0; }; var cancelThread = (pthread_ptr) => { var worker = PThread.pthreads[pthread_ptr]; worker.postMessage({ cmd: "cancel" }); }; var cleanupThread = (pthread_ptr) => { var worker = PThread.pthreads[pthread_ptr]; assert(worker); PThread.returnWorkerToPool(worker); }; var zeroMemory = (address, size) => { GROWABLE_HEAP_U8().fill(0, address, address + size); return address; }; var spawnThread = (threadParams) => { var worker = PThread.getNewWorker(); if (!worker) { return 6; } PThread.runningWorkers.push(worker); PThread.pthreads[threadParams.pthread_ptr] = worker; worker.pthread_ptr = threadParams.pthread_ptr; var msg = { cmd: "run", start_routine: threadParams.startRoutine, arg: threadParams.arg, pthread_ptr: threadParams.pthread_ptr, }; if (ENVIRONMENT_IS_NODE) { worker.unref(); } worker.postMessage(msg, threadParams.transferList); return 0; }; var runtimeKeepaliveCounter = 0; var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1); }, normalizeArray: (parts, allowAboveRoot) => { var up = 0; for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; if (last === ".") { parts.splice(i, 1); } else if (last === "..") { parts.splice(i, 1); up++; } else if (up) { parts.splice(i, 1); up--; } } if (allowAboveRoot) { for (; up; up--) { parts.unshift(".."); } } return parts; }, normalize: (path) => { var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; path = PATH.normalizeArray( path.split("/").filter((p) => !!p), !isAbsolute, ).join("/"); if (!path && !isAbsolute) { path = "."; } if (path && trailingSlash) { path += "/"; } return (isAbsolute ? "/" : "") + path; }, dirname: (path) => { var result = PATH.splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { return "."; } if (dir) { dir = dir.substr(0, dir.length - 1); } return root + dir; }, basename: (path) => { if (path === "/") return "/"; path = PATH.normalize(path); path = path.replace(/\/$/, ""); var lastSlash = path.lastIndexOf("/"); if (lastSlash === -1) return path; return path.substr(lastSlash + 1); }, join: function () { var paths = Array.prototype.slice.call(arguments); return PATH.normalize(paths.join("/")); }, join2: (l, r) => PATH.normalize(l + "/" + r), }; var initRandomFill = () => { if ( typeof crypto == "object" && typeof crypto["getRandomValues"] == "function" ) { return (view) => ( view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))), view ); } else if (ENVIRONMENT_IS_NODE) { try { var crypto_module = require("crypto"); var randomFillSync = crypto_module["randomFillSync"]; if (randomFillSync) { return (view) => crypto_module["randomFillSync"](view); } var randomBytes = crypto_module["randomBytes"]; return (view) => (view.set(randomBytes(view.byteLength)), view); } catch (e) {} } abort("initRandomDevice"); }; var randomFill = (view) => (randomFill = initRandomFill())(view); var PATH_FS = { resolve: function () { var resolvedPath = "", resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = i >= 0 ? arguments[i] : FS.cwd(); if (typeof path != "string") { throw new TypeError("Arguments to path.resolve must be strings"); } else if (!path) { return ""; } resolvedPath = path + "/" + resolvedPath; resolvedAbsolute = PATH.isAbs(path); } resolvedPath = PATH.normalizeArray( resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute, ).join("/"); return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; }, relative: (from, to) => { from = PATH_FS.resolve(from).substr(1); to = PATH_FS.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== "") break; } var end = arr.length - 1; for (; end >= 0; end--) { if (arr[end] !== "") break; } if (start > end) return []; return arr.slice(start, end - start + 1); } var fromParts = trim(from.split("/")); var toParts = trim(to.split("/")); var length = Math.min(fromParts.length, toParts.length); var samePartsLength = length; for (var i = 0; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break; } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push(".."); } outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join("/"); }, }; var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined; var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => { idx >>>= 0; var endIdx = idx + maxBytesToRead; var endPtr = idx; while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { return UTF8Decoder.decode(heapOrArray.slice(idx, endPtr)); } var str = ""; while (idx < endPtr) { var u0 = heapOrArray[idx++]; if (!(u0 & 128)) { str += String.fromCharCode(u0); continue; } var u1 = heapOrArray[idx++] & 63; if ((u0 & 224) == 192) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } var u2 = heapOrArray[idx++] & 63; if ((u0 & 240) == 224) { u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; } else { u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); } if (u0 < 65536) { str += String.fromCharCode(u0); } else { var ch = u0 - 65536; str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023)); } } return str; }; var FS_stdin_getChar_buffer = []; var lengthBytesUTF8 = (str) => { var len = 0; for (var i = 0; i < str.length; ++i) { var c = str.charCodeAt(i); if (c <= 127) { len++; } else if (c <= 2047) { len += 2; } else if (c >= 55296 && c <= 57343) { len += 4; ++i; } else { len += 3; } } return len; }; var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { outIdx >>>= 0; if (!(maxBytesToWrite > 0)) return 0; var startIdx = outIdx; var endIdx = outIdx + maxBytesToWrite - 1; for (var i = 0; i < str.length; ++i) { var u = str.charCodeAt(i); if (u >= 55296 && u <= 57343) { var u1 = str.charCodeAt(++i); u = (65536 + ((u & 1023) << 10)) | (u1 & 1023); } if (u <= 127) { if (outIdx >= endIdx) break; heap[outIdx++ >>> 0] = u; } else if (u <= 2047) { if (outIdx + 1 >= endIdx) break; heap[outIdx++ >>> 0] = 192 | (u >> 6); heap[outIdx++ >>> 0] = 128 | (u & 63); } else if (u <= 65535) { if (outIdx + 2 >= endIdx) break; heap[outIdx++ >>> 0] = 224 | (u >> 12); heap[outIdx++ >>> 0] = 128 | ((u >> 6) & 63); heap[outIdx++ >>> 0] = 128 | (u & 63); } else { if (outIdx + 3 >= endIdx) break; heap[outIdx++ >>> 0] = 240 | (u >> 18); heap[outIdx++ >>> 0] = 128 | ((u >> 12) & 63); heap[outIdx++ >>> 0] = 128 | ((u >> 6) & 63); heap[outIdx++ >>> 0] = 128 | (u & 63); } } heap[outIdx >>> 0] = 0; return outIdx - startIdx; }; function intArrayFromString(stringy, dontAddNull, length) { var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; var u8array = new Array(len); var numBytesWritten = stringToUTF8Array( stringy, u8array, 0, u8array.length, ); if (dontAddNull) u8array.length = numBytesWritten; return u8array; } var FS_stdin_getChar = () => { if (!FS_stdin_getChar_buffer.length) { var result = null; if (ENVIRONMENT_IS_NODE) { var BUFSIZE = 256; var buf = Buffer.alloc(BUFSIZE); var bytesRead = 0; var fd = process.stdin.fd; try { bytesRead = fs.readSync(fd, buf); } catch (e) { if (e.toString().includes("EOF")) bytesRead = 0; else throw e; } if (bytesRead > 0) { result = buf.slice(0, bytesRead).toString("utf-8"); } else { result = null; } } else if ( typeof window != "undefined" && typeof window.prompt == "function" ) { result = window.prompt("Input: "); if (result !== null) { result += "\n"; } } else if (typeof readline == "function") { result = readline(); if (result !== null) { result += "\n"; } } if (!result) { return null; } FS_stdin_getChar_buffer = intArrayFromString(result, true); } return FS_stdin_getChar_buffer.shift(); }; var TTY = { ttys: [], init() {}, shutdown() {}, register(dev, ops) { TTY.ttys[dev] = { input: [], output: [], ops: ops }; FS.registerDevice(dev, TTY.stream_ops); }, stream_ops: { open(stream) { var tty = TTY.ttys[stream.node.rdev]; if (!tty) { throw new FS.ErrnoError(43); } stream.tty = tty; stream.seekable = false; }, close(stream) { stream.tty.ops.fsync(stream.tty); }, fsync(stream) { stream.tty.ops.fsync(stream.tty); }, read(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.get_char) { throw new FS.ErrnoError(60); } var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = stream.tty.ops.get_char(stream.tty); } catch (e) { throw new FS.ErrnoError(29); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(6); } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.put_char) { throw new FS.ErrnoError(60); } try { for (var i = 0; i < length; i++) { stream.tty.ops.put_char(stream.tty, buffer[offset + i]); } } catch (e) { throw new FS.ErrnoError(29); } if (length) { stream.node.timestamp = Date.now(); } return i; }, }, default_tty_ops: { get_char(tty) { return FS_stdin_getChar(); }, put_char(tty, val) { if (val === null || val === 10) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, fsync(tty) { if (tty.output && tty.output.length > 0) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } }, ioctl_tcgets(tty) { return { c_iflag: 25856, c_oflag: 5, c_cflag: 191, c_lflag: 35387, c_cc: [ 3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], }; }, ioctl_tcsets(tty, optional_actions, data) { return 0; }, ioctl_tiocgwinsz(tty) { return [24, 80]; }, }, default_tty1_ops: { put_char(tty, val) { if (val === null || val === 10) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, fsync(tty) { if (tty.output && tty.output.length > 0) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } }, }, }; var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment; var mmapAlloc = (size) => { size = alignMemory(size, 65536); var ptr = _emscripten_builtin_memalign(65536, size); if (!ptr) return 0; return zeroMemory(ptr, size); }; var MEMFS = { ops_table: null, mount(mount) { return MEMFS.createNode(null, "/", 16384 | 511, 0); }, createNode(parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { throw new FS.ErrnoError(63); } if (!MEMFS.ops_table) { 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, }, }; } var node = FS.createNode(parent, name, mode, dev); if (FS.isDir(node.mode)) { node.node_ops = MEMFS.ops_table.dir.node; node.stream_ops = MEMFS.ops_table.dir.stream; node.contents = {}; } else if (FS.isFile(node.mode)) { node.node_ops = MEMFS.ops_table.file.node; node.stream_ops = MEMFS.ops_table.file.stream; node.usedBytes = 0; node.contents = null; } else if (FS.isLink(node.mode)) { node.node_ops = MEMFS.ops_table.link.node; node.stream_ops = MEMFS.ops_table.link.stream; } else if (FS.isChrdev(node.mode)) { node.node_ops = MEMFS.ops_table.chrdev.node; node.stream_ops = MEMFS.ops_table.chrdev.stream; } node.timestamp = Date.now(); if (parent) { parent.contents[name] = node; parent.timestamp = node.timestamp; } return node; }, getFileDataAsTypedArray(node) { if (!node.contents) return new Uint8Array(0); if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); return new Uint8Array(node.contents); }, expandFileStorage(node, newCapacity) { var prevCapacity = node.contents ? node.contents.length : 0; if (prevCapacity >= newCapacity) return; var CAPACITY_DOUBLING_MAX = 1024 * 1024; newCapacity = Math.max( newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0, ); if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); var oldContents = node.contents; node.contents = new Uint8Array(newCapacity); if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); }, resizeFileStorage(node, newSize) { if (node.usedBytes == newSize) return; if (newSize == 0) { node.contents = null; node.usedBytes = 0; } else { var oldContents = node.contents; node.contents = new Uint8Array(newSize); if (oldContents) { node.contents.set( oldContents.subarray(0, Math.min(newSize, node.usedBytes)), ); } node.usedBytes = newSize; } }, node_ops: { getattr(node) { var attr = {}; attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; attr.mode = node.mode; attr.nlink = 1; attr.uid = 0; attr.gid = 0; attr.rdev = node.rdev; if (FS.isDir(node.mode)) { attr.size = 4096; } else if (FS.isFile(node.mode)) { attr.size = node.usedBytes; } else if (FS.isLink(node.mode)) { attr.size = node.link.length; } else { attr.size = 0; } attr.atime = new Date(node.timestamp); attr.mtime = new Date(node.timestamp); attr.ctime = new Date(node.timestamp); attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr; }, setattr(node, attr) { if (attr.mode !== undefined) { node.mode = attr.mode; } if (attr.timestamp !== undefined) { node.timestamp = attr.timestamp; } if (attr.size !== undefined) { MEMFS.resizeFileStorage(node, attr.size); } }, lookup(parent, name) { throw FS.genericErrors[44]; }, mknod(parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev); }, rename(old_node, new_dir, new_name) { if (FS.isDir(old_node.mode)) { var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) {} if (new_node) { for (var i in new_node.contents) { throw new FS.ErrnoError(55); } } } delete old_node.parent.contents[old_node.name]; old_node.parent.timestamp = Date.now(); old_node.name = new_name; new_dir.contents[new_name] = old_node; new_dir.timestamp = old_node.parent.timestamp; old_node.parent = new_dir; }, unlink(parent, name) { delete parent.contents[name]; parent.timestamp = Date.now(); }, rmdir(parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(55); } delete parent.contents[name]; parent.timestamp = Date.now(); }, readdir(node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue; } entries.push(key); } return entries; }, symlink(parent, newname, oldpath) { var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); node.link = oldpath; return node; }, readlink(node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(28); } return node.link; }, }, stream_ops: { read(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; var size = Math.min(stream.node.usedBytes - position, length); if (size > 8 && contents.subarray) { buffer.set(contents.subarray(position, position + size), offset); } else { for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; } return size; }, write(stream, buffer, offset, length, position, canOwn) { if (buffer.buffer === GROWABLE_HEAP_I8().buffer) { canOwn = false; } if (!length) return 0; var node = stream.node; node.timestamp = Date.now(); if (buffer.subarray && (!node.contents || node.contents.subarray)) { if (canOwn) { node.contents = buffer.subarray(offset, offset + length); node.usedBytes = length; return length; } else if (node.usedBytes === 0 && position === 0) { node.contents = buffer.slice(offset, offset + length); node.usedBytes = length; return length; } else if (position + length <= node.usedBytes) { node.contents.set( buffer.subarray(offset, offset + length), position, ); return length; } } MEMFS.expandFileStorage(node, position + length); if (node.contents.subarray && buffer.subarray) { node.contents.set( buffer.subarray(offset, offset + length), position, ); } else { for (var i = 0; i < length; i++) { node.contents[position + i] = buffer[offset + i]; } } node.usedBytes = Math.max(node.usedBytes, position + length); return length; }, llseek(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { position += stream.node.usedBytes; } } if (position < 0) { throw new FS.ErrnoError(28); } return position; }, allocate(stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max( stream.node.usedBytes, offset + length, ); }, mmap(stream, length, position, prot, flags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); } var ptr; var allocated; var contents = stream.node.contents; if (!(flags & 2) && contents.buffer === GROWABLE_HEAP_I8().buffer) { allocated = false; ptr = contents.byteOffset; } else { if (position > 0 || position + length < contents.length) { if (contents.subarray) { contents = contents.subarray(position, position + length); } else { contents = Array.prototype.slice.call( contents, position, position + length, ); } } allocated = true; ptr = mmapAlloc(length); if (!ptr) { throw new FS.ErrnoError(48); } GROWABLE_HEAP_I8().set(contents, ptr >>> 0); } return { ptr: ptr, allocated: allocated }; }, msync(stream, buffer, offset, length, mmapFlags) { MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); return 0; }, }, }; var asyncLoad = (url, onload, onerror, noRunDep) => { var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : ""; readAsync( url, (arrayBuffer) => { assert( arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`, ); onload(new Uint8Array(arrayBuffer)); if (dep) removeRunDependency(dep); }, (event) => { if (onerror) { onerror(); } else { throw `Loading data file "${url}" failed.`; } }, ); if (dep) addRunDependency(dep); }; var FS_createDataFile = ( parent, name, fileData, canRead, canWrite, canOwn, ) => FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn); var preloadPlugins = Module["preloadPlugins"] || []; var FS_handledByPreloadPlugin = (byteArray, fullname, finish, onerror) => { if (typeof Browser != "undefined") Browser.init(); var handled = false; preloadPlugins.forEach((plugin) => { if (handled) return; if (plugin["canHandle"](fullname)) { plugin["handle"](byteArray, fullname, finish, onerror); handled = true; } }); return handled; }; var FS_createPreloadedFile = ( parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish, ) => { var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; var dep = getUniqueRunDependency(`cp ${fullname}`); function processData(byteArray) { function finish(byteArray) { if (preFinish) preFinish(); if (!dontCreateFile) { FS_createDataFile( parent, name, byteArray, canRead, canWrite, canOwn, ); } if (onload) onload(); removeRunDependency(dep); } if ( FS_handledByPreloadPlugin(byteArray, fullname, finish, () => { if (onerror) onerror(); removeRunDependency(dep); }) ) { return; } finish(byteArray); } addRunDependency(dep); if (typeof url == "string") { asyncLoad(url, (byteArray) => processData(byteArray), onerror); } else { processData(url); } }; var FS_modeStringToFlags = (str) => { var flagModes = { r: 0, "r+": 2, w: 512 | 64 | 1, "w+": 512 | 64 | 2, a: 1024 | 64 | 1, "a+": 1024 | 64 | 2, }; var flags = flagModes[str]; if (typeof flags == "undefined") { throw new Error(`Unknown file open mode: ${str}`); } return flags; }; var FS_getMode = (canRead, canWrite) => { var mode = 0; if (canRead) mode |= 292 | 73; if (canWrite) mode |= 146; return mode; }; var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath(path, opts = {}) { path = PATH_FS.resolve(path); if (!path) return { path: "", node: null }; var defaults = { follow_mount: true, recurse_count: 0 }; opts = Object.assign(defaults, opts); if (opts.recurse_count > 8) { throw new FS.ErrnoError(32); } var parts = path.split("/").filter((p) => !!p); var current = FS.root; var current_path = "/"; for (var i = 0; i < parts.length; i++) { var islast = i === parts.length - 1; if (islast && opts.parent) { break; } current = FS.lookupNode(current, parts[i]); current_path = PATH.join2(current_path, parts[i]); if (FS.isMountpoint(current)) { if (!islast || (islast && opts.follow_mount)) { current = current.mounted.root; } } if (!islast || opts.follow) { var count = 0; while (FS.isLink(current.mode)) { var link = FS.readlink(current_path); current_path = PATH_FS.resolve(PATH.dirname(current_path), link); var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1, }); current = lookup.node; if (count++ > 40) { throw new FS.ErrnoError(32); } } } } return { path: current_path, node: current }; }, getPath(node) { var path; while (true) { if (FS.isRoot(node)) { var mount = node.mount.mountpoint; if (!path) return mount; return mount[mount.length - 1] !== "/" ? `${mount}/${path}` : mount + path; } path = path ? `${node.name}/${path}` : node.name; node = node.parent; } }, hashName(parentid, name) { var hash = 0; for (var i = 0; i < name.length; i++) { hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; } return ((parentid + hash) >>> 0) % FS.nameTable.length; }, hashAddNode(node) { var hash = FS.hashName(node.parent.id, node.name); node.name_next = FS.nameTable[hash]; FS.nameTable[hash] = node; }, hashRemoveNode(node) { var hash = FS.hashName(node.parent.id, node.name); if (FS.nameTable[hash] === node) { FS.nameTable[hash] = node.name_next; } else { var current = FS.nameTable[hash]; while (current) { if (current.name_next === node) { current.name_next = node.name_next; break; } current = current.name_next; } } }, lookupNode(parent, name) { var errCode = FS.mayLookup(parent); if (errCode) { throw new FS.ErrnoError(errCode, parent); } var hash = FS.hashName(parent.id, name); for (var node = FS.nameTable[hash]; node; node = node.name_next) { var nodeName = node.name; if (node.parent.id === parent.id && nodeName === name) { return node; } } return FS.lookup(parent, name); }, createNode(parent, name, mode, rdev) { var node = new FS.FSNode(parent, name, mode, rdev); FS.hashAddNode(node); return node; }, destroyNode(node) { FS.hashRemoveNode(node); }, isRoot(node) { return node === node.parent; }, isMountpoint(node) { return !!node.mounted; }, isFile(mode) { return (mode & 61440) === 32768; }, isDir(mode) { return (mode & 61440) === 16384; }, isLink(mode) { return (mode & 61440) === 40960; }, isChrdev(mode) { return (mode & 61440) === 8192; }, isBlkdev(mode) { return (mode & 61440) === 24576; }, isFIFO(mode) { return (mode & 61440) === 4096; }, isSocket(mode) { return (mode & 49152) === 49152; }, flagsToPermissionString(flag) { var perms = ["r", "w", "rw"][flag & 3]; if (flag & 512) { perms += "w"; } return perms; }, nodePermissions(node, perms) { if (FS.ignorePermissions) { return 0; } if (perms.includes("r") && !(node.mode & 292)) { return 2; } else if (perms.includes("w") && !(node.mode & 146)) { return 2; } else if (perms.includes("x") && !(node.mode & 73)) { return 2; } return 0; }, mayLookup(dir) { var errCode = FS.nodePermissions(dir, "x"); if (errCode) return errCode; if (!dir.node_ops.lookup) return 2; return 0; }, mayCreate(dir, name) { try { var node = FS.lookupNode(dir, name); return 20; } catch (e) {} return FS.nodePermissions(dir, "wx"); }, mayDelete(dir, name, isdir) { var node; try { node = FS.lookupNode(dir, name); } catch (e) { return e.errno; } var errCode = FS.nodePermissions(dir, "wx"); if (errCode) { return errCode; } if (isdir) { if (!FS.isDir(node.mode)) { return 54; } if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { return 10; } } else { if (FS.isDir(node.mode)) { return 31; } } return 0; }, mayOpen(node, flags) { if (!node) { return 44; } if (FS.isLink(node.mode)) { return 32; } else if (FS.isDir(node.mode)) { if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { return 31; } } return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); }, MAX_OPEN_FDS: 4096, nextfd() { for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { if (!FS.streams[fd]) { return fd; } } throw new FS.ErrnoError(33); }, getStreamChecked(fd) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(8); } return stream; }, getStream: (fd) => FS.streams[fd], createStream(stream, fd = -1) { if (!FS.FSStream) { FS.FSStream = function () { this.shared = {}; }; FS.FSStream.prototype = {}; Object.defineProperties(FS.FSStream.prototype, { object: { get() { return this.node; }, set(val) { this.node = val; }, }, isRead: { get() { return (this.flags & 2097155) !== 1; }, }, isWrite: { get() { return (this.flags & 2097155) !== 0; }, }, isAppend: { get() { return this.flags & 1024; }, }, flags: { get() { return this.shared.flags; }, set(val) { this.shared.flags = val; }, }, position: { get() { return this.shared.position; }, set(val) { this.shared.position = val; }, }, }); } stream = Object.assign(new FS.FSStream(), stream); if (fd == -1) { fd = FS.nextfd(); } stream.fd = fd; FS.streams[fd] = stream; return stream; }, closeStream(fd) { FS.streams[fd] = null; }, chrdev_stream_ops: { open(stream) { var device = FS.getDevice(stream.node.rdev); stream.stream_ops = device.stream_ops; if (stream.stream_ops.open) { stream.stream_ops.open(stream); } }, llseek() { throw new FS.ErrnoError(70); }, }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => (ma << 8) | mi, registerDevice(dev, ops) { FS.devices[dev] = { stream_ops: ops }; }, getDevice: (dev) => FS.devices[dev], getMounts(mount) { var mounts = []; var check = [mount]; while (check.length) { var m = check.pop(); mounts.push(m); check.push.apply(check, m.mounts); } return mounts; }, syncfs(populate, callback) { if (typeof populate == "function") { callback = populate; populate = false; } FS.syncFSRequests++; if (FS.syncFSRequests > 1) { err( `warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`, ); } var mounts = FS.getMounts(FS.root.mount); var completed = 0; function doCallback(errCode) { FS.syncFSRequests--; return callback(errCode); } function done(errCode) { if (errCode) { if (!done.errored) { done.errored = true; return doCallback(errCode); } return; } if (++completed >= mounts.length) { doCallback(null); } } mounts.forEach((mount) => { if (!mount.type.syncfs) { return done(null); } mount.type.syncfs(mount, populate, done); }); }, mount(type, opts, mountpoint) { var root = mountpoint === "/"; var pseudo = !mountpoint; var node; if (root && FS.root) { throw new FS.ErrnoError(10); } else if (!root && !pseudo) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); mountpoint = lookup.path; node = lookup.node; if (FS.isMountpoint(node)) { throw new FS.ErrnoError(10); } if (!FS.isDir(node.mode)) { throw new FS.ErrnoError(54); } } var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [], }; var mountRoot = type.mount(mount); mountRoot.mount = mount; mount.root = mountRoot; if (root) { FS.root = mountRoot; } else if (node) { node.mounted = mount; if (node.mount) { node.mount.mounts.push(mount); } } return mountRoot; }, unmount(mountpoint) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); if (!FS.isMountpoint(lookup.node)) { throw new FS.ErrnoError(28); } var node = lookup.node; var mount = node.mounted; var mounts = FS.getMounts(mount); Object.keys(FS.nameTable).forEach((hash) => { var current = FS.nameTable[hash]; while (current) { var next = current.name_next; if (mounts.includes(current.mount)) { FS.destroyNode(current); } current = next; } }); node.mounted = null; var idx = node.mount.mounts.indexOf(mount); node.mount.mounts.splice(idx, 1); }, lookup(parent, name) { return parent.node_ops.lookup(parent, name); }, mknod(path, mode, dev) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); if (!name || name === "." || name === "..") { throw new FS.ErrnoError(28); } var errCode = FS.mayCreate(parent, name); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.mknod) { throw new FS.ErrnoError(63); } return parent.node_ops.mknod(parent, name, mode, dev); }, create(path, mode) { mode = mode !== undefined ? mode : 438; mode &= 4095; mode |= 32768; return FS.mknod(path, mode, 0); }, mkdir(path, mode) { mode = mode !== undefined ? mode : 511; mode &= 511 | 512; mode |= 16384; return FS.mknod(path, mode, 0); }, mkdirTree(path, mode) { var dirs = path.split("/"); var d = ""; for (var i = 0; i < dirs.length; ++i) { if (!dirs[i]) continue; d += "/" + dirs[i]; try { FS.mkdir(d, mode); } catch (e) { if (e.errno != 20) throw e; } } }, mkdev(path, mode, dev) { if (typeof dev == "undefined") { dev = mode; mode = 438; } mode |= 8192; return FS.mknod(path, mode, dev); }, symlink(oldpath, newpath) { if (!PATH_FS.resolve(oldpath)) { throw new FS.ErrnoError(44); } var lookup = FS.lookupPath(newpath, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(44); } var newname = PATH.basename(newpath); var errCode = FS.mayCreate(parent, newname); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.symlink) { throw new FS.ErrnoError(63); } return parent.node_ops.symlink(parent, newname, oldpath); }, rename(old_path, new_path) { var old_dirname = PATH.dirname(old_path); var new_dirname = PATH.dirname(new_path); var old_name = PATH.basename(old_path); var new_name = PATH.basename(new_path); var lookup, old_dir, new_dir; lookup = FS.lookupPath(old_path, { parent: true }); old_dir = lookup.node; lookup = FS.lookupPath(new_path, { parent: true }); new_dir = lookup.node; if (!old_dir || !new_dir) throw new FS.ErrnoError(44); if (old_dir.mount !== new_dir.mount) { throw new FS.ErrnoError(75); } var old_node = FS.lookupNode(old_dir, old_name); var relative = PATH_FS.relative(old_path, new_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(28); } relative = PATH_FS.relative(new_path, old_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(55); } var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) {} if (old_node === new_node) { return; } var isdir = FS.isDir(old_node.mode); var errCode = FS.mayDelete(old_dir, old_name, isdir); if (errCode) { throw new FS.ErrnoError(errCode); } errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); if (errCode) { throw new FS.ErrnoError(errCode); } if (!old_dir.node_ops.rename) { throw new FS.ErrnoError(63); } if ( FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node)) ) { throw new FS.ErrnoError(10); } if (new_dir !== old_dir) { errCode = FS.nodePermissions(old_dir, "w"); if (errCode) { throw new FS.ErrnoError(errCode); } } FS.hashRemoveNode(old_node); try { old_dir.node_ops.rename(old_node, new_dir, new_name); } catch (e) { throw e; } finally { FS.hashAddNode(old_node); } }, rmdir(path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var errCode = FS.mayDelete(parent, name, true); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.rmdir) { throw new FS.ErrnoError(63); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(10); } parent.node_ops.rmdir(parent, name); FS.destroyNode(node); }, readdir(path) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; if (!node.node_ops.readdir) { throw new FS.ErrnoError(54); } return node.node_ops.readdir(node); }, unlink(path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(44); } var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var errCode = FS.mayDelete(parent, name, false); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.unlink) { throw new FS.ErrnoError(63); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(10); } parent.node_ops.unlink(parent, name); FS.destroyNode(node); }, readlink(path) { var lookup = FS.lookupPath(path); var link = lookup.node; if (!link) { throw new FS.ErrnoError(44); } if (!link.node_ops.readlink) { throw new FS.ErrnoError(28); } return PATH_FS.resolve( FS.getPath(link.parent), link.node_ops.readlink(link), ); }, stat(path, dontFollow) { var lookup = FS.lookupPath(path, { follow: !dontFollow }); var node = lookup.node; if (!node) { throw new FS.ErrnoError(44); } if (!node.node_ops.getattr) { throw new FS.ErrnoError(63); } return node.node_ops.getattr(node); }, lstat(path) { return FS.stat(path, true); }, chmod(path, mode, dontFollow) { var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(63); } node.node_ops.setattr(node, { mode: (mode & 4095) | (node.mode & ~4095), timestamp: Date.now(), }); }, lchmod(path, mode) { FS.chmod(path, mode, true); }, fchmod(fd, mode) { var stream = FS.getStreamChecked(fd); FS.chmod(stream.node, mode); }, chown(path, uid, gid, dontFollow) { var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(63); } node.node_ops.setattr(node, { timestamp: Date.now() }); }, lchown(path, uid, gid) { FS.chown(path, uid, gid, true); }, fchown(fd, uid, gid) { var stream = FS.getStreamChecked(fd); FS.chown(stream.node, uid, gid); }, truncate(path, len) { if (len < 0) { throw new FS.ErrnoError(28); } var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: true }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(63); } if (FS.isDir(node.mode)) { throw new FS.ErrnoError(31); } if (!FS.isFile(node.mode)) { throw new FS.ErrnoError(28); } var errCode = FS.nodePermissions(node, "w"); if (errCode) { throw new FS.ErrnoError(errCode); } node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); }, ftruncate(fd, len) { var stream = FS.getStreamChecked(fd); if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(28); } FS.truncate(stream.node, len); }, utime(path, atime, mtime) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); }, open(path, flags, mode) { if (path === "") { throw new FS.ErrnoError(44); } flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags; mode = typeof mode == "undefined" ? 438 : mode; if (flags & 64) { mode = (mode & 4095) | 32768; } else { mode = 0; } var node; if (typeof path == "object") { node = path; } else { path = PATH.normalize(path); try { var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); node = lookup.node; } catch (e) {} } var created = false; if (flags & 64) { if (node) { if (flags & 128) { throw new FS.ErrnoError(20); } } else { node = FS.mknod(path, mode, 0); created = true; } } if (!node) { throw new FS.ErrnoError(44); } if (FS.isChrdev(node.mode)) { flags &= ~512; } if (flags & 65536 && !FS.isDir(node.mode)) { throw new FS.ErrnoError(54); } if (!created) { var errCode = FS.mayOpen(node, flags); if (errCode) { throw new FS.ErrnoError(errCode); } } if (flags & 512 && !created) { FS.truncate(node, 0); } flags &= ~(128 | 512 | 131072); var stream = FS.createStream({ node: node, path: FS.getPath(node), flags: flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false, }); if (stream.stream_ops.open) { stream.stream_ops.open(stream); } if (Module["logReadFiles"] && !(flags & 1)) { if (!FS.readFiles) FS.readFiles = {}; if (!(path in FS.readFiles)) { FS.readFiles[path] = 1; } } return stream; }, close(stream) { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if (stream.getdents) stream.getdents = null; try { if (stream.stream_ops.close) { stream.stream_ops.close(stream); } } catch (e) { throw e; } finally { FS.closeStream(stream.fd); } stream.fd = null; }, isClosed(stream) { return stream.fd === null; }, llseek(stream, offset, whence) { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if (!stream.seekable || !stream.stream_ops.llseek) { throw new FS.ErrnoError(70); } if (whence != 0 && whence != 1 && whence != 2) { throw new FS.ErrnoError(28); } stream.position = stream.stream_ops.llseek(stream, offset, whence); stream.ungotten = []; return stream.position; }, read(stream, buffer, offset, length, position) { if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(8); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(31); } if (!stream.stream_ops.read) { throw new FS.ErrnoError(28); } var seeking = typeof position != "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(70); } var bytesRead = stream.stream_ops.read( stream, buffer, offset, length, position, ); if (!seeking) stream.position += bytesRead; return bytesRead; }, write(stream, buffer, offset, length, position, canOwn) { if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(8); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(31); } if (!stream.stream_ops.write) { throw new FS.ErrnoError(28); } if (stream.seekable && stream.flags & 1024) { FS.llseek(stream, 0, 2); } var seeking = typeof position != "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(70); } var bytesWritten = stream.stream_ops.write( stream, buffer, offset, length, position, canOwn, ); if (!seeking) stream.position += bytesWritten; return bytesWritten; }, allocate(stream, offset, length) { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if (offset < 0 || length <= 0) { throw new FS.ErrnoError(28); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(8); } if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(43); } if (!stream.stream_ops.allocate) { throw new FS.ErrnoError(138); } stream.stream_ops.allocate(stream, offset, length); }, mmap(stream, length, position, prot, flags) { if ( (prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2 ) { throw new FS.ErrnoError(2); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(2); } if (!stream.stream_ops.mmap) { throw new FS.ErrnoError(43); } return stream.stream_ops.mmap(stream, length, position, prot, flags); }, msync(stream, buffer, offset, length, mmapFlags) { if (!stream.stream_ops.msync) { return 0; } return stream.stream_ops.msync( stream, buffer, offset, length, mmapFlags, ); }, munmap: (stream) => 0, ioctl(stream, cmd, arg) { if (!stream.stream_ops.ioctl) { throw new FS.ErrnoError(59); } return stream.stream_ops.ioctl(stream, cmd, arg); }, readFile(path, opts = {}) { opts.flags = opts.flags || 0; opts.encoding = opts.encoding || "binary"; if (opts.encoding !== "utf8" && opts.encoding !== "binary") { throw new Error(`Invalid encoding type "${opts.encoding}"`); } var ret; var stream = FS.open(path, opts.flags); var stat = FS.stat(path); var length = stat.size; var buf = new Uint8Array(length); FS.read(stream, buf, 0, length, 0); if (opts.encoding === "utf8") { ret = UTF8ArrayToString(buf, 0); } else if (opts.encoding === "binary") { ret = buf; } FS.close(stream); return ret; }, writeFile(path, data, opts = {}) { opts.flags = opts.flags || 577; var stream = FS.open(path, opts.flags, opts.mode); if (typeof data == "string") { var buf = new Uint8Array(lengthBytesUTF8(data) + 1); var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); } else if (ArrayBuffer.isView(data)) { FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); } else { throw new Error("Unsupported data type"); } FS.close(stream); }, cwd: () => FS.currentPath, chdir(path) { var lookup = FS.lookupPath(path, { follow: true }); if (lookup.node === null) { throw new FS.ErrnoError(44); } if (!FS.isDir(lookup.node.mode)) { throw new FS.ErrnoError(54); } var errCode = FS.nodePermissions(lookup.node, "x"); if (errCode) { throw new FS.ErrnoError(errCode); } FS.currentPath = lookup.path; }, createDefaultDirectories() { FS.mkdir("/tmp"); FS.mkdir("/home"); FS.mkdir("/home/web_user"); }, createDefaultDevices() { FS.mkdir("/dev"); FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length, }); FS.mkdev("/dev/null", FS.makedev(1, 3)); TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); FS.mkdev("/dev/tty", FS.makedev(5, 0)); FS.mkdev("/dev/tty1", FS.makedev(6, 0)); var randomBuffer = new Uint8Array(1024), randomLeft = 0; var randomByte = () => { if (randomLeft === 0) { randomLeft = randomFill(randomBuffer).byteLength; } return randomBuffer[--randomLeft]; }; FS.createDevice("/dev", "random", randomByte); FS.createDevice("/dev", "urandom", randomByte); FS.mkdir("/dev/shm"); FS.mkdir("/dev/shm/tmp"); }, createSpecialDirectories() { FS.mkdir("/proc"); var proc_self = FS.mkdir("/proc/self"); FS.mkdir("/proc/self/fd"); FS.mount( { mount() { var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); node.node_ops = { lookup(parent, name) { var fd = +name; var stream = FS.getStreamChecked(fd); var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path }, }; ret.parent = ret; return ret; }, }; return node; }, }, {}, "/proc/self/fd", ); }, createStandardStreams() { if (Module["stdin"]) { FS.createDevice("/dev", "stdin", Module["stdin"]); } else { FS.symlink("/dev/tty", "/dev/stdin"); } if (Module["stdout"]) { FS.createDevice("/dev", "stdout", null, Module["stdout"]); } else { FS.symlink("/dev/tty", "/dev/stdout"); } if (Module["stderr"]) { FS.createDevice("/dev", "stderr", null, Module["stderr"]); } else { FS.symlink("/dev/tty1", "/dev/stderr"); } var stdin = FS.open("/dev/stdin", 0); var stdout = FS.open("/dev/stdout", 1); var stderr = FS.open("/dev/stderr", 1); }, ensureErrnoError() { if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { this.name = "ErrnoError"; this.node = node; this.setErrno = function (errno) { this.errno = errno; }; this.setErrno(errno); this.message = "FS error"; }; FS.ErrnoError.prototype = new Error(); FS.ErrnoError.prototype.constructor = FS.ErrnoError; [44].forEach((code) => { FS.genericErrors[code] = new FS.ErrnoError(code); FS.genericErrors[code].stack = ""; }); }, staticInit() { FS.ensureErrnoError(); FS.nameTable = new Array(4096); FS.mount(MEMFS, {}, "/"); FS.createDefaultDirectories(); FS.createDefaultDevices(); FS.createSpecialDirectories(); FS.filesystems = { MEMFS: MEMFS }; }, init(input, output, error) { FS.init.initialized = true; FS.ensureErrnoError(); Module["stdin"] = input || Module["stdin"]; Module["stdout"] = output || Module["stdout"]; Module["stderr"] = error || Module["stderr"]; FS.createStandardStreams(); }, quit() { FS.init.initialized = false; for (var i = 0; i < FS.streams.length; i++) { var stream = FS.streams[i]; if (!stream) { continue; } FS.close(stream); } }, findObject(path, dontResolveLastLink) { var ret = FS.analyzePath(path, dontResolveLastLink); if (!ret.exists) { return null; } return ret.object; }, analyzePath(path, dontResolveLastLink) { try { var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); path = lookup.path; } catch (e) {} var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null, }; try { var lookup = FS.lookupPath(path, { parent: true }); ret.parentExists = true; ret.parentPath = lookup.path; ret.parentObject = lookup.node; ret.name = PATH.basename(path); lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); ret.exists = true; ret.path = lookup.path; ret.object = lookup.node; ret.name = lookup.node.name; ret.isRoot = lookup.path === "/"; } catch (e) { ret.error = e.errno; } return ret; }, createPath(parent, path, canRead, canWrite) { parent = typeof parent == "string" ? parent : FS.getPath(parent); var parts = path.split("/").reverse(); while (parts.length) { var part = parts.pop(); if (!part) continue; var current = PATH.join2(parent, part); try { FS.mkdir(current); } catch (e) {} parent = current; } return current; }, createFile(parent, name, properties, canRead, canWrite) { var path = PATH.join2( typeof parent == "string" ? parent : FS.getPath(parent), name, ); var mode = FS_getMode(canRead, canWrite); return FS.create(path, mode); }, createDataFile(parent, name, data, canRead, canWrite, canOwn) { var path = name; if (parent) { parent = typeof parent == "string" ? parent : FS.getPath(parent); path = name ? PATH.join2(parent, name) : parent; } var mode = FS_getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data == "string") { var arr = new Array(data.length); for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); data = arr; } FS.chmod(node, mode | 146); var stream = FS.open(node, 577); FS.write(stream, data, 0, data.length, 0, canOwn); FS.close(stream); FS.chmod(node, mode); } return node; }, createDevice(parent, name, input, output) { var path = PATH.join2( typeof parent == "string" ? parent : FS.getPath(parent), name, ); var mode = FS_getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); FS.registerDevice(dev, { open(stream) { stream.seekable = false; }, close(stream) { if (output && output.buffer && output.buffer.length) { output(10); } }, read(stream, buffer, offset, length, pos) { var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = input(); } catch (e) { throw new FS.ErrnoError(29); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(6); } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write(stream, buffer, offset, length, pos) { for (var i = 0; i < length; i++) { try { output(buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(29); } } if (length) { stream.node.timestamp = Date.now(); } return i; }, }); return FS.mkdev(path, mode, dev); }, forceLoadFile(obj) { if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; if (typeof XMLHttpRequest != "undefined") { throw new Error( "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.", ); } else if (read_) { try { obj.contents = intArrayFromString(read_(obj.url), true); obj.usedBytes = obj.contents.length; } catch (e) { throw new FS.ErrnoError(29); } } else { throw new Error("Cannot load without read() or XMLHttpRequest."); } }, createLazyFile(parent, name, url, canRead, canWrite) { function LazyUint8Array() { this.lengthKnown = false; this.chunks = []; } LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { if (idx > this.length - 1 || idx < 0) { return undefined; } var chunkOffset = idx % this.chunkSize; var chunkNum = (idx / this.chunkSize) | 0; return this.getter(chunkNum)[chunkOffset]; }; LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { this.getter = getter; }; LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { var xhr = new XMLHttpRequest(); xhr.open("HEAD", url, false); xhr.send(null); if ( !((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) ) throw new Error( "Couldn't load " + url + ". Status: " + xhr.status, ); var datalength = Number(xhr.getResponseHeader("Content-length")); var header; var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; var chunkSize = 1024 * 1024; if (!hasByteServing) chunkSize = datalength; var doXHR = (from, to) => { if (from > to) throw new Error( "invalid range (" + from + ", " + to + ") or no bytes requested!", ); if (to > datalength - 1) throw new Error( "only " + datalength + " bytes available! programmer error!", ); var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); xhr.responseType = "arraybuffer"; if (xhr.overrideMimeType) { xhr.overrideMimeType("text/plain; charset=x-user-defined"); } xhr.send(null); if ( !((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) ) throw new Error( "Couldn't load " + url + ". Status: " + xhr.status, ); if (xhr.response !== undefined) { return new Uint8Array(xhr.response || []); } return intArrayFromString(xhr.responseText || "", true); }; var lazyArray = this; lazyArray.setDataGetter((chunkNum) => { var start = chunkNum * chunkSize; var end = (chunkNum + 1) * chunkSize - 1; end = Math.min(end, datalength - 1); if (typeof lazyArray.chunks[chunkNum] == "undefined") { lazyArray.chunks[chunkNum] = doXHR(start, end); } if (typeof lazyArray.chunks[chunkNum] == "undefined") throw new Error("doXHR failed!"); return lazyArray.chunks[chunkNum]; }); if (usesGzip || !datalength) { chunkSize = datalength = 1; datalength = this.getter(0).length; chunkSize = datalength; out( "LazyFiles on gzip forces download of the whole file when length is accessed", ); } this._length = datalength; this._chunkSize = chunkSize; this.lengthKnown = true; }; if (typeof XMLHttpRequest != "undefined") { if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; var lazyArray = new LazyUint8Array(); Object.defineProperties(lazyArray, { length: { get: function () { if (!this.lengthKnown) { this.cacheLength(); } return this._length; }, }, chunkSize: { get: function () { if (!this.lengthKnown) { this.cacheLength(); } return this._chunkSize; }, }, }); var properties = { isDevice: false, contents: lazyArray }; } else { var properties = { isDevice: false, url: url }; } var node = FS.createFile(parent, name, properties, canRead, canWrite); if (properties.contents) { node.contents = properties.contents; } else if (properties.url) { node.contents = null; node.url = properties.url; } Object.defineProperties(node, { usedBytes: { get: function () { return this.contents.length; }, }, }); var stream_ops = {}; var keys = Object.keys(node.stream_ops); keys.forEach((key) => { var fn = node.stream_ops[key]; stream_ops[key] = function forceLoadLazyFile() { FS.forceLoadFile(node); return fn.apply(null, arguments); }; }); function writeChunks(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= contents.length) return 0; var size = Math.min(contents.length - position, length); if (contents.slice) { for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } else { for (var i = 0; i < size; i++) { buffer[offset + i] = contents.get(position + i); } } return size; } stream_ops.read = (stream, buffer, offset, length, position) => { FS.forceLoadFile(node); return writeChunks(stream, buffer, offset, length, position); }; stream_ops.mmap = (stream, length, position, prot, flags) => { FS.forceLoadFile(node); var ptr = mmapAlloc(length); if (!ptr) { throw new FS.ErrnoError(48); } writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position); return { ptr: ptr, allocated: true }; }; node.stream_ops = stream_ops; return node; }, }; var UTF8ToString = (ptr, maxBytesToRead) => { ptr >>>= 0; return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : ""; }; var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt(dirfd, path, allowEmpty) { if (PATH.isAbs(path)) { return path; } var dir; if (dirfd === -100) { dir = FS.cwd(); } else { var dirstream = SYSCALLS.getStreamFromFD(dirfd); dir = dirstream.path; } if (path.length == 0) { if (!allowEmpty) { throw new FS.ErrnoError(44); } return dir; } return PATH.join2(dir, path); }, doStat(func, path, buf) { try { var stat = func(path); } catch (e) { if ( e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node)) ) { return -54; } throw e; } GROWABLE_HEAP_I32()[(buf >>> 2) >>> 0] = stat.dev; GROWABLE_HEAP_I32()[((buf + 4) >>> 2) >>> 0] = stat.mode; GROWABLE_HEAP_U32()[((buf + 8) >>> 2) >>> 0] = stat.nlink; GROWABLE_HEAP_I32()[((buf + 12) >>> 2) >>> 0] = stat.uid; GROWABLE_HEAP_I32()[((buf + 16) >>> 2) >>> 0] = stat.gid; GROWABLE_HEAP_I32()[((buf + 20) >>> 2) >>> 0] = stat.rdev; (tempI64 = [ stat.size >>> 0, ((tempDouble = stat.size), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil( (tempDouble - +(~~tempDouble >>> 0)) / 4294967296, ) >>> 0 : 0), ]), (GROWABLE_HEAP_I32()[((buf + 24) >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((buf + 28) >>> 2) >>> 0] = tempI64[1]); GROWABLE_HEAP_I32()[((buf + 32) >>> 2) >>> 0] = 4096; GROWABLE_HEAP_I32()[((buf + 36) >>> 2) >>> 0] = stat.blocks; var atime = stat.atime.getTime(); var mtime = stat.mtime.getTime(); var ctime = stat.ctime.getTime(); (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), ]), (GROWABLE_HEAP_I32()[((buf + 40) >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((buf + 44) >>> 2) >>> 0] = tempI64[1]); GROWABLE_HEAP_U32()[((buf + 48) >>> 2) >>> 0] = (atime % 1e3) * 1e3; (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), ]), (GROWABLE_HEAP_I32()[((buf + 56) >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((buf + 60) >>> 2) >>> 0] = tempI64[1]); GROWABLE_HEAP_U32()[((buf + 64) >>> 2) >>> 0] = (mtime % 1e3) * 1e3; (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), ]), (GROWABLE_HEAP_I32()[((buf + 72) >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((buf + 76) >>> 2) >>> 0] = tempI64[1]); GROWABLE_HEAP_U32()[((buf + 80) >>> 2) >>> 0] = (ctime % 1e3) * 1e3; (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), ]), (GROWABLE_HEAP_I32()[((buf + 88) >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((buf + 92) >>> 2) >>> 0] = tempI64[1]); return 0; }, doMsync(addr, stream, len, flags, offset) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); } if (flags & 2) { return 0; } var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len); FS.msync(stream, buffer, offset, len, flags); }, varargs: undefined, get() { var ret = GROWABLE_HEAP_I32()[(+SYSCALLS.varargs >>> 2) >>> 0]; SYSCALLS.varargs += 4; return ret; }, getp() { return SYSCALLS.get(); }, getStr(ptr) { var ret = UTF8ToString(ptr); return ret; }, getStreamFromFD(fd) { var stream = FS.getStreamChecked(fd); return stream; }, }; function _proc_exit(code) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(0, 1, code); EXITSTATUS = code; if (!keepRuntimeAlive()) { PThread.terminateAllThreads(); if (Module["onExit"]) Module["onExit"](code); ABORT = true; } quit_(code, new ExitStatus(code)); } var exitJS = (status, implicit) => { EXITSTATUS = status; if (ENVIRONMENT_IS_PTHREAD) { exitOnMainThread(status); throw "unwind"; } _proc_exit(status); }; var _exit = exitJS; var handleException = (e) => { if (e instanceof ExitStatus || e == "unwind") { return EXITSTATUS; } quit_(1, e); }; var PThread = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init() { if (ENVIRONMENT_IS_PTHREAD) { PThread.initWorker(); } else { PThread.initMainThread(); } }, initMainThread() { var pthreadPoolSize = 10; while (pthreadPoolSize--) { PThread.allocateUnusedWorker(); } addOnPreRun(() => { addRunDependency("loading-workers"); PThread.loadWasmModuleToAllWorkers(() => removeRunDependency("loading-workers"), ); }); }, initWorker() { noExitRuntime = false; }, setExitStatus: (status) => { EXITSTATUS = status; }, terminateAllThreads__deps: ["$terminateWorker"], terminateAllThreads: () => { for (var worker of PThread.runningWorkers) { terminateWorker(worker); } for (var worker of PThread.unusedWorkers) { terminateWorker(worker); } PThread.unusedWorkers = []; PThread.runningWorkers = []; PThread.pthreads = []; }, returnWorkerToPool: (worker) => { var pthread_ptr = worker.pthread_ptr; delete PThread.pthreads[pthread_ptr]; PThread.unusedWorkers.push(worker); PThread.runningWorkers.splice( PThread.runningWorkers.indexOf(worker), 1, ); worker.pthread_ptr = 0; __emscripten_thread_free_data(pthread_ptr); }, receiveObjectTransfer(data) {}, threadInitTLS() { PThread.tlsInitFunctions.forEach((f) => f()); }, loadWasmModuleToWorker: (worker) => new Promise((onFinishedLoading) => { worker.onmessage = (e) => { var d = e["data"]; var cmd = d["cmd"]; if (d["targetThread"] && d["targetThread"] != _pthread_self()) { var targetWorker = PThread.pthreads[d["targetThread"]]; if (targetWorker) { targetWorker.postMessage(d, d["transferList"]); } else { err( `Internal error! Worker sent a message "${cmd}" to target pthread ${d["targetThread"]}, but that thread no longer exists!`, ); } return; } if (cmd === "checkMailbox") { checkMailbox(); } else if (cmd === "spawnThread") { spawnThread(d); } else if (cmd === "cleanupThread") { cleanupThread(d["thread"]); } else if (cmd === "killThread") { killThread(d["thread"]); } else if (cmd === "cancelThread") { cancelThread(d["thread"]); } else if (cmd === "loaded") { worker.loaded = true; if (ENVIRONMENT_IS_NODE && !worker.pthread_ptr) { worker.unref(); } onFinishedLoading(worker); } else if (cmd === "alert") { alert(`Thread ${d["threadId"]}: ${d["text"]}`); } else if (d.target === "setimmediate") { worker.postMessage(d); } else if (cmd === "callHandler") { Module[d["handler"]](...d["args"]); } else if (cmd) { err(`worker sent an unknown command ${cmd}`); } }; worker.onerror = (e) => { var message = "worker sent an error!"; err(`${message} ${e.filename}:${e.lineno}: ${e.message}`); throw e; }; if (ENVIRONMENT_IS_NODE) { worker.on("message", (data) => worker.onmessage({ data: data })); worker.on("error", (e) => worker.onerror(e)); } var handlers = []; var knownHandlers = ["onExit", "onAbort", "print", "printErr"]; for (var handler of knownHandlers) { if (Module.hasOwnProperty(handler)) { handlers.push(handler); } } worker.postMessage({ cmd: "load", handlers: handlers, urlOrBlob: Module["mainScriptUrlOrBlob"] || _scriptDir, wasmMemory: wasmMemory, wasmModule: wasmModule, }); }), loadWasmModuleToAllWorkers(onMaybeReady) { if (ENVIRONMENT_IS_PTHREAD) { return onMaybeReady(); } let pthreadPoolReady = Promise.all( PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker), ); pthreadPoolReady.then(onMaybeReady); }, allocateUnusedWorker() { var worker; var pthreadMainJs = locateFile("emHdBindings.worker.js"); worker = new Worker(pthreadMainJs); PThread.unusedWorkers.push(worker); }, getNewWorker() { if (PThread.unusedWorkers.length == 0) { PThread.allocateUnusedWorker(); PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]); } return PThread.unusedWorkers.pop(); }, }; Module["PThread"] = PThread; var callRuntimeCallbacks = (callbacks) => { while (callbacks.length > 0) { callbacks.shift()(Module); } }; var establishStackSpace = () => { var pthread_ptr = _pthread_self(); var stackHigh = GROWABLE_HEAP_U32()[((pthread_ptr + 52) >>> 2) >>> 0]; var stackSize = GROWABLE_HEAP_U32()[((pthread_ptr + 56) >>> 2) >>> 0]; var stackLow = stackHigh - stackSize; _emscripten_stack_set_limits(stackHigh, stackLow); stackRestore(stackHigh); }; Module["establishStackSpace"] = establishStackSpace; function exitOnMainThread(returnCode) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(1, 0, returnCode); _exit(returnCode); } var invokeEntryPoint = (ptr, arg) => { var result = ((a1) => dynCall_ii.apply(null, [ptr, a1]))(arg); function finish(result) { if (keepRuntimeAlive()) { PThread.setExitStatus(result); } else { __emscripten_thread_exit(result); } } finish(result); }; Module["invokeEntryPoint"] = invokeEntryPoint; var noExitRuntime = Module["noExitRuntime"] || true; var registerTLSInit = (tlsInitFunc) => { PThread.tlsInitFunctions.push(tlsInitFunc); }; var convertI32PairToI53Checked = (lo, hi) => (hi + 2097152) >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; var ___call_sighandler = function (fp, sig) { fp >>>= 0; return ((a1) => dynCall_vi.apply(null, [fp, a1]))(sig); }; var exceptionCaught = []; var uncaughtExceptionCount = 0; function ___cxa_begin_catch(ptr) { ptr >>>= 0; var info = new ExceptionInfo(ptr); if (!info.get_caught()) { info.set_caught(true); uncaughtExceptionCount--; } info.set_rethrown(false); exceptionCaught.push(info); ___cxa_increment_exception_refcount(info.excPtr); return info.get_exception_ptr(); } var exceptionLast = 0; var ___cxa_end_catch = () => { _setThrew(0, 0); var info = exceptionCaught.pop(); ___cxa_decrement_exception_refcount(info.excPtr); exceptionLast = 0; }; function ExceptionInfo(excPtr) { this.excPtr = excPtr; this.ptr = excPtr - 24; this.set_type = function (type) { GROWABLE_HEAP_U32()[((this.ptr + 4) >>> 2) >>> 0] = type; }; this.get_type = function () { return GROWABLE_HEAP_U32()[((this.ptr + 4) >>> 2) >>> 0]; }; this.set_destructor = function (destructor) { GROWABLE_HEAP_U32()[((this.ptr + 8) >>> 2) >>> 0] = destructor; }; this.get_destructor = function () { return GROWABLE_HEAP_U32()[((this.ptr + 8) >>> 2) >>> 0]; }; this.set_caught = function (caught) { caught = caught ? 1 : 0; GROWABLE_HEAP_I8()[((this.ptr + 12) >>> 0) >>> 0] = caught; }; this.get_caught = function () { return GROWABLE_HEAP_I8()[((this.ptr + 12) >>> 0) >>> 0] != 0; }; this.set_rethrown = function (rethrown) { rethrown = rethrown ? 1 : 0; GROWABLE_HEAP_I8()[((this.ptr + 13) >>> 0) >>> 0] = rethrown; }; this.get_rethrown = function () { return GROWABLE_HEAP_I8()[((this.ptr + 13) >>> 0) >>> 0] != 0; }; this.init = function (type, destructor) { this.set_adjusted_ptr(0); this.set_type(type); this.set_destructor(destructor); }; this.set_adjusted_ptr = function (adjustedPtr) { GROWABLE_HEAP_U32()[((this.ptr + 16) >>> 2) >>> 0] = adjustedPtr; }; this.get_adjusted_ptr = function () { return GROWABLE_HEAP_U32()[((this.ptr + 16) >>> 2) >>> 0]; }; this.get_exception_ptr = function () { var isPointer = ___cxa_is_pointer_type(this.get_type()); if (isPointer) { return GROWABLE_HEAP_U32()[(this.excPtr >>> 2) >>> 0]; } var adjusted = this.get_adjusted_ptr(); if (adjusted !== 0) return adjusted; return this.excPtr; }; } function ___resumeException(ptr) { ptr >>>= 0; if (!exceptionLast) { exceptionLast = ptr; } throw exceptionLast; } var findMatchingCatch = (args) => { var thrown = exceptionLast; if (!thrown) { setTempRet0(0); return 0; } var info = new ExceptionInfo(thrown); info.set_adjusted_ptr(thrown); var thrownType = info.get_type(); if (!thrownType) { setTempRet0(0); return thrown; } for (var arg in args) { var caughtType = args[arg]; if (caughtType === 0 || caughtType === thrownType) { break; } var adjusted_ptr_addr = info.ptr + 16; if (___cxa_can_catch(caughtType, thrownType, adjusted_ptr_addr)) { setTempRet0(caughtType); return thrown; } } setTempRet0(thrownType); return thrown; }; function ___cxa_find_matching_catch_2() { return findMatchingCatch([]); } function ___cxa_find_matching_catch_3(arg0) { arg0 >>>= 0; return findMatchingCatch([arg0]); } function ___cxa_find_matching_catch_4(arg0, arg1) { arg0 >>>= 0; arg1 >>>= 0; return findMatchingCatch([arg0, arg1]); } function ___cxa_get_exception_ptr(ptr) { ptr >>>= 0; var rtn = new ExceptionInfo(ptr).get_exception_ptr(); return rtn; } var ___cxa_rethrow = () => { var info = exceptionCaught.pop(); if (!info) { abort("no exception to throw"); } var ptr = info.excPtr; if (!info.get_rethrown()) { exceptionCaught.push(info); info.set_rethrown(true); info.set_caught(false); uncaughtExceptionCount++; } exceptionLast = ptr; throw exceptionLast; }; function ___cxa_rethrow_primary_exception(ptr) { ptr >>>= 0; if (!ptr) return; var info = new ExceptionInfo(ptr); exceptionCaught.push(info); info.set_rethrown(true); ___cxa_rethrow(); } function ___cxa_throw(ptr, type, destructor) { ptr >>>= 0; type >>>= 0; destructor >>>= 0; var info = new ExceptionInfo(ptr); info.init(type, destructor); exceptionLast = ptr; uncaughtExceptionCount++; throw exceptionLast; } var ___cxa_uncaught_exceptions = () => uncaughtExceptionCount; function ___emscripten_init_main_thread_js(tb) { tb >>>= 0; __emscripten_thread_init( tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB, 2097152, false, ); PThread.threadInitTLS(); } function ___emscripten_thread_cleanup(thread) { thread >>>= 0; if (!ENVIRONMENT_IS_PTHREAD) cleanupThread(thread); else postMessage({ cmd: "cleanupThread", thread: thread }); } function pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(2, 1, pthread_ptr, attr, startRoutine, arg); return ___pthread_create_js(pthread_ptr, attr, startRoutine, arg); } function ___pthread_create_js(pthread_ptr, attr, startRoutine, arg) { pthread_ptr >>>= 0; attr >>>= 0; startRoutine >>>= 0; arg >>>= 0; if (typeof SharedArrayBuffer == "undefined") { err( "Current environment does not support SharedArrayBuffer, pthreads are not available!", ); return 6; } var transferList = []; var error = 0; if (ENVIRONMENT_IS_PTHREAD && (transferList.length === 0 || error)) { return pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg); } if (error) return error; var threadParams = { startRoutine: startRoutine, pthread_ptr: pthread_ptr, arg: arg, transferList: transferList, }; if (ENVIRONMENT_IS_PTHREAD) { threadParams.cmd = "spawnThread"; postMessage(threadParams, transferList); return 0; } return spawnThread(threadParams); } function ___syscall_chmod(path, mode) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(3, 1, path, mode); path >>>= 0; try { path = SYSCALLS.getStr(path); FS.chmod(path, mode); return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_faccessat(dirfd, path, amode, flags) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(4, 1, dirfd, path, amode, flags); path >>>= 0; try { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); if (amode & ~7) { return -28; } var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; if (!node) { return -44; } var perms = ""; if (amode & 4) perms += "r"; if (amode & 2) perms += "w"; if (amode & 1) perms += "x"; if (perms && FS.nodePermissions(node, perms)) { return -2; } return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_fadvise64(fd, offset, len, advice) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(5, 0, fd, offset, len, advice); return 0; } function ___syscall_fchmod(fd, mode) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(6, 1, fd, mode); try { FS.fchmod(fd, mode); return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } var setErrNo = (value) => { GROWABLE_HEAP_I32()[(___errno_location() >>> 2) >>> 0] = value; return value; }; function ___syscall_fcntl64(fd, cmd, varargs) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(7, 1, fd, cmd, varargs); varargs >>>= 0; SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(fd); switch (cmd) { case 0: { var arg = SYSCALLS.get(); if (arg < 0) { return -28; } while (FS.streams[arg]) { arg++; } var newStream; newStream = FS.createStream(stream, arg); return newStream.fd; } case 1: case 2: return 0; case 3: return stream.flags; case 4: { var arg = SYSCALLS.get(); stream.flags |= arg; return 0; } case 5: { var arg = SYSCALLS.getp(); var offset = 0; GROWABLE_HEAP_I16()[((arg + offset) >>> 1) >>> 0] = 2; return 0; } case 6: case 7: return 0; case 16: case 8: return -28; case 9: setErrNo(28); return -1; default: { return -28; } } } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_fstat64(fd, buf) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(8, 1, fd, buf); buf >>>= 0; try { var stream = SYSCALLS.getStreamFromFD(fd); return SYSCALLS.doStat(FS.stat, stream.path, buf); } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite); function ___syscall_getcwd(buf, size) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(9, 1, buf, size); buf >>>= 0; size >>>= 0; try { if (size === 0) return -28; var cwd = FS.cwd(); var cwdLengthInBytes = lengthBytesUTF8(cwd) + 1; if (size < cwdLengthInBytes) return -68; stringToUTF8(cwd, buf, size); return cwdLengthInBytes; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_getdents64(fd, dirp, count) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(10, 1, fd, dirp, count); dirp >>>= 0; count >>>= 0; try { var stream = SYSCALLS.getStreamFromFD(fd); if (!stream.getdents) { stream.getdents = FS.readdir(stream.path); } var struct_size = 280; var pos = 0; var off = FS.llseek(stream, 0, 1); var idx = Math.floor(off / struct_size); while (idx < stream.getdents.length && pos + struct_size <= count) { var id; var type; var name = stream.getdents[idx]; if (name === ".") { id = stream.node.id; type = 4; } else if (name === "..") { var lookup = FS.lookupPath(stream.path, { parent: true }); id = lookup.node.id; type = 4; } else { var child = FS.lookupNode(stream.node, name); id = child.id; type = FS.isChrdev(child.mode) ? 2 : FS.isDir(child.mode) ? 4 : FS.isLink(child.mode) ? 10 : 8; } (tempI64 = [ id >>> 0, ((tempDouble = id), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil( (tempDouble - +(~~tempDouble >>> 0)) / 4294967296, ) >>> 0 : 0), ]), (GROWABLE_HEAP_I32()[((dirp + pos) >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((dirp + pos + 4) >>> 2) >>> 0] = tempI64[1]); (tempI64 = [ ((idx + 1) * struct_size) >>> 0, ((tempDouble = (idx + 1) * struct_size), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil( (tempDouble - +(~~tempDouble >>> 0)) / 4294967296, ) >>> 0 : 0), ]), (GROWABLE_HEAP_I32()[((dirp + pos + 8) >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((dirp + pos + 12) >>> 2) >>> 0] = tempI64[1]); GROWABLE_HEAP_I16()[((dirp + pos + 16) >>> 1) >>> 0] = 280; GROWABLE_HEAP_I8()[((dirp + pos + 18) >>> 0) >>> 0] = type; stringToUTF8(name, dirp + pos + 19, 256); pos += struct_size; idx += 1; } FS.llseek(stream, idx * struct_size, 0); return pos; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_ioctl(fd, op, varargs) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(11, 1, fd, op, varargs); varargs >>>= 0; SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(fd); switch (op) { case 21509: { if (!stream.tty) return -59; return 0; } case 21505: { if (!stream.tty) return -59; if (stream.tty.ops.ioctl_tcgets) { var termios = stream.tty.ops.ioctl_tcgets(stream); var argp = SYSCALLS.getp(); GROWABLE_HEAP_I32()[(argp >>> 2) >>> 0] = termios.c_iflag || 0; GROWABLE_HEAP_I32()[((argp + 4) >>> 2) >>> 0] = termios.c_oflag || 0; GROWABLE_HEAP_I32()[((argp + 8) >>> 2) >>> 0] = termios.c_cflag || 0; GROWABLE_HEAP_I32()[((argp + 12) >>> 2) >>> 0] = termios.c_lflag || 0; for (var i = 0; i < 32; i++) { GROWABLE_HEAP_I8()[((argp + i + 17) >>> 0) >>> 0] = termios.c_cc[i] || 0; } return 0; } return 0; } case 21510: case 21511: case 21512: { if (!stream.tty) return -59; return 0; } case 21506: case 21507: case 21508: { if (!stream.tty) return -59; if (stream.tty.ops.ioctl_tcsets) { var argp = SYSCALLS.getp(); var c_iflag = GROWABLE_HEAP_I32()[(argp >>> 2) >>> 0]; var c_oflag = GROWABLE_HEAP_I32()[((argp + 4) >>> 2) >>> 0]; var c_cflag = GROWABLE_HEAP_I32()[((argp + 8) >>> 2) >>> 0]; var c_lflag = GROWABLE_HEAP_I32()[((argp + 12) >>> 2) >>> 0]; var c_cc = []; for (var i = 0; i < 32; i++) { c_cc.push(GROWABLE_HEAP_I8()[((argp + i + 17) >>> 0) >>> 0]); } return stream.tty.ops.ioctl_tcsets(stream.tty, op, { c_iflag: c_iflag, c_oflag: c_oflag, c_cflag: c_cflag, c_lflag: c_lflag, c_cc: c_cc, }); } return 0; } case 21519: { if (!stream.tty) return -59; var argp = SYSCALLS.getp(); GROWABLE_HEAP_I32()[(argp >>> 2) >>> 0] = 0; return 0; } case 21520: { if (!stream.tty) return -59; return -28; } case 21531: { var argp = SYSCALLS.getp(); return FS.ioctl(stream, op, argp); } case 21523: { if (!stream.tty) return -59; if (stream.tty.ops.ioctl_tiocgwinsz) { var winsize = stream.tty.ops.ioctl_tiocgwinsz(stream.tty); var argp = SYSCALLS.getp(); GROWABLE_HEAP_I16()[(argp >>> 1) >>> 0] = winsize[0]; GROWABLE_HEAP_I16()[((argp + 2) >>> 1) >>> 0] = winsize[1]; } return 0; } case 21524: { if (!stream.tty) return -59; return 0; } case 21515: { if (!stream.tty) return -59; return 0; } default: return -28; } } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_lstat64(path, buf) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(12, 1, path, buf); path >>>= 0; buf >>>= 0; try { path = SYSCALLS.getStr(path); return SYSCALLS.doStat(FS.lstat, path, buf); } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_mkdirat(dirfd, path, mode) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(13, 1, dirfd, path, mode); path >>>= 0; try { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); path = PATH.normalize(path); if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1); FS.mkdir(path, mode, 0); return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_newfstatat(dirfd, path, buf, flags) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(14, 1, dirfd, path, buf, flags); path >>>= 0; buf >>>= 0; try { path = SYSCALLS.getStr(path); var nofollow = flags & 256; var allowEmpty = flags & 4096; flags = flags & ~6400; path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf); } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_openat(dirfd, path, flags, varargs) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(15, 1, dirfd, path, flags, varargs); path >>>= 0; varargs >>>= 0; SYSCALLS.varargs = varargs; try { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); var mode = varargs ? SYSCALLS.get() : 0; return FS.open(path, flags, mode).fd; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_readlinkat(dirfd, path, buf, bufsize) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(16, 1, dirfd, path, buf, bufsize); path >>>= 0; buf >>>= 0; bufsize >>>= 0; try { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); if (bufsize <= 0) return -28; var ret = FS.readlink(path); var len = Math.min(bufsize, lengthBytesUTF8(ret)); var endChar = GROWABLE_HEAP_I8()[(buf + len) >>> 0]; stringToUTF8(ret, buf, bufsize + 1); GROWABLE_HEAP_I8()[(buf + len) >>> 0] = endChar; return len; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_renameat(olddirfd, oldpath, newdirfd, newpath) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(17, 1, olddirfd, oldpath, newdirfd, newpath); oldpath >>>= 0; newpath >>>= 0; try { oldpath = SYSCALLS.getStr(oldpath); newpath = SYSCALLS.getStr(newpath); oldpath = SYSCALLS.calculateAt(olddirfd, oldpath); newpath = SYSCALLS.calculateAt(newdirfd, newpath); FS.rename(oldpath, newpath); return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_stat64(path, buf) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(18, 1, path, buf); path >>>= 0; buf >>>= 0; try { path = SYSCALLS.getStr(path); return SYSCALLS.doStat(FS.stat, path, buf); } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function ___syscall_unlinkat(dirfd, path, flags) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(19, 1, dirfd, path, flags); path >>>= 0; try { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); if (flags === 0) { FS.unlink(path); } else if (flags === 512) { FS.rmdir(path); } else { abort("Invalid flags passed to unlinkat"); } return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function __embind_register_bigint( primitiveType, name, size, minRange, maxRange, ) { primitiveType >>>= 0; name >>>= 0; size >>>= 0; } var embind_init_charCodes = () => { var codes = new Array(256); for (var i = 0; i < 256; ++i) { codes[i] = String.fromCharCode(i); } embind_charCodes = codes; }; var embind_charCodes; var readLatin1String = (ptr) => { var ret = ""; var c = ptr; while (GROWABLE_HEAP_U8()[c >>> 0]) { ret += embind_charCodes[GROWABLE_HEAP_U8()[c++ >>> 0]]; } return ret; }; var awaitingDependencies = {}; var registeredTypes = {}; var typeDependencies = {}; var BindingError; var throwBindingError = (message) => { throw new BindingError(message); }; var InternalError; var throwInternalError = (message) => { throw new InternalError(message); }; var whenDependentTypesAreResolved = ( myTypes, dependentTypes, getTypeConverters, ) => { myTypes.forEach(function (type) { typeDependencies[type] = dependentTypes; }); function onComplete(typeConverters) { var myTypeConverters = getTypeConverters(typeConverters); if (myTypeConverters.length !== myTypes.length) { throwInternalError("Mismatched type converter count"); } for (var i = 0; i < myTypes.length; ++i) { registerType(myTypes[i], myTypeConverters[i]); } } var typeConverters = new Array(dependentTypes.length); var unregisteredTypes = []; var registered = 0; dependentTypes.forEach((dt, i) => { if (registeredTypes.hasOwnProperty(dt)) { typeConverters[i] = registeredTypes[dt]; } else { unregisteredTypes.push(dt); if (!awaitingDependencies.hasOwnProperty(dt)) { awaitingDependencies[dt] = []; } awaitingDependencies[dt].push(() => { typeConverters[i] = registeredTypes[dt]; ++registered; if (registered === unregisteredTypes.length) { onComplete(typeConverters); } }); } }); if (0 === unregisteredTypes.length) { onComplete(typeConverters); } }; function sharedRegisterType(rawType, registeredInstance, options = {}) { var name = registeredInstance.name; if (!rawType) { throwBindingError( `type "${name}" must have a positive integer typeid pointer`, ); } if (registeredTypes.hasOwnProperty(rawType)) { if (options.ignoreDuplicateRegistrations) { return; } else { throwBindingError(`Cannot register type '${name}' twice`); } } registeredTypes[rawType] = registeredInstance; delete typeDependencies[rawType]; if (awaitingDependencies.hasOwnProperty(rawType)) { var callbacks = awaitingDependencies[rawType]; delete awaitingDependencies[rawType]; callbacks.forEach((cb) => cb()); } } function registerType(rawType, registeredInstance, options = {}) { if (!("argPackAdvance" in registeredInstance)) { throw new TypeError( "registerType registeredInstance requires argPackAdvance", ); } return sharedRegisterType(rawType, registeredInstance, options); } var GenericWireTypeSize = 8; function __embind_register_bool(rawType, name, trueValue, falseValue) { rawType >>>= 0; name >>>= 0; name = readLatin1String(name); registerType(rawType, { name: name, fromWireType: function (wt) { return !!wt; }, toWireType: function (destructors, o) { return o ? trueValue : falseValue; }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: function (pointer) { return this["fromWireType"](GROWABLE_HEAP_U8()[pointer >>> 0]); }, destructorFunction: null, }); } var shallowCopyInternalPointer = (o) => ({ count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType, }); var throwInstanceAlreadyDeleted = (obj) => { function getInstanceTypeName(handle) { return handle.$$.ptrType.registeredClass.name; } throwBindingError(getInstanceTypeName(obj) + " instance already deleted"); }; var finalizationRegistry = false; var detachFinalizer = (handle) => {}; var runDestructor = ($$) => { if ($$.smartPtr) { $$.smartPtrType.rawDestructor($$.smartPtr); } else { $$.ptrType.registeredClass.rawDestructor($$.ptr); } }; var releaseClassHandle = ($$) => { $$.count.value -= 1; var toDelete = 0 === $$.count.value; if (toDelete) { runDestructor($$); } }; var downcastPointer = (ptr, ptrClass, desiredClass) => { if (ptrClass === desiredClass) { return ptr; } if (undefined === desiredClass.baseClass) { return null; } var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); if (rv === null) { return null; } return desiredClass.downcast(rv); }; var registeredPointers = {}; var getInheritedInstanceCount = () => Object.keys(registeredInstances).length; var getLiveInheritedInstances = () => { var rv = []; for (var k in registeredInstances) { if (registeredInstances.hasOwnProperty(k)) { rv.push(registeredInstances[k]); } } return rv; }; var deletionQueue = []; var flushPendingDeletes = () => { while (deletionQueue.length) { var obj = deletionQueue.pop(); obj.$$.deleteScheduled = false; obj["delete"](); } }; var delayFunction; var setDelayFunction = (fn) => { delayFunction = fn; if (deletionQueue.length && delayFunction) { delayFunction(flushPendingDeletes); } }; var init_embind = () => { Module["getInheritedInstanceCount"] = getInheritedInstanceCount; Module["getLiveInheritedInstances"] = getLiveInheritedInstances; Module["flushPendingDeletes"] = flushPendingDeletes; Module["setDelayFunction"] = setDelayFunction; }; var registeredInstances = {}; var getBasestPointer = (class_, ptr) => { if (ptr === undefined) { throwBindingError("ptr should not be undefined"); } while (class_.baseClass) { ptr = class_.upcast(ptr); class_ = class_.baseClass; } return ptr; }; var getInheritedInstance = (class_, ptr) => { ptr = getBasestPointer(class_, ptr); return registeredInstances[ptr]; }; var makeClassHandle = (prototype, record) => { if (!record.ptrType || !record.ptr) { throwInternalError("makeClassHandle requires ptr and ptrType"); } var hasSmartPtrType = !!record.smartPtrType; var hasSmartPtr = !!record.smartPtr; if (hasSmartPtrType !== hasSmartPtr) { throwInternalError("Both smartPtrType and smartPtr must be specified"); } record.count = { value: 1 }; return attachFinalizer( Object.create(prototype, { $$: { value: record } }), ); }; function RegisteredPointer_fromWireType(ptr) { var rawPointer = this.getPointee(ptr); if (!rawPointer) { this.destructor(ptr); return null; } var registeredInstance = getInheritedInstance( this.registeredClass, rawPointer, ); if (undefined !== registeredInstance) { if (0 === registeredInstance.$$.count.value) { registeredInstance.$$.ptr = rawPointer; registeredInstance.$$.smartPtr = ptr; return registeredInstance["clone"](); } else { var rv = registeredInstance["clone"](); this.destructor(ptr); return rv; } } function makeDefaultHandle() { if (this.isSmartPointer) { return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr, }); } else { return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr: ptr, }); } } var actualType = this.registeredClass.getActualType(rawPointer); var registeredPointerRecord = registeredPointers[actualType]; if (!registeredPointerRecord) { return makeDefaultHandle.call(this); } var toType; if (this.isConst) { toType = registeredPointerRecord.constPointerType; } else { toType = registeredPointerRecord.pointerType; } var dp = downcastPointer( rawPointer, this.registeredClass, toType.registeredClass, ); if (dp === null) { return makeDefaultHandle.call(this); } if (this.isSmartPointer) { return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr, }); } else { return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, }); } } var attachFinalizer = (handle) => { if ("undefined" === typeof FinalizationRegistry) { attachFinalizer = (handle) => handle; return handle; } finalizationRegistry = new FinalizationRegistry((info) => { releaseClassHandle(info.$$); }); attachFinalizer = (handle) => { var $$ = handle.$$; var hasSmartPtr = !!$$.smartPtr; if (hasSmartPtr) { var info = { $$: $$ }; finalizationRegistry.register(handle, info, handle); } return handle; }; detachFinalizer = (handle) => finalizationRegistry.unregister(handle); return attachFinalizer(handle); }; var init_ClassHandle = () => { Object.assign(ClassHandle.prototype, { isAliasOf(other) { if (!(this instanceof ClassHandle)) { return false; } if (!(other instanceof ClassHandle)) { return false; } var leftClass = this.$$.ptrType.registeredClass; var left = this.$$.ptr; other.$$ = other.$$; var rightClass = other.$$.ptrType.registeredClass; var right = other.$$.ptr; while (leftClass.baseClass) { left = leftClass.upcast(left); leftClass = leftClass.baseClass; } while (rightClass.baseClass) { right = rightClass.upcast(right); rightClass = rightClass.baseClass; } return leftClass === rightClass && left === right; }, clone() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.preservePointerOnDelete) { this.$$.count.value += 1; return this; } else { var clone = attachFinalizer( Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) }, }), ); clone.$$.count.value += 1; clone.$$.deleteScheduled = false; return clone; } }, delete() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { throwBindingError("Object already scheduled for deletion"); } detachFinalizer(this); releaseClassHandle(this.$$); if (!this.$$.preservePointerOnDelete) { this.$$.smartPtr = undefined; this.$$.ptr = undefined; } }, isDeleted() { return !this.$$.ptr; }, deleteLater() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { throwBindingError("Object already scheduled for deletion"); } deletionQueue.push(this); if (deletionQueue.length === 1 && delayFunction) { delayFunction(flushPendingDeletes); } this.$$.deleteScheduled = true; return this; }, }); }; function ClassHandle() {} var char_0 = 48; var char_9 = 57; var makeLegalFunctionName = (name) => { if (undefined === name) { return "_unknown"; } name = name.replace(/[^a-zA-Z0-9_]/g, "$"); var f = name.charCodeAt(0); if (f >= char_0 && f <= char_9) { return `_${name}`; } return name; }; function createNamedFunction(name, body) { name = makeLegalFunctionName(name); return { [name]: function () { return body.apply(this, arguments); }, }[name]; } var ensureOverloadTable = (proto, methodName, humanName) => { if (undefined === proto[methodName].overloadTable) { var prevFunc = proto[methodName]; proto[methodName] = function () { if ( !proto[methodName].overloadTable.hasOwnProperty(arguments.length) ) { throwBindingError( `Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`, ); } return proto[methodName].overloadTable[arguments.length].apply( this, arguments, ); }; proto[methodName].overloadTable = []; proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; } }; var exposePublicSymbol = (name, value, numArguments) => { if (Module.hasOwnProperty(name)) { if ( undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments]) ) { throwBindingError(`Cannot register public name '${name}' twice`); } ensureOverloadTable(Module, name, name); if (Module.hasOwnProperty(numArguments)) { throwBindingError( `Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`, ); } Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; if (undefined !== numArguments) { Module[name].numArguments = numArguments; } } }; function RegisteredClass( name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast, ) { this.name = name; this.constructor = constructor; this.instancePrototype = instancePrototype; this.rawDestructor = rawDestructor; this.baseClass = baseClass; this.getActualType = getActualType; this.upcast = upcast; this.downcast = downcast; this.pureVirtualFunctions = []; } var upcastPointer = (ptr, ptrClass, desiredClass) => { while (ptrClass !== desiredClass) { if (!ptrClass.upcast) { throwBindingError( `Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`, ); } ptr = ptrClass.upcast(ptr); ptrClass = ptrClass.baseClass; } return ptr; }; function constNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { throwBindingError(`null is not a valid ${this.name}`); } return 0; } if (!handle.$$) { throwBindingError( `Cannot pass "${embindRepr(handle)}" as a ${this.name}`, ); } if (!handle.$$.ptr) { throwBindingError( `Cannot pass deleted object as a pointer of type ${this.name}`, ); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); return ptr; } function genericPointerToWireType(destructors, handle) { var ptr; if (handle === null) { if (this.isReference) { throwBindingError(`null is not a valid ${this.name}`); } if (this.isSmartPointer) { ptr = this.rawConstructor(); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } return ptr; } else { return 0; } } if (!handle.$$) { throwBindingError( `Cannot pass "${embindRepr(handle)}" as a ${this.name}`, ); } if (!handle.$$.ptr) { throwBindingError( `Cannot pass deleted object as a pointer of type ${this.name}`, ); } if (!this.isConst && handle.$$.ptrType.isConst) { throwBindingError( `Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`, ); } var handleClass = handle.$$.ptrType.registeredClass; ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); if (this.isSmartPointer) { if (undefined === handle.$$.smartPtr) { throwBindingError("Passing raw pointer to smart pointer is illegal"); } switch (this.sharingPolicy) { case 0: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { throwBindingError( `Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`, ); } break; case 1: ptr = handle.$$.smartPtr; break; case 2: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { var clonedHandle = handle["clone"](); ptr = this.rawShare( ptr, Emval.toHandle(() => clonedHandle["delete"]()), ); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } } break; default: throwBindingError("Unsupporting sharing policy"); } } return ptr; } function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { throwBindingError(`null is not a valid ${this.name}`); } return 0; } if (!handle.$$) { throwBindingError( `Cannot pass "${embindRepr(handle)}" as a ${this.name}`, ); } if (!handle.$$.ptr) { throwBindingError( `Cannot pass deleted object as a pointer of type ${this.name}`, ); } if (handle.$$.ptrType.isConst) { throwBindingError( `Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`, ); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); return ptr; } function readPointer(pointer) { return this["fromWireType"](GROWABLE_HEAP_U32()[(pointer >>> 2) >>> 0]); } var init_RegisteredPointer = () => { Object.assign(RegisteredPointer.prototype, { getPointee(ptr) { if (this.rawGetPointee) { ptr = this.rawGetPointee(ptr); } return ptr; }, destructor(ptr) { if (this.rawDestructor) { this.rawDestructor(ptr); } }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: readPointer, deleteObject(handle) { if (handle !== null) { handle["delete"](); } }, fromWireType: RegisteredPointer_fromWireType, }); }; function RegisteredPointer( name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor, ) { this.name = name; this.registeredClass = registeredClass; this.isReference = isReference; this.isConst = isConst; this.isSmartPointer = isSmartPointer; this.pointeeType = pointeeType; this.sharingPolicy = sharingPolicy; this.rawGetPointee = rawGetPointee; this.rawConstructor = rawConstructor; this.rawShare = rawShare; this.rawDestructor = rawDestructor; if (!isSmartPointer && registeredClass.baseClass === undefined) { if (isConst) { this["toWireType"] = constNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } else { this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } } else { this["toWireType"] = genericPointerToWireType; } } var replacePublicSymbol = (name, value, numArguments) => { if (!Module.hasOwnProperty(name)) { throwInternalError("Replacing nonexistant public symbol"); } if ( undefined !== Module[name].overloadTable && undefined !== numArguments ) { Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; Module[name].argCount = numArguments; } }; var dynCallLegacy = (sig, ptr, args) => { var f = Module["dynCall_" + sig]; return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); }; var wasmTable; var dynCall = (sig, ptr, args) => { var rtn = dynCallLegacy(sig, ptr, args); return rtn; }; var getDynCaller = (sig, ptr) => { var argCache = []; return function () { argCache.length = 0; Object.assign(argCache, arguments); return dynCall(sig, ptr, argCache); }; }; var embind__requireFunction = (signature, rawFunction) => { signature = readLatin1String(signature); function makeDynCaller() { return getDynCaller(signature, rawFunction); } var fp = makeDynCaller(); if (typeof fp != "function") { throwBindingError( `unknown function pointer with signature ${signature}: ${rawFunction}`, ); } return fp; }; var extendError = (baseErrorType, errorName) => { var errorClass = createNamedFunction(errorName, function (message) { this.name = errorName; this.message = message; var stack = new Error(message).stack; if (stack !== undefined) { this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); } }); errorClass.prototype = Object.create(baseErrorType.prototype); errorClass.prototype.constructor = errorClass; errorClass.prototype.toString = function () { if (this.message === undefined) { return this.name; } else { return `${this.name}: ${this.message}`; } }; return errorClass; }; var UnboundTypeError; var getTypeName = (type) => { var ptr = ___getTypeName(type); var rv = readLatin1String(ptr); _free(ptr); return rv; }; var throwUnboundTypeError = (message, types) => { var unboundTypes = []; var seen = {}; function visit(type) { if (seen[type]) { return; } if (registeredTypes[type]) { return; } if (typeDependencies[type]) { typeDependencies[type].forEach(visit); return; } unboundTypes.push(type); seen[type] = true; } types.forEach(visit); throw new UnboundTypeError( `${message}: ` + unboundTypes.map(getTypeName).join([", "]), ); }; function __embind_register_class( rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor, ) { rawType >>>= 0; rawPointerType >>>= 0; rawConstPointerType >>>= 0; baseClassRawType >>>= 0; getActualTypeSignature >>>= 0; getActualType >>>= 0; upcastSignature >>>= 0; upcast >>>= 0; downcastSignature >>>= 0; downcast >>>= 0; name >>>= 0; destructorSignature >>>= 0; rawDestructor >>>= 0; name = readLatin1String(name); getActualType = embind__requireFunction( getActualTypeSignature, getActualType, ); if (upcast) { upcast = embind__requireFunction(upcastSignature, upcast); } if (downcast) { downcast = embind__requireFunction(downcastSignature, downcast); } rawDestructor = embind__requireFunction( destructorSignature, rawDestructor, ); var legalFunctionName = makeLegalFunctionName(name); exposePublicSymbol(legalFunctionName, function () { throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [ baseClassRawType, ]); }); whenDependentTypesAreResolved( [rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function (base) { base = base[0]; var baseClass; var basePrototype; if (baseClassRawType) { baseClass = base.registeredClass; basePrototype = baseClass.instancePrototype; } else { basePrototype = ClassHandle.prototype; } var constructor = createNamedFunction(legalFunctionName, function () { if (Object.getPrototypeOf(this) !== instancePrototype) { throw new BindingError("Use 'new' to construct " + name); } if (undefined === registeredClass.constructor_body) { throw new BindingError(name + " has no accessible constructor"); } var body = registeredClass.constructor_body[arguments.length]; if (undefined === body) { throw new BindingError( `Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`, ); } return body.apply(this, arguments); }); var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor }, }); constructor.prototype = instancePrototype; var registeredClass = new RegisteredClass( name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast, ); if (registeredClass.baseClass) { if (registeredClass.baseClass.__derivedClasses === undefined) { registeredClass.baseClass.__derivedClasses = []; } registeredClass.baseClass.__derivedClasses.push(registeredClass); } var referenceConverter = new RegisteredPointer( name, registeredClass, true, false, false, ); var pointerConverter = new RegisteredPointer( name + "*", registeredClass, false, false, false, ); var constPointerConverter = new RegisteredPointer( name + " const*", registeredClass, false, true, false, ); registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter, }; replacePublicSymbol(legalFunctionName, constructor); return [referenceConverter, pointerConverter, constPointerConverter]; }, ); } var runDestructors = (destructors) => { while (destructors.length) { var ptr = destructors.pop(); var del = destructors.pop(); del(ptr); } }; function newFunc(constructor, argumentList) { if (!(constructor instanceof Function)) { throw new TypeError( `new_ called with constructor type ${typeof constructor} which is not a function`, ); } var dummy = createNamedFunction( constructor.name || "unknownFunctionName", function () {}, ); dummy.prototype = constructor.prototype; var obj = new dummy(); var r = constructor.apply(obj, argumentList); return r instanceof Object ? r : obj; } var runAndAbortIfError = (func) => { try { return func(); } catch (e) { abort(e); } }; var maybeExit = () => { if (!keepRuntimeAlive()) { try { if (ENVIRONMENT_IS_PTHREAD) __emscripten_thread_exit(EXITSTATUS); else _exit(EXITSTATUS); } catch (e) { handleException(e); } } }; var callUserCallback = (func) => { if (ABORT) { return; } try { func(); maybeExit(); } catch (e) { handleException(e); } }; var runtimeKeepalivePush = () => { runtimeKeepaliveCounter += 1; }; var runtimeKeepalivePop = () => { runtimeKeepaliveCounter -= 1; }; var Asyncify = { instrumentWasmImports(imports) { var importPattern = /^(invoke_.*|__asyncjs__.*)$/; for (var x in imports) { (function (x) { var original = imports[x]; var sig = original.sig; if (typeof original == "function") { var isAsyncifyImport = original.isAsync || importPattern.test(x); } })(x); } }, instrumentWasmExports(exports) { var ret = {}; for (var x in exports) { (function (x) { var original = exports[x]; if (typeof original == "function") { ret[x] = function () { Asyncify.exportCallStack.push(x); try { return original.apply(null, arguments); } finally { if (!ABORT) { var y = Asyncify.exportCallStack.pop(); assert(y === x); Asyncify.maybeStopUnwind(); } } }; } else { ret[x] = original; } })(x); } return ret; }, State: { Normal: 0, Unwinding: 1, Rewinding: 2, Disabled: 3 }, state: 0, StackSize: 4096, currData: null, handleSleepReturnValue: 0, exportCallStack: [], callStackNameToId: {}, callStackIdToName: {}, callStackId: 0, asyncPromiseHandlers: null, sleepCallbacks: [], getCallStackId(funcName) { var id = Asyncify.callStackNameToId[funcName]; if (id === undefined) { id = Asyncify.callStackId++; Asyncify.callStackNameToId[funcName] = id; Asyncify.callStackIdToName[id] = funcName; } return id; }, maybeStopUnwind() { if ( Asyncify.currData && Asyncify.state === Asyncify.State.Unwinding && Asyncify.exportCallStack.length === 0 ) { Asyncify.state = Asyncify.State.Normal; runtimeKeepalivePush(); runAndAbortIfError(_asyncify_stop_unwind); if (typeof Fibers != "undefined") { Fibers.trampoline(); } } }, whenDone() { return new Promise((resolve, reject) => { Asyncify.asyncPromiseHandlers = { resolve: resolve, reject: reject }; }); }, allocateData() { var ptr = _malloc(12 + Asyncify.StackSize); Asyncify.setDataHeader(ptr, ptr + 12, Asyncify.StackSize); Asyncify.setDataRewindFunc(ptr); return ptr; }, setDataHeader(ptr, stack, stackSize) { GROWABLE_HEAP_U32()[(ptr >>> 2) >>> 0] = stack; GROWABLE_HEAP_U32()[((ptr + 4) >>> 2) >>> 0] = stack + stackSize; }, setDataRewindFunc(ptr) { var bottomOfCallStack = Asyncify.exportCallStack[0]; var rewindId = Asyncify.getCallStackId(bottomOfCallStack); GROWABLE_HEAP_I32()[((ptr + 8) >>> 2) >>> 0] = rewindId; }, getDataRewindFunc(ptr) { var id = GROWABLE_HEAP_I32()[((ptr + 8) >>> 2) >>> 0]; var name = Asyncify.callStackIdToName[id]; var func = wasmExports[name]; return func; }, doRewind(ptr) { var start = Asyncify.getDataRewindFunc(ptr); runtimeKeepalivePop(); return start(); }, handleSleep(startAsync) { if (ABORT) return; if (Asyncify.state === Asyncify.State.Normal) { var reachedCallback = false; var reachedAfterCallback = false; startAsync((handleSleepReturnValue = 0) => { if (ABORT) return; Asyncify.handleSleepReturnValue = handleSleepReturnValue; reachedCallback = true; if (!reachedAfterCallback) { return; } Asyncify.state = Asyncify.State.Rewinding; runAndAbortIfError(() => _asyncify_start_rewind(Asyncify.currData)); if (typeof Browser != "undefined" && Browser.mainLoop.func) { Browser.mainLoop.resume(); } var asyncWasmReturnValue, isError = false; try { asyncWasmReturnValue = Asyncify.doRewind(Asyncify.currData); } catch (err) { asyncWasmReturnValue = err; isError = true; } var handled = false; if (!Asyncify.currData) { var asyncPromiseHandlers = Asyncify.asyncPromiseHandlers; if (asyncPromiseHandlers) { Asyncify.asyncPromiseHandlers = null; (isError ? asyncPromiseHandlers.reject : asyncPromiseHandlers.resolve)(asyncWasmReturnValue); handled = true; } } if (isError && !handled) { throw asyncWasmReturnValue; } }); reachedAfterCallback = true; if (!reachedCallback) { Asyncify.state = Asyncify.State.Unwinding; Asyncify.currData = Asyncify.allocateData(); if (typeof Browser != "undefined" && Browser.mainLoop.func) { Browser.mainLoop.pause(); } runAndAbortIfError(() => _asyncify_start_unwind(Asyncify.currData)); } } else if (Asyncify.state === Asyncify.State.Rewinding) { Asyncify.state = Asyncify.State.Normal; runAndAbortIfError(_asyncify_stop_rewind); _free(Asyncify.currData); Asyncify.currData = null; Asyncify.sleepCallbacks.forEach((func) => callUserCallback(func)); } else { abort(`invalid state: ${Asyncify.state}`); } return Asyncify.handleSleepReturnValue; }, handleAsync(startAsync) { return Asyncify.handleSleep((wakeUp) => { startAsync().then(wakeUp); }); }, }; function craftInvokerFunction( humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync, ) { var argCount = argTypes.length; if (argCount < 2) { throwBindingError( "argTypes array size mismatch! Must at least get return value and 'this' types!", ); } var isClassMethodFunc = argTypes[1] !== null && classType !== null; var needsDestructorStack = false; for (var i = 1; i < argTypes.length; ++i) { if ( argTypes[i] !== null && argTypes[i].destructorFunction === undefined ) { needsDestructorStack = true; break; } } var returns = argTypes[0].name !== "void"; var argsList = ""; var argsListWired = ""; for (var i = 0; i < argCount - 2; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; } var invokerFnBody = `\n return function ${makeLegalFunctionName(humanName)}(${argsList}) {\n if (arguments.length !== ${argCount - 2}) {\n throwBindingError('function ${humanName} called with ' + arguments.length + ' arguments, expected ${argCount - 2}');\n }`; if (needsDestructorStack) { invokerFnBody += "var destructors = [];\n"; } var dtorStack = needsDestructorStack ? "destructors" : "null"; var args1 = [ "throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam", ]; var args2 = [ throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1], ]; if (isClassMethodFunc) { invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; } for (var i = 0; i < argCount - 2; ++i) { invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; args1.push("argType" + i); args2.push(argTypes[i + 2]); } if (isClassMethodFunc) { argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; } invokerFnBody += (returns || isAsync ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; args1.push("Asyncify"); args2.push(Asyncify); invokerFnBody += "function onDone(" + (returns ? "rv" : "") + ") {\n"; if (needsDestructorStack) { invokerFnBody += "runDestructors(destructors);\n"; } else { for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) { var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; if (argTypes[i].destructorFunction !== null) { invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; args1.push(paramName + "_dtor"); args2.push(argTypes[i].destructorFunction); } } } if (returns) { invokerFnBody += "var ret = retType.fromWireType(rv);\n" + "return ret;\n"; } else { } invokerFnBody += "}\n"; invokerFnBody += "return Asyncify.currData ? Asyncify.whenDone().then(onDone) : onDone(" + (returns ? "rv" : "") + ");\n"; invokerFnBody += "}\n"; args1.push(invokerFnBody); return newFunc(Function, args1).apply(null, args2); } var heap32VectorToArray = (count, firstElement) => { var array = []; for (var i = 0; i < count; i++) { array.push(GROWABLE_HEAP_U32()[((firstElement + i * 4) >>> 2) >>> 0]); } return array; }; var getFunctionName = (signature) => { signature = signature.trim(); const argsIndex = signature.indexOf("("); if (argsIndex !== -1) { assert( signature[signature.length - 1] == ")", "Parentheses for argument names should match.", ); return signature.substr(0, argsIndex); } else { return signature; } }; function __embind_register_class_class_function( rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync, ) { rawClassType >>>= 0; methodName >>>= 0; rawArgTypesAddr >>>= 0; invokerSignature >>>= 0; rawInvoker >>>= 0; fn >>>= 0; var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); methodName = readLatin1String(methodName); methodName = getFunctionName(methodName); rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); whenDependentTypesAreResolved([], [rawClassType], function (classType) { classType = classType[0]; var humanName = `${classType.name}.${methodName}`; function unboundTypesHandler() { throwUnboundTypeError( `Cannot call ${humanName} due to unbound types`, rawArgTypes, ); } if (methodName.startsWith("@@")) { methodName = Symbol[methodName.substring(2)]; } var proto = classType.registeredClass.constructor; if (undefined === proto[methodName]) { unboundTypesHandler.argCount = argCount - 1; proto[methodName] = unboundTypesHandler; } else { ensureOverloadTable(proto, methodName, humanName); proto[methodName].overloadTable[argCount - 1] = unboundTypesHandler; } whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) { var invokerArgsArray = [argTypes[0], null].concat(argTypes.slice(1)); var func = craftInvokerFunction( humanName, invokerArgsArray, null, rawInvoker, fn, isAsync, ); if (undefined === proto[methodName].overloadTable) { func.argCount = argCount - 1; proto[methodName] = func; } else { proto[methodName].overloadTable[argCount - 1] = func; } if (classType.registeredClass.__derivedClasses) { for (const derivedClass of classType.registeredClass .__derivedClasses) { if (!derivedClass.constructor.hasOwnProperty(methodName)) { derivedClass.constructor[methodName] = func; } } } return []; }); return []; }); } var validateThis = (this_, classType, humanName) => { if (!(this_ instanceof Object)) { throwBindingError(`${humanName} with invalid "this": ${this_}`); } if (!(this_ instanceof classType.registeredClass.constructor)) { throwBindingError( `${humanName} incompatible with "this" of type ${this_.constructor.name}`, ); } if (!this_.$$.ptr) { throwBindingError( `cannot call emscripten binding method ${humanName} on deleted object`, ); } return upcastPointer( this_.$$.ptr, this_.$$.ptrType.registeredClass, classType.registeredClass, ); }; function __embind_register_class_class_property( rawClassType, fieldName, rawFieldType, rawFieldPtr, getterSignature, getter, setterSignature, setter, ) { rawClassType >>>= 0; fieldName >>>= 0; rawFieldType >>>= 0; rawFieldPtr >>>= 0; getterSignature >>>= 0; getter >>>= 0; setterSignature >>>= 0; setter >>>= 0; fieldName = readLatin1String(fieldName); getter = embind__requireFunction(getterSignature, getter); whenDependentTypesAreResolved([], [rawClassType], function (classType) { classType = classType[0]; var humanName = `${classType.name}.${fieldName}`; var desc = { get() { throwUnboundTypeError( `Cannot access ${humanName} due to unbound types`, [rawFieldType], ); }, enumerable: true, configurable: true, }; if (setter) { desc.set = () => { throwUnboundTypeError( `Cannot access ${humanName} due to unbound types`, [rawFieldType], ); }; } else { desc.set = (v) => { throwBindingError(`${humanName} is a read-only property`); }; } Object.defineProperty( classType.registeredClass.constructor, fieldName, desc, ); whenDependentTypesAreResolved([], [rawFieldType], function (fieldType) { fieldType = fieldType[0]; var desc = { get() { return fieldType["fromWireType"](getter(rawFieldPtr)); }, enumerable: true, }; if (setter) { setter = embind__requireFunction(setterSignature, setter); desc.set = (v) => { var destructors = []; setter(rawFieldPtr, fieldType["toWireType"](destructors, v)); runDestructors(destructors); }; } Object.defineProperty( classType.registeredClass.constructor, fieldName, desc, ); return []; }); return []; }); } function __embind_register_class_constructor( rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor, ) { rawClassType >>>= 0; rawArgTypesAddr >>>= 0; invokerSignature >>>= 0; invoker >>>= 0; rawConstructor >>>= 0; var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); invoker = embind__requireFunction(invokerSignature, invoker); whenDependentTypesAreResolved([], [rawClassType], function (classType) { classType = classType[0]; var humanName = `constructor ${classType.name}`; if (undefined === classType.registeredClass.constructor_body) { classType.registeredClass.constructor_body = []; } if ( undefined !== classType.registeredClass.constructor_body[argCount - 1] ) { throw new BindingError( `Cannot register multiple constructors with identical number of parameters (${argCount - 1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`, ); } classType.registeredClass.constructor_body[argCount - 1] = () => { throwUnboundTypeError( `Cannot construct ${classType.name} due to unbound types`, rawArgTypes, ); }; whenDependentTypesAreResolved([], rawArgTypes, (argTypes) => { argTypes.splice(1, 0, null); classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction( humanName, argTypes, null, invoker, rawConstructor, ); return []; }); return []; }); } function __embind_register_class_function( rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync, ) { rawClassType >>>= 0; methodName >>>= 0; rawArgTypesAddr >>>= 0; invokerSignature >>>= 0; rawInvoker >>>= 0; context >>>= 0; var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); methodName = readLatin1String(methodName); methodName = getFunctionName(methodName); rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); whenDependentTypesAreResolved([], [rawClassType], function (classType) { classType = classType[0]; var humanName = `${classType.name}.${methodName}`; if (methodName.startsWith("@@")) { methodName = Symbol[methodName.substring(2)]; } if (isPureVirtual) { classType.registeredClass.pureVirtualFunctions.push(methodName); } function unboundTypesHandler() { throwUnboundTypeError( `Cannot call ${humanName} due to unbound types`, rawArgTypes, ); } var proto = classType.registeredClass.instancePrototype; var method = proto[methodName]; if ( undefined === method || (undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2) ) { unboundTypesHandler.argCount = argCount - 2; unboundTypesHandler.className = classType.name; proto[methodName] = unboundTypesHandler; } else { ensureOverloadTable(proto, methodName, humanName); proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; } whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) { var memberFunction = craftInvokerFunction( humanName, argTypes, classType, rawInvoker, context, isAsync, ); if (undefined === proto[methodName].overloadTable) { memberFunction.argCount = argCount - 2; proto[methodName] = memberFunction; } else { proto[methodName].overloadTable[argCount - 2] = memberFunction; } return []; }); return []; }); } function __embind_register_class_property( classType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext, ) { classType >>>= 0; fieldName >>>= 0; getterReturnType >>>= 0; getterSignature >>>= 0; getter >>>= 0; getterContext >>>= 0; setterArgumentType >>>= 0; setterSignature >>>= 0; setter >>>= 0; setterContext >>>= 0; fieldName = readLatin1String(fieldName); getter = embind__requireFunction(getterSignature, getter); whenDependentTypesAreResolved([], [classType], function (classType) { classType = classType[0]; var humanName = `${classType.name}.${fieldName}`; var desc = { get() { throwUnboundTypeError( `Cannot access ${humanName} due to unbound types`, [getterReturnType, setterArgumentType], ); }, enumerable: true, configurable: true, }; if (setter) { desc.set = () => throwUnboundTypeError( `Cannot access ${humanName} due to unbound types`, [getterReturnType, setterArgumentType], ); } else { desc.set = (v) => throwBindingError(humanName + " is a read-only property"); } Object.defineProperty( classType.registeredClass.instancePrototype, fieldName, desc, ); whenDependentTypesAreResolved( [], setter ? [getterReturnType, setterArgumentType] : [getterReturnType], function (types) { var getterReturnType = types[0]; var desc = { get() { var ptr = validateThis(this, classType, humanName + " getter"); return getterReturnType["fromWireType"]( getter(getterContext, ptr), ); }, enumerable: true, }; if (setter) { setter = embind__requireFunction(setterSignature, setter); var setterArgumentType = types[1]; desc.set = function (v) { var ptr = validateThis(this, classType, humanName + " setter"); var destructors = []; setter( setterContext, ptr, setterArgumentType["toWireType"](destructors, v), ); runDestructors(destructors); }; } Object.defineProperty( classType.registeredClass.instancePrototype, fieldName, desc, ); return []; }, ); return []; }); } function handleAllocatorInit() { Object.assign(HandleAllocator.prototype, { get(id) { return this.allocated[id]; }, has(id) { return this.allocated[id] !== undefined; }, allocate(handle) { var id = this.freelist.pop() || this.allocated.length; this.allocated[id] = handle; return id; }, free(id) { this.allocated[id] = undefined; this.freelist.push(id); }, }); } function HandleAllocator() { this.allocated = [undefined]; this.freelist = []; } var emval_handles = new HandleAllocator(); function __emval_decref(handle) { handle >>>= 0; if ( handle >= emval_handles.reserved && 0 === --emval_handles.get(handle).refcount ) { emval_handles.free(handle); } } var count_emval_handles = () => { var count = 0; for ( var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i ) { if (emval_handles.allocated[i] !== undefined) { ++count; } } return count; }; var init_emval = () => { emval_handles.allocated.push( { value: undefined }, { value: null }, { value: true }, { value: false }, ); emval_handles.reserved = emval_handles.allocated.length; Module["count_emval_handles"] = count_emval_handles; }; var Emval = { toValue: (handle) => { if (!handle) { throwBindingError("Cannot use deleted val. handle = " + handle); } return emval_handles.get(handle).value; }, toHandle: (value) => { switch (value) { case undefined: return 1; case null: return 2; case true: return 3; case false: return 4; default: { return emval_handles.allocate({ refcount: 1, value: value }); } } }, }; function simpleReadValueFromPointer(pointer) { return this["fromWireType"](GROWABLE_HEAP_I32()[(pointer >>> 2) >>> 0]); } var __embind_register_emval = function (rawType, name) { rawType >>>= 0; name >>>= 0; name = readLatin1String(name); registerType(rawType, { name: name, fromWireType: (handle) => { var rv = Emval.toValue(handle); __emval_decref(handle); return rv; }, toWireType: (destructors, value) => Emval.toHandle(value), argPackAdvance: GenericWireTypeSize, readValueFromPointer: simpleReadValueFromPointer, destructorFunction: null, }); }; var enumReadValueFromPointer = (name, width, signed) => { switch (width) { case 1: return signed ? function (pointer) { return this["fromWireType"]( GROWABLE_HEAP_I8()[(pointer >>> 0) >>> 0], ); } : function (pointer) { return this["fromWireType"]( GROWABLE_HEAP_U8()[(pointer >>> 0) >>> 0], ); }; case 2: return signed ? function (pointer) { return this["fromWireType"]( GROWABLE_HEAP_I16()[(pointer >>> 1) >>> 0], ); } : function (pointer) { return this["fromWireType"]( GROWABLE_HEAP_U16()[(pointer >>> 1) >>> 0], ); }; case 4: return signed ? function (pointer) { return this["fromWireType"]( GROWABLE_HEAP_I32()[(pointer >>> 2) >>> 0], ); } : function (pointer) { return this["fromWireType"]( GROWABLE_HEAP_U32()[(pointer >>> 2) >>> 0], ); }; default: throw new TypeError(`invalid integer width (${width}): ${name}`); } }; function __embind_register_enum(rawType, name, size, isSigned) { rawType >>>= 0; name >>>= 0; size >>>= 0; name = readLatin1String(name); function ctor() {} ctor.values = {}; registerType(rawType, { name: name, constructor: ctor, fromWireType: function (c) { return this.constructor.values[c]; }, toWireType: (destructors, c) => c.value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: enumReadValueFromPointer(name, size, isSigned), destructorFunction: null, }); exposePublicSymbol(name, ctor); } var requireRegisteredType = (rawType, humanName) => { var impl = registeredTypes[rawType]; if (undefined === impl) { throwBindingError( humanName + " has unknown type " + getTypeName(rawType), ); } return impl; }; function __embind_register_enum_value(rawEnumType, name, enumValue) { rawEnumType >>>= 0; name >>>= 0; enumValue >>>= 0; var enumType = requireRegisteredType(rawEnumType, "enum"); name = readLatin1String(name); var Enum = enumType.constructor; var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction( `${enumType.name}_${name}`, function () {}, ), }, }); Enum.values[enumValue] = Value; Enum[name] = Value; } var embindRepr = (v) => { if (v === null) { return "null"; } var t = typeof v; if (t === "object" || t === "array" || t === "function") { return v.toString(); } else { return "" + v; } }; var floatReadValueFromPointer = (name, width) => { switch (width) { case 4: return function (pointer) { return this["fromWireType"]( GROWABLE_HEAP_F32()[(pointer >>> 2) >>> 0], ); }; case 8: return function (pointer) { return this["fromWireType"]( GROWABLE_HEAP_F64()[(pointer >>> 3) >>> 0], ); }; default: throw new TypeError(`invalid float width (${width}): ${name}`); } }; var __embind_register_float = function (rawType, name, size) { rawType >>>= 0; name >>>= 0; size >>>= 0; name = readLatin1String(name); registerType(rawType, { name: name, fromWireType: (value) => value, toWireType: (destructors, value) => value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: floatReadValueFromPointer(name, size), destructorFunction: null, }); }; function __embind_register_function( name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync, ) { name >>>= 0; rawArgTypesAddr >>>= 0; signature >>>= 0; rawInvoker >>>= 0; fn >>>= 0; var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); name = readLatin1String(name); name = getFunctionName(name); rawInvoker = embind__requireFunction(signature, rawInvoker); exposePublicSymbol( name, function () { throwUnboundTypeError( `Cannot call ${name} due to unbound types`, argTypes, ); }, argCount - 1, ); whenDependentTypesAreResolved([], argTypes, function (argTypes) { var invokerArgsArray = [argTypes[0], null].concat(argTypes.slice(1)); replacePublicSymbol( name, craftInvokerFunction( name, invokerArgsArray, null, rawInvoker, fn, isAsync, ), argCount - 1, ); return []; }); } var integerReadValueFromPointer = (name, width, signed) => { switch (width) { case 1: return signed ? (pointer) => GROWABLE_HEAP_I8()[(pointer >>> 0) >>> 0] : (pointer) => GROWABLE_HEAP_U8()[(pointer >>> 0) >>> 0]; case 2: return signed ? (pointer) => GROWABLE_HEAP_I16()[(pointer >>> 1) >>> 0] : (pointer) => GROWABLE_HEAP_U16()[(pointer >>> 1) >>> 0]; case 4: return signed ? (pointer) => GROWABLE_HEAP_I32()[(pointer >>> 2) >>> 0] : (pointer) => GROWABLE_HEAP_U32()[(pointer >>> 2) >>> 0]; default: throw new TypeError(`invalid integer width (${width}): ${name}`); } }; function __embind_register_integer( primitiveType, name, size, minRange, maxRange, ) { primitiveType >>>= 0; name >>>= 0; size >>>= 0; name = readLatin1String(name); if (maxRange === -1) { maxRange = 4294967295; } var fromWireType = (value) => value; if (minRange === 0) { var bitshift = 32 - 8 * size; fromWireType = (value) => (value << bitshift) >>> bitshift; } var isUnsignedType = name.includes("unsigned"); var checkAssertions = (value, toTypeName) => {}; var toWireType; if (isUnsignedType) { toWireType = function (destructors, value) { checkAssertions(value, this.name); return value >>> 0; }; } else { toWireType = function (destructors, value) { checkAssertions(value, this.name); return value; }; } registerType(primitiveType, { name: name, fromWireType: fromWireType, toWireType: toWireType, argPackAdvance: GenericWireTypeSize, readValueFromPointer: integerReadValueFromPointer( name, size, minRange !== 0, ), destructorFunction: null, }); } function __embind_register_memory_view(rawType, dataTypeIndex, name) { rawType >>>= 0; name >>>= 0; var typeMapping = [ Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, ]; var TA = typeMapping[dataTypeIndex]; function decodeMemoryView(handle) { var size = GROWABLE_HEAP_U32()[(handle >>> 2) >>> 0]; var data = GROWABLE_HEAP_U32()[((handle + 4) >>> 2) >>> 0]; return new TA(GROWABLE_HEAP_I8().buffer, data, size); } name = readLatin1String(name); registerType( rawType, { name: name, fromWireType: decodeMemoryView, argPackAdvance: GenericWireTypeSize, readValueFromPointer: decodeMemoryView, }, { ignoreDuplicateRegistrations: true }, ); } function __embind_register_smart_ptr( rawType, rawPointeeType, name, sharingPolicy, getPointeeSignature, rawGetPointee, constructorSignature, rawConstructor, shareSignature, rawShare, destructorSignature, rawDestructor, ) { rawType >>>= 0; rawPointeeType >>>= 0; name >>>= 0; getPointeeSignature >>>= 0; rawGetPointee >>>= 0; constructorSignature >>>= 0; rawConstructor >>>= 0; shareSignature >>>= 0; rawShare >>>= 0; destructorSignature >>>= 0; rawDestructor >>>= 0; name = readLatin1String(name); rawGetPointee = embind__requireFunction( getPointeeSignature, rawGetPointee, ); rawConstructor = embind__requireFunction( constructorSignature, rawConstructor, ); rawShare = embind__requireFunction(shareSignature, rawShare); rawDestructor = embind__requireFunction( destructorSignature, rawDestructor, ); whenDependentTypesAreResolved( [rawType], [rawPointeeType], function (pointeeType) { pointeeType = pointeeType[0]; var registeredPointer = new RegisteredPointer( name, pointeeType.registeredClass, false, false, true, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor, ); return [registeredPointer]; }, ); } function __embind_register_std_string(rawType, name) { rawType >>>= 0; name >>>= 0; name = readLatin1String(name); var stdStringIsUTF8 = name === "std::string"; registerType(rawType, { name: name, fromWireType(value) { var length = GROWABLE_HEAP_U32()[(value >>> 2) >>> 0]; var payload = value + 4; var str; if (stdStringIsUTF8) { var decodeStartPtr = payload; for (var i = 0; i <= length; ++i) { var currentBytePtr = payload + i; if ( i == length || GROWABLE_HEAP_U8()[currentBytePtr >>> 0] == 0 ) { var maxRead = currentBytePtr - decodeStartPtr; var stringSegment = UTF8ToString(decodeStartPtr, maxRead); if (str === undefined) { str = stringSegment; } else { str += String.fromCharCode(0); str += stringSegment; } decodeStartPtr = currentBytePtr + 1; } } } else { var a = new Array(length); for (var i = 0; i < length; ++i) { a[i] = String.fromCharCode( GROWABLE_HEAP_U8()[(payload + i) >>> 0], ); } str = a.join(""); } _free(value); return str; }, toWireType(destructors, value) { if (value instanceof ArrayBuffer) { value = new Uint8Array(value); } var length; var valueIsOfTypeString = typeof value == "string"; if ( !( valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array ) ) { throwBindingError("Cannot pass non-string to std::string"); } if (stdStringIsUTF8 && valueIsOfTypeString) { length = lengthBytesUTF8(value); } else { length = value.length; } var base = _malloc(4 + length + 1); var ptr = base + 4; GROWABLE_HEAP_U32()[(base >>> 2) >>> 0] = length; if (stdStringIsUTF8 && valueIsOfTypeString) { stringToUTF8(value, ptr, length + 1); } else { if (valueIsOfTypeString) { for (var i = 0; i < length; ++i) { var charCode = value.charCodeAt(i); if (charCode > 255) { _free(ptr); throwBindingError( "String has UTF-16 code units that do not fit in 8 bits", ); } GROWABLE_HEAP_U8()[(ptr + i) >>> 0] = charCode; } } else { for (var i = 0; i < length; ++i) { GROWABLE_HEAP_U8()[(ptr + i) >>> 0] = value[i]; } } } if (destructors !== null) { destructors.push(_free, base); } return base; }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: readPointer, destructorFunction(ptr) { _free(ptr); }, }); } var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : undefined; var UTF16ToString = (ptr, maxBytesToRead) => { var endPtr = ptr; var idx = endPtr >> 1; var maxIdx = idx + maxBytesToRead / 2; while (!(idx >= maxIdx) && GROWABLE_HEAP_U16()[idx >>> 0]) ++idx; endPtr = idx << 1; if (endPtr - ptr > 32 && UTF16Decoder) return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr, endPtr)); var str = ""; for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { var codeUnit = GROWABLE_HEAP_I16()[((ptr + i * 2) >>> 1) >>> 0]; if (codeUnit == 0) break; str += String.fromCharCode(codeUnit); } return str; }; var stringToUTF16 = (str, outPtr, maxBytesToWrite) => { if (maxBytesToWrite === undefined) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 2) return 0; maxBytesToWrite -= 2; var startPtr = outPtr; var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; for (var i = 0; i < numCharsToWrite; ++i) { var codeUnit = str.charCodeAt(i); GROWABLE_HEAP_I16()[(outPtr >>> 1) >>> 0] = codeUnit; outPtr += 2; } GROWABLE_HEAP_I16()[(outPtr >>> 1) >>> 0] = 0; return outPtr - startPtr; }; var lengthBytesUTF16 = (str) => str.length * 2; var UTF32ToString = (ptr, maxBytesToRead) => { var i = 0; var str = ""; while (!(i >= maxBytesToRead / 4)) { var utf32 = GROWABLE_HEAP_I32()[((ptr + i * 4) >>> 2) >>> 0]; if (utf32 == 0) break; ++i; if (utf32 >= 65536) { var ch = utf32 - 65536; str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023)); } else { str += String.fromCharCode(utf32); } } return str; }; var stringToUTF32 = (str, outPtr, maxBytesToWrite) => { outPtr >>>= 0; if (maxBytesToWrite === undefined) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 4) return 0; var startPtr = outPtr; var endPtr = startPtr + maxBytesToWrite - 4; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); if (codeUnit >= 55296 && codeUnit <= 57343) { var trailSurrogate = str.charCodeAt(++i); codeUnit = (65536 + ((codeUnit & 1023) << 10)) | (trailSurrogate & 1023); } GROWABLE_HEAP_I32()[(outPtr >>> 2) >>> 0] = codeUnit; outPtr += 4; if (outPtr + 4 > endPtr) break; } GROWABLE_HEAP_I32()[(outPtr >>> 2) >>> 0] = 0; return outPtr - startPtr; }; var lengthBytesUTF32 = (str) => { var len = 0; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); if (codeUnit >= 55296 && codeUnit <= 57343) ++i; len += 4; } return len; }; var __embind_register_std_wstring = function (rawType, charSize, name) { rawType >>>= 0; charSize >>>= 0; name >>>= 0; name = readLatin1String(name); var decodeString, encodeString, getHeap, lengthBytesUTF, shift; if (charSize === 2) { decodeString = UTF16ToString; encodeString = stringToUTF16; lengthBytesUTF = lengthBytesUTF16; getHeap = () => GROWABLE_HEAP_U16(); shift = 1; } else if (charSize === 4) { decodeString = UTF32ToString; encodeString = stringToUTF32; lengthBytesUTF = lengthBytesUTF32; getHeap = () => GROWABLE_HEAP_U32(); shift = 2; } registerType(rawType, { name: name, fromWireType: (value) => { var length = GROWABLE_HEAP_U32()[(value >>> 2) >>> 0]; var HEAP = getHeap(); var str; var decodeStartPtr = value + 4; for (var i = 0; i <= length; ++i) { var currentBytePtr = value + 4 + i * charSize; if (i == length || HEAP[currentBytePtr >>> shift] == 0) { var maxReadBytes = currentBytePtr - decodeStartPtr; var stringSegment = decodeString(decodeStartPtr, maxReadBytes); if (str === undefined) { str = stringSegment; } else { str += String.fromCharCode(0); str += stringSegment; } decodeStartPtr = currentBytePtr + charSize; } } _free(value); return str; }, toWireType: (destructors, value) => { if (!(typeof value == "string")) { throwBindingError( `Cannot pass non-string to C++ string type ${name}`, ); } var length = lengthBytesUTF(value); var ptr = _malloc(4 + length + charSize); GROWABLE_HEAP_U32()[ptr >>> 2] = length >> shift; encodeString(value, ptr + 4, length + charSize); if (destructors !== null) { destructors.push(_free, ptr); } return ptr; }, argPackAdvance: GenericWireTypeSize, readValueFromPointer: simpleReadValueFromPointer, destructorFunction(ptr) { _free(ptr); }, }); }; var __embind_register_void = function (rawType, name) { rawType >>>= 0; name >>>= 0; name = readLatin1String(name); registerType(rawType, { isVoid: true, name: name, argPackAdvance: 0, fromWireType: () => undefined, toWireType: (destructors, o) => undefined, }); }; var nowIsMonotonic = true; var __emscripten_get_now_is_monotonic = () => nowIsMonotonic; function __emscripten_thread_mailbox_await(pthread_ptr) { pthread_ptr >>>= 0; if (typeof Atomics.waitAsync === "function") { var wait = Atomics.waitAsync( GROWABLE_HEAP_I32(), pthread_ptr >>> 2, pthread_ptr, ); wait.value.then(checkMailbox); var waitingAsync = pthread_ptr + 128; Atomics.store(GROWABLE_HEAP_I32(), waitingAsync >>> 2, 1); } } Module["__emscripten_thread_mailbox_await"] = __emscripten_thread_mailbox_await; var checkMailbox = () => { var pthread_ptr = _pthread_self(); if (pthread_ptr) { __emscripten_thread_mailbox_await(pthread_ptr); callUserCallback(() => __emscripten_check_mailbox()); } }; Module["checkMailbox"] = checkMailbox; var __emscripten_notify_mailbox_postmessage = function ( targetThreadId, currThreadId, mainThreadId, ) { targetThreadId >>>= 0; currThreadId >>>= 0; mainThreadId >>>= 0; if (targetThreadId == currThreadId) { setTimeout(() => checkMailbox()); } else if (ENVIRONMENT_IS_PTHREAD) { postMessage({ targetThread: targetThreadId, cmd: "checkMailbox" }); } else { var worker = PThread.pthreads[targetThreadId]; if (!worker) { return; } worker.postMessage({ cmd: "checkMailbox" }); } }; var withStackSave = (f) => { var stack = stackSave(); var ret = f(); stackRestore(stack); return ret; }; var proxyToMainThread = function (index, sync) { var numCallArgs = arguments.length - 2; var outerArgs = arguments; return withStackSave(() => { var serializedNumCallArgs = numCallArgs; var args = stackAlloc(serializedNumCallArgs * 8); var b = args >>> 3; for (var i = 0; i < numCallArgs; i++) { var arg = outerArgs[2 + i]; GROWABLE_HEAP_F64()[(b + i) >>> 0] = arg; } return __emscripten_run_on_main_thread_js( index, serializedNumCallArgs, args, sync, ); }); }; var proxiedJSCallArgs = []; function __emscripten_receive_on_main_thread_js( index, callingThread, numCallArgs, args, ) { callingThread >>>= 0; args >>>= 0; proxiedJSCallArgs.length = numCallArgs; var b = args >>> 3; for (var i = 0; i < numCallArgs; i++) { proxiedJSCallArgs[i] = GROWABLE_HEAP_F64()[(b + i) >>> 0]; } var func = proxiedFunctionTable[index]; PThread.currentProxiedOperationCallerThread = callingThread; var rtn = func.apply(null, proxiedJSCallArgs); PThread.currentProxiedOperationCallerThread = 0; return rtn; } function __emscripten_runtime_keepalive_clear() { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(20, 1); noExitRuntime = false; runtimeKeepaliveCounter = 0; } function __emscripten_thread_set_strongref(thread) { thread >>>= 0; if (ENVIRONMENT_IS_NODE) { PThread.pthreads[thread].ref(); } } function __emval_as(handle, returnType, destructorsRef) { handle >>>= 0; returnType >>>= 0; destructorsRef >>>= 0; handle = Emval.toValue(handle); returnType = requireRegisteredType(returnType, "emval::as"); var destructors = []; var rd = Emval.toHandle(destructors); GROWABLE_HEAP_U32()[(destructorsRef >>> 2) >>> 0] = rd; return returnType["toWireType"](destructors, handle); } function __emval_as_int64(handle, returnType) { handle >>>= 0; returnType >>>= 0; handle = Emval.toValue(handle); returnType = requireRegisteredType(returnType, "emval::as"); return returnType["toWireType"](null, handle); } function __emval_as_uint64(handle, returnType) { handle >>>= 0; returnType >>>= 0; handle = Emval.toValue(handle); returnType = requireRegisteredType(returnType, "emval::as"); return returnType["toWireType"](null, handle); } var emval_lookupTypes = (argCount, argTypes) => { var a = new Array(argCount); for (var i = 0; i < argCount; ++i) { a[i] = requireRegisteredType( GROWABLE_HEAP_U32()[((argTypes + i * 4) >>> 2) >>> 0], "parameter " + i, ); } return a; }; function __emval_call(handle, argCount, argTypes, argv) { handle >>>= 0; argTypes >>>= 0; argv >>>= 0; handle = Emval.toValue(handle); var types = emval_lookupTypes(argCount, argTypes); var args = new Array(argCount); for (var i = 0; i < argCount; ++i) { var type = types[i]; args[i] = type["readValueFromPointer"](argv); argv += type["argPackAdvance"]; } var rv = handle.apply(undefined, args); return Emval.toHandle(rv); } var emval_symbols = {}; var getStringOrSymbol = (address) => { var symbol = emval_symbols[address]; if (symbol === undefined) { return readLatin1String(address); } return symbol; }; var emval_methodCallers = []; function __emval_call_method( caller, handle, methodName, destructorsRef, args, ) { caller >>>= 0; handle >>>= 0; methodName >>>= 0; destructorsRef >>>= 0; args >>>= 0; caller = emval_methodCallers[caller]; handle = Emval.toValue(handle); methodName = getStringOrSymbol(methodName); var destructors = []; var result = caller(handle, methodName, destructors, args); if (destructors.length) { GROWABLE_HEAP_U32()[(destructorsRef >>> 2) >>> 0] = Emval.toHandle(destructors); } return result; } function __emval_equals(first, second) { first >>>= 0; second >>>= 0; first = Emval.toValue(first); second = Emval.toValue(second); return first == second; } var emval_get_global = () => { if (typeof globalThis == "object") { return globalThis; } return (function () { return Function; })()("return this")(); }; function __emval_get_global(name) { name >>>= 0; if (name === 0) { return Emval.toHandle(emval_get_global()); } else { name = getStringOrSymbol(name); return Emval.toHandle(emval_get_global()[name]); } } var emval_addMethodCaller = (caller) => { var id = emval_methodCallers.length; emval_methodCallers.push(caller); return id; }; function __emval_get_method_caller(argCount, argTypes) { argTypes >>>= 0; var types = emval_lookupTypes(argCount, argTypes); var retType = types.shift(); argCount--; var params = ["retType"]; var args = [retType]; var argsList = ""; for (var i = 0; i < argCount; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; params.push("argType" + i); args.push(types[i]); } var signatureName = retType.name + "_$" + types.map((t) => t.name).join("_") + "$"; var functionName = makeLegalFunctionName("methodCaller_" + signatureName); var functionBody = "return function " + functionName + "(handle, name, destructors, args) {\n"; var offset = 0; for (var i = 0; i < argCount; ++i) { functionBody += " var arg" + i + " = argType" + i + ".readValueFromPointer(args" + (offset ? "+" + offset : "") + ");\n"; offset += types[i]["argPackAdvance"]; } functionBody += " var rv = handle[name](" + argsList + ");\n"; for (var i = 0; i < argCount; ++i) { if (types[i]["deleteObject"]) { functionBody += " argType" + i + ".deleteObject(arg" + i + ");\n"; } } if (!retType.isVoid) { functionBody += " return retType.toWireType(destructors, rv);\n"; } functionBody += "};\n"; params.push(functionBody); var invokerFunction = newFunc(Function, params).apply(null, args); return emval_addMethodCaller(invokerFunction); } function __emval_get_property(handle, key) { handle >>>= 0; key >>>= 0; handle = Emval.toValue(handle); key = Emval.toValue(key); return Emval.toHandle(handle[key]); } function __emval_incref(handle) { handle >>>= 0; if (handle > 4) { emval_handles.get(handle).refcount += 1; } } function __emval_instanceof(object, constructor) { object >>>= 0; constructor >>>= 0; object = Emval.toValue(object); constructor = Emval.toValue(constructor); return object instanceof constructor; } function __emval_new_array() { return Emval.toHandle([]); } function __emval_new_cstring(v) { v >>>= 0; return Emval.toHandle(getStringOrSymbol(v)); } function __emval_new_object() { return Emval.toHandle({}); } function __emval_run_destructors(handle) { handle >>>= 0; var destructors = Emval.toValue(handle); runDestructors(destructors); __emval_decref(handle); } function __emval_set_property(handle, key, value) { handle >>>= 0; key >>>= 0; value >>>= 0; handle = Emval.toValue(handle); key = Emval.toValue(key); value = Emval.toValue(value); handle[key] = value; } function __emval_take_value(type, arg) { type >>>= 0; arg >>>= 0; type = requireRegisteredType(type, "_emval_take_value"); var v = type["readValueFromPointer"](arg); return Emval.toHandle(v); } function __emval_typeof(handle) { handle >>>= 0; handle = Emval.toValue(handle); return Emval.toHandle(typeof handle); } function __mmap_js( len, prot, flags, fd, offset_low, offset_high, allocated, addr, ) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread( 21, 1, len, prot, flags, fd, offset_low, offset_high, allocated, addr, ); len >>>= 0; var offset = convertI32PairToI53Checked(offset_low, offset_high); allocated >>>= 0; addr >>>= 0; try { if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); var res = FS.mmap(stream, len, offset, prot, flags); var ptr = res.ptr; GROWABLE_HEAP_I32()[(allocated >>> 2) >>> 0] = res.allocated; GROWABLE_HEAP_U32()[(addr >>> 2) >>> 0] = ptr; return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } function __munmap_js(addr, len, prot, flags, fd, offset_low, offset_high) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread( 22, 1, addr, len, prot, flags, fd, offset_low, offset_high, ); addr >>>= 0; len >>>= 0; var offset = convertI32PairToI53Checked(offset_low, offset_high); try { if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); if (prot & 2) { SYSCALLS.doMsync(addr, stream, len, flags, offset); } FS.munmap(stream); } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return -e.errno; } } var timers = {}; var _emscripten_get_now; _emscripten_get_now = () => performance.timeOrigin + performance.now(); function __setitimer_js(which, timeout_ms) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(23, 1, which, timeout_ms); if (timers[which]) { clearTimeout(timers[which].id); delete timers[which]; } if (!timeout_ms) return 0; var id = setTimeout(() => { delete timers[which]; callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()), ); }, timeout_ms); timers[which] = { id: id, timeout_ms: timeout_ms }; return 0; } var _abort = () => { abort(""); }; var warnOnce = (text) => { if (!warnOnce.shown) warnOnce.shown = {}; if (!warnOnce.shown[text]) { warnOnce.shown[text] = 1; if (ENVIRONMENT_IS_NODE) text = "warning: " + text; err(text); } }; var _emscripten_check_blocking_allowed = () => {}; var _emscripten_date_now = () => Date.now(); var _emscripten_exit_with_live_runtime = () => { runtimeKeepalivePush(); throw "unwind"; }; function _emscripten_force_exit(status) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(24, 1, status); __emscripten_runtime_keepalive_clear(); _exit(status); } var getHeapMax = () => 4294901760; function _emscripten_get_heap_max() { return getHeapMax(); } var _emscripten_num_logical_cores = () => { if (ENVIRONMENT_IS_NODE) return require("os").cpus().length; return navigator["hardwareConcurrency"]; }; var growMemory = (size) => { var b = wasmMemory.buffer; var pages = (size - b.byteLength + 65535) / 65536; try { wasmMemory.grow(pages); updateMemoryViews(); return 1; } catch (e) {} }; function _emscripten_resize_heap(requestedSize) { requestedSize >>>= 0; var oldSize = GROWABLE_HEAP_U8().length; if (requestedSize <= oldSize) { return false; } var maxHeapSize = getHeapMax(); if (requestedSize > maxHeapSize) { return false; } var alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple); for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); overGrownHeapSize = Math.min( overGrownHeapSize, requestedSize + 100663296, ); var newSize = Math.min( maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536), ); var replacement = growMemory(newSize); if (replacement) { return true; } } return false; } var ENV = {}; var getExecutableName = () => thisProgram || "./this.program"; var getEnvStrings = () => { if (!getEnvStrings.strings) { var lang = ( (typeof navigator == "object" && navigator.languages && navigator.languages[0]) || "C" ).replace("-", "_") + ".UTF-8"; var env = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: lang, _: getExecutableName(), }; for (var x in ENV) { if (ENV[x] === undefined) delete env[x]; else env[x] = ENV[x]; } var strings = []; for (var x in env) { strings.push(`${x}=${env[x]}`); } getEnvStrings.strings = strings; } return getEnvStrings.strings; }; var stringToAscii = (str, buffer) => { for (var i = 0; i < str.length; ++i) { GROWABLE_HEAP_I8()[(buffer++ >>> 0) >>> 0] = str.charCodeAt(i); } GROWABLE_HEAP_I8()[(buffer >>> 0) >>> 0] = 0; }; var _environ_get = function (__environ, environ_buf) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(25, 1, __environ, environ_buf); __environ >>>= 0; environ_buf >>>= 0; var bufSize = 0; getEnvStrings().forEach((string, i) => { var ptr = environ_buf + bufSize; GROWABLE_HEAP_U32()[((__environ + i * 4) >>> 2) >>> 0] = ptr; stringToAscii(string, ptr); bufSize += string.length + 1; }); return 0; }; var _environ_sizes_get = function (penviron_count, penviron_buf_size) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(26, 1, penviron_count, penviron_buf_size); penviron_count >>>= 0; penviron_buf_size >>>= 0; var strings = getEnvStrings(); GROWABLE_HEAP_U32()[(penviron_count >>> 2) >>> 0] = strings.length; var bufSize = 0; strings.forEach((string) => (bufSize += string.length + 1)); GROWABLE_HEAP_U32()[(penviron_buf_size >>> 2) >>> 0] = bufSize; return 0; }; function _fd_close(fd) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(27, 1, fd); try { var stream = SYSCALLS.getStreamFromFD(fd); FS.close(stream); return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } function _fd_fdstat_get(fd, pbuf) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(28, 1, fd, pbuf); pbuf >>>= 0; try { var rightsBase = 0; var rightsInheriting = 0; var flags = 0; { var stream = SYSCALLS.getStreamFromFD(fd); var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4; } GROWABLE_HEAP_I8()[(pbuf >>> 0) >>> 0] = type; GROWABLE_HEAP_I16()[((pbuf + 2) >>> 1) >>> 0] = flags; (tempI64 = [ rightsBase >>> 0, ((tempDouble = rightsBase), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil( (tempDouble - +(~~tempDouble >>> 0)) / 4294967296, ) >>> 0 : 0), ]), (GROWABLE_HEAP_I32()[((pbuf + 8) >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((pbuf + 12) >>> 2) >>> 0] = tempI64[1]); (tempI64 = [ rightsInheriting >>> 0, ((tempDouble = rightsInheriting), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil( (tempDouble - +(~~tempDouble >>> 0)) / 4294967296, ) >>> 0 : 0), ]), (GROWABLE_HEAP_I32()[((pbuf + 16) >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((pbuf + 20) >>> 2) >>> 0] = tempI64[1]); return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } var doReadv = (stream, iov, iovcnt, offset) => { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = GROWABLE_HEAP_U32()[(iov >>> 2) >>> 0]; var len = GROWABLE_HEAP_U32()[((iov + 4) >>> 2) >>> 0]; iov += 8; var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset); if (curr < 0) return -1; ret += curr; if (curr < len) break; if (typeof offset !== "undefined") { offset += curr; } } return ret; }; function _fd_pread(fd, iov, iovcnt, offset_low, offset_high, pnum) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread( 29, 1, fd, iov, iovcnt, offset_low, offset_high, pnum, ); iov >>>= 0; iovcnt >>>= 0; var offset = convertI32PairToI53Checked(offset_low, offset_high); pnum >>>= 0; try { if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); var num = doReadv(stream, iov, iovcnt, offset); GROWABLE_HEAP_U32()[(pnum >>> 2) >>> 0] = num; return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } var doWritev = (stream, iov, iovcnt, offset) => { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = GROWABLE_HEAP_U32()[(iov >>> 2) >>> 0]; var len = GROWABLE_HEAP_U32()[((iov + 4) >>> 2) >>> 0]; iov += 8; var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset); if (curr < 0) return -1; ret += curr; if (typeof offset !== "undefined") { offset += curr; } } return ret; }; function _fd_pwrite(fd, iov, iovcnt, offset_low, offset_high, pnum) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread( 30, 1, fd, iov, iovcnt, offset_low, offset_high, pnum, ); iov >>>= 0; iovcnt >>>= 0; var offset = convertI32PairToI53Checked(offset_low, offset_high); pnum >>>= 0; try { if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); var num = doWritev(stream, iov, iovcnt, offset); GROWABLE_HEAP_U32()[(pnum >>> 2) >>> 0] = num; return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } function _fd_read(fd, iov, iovcnt, pnum) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(31, 1, fd, iov, iovcnt, pnum); iov >>>= 0; iovcnt >>>= 0; pnum >>>= 0; try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doReadv(stream, iov, iovcnt); GROWABLE_HEAP_U32()[(pnum >>> 2) >>> 0] = num; return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread( 32, 1, fd, offset_low, offset_high, whence, newOffset, ); var offset = convertI32PairToI53Checked(offset_low, offset_high); newOffset >>>= 0; try { if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); FS.llseek(stream, offset, whence); (tempI64 = [ stream.position >>> 0, ((tempDouble = stream.position), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil( (tempDouble - +(~~tempDouble >>> 0)) / 4294967296, ) >>> 0 : 0), ]), (GROWABLE_HEAP_I32()[(newOffset >>> 2) >>> 0] = tempI64[0]), (GROWABLE_HEAP_I32()[((newOffset + 4) >>> 2) >>> 0] = tempI64[1]); if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } function _fd_write(fd, iov, iovcnt, pnum) { if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(33, 1, fd, iov, iovcnt, pnum); iov >>>= 0; iovcnt >>>= 0; pnum >>>= 0; try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doWritev(stream, iov, iovcnt); GROWABLE_HEAP_U32()[(pnum >>> 2) >>> 0] = num; return 0; } catch (e) { if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; return e.errno; } } function _llvm_eh_typeid_for(type) { type >>>= 0; return type; } var isLeapYear = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); var arraySum = (array, index) => { var sum = 0; for (var i = 0; i <= index; sum += array[i++]) {} return sum; }; var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var addDays = (date, days) => { var newDate = new Date(date.getTime()); while (days > 0) { var leap = isLeapYear(newDate.getFullYear()); var currentMonth = newDate.getMonth(); var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[ currentMonth ]; if (days > daysInCurrentMonth - newDate.getDate()) { days -= daysInCurrentMonth - newDate.getDate() + 1; newDate.setDate(1); if (currentMonth < 11) { newDate.setMonth(currentMonth + 1); } else { newDate.setMonth(0); newDate.setFullYear(newDate.getFullYear() + 1); } } else { newDate.setDate(newDate.getDate() + days); return newDate; } } return newDate; }; var writeArrayToMemory = (array, buffer) => { GROWABLE_HEAP_I8().set(array, buffer >>> 0); }; function _strftime(s, maxsize, format, tm) { s >>>= 0; maxsize >>>= 0; format >>>= 0; tm >>>= 0; var tm_zone = GROWABLE_HEAP_U32()[((tm + 40) >>> 2) >>> 0]; var date = { tm_sec: GROWABLE_HEAP_I32()[(tm >>> 2) >>> 0], tm_min: GROWABLE_HEAP_I32()[((tm + 4) >>> 2) >>> 0], tm_hour: GROWABLE_HEAP_I32()[((tm + 8) >>> 2) >>> 0], tm_mday: GROWABLE_HEAP_I32()[((tm + 12) >>> 2) >>> 0], tm_mon: GROWABLE_HEAP_I32()[((tm + 16) >>> 2) >>> 0], tm_year: GROWABLE_HEAP_I32()[((tm + 20) >>> 2) >>> 0], tm_wday: GROWABLE_HEAP_I32()[((tm + 24) >>> 2) >>> 0], tm_yday: GROWABLE_HEAP_I32()[((tm + 28) >>> 2) >>> 0], tm_isdst: GROWABLE_HEAP_I32()[((tm + 32) >>> 2) >>> 0], tm_gmtoff: GROWABLE_HEAP_I32()[((tm + 36) >>> 2) >>> 0], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "", }; var pattern = UTF8ToString(format); var EXPANSION_RULES_1 = { "%c": "%a %b %d %H:%M:%S %Y", "%D": "%m/%d/%y", "%F": "%Y-%m-%d", "%h": "%b", "%r": "%I:%M:%S %p", "%R": "%H:%M", "%T": "%H:%M:%S", "%x": "%m/%d/%y", "%X": "%H:%M:%S", "%Ec": "%c", "%EC": "%C", "%Ex": "%m/%d/%y", "%EX": "%H:%M:%S", "%Ey": "%y", "%EY": "%Y", "%Od": "%d", "%Oe": "%e", "%OH": "%H", "%OI": "%I", "%Om": "%m", "%OM": "%M", "%OS": "%S", "%Ou": "%u", "%OU": "%U", "%OV": "%V", "%Ow": "%w", "%OW": "%W", "%Oy": "%y", }; for (var rule in EXPANSION_RULES_1) { pattern = pattern.replace( new RegExp(rule, "g"), EXPANSION_RULES_1[rule], ); } var WEEKDAYS = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", ]; var MONTHS = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ]; function leadingSomething(value, digits, character) { var str = typeof value == "number" ? value.toString() : value || ""; while (str.length < digits) { str = character[0] + str; } return str; } function leadingNulls(value, digits) { return leadingSomething(value, digits, "0"); } function compareByDay(date1, date2) { function sgn(value) { return value < 0 ? -1 : value > 0 ? 1 : 0; } var compare; if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { compare = sgn(date1.getDate() - date2.getDate()); } } return compare; } function getFirstWeekStartDate(janFourth) { switch (janFourth.getDay()) { case 0: return new Date(janFourth.getFullYear() - 1, 11, 29); case 1: return janFourth; case 2: return new Date(janFourth.getFullYear(), 0, 3); case 3: return new Date(janFourth.getFullYear(), 0, 2); case 4: return new Date(janFourth.getFullYear(), 0, 1); case 5: return new Date(janFourth.getFullYear() - 1, 11, 31); case 6: return new Date(janFourth.getFullYear() - 1, 11, 30); } } function getWeekBasedYear(date) { var thisDate = addDays( new Date(date.tm_year + 1900, 0, 1), date.tm_yday, ); var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { return thisDate.getFullYear() + 1; } return thisDate.getFullYear(); } return thisDate.getFullYear() - 1; } var EXPANSION_RULES_2 = { "%a": (date) => WEEKDAYS[date.tm_wday].substring(0, 3), "%A": (date) => WEEKDAYS[date.tm_wday], "%b": (date) => MONTHS[date.tm_mon].substring(0, 3), "%B": (date) => MONTHS[date.tm_mon], "%C": (date) => { var year = date.tm_year + 1900; return leadingNulls((year / 100) | 0, 2); }, "%d": (date) => leadingNulls(date.tm_mday, 2), "%e": (date) => leadingSomething(date.tm_mday, 2, " "), "%g": (date) => getWeekBasedYear(date).toString().substring(2), "%G": (date) => getWeekBasedYear(date), "%H": (date) => leadingNulls(date.tm_hour, 2), "%I": (date) => { var twelveHour = date.tm_hour; if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12; return leadingNulls(twelveHour, 2); }, "%j": (date) => leadingNulls( date.tm_mday + arraySum( isLeapYear(date.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date.tm_mon - 1, ), 3, ), "%m": (date) => leadingNulls(date.tm_mon + 1, 2), "%M": (date) => leadingNulls(date.tm_min, 2), "%n": () => "\n", "%p": (date) => { if (date.tm_hour >= 0 && date.tm_hour < 12) { return "AM"; } return "PM"; }, "%S": (date) => leadingNulls(date.tm_sec, 2), "%t": () => "\t", "%u": (date) => date.tm_wday || 7, "%U": (date) => { var days = date.tm_yday + 7 - date.tm_wday; return leadingNulls(Math.floor(days / 7), 2); }, "%V": (date) => { var val = Math.floor( (date.tm_yday + 7 - ((date.tm_wday + 6) % 7)) / 7, ); if ((date.tm_wday + 371 - date.tm_yday - 2) % 7 <= 2) { val++; } if (!val) { val = 52; var dec31 = (date.tm_wday + 7 - date.tm_yday - 1) % 7; if ( dec31 == 4 || (dec31 == 5 && isLeapYear((date.tm_year % 400) - 1)) ) { val++; } } else if (val == 53) { var jan1 = (date.tm_wday + 371 - date.tm_yday) % 7; if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date.tm_year))) val = 1; } return leadingNulls(val, 2); }, "%w": (date) => date.tm_wday, "%W": (date) => { var days = date.tm_yday + 7 - ((date.tm_wday + 6) % 7); return leadingNulls(Math.floor(days / 7), 2); }, "%y": (date) => (date.tm_year + 1900).toString().substring(2), "%Y": (date) => date.tm_year + 1900, "%z": (date) => { var off = date.tm_gmtoff; var ahead = off >= 0; off = Math.abs(off) / 60; off = (off / 60) * 100 + (off % 60); return (ahead ? "+" : "-") + String("0000" + off).slice(-4); }, "%Z": (date) => date.tm_zone, "%%": () => "%", }; pattern = pattern.replace(/%%/g, "\0\0"); for (var rule in EXPANSION_RULES_2) { if (pattern.includes(rule)) { pattern = pattern.replace( new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date), ); } } pattern = pattern.replace(/\0\0/g, "%"); var bytes = intArrayFromString(pattern, false); if (bytes.length > maxsize) { return 0; } writeArrayToMemory(bytes, s); return bytes.length - 1; } function _strftime_l(s, maxsize, format, tm, loc) { s >>>= 0; maxsize >>>= 0; format >>>= 0; tm >>>= 0; loc >>>= 0; return _strftime(s, maxsize, format, tm); } PThread.init(); var FSNode = function (parent, name, mode, rdev) { if (!parent) { parent = this; } this.parent = parent; this.mount = parent.mount; this.mounted = null; this.id = FS.nextInode++; this.name = name; this.mode = mode; this.node_ops = {}; this.stream_ops = {}; this.rdev = rdev; }; var readMode = 292 | 73; var writeMode = 146; Object.defineProperties(FSNode.prototype, { read: { get: function () { return (this.mode & readMode) === readMode; }, set: function (val) { val ? (this.mode |= readMode) : (this.mode &= ~readMode); }, }, write: { get: function () { return (this.mode & writeMode) === writeMode; }, set: function (val) { val ? (this.mode |= writeMode) : (this.mode &= ~writeMode); }, }, isFolder: { get: function () { return FS.isDir(this.mode); }, }, isDevice: { get: function () { return FS.isChrdev(this.mode); }, }, }); FS.FSNode = FSNode; FS.createPreloadedFile = FS_createPreloadedFile; FS.staticInit(); Module["FS_createPath"] = FS.createPath; Module["FS_createDataFile"] = FS.createDataFile; Module["FS_createPreloadedFile"] = FS.createPreloadedFile; Module["FS_unlink"] = FS.unlink; Module["FS_createLazyFile"] = FS.createLazyFile; Module["FS_createDevice"] = FS.createDevice; embind_init_charCodes(); BindingError = Module["BindingError"] = class BindingError extends Error { constructor(message) { super(message); this.name = "BindingError"; } }; InternalError = Module["InternalError"] = class InternalError extends ( Error ) { constructor(message) { super(message); this.name = "InternalError"; } }; init_ClassHandle(); init_embind(); init_RegisteredPointer(); UnboundTypeError = Module["UnboundTypeError"] = extendError( Error, "UnboundTypeError", ); handleAllocatorInit(); init_emval(); var proxiedFunctionTable = [ _proc_exit, exitOnMainThread, pthreadCreateProxied, ___syscall_chmod, ___syscall_faccessat, ___syscall_fadvise64, ___syscall_fchmod, ___syscall_fcntl64, ___syscall_fstat64, ___syscall_getcwd, ___syscall_getdents64, ___syscall_ioctl, ___syscall_lstat64, ___syscall_mkdirat, ___syscall_newfstatat, ___syscall_openat, ___syscall_readlinkat, ___syscall_renameat, ___syscall_stat64, ___syscall_unlinkat, __emscripten_runtime_keepalive_clear, __mmap_js, __munmap_js, __setitimer_js, _emscripten_force_exit, _environ_get, _environ_sizes_get, _fd_close, _fd_fdstat_get, _fd_pread, _fd_pwrite, _fd_read, _fd_seek, _fd_write, ]; var wasmImports = { Qb: __asyncjs__fetch_asset, Lc: ___call_sighandler, r: ___cxa_begin_catch, D: ___cxa_end_catch, b: ___cxa_find_matching_catch_2, l: ___cxa_find_matching_catch_3, Na: ___cxa_find_matching_catch_4, nb: ___cxa_get_exception_ptr, Ua: ___cxa_rethrow, Bc: ___cxa_rethrow_primary_exception, y: ___cxa_throw, Cc: ___cxa_uncaught_exceptions, Rc: ___emscripten_init_main_thread_js, bb: ___emscripten_thread_cleanup, Nc: ___pthread_create_js, f: ___resumeException, gb: ___syscall_chmod, $c: ___syscall_faccessat, _b: ___syscall_fadvise64, Xc: ___syscall_fchmod, hb: ___syscall_fcntl64, Wc: ___syscall_fstat64, Sc: ___syscall_getcwd, Kc: ___syscall_getdents64, cd: ___syscall_ioctl, Tc: ___syscall_lstat64, Pc: ___syscall_mkdirat, Uc: ___syscall_newfstatat, eb: ___syscall_openat, Jc: ___syscall_readlinkat, Ic: ___syscall_renameat, Vc: ___syscall_stat64, Ec: ___syscall_unlinkat, cc: __embind_register_bigint, gd: __embind_register_bool, H: __embind_register_class, da: __embind_register_class_class_function, wa: __embind_register_class_class_property, N: __embind_register_class_constructor, z: __embind_register_class_function, x: __embind_register_class_property, fd: __embind_register_emval, sb: __embind_register_enum, Ea: __embind_register_enum_value, jb: __embind_register_float, ld: __embind_register_function, oa: __embind_register_integer, T: __embind_register_memory_view, qa: __embind_register_smart_ptr, ib: __embind_register_std_string, Wa: __embind_register_std_wstring, hd: __embind_register_void, _c: __emscripten_get_now_is_monotonic, Fc: __emscripten_notify_mailbox_postmessage, Oc: __emscripten_receive_on_main_thread_js, Mc: __emscripten_runtime_keepalive_clear, Qc: __emscripten_thread_mailbox_await, Zc: __emscripten_thread_set_strongref, ra: __emval_as, lc: __emval_as_int64, kc: __emval_as_uint64, Ha: __emval_call, la: __emval_call_method, yd: __emval_decref, kd: __emval_equals, od: __emval_get_global, ka: __emval_get_method_caller, Ad: __emval_get_property, $a: __emval_incref, pd: __emval_instanceof, Ub: __emval_new_array, Rb: __emval_new_cstring, Tb: __emval_new_object, Vb: __emval_run_destructors, Sb: __emval_set_property, F: __emval_take_value, qd: __emval_typeof, $b: __mmap_js, ac: __munmap_js, ab: __setitimer_js, fa: _abort, Pb: addToLoadedFiles, rd: downloadJS, cb: _emscripten_check_blocking_allowed, fb: _emscripten_date_now, Yc: _emscripten_exit_with_live_runtime, tb: _emscripten_force_exit, Gc: _emscripten_get_heap_max, ba: _emscripten_get_now, Hc: _emscripten_num_logical_cores, Dc: _emscripten_resize_heap, dd: _environ_get, ed: _environ_sizes_get, xa: _exit, Ia: _fd_close, db: _fd_fdstat_get, Zb: _fd_pread, Yb: _fd_pwrite, bd: _fd_read, bc: _fd_seek, Va: _fd_write, ub: invoke_dddd, jd: invoke_ddiiiii, s: invoke_di, P: invoke_did, nd: invoke_didii, pa: invoke_dif, Ta: invoke_dii, sa: invoke_diii, mc: invoke_dj, Aa: invoke_fi, Kb: invoke_fid, Gb: invoke_fif, mb: invoke_fii, Sa: invoke_fiii, xd: invoke_fiiid, k: invoke_i, Ab: invoke_idddii, Bb: invoke_idddiii, La: invoke_iddii, Ma: invoke_iddiii, zb: invoke_idi, Fa: invoke_idii, ob: invoke_idiiiiii, Ja: invoke_idiiiiiii, Eb: invoke_ifii, c: invoke_ii, Q: invoke_iid, J: invoke_iidd, _a: invoke_iiddddddiiii, xb: invoke_iidi, na: invoke_iidii, aa: invoke_iidiii, vd: invoke_iidiiii, Za: invoke_iidiiiii, M: invoke_iif, ta: invoke_iiffi, id: invoke_iifi, e: invoke_iii, q: invoke_iiid, sd: invoke_iiidd, ma: invoke_iiidddii, td: invoke_iiiddi, zd: invoke_iiiddii, ca: invoke_iiidi, w: invoke_iiidii, vb: invoke_iiidiiidiiiidiif, wb: invoke_iiidiiiii, ya: invoke_iiiff, Ra: invoke_iiifi, h: invoke_iiii, R: invoke_iiiid, I: invoke_iiiiddd, wd: invoke_iiiidii, ua: invoke_iiiidiii, md: invoke_iiiidiiii, yb: invoke_iiiidiiiiii, Hb: invoke_iiiifffffiiff, m: invoke_iiiii, L: invoke_iiiiid, Ca: invoke_iiiiidiiii, o: invoke_iiiiii, Pa: invoke_iiiiiid, B: invoke_iiiiiii, rb: invoke_iiiiiiidddi, C: invoke_iiiiiiii, ud: invoke_iiiiiiiidi, A: invoke_iiiiiiiii, va: invoke_iiiiiiiiii, kb: invoke_iiiiiiiiiii, Da: invoke_iiiiiiiiiiii, za: invoke_iiiiiiiiiiiii, Oa: invoke_iiiiiiiiiiiiii, Cb: invoke_iiiiiiiiiiiiiiiiiiii, Xb: invoke_iiiiij, dc: invoke_iiiij, ec: invoke_iiiijii, gc: invoke_iiiijjii, sc: invoke_iiijj, rc: invoke_iiijji, jc: invoke_iij, zc: invoke_j, wc: invoke_ji, pc: invoke_jii, yc: invoke_jiii, Wb: invoke_jiiii, xc: invoke_jiij, p: invoke_v, Z: invoke_vd, pb: invoke_vdiii, Fb: invoke_vfiiii, j: invoke_vi, _: invoke_vid, Mb: invoke_vidddi, Jb: invoke_viddi, Qa: invoke_vidi, ea: invoke_vidii, Ka: invoke_vidiii, qb: invoke_vidiiii, U: invoke_vif, V: invoke_vifii, d: invoke_vii, W: invoke_viid, Lb: invoke_viiddddi, Nb: invoke_viiddi, ja: invoke_viidi, Xa: invoke_viidii, t: invoke_viif, g: invoke_viii, Y: invoke_viiid, Ob: invoke_viiiddddi, O: invoke_viiidi, ha: invoke_viiidii, Ba: invoke_viiidiiiii, Db: invoke_viiif, i: invoke_viiii, E: invoke_viiiid, ia: invoke_viiiidi, Ya: invoke_viiiidiiiiii, n: invoke_viiiii, S: invoke_viiiiid, X: invoke_viiiiidi, v: invoke_viiiiii, G: invoke_viiiiiii, Ib: invoke_viiiiiiid, K: invoke_viiiiiiii, $: invoke_viiiiiiiii, ga: invoke_viiiiiiiiii, lb: invoke_viiiiiiiiiiiii, Ga: invoke_viiiiiiiiiiiiiii, ic: invoke_viiiijii, fc: invoke_viiijii, hc: invoke_viiijjii, vc: invoke_viij, nc: invoke_viiji, qc: invoke_vij, uc: invoke_viji, tc: invoke_vijii, oc: invoke_vijji, u: _llvm_eh_typeid_for, a: wasmMemory || Module["wasmMemory"], ad: _proc_exit, Ac: _strftime_l, }; var wasmExports = createWasm(); var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["Bd"])(); var _pthread_self = (Module["_pthread_self"] = () => (_pthread_self = Module["_pthread_self"] = wasmExports["Cd"])()); var ___cxa_free_exception = (a0) => (___cxa_free_exception = wasmExports["__cxa_free_exception"])(a0); var _free = (a0) => (_free = wasmExports["Ed"])(a0); var _malloc = (a0) => (_malloc = wasmExports["Fd"])(a0); var ___errno_location = () => (___errno_location = wasmExports["Gd"])(); var __emscripten_tls_init = (Module["__emscripten_tls_init"] = () => (__emscripten_tls_init = Module["__emscripten_tls_init"] = wasmExports["Hd"])()); var _emscripten_builtin_memalign = (a0, a1) => (_emscripten_builtin_memalign = wasmExports["Id"])(a0, a1); var ___getTypeName = (a0) => (___getTypeName = wasmExports["Jd"])(a0); var __embind_initialize_bindings = (Module["__embind_initialize_bindings"] = () => (__embind_initialize_bindings = Module["__embind_initialize_bindings"] = wasmExports["Kd"])()); var __emscripten_thread_init = (Module["__emscripten_thread_init"] = ( a0, a1, a2, a3, a4, a5, ) => (__emscripten_thread_init = Module["__emscripten_thread_init"] = wasmExports["Ld"])(a0, a1, a2, a3, a4, a5)); var __emscripten_thread_crashed = (Module["__emscripten_thread_crashed"] = () => (__emscripten_thread_crashed = Module["__emscripten_thread_crashed"] = wasmExports["Md"])()); var _emscripten_main_thread_process_queued_calls = () => (_emscripten_main_thread_process_queued_calls = wasmExports["emscripten_main_thread_process_queued_calls"])(); var _emscripten_main_runtime_thread_id = () => (_emscripten_main_runtime_thread_id = wasmExports["emscripten_main_runtime_thread_id"])(); var __emscripten_run_on_main_thread_js = (a0, a1, a2, a3) => (__emscripten_run_on_main_thread_js = wasmExports["Nd"])(a0, a1, a2, a3); var __emscripten_thread_free_data = (a0) => (__emscripten_thread_free_data = wasmExports["Od"])(a0); var __emscripten_thread_exit = (Module["__emscripten_thread_exit"] = (a0) => (__emscripten_thread_exit = Module["__emscripten_thread_exit"] = wasmExports["Pd"])(a0)); var __emscripten_timeout = (a0, a1) => (__emscripten_timeout = wasmExports["Qd"])(a0, a1); var __emscripten_check_mailbox = (Module["__emscripten_check_mailbox"] = () => (__emscripten_check_mailbox = Module["__emscripten_check_mailbox"] = wasmExports["Rd"])()); var _setThrew = (a0, a1) => (_setThrew = wasmExports["Sd"])(a0, a1); var setTempRet0 = (a0) => (setTempRet0 = wasmExports["Td"])(a0); var _emscripten_stack_set_limits = (a0, a1) => (_emscripten_stack_set_limits = wasmExports["Ud"])(a0, a1); var stackSave = () => (stackSave = wasmExports["Vd"])(); var stackRestore = (a0) => (stackRestore = wasmExports["Wd"])(a0); var stackAlloc = (a0) => (stackAlloc = wasmExports["Xd"])(a0); var ___cxa_decrement_exception_refcount = (a0) => (___cxa_decrement_exception_refcount = wasmExports["Yd"])(a0); var ___cxa_increment_exception_refcount = (a0) => (___cxa_increment_exception_refcount = wasmExports["Zd"])(a0); var ___cxa_can_catch = (a0, a1, a2) => (___cxa_can_catch = wasmExports["_d"])(a0, a1, a2); var ___cxa_is_pointer_type = (a0) => (___cxa_is_pointer_type = wasmExports["$d"])(a0); var dynCall_iii = (Module["dynCall_iii"] = (a0, a1, a2) => (dynCall_iii = Module["dynCall_iii"] = wasmExports["ae"])(a0, a1, a2)); var dynCall_iiii = (Module["dynCall_iiii"] = (a0, a1, a2, a3) => (dynCall_iiii = Module["dynCall_iiii"] = wasmExports["be"])( a0, a1, a2, a3, )); var dynCall_vi = (Module["dynCall_vi"] = (a0, a1) => (dynCall_vi = Module["dynCall_vi"] = wasmExports["ce"])(a0, a1)); var dynCall_ii = (Module["dynCall_ii"] = (a0, a1) => (dynCall_ii = Module["dynCall_ii"] = wasmExports["de"])(a0, a1)); var dynCall_iiiiii = (Module["dynCall_iiiiii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_iiiiii = Module["dynCall_iiiiii"] = wasmExports["ee"])( a0, a1, a2, a3, a4, a5, )); var dynCall_vii = (Module["dynCall_vii"] = (a0, a1, a2) => (dynCall_vii = Module["dynCall_vii"] = wasmExports["fe"])(a0, a1, a2)); var dynCall_i = (Module["dynCall_i"] = (a0) => (dynCall_i = Module["dynCall_i"] = wasmExports["ge"])(a0)); var dynCall_viiiii = (Module["dynCall_viiiii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_viiiii = Module["dynCall_viiiii"] = wasmExports["he"])( a0, a1, a2, a3, a4, a5, )); var dynCall_v = (Module["dynCall_v"] = (a0) => (dynCall_v = Module["dynCall_v"] = wasmExports["ie"])(a0)); var dynCall_viii = (Module["dynCall_viii"] = (a0, a1, a2, a3) => (dynCall_viii = Module["dynCall_viii"] = wasmExports["je"])( a0, a1, a2, a3, )); var dynCall_vid = (Module["dynCall_vid"] = (a0, a1, a2) => (dynCall_vid = Module["dynCall_vid"] = wasmExports["ke"])(a0, a1, a2)); var dynCall_di = (Module["dynCall_di"] = (a0, a1) => (dynCall_di = Module["dynCall_di"] = wasmExports["le"])(a0, a1)); var dynCall_iiiii = (Module["dynCall_iiiii"] = (a0, a1, a2, a3, a4) => (dynCall_iiiii = Module["dynCall_iiiii"] = wasmExports["me"])( a0, a1, a2, a3, a4, )); var dynCall_viiii = (Module["dynCall_viiii"] = (a0, a1, a2, a3, a4) => (dynCall_viiii = Module["dynCall_viiii"] = wasmExports["ne"])( a0, a1, a2, a3, a4, )); var dynCall_viid = (Module["dynCall_viid"] = (a0, a1, a2, a3) => (dynCall_viid = Module["dynCall_viid"] = wasmExports["oe"])( a0, a1, a2, a3, )); var dynCall_dii = (Module["dynCall_dii"] = (a0, a1, a2) => (dynCall_dii = Module["dynCall_dii"] = wasmExports["pe"])(a0, a1, a2)); var dynCall_viiid = (Module["dynCall_viiid"] = (a0, a1, a2, a3, a4) => (dynCall_viiid = Module["dynCall_viiid"] = wasmExports["qe"])( a0, a1, a2, a3, a4, )); var dynCall_iiiid = (Module["dynCall_iiiid"] = (a0, a1, a2, a3, a4) => (dynCall_iiiid = Module["dynCall_iiiid"] = wasmExports["re"])( a0, a1, a2, a3, a4, )); var dynCall_iiiiiiii = (Module["dynCall_iiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = wasmExports["se"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_viiiiii = (Module["dynCall_viiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_viiiiii = Module["dynCall_viiiiii"] = wasmExports["te"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_iiiiiii = (Module["dynCall_iiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_iiiiiii = Module["dynCall_iiiiiii"] = wasmExports["ue"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_diii = (Module["dynCall_diii"] = (a0, a1, a2, a3) => (dynCall_diii = Module["dynCall_diii"] = wasmExports["ve"])( a0, a1, a2, a3, )); var dynCall_j = (Module["dynCall_j"] = (a0) => (dynCall_j = Module["dynCall_j"] = wasmExports["we"])(a0)); var dynCall_iiid = (Module["dynCall_iiid"] = (a0, a1, a2, a3) => (dynCall_iiid = Module["dynCall_iiid"] = wasmExports["xe"])( a0, a1, a2, a3, )); var dynCall_iiiiid = (Module["dynCall_iiiiid"] = (a0, a1, a2, a3, a4, a5) => (dynCall_iiiiid = Module["dynCall_iiiiid"] = wasmExports["ye"])( a0, a1, a2, a3, a4, a5, )); var dynCall_vd = (Module["dynCall_vd"] = (a0, a1) => (dynCall_vd = Module["dynCall_vd"] = wasmExports["ze"])(a0, a1)); var dynCall_iiiiiiiiiiii = (Module["dynCall_iiiiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ) => (dynCall_iiiiiiiiiiii = Module["dynCall_iiiiiiiiiiii"] = wasmExports["Ae"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)); var dynCall_iid = (Module["dynCall_iid"] = (a0, a1, a2) => (dynCall_iid = Module["dynCall_iid"] = wasmExports["Be"])(a0, a1, a2)); var dynCall_viidi = (Module["dynCall_viidi"] = (a0, a1, a2, a3, a4) => (dynCall_viidi = Module["dynCall_viidi"] = wasmExports["Ce"])( a0, a1, a2, a3, a4, )); var dynCall_iidiii = (Module["dynCall_iidiii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_iidiii = Module["dynCall_iidiii"] = wasmExports["De"])( a0, a1, a2, a3, a4, a5, )); var dynCall_iiiiiiiii = (Module["dynCall_iiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = wasmExports["Ee"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_iiiiiiiiii = (Module["dynCall_iiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, ) => (dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = wasmExports["Fe"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, )); var dynCall_iiidi = (Module["dynCall_iiidi"] = (a0, a1, a2, a3, a4) => (dynCall_iiidi = Module["dynCall_iiidi"] = wasmExports["Ge"])( a0, a1, a2, a3, a4, )); var dynCall_fiii = (Module["dynCall_fiii"] = (a0, a1, a2, a3) => (dynCall_fiii = Module["dynCall_fiii"] = wasmExports["He"])( a0, a1, a2, a3, )); var dynCall_iiifi = (Module["dynCall_iiifi"] = (a0, a1, a2, a3, a4) => (dynCall_iiifi = Module["dynCall_iiifi"] = wasmExports["Ie"])( a0, a1, a2, a3, a4, )); var dynCall_viif = (Module["dynCall_viif"] = (a0, a1, a2, a3) => (dynCall_viif = Module["dynCall_viif"] = wasmExports["Je"])( a0, a1, a2, a3, )); var dynCall_iiffi = (Module["dynCall_iiffi"] = (a0, a1, a2, a3, a4) => (dynCall_iiffi = Module["dynCall_iiffi"] = wasmExports["Ke"])( a0, a1, a2, a3, a4, )); var dynCall_fif = (Module["dynCall_fif"] = (a0, a1, a2) => (dynCall_fif = Module["dynCall_fif"] = wasmExports["Le"])(a0, a1, a2)); var dynCall_iif = (Module["dynCall_iif"] = (a0, a1, a2) => (dynCall_iif = Module["dynCall_iif"] = wasmExports["Me"])(a0, a1, a2)); var dynCall_dif = (Module["dynCall_dif"] = (a0, a1, a2) => (dynCall_dif = Module["dynCall_dif"] = wasmExports["Ne"])(a0, a1, a2)); var dynCall_viiiiiii = (Module["dynCall_viiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_viiiiiii = Module["dynCall_viiiiiii"] = wasmExports["Oe"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_viiiiiiii = (Module["dynCall_viiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = wasmExports["Pe"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_iidii = (Module["dynCall_iidii"] = (a0, a1, a2, a3, a4) => (dynCall_iidii = Module["dynCall_iidii"] = wasmExports["Qe"])( a0, a1, a2, a3, a4, )); var dynCall_viiidiiiii = (Module["dynCall_viiidiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, ) => (dynCall_viiidiiiii = Module["dynCall_viiidiiiii"] = wasmExports["Re"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, )); var dynCall_viiiidi = (Module["dynCall_viiiidi"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_viiiidi = Module["dynCall_viiiidi"] = wasmExports["Se"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_viiidii = (Module["dynCall_viiidii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_viiidii = Module["dynCall_viiidii"] = wasmExports["Te"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_viiiid = (Module["dynCall_viiiid"] = (a0, a1, a2, a3, a4, a5) => (dynCall_viiiid = Module["dynCall_viiiid"] = wasmExports["Ue"])( a0, a1, a2, a3, a4, a5, )); var dynCall_iiiidiii = (Module["dynCall_iiiidiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_iiiidiii = Module["dynCall_iiiidiii"] = wasmExports["Ve"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_iiiiidiiii = (Module["dynCall_iiiiidiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, ) => (dynCall_iiiiidiiii = Module["dynCall_iiiiidiiii"] = wasmExports["We"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, )); var dynCall_viiiiid = (Module["dynCall_viiiiid"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_viiiiid = Module["dynCall_viiiiid"] = wasmExports["Xe"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_viiiiidi = (Module["dynCall_viiiiidi"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_viiiiidi = Module["dynCall_viiiiidi"] = wasmExports["Ye"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_viiiddddi = (Module["dynCall_viiiddddi"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_viiiddddi = Module["dynCall_viiiddddi"] = wasmExports["Ze"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_viiddi = (Module["dynCall_viiddi"] = (a0, a1, a2, a3, a4, a5) => (dynCall_viiddi = Module["dynCall_viiddi"] = wasmExports["_e"])( a0, a1, a2, a3, a4, a5, )); var dynCall_vidddi = (Module["dynCall_vidddi"] = (a0, a1, a2, a3, a4, a5) => (dynCall_vidddi = Module["dynCall_vidddi"] = wasmExports["$e"])( a0, a1, a2, a3, a4, a5, )); var dynCall_viiddddi = (Module["dynCall_viiddddi"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_viiddddi = Module["dynCall_viiddddi"] = wasmExports["af"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_fid = (Module["dynCall_fid"] = (a0, a1, a2) => (dynCall_fid = Module["dynCall_fid"] = wasmExports["bf"])(a0, a1, a2)); var dynCall_iiiiiid = (Module["dynCall_iiiiiid"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_iiiiiid = Module["dynCall_iiiiiid"] = wasmExports["cf"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_vif = (Module["dynCall_vif"] = (a0, a1, a2) => (dynCall_vif = Module["dynCall_vif"] = wasmExports["df"])(a0, a1, a2)); var dynCall_viiidi = (Module["dynCall_viiidi"] = (a0, a1, a2, a3, a4, a5) => (dynCall_viiidi = Module["dynCall_viiidi"] = wasmExports["ef"])( a0, a1, a2, a3, a4, a5, )); var dynCall_viddi = (Module["dynCall_viddi"] = (a0, a1, a2, a3, a4) => (dynCall_viddi = Module["dynCall_viddi"] = wasmExports["ff"])( a0, a1, a2, a3, a4, )); var dynCall_viiiiiiid = (Module["dynCall_viiiiiiid"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_viiiiiiid = Module["dynCall_viiiiiiid"] = wasmExports["gf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_jiij = (Module["dynCall_jiij"] = (a0, a1, a2, a3, a4) => (dynCall_jiij = Module["dynCall_jiij"] = wasmExports["hf"])( a0, a1, a2, a3, a4, )); var dynCall_ji = (Module["dynCall_ji"] = (a0, a1) => (dynCall_ji = Module["dynCall_ji"] = wasmExports["jf"])(a0, a1)); var dynCall_iiiifffffiiff = (Module["dynCall_iiiifffffiiff"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, ) => (dynCall_iiiifffffiiff = Module["dynCall_iiiifffffiiff"] = wasmExports["kf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, )); var dynCall_jif = (Module["dynCall_jif"] = (a0, a1, a2) => (dynCall_jif = Module["dynCall_jif"] = wasmExports["lf"])(a0, a1, a2)); var dynCall_vifii = (Module["dynCall_vifii"] = (a0, a1, a2, a3, a4) => (dynCall_vifii = Module["dynCall_vifii"] = wasmExports["mf"])( a0, a1, a2, a3, a4, )); var dynCall_vfiiii = (Module["dynCall_vfiiii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_vfiiii = Module["dynCall_vfiiii"] = wasmExports["nf"])( a0, a1, a2, a3, a4, a5, )); var dynCall_ifii = (Module["dynCall_ifii"] = (a0, a1, a2, a3) => (dynCall_ifii = Module["dynCall_ifii"] = wasmExports["of"])( a0, a1, a2, a3, )); var dynCall_jiiijji = (Module["dynCall_jiiijji"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_jiiijji = Module["dynCall_jiiijji"] = wasmExports["pf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_viiif = (Module["dynCall_viiif"] = (a0, a1, a2, a3, a4) => (dynCall_viiif = Module["dynCall_viiif"] = wasmExports["qf"])( a0, a1, a2, a3, a4, )); var dynCall_iiiiiiiiiiiiiiiiiiii = (Module["dynCall_iiiiiiiiiiiiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, ) => (dynCall_iiiiiiiiiiiiiiiiiiii = Module["dynCall_iiiiiiiiiiiiiiiiiiii"] = wasmExports["rf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, )); var dynCall_viiiiiiiiii = (Module["dynCall_viiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ) => (dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = wasmExports["sf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, )); var dynCall_viiiiiiiii = (Module["dynCall_viiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, ) => (dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = wasmExports["tf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, )); var dynCall_iiiiiiiiiiiii = (Module["dynCall_iiiiiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, ) => (dynCall_iiiiiiiiiiiii = Module["dynCall_iiiiiiiiiiiii"] = wasmExports["uf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, )); var dynCall_ff = (Module["dynCall_ff"] = (a0, a1) => (dynCall_ff = Module["dynCall_ff"] = wasmExports["vf"])(a0, a1)); var dynCall_fff = (Module["dynCall_fff"] = (a0, a1, a2) => (dynCall_fff = Module["dynCall_fff"] = wasmExports["wf"])(a0, a1, a2)); var dynCall_iiijiii = (Module["dynCall_iiijiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_iiijiii = Module["dynCall_iiijiii"] = wasmExports["xf"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_jii = (Module["dynCall_jii"] = (a0, a1, a2) => (dynCall_jii = Module["dynCall_jii"] = wasmExports["yf"])(a0, a1, a2)); var dynCall_iiij = (Module["dynCall_iiij"] = (a0, a1, a2, a3, a4) => (dynCall_iiij = Module["dynCall_iiij"] = wasmExports["zf"])( a0, a1, a2, a3, a4, )); var dynCall_iiiji = (Module["dynCall_iiiji"] = (a0, a1, a2, a3, a4, a5) => (dynCall_iiiji = Module["dynCall_iiiji"] = wasmExports["Af"])( a0, a1, a2, a3, a4, a5, )); var dynCall_iiiiiiiiiiiiii = (Module["dynCall_iiiiiiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, ) => (dynCall_iiiiiiiiiiiiii = Module["dynCall_iiiiiiiiiiiiii"] = wasmExports["Bf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, )); var dynCall_iiddddddiiii = (Module["dynCall_iiddddddiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ) => (dynCall_iiddddddiiii = Module["dynCall_iiddddddiiii"] = wasmExports["Cf"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)); var dynCall_iidiiiii = (Module["dynCall_iidiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_iidiiiii = Module["dynCall_iidiiiii"] = wasmExports["Df"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_iddiii = (Module["dynCall_iddiii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_iddiii = Module["dynCall_iddiii"] = wasmExports["Ef"])( a0, a1, a2, a3, a4, a5, )); var dynCall_iddii = (Module["dynCall_iddii"] = (a0, a1, a2, a3, a4) => (dynCall_iddii = Module["dynCall_iddii"] = wasmExports["Ff"])( a0, a1, a2, a3, a4, )); var dynCall_idddiii = (Module["dynCall_idddiii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_idddiii = Module["dynCall_idddiii"] = wasmExports["Gf"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_idddii = (Module["dynCall_idddii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_idddii = Module["dynCall_idddii"] = wasmExports["Hf"])( a0, a1, a2, a3, a4, a5, )); var dynCall_idii = (Module["dynCall_idii"] = (a0, a1, a2, a3) => (dynCall_idii = Module["dynCall_idii"] = wasmExports["If"])( a0, a1, a2, a3, )); var dynCall_idi = (Module["dynCall_idi"] = (a0, a1, a2) => (dynCall_idi = Module["dynCall_idi"] = wasmExports["Jf"])(a0, a1, a2)); var dynCall_fiiid = (Module["dynCall_fiiid"] = (a0, a1, a2, a3, a4) => (dynCall_fiiid = Module["dynCall_fiiid"] = wasmExports["Kf"])( a0, a1, a2, a3, a4, )); var dynCall_iidi = (Module["dynCall_iidi"] = (a0, a1, a2, a3) => (dynCall_iidi = Module["dynCall_iidi"] = wasmExports["Lf"])( a0, a1, a2, a3, )); var dynCall_iiiidii = (Module["dynCall_iiiidii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_iiiidii = Module["dynCall_iiiidii"] = wasmExports["Mf"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_iiiidiiiiii = (Module["dynCall_iiiidiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ) => (dynCall_iiiidiiiiii = Module["dynCall_iiiidiiiiii"] = wasmExports["Nf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, )); var dynCall_iiidiiiii = (Module["dynCall_iiidiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_iiidiiiii = Module["dynCall_iiidiiiii"] = wasmExports["Of"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_iiidiiidiiiidiif = (Module["dynCall_iiidiiidiiiidiif"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, ) => (dynCall_iiidiiidiiiidiif = Module["dynCall_iiidiiidiiiidiif"] = wasmExports["Pf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, )); var dynCall_dddd = (Module["dynCall_dddd"] = (a0, a1, a2, a3) => (dynCall_dddd = Module["dynCall_dddd"] = wasmExports["Qf"])( a0, a1, a2, a3, )); var dynCall_iidiiii = (Module["dynCall_iidiiii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_iidiiii = Module["dynCall_iidiiii"] = wasmExports["Rf"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_iiiddii = (Module["dynCall_iiiddii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_iiiddii = Module["dynCall_iiiddii"] = wasmExports["Sf"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_iiiiiiiidi = (Module["dynCall_iiiiiiiidi"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, ) => (dynCall_iiiiiiiidi = Module["dynCall_iiiiiiiidi"] = wasmExports["Tf"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, )); var dynCall_iiiddi = (Module["dynCall_iiiddi"] = (a0, a1, a2, a3, a4, a5) => (dynCall_iiiddi = Module["dynCall_iiiddi"] = wasmExports["Uf"])( a0, a1, a2, a3, a4, a5, )); var dynCall_iiidd = (Module["dynCall_iiidd"] = (a0, a1, a2, a3, a4) => (dynCall_iiidd = Module["dynCall_iiidd"] = wasmExports["Vf"])( a0, a1, a2, a3, a4, )); var dynCall_iiiif = (Module["dynCall_iiiif"] = (a0, a1, a2, a3, a4) => (dynCall_iiiif = Module["dynCall_iiiif"] = wasmExports["Wf"])( a0, a1, a2, a3, a4, )); var dynCall_fi = (Module["dynCall_fi"] = (a0, a1) => (dynCall_fi = Module["dynCall_fi"] = wasmExports["Xf"])(a0, a1)); var dynCall_did = (Module["dynCall_did"] = (a0, a1, a2) => (dynCall_did = Module["dynCall_did"] = wasmExports["Yf"])(a0, a1, a2)); var dynCall_iiidii = (Module["dynCall_iiidii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_iiidii = Module["dynCall_iiidii"] = wasmExports["Zf"])( a0, a1, a2, a3, a4, a5, )); var dynCall_iiidddii = (Module["dynCall_iiidddii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_iiidddii = Module["dynCall_iiidddii"] = wasmExports["_f"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_didii = (Module["dynCall_didii"] = (a0, a1, a2, a3, a4) => (dynCall_didii = Module["dynCall_didii"] = wasmExports["$f"])( a0, a1, a2, a3, a4, )); var dynCall_iiiiiiidddi = (Module["dynCall_iiiiiiidddi"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ) => (dynCall_iiiiiiidddi = Module["dynCall_iiiiiiidddi"] = wasmExports["ag"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, )); var dynCall_iidd = (Module["dynCall_iidd"] = (a0, a1, a2, a3) => (dynCall_iidd = Module["dynCall_iidd"] = wasmExports["bg"])( a0, a1, a2, a3, )); var dynCall_viij = (Module["dynCall_viij"] = (a0, a1, a2, a3, a4) => (dynCall_viij = Module["dynCall_viij"] = wasmExports["cg"])( a0, a1, a2, a3, a4, )); var dynCall_viji = (Module["dynCall_viji"] = (a0, a1, a2, a3, a4) => (dynCall_viji = Module["dynCall_viji"] = wasmExports["dg"])( a0, a1, a2, a3, a4, )); var dynCall_vijii = (Module["dynCall_vijii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_vijii = Module["dynCall_vijii"] = wasmExports["eg"])( a0, a1, a2, a3, a4, a5, )); var dynCall_iiijj = (Module["dynCall_iiijj"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_iiijj = Module["dynCall_iiijj"] = wasmExports["fg"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_iiijji = (Module["dynCall_iiijji"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_iiijji = Module["dynCall_iiijji"] = wasmExports["gg"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_vij = (Module["dynCall_vij"] = (a0, a1, a2, a3) => (dynCall_vij = Module["dynCall_vij"] = wasmExports["hg"])( a0, a1, a2, a3, )); var dynCall_vijji = (Module["dynCall_vijji"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_vijji = Module["dynCall_vijji"] = wasmExports["ig"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_viiji = (Module["dynCall_viiji"] = (a0, a1, a2, a3, a4, a5) => (dynCall_viiji = Module["dynCall_viiji"] = wasmExports["jg"])( a0, a1, a2, a3, a4, a5, )); var dynCall_jiii = (Module["dynCall_jiii"] = (a0, a1, a2, a3) => (dynCall_jiii = Module["dynCall_jiii"] = wasmExports["kg"])( a0, a1, a2, a3, )); var dynCall_iiiiddd = (Module["dynCall_iiiiddd"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_iiiiddd = Module["dynCall_iiiiddd"] = wasmExports["lg"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_vidii = (Module["dynCall_vidii"] = (a0, a1, a2, a3, a4) => (dynCall_vidii = Module["dynCall_vidii"] = wasmExports["mg"])( a0, a1, a2, a3, a4, )); var dynCall_vidiiii = (Module["dynCall_vidiiii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_vidiiii = Module["dynCall_vidiiii"] = wasmExports["ng"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_vidiii = (Module["dynCall_vidiii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_vidiii = Module["dynCall_vidiii"] = wasmExports["og"])( a0, a1, a2, a3, a4, a5, )); var dynCall_dj = (Module["dynCall_dj"] = (a0, a1, a2) => (dynCall_dj = Module["dynCall_dj"] = wasmExports["pg"])(a0, a1, a2)); var dynCall_vdiii = (Module["dynCall_vdiii"] = (a0, a1, a2, a3, a4) => (dynCall_vdiii = Module["dynCall_vdiii"] = wasmExports["qg"])( a0, a1, a2, a3, a4, )); var dynCall_idiiiiii = (Module["dynCall_idiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_idiiiiii = Module["dynCall_idiiiiii"] = wasmExports["rg"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_idiiiiiii = (Module["dynCall_idiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_idiiiiiii = Module["dynCall_idiiiiiii"] = wasmExports["sg"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_iiiidiiii = (Module["dynCall_iiiidiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_iiiidiiii = Module["dynCall_iiiidiiii"] = wasmExports["tg"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_viiiidiiiiii = (Module["dynCall_viiiidiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ) => (dynCall_viiiidiiiiii = Module["dynCall_viiiidiiiiii"] = wasmExports["ug"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)); var dynCall_iiiff = (Module["dynCall_iiiff"] = (a0, a1, a2, a3, a4) => (dynCall_iiiff = Module["dynCall_iiiff"] = wasmExports["vg"])( a0, a1, a2, a3, a4, )); var dynCall_viiiiiiiiiii = (Module["dynCall_viiiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ) => (dynCall_viiiiiiiiiii = Module["dynCall_viiiiiiiiiii"] = wasmExports["wg"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)); var dynCall_iij = (Module["dynCall_iij"] = (a0, a1, a2, a3) => (dynCall_iij = Module["dynCall_iij"] = wasmExports["xg"])( a0, a1, a2, a3, )); var dynCall_vidi = (Module["dynCall_vidi"] = (a0, a1, a2, a3) => (dynCall_vidi = Module["dynCall_vidi"] = wasmExports["yg"])( a0, a1, a2, a3, )); var dynCall_fii = (Module["dynCall_fii"] = (a0, a1, a2) => (dynCall_fii = Module["dynCall_fii"] = wasmExports["zg"])(a0, a1, a2)); var dynCall_viiiiiiiiiiiii = (Module["dynCall_viiiiiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, ) => (dynCall_viiiiiiiiiiiii = Module["dynCall_viiiiiiiiiiiii"] = wasmExports["Ag"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, )); var dynCall_iiiiiiiiiii = (Module["dynCall_iiiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ) => (dynCall_iiiiiiiiiii = Module["dynCall_iiiiiiiiiii"] = wasmExports["Bg"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, )); var dynCall_viidii = (Module["dynCall_viidii"] = (a0, a1, a2, a3, a4, a5) => (dynCall_viidii = Module["dynCall_viidii"] = wasmExports["Cg"])( a0, a1, a2, a3, a4, a5, )); var dynCall_viiiijii = (Module["dynCall_viiiijii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_viiiijii = Module["dynCall_viiiijii"] = wasmExports["Dg"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_viiijjii = (Module["dynCall_viiijjii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, ) => (dynCall_viiijjii = Module["dynCall_viiijjii"] = wasmExports["Eg"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, )); var dynCall_iiiijjii = (Module["dynCall_iiiijjii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, ) => (dynCall_iiiijjii = Module["dynCall_iiiijjii"] = wasmExports["Fg"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, )); var dynCall_viiijii = (Module["dynCall_viiijii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_viiijii = Module["dynCall_viiijii"] = wasmExports["Gg"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_iiiijii = (Module["dynCall_iiiijii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, ) => (dynCall_iiiijii = Module["dynCall_iiiijii"] = wasmExports["Hg"])( a0, a1, a2, a3, a4, a5, a6, a7, )); var dynCall_ddiiiii = (Module["dynCall_ddiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_ddiiiii = Module["dynCall_ddiiiii"] = wasmExports["Ig"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_iifi = (Module["dynCall_iifi"] = (a0, a1, a2, a3) => (dynCall_iifi = Module["dynCall_iifi"] = wasmExports["Jg"])( a0, a1, a2, a3, )); var dynCall_iiiij = (Module["dynCall_iiiij"] = (a0, a1, a2, a3, a4, a5) => (dynCall_iiiij = Module["dynCall_iiiij"] = wasmExports["Kg"])( a0, a1, a2, a3, a4, a5, )); var dynCall_jiji = (Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["Lg"])( a0, a1, a2, a3, a4, )); var dynCall_iiiiij = (Module["dynCall_iiiiij"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_iiiiij = Module["dynCall_iiiiij"] = wasmExports["Mg"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_viijii = (Module["dynCall_viijii"] = ( a0, a1, a2, a3, a4, a5, a6, ) => (dynCall_viijii = Module["dynCall_viijii"] = wasmExports["Ng"])( a0, a1, a2, a3, a4, a5, a6, )); var dynCall_jiiii = (Module["dynCall_jiiii"] = (a0, a1, a2, a3, a4) => (dynCall_jiiii = Module["dynCall_jiiii"] = wasmExports["Og"])( a0, a1, a2, a3, a4, )); var dynCall_viiiiiiiiiiiiiii = (Module["dynCall_viiiiiiiiiiiiiii"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, ) => (dynCall_viiiiiiiiiiiiiii = Module["dynCall_viiiiiiiiiiiiiii"] = wasmExports["Pg"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, )); var dynCall_iiiiijj = (Module["dynCall_iiiiijj"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, ) => (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = wasmExports["Qg"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, )); var dynCall_iiiiiijj = (Module["dynCall_iiiiiijj"] = ( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, ) => (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = wasmExports["Rg"])( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, )); var _asyncify_start_unwind = (a0) => (_asyncify_start_unwind = wasmExports["Sg"])(a0); var _asyncify_stop_unwind = () => (_asyncify_stop_unwind = wasmExports["Tg"])(); var _asyncify_start_rewind = (a0) => (_asyncify_start_rewind = wasmExports["Ug"])(a0); var _asyncify_stop_rewind = () => (_asyncify_stop_rewind = wasmExports["Vg"])(); var ___start_em_js = (Module["___start_em_js"] = 3895468); var ___stop_em_js = (Module["___stop_em_js"] = 3896792); function invoke_iii(index, a1, a2) { var sp = stackSave(); try { return dynCall_iii(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiii(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_iiii(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vi(index, a1) { var sp = stackSave(); try { dynCall_vi(index, a1); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_ii(index, a1) { var sp = stackSave(); try { return dynCall_ii(index, a1); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { return dynCall_iiiiii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vii(index, a1, a2) { var sp = stackSave(); try { dynCall_vii(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_i(index) { var sp = stackSave(); try { return dynCall_i(index); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_viiiii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiii(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_iiiii(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viii(index, a1, a2, a3) { var sp = stackSave(); try { dynCall_viii(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiii(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_viiii(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_v(index) { var sp = stackSave(); try { dynCall_v(index); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vid(index, a1, a2) { var sp = stackSave(); try { dynCall_vid(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { return dynCall_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { dynCall_viiiiii(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_iiiiiii(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { dynCall_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiidi(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_iiidi(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiidi(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_viiidi(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viid(index, a1, a2, a3) { var sp = stackSave(); try { dynCall_viid(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viidi(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_viidi(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiid(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_iiid(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { var sp = stackSave(); try { return dynCall_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_di(index, a1) { var sp = stackSave(); try { return dynCall_di(index, a1); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iid(index, a1, a2) { var sp = stackSave(); try { return dynCall_iid(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_dii(index, a1, a2) { var sp = stackSave(); try { return dynCall_dii(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiid(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { return dynCall_iiiiid(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ) { var sp = stackSave(); try { return dynCall_iiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vd(index, a1) { var sp = stackSave(); try { dynCall_vd(index, a1); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iif(index, a1, a2) { var sp = stackSave(); try { return dynCall_iif(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iidiii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { return dynCall_iidiii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiid(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_viiid(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiid(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_iiiid(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { var sp = stackSave(); try { return dynCall_iiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_fiii(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_fiii(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiifi(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_iiifi(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiffi(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_iiffi(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viif(index, a1, a2, a3) { var sp = stackSave(); try { dynCall_viif(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_diii(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_diii(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { var sp = stackSave(); try { dynCall_viiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iidii(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_iidii(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_dif(index, a1, a2) { var sp = stackSave(); try { return dynCall_dif(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiid(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_viiiid(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiidi(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { dynCall_viiiidi(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiidiii(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { return dynCall_iiiidiii(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiidi(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { dynCall_viiiiidi(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiidiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { var sp = stackSave(); try { return dynCall_iiiiidiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiidii(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { dynCall_viiidii(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiid(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { dynCall_viiiiid(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiidiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { var sp = stackSave(); try { dynCall_viiidiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vidi(index, a1, a2, a3) { var sp = stackSave(); try { dynCall_vidi(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiddddi(index, a1, a2, a3, a4, a5, a6, a7, a8) { var sp = stackSave(); try { dynCall_viiiddddi(index, a1, a2, a3, a4, a5, a6, a7, a8); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiddi(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_viiddi(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vidddi(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_vidddi(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiddddi(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { dynCall_viiddddi(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_fid(index, a1, a2) { var sp = stackSave(); try { return dynCall_fid(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiid(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_iiiiiid(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vif(index, a1, a2) { var sp = stackSave(); try { dynCall_vif(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viddi(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_viddi(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiiiid(index, a1, a2, a3, a4, a5, a6, a7, a8) { var sp = stackSave(); try { dynCall_viiiiiiid(index, a1, a2, a3, a4, a5, a6, a7, a8); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiifffffiiff( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, ) { var sp = stackSave(); try { return dynCall_iiiifffffiiff( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_fif(index, a1, a2) { var sp = stackSave(); try { return dynCall_fif(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vifii(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_vifii(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vfiiii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_vfiiii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_ifii(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_ifii(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, ) { var sp = stackSave(); try { dynCall_viiiiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ) { var sp = stackSave(); try { dynCall_viiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { var sp = stackSave(); try { dynCall_viiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiif(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_viiif(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_fi(index, a1) { var sp = stackSave(); try { return dynCall_fi(index, a1); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiiiiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, ) { var sp = stackSave(); try { return dynCall_iiiiiiiiiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, ) { var sp = stackSave(); try { return dynCall_iiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, ) { var sp = stackSave(); try { return dynCall_iiiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiddddddiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ) { var sp = stackSave(); try { return dynCall_iiddddddiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iidiiiii(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { return dynCall_iidiiiii(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiddii(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_iiiddii(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iddiii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { return dynCall_iddiii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iddii(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_iddii(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_idddiii(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_idddiii(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_idddii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { return dynCall_idddii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_idii(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_idii(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_idi(index, a1, a2) { var sp = stackSave(); try { return dynCall_idi(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_fiiid(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_fiiid(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiidiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ) { var sp = stackSave(); try { return dynCall_iiiidiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iidi(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_iidi(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiidii(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_iiiidii(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiidiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { var sp = stackSave(); try { return dynCall_iiidiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiidiiidiiiidiif( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, ) { var sp = stackSave(); try { return dynCall_iiidiiidiiiidiif( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_dddd(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_dddd(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iidiiii(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_iidiiii(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiiidi(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { var sp = stackSave(); try { return dynCall_iiiiiiiidi(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiddi(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { return dynCall_iiiddi(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiidd(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_iiidd(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_did(index, a1, a2) { var sp = stackSave(); try { return dynCall_did(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiidii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { return dynCall_iiidii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiidddii(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { return dynCall_iiidddii(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_didii(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_didii(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiidddi( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ) { var sp = stackSave(); try { return dynCall_iiiiiiidddi( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iidd(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_iidd(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiddd(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_iiiiddd(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vidii(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_vidii(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vidiiii(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { dynCall_vidiiii(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vidiii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_vidiii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vdiii(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_vdiii(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiidiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { var sp = stackSave(); try { return dynCall_iiiidiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_idiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { return dynCall_idiiiiii(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_idiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { var sp = stackSave(); try { return dynCall_idiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiidiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ) { var sp = stackSave(); try { dynCall_viiiidiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiff(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_iiiff(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_fii(index, a1, a2) { var sp = stackSave(); try { return dynCall_fii(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, ) { var sp = stackSave(); try { dynCall_viiiiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ) { var sp = stackSave(); try { return dynCall_iiiiiiiiiii( index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viidii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_viidii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_ddiiiii(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_ddiiiii(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iifi(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_iifi(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_j(index) { var sp = stackSave(); try { return dynCall_j(index); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_jiii(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_jiii(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_jiij(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_jiij(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_ji(index, a1) { var sp = stackSave(); try { return dynCall_ji(index, a1); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viij(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_viij(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viji(index, a1, a2, a3, a4) { var sp = stackSave(); try { dynCall_viji(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vijii(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_vijii(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiijj(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_iiijj(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiijji(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { return dynCall_iiijji(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vij(index, a1, a2, a3) { var sp = stackSave(); try { dynCall_vij(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_jii(index, a1, a2) { var sp = stackSave(); try { return dynCall_jii(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_vijji(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { dynCall_vijji(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiji(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { dynCall_viiji(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_dj(index, a1, a2) { var sp = stackSave(); try { return dynCall_dj(index, a1, a2); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iij(index, a1, a2, a3) { var sp = stackSave(); try { return dynCall_iij(index, a1, a2, a3); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiiijii(index, a1, a2, a3, a4, a5, a6, a7, a8) { var sp = stackSave(); try { dynCall_viiiijii(index, a1, a2, a3, a4, a5, a6, a7, a8); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiijjii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { var sp = stackSave(); try { dynCall_viiijjii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiijjii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) { var sp = stackSave(); try { return dynCall_iiiijjii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_viiijii(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { dynCall_viiijii(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiijii(index, a1, a2, a3, a4, a5, a6, a7) { var sp = stackSave(); try { return dynCall_iiiijii(index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiij(index, a1, a2, a3, a4, a5) { var sp = stackSave(); try { return dynCall_iiiij(index, a1, a2, a3, a4, a5); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_iiiiij(index, a1, a2, a3, a4, a5, a6) { var sp = stackSave(); try { return dynCall_iiiiij(index, a1, a2, a3, a4, a5, a6); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function invoke_jiiii(index, a1, a2, a3, a4) { var sp = stackSave(); try { return dynCall_jiiii(index, a1, a2, a3, a4); } catch (e) { stackRestore(sp); if (e !== e + 0) throw e; _setThrew(1, 0); } } function applySignatureConversions(wasmExports) { wasmExports = Object.assign({}, wasmExports); var makeWrapper_p = (f) => () => f() >>> 0; var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0; var makeWrapper_ppp = (f) => (a0, a1) => f(a0, a1) >>> 0; wasmExports["Cd"] = makeWrapper_p(wasmExports["Cd"]); wasmExports["Fd"] = makeWrapper_pp(wasmExports["Fd"]); wasmExports["Gd"] = makeWrapper_p(wasmExports["Gd"]); wasmExports["Id"] = makeWrapper_ppp(wasmExports["Id"]); wasmExports["Jd"] = makeWrapper_pp(wasmExports["Jd"]); wasmExports["Vd"] = makeWrapper_p(wasmExports["Vd"]); wasmExports["Xd"] = makeWrapper_pp(wasmExports["Xd"]); return wasmExports; } Module["addRunDependency"] = addRunDependency; Module["removeRunDependency"] = removeRunDependency; Module["FS_createPath"] = FS.createPath; Module["FS_createLazyFile"] = FS.createLazyFile; Module["FS_createDevice"] = FS.createDevice; Module["wasmMemory"] = wasmMemory; Module["keepRuntimeAlive"] = keepRuntimeAlive; Module["ExitStatus"] = ExitStatus; Module["FS_createPreloadedFile"] = FS.createPreloadedFile; Module["FS_createDataFile"] = FS.createDataFile; Module["FS_unlink"] = FS.unlink; Module["PThread"] = PThread; Module["FS_readdir"]=FS.readdir; Module["FS_analyzePath"]=FS.analyzePath; var calledRun; dependenciesFulfilled = function runCaller() { if (!calledRun) run(); if (!calledRun) dependenciesFulfilled = runCaller; }; function run() { if (runDependencies > 0) { return; } if (ENVIRONMENT_IS_PTHREAD) { readyPromiseResolve(Module); initRuntime(); startWorker(Module); return; } preRun(); if (runDependencies > 0) { return; } function doRun() { if (calledRun) return; calledRun = true; Module["calledRun"] = true; if (ABORT) return; initRuntime(); readyPromiseResolve(Module); if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); postRun(); } if (Module["setStatus"]) { Module["setStatus"]("Running..."); setTimeout(function () { setTimeout(function () { Module["setStatus"](""); }, 1); doRun(); }, 1); } else { doRun(); } } if (Module["preInit"]) { if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; while (Module["preInit"].length > 0) { Module["preInit"].pop()(); } } run(); return moduleArg.ready; }; })(); if (typeof exports === "object" && typeof module === "object") module.exports = getUsdModule; else if (typeof define === "function" && define["amd"]) define([], () => getUsdModule); globalThis["NEEDLE:USD:GET"] = getUsdModule;