From fa3f6cd174b13b8a5c8d5958bc8f5783b08583ca Mon Sep 17 00:00:00 2001 From: msqr1 Date: Tue, 24 Sep 2024 20:23:18 -0700 Subject: [PATCH] Use closure compiler in build for JS size reduction --- Examples/Vosklet.js | 70 ++++++++++++++++++++++++++++++++++++++++++++- Vosklet.js | 70 ++++++++++++++++++++++++++++++++++++++++++++- src/Wrapper.js | 46 +++++++++++++++++------------ src/make | 4 +-- test | 4 +-- 5 files changed, 170 insertions(+), 24 deletions(-) diff --git a/Examples/Vosklet.js b/Examples/Vosklet.js index 988e57c..719e5b6 100644 --- a/Examples/Vosklet.js +++ b/Examples/Vosklet.js @@ -6,7 +6,75 @@ var loadVosklet = (() => { function(moduleArg = {}) { var moduleRtn; -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;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});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_WASM_WORKER=Module["$ww"];let objs=[];let events=["status","partialResult","result"];let storageWorkerURL=URL.createObjectURL(new Blob(["(",(()=>{let txtDecoder=new TextDecoder;let txtEncoder=new TextEncoder;onmessage=async msg=>{msg=msg.data;let components=msg.storepath.split("/");let prevDir=await navigator.storage.getDirectory();for(let component of components)prevDir=await prevDir.getDirectoryHandle(component,{create:true});let idHandle=await prevDir.getFileHandle("id",{create:true});let mdlHandle=await prevDir.getFileHandle("model.tgz",{create:true});let idFile=await idHandle.createSyncAccessHandle();let mdlFile=await mdlHandle.createSyncAccessHandle();let oldIdBuf=new ArrayBuffer(idFile.getSize());idFile.read(oldIdBuf);let tar,tgz;if(txtDecoder.decode(oldIdBuf)==msg.id){tgz=new ArrayBuffer(mdlFile.getSize());mdlFile.read(tgz);tar=await new Response(new Response(tgz).body.pipeThrough(new DecompressionStream("gzip"))).arrayBuffer()}else{let res=await fetch(msg.url);if(!res.ok){postMessage("Unable to download model");return}let teed=res.body.tee();tgz=await new Response(teed[0]).arrayBuffer();mdlFile.write(tgz,{at:0});mdlFile.truncate(tgz.byteLength);let newId=txtEncoder.encode(msg.id);idFile.write(newId,{at:0});idFile.truncate(newId.length);tar=await new Response(teed[1].pipeThrough(new DecompressionStream("gzip"))).arrayBuffer()}idFile.close();mdlFile.close();self.postMessage(tar,[tar])}}).toString(),")()"],{type:"text/javascript"}));let storageWorker=new Worker(storageWorkerURL);let processorURL=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(opts){super();this.count=0;this.maxCount=opts.processorOptions.maxCount;this.buffer=new Float32Array(this.maxCount*128)}process(inputs){if(!inputs[0][0])return true;this.buffer.set(inputs[0][0],this.count++*128);if(this.count>=this.maxCount){this.count=0;this.port.postMessage(this.buffer,[this.buffer.buffer]);this.buffer=new Float32Array(this.maxCount*128)}return true}})}).toString(),")()"],{type:"text/javascript"}));Module.cleanUp=async()=>{for(let obj of objs)await obj.delete();URL.revokeObjectURL(processorURL);URL.revokeObjectURL(storageWorkerURL);storageWorker.terminate()};Module.createTransferer=async(ctx,bufferSize)=>{await ctx.audioWorklet.addModule(processorURL);return new AudioWorkletNode(ctx,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:{maxCount:bufferSize/128}})};class CommonModel extends EventTarget{constructor(){super();objs.push(this)}delete(){this.obj.delete()}static async mk(url,storepath,id,normalMdl){let mdl=new CommonModel;let result=new Promise((resolve,reject)=>{mdl.addEventListener("status",ev=>{if(!ev.detail){if(normalMdl)mdl.findWord=word=>mdl.obj.findWord(word);resolve(mdl)}else reject(ev.detail)},{once:true})});storageWorker.addEventListener("message",tar=>{tar=tar.data;let tarStart=_malloc(tar.byteLength);GROWABLE_HEAP_U8().set(new Uint8Array(tar),tarStart);mdl.obj=new Module.CommonModel(objs.length-1,normalMdl,"/"+storepath,id,tarStart,tar.byteLength)},{once:true});storageWorker.postMessage({url,storepath,id});return result}}Module.createModel=async(url,storepath,id)=>CommonModel.mk(url,storepath,id,true);Module.createSpkModel=async(url,storepath,id)=>CommonModel.mk(url,storepath,id,false);class Recognizer extends EventTarget{constructor(){super();objs.push(this);return new Proxy(this,{get(self,prop,_){if(self[prop]==undefined&&self.obj[prop]==undefined)return;let p=self[prop];if(p)return p.bind?p.bind(self):p;p=self.obj[prop];return p.bind?p.bind(self.obj):p}})}acceptWaveform(audioData){let start=_malloc(audioData.length*4);GROWABLE_HEAP_F32().set(audioData,start/4);this.obj.acceptWaveform(start,audioData.length)}async delete(processCurrent=false){let result=new Promise((resolve,_)=>this.addEventListener("status",_=>{this.obj.delete();resolve()},{once:true}));this.obj.safeDelete(processCurrent);return result}static async mk(model,sampleRate,mode,grammar,spkModel){let rec=new Recognizer;let result=new Promise((resolve,reject)=>{rec.addEventListener("status",ev=>{if(!ev.detail)resolve(rec);else reject(ev.detail)},{once:true})});switch(mode){case 1:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model);break;case 2:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,spkModel);break;default:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,grammar,0)}return result}}Module.createRecognizer=(model,sampleRate)=>Recognizer.mk(model.obj,sampleRate,1);Module.createRecognizerWithSpkModel=(model,sampleRate,spkModel)=>Recognizer.mk(model.obj,sampleRate,2,null,spkModel.obj);Module.createRecognizerWithGrm=(model,sampleRate,grammar)=>Recognizer.mk(model.obj,sampleRate,3,grammar,null);var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;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(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{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=>fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,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);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||330301440;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,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();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_WASM_WORKER)return _wasmWorkerInitializeRuntime();callRuntimeCallbacks(__ATINIT__)}function postRun(){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 addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;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);function findWasmBinary(){var f="Vosklet.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var 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){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).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)&&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 getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmTable=wasmExports["$"];addOnInit(wasmExports["Y"]);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)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}function mtFireEv(index,typeIdx,content){objs[index].dispatchEvent(new CustomEvent(events[typeIdx],{detail:content==0?null:UTF8ToString(content)}))}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var _wasmWorkerDelayedMessageQueue=[];var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var _wasmWorkerRunPostMessage=e=>{let data=e.data;let wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{let m=Module;__emscripten_wasm_worker_initialize(m["sb"],m["sz"]);removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var UTF8Decoder=new TextDecoder;var UTF8ToString=(ptr,maxBytesToRead)=>{if(!ptr)return"";var maxPtr=ptr+maxBytesToRead;for(var end=ptr;!(end>=maxPtr)&&GROWABLE_HEAP_U8()[end];)++end;return UTF8Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var ___call_sighandler=(fp,sig)=>getWasmTableEntry(fp)(sig);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){GROWABLE_HEAP_U32()[this.ptr+4>>2]=type}get_type(){return GROWABLE_HEAP_U32()[this.ptr+4>>2]}set_destructor(destructor){GROWABLE_HEAP_U32()[this.ptr+8>>2]=destructor}get_destructor(){return GROWABLE_HEAP_U32()[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;GROWABLE_HEAP_I8()[this.ptr+12]=caught}get_caught(){return GROWABLE_HEAP_I8()[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;GROWABLE_HEAP_I8()[this.ptr+13]=rethrown}get_rethrown(){return GROWABLE_HEAP_I8()[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){GROWABLE_HEAP_U32()[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return GROWABLE_HEAP_U32()[this.ptr+16>>2]}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var __abort_js=()=>{abort("")};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 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]){ret+=embind_charCodes[GROWABLE_HEAP_U8()[c++]]}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(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{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={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>GROWABLE_HEAP_I8()[pointer]:pointer=>GROWABLE_HEAP_U8()[pointer];case 2:return signed?pointer=>GROWABLE_HEAP_I16()[pointer>>1]:pointer=>GROWABLE_HEAP_U16()[pointer>>1];case 4:return signed?pointer=>GROWABLE_HEAP_I32()[pointer>>2]:pointer=>GROWABLE_HEAP_U32()[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;if(isUnsignedType){maxRange=(1n<<64n)-1n}registerType(primitiveType,{name,fromWireType:value=>value,toWireType:function(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`)}if(typeof value=="number"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{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])},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,writable:true}}))};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})}}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 createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};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}}};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 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||!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])}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,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&®isteredClass.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 nonexistent public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){return getWasmTableEntry(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([", "]))};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);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]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){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[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});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){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 heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],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[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],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,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[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I8()[pointer])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])};case 2:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I16()[pointer>>1])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U16()[pointer>>1])};case 4:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I32()[pointer>>2])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_enum=(rawType,name,size,isSigned)=>{name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{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};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{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 floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F32()[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F64()[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{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,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>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,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=GROWABLE_HEAP_U32()[handle>>2];var data=GROWABLE_HEAP_U32()[handle+4>>2];return new TA(GROWABLE_HEAP_I8().buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name,fromWireType(value){var length=GROWABLE_HEAP_U32()[value>>2];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){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>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}GROWABLE_HEAP_U8()[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&GROWABLE_HEAP_U16()[idx])++idx;endPtr=idx<<1;return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,endPtr))};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}GROWABLE_HEAP_I16()[outPtr>>1]=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];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)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}GROWABLE_HEAP_I32()[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}GROWABLE_HEAP_I32()[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>GROWABLE_HEAP_U16()[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>GROWABLE_HEAP_U32()[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=GROWABLE_HEAP_U32()[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==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/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var _wasmWorkers={};var _wasmWorkersID=1;var _wasmWorkerBlobUrl=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"}));var __emscripten_create_wasm_worker=(stackLowestAddress,stackSize)=>{let worker=_wasmWorkers[_wasmWorkersID]=new Worker(_wasmWorkerBlobUrl);worker.postMessage({$ww:_wasmWorkersID,wasm:wasmModule,js:Module["mainScriptUrlOrBlob"]||_scriptName,wasmMemory,sb:stackLowestAddress,sz:stackSize});worker.onmessage=_wasmWorkerRunPostMessage;return _wasmWorkersID++};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var __setitimer_js=(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,timeout_ms};return 0};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);GROWABLE_HEAP_U32()[timezone>>2]=stdTimezoneOffset*60;GROWABLE_HEAP_I32()[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetGROWABLE_HEAP_U8().set(wasmFSPreloadedFiles[index].fileData,buffer);var wasmFSPreloadedDirs=[];var __wasmfs_get_num_preloaded_dirs=()=>wasmFSPreloadedDirs.length;var wasmFSPreloadedFiles=[];var wasmFSPreloadingFlushed=false;var __wasmfs_get_num_preloaded_files=()=>{wasmFSPreloadingFlushed=true;return wasmFSPreloadedFiles.length};var __wasmfs_get_preloaded_child_path=(index,childNameBuffer)=>{var s=wasmFSPreloadedDirs[index].childName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,childNameBuffer,len)};var __wasmfs_get_preloaded_file_mode=index=>wasmFSPreloadedFiles[index].mode;var __wasmfs_get_preloaded_file_size=index=>wasmFSPreloadedFiles[index].fileData.length;var __wasmfs_get_preloaded_parent_path=(index,parentPathBuffer)=>{var s=wasmFSPreloadedDirs[index].parentPath;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,parentPathBuffer,len)};var __wasmfs_get_preloaded_path_name=(index,fileNameBuffer)=>{var s=wasmFSPreloadedFiles[index].pathName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,fileNameBuffer,len)};var FS_stdin_getChar_buffer=[];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(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var __wasmfs_stdin_get_char=()=>{var c=FS_stdin_getChar();if(typeof c==="number"){return c}return-1};var _emscripten_console_error=str=>{console.error(UTF8ToString(str))};var _emscripten_console_log=str=>{console.log(UTF8ToString(str))};var _emscripten_console_warn=str=>{console.warn(UTF8ToString(str))};var _emscripten_date_now=()=>Date.now();var _emscripten_err=str=>err(UTF8ToString(str));var _emscripten_out=str=>out(UTF8ToString(str));var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _wasmWorkerPostFunction2=(id,funcPtr,arg0,arg1)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1]})};var _emscripten_wasm_worker_post_function_vii=_wasmWorkerPostFunction2;var _wasmWorkerPostFunction3=(id,funcPtr,arg0,arg1,arg2)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1,arg2]})};var _emscripten_wasm_worker_post_function_viii=_wasmWorkerPostFunction3;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{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);GROWABLE_HEAP_U32()[penviron_buf_size>>2]=bufSize;return 0};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var _getentropy=(buffer,size)=>{randomFill(GROWABLE_HEAP_U8().subarray(buffer,buffer+size));return 0};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");init_emval();if(ENVIRONMENT_IS_WASM_WORKER){_wasmWorkers[0]=this;addEventListener("message",_wasmWorkerAppendToQueue)}var wasmImports={c:___assert_fail,t:___call_sighandler,d:___cxa_throw,P:__abort_js,q:__embind_register_bigint,S:__embind_register_bool,o:__embind_register_class,j:__embind_register_class_constructor,g:__embind_register_class_function,R:__embind_register_emval,s:__embind_register_enum,k:__embind_register_enum_value,p:__embind_register_float,C:__embind_register_function,i:__embind_register_integer,e:__embind_register_memory_view,r:__embind_register_std_string,n:__embind_register_std_wstring,T:__embind_register_void,I:__emscripten_create_wasm_worker,O:__emscripten_get_now_is_monotonic,v:__emscripten_runtime_keepalive_clear,w:__setitimer_js,K:__tzset_js,E:__wasmfs_copy_preloaded_file_data,B:__wasmfs_get_num_preloaded_dirs,D:__wasmfs_get_num_preloaded_files,z:__wasmfs_get_preloaded_child_path,x:__wasmfs_get_preloaded_file_mode,F:__wasmfs_get_preloaded_file_size,A:__wasmfs_get_preloaded_parent_path,y:__wasmfs_get_preloaded_path_name,H:__wasmfs_stdin_get_char,U:_emscripten_console_error,W:_emscripten_console_log,V:_emscripten_console_warn,f:_emscripten_date_now,l:_emscripten_err,m:_emscripten_get_now,G:_emscripten_out,L:_emscripten_resize_heap,Q:_emscripten_wasm_worker_post_function_vii,h:_emscripten_wasm_worker_post_function_viii,M:_environ_get,N:_environ_sizes_get,b:_exit,J:_getentropy,a:wasmMemory,X:mtFireEv,u:_proc_exit};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["Y"])();var _free=a0=>(_free=wasmExports["Z"])(a0);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["_"])(a0);var ___getTypeName=a0=>(___getTypeName=wasmExports["aa"])(a0);var __emscripten_timeout=(a0,a1)=>(__emscripten_timeout=wasmExports["ba"])(a0,a1);var __emscripten_wasm_worker_initialize=(a0,a1)=>(__emscripten_wasm_worker_initialize=wasmExports["ca"])(a0,a1);Module["UTF8ToString"]=UTF8ToString;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve(Module);return initRuntime()}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>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();moduleRtn=readyPromise; +function h(){p.buffer!=q.buffer&&r();return q}function t(){p.buffer!=q.buffer&&r();return aa}function ba(){p.buffer!=q.buffer&&r();return ca}function da(){p.buffer!=q.buffer&&r();return ha}function u(){p.buffer!=q.buffer&&r();return ia}function z(){p.buffer!=q.buffer&&r();return ja}function ka(){p.buffer!=q.buffer&&r();return la} +var A=moduleArg,ma,na,oa=new Promise((a,b)=>{ma=a;na=b}),pa="object"==typeof window,qa="function"==typeof importScripts,ra="object"==typeof process&&"object"==typeof process.Oa&&"string"==typeof process.Oa.node,sa=A.$ww; +let B=[],ta=["status","partialResult","result"],ua=URL.createObjectURL(new Blob(["(",(()=>{let a=new TextDecoder,b=new TextEncoder;onmessage=async c=>{c=c.data;var d=c.Na.split("/"),e=await navigator.storage.getDirectory();for(var f of d)e=await e.getDirectoryHandle(f,{create:!0});d=await e.getFileHandle("id",{create:!0});f=await e.getFileHandle("model.tgz",{create:!0});e=await d.createSyncAccessHandle();d=await f.createSyncAccessHandle();f=new ArrayBuffer(e.getSize());e.read(f);let g;if(a.decode(f)== +c.id)g=new ArrayBuffer(d.getSize()),d.read(g),c=await (new Response((new Response(g)).body.pipeThrough(new DecompressionStream("gzip")))).arrayBuffer();else{f=await fetch(c.url);if(!f.ok){postMessage("Unable to download model");return}f=f.body.tee();g=await (new Response(f[0])).arrayBuffer();d.write(g,{at:0});d.truncate(g.byteLength);c=b.encode(c.id);e.write(c,{at:0});e.truncate(c.length);c=await (new Response(f[1]).pipeThrough(new DecompressionStream("gzip"))).arrayBuffer()}e.close();d.close();self.postMessage(c, +[c])}}).toString(),")()"],{type:"text/javascript"})),va=new Worker(ua),wa=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(a){super();this.count=0;this.sa=a.processorOptions.sa;this.buffer=new Float32Array(128*this.sa)}process(a){if(!a[0][0])return!0;this.buffer.set(a[0][0],128*this.count++);this.count>=this.sa&&(this.count=0,this.port.postMessage(this.buffer,[this.buffer.buffer]),this.buffer=new Float32Array(128*this.sa)); +return!0}})}).toString(),")()"],{type:"text/javascript"}));A.cleanUp=async()=>{for(let a of B)await a.delete();URL.revokeObjectURL(wa);URL.revokeObjectURL(ua);va.terminate()};A.createTransferer=async(a,b)=>{await a.audioWorklet.addModule(wa);return new AudioWorkletNode(a,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:{sa:b/128}})}; +async function xa(a,b,c,d){let e=new ya,f=new Promise((g,k)=>{e.addEventListener("status",l=>{l.detail?k(l.detail):(d&&(e.findWord=m=>e.ha.findWord(m)),g(e))},{once:!0})});va.addEventListener("message",g=>{g=g.data;let k=C(g.byteLength);t().set(new Uint8Array(g),k);e.ha=new A.CommonModel(B.length-1,d,"/"+b,c,k,g.byteLength)},{once:!0});va.postMessage({url:a,Na:b,id:c});return f}class ya extends EventTarget{constructor(){super();B.push(this)}delete(){this.ha.delete()}} +A.createModel=async(a,b,c)=>xa(a,b,c,!0);A.createSpkModel=async(a,b,c)=>xa(a,b,c,!1);async function za(a,b,c,d,e){let f=new Aa,g=new Promise((k,l)=>{f.addEventListener("status",m=>{m.detail?l(m.detail):k(f)},{once:!0})});switch(c){case 1:f.ha=new A.Recognizer(B.length-1,b,a);break;case 2:f.ha=new A.Recognizer(B.length-1,b,a,e);break;default:f.ha=new A.Recognizer(B.length-1,b,a,d,0)}return g} +class Aa extends EventTarget{constructor(){super();this.acceptWaveform=a=>{let b=C(4*a.length);ka().set(a,b/4);this.ha.acceptWaveform(b,a.length)};B.push(this);return new Proxy(this,{get(a,b){if(void 0!=a[b]||void 0!=a.ha[b]){var c=a[b];if(c)return c.bind?c.bind(a):c;c=a.ha[b];return c.bind?c.bind(a.ha):c}}})}async delete(a=!1){let b=new Promise(c=>this.addEventListener("status",()=>{this.ha.delete();c()},{once:!0}));this.ha.Ua(a);return b}}A.createRecognizer=(a,b)=>za(a.ha,b,1); +A.createRecognizerWithSpkModel=(a,b,c)=>za(a.ha,b,2,null,c.ha);A.createRecognizerWithGrm=(a,b,c)=>za(a.ha,b,3,c,null);var Ba=Object.assign({},A),Ca="./this.program",D="",Da,Ea; +if(pa||qa)qa?D=self.location.href:"undefined"!=typeof document&&document.currentScript&&(D=document.currentScript.src),_scriptName&&(D=_scriptName),D.startsWith("blob:")?D="":D=D.substr(0,D.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(Ea=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),Da=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url))); +var Fa=A.print||console.log.bind(console),G=A.printErr||console.error.bind(console);Object.assign(A,Ba);Ba=null;A.thisProgram&&(Ca=A.thisProgram);var Ga=A.wasmBinary,p,Ha,Ia=!1,Ja,q,aa,ca,ha,ia,ja,la,Ka,La,Ma; +function r(){var a=p.buffer;A.HEAP8=q=new Int8Array(a);A.HEAP16=ca=new Int16Array(a);A.HEAPU8=aa=new Uint8Array(a);A.HEAPU16=ha=new Uint16Array(a);A.HEAP32=ia=new Int32Array(a);A.HEAPU32=ja=new Uint32Array(a);A.HEAPF32=la=new Float32Array(a);A.HEAPF64=Ma=new Float64Array(a);A.HEAP64=Ka=new BigInt64Array(a);A.HEAPU64=La=new BigUint64Array(a)} +if(A.wasmMemory)p=A.wasmMemory;else if(p=new WebAssembly.Memory({initial:(A.INITIAL_MEMORY||330301440)/65536,maximum:32768,shared:!0}),!(p.buffer instanceof SharedArrayBuffer))throw G("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"),ra&&G("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"), +Error("bad memory");r();var Na=[],Oa=[],Pa=[];function Qa(){sa?(Ra(A.sb,A.sz),removeEventListener("message",Sa),Ta=Ta.forEach(Ua),addEventListener("message",Ua)):Va(Oa)}function Wa(){var a=A.preRun.shift();Na.unshift(a)}var H=0,Xa=null,I=null;function Ya(a){A.onAbort?.(a);a="Aborted("+a+")";G(a);Ia=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");na(a);throw a;}var Za=a=>a.startsWith("data:application/octet-stream;base64,"),$a; +function ab(a){if(a==$a&&Ga)return new Uint8Array(Ga);if(Ea)return Ea(a);throw"both async and sync fetching of the wasm failed";}function bb(a){return Ga?Promise.resolve().then(()=>ab(a)):Da(a).then(b=>new Uint8Array(b),()=>ab(a))}function eb(a,b,c){return bb(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Ya(d)})} +function fb(a,b){var c=$a;return Ga||"function"!=typeof WebAssembly.instantiateStreaming||Za(c)||"function"!=typeof fetch?eb(c,a,b):fetch(c,{credentials:"same-origin"}).then(d=>WebAssembly.instantiateStreaming(d,a).then(b,function(e){G(`wasm streaming compile failed: ${e}`);G("falling back to ArrayBuffer instantiation");return eb(c,a,b)}))}function gb(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a} +var Ta=[],hb=[],ib,jb=a=>{var b=hb[a];b||(a>=hb.length&&(hb.length=a+1),hb[a]=b=ib.get(a));return b},Ua=a=>{a=a.data;let b=a._wsc;b&&jb(b)(...a.x)},Sa=a=>{Ta.push(a)},Va=a=>{for(;0{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&t()[c];)++c;return lb.decode(t().slice(a,c))};class mb{constructor(a){this.fa=a-24}} +var nb=0,ob=0,pb=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},qb,K=a=>{for(var b="";t()[a];)b+=qb[t()[a++]];return b},L={},M={},rb={},N,sb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(k){k=c(k);if(k.length!==a.length)throw new O("Mismatched type converter count");for(var l=0;lrb[k]=b);var e=Array(b.length),f=[],g=0;b.forEach((k,l)=>{M.hasOwnProperty(k)?e[l]=M[k]:(f.push(k),L.hasOwnProperty(k)|| +(L[k]=[]),L[k].push(()=>{e[l]=M[k];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function tb(a,b,c={}){var d=b.name;if(!a)throw new N(`type "${d}" must have a positive integer typeid pointer`);if(M.hasOwnProperty(a)){if(c.Ha)return;throw new N(`Cannot register type '${d}' twice`);}M[a]=b;delete rb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return tb(a,b,c)} +var ub=(a,b,c)=>{switch(b){case 1:return c?d=>h()[d]:d=>t()[d];case 2:return c?d=>ba()[d>>1]:d=>da()[d>>1];case 4:return c?d=>u()[d>>2]:d=>z()[d>>2];case 8:return c?d=>Ka[d>>3]:d=>La[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},vb=a=>{throw new N(a.da.ga.ea.name+" instance already deleted");},wb=!1,xb=()=>{},yb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ka)return null;a=yb(a,b,c.ka);return null===a?null:c.Da(a)},zb={},R=[],Ab=()=>{for(;R.length;){var a=R.pop();a.da.qa= +!1;a["delete"]()}},S,T={},Bb=(a,b)=>{if(void 0===b)throw new N("ptr should not be undefined");for(;a.ka;)b=a.ua(b),a=a.ka;return T[b]},Cb=(a,b)=>{if(!b.ga||!b.fa)throw new O("makeClassHandle requires ptr and ptrType");if(!!b.ma!==!!b.ia)throw new O("Both smartPtrType and smartPtr must be specified");b.count={value:1};return U(Object.create(a,{da:{value:b,writable:!0}}))},U=a=>{if("undefined"===typeof FinalizationRegistry)return U=b=>b,a;wb=new FinalizationRegistry(b=>{b=b.da;--b.count.value;0===b.count.value&& +(b.ia?b.ma.oa(b.ia):b.ga.ea.oa(b.fa))});U=b=>{var c=b.da;c.ia&&wb.register(b,{da:c},b);return b};xb=b=>{wb.unregister(b)};return U(a)};function Db(){} +var Eb=(a,b)=>Object.defineProperty(b,"name",{value:a}),Fb=(a,b,c)=>{if(void 0===a[b].ja){var d=a[b];a[b]=function(...e){if(!a[b].ja.hasOwnProperty(e.length))throw new N(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].ja})!`);return a[b].ja[e.length].apply(this,e)};a[b].ja=[];a[b].ja[d.va]=d}},Gb=(a,b,c)=>{if(A.hasOwnProperty(a)){if(void 0===c||void 0!==A[a].ja&&void 0!==A[a].ja[c])throw new N(`Cannot register public name '${a}' twice`);Fb(A,a,a); +if(A.hasOwnProperty(c))throw new N(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);A[a].ja[c]=b}else A[a]=b,void 0!==c&&(A[a].Ra=c)},Hb=a=>{if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function Ib(a,b,c,d,e,f,g,k){this.name=a;this.constructor=b;this.ra=c;this.oa=d;this.ka=e;this.Fa=f;this.ua=g;this.Da=k;this.Ja=[]} +var Jb=(a,b,c)=>{for(;b!==c;){if(!b.ua)throw new N(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.ua(a);b=b.ka}return a};function Kb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.da)throw new N(`Cannot pass "${pb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return Jb(b.da.fa,b.da.ga.ea,this.ea)} +function Lb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);if(this.xa){var c=this.Ka();null!==a&&a.push(this.oa,c);return c}return 0}if(!b||!b.da)throw new N(`Cannot pass "${pb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.wa&&b.da.ga.wa)throw new N(`Cannot convert argument of type ${b.da.ma?b.da.ma.name:b.da.ga.name} to parameter type ${this.name}`);c=Jb(b.da.fa,b.da.ga.ea,this.ea);if(this.xa){if(void 0=== +b.da.ia)throw new N("Passing raw pointer to smart pointer is illegal");switch(this.Ma){case 0:if(b.da.ma===this)c=b.da.ia;else throw new N(`Cannot convert argument of type ${b.da.ma?b.da.ma.name:b.da.ga.name} to parameter type ${this.name}`);break;case 1:c=b.da.ia;break;case 2:if(b.da.ma===this)c=b.da.ia;else{var d=b.clone();c=this.La(c,Mb(()=>d["delete"]()));null!==a&&a.push(this.oa,c)}break;default:throw new N("Unsupporting sharing policy");}}return c} +function Nb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.da)throw new N(`Cannot pass "${pb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.da.ga.wa)throw new N(`Cannot convert argument of type ${b.da.ga.name} to parameter type ${this.name}`);return Jb(b.da.fa,b.da.ga.ea,this.ea)}function Ob(a){return this.fromWireType(z()[a>>2])} +function Pb(a,b,c,d,e,f,g,k,l,m,n){this.name=a;this.ea=b;this.ya=c;this.wa=d;this.xa=e;this.Ia=f;this.Ma=g;this.Ba=k;this.Ka=l;this.La=m;this.oa=n;e||void 0!==b.ka?this.toWireType=Lb:(this.toWireType=d?Kb:Nb,this.la=null)} +var Qb=(a,b,c)=>{if(!A.hasOwnProperty(a))throw new O("Replacing nonexistent public symbol");void 0!==A[a].ja&&void 0!==c?A[a].ja[c]=b:(A[a]=b,A[a].va=c)},V=(a,b)=>{a=K(a);var c=jb(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Rb,Tb=a=>{a=Sb(a);var b=K(a);W(a);return b},Ub=(a,b)=>{function c(f){e[f]||M[f]||(rb[f]?rb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Rb(`${a}: `+d.map(Tb).join([", "]));},Vb=(a,b)=>{for(var c= +[],d=0;d>2]);return c},Wb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Xb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var k=null!==b[1]&&null!==c,l=Xb(b);c="void"!==b[0].name;d=[a,sb,d,e,Wb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},bc=[],X=[],Mb=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=bc.pop()||X.length;X[b]=a;X[b+1]=1;return b}},cc={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Mb(b),na:8,readValueFromPointer:Ob,la:null},dc=(a,b,c)=>{switch(b){case 1:return c? +function(d){return this.fromWireType(h()[d])}:function(d){return this.fromWireType(t()[d])};case 2:return c?function(d){return this.fromWireType(ba()[d>>1])}:function(d){return this.fromWireType(da()[d>>1])};case 4:return c?function(d){return this.fromWireType(u()[d>>2])}:function(d){return this.fromWireType(z()[d>>2])};default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},ec=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Tb(a)}`,new N(a);return b},fc=(a,b)=>{switch(b){case 4:return function(c){return this.fromWireType(ka()[c>> +2])};case 8:return function(c){var d=this.fromWireType;p.buffer!=q.buffer&&r();return d.call(this,Ma[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var k=a.charCodeAt(++f);g=65536+((g&1023)<<10)|k&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break; +b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0;return c-e},gc=(a,b)=>{var c=17;Y(a,t(),b,c)},hc=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},ic=new TextDecoder("utf-16le"),jc=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return ic.decode(t().slice(a,c))},kc=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e>1]=f;b+=2}ba()[b>>1]=0;return b-d},lc=a=>2*a.length,mc=(a,b)=>{for(var c=0,d="";!(c>=b/4);){var e=u()[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d},nc=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e=f){var g=a.charCodeAt(++e);f=65536+((f&1023)<<10)|g&1023}u()[b>>2]=f;b+=4;if(b+4>c)break}u()[b>>2]=0;return b-d},oc=a=>{for(var b= +0,c=0;c=d&&++c;b+=4}return b},pc={},qc=1,rc=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"})),sc={},tc=a=>{if(!(a instanceof gb||"unwind"==a))throw a;},uc=0,vc=a=>{Ja=a;kb||0{if(!Ia)try{if(a(), +!(kb||0performance.now(); +for(var yc=[],zc=[],Ac=[],Bc={},Dc=()=>{if(!Cc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:Ca||"./this.program"},b;for(b in Bc)void 0===Bc[b]?delete a[b]:a[b]=Bc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Cc=c}return Cc},Cc,Ec=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))), +a);Ya("initRandomDevice")},Fc=a=>(Fc=Ec())(a),Gc=Array(256),Hc=0;256>Hc;++Hc)Gc[Hc]=String.fromCharCode(Hc);qb=Gc;N=A.BindingError=class extends Error{constructor(a){super(a);this.name="BindingError"}};O=A.InternalError=class extends Error{constructor(a){super(a);this.name="InternalError"}}; +Object.assign(Db.prototype,{isAliasOf:function(a){if(!(this instanceof Db&&a instanceof Db))return!1;var b=this.da.ga.ea,c=this.da.fa;a.da=a.da;var d=a.da.ga.ea;for(a=a.da.fa;b.ka;)c=b.ua(c),b=b.ka;for(;d.ka;)a=d.ua(a),d=d.ka;return b===d&&c===a},clone:function(){this.da.fa||vb(this);if(this.da.ta)return this.da.count.value+=1,this;var a=U,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.da;a=a(c.call(b,d,{da:{value:{count:e.count,qa:e.qa,ta:e.ta,fa:e.fa,ga:e.ga,ia:e.ia,ma:e.ma}}}));a.da.count.value+= +1;a.da.qa=!1;return a},["delete"](){this.da.fa||vb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");xb(this);var a=this.da;--a.count.value;0===a.count.value&&(a.ia?a.ma.oa(a.ia):a.ga.ea.oa(a.fa));this.da.ta||(this.da.ia=void 0,this.da.fa=void 0)},isDeleted:function(){return!this.da.fa},deleteLater:function(){this.da.fa||vb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(Ab);this.da.qa=!0;return this}}); +A.getInheritedInstanceCount=()=>Object.keys(T).length;A.getLiveInheritedInstances=()=>{var a=[],b;for(b in T)T.hasOwnProperty(b)&&a.push(T[b]);return a};A.flushPendingDeletes=Ab;A.setDelayFunction=a=>{S=a;R.length&&S&&S(Ab)}; +Object.assign(Pb.prototype,{Ga(a){this.Ba&&(a=this.Ba(a));return a},Aa(a){this.oa?.(a)},na:8,readValueFromPointer:Ob,fromWireType:function(a){function b(){return this.xa?Cb(this.ea.ra,{ga:this.Ia,fa:c,ma:this,ia:a}):Cb(this.ea.ra,{ga:this,fa:a})}var c=this.Ga(a);if(!c)return this.Aa(a),null;var d=Bb(this.ea,c);if(void 0!==d){if(0===d.da.count.value)return d.da.fa=c,d.da.ia=a,d.clone();d=d.clone();this.Aa(a);return d}d=this.ea.Fa(c);d=zb[d];if(!d)return b.call(this);d=this.wa?d.Ca:d.pointerType;var e= +yb(c,this.ea,d.ea);return null===e?b.call(this):this.xa?Cb(d.ea.ra,{ga:d,fa:e,ma:this,ia:a}):Cb(d.ea.ra,{ga:d,fa:e})}});Rb=A.UnboundTypeError=((a,b)=>{var c=Eb(b,function(d){this.name=b;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`};return c})(Error,"UnboundTypeError"); +X.push(0,1,void 0,1,null,1,!0,1,!1,1);A.count_emval_handles=()=>X.length/2-5-bc.length;sa&&(pc[0]=this,addEventListener("message",Sa)); +var Jc={c:(a,b,c,d)=>{Ya(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},t:(a,b)=>jb(a)(b),d:(a,b,c)=>{var d=new mb(a);z()[d.fa+16>>2]=0;z()[d.fa+4>>2]=b;z()[d.fa+8>>2]=c;nb=a;ob++;throw nb;},P:()=>{Ya("")},q:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:function(d,e){if("bigint"!=typeof e&&"number"!=typeof e)throw new TypeError(`Cannot convert "${pb(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},na:8,readValueFromPointer:ub(b, +c,-1==b.indexOf("u")),la:null})},S:(a,b,c,d)=>{b=K(b);P(a,{name:b,fromWireType:function(e){return!!e},toWireType:function(e,f){return f?c:d},na:8,readValueFromPointer:function(e){return this.fromWireType(t()[e])},la:null})},o:(a,b,c,d,e,f,g,k,l,m,n,x,v)=>{n=K(n);f=V(e,f);k&&=V(g,k);m&&=V(l,m);v=V(x,v);var y=Hb(n);Gb(y,function(){Ub(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var E=w.ea;var ea=E.ra}else ea=Db.prototype;w=Eb(n,function(...cb){if(Object.getPrototypeOf(this)!== +db)throw new N("Use 'new' to construct "+n);if(void 0===F.pa)throw new N(n+" has no accessible constructor");var Yb=F.pa[cb.length];if(void 0===Yb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${cb.length}) - expected (${Object.keys(F.pa).toString()}) parameters instead!`);return Yb.apply(this,cb)});var db=Object.create(ea,{constructor:{value:w}});w.prototype=db;var F=new Ib(n,w,db,v,E,f,k,m);if(F.ka){var fa;(fa=F.ka).za??(fa.za=[]);F.ka.za.push(F)}E=new Pb(n,F,!0,!1, +!1);fa=new Pb(n+"*",F,!1,!1,!1);ea=new Pb(n+" const*",F,!1,!0,!1);zb[a]={pointerType:fa,Ca:ea};Qb(y,w);return[E,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Vb(b,c);e=V(d,e);Q([],[a],k=>{k=k[0];var l=`constructor ${k.name}`;void 0===k.ea.pa&&(k.ea.pa=[]);if(void 0!==k.ea.pa[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${k.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);k.ea.pa[b-1]=()=> +{Ub(`Cannot construct ${k.name} due to unbound types`,g)};Q([],g,m=>{m.splice(1,0,null);k.ea.pa[b-1]=$b(l,m,null,e,f);return[]});return[]})},g:(a,b,c,d,e,f,g,k,l)=>{var m=Vb(c,d);b=K(b);b=ac(b);f=V(e,f);Q([],[a],n=>{function x(){Ub(`Cannot call ${v} due to unbound types`,m)}n=n[0];var v=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);k&&n.ea.Ja.push(b);var y=n.ea.ra,w=y[b];void 0===w||void 0===w.ja&&w.className!==n.name&&w.va===c-2?(x.va=c-2,x.className=n.name,y[b]=x):(Fb(y,b,v),y[b].ja[c- +2]=x);Q([],m,E=>{E=$b(v,E,n,f,g,l);void 0===y[b].ja?(E.va=c-2,y[b]=E):y[b].ja[c-2]=E;return[]});return[]})},R:a=>P(a,cc),s:(a,b,c,d)=>{function e(){}b=K(b);e.values={};P(a,{name:b,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:(f,g)=>g.value,na:8,readValueFromPointer:dc(b,c,d),la:null});Gb(b,e)},k:(a,b,c)=>{var d=ec(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:Eb(`${d.name}_${b}`,function(){})}});a.values[c]= +d;a[b]=d},p:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:(d,e)=>e,na:8,readValueFromPointer:fc(b,c),la:null})},C:(a,b,c,d,e,f,g)=>{var k=Vb(b,c);a=K(a);a=ac(a);e=V(d,e);Gb(a,function(){Ub(`Cannot call ${a} due to unbound types`,k)},b-1);Q([],k,l=>{Qb(a,$b(a,[l[0],null].concat(l.slice(1)),null,e,f,g),b-1);return[]})},i:(a,b,c,d,e)=>{b=K(b);-1===e&&(e=4294967295);e=k=>k;if(0===d){var f=32-8*c;e=k=>k<>>f}var g=b.includes("unsigned")?function(k,l){return l>>>0}:function(k,l){return l}; +P(a,{name:b,fromWireType:e,toWireType:g,na:8,readValueFromPointer:ub(b,c,0!==d),la:null})},e:(a,b,c)=>{function d(f){var g=z()[f>>2];f=z()[f+4>>2];return new e(h().buffer,f,g)}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=K(c);P(a,{name:c,fromWireType:d,na:8,readValueFromPointer:d},{Ha:!0})},r:(a,b)=>{b=K(b);var c="std::string"===b;P(a,{name:b,fromWireType:function(d){var e=z()[d>>2],f=d+4;if(c)for(var g=f,k= +0;k<=e;++k){var l=f+k;if(k==e||0==t()[l]){g=J(g,l-g);if(void 0===m)var m=g;else m+=String.fromCharCode(0),m+=g;g=l+1}}else{m=Array(e);for(k=0;k> +2]=g;if(c&&f)g+=1,Y(e,t(),l,g);else if(f)for(f=0;f{c=K(c);if(2===b){var d=jc;var e=kc;var f=lc;var g=k=>da()[k>>1]}else 4===b&&(d=mc,e=nc,f=oc,g=k=>z()[k>>2]);P(a,{name:c,fromWireType:k=>{for(var l=z()[k>>2],m,n=k+4,x=0;x<=l;++x){var v=k+4+x*b;if(x==l||0== +g(v))n=d(n,v-n),void 0===m?m=n:(m+=String.fromCharCode(0),m+=n),n=v+b}W(k);return m},toWireType:(k,l)=>{if("string"!=typeof l)throw new N(`Cannot pass non-string to C++ string type ${c}`);var m=f(l),n=C(4+m+b);z()[n>>2]=m/b;e(l,n+4,m+b);null!==k&&k.push(W,n);return n},na:8,readValueFromPointer:Ob,la(k){W(k)}})},T:(a,b)=>{b=K(b);P(a,{Qa:!0,name:b,na:0,fromWireType:()=>{},toWireType:()=>{}})},I:(a,b)=>{let c=pc[qc]=new Worker(rc);c.postMessage({$ww:qc,wasm:Ha,js:A.mainScriptUrlOrBlob||_scriptName,wasmMemory:p, +sb:a,sz:b});c.onmessage=Ua;return qc++},O:()=>1,v:()=>{kb=!1;uc=0},w:(a,b)=>{sc[a]&&(clearTimeout(sc[a].id),delete sc[a]);if(!b)return 0;var c=setTimeout(()=>{delete sc[a];wc(()=>Ic(a,xc()))},b);sc[a]={id:c,Va:b};return 0},K:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);z()[a>>2]=60*g;u()[b>>2]=Number(f!=e);b=k=>{var l=Math.abs(k);return`UTC${0<=k?"-":"+"}${String(Math.floor(l/60)).padStart(2,"0")}${String(l% +60).padStart(2,"0")}`};a=b(f);b=b(e);et().set(zc[a].Ea,b),B:()=>yc.length,D:()=>zc.length,z:(a,b)=>{a=yc[a].Pa;var c=hc(a)+1;Y(a,t(),b,c)},x:a=>zc[a].mode,F:a=>zc[a].Ea.length,A:(a,b)=>{a=yc[a].Sa;var c=hc(a)+1;Y(a,t(),b,c)},y:(a,b)=>{a=zc[a].Ta;var c=hc(a)+1;Y(a,t(),b,c)},H:()=>{a:{if(!Ac.length){var a=null;"undefined"!=typeof window&&"function"==typeof window.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){var b=null;break a}b=Array(hc(a)+ +1);a=Y(a,b,0,b.length);b.length=a;Ac=b}b=Ac.shift()}return"number"===typeof b?b:-1},U:a=>{console.error(J(a))},W:a=>{console.log(J(a))},V:a=>{console.warn(J(a))},f:()=>Date.now(),l:a=>G(J(a)),m:xc,G:a=>Fa(J(a)),L:a=>{var b=t().length;a>>>=0;if(a<=b||2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-p.buffer.byteLength+65535)/65536;try{p.grow(d);r();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1}, +Q:(a,b,c,d)=>{pc[a].postMessage({_wsc:b,x:[c,d]})},h:(a,b,c,d,e)=>{pc[a].postMessage({_wsc:b,x:[c,d,e]})},M:(a,b)=>{var c=0;Dc().forEach((d,e)=>{var f=b+c;e=z()[a+4*e>>2]=f;for(f=0;f{var c=Dc();z()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);z()[b>>2]=d;return 0},b:a=>{Ja=a;vc(a)},J:(a,b)=>{Fc(t().subarray(a,a+b));return 0},a:p,X:function(a,b,c){B[a].dispatchEvent(new CustomEvent(ta[b],{detail:0==c?null:J(c)}))}, +u:vc},Z=function(){function a(c,d){Z=c.exports;ib=Z.$;Oa.unshift(Z.Y);Ha=d;H--;A.monitorRunDependencies?.(H);0==H&&(null!==Xa&&(clearInterval(Xa),Xa=null),I&&(c=I,I=null,c()));return Z}var b={a:Jc};H++;A.monitorRunDependencies?.(H);if(A.instantiateWasm)try{return A.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}$a||=Za("Vosklet.wasm")?"Vosklet.wasm":A.locateFile?A.locateFile("Vosklet.wasm",D):D+"Vosklet.wasm";fb(b,function(c){a(c.instance,c.module)}).catch(na); +return{}}(),W=a=>(W=Z.Z)(a),C=A._malloc=a=>(C=A._malloc=Z._)(a),Sb=a=>(Sb=Z.aa)(a),Ic=(a,b)=>(Ic=Z.ba)(a,b),Ra=(a,b)=>(Ra=Z.ca)(a,b);A.UTF8ToString=J;var Kc;I=function Lc(){Kc||Mc();Kc||(I=Lc)}; +function Mc(){function a(){if(!Kc&&(Kc=!0,A.calledRun=!0,!Ia)){Qa();ma(A);A.onRuntimeInitialized?.();if(A.postRun)for("function"==typeof A.postRun&&(A.postRun=[A.postRun]);A.postRun.length;){var b=A.postRun.shift();Pa.unshift(b)}Va(Pa)}}if(!(0{setTimeout(()=>A.setStatus(""),1);a()},1)):a())}} +if(A.preInit)for("function"==typeof A.preInit&&(A.preInit=[A.preInit]);0 { function(moduleArg = {}) { var moduleRtn; -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;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});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_WASM_WORKER=Module["$ww"];let objs=[];let events=["status","partialResult","result"];let storageWorkerURL=URL.createObjectURL(new Blob(["(",(()=>{let txtDecoder=new TextDecoder;let txtEncoder=new TextEncoder;onmessage=async msg=>{msg=msg.data;let components=msg.storepath.split("/");let prevDir=await navigator.storage.getDirectory();for(let component of components)prevDir=await prevDir.getDirectoryHandle(component,{create:true});let idHandle=await prevDir.getFileHandle("id",{create:true});let mdlHandle=await prevDir.getFileHandle("model.tgz",{create:true});let idFile=await idHandle.createSyncAccessHandle();let mdlFile=await mdlHandle.createSyncAccessHandle();let oldIdBuf=new ArrayBuffer(idFile.getSize());idFile.read(oldIdBuf);let tar,tgz;if(txtDecoder.decode(oldIdBuf)==msg.id){tgz=new ArrayBuffer(mdlFile.getSize());mdlFile.read(tgz);tar=await new Response(new Response(tgz).body.pipeThrough(new DecompressionStream("gzip"))).arrayBuffer()}else{let res=await fetch(msg.url);if(!res.ok){postMessage("Unable to download model");return}let teed=res.body.tee();tgz=await new Response(teed[0].pipeThrough(new CompressionStream("gzip"))).arrayBuffer();mdlFile.write(tgz,{at:0});mdlFile.truncate(tgz.byteLength);let newId=txtEncoder.encode(msg.id);idFile.write(newId,{at:0});idFile.truncate(newId.length);tar=await new Response(teed[1]).arrayBuffer()}idFile.close();mdlFile.close();self.postMessage(tar,[tar])}}).toString(),")()"],{type:"text/javascript"}));let storageWorker=new Worker(storageWorkerURL);let processorURL=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(opts){super();this.count=0;this.maxCount=opts.processorOptions.maxCount;this.buffer=new Float32Array(this.maxCount*128)}process(inputs){if(!inputs[0][0])return true;this.buffer.set(inputs[0][0],this.count++*128);if(this.count>=this.maxCount){this.count=0;this.port.postMessage(this.buffer,[this.buffer.buffer]);this.buffer=new Float32Array(this.maxCount*128)}return true}})}).toString(),")()"],{type:"text/javascript"}));Module.cleanUp=async()=>{for(let obj of objs)await obj.delete();URL.revokeObjectURL(processorURL);URL.revokeObjectURL(storageWorkerURL);storageWorker.terminate()};Module.createTransferer=async(ctx,bufferSize)=>{await ctx.audioWorklet.addModule(processorURL);return new AudioWorkletNode(ctx,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:{maxCount:bufferSize/128}})};class CommonModel extends EventTarget{constructor(){super();objs.push(this)}delete(){this.obj.delete()}static async mk(url,storepath,id,normalMdl){let mdl=new CommonModel;let result=new Promise((resolve,reject)=>{mdl.addEventListener("status",ev=>{if(!ev.detail){if(normalMdl)mdl.findWord=word=>mdl.obj.findWord(word);resolve(mdl)}else reject(ev.detail)},{once:true})});storageWorker.addEventListener("message",tar=>{tar=tar.data;let tarStart=_malloc(tar.byteLength);GROWABLE_HEAP_U8().set(new Uint8Array(tar),tarStart);mdl.obj=new Module.CommonModel(objs.length-1,normalMdl,"/"+storepath,id,tarStart,tar.byteLength)},{once:true});storageWorker.postMessage({url,storepath,id});return result}}Module.createModel=async(url,storepath,id)=>CommonModel.mk(url,storepath,id,true);Module.createSpkModel=async(url,storepath,id)=>CommonModel.mk(url,storepath,id,false);class Recognizer extends EventTarget{constructor(){super();objs.push(this);return new Proxy(this,{get(self,prop,_){if(self[prop]==undefined&&self.obj[prop]==undefined)return;let p=self[prop];if(p)return p.bind?p.bind(self):p;p=self.obj[prop];return p.bind?p.bind(self.obj):p}})}acceptWaveform(audioData){let start=_malloc(audioData.length*4);GROWABLE_HEAP_F32().set(audioData,start/4);this.obj.acceptWaveform(start,audioData.length)}async delete(processCurrent=false){let result=new Promise((resolve,_)=>this.addEventListener("status",_=>{this.obj.delete();resolve()},{once:true}));this.obj.safeDelete(processCurrent);return result}static async mk(model,sampleRate,mode,grammar,spkModel){let rec=new Recognizer;let result=new Promise((resolve,reject)=>{rec.addEventListener("status",ev=>{if(!ev.detail)resolve(rec);else reject(ev.detail)},{once:true})});switch(mode){case 1:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model);break;case 2:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,spkModel);break;default:rec.obj=new Module.Recognizer(objs.length-1,sampleRate,model,grammar,0)}return result}}Module.createRecognizer=(model,sampleRate)=>Recognizer.mk(model.obj,sampleRate,1);Module.createRecognizerWithSpkModel=(model,sampleRate,spkModel)=>Recognizer.mk(model.obj,sampleRate,2,null,spkModel.obj);Module.createRecognizerWithGrm=(model,sampleRate,grammar)=>Recognizer.mk(model.obj,sampleRate,3,grammar,null);var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;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(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{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=>fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,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);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||330301440;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,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();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_WASM_WORKER)return _wasmWorkerInitializeRuntime();callRuntimeCallbacks(__ATINIT__)}function postRun(){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 addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;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);function findWasmBinary(){var f="Vosklet.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var 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){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).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)&&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 getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmTable=wasmExports["$"];addOnInit(wasmExports["Y"]);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)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}function mtFireEv(index,typeIdx,content){objs[index].dispatchEvent(new CustomEvent(events[typeIdx],{detail:content==0?null:UTF8ToString(content)}))}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var _wasmWorkerDelayedMessageQueue=[];var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var _wasmWorkerRunPostMessage=e=>{let data=e.data;let wasmCall=data["_wsc"];wasmCall&&getWasmTableEntry(wasmCall)(...data["x"])};var _wasmWorkerAppendToQueue=e=>{_wasmWorkerDelayedMessageQueue.push(e)};var _wasmWorkerInitializeRuntime=()=>{let m=Module;__emscripten_wasm_worker_initialize(m["sb"],m["sz"]);removeEventListener("message",_wasmWorkerAppendToQueue);_wasmWorkerDelayedMessageQueue=_wasmWorkerDelayedMessageQueue.forEach(_wasmWorkerRunPostMessage);addEventListener("message",_wasmWorkerRunPostMessage)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var UTF8Decoder=new TextDecoder;var UTF8ToString=(ptr,maxBytesToRead)=>{if(!ptr)return"";var maxPtr=ptr+maxBytesToRead;for(var end=ptr;!(end>=maxPtr)&&GROWABLE_HEAP_U8()[end];)++end;return UTF8Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var ___call_sighandler=(fp,sig)=>getWasmTableEntry(fp)(sig);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){GROWABLE_HEAP_U32()[this.ptr+4>>2]=type}get_type(){return GROWABLE_HEAP_U32()[this.ptr+4>>2]}set_destructor(destructor){GROWABLE_HEAP_U32()[this.ptr+8>>2]=destructor}get_destructor(){return GROWABLE_HEAP_U32()[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;GROWABLE_HEAP_I8()[this.ptr+12]=caught}get_caught(){return GROWABLE_HEAP_I8()[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;GROWABLE_HEAP_I8()[this.ptr+13]=rethrown}get_rethrown(){return GROWABLE_HEAP_I8()[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){GROWABLE_HEAP_U32()[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return GROWABLE_HEAP_U32()[this.ptr+16>>2]}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var __abort_js=()=>{abort("")};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 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]){ret+=embind_charCodes[GROWABLE_HEAP_U8()[c++]]}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(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{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={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>GROWABLE_HEAP_I8()[pointer]:pointer=>GROWABLE_HEAP_U8()[pointer];case 2:return signed?pointer=>GROWABLE_HEAP_I16()[pointer>>1]:pointer=>GROWABLE_HEAP_U16()[pointer>>1];case 4:return signed?pointer=>GROWABLE_HEAP_I32()[pointer>>2]:pointer=>GROWABLE_HEAP_U32()[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;if(isUnsignedType){maxRange=(1n<<64n)-1n}registerType(primitiveType,{name,fromWireType:value=>value,toWireType:function(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`)}if(typeof value=="number"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{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])},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,writable:true}}))};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})}}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 createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};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}}};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 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||!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])}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,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&®isteredClass.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 nonexistent public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){return getWasmTableEntry(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([", "]))};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);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]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){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[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});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){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 heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],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[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],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,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[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I8()[pointer])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])};case 2:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I16()[pointer>>1])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U16()[pointer>>1])};case 4:return signed?function(pointer){return this["fromWireType"](GROWABLE_HEAP_I32()[pointer>>2])}:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_enum=(rawType,name,size,isSigned)=>{name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{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};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{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 floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F32()[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F64()[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{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,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>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,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=GROWABLE_HEAP_U32()[handle>>2];var data=GROWABLE_HEAP_U32()[handle+4>>2];return new TA(GROWABLE_HEAP_I8().buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name,fromWireType(value){var length=GROWABLE_HEAP_U32()[value>>2];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){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>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}GROWABLE_HEAP_U8()[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&GROWABLE_HEAP_U16()[idx])++idx;endPtr=idx<<1;return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,endPtr))};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}GROWABLE_HEAP_I16()[outPtr>>1]=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];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)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}GROWABLE_HEAP_I32()[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}GROWABLE_HEAP_I32()[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>GROWABLE_HEAP_U16()[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>GROWABLE_HEAP_U32()[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=GROWABLE_HEAP_U32()[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==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/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var _wasmWorkers={};var _wasmWorkersID=1;var _wasmWorkerBlobUrl=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"}));var __emscripten_create_wasm_worker=(stackLowestAddress,stackSize)=>{let worker=_wasmWorkers[_wasmWorkersID]=new Worker(_wasmWorkerBlobUrl);worker.postMessage({$ww:_wasmWorkersID,wasm:wasmModule,js:Module["mainScriptUrlOrBlob"]||_scriptName,wasmMemory,sb:stackLowestAddress,sz:stackSize});worker.onmessage=_wasmWorkerRunPostMessage;return _wasmWorkersID++};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var __setitimer_js=(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,timeout_ms};return 0};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);GROWABLE_HEAP_U32()[timezone>>2]=stdTimezoneOffset*60;GROWABLE_HEAP_I32()[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffsetGROWABLE_HEAP_U8().set(wasmFSPreloadedFiles[index].fileData,buffer);var wasmFSPreloadedDirs=[];var __wasmfs_get_num_preloaded_dirs=()=>wasmFSPreloadedDirs.length;var wasmFSPreloadedFiles=[];var wasmFSPreloadingFlushed=false;var __wasmfs_get_num_preloaded_files=()=>{wasmFSPreloadingFlushed=true;return wasmFSPreloadedFiles.length};var __wasmfs_get_preloaded_child_path=(index,childNameBuffer)=>{var s=wasmFSPreloadedDirs[index].childName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,childNameBuffer,len)};var __wasmfs_get_preloaded_file_mode=index=>wasmFSPreloadedFiles[index].mode;var __wasmfs_get_preloaded_file_size=index=>wasmFSPreloadedFiles[index].fileData.length;var __wasmfs_get_preloaded_parent_path=(index,parentPathBuffer)=>{var s=wasmFSPreloadedDirs[index].parentPath;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,parentPathBuffer,len)};var __wasmfs_get_preloaded_path_name=(index,fileNameBuffer)=>{var s=wasmFSPreloadedFiles[index].pathName;var len=lengthBytesUTF8(s)+1;stringToUTF8(s,fileNameBuffer,len)};var FS_stdin_getChar_buffer=[];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(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var __wasmfs_stdin_get_char=()=>{var c=FS_stdin_getChar();if(typeof c==="number"){return c}return-1};var _emscripten_console_error=str=>{console.error(UTF8ToString(str))};var _emscripten_console_log=str=>{console.log(UTF8ToString(str))};var _emscripten_console_warn=str=>{console.warn(UTF8ToString(str))};var _emscripten_date_now=()=>Date.now();var _emscripten_err=str=>err(UTF8ToString(str));var _emscripten_out=str=>out(UTF8ToString(str));var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _wasmWorkerPostFunction2=(id,funcPtr,arg0,arg1)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1]})};var _emscripten_wasm_worker_post_function_vii=_wasmWorkerPostFunction2;var _wasmWorkerPostFunction3=(id,funcPtr,arg0,arg1,arg2)=>{_wasmWorkers[id].postMessage({_wsc:funcPtr,x:[arg0,arg1,arg2]})};var _emscripten_wasm_worker_post_function_viii=_wasmWorkerPostFunction3;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{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);GROWABLE_HEAP_U32()[penviron_buf_size>>2]=bufSize;return 0};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var _getentropy=(buffer,size)=>{randomFill(GROWABLE_HEAP_U8().subarray(buffer,buffer+size));return 0};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");init_emval();if(ENVIRONMENT_IS_WASM_WORKER){_wasmWorkers[0]=this;addEventListener("message",_wasmWorkerAppendToQueue)}var wasmImports={c:___assert_fail,t:___call_sighandler,d:___cxa_throw,P:__abort_js,q:__embind_register_bigint,S:__embind_register_bool,o:__embind_register_class,j:__embind_register_class_constructor,g:__embind_register_class_function,R:__embind_register_emval,s:__embind_register_enum,k:__embind_register_enum_value,p:__embind_register_float,C:__embind_register_function,i:__embind_register_integer,e:__embind_register_memory_view,r:__embind_register_std_string,n:__embind_register_std_wstring,T:__embind_register_void,I:__emscripten_create_wasm_worker,O:__emscripten_get_now_is_monotonic,v:__emscripten_runtime_keepalive_clear,w:__setitimer_js,K:__tzset_js,E:__wasmfs_copy_preloaded_file_data,B:__wasmfs_get_num_preloaded_dirs,D:__wasmfs_get_num_preloaded_files,z:__wasmfs_get_preloaded_child_path,x:__wasmfs_get_preloaded_file_mode,F:__wasmfs_get_preloaded_file_size,A:__wasmfs_get_preloaded_parent_path,y:__wasmfs_get_preloaded_path_name,H:__wasmfs_stdin_get_char,U:_emscripten_console_error,W:_emscripten_console_log,V:_emscripten_console_warn,f:_emscripten_date_now,l:_emscripten_err,m:_emscripten_get_now,G:_emscripten_out,L:_emscripten_resize_heap,Q:_emscripten_wasm_worker_post_function_vii,h:_emscripten_wasm_worker_post_function_viii,M:_environ_get,N:_environ_sizes_get,b:_exit,J:_getentropy,a:wasmMemory,X:mtFireEv,u:_proc_exit};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["Y"])();var _free=a0=>(_free=wasmExports["Z"])(a0);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["_"])(a0);var ___getTypeName=a0=>(___getTypeName=wasmExports["aa"])(a0);var __emscripten_timeout=(a0,a1)=>(__emscripten_timeout=wasmExports["ba"])(a0,a1);var __emscripten_wasm_worker_initialize=(a0,a1)=>(__emscripten_wasm_worker_initialize=wasmExports["ca"])(a0,a1);Module["UTF8ToString"]=UTF8ToString;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}if(ENVIRONMENT_IS_WASM_WORKER){readyPromiseResolve(Module);return initRuntime()}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>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();moduleRtn=readyPromise; +function h(){p.buffer!=q.buffer&&r();return q}function t(){p.buffer!=q.buffer&&r();return aa}function ba(){p.buffer!=q.buffer&&r();return ca}function da(){p.buffer!=q.buffer&&r();return ha}function u(){p.buffer!=q.buffer&&r();return ia}function z(){p.buffer!=q.buffer&&r();return ja}function ka(){p.buffer!=q.buffer&&r();return la} +var A=moduleArg,ma,na,oa=new Promise((a,b)=>{ma=a;na=b}),pa="object"==typeof window,qa="function"==typeof importScripts,ra="object"==typeof process&&"object"==typeof process.Oa&&"string"==typeof process.Oa.node,sa=A.$ww; +let B=[],ta=["status","partialResult","result"],ua=URL.createObjectURL(new Blob(["(",(()=>{let a=new TextDecoder,b=new TextEncoder;onmessage=async c=>{c=c.data;var d=c.Na.split("/"),e=await navigator.storage.getDirectory();for(var f of d)e=await e.getDirectoryHandle(f,{create:!0});d=await e.getFileHandle("id",{create:!0});f=await e.getFileHandle("model.tgz",{create:!0});e=await d.createSyncAccessHandle();d=await f.createSyncAccessHandle();f=new ArrayBuffer(e.getSize());e.read(f);let g;if(a.decode(f)== +c.id)g=new ArrayBuffer(d.getSize()),d.read(g),c=await (new Response((new Response(g)).body.pipeThrough(new DecompressionStream("gzip")))).arrayBuffer();else{f=await fetch(c.url);if(!f.ok){postMessage("Unable to download model");return}f=f.body.tee();g=await (new Response(f[0].pipeThrough(new CompressionStream("gzip")))).arrayBuffer();d.write(g,{at:0});d.truncate(g.byteLength);c=b.encode(c.id);e.write(c,{at:0});e.truncate(c.length);c=await (new Response(f[1])).arrayBuffer()}e.close();d.close();self.postMessage(c, +[c])}}).toString(),")()"],{type:"text/javascript"})),va=new Worker(ua),wa=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(a){super();this.count=0;this.sa=a.processorOptions.sa;this.buffer=new Float32Array(128*this.sa)}process(a){if(!a[0][0])return!0;this.buffer.set(a[0][0],128*this.count++);this.count>=this.sa&&(this.count=0,this.port.postMessage(this.buffer,[this.buffer.buffer]),this.buffer=new Float32Array(128*this.sa)); +return!0}})}).toString(),")()"],{type:"text/javascript"}));A.cleanUp=async()=>{for(let a of B)await a.delete();URL.revokeObjectURL(wa);URL.revokeObjectURL(ua);va.terminate()};A.createTransferer=async(a,b)=>{await a.audioWorklet.addModule(wa);return new AudioWorkletNode(a,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:{sa:b/128}})}; +async function xa(a,b,c,d){let e=new ya,f=new Promise((g,k)=>{e.addEventListener("status",l=>{l.detail?k(l.detail):(d&&(e.findWord=m=>e.ha.findWord(m)),g(e))},{once:!0})});va.addEventListener("message",g=>{g=g.data;let k=C(g.byteLength);t().set(new Uint8Array(g),k);e.ha=new A.CommonModel(B.length-1,d,"/"+b,c,k,g.byteLength)},{once:!0});va.postMessage({url:a,Na:b,id:c});return f}class ya extends EventTarget{constructor(){super();B.push(this)}delete(){this.ha.delete()}} +A.createModel=async(a,b,c)=>xa(a,b,c,!0);A.createSpkModel=async(a,b,c)=>xa(a,b,c,!1);async function za(a,b,c,d,e){let f=new Aa,g=new Promise((k,l)=>{f.addEventListener("status",m=>{m.detail?l(m.detail):k(f)},{once:!0})});switch(c){case 1:f.ha=new A.Recognizer(B.length-1,b,a);break;case 2:f.ha=new A.Recognizer(B.length-1,b,a,e);break;default:f.ha=new A.Recognizer(B.length-1,b,a,d,0)}return g} +class Aa extends EventTarget{constructor(){super();this.acceptWaveform=a=>{let b=C(4*a.length);ka().set(a,b/4);this.ha.acceptWaveform(b,a.length)};B.push(this);return new Proxy(this,{get(a,b){if(void 0!=a[b]||void 0!=a.ha[b]){var c=a[b];if(c)return c.bind?c.bind(a):c;c=a.ha[b];return c.bind?c.bind(a.ha):c}}})}async delete(a=!1){let b=new Promise(c=>this.addEventListener("status",()=>{this.ha.delete();c()},{once:!0}));this.ha.Ua(a);return b}}A.createRecognizer=(a,b)=>za(a.ha,b,1); +A.createRecognizerWithSpkModel=(a,b,c)=>za(a.ha,b,2,null,c.ha);A.createRecognizerWithGrm=(a,b,c)=>za(a.ha,b,3,c,null);var Ba=Object.assign({},A),Ca="./this.program",D="",Da,Ea; +if(pa||qa)qa?D=self.location.href:"undefined"!=typeof document&&document.currentScript&&(D=document.currentScript.src),_scriptName&&(D=_scriptName),D.startsWith("blob:")?D="":D=D.substr(0,D.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(Ea=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),Da=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url))); +var Fa=A.print||console.log.bind(console),G=A.printErr||console.error.bind(console);Object.assign(A,Ba);Ba=null;A.thisProgram&&(Ca=A.thisProgram);var Ga=A.wasmBinary,p,Ha,Ia=!1,Ja,q,aa,ca,ha,ia,ja,la,Ka,La,Ma; +function r(){var a=p.buffer;A.HEAP8=q=new Int8Array(a);A.HEAP16=ca=new Int16Array(a);A.HEAPU8=aa=new Uint8Array(a);A.HEAPU16=ha=new Uint16Array(a);A.HEAP32=ia=new Int32Array(a);A.HEAPU32=ja=new Uint32Array(a);A.HEAPF32=la=new Float32Array(a);A.HEAPF64=Ma=new Float64Array(a);A.HEAP64=Ka=new BigInt64Array(a);A.HEAPU64=La=new BigUint64Array(a)} +if(A.wasmMemory)p=A.wasmMemory;else if(p=new WebAssembly.Memory({initial:(A.INITIAL_MEMORY||330301440)/65536,maximum:32768,shared:!0}),!(p.buffer instanceof SharedArrayBuffer))throw G("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"),ra&&G("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"), +Error("bad memory");r();var Na=[],Oa=[],Pa=[];function Qa(){sa?(Ra(A.sb,A.sz),removeEventListener("message",Sa),Ta=Ta.forEach(Ua),addEventListener("message",Ua)):Va(Oa)}function Wa(){var a=A.preRun.shift();Na.unshift(a)}var H=0,Xa=null,I=null;function Ya(a){A.onAbort?.(a);a="Aborted("+a+")";G(a);Ia=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");na(a);throw a;}var Za=a=>a.startsWith("data:application/octet-stream;base64,"),$a; +function ab(a){if(a==$a&&Ga)return new Uint8Array(Ga);if(Ea)return Ea(a);throw"both async and sync fetching of the wasm failed";}function bb(a){return Ga?Promise.resolve().then(()=>ab(a)):Da(a).then(b=>new Uint8Array(b),()=>ab(a))}function eb(a,b,c){return bb(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Ya(d)})} +function fb(a,b){var c=$a;return Ga||"function"!=typeof WebAssembly.instantiateStreaming||Za(c)||"function"!=typeof fetch?eb(c,a,b):fetch(c,{credentials:"same-origin"}).then(d=>WebAssembly.instantiateStreaming(d,a).then(b,function(e){G(`wasm streaming compile failed: ${e}`);G("falling back to ArrayBuffer instantiation");return eb(c,a,b)}))}function gb(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a} +var Ta=[],hb=[],ib,jb=a=>{var b=hb[a];b||(a>=hb.length&&(hb.length=a+1),hb[a]=b=ib.get(a));return b},Ua=a=>{a=a.data;let b=a._wsc;b&&jb(b)(...a.x)},Sa=a=>{Ta.push(a)},Va=a=>{for(;0{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&t()[c];)++c;return lb.decode(t().slice(a,c))};class mb{constructor(a){this.fa=a-24}} +var nb=0,ob=0,pb=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},qb,K=a=>{for(var b="";t()[a];)b+=qb[t()[a++]];return b},L={},M={},rb={},N,sb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(k){k=c(k);if(k.length!==a.length)throw new O("Mismatched type converter count");for(var l=0;lrb[k]=b);var e=Array(b.length),f=[],g=0;b.forEach((k,l)=>{M.hasOwnProperty(k)?e[l]=M[k]:(f.push(k),L.hasOwnProperty(k)|| +(L[k]=[]),L[k].push(()=>{e[l]=M[k];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function tb(a,b,c={}){var d=b.name;if(!a)throw new N(`type "${d}" must have a positive integer typeid pointer`);if(M.hasOwnProperty(a)){if(c.Ha)return;throw new N(`Cannot register type '${d}' twice`);}M[a]=b;delete rb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return tb(a,b,c)} +var ub=(a,b,c)=>{switch(b){case 1:return c?d=>h()[d]:d=>t()[d];case 2:return c?d=>ba()[d>>1]:d=>da()[d>>1];case 4:return c?d=>u()[d>>2]:d=>z()[d>>2];case 8:return c?d=>Ka[d>>3]:d=>La[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},vb=a=>{throw new N(a.da.ga.ea.name+" instance already deleted");},wb=!1,xb=()=>{},yb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ka)return null;a=yb(a,b,c.ka);return null===a?null:c.Da(a)},zb={},R=[],Ab=()=>{for(;R.length;){var a=R.pop();a.da.qa= +!1;a["delete"]()}},S,T={},Bb=(a,b)=>{if(void 0===b)throw new N("ptr should not be undefined");for(;a.ka;)b=a.ua(b),a=a.ka;return T[b]},Cb=(a,b)=>{if(!b.ga||!b.fa)throw new O("makeClassHandle requires ptr and ptrType");if(!!b.ma!==!!b.ia)throw new O("Both smartPtrType and smartPtr must be specified");b.count={value:1};return U(Object.create(a,{da:{value:b,writable:!0}}))},U=a=>{if("undefined"===typeof FinalizationRegistry)return U=b=>b,a;wb=new FinalizationRegistry(b=>{b=b.da;--b.count.value;0===b.count.value&& +(b.ia?b.ma.oa(b.ia):b.ga.ea.oa(b.fa))});U=b=>{var c=b.da;c.ia&&wb.register(b,{da:c},b);return b};xb=b=>{wb.unregister(b)};return U(a)};function Db(){} +var Eb=(a,b)=>Object.defineProperty(b,"name",{value:a}),Fb=(a,b,c)=>{if(void 0===a[b].ja){var d=a[b];a[b]=function(...e){if(!a[b].ja.hasOwnProperty(e.length))throw new N(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].ja})!`);return a[b].ja[e.length].apply(this,e)};a[b].ja=[];a[b].ja[d.va]=d}},Gb=(a,b,c)=>{if(A.hasOwnProperty(a)){if(void 0===c||void 0!==A[a].ja&&void 0!==A[a].ja[c])throw new N(`Cannot register public name '${a}' twice`);Fb(A,a,a); +if(A.hasOwnProperty(c))throw new N(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);A[a].ja[c]=b}else A[a]=b,void 0!==c&&(A[a].Ra=c)},Hb=a=>{if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function Ib(a,b,c,d,e,f,g,k){this.name=a;this.constructor=b;this.ra=c;this.oa=d;this.ka=e;this.Fa=f;this.ua=g;this.Da=k;this.Ja=[]} +var Jb=(a,b,c)=>{for(;b!==c;){if(!b.ua)throw new N(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.ua(a);b=b.ka}return a};function Kb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.da)throw new N(`Cannot pass "${pb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return Jb(b.da.fa,b.da.ga.ea,this.ea)} +function Lb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);if(this.xa){var c=this.Ka();null!==a&&a.push(this.oa,c);return c}return 0}if(!b||!b.da)throw new N(`Cannot pass "${pb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.wa&&b.da.ga.wa)throw new N(`Cannot convert argument of type ${b.da.ma?b.da.ma.name:b.da.ga.name} to parameter type ${this.name}`);c=Jb(b.da.fa,b.da.ga.ea,this.ea);if(this.xa){if(void 0=== +b.da.ia)throw new N("Passing raw pointer to smart pointer is illegal");switch(this.Ma){case 0:if(b.da.ma===this)c=b.da.ia;else throw new N(`Cannot convert argument of type ${b.da.ma?b.da.ma.name:b.da.ga.name} to parameter type ${this.name}`);break;case 1:c=b.da.ia;break;case 2:if(b.da.ma===this)c=b.da.ia;else{var d=b.clone();c=this.La(c,Mb(()=>d["delete"]()));null!==a&&a.push(this.oa,c)}break;default:throw new N("Unsupporting sharing policy");}}return c} +function Nb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.da)throw new N(`Cannot pass "${pb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.da.ga.wa)throw new N(`Cannot convert argument of type ${b.da.ga.name} to parameter type ${this.name}`);return Jb(b.da.fa,b.da.ga.ea,this.ea)}function Ob(a){return this.fromWireType(z()[a>>2])} +function Pb(a,b,c,d,e,f,g,k,l,m,n){this.name=a;this.ea=b;this.ya=c;this.wa=d;this.xa=e;this.Ia=f;this.Ma=g;this.Ba=k;this.Ka=l;this.La=m;this.oa=n;e||void 0!==b.ka?this.toWireType=Lb:(this.toWireType=d?Kb:Nb,this.la=null)} +var Qb=(a,b,c)=>{if(!A.hasOwnProperty(a))throw new O("Replacing nonexistent public symbol");void 0!==A[a].ja&&void 0!==c?A[a].ja[c]=b:(A[a]=b,A[a].va=c)},V=(a,b)=>{a=K(a);var c=jb(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Rb,Tb=a=>{a=Sb(a);var b=K(a);W(a);return b},Ub=(a,b)=>{function c(f){e[f]||M[f]||(rb[f]?rb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Rb(`${a}: `+d.map(Tb).join([", "]));},Vb=(a,b)=>{for(var c= +[],d=0;d>2]);return c},Wb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Xb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var k=null!==b[1]&&null!==c,l=Xb(b);c="void"!==b[0].name;d=[a,sb,d,e,Wb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},bc=[],X=[],Mb=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=bc.pop()||X.length;X[b]=a;X[b+1]=1;return b}},cc={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Mb(b),na:8,readValueFromPointer:Ob,la:null},dc=(a,b,c)=>{switch(b){case 1:return c? +function(d){return this.fromWireType(h()[d])}:function(d){return this.fromWireType(t()[d])};case 2:return c?function(d){return this.fromWireType(ba()[d>>1])}:function(d){return this.fromWireType(da()[d>>1])};case 4:return c?function(d){return this.fromWireType(u()[d>>2])}:function(d){return this.fromWireType(z()[d>>2])};default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},ec=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Tb(a)}`,new N(a);return b},fc=(a,b)=>{switch(b){case 4:return function(c){return this.fromWireType(ka()[c>> +2])};case 8:return function(c){var d=this.fromWireType;p.buffer!=q.buffer&&r();return d.call(this,Ma[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var k=a.charCodeAt(++f);g=65536+((g&1023)<<10)|k&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break; +b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0;return c-e},gc=(a,b)=>{var c=17;Y(a,t(),b,c)},hc=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},ic=new TextDecoder("utf-16le"),jc=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return ic.decode(t().slice(a,c))},kc=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e>1]=f;b+=2}ba()[b>>1]=0;return b-d},lc=a=>2*a.length,mc=(a,b)=>{for(var c=0,d="";!(c>=b/4);){var e=u()[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d},nc=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e=f){var g=a.charCodeAt(++e);f=65536+((f&1023)<<10)|g&1023}u()[b>>2]=f;b+=4;if(b+4>c)break}u()[b>>2]=0;return b-d},oc=a=>{for(var b= +0,c=0;c=d&&++c;b+=4}return b},pc={},qc=1,rc=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"})),sc={},tc=a=>{if(!(a instanceof gb||"unwind"==a))throw a;},uc=0,vc=a=>{Ja=a;kb||0{if(!Ia)try{if(a(), +!(kb||0performance.now(); +for(var yc=[],zc=[],Ac=[],Bc={},Dc=()=>{if(!Cc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:Ca||"./this.program"},b;for(b in Bc)void 0===Bc[b]?delete a[b]:a[b]=Bc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Cc=c}return Cc},Cc,Ec=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))), +a);Ya("initRandomDevice")},Fc=a=>(Fc=Ec())(a),Gc=Array(256),Hc=0;256>Hc;++Hc)Gc[Hc]=String.fromCharCode(Hc);qb=Gc;N=A.BindingError=class extends Error{constructor(a){super(a);this.name="BindingError"}};O=A.InternalError=class extends Error{constructor(a){super(a);this.name="InternalError"}}; +Object.assign(Db.prototype,{isAliasOf:function(a){if(!(this instanceof Db&&a instanceof Db))return!1;var b=this.da.ga.ea,c=this.da.fa;a.da=a.da;var d=a.da.ga.ea;for(a=a.da.fa;b.ka;)c=b.ua(c),b=b.ka;for(;d.ka;)a=d.ua(a),d=d.ka;return b===d&&c===a},clone:function(){this.da.fa||vb(this);if(this.da.ta)return this.da.count.value+=1,this;var a=U,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.da;a=a(c.call(b,d,{da:{value:{count:e.count,qa:e.qa,ta:e.ta,fa:e.fa,ga:e.ga,ia:e.ia,ma:e.ma}}}));a.da.count.value+= +1;a.da.qa=!1;return a},["delete"](){this.da.fa||vb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");xb(this);var a=this.da;--a.count.value;0===a.count.value&&(a.ia?a.ma.oa(a.ia):a.ga.ea.oa(a.fa));this.da.ta||(this.da.ia=void 0,this.da.fa=void 0)},isDeleted:function(){return!this.da.fa},deleteLater:function(){this.da.fa||vb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(Ab);this.da.qa=!0;return this}}); +A.getInheritedInstanceCount=()=>Object.keys(T).length;A.getLiveInheritedInstances=()=>{var a=[],b;for(b in T)T.hasOwnProperty(b)&&a.push(T[b]);return a};A.flushPendingDeletes=Ab;A.setDelayFunction=a=>{S=a;R.length&&S&&S(Ab)}; +Object.assign(Pb.prototype,{Ga(a){this.Ba&&(a=this.Ba(a));return a},Aa(a){this.oa?.(a)},na:8,readValueFromPointer:Ob,fromWireType:function(a){function b(){return this.xa?Cb(this.ea.ra,{ga:this.Ia,fa:c,ma:this,ia:a}):Cb(this.ea.ra,{ga:this,fa:a})}var c=this.Ga(a);if(!c)return this.Aa(a),null;var d=Bb(this.ea,c);if(void 0!==d){if(0===d.da.count.value)return d.da.fa=c,d.da.ia=a,d.clone();d=d.clone();this.Aa(a);return d}d=this.ea.Fa(c);d=zb[d];if(!d)return b.call(this);d=this.wa?d.Ca:d.pointerType;var e= +yb(c,this.ea,d.ea);return null===e?b.call(this):this.xa?Cb(d.ea.ra,{ga:d,fa:e,ma:this,ia:a}):Cb(d.ea.ra,{ga:d,fa:e})}});Rb=A.UnboundTypeError=((a,b)=>{var c=Eb(b,function(d){this.name=b;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`};return c})(Error,"UnboundTypeError"); +X.push(0,1,void 0,1,null,1,!0,1,!1,1);A.count_emval_handles=()=>X.length/2-5-bc.length;sa&&(pc[0]=this,addEventListener("message",Sa)); +var Jc={c:(a,b,c,d)=>{Ya(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},t:(a,b)=>jb(a)(b),d:(a,b,c)=>{var d=new mb(a);z()[d.fa+16>>2]=0;z()[d.fa+4>>2]=b;z()[d.fa+8>>2]=c;nb=a;ob++;throw nb;},P:()=>{Ya("")},q:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:function(d,e){if("bigint"!=typeof e&&"number"!=typeof e)throw new TypeError(`Cannot convert "${pb(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},na:8,readValueFromPointer:ub(b, +c,-1==b.indexOf("u")),la:null})},S:(a,b,c,d)=>{b=K(b);P(a,{name:b,fromWireType:function(e){return!!e},toWireType:function(e,f){return f?c:d},na:8,readValueFromPointer:function(e){return this.fromWireType(t()[e])},la:null})},o:(a,b,c,d,e,f,g,k,l,m,n,x,v)=>{n=K(n);f=V(e,f);k&&=V(g,k);m&&=V(l,m);v=V(x,v);var y=Hb(n);Gb(y,function(){Ub(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var E=w.ea;var ea=E.ra}else ea=Db.prototype;w=Eb(n,function(...cb){if(Object.getPrototypeOf(this)!== +db)throw new N("Use 'new' to construct "+n);if(void 0===F.pa)throw new N(n+" has no accessible constructor");var Yb=F.pa[cb.length];if(void 0===Yb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${cb.length}) - expected (${Object.keys(F.pa).toString()}) parameters instead!`);return Yb.apply(this,cb)});var db=Object.create(ea,{constructor:{value:w}});w.prototype=db;var F=new Ib(n,w,db,v,E,f,k,m);if(F.ka){var fa;(fa=F.ka).za??(fa.za=[]);F.ka.za.push(F)}E=new Pb(n,F,!0,!1, +!1);fa=new Pb(n+"*",F,!1,!1,!1);ea=new Pb(n+" const*",F,!1,!0,!1);zb[a]={pointerType:fa,Ca:ea};Qb(y,w);return[E,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Vb(b,c);e=V(d,e);Q([],[a],k=>{k=k[0];var l=`constructor ${k.name}`;void 0===k.ea.pa&&(k.ea.pa=[]);if(void 0!==k.ea.pa[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${k.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);k.ea.pa[b-1]=()=> +{Ub(`Cannot construct ${k.name} due to unbound types`,g)};Q([],g,m=>{m.splice(1,0,null);k.ea.pa[b-1]=$b(l,m,null,e,f);return[]});return[]})},g:(a,b,c,d,e,f,g,k,l)=>{var m=Vb(c,d);b=K(b);b=ac(b);f=V(e,f);Q([],[a],n=>{function x(){Ub(`Cannot call ${v} due to unbound types`,m)}n=n[0];var v=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);k&&n.ea.Ja.push(b);var y=n.ea.ra,w=y[b];void 0===w||void 0===w.ja&&w.className!==n.name&&w.va===c-2?(x.va=c-2,x.className=n.name,y[b]=x):(Fb(y,b,v),y[b].ja[c- +2]=x);Q([],m,E=>{E=$b(v,E,n,f,g,l);void 0===y[b].ja?(E.va=c-2,y[b]=E):y[b].ja[c-2]=E;return[]});return[]})},R:a=>P(a,cc),s:(a,b,c,d)=>{function e(){}b=K(b);e.values={};P(a,{name:b,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:(f,g)=>g.value,na:8,readValueFromPointer:dc(b,c,d),la:null});Gb(b,e)},k:(a,b,c)=>{var d=ec(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:Eb(`${d.name}_${b}`,function(){})}});a.values[c]= +d;a[b]=d},p:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:(d,e)=>e,na:8,readValueFromPointer:fc(b,c),la:null})},C:(a,b,c,d,e,f,g)=>{var k=Vb(b,c);a=K(a);a=ac(a);e=V(d,e);Gb(a,function(){Ub(`Cannot call ${a} due to unbound types`,k)},b-1);Q([],k,l=>{Qb(a,$b(a,[l[0],null].concat(l.slice(1)),null,e,f,g),b-1);return[]})},i:(a,b,c,d,e)=>{b=K(b);-1===e&&(e=4294967295);e=k=>k;if(0===d){var f=32-8*c;e=k=>k<>>f}var g=b.includes("unsigned")?function(k,l){return l>>>0}:function(k,l){return l}; +P(a,{name:b,fromWireType:e,toWireType:g,na:8,readValueFromPointer:ub(b,c,0!==d),la:null})},e:(a,b,c)=>{function d(f){var g=z()[f>>2];f=z()[f+4>>2];return new e(h().buffer,f,g)}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=K(c);P(a,{name:c,fromWireType:d,na:8,readValueFromPointer:d},{Ha:!0})},r:(a,b)=>{b=K(b);var c="std::string"===b;P(a,{name:b,fromWireType:function(d){var e=z()[d>>2],f=d+4;if(c)for(var g=f,k= +0;k<=e;++k){var l=f+k;if(k==e||0==t()[l]){g=J(g,l-g);if(void 0===m)var m=g;else m+=String.fromCharCode(0),m+=g;g=l+1}}else{m=Array(e);for(k=0;k> +2]=g;if(c&&f)g+=1,Y(e,t(),l,g);else if(f)for(f=0;f{c=K(c);if(2===b){var d=jc;var e=kc;var f=lc;var g=k=>da()[k>>1]}else 4===b&&(d=mc,e=nc,f=oc,g=k=>z()[k>>2]);P(a,{name:c,fromWireType:k=>{for(var l=z()[k>>2],m,n=k+4,x=0;x<=l;++x){var v=k+4+x*b;if(x==l||0== +g(v))n=d(n,v-n),void 0===m?m=n:(m+=String.fromCharCode(0),m+=n),n=v+b}W(k);return m},toWireType:(k,l)=>{if("string"!=typeof l)throw new N(`Cannot pass non-string to C++ string type ${c}`);var m=f(l),n=C(4+m+b);z()[n>>2]=m/b;e(l,n+4,m+b);null!==k&&k.push(W,n);return n},na:8,readValueFromPointer:Ob,la(k){W(k)}})},T:(a,b)=>{b=K(b);P(a,{Qa:!0,name:b,na:0,fromWireType:()=>{},toWireType:()=>{}})},I:(a,b)=>{let c=pc[qc]=new Worker(rc);c.postMessage({$ww:qc,wasm:Ha,js:A.mainScriptUrlOrBlob||_scriptName,wasmMemory:p, +sb:a,sz:b});c.onmessage=Ua;return qc++},O:()=>1,v:()=>{kb=!1;uc=0},w:(a,b)=>{sc[a]&&(clearTimeout(sc[a].id),delete sc[a]);if(!b)return 0;var c=setTimeout(()=>{delete sc[a];wc(()=>Ic(a,xc()))},b);sc[a]={id:c,Va:b};return 0},K:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);z()[a>>2]=60*g;u()[b>>2]=Number(f!=e);b=k=>{var l=Math.abs(k);return`UTC${0<=k?"-":"+"}${String(Math.floor(l/60)).padStart(2,"0")}${String(l% +60).padStart(2,"0")}`};a=b(f);b=b(e);et().set(zc[a].Ea,b),B:()=>yc.length,D:()=>zc.length,z:(a,b)=>{a=yc[a].Pa;var c=hc(a)+1;Y(a,t(),b,c)},x:a=>zc[a].mode,F:a=>zc[a].Ea.length,A:(a,b)=>{a=yc[a].Sa;var c=hc(a)+1;Y(a,t(),b,c)},y:(a,b)=>{a=zc[a].Ta;var c=hc(a)+1;Y(a,t(),b,c)},H:()=>{a:{if(!Ac.length){var a=null;"undefined"!=typeof window&&"function"==typeof window.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){var b=null;break a}b=Array(hc(a)+ +1);a=Y(a,b,0,b.length);b.length=a;Ac=b}b=Ac.shift()}return"number"===typeof b?b:-1},U:a=>{console.error(J(a))},W:a=>{console.log(J(a))},V:a=>{console.warn(J(a))},f:()=>Date.now(),l:a=>G(J(a)),m:xc,G:a=>Fa(J(a)),L:a=>{var b=t().length;a>>>=0;if(a<=b||2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-p.buffer.byteLength+65535)/65536;try{p.grow(d);r();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1}, +Q:(a,b,c,d)=>{pc[a].postMessage({_wsc:b,x:[c,d]})},h:(a,b,c,d,e)=>{pc[a].postMessage({_wsc:b,x:[c,d,e]})},M:(a,b)=>{var c=0;Dc().forEach((d,e)=>{var f=b+c;e=z()[a+4*e>>2]=f;for(f=0;f{var c=Dc();z()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);z()[b>>2]=d;return 0},b:a=>{Ja=a;vc(a)},J:(a,b)=>{Fc(t().subarray(a,a+b));return 0},a:p,X:function(a,b,c){B[a].dispatchEvent(new CustomEvent(ta[b],{detail:0==c?null:J(c)}))}, +u:vc},Z=function(){function a(c,d){Z=c.exports;ib=Z.$;Oa.unshift(Z.Y);Ha=d;H--;A.monitorRunDependencies?.(H);0==H&&(null!==Xa&&(clearInterval(Xa),Xa=null),I&&(c=I,I=null,c()));return Z}var b={a:Jc};H++;A.monitorRunDependencies?.(H);if(A.instantiateWasm)try{return A.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}$a||=Za("Vosklet.wasm")?"Vosklet.wasm":A.locateFile?A.locateFile("Vosklet.wasm",D):D+"Vosklet.wasm";fb(b,function(c){a(c.instance,c.module)}).catch(na); +return{}}(),W=a=>(W=Z.Z)(a),C=A._malloc=a=>(C=A._malloc=Z._)(a),Sb=a=>(Sb=Z.aa)(a),Ic=(a,b)=>(Ic=Z.ba)(a,b),Ra=(a,b)=>(Ra=Z.ca)(a,b);A.UTF8ToString=J;var Kc;I=function Lc(){Kc||Mc();Kc||(I=Lc)}; +function Mc(){function a(){if(!Kc&&(Kc=!0,A.calledRun=!0,!Ia)){Qa();ma(A);A.onRuntimeInitialized?.();if(A.postRun)for("function"==typeof A.postRun&&(A.postRun=[A.postRun]);A.postRun.length;){var b=A.postRun.shift();Pa.unshift(b)}Va(Pa)}}if(!(0{setTimeout(()=>A.setStatus(""),1);a()},1)):a())}} +if(A.preInit)for("function"==typeof A.preInit&&(A.preInit=[A.preInit]);0 { @@ -61,14 +66,15 @@ let processorURL = URL.createObjectURL(new Blob(['(', (() => { } }) }).toString(), ')()'], { type: "text/javascript" })); -Module.cleanUp = async () => { + +Module['cleanUp'] = async () => { for(let obj of objs) await obj.delete(); URL.revokeObjectURL(processorURL); URL.revokeObjectURL(storageWorkerURL); storageWorker.terminate(); } -Module.createTransferer = async (ctx, bufferSize) => { +Module['createTransferer'] = async (ctx, bufferSize) => { await ctx.audioWorklet.addModule(processorURL); return new AudioWorkletNode(ctx, "VoskletTransferer", { channelCountMode: "explicit", @@ -92,7 +98,7 @@ class CommonModel extends EventTarget { let result = new Promise((resolve, reject) => { mdl.addEventListener("status", ev => { if(!ev.detail) { - if(normalMdl) mdl.findWord = word => mdl.obj.findWord(word) + if(normalMdl) mdl['findWord'] = word => mdl.obj['findWord'](word) resolve(mdl) } else reject(ev.detail) @@ -102,7 +108,7 @@ class CommonModel extends EventTarget { tar = tar.data; let tarStart = _malloc(tar.byteLength); HEAPU8.set(new Uint8Array(tar), tarStart); - mdl.obj = new Module.CommonModel(objs.length - 1, normalMdl, "/" + storepath, id, tarStart, tar.byteLength); + mdl.obj = new Module['CommonModel'](objs.length - 1, normalMdl, "/" + storepath, id, tarStart, tar.byteLength); }, { once: true }); storageWorker.postMessage({ url: url, @@ -113,15 +119,21 @@ class CommonModel extends EventTarget { } } -Module.createModel = async (url, storepath, id) => +Module['createModel'] = async (url, storepath, id) => CommonModel.mk(url, storepath, id, true); -Module.createSpkModel = async (url, storepath, id) => +Module['createSpkModel'] = async (url, storepath, id) => CommonModel.mk(url, storepath, id, false); class Recognizer extends EventTarget { - constructor() { + constructor() { super(); + // Closure workaround, this is removed if I put it as a regular class function. For some reason delete() doesn't + this['acceptWaveform'] = audioData => { + let start = _malloc(audioData.length * 4); + HEAPF32.set(audioData, start / 4); + this.obj['acceptWaveform'](start, audioData.length); + } objs.push(this); return new Proxy(this, { get(self, prop, _) { @@ -133,11 +145,6 @@ class Recognizer extends EventTarget { } }) } - acceptWaveform(audioData) { - let start = _malloc(audioData.length * 4); - HEAPF32.set(audioData, start / 4); - this.obj.acceptWaveform(start, audioData.length); - } async delete(processCurrent = false) { let result = new Promise((resolve, _) => this.addEventListener("status", _ => { this.obj.delete(); @@ -156,22 +163,25 @@ class Recognizer extends EventTarget { }) switch(mode) { case 1: - rec.obj = new Module.Recognizer(objs.length - 1, sampleRate, model); + rec.obj = new Module['Recognizer'](objs.length - 1, sampleRate, model); break; case 2: - rec.obj = new Module.Recognizer(objs.length -1, sampleRate, model, spkModel); + rec.obj = new Module['Recognizer'](objs.length -1, sampleRate, model, spkModel); break; default: - rec.obj = new Module.Recognizer(objs.length - 1, sampleRate, model, grammar, 0); + rec.obj = new Module['Recognizer'](objs.length - 1, sampleRate, model, grammar, 0); } return result; } } -Module.createRecognizer = (model, sampleRate) => + +Module['createRecognizer'] = (model, sampleRate) => Recognizer.mk(model.obj, sampleRate, 1); -Module.createRecognizerWithSpkModel = (model, sampleRate, spkModel) => +Module['createRecognizerWithSpkModel'] = (model, sampleRate, spkModel) => Recognizer.mk(model.obj, sampleRate, 2, null, spkModel.obj); -Module.createRecognizerWithGrm = (model, sampleRate, grammar) => +Module['createRecognizerWithGrm'] = (model, sampleRate, grammar) => Recognizer.mk(model.obj, sampleRate, 3, grammar, null); + + diff --git a/src/make b/src/make index 3df23c0..386f58a 100755 --- a/src/make +++ b/src/make @@ -72,7 +72,7 @@ if [ ! -d "$VOSK" ]; then fi cd "$SRC" && - em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O3 -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fno-rtti -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js -o ../Vosklet.js + em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O3 -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fno-rtti -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js --closure 1 -o ../Vosklet.js cd .. && rm -f Vosklet.worker.js @@ -80,6 +80,6 @@ cp Vosklet.js Examples/Vosklet.js && cp Vosklet.wasm Examples/Vosklet.wasm && # Can't serve files from raw.githubusercontent with Content-Encoding: gzip header so the browser won't decompress automatically. Manually decompressing instead. -sed -i 's/.pipeThrough(new CompressionStream("gzip"))//;s/teed\[1\]/teed[1].pipeThrough(new DecompressionStream("gzip"))/' Examples/Vosklet.js && +sed -i 's/.pipeThrough(new CompressionStream("gzip"))//;s/\[1\])/[1]).pipeThrough(new DecompressionStream("gzip"))/' Examples/Vosklet.js && rm -rf /tmp/openfst \ No newline at end of file diff --git a/test b/test index edb81c7..f134ba6 100755 --- a/test +++ b/test @@ -41,8 +41,8 @@ echo "Mode = $MODE" && if [ "$MODE" = 0 ]; then em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O0 -g3 -Wall -Werror -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fno-rtti -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sSTACK_OVERFLOW_CHECK=2 -sASSERTIONS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sRUNTIME_DEBUG -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sDISABLE_EXCEPTION_CATCHING=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js -o ../test.js elif [ "$MODE" = 1 ]; then - em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O3 -Wall -Werror -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fno-rtti -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js -o ../test.js + em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O3 -Wall -Werror -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fno-rtti -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sEXPORTED_FUNCTIONS=_malloc -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sEXPORTED_RUNTIME_METHODS=UTF8ToString -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js Wrapper.js --closure 1 -o ../test.js fi cd .. && -sed -i 's/.pipeThrough(new CompressionStream("gzip"))//;s/teed\[1\]/teed[1].pipeThrough(new DecompressionStream("gzip"))/' test.js && +sed -i 's/.pipeThrough(new CompressionStream("gzip"))//;s/\[1\])/[1]).pipeThrough(new DecompressionStream("gzip"))/' test.js && rm -f test.worker.js \ No newline at end of file