From 3290a321f2a00a84e48506b0f228d588b3901cd8 Mon Sep 17 00:00:00 2001 From: msqr1 Date: Sat, 28 Sep 2024 12:23:33 -0700 Subject: [PATCH] Fix regression in recognizer delete() --- Examples/Vosklet.js | 2 +- Examples/Vosklet.wasm | Bin 2534556 -> 2534556 bytes Vosklet.js | 2 +- Vosklet.wasm | Bin 2534556 -> 2534556 bytes src/Wrapper.js | 49 +++++++++++++++++++++--------------------- test | 6 +++--- 6 files changed, 29 insertions(+), 30 deletions(-) diff --git a/Examples/Vosklet.js b/Examples/Vosklet.js index b17ff7c..403b3c8 100644 --- a/Examples/Vosklet.js +++ b/Examples/Vosklet.js @@ -1 +1 @@ -var loadVosklet = (() => { var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; return (function(moduleArg = {}) { var moduleRtn;function k(){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&&"renderer"!=process.type,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,h)=>{e.addEventListener("status",l=>{l.detail?h(l.detail):(d&&(e.findWord=m=>e.ha.findWord(m)),g(e))},{once:!0})});va.addEventListener("message",g=>{g=g.data;let h=C(g.byteLength);t().set(new Uint8Array(g),h);e.ha=new A.CommonModel(B.length-1,d,"/"+b,c,h,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((h,l)=>{f.addEventListener("status",m=>{m.detail?l(m.detail):h(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),F="",Ca,Da;if(pa||qa)qa?F=self.location.href:"undefined"!=typeof document&&document.currentScript&&(F=document.currentScript.src),_scriptName&&(F=_scriptName),F.startsWith("blob:")?F="":F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(Da=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),Ca=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));var Ea=console.log.bind(console),G=console.error.bind(console);Object.assign(A,Ba);Ba=null;var p,Fa,Ga=!1,Ha,q,aa,ca,ha,ia,ja,la,Ia,Ja,Ka;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=Ka=new Float64Array(a);A.HEAP64=Ia=new BigInt64Array(a);A.HEAPU64=Ja=new BigUint64Array(a)}if(A.wasmMemory)p=A.wasmMemory;else if(p=new WebAssembly.Memory({initial:5040,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 La=[],Ma=[],Na=[];function Oa(){if(sa)Pa(A.sb,A.sz),removeEventListener("message",Qa),Ra=Ra.forEach(Sa),addEventListener("message",Sa);else for(;0a.startsWith("data:application/octet-stream;base64,"),Wa;function Xa(a){return Ca(a).then(b=>new Uint8Array(b),()=>{if(Da)var b=Da(a);else throw"both async and sync fetching of the wasm failed";return b})}function Ya(a,b,c){return Xa(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Ua(d)})}function ab(a,b){var c=Wa;return"function"!=typeof WebAssembly.instantiateStreaming||Va(c)||"function"!=typeof fetch?Ya(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 Ya(c,a,b)}))}function bb(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ra=[],cb=[],db,eb=a=>{var b=cb[a];b||(a>=cb.length&&(cb.length=a+1),cb[a]=b=db.get(a));return b},Sa=a=>{a=a.data;let b=a._wsc;b&&eb(b)(...a.x)},Qa=a=>{Ra.push(a)},fb=new TextDecoder,J=(a,b)=>{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&t()[c];)++c;return fb.decode(t().slice(a,c))};class gb{constructor(a){this.fa=a-24}}var hb=0,ib=0,jb=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},kb,K=a=>{for(var b="";t()[a];)b+=kb[t()[a++]];return b},L={},M={},lb={},N,mb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new O("Mismatched type converter count");for(var l=0;llb[h]=b);var e=Array(b.length),f=[],g=0;b.forEach((h,l)=>{M.hasOwnProperty(h)?e[l]=M[h]:(f.push(h),L.hasOwnProperty(h)||(L[h]=[]),L[h].push(()=>{e[l]=M[h];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function nb(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 lb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return nb(a,b,c)}var ob=(a,b,c)=>{switch(b){case 1:return c?d=>k()[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=>Ia[d>>3]:d=>Ja[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},pb=a=>{throw new N(a.da.ga.ea.name+" instance already deleted");},qb=!1,rb=()=>{},sb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ka)return null;a=sb(a,b,c.ka);return null===a?null:c.Da(a)},tb={},R=[],ub=()=>{for(;R.length;){var a=R.pop();a.da.qa=!1;a["delete"]()}},S,T={},vb=(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]},wb=(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;qb=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&&qb.register(b,{da:c},b);return b};rb=b=>{qb.unregister(b)};return U(a)};function xb(){}var yb=(a,b)=>Object.defineProperty(b,"name",{value:a}),zb=(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}},Ab=(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`);zb(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)},Bb=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 Cb(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.ra=c;this.oa=d;this.ka=e;this.Fa=f;this.ua=g;this.Da=h;this.Ja=[]}var Db=(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 Eb(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 "${jb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return Db(b.da.fa,b.da.ga.ea,this.ea)}function Fb(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 "${jb(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=Db(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,Gb(()=>d["delete"]()));null!==a&&a.push(this.oa,c)}break;default:throw new N("Unsupporting sharing policy");}}return c}function Hb(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 "${jb(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 Db(b.da.fa,b.da.ga.ea,this.ea)}function Ib(a){return this.fromWireType(z()[a>>2])}function Jb(a,b,c,d,e,f,g,h,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=h;this.Ka=l;this.La=m;this.oa=n;e||void 0!==b.ka?this.toWireType=Fb:(this.toWireType=d?Eb:Hb,this.la=null)}var Kb=(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=eb(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Lb,Nb=a=>{a=Mb(a);var b=K(a);W(a);return b},Ob=(a,b)=>{function c(f){e[f]||M[f]||(lb[f]?lb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Lb(`${a}: `+d.map(Nb).join([", "]));},Pb=(a,b)=>{for(var c=[],d=0;d>2]);return c},Qb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Rb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,l=Rb(b);c="void"!==b[0].name;d=[a,mb,d,e,Qb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},Wb=[],X=[],Gb=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Wb.pop()||X.length;X[b]=a;X[b+1]=1;return b}},Xb={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Gb(b),na:8,readValueFromPointer:Ib,la:null},Yb=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(k()[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}`);}},Zb=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Nb(a)}`,new N(a);return b},$b=(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,Ka[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&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},ac=(a,b)=>{var c=17;Y(a,t(),b,c)},bc=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},cc=new TextDecoder("utf-16le"),dc=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return cc.decode(t().slice(a,c))},ec=(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},fc=a=>2*a.length,gc=(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},hc=(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},ic=a=>{for(var b=0,c=0;c=d&&++c;b+=4}return b},jc={},kc=1,lc=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"})),mc={},nc=a=>{if(!(a instanceof bb||"unwind"==a))throw a;},oc=0,pc=a=>{Ha=a;0{if(!Ga)try{if(a(),!(0{if(!vc){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",_:"./this.program"},b;for(b in uc)void 0===uc[b]?delete a[b]:a[b]=uc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);vc=c}return vc},vc,xc=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))),a);Ua("initRandomDevice")},yc=a=>(yc=xc())(a),zc=Array(256),Ac=0;256>Ac;++Ac)zc[Ac]=String.fromCharCode(Ac);kb=zc;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(xb.prototype,{isAliasOf:function(a){if(!(this instanceof xb&&a instanceof xb))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||pb(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||pb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");rb(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||pb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(ub);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=ub;A.setDelayFunction=a=>{S=a;R.length&&S&&S(ub)};Object.assign(Jb.prototype,{Ga(a){this.Ba&&(a=this.Ba(a));return a},Aa(a){this.oa?.(a)},na:8,readValueFromPointer:Ib,fromWireType:function(a){function b(){return this.xa?wb(this.ea.ra,{ga:this.Ia,fa:c,ma:this,ia:a}):wb(this.ea.ra,{ga:this,fa:a})}var c=this.Ga(a);if(!c)return this.Aa(a),null;var d=vb(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=tb[d];if(!d)return b.call(this);d=this.wa?d.Ca:d.pointerType;var e=sb(c,this.ea,d.ea);return null===e?b.call(this):this.xa?wb(d.ea.ra,{ga:d,fa:e,ma:this,ia:a}):wb(d.ea.ra,{ga:d,fa:e})}});Lb=A.UnboundTypeError=((a,b)=>{var c=yb(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-Wb.length;sa&&(jc[0]=this,addEventListener("message",Qa));var Cc={c:(a,b,c,d)=>{Ua(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},t:(a,b)=>eb(a)(b),d:(a,b,c)=>{var d=new gb(a);z()[d.fa+16>>2]=0;z()[d.fa+4>>2]=b;z()[d.fa+8>>2]=c;hb=a;ib++;throw hb;},P:()=>{Ua("")},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 "${jb(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},na:8,readValueFromPointer:ob(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,h,l,m,n,x,v)=>{n=K(n);f=V(e,f);h&&=V(g,h);m&&=V(l,m);v=V(x,v);var y=Bb(n);Ab(y,function(){Ob(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var D=w.ea;var ea=D.ra}else ea=xb.prototype;w=yb(n,function(...Za){if(Object.getPrototypeOf(this)!==$a)throw new N("Use 'new' to construct "+n);if(void 0===E.pa)throw new N(n+" has no accessible constructor");var Sb=E.pa[Za.length];if(void 0===Sb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${Za.length}) - expected (${Object.keys(E.pa).toString()}) parameters instead!`);return Sb.apply(this,Za)});var $a=Object.create(ea,{constructor:{value:w}});w.prototype=$a;var E=new Cb(n,w,$a,v,D,f,h,m);if(E.ka){var fa;(fa=E.ka).za??(fa.za=[]);E.ka.za.push(E)}D=new Jb(n,E,!0,!1,!1);fa=new Jb(n+"*",E,!1,!1,!1);ea=new Jb(n+" const*",E,!1,!0,!1);tb[a]={pointerType:fa,Ca:ea};Kb(y,w);return[D,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Pb(b,c);e=V(d,e);Q([],[a],h=>{h=h[0];var l=`constructor ${h.name}`;void 0===h.ea.pa&&(h.ea.pa=[]);if(void 0!==h.ea.pa[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.ea.pa[b-1]=()=>{Ob(`Cannot construct ${h.name} due to unbound types`,g)};Q([],g,m=>{m.splice(1,0,null);h.ea.pa[b-1]=Ub(l,m,null,e,f);return[]});return[]})},g:(a,b,c,d,e,f,g,h,l)=>{var m=Pb(c,d);b=K(b);b=Vb(b);f=V(e,f);Q([],[a],n=>{function x(){Ob(`Cannot call ${v} due to unbound types`,m)}n=n[0];var v=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&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):(zb(y,b,v),y[b].ja[c-2]=x);Q([],m,D=>{D=Ub(v,D,n,f,g,l);void 0===y[b].ja?(D.va=c-2,y[b]=D):y[b].ja[c-2]=D;return[]});return[]})},R:a=>P(a,Xb),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:Yb(b,c,d),la:null});Ab(b,e)},k:(a,b,c)=>{var d=Zb(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:yb(`${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:$b(b,c),la:null})},C:(a,b,c,d,e,f,g)=>{var h=Pb(b,c);a=K(a);a=Vb(a);e=V(d,e);Ab(a,function(){Ob(`Cannot call ${a} due to unbound types`,h)},b-1);Q([],h,l=>{Kb(a,Ub(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=h=>h;if(0===d){var f=32-8*c;e=h=>h<>>f}var g=b.includes("unsigned")?function(h,l){return l>>>0}:function(h,l){return l};P(a,{name:b,fromWireType:e,toWireType:g,na:8,readValueFromPointer:ob(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(k().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,h=0;h<=e;++h){var l=f+h;if(h==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(h=0;h>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=dc;var e=ec;var f=fc;var g=h=>da()[h>>1]}else 4===b&&(d=gc,e=hc,f=ic,g=h=>z()[h>>2]);P(a,{name:c,fromWireType:h=>{for(var l=z()[h>>2],m,n=h+4,x=0;x<=l;++x){var v=h+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(h);return m},toWireType:(h,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!==h&&h.push(W,n);return n},na:8,readValueFromPointer:Ib,la(h){W(h)}})},T:(a,b)=>{b=K(b);P(a,{Qa:!0,name:b,na:0,fromWireType:()=>{},toWireType:()=>{}})},I:(a,b)=>{let c=jc[kc]=new Worker(lc);c.postMessage({$ww:kc,wasm:Fa,js:A.mainScriptUrlOrBlob||_scriptName,wasmMemory:p,sb:a,sz:b});c.onmessage=Sa;return kc++},O:()=>1,v:()=>{oc=0},w:(a,b)=>{mc[a]&&(clearTimeout(mc[a].id),delete mc[a]);if(!b)return 0;var c=setTimeout(()=>{delete mc[a];qc(()=>Bc(a,performance.now()))},b);mc[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=h=>{var l=Math.abs(h);return`UTC${0<=h?"-":"+"}${String(Math.floor(l/60)).padStart(2,"0")}${String(l%60).padStart(2,"0")}`};a=b(f);b=b(e);et().set(sc[a].Ea,b),B:()=>rc.length,D:()=>sc.length,z:(a,b)=>{a=rc[a].Pa;var c=bc(a)+1;Y(a,t(),b,c)},x:a=>sc[a].mode,F:a=>sc[a].Ea.length,A:(a,b)=>{a=rc[a].Sa;var c=bc(a)+1;Y(a,t(),b,c)},y:(a,b)=>{a=sc[a].Ta;var c=bc(a)+1;Y(a,t(),b,c)},H:()=>{a:{if(!tc.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(bc(a)+1);a=Y(a,b,0,b.length);b.length=a;tc=b}b=tc.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:()=>performance.now(),G:a=>Ea(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},h:(a,b,c,d,e)=>{jc[a].postMessage({_wsc:b,x:[c,d,e]})},M:(a,b)=>{var c=0;wc().forEach((d,e)=>{var f=b+c;e=z()[a+4*e>>2]=f;for(f=0;f{var c=wc();z()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);z()[b>>2]=d;return 0},b:a=>{Ha=a;pc(a)},J:(a,b)=>{yc(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:pc,Q:function(a,b){Object.values(jc).forEach(c=>{c.postMessage({_wsc:a,x:[b]})})}},Z=function(){function a(c,d){Z=c.exports;db=Z.$;Ma.unshift(Z.Y);Fa=d;H--;0==H&&(null!==Ta&&(clearInterval(Ta),Ta=null),I&&(c=I,I=null,c()));return Z}var b={a:Cc};H++;if(A.instantiateWasm)try{return A.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}Wa??=Va("Vosklet.wasm")?"Vosklet.wasm":F+"Vosklet.wasm";ab(b,function(c){a(c.instance,c.module)}).catch(na);return{}}(),W=a=>(W=Z.Z)(a),C=a=>(C=Z._)(a),Mb=a=>(Mb=Z.aa)(a),Bc=(a,b)=>(Bc=Z.ba)(a,b),Pa=(a,b)=>(Pa=Z.ca)(a,b),Dc;I=function Ec(){Dc||Fc();Dc||(I=Ec)};function Fc(){if(!(0 loadVosklet); \ No newline at end of file +var loadVosklet = (() => { var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; return (function(moduleArg = {}) { var moduleRtn;function k(){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&&"renderer"!=process.type,sa=A.$ww;let B=[],ta=["status","partialResult","result"],ua=URL.createObjectURL(new Blob(["(",(async()=>{let a=new TextDecoder,b=new TextEncoder,c=await navigator.storage.getDirectory();onmessage=async d=>{d=d.data;var e=d.Na.split("/"),f=c;for(var g of e)f=await f.getDirectoryHandle(g,{create:!0});e=await f.getFileHandle("id",{create:!0});g=await f.getFileHandle("model.tgz",{create:!0});f=await e.createSyncAccessHandle();e=await g.createSyncAccessHandle();g=new ArrayBuffer(f.getSize());f.read(g);let h;if(a.decode(g)==d.id)h=new ArrayBuffer(e.getSize()),e.read(h),d=await (new Response((new Response(h)).body.pipeThrough(new DecompressionStream("gzip")))).arrayBuffer();else{g=await fetch(d.url);if(!g.ok){postMessage("Unable to download model");return}g=g.body.tee();h=await (new Response(g[0])).arrayBuffer();e.write(h,{at:0});e.truncate(h.byteLength);d=b.encode(d.id);f.write(d,{at:0});f.truncate(d.length);d=await (new Response(g[1].pipeThrough(new DecompressionStream("gzip")))).arrayBuffer()}f.close();e.close();self.postMessage(d,[d])}}).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,h)=>{e.addEventListener("status",l=>{l.detail?h(l.detail):(d&&(e.findWord=m=>e.ha.findWord(m)),g(e))},{once:!0})});va.addEventListener("message",g=>{g=g.data;let h=C(g.byteLength);t().set(new Uint8Array(g),h);e.ha=new A.CommonModel(B.length-1,d,"/"+b,c,h,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((h,l)=>{f.addEventListener("status",m=>{m.detail?l(m.detail):h(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.safeDelete(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),F="",Ca,Da;if(pa||qa)qa?F=self.location.href:"undefined"!=typeof document&&document.currentScript&&(F=document.currentScript.src),_scriptName&&(F=_scriptName),F.startsWith("blob:")?F="":F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(Da=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),Ca=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));var Ea=console.log.bind(console),G=console.error.bind(console);Object.assign(A,Ba);Ba=null;var p,Fa,Ga=!1,Ha,q,aa,ca,ha,ia,ja,la,Ia,Ja,Ka;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=Ka=new Float64Array(a);A.HEAP64=Ia=new BigInt64Array(a);A.HEAPU64=Ja=new BigUint64Array(a)}if(A.wasmMemory)p=A.wasmMemory;else if(p=new WebAssembly.Memory({initial:5040,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 La=[],Ma=[],Na=[];function Oa(){if(sa)Pa(A.sb,A.sz),removeEventListener("message",Qa),Ra=Ra.forEach(Sa),addEventListener("message",Sa);else for(;0a.startsWith("data:application/octet-stream;base64,"),Wa;function Xa(a){return Ca(a).then(b=>new Uint8Array(b),()=>{if(Da)var b=Da(a);else throw"both async and sync fetching of the wasm failed";return b})}function Ya(a,b,c){return Xa(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Ua(d)})}function ab(a,b){var c=Wa;return"function"!=typeof WebAssembly.instantiateStreaming||Va(c)||"function"!=typeof fetch?Ya(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 Ya(c,a,b)}))}function bb(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ra=[],cb=[],db,eb=a=>{var b=cb[a];b||(a>=cb.length&&(cb.length=a+1),cb[a]=b=db.get(a));return b},Sa=a=>{a=a.data;let b=a._wsc;b&&eb(b)(...a.x)},Qa=a=>{Ra.push(a)},fb=new TextDecoder,J=(a,b)=>{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&t()[c];)++c;return fb.decode(t().slice(a,c))};class gb{constructor(a){this.fa=a-24}}var hb=0,ib=0,jb=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},kb,K=a=>{for(var b="";t()[a];)b+=kb[t()[a++]];return b},L={},M={},lb={},N,mb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new O("Mismatched type converter count");for(var l=0;llb[h]=b);var e=Array(b.length),f=[],g=0;b.forEach((h,l)=>{M.hasOwnProperty(h)?e[l]=M[h]:(f.push(h),L.hasOwnProperty(h)||(L[h]=[]),L[h].push(()=>{e[l]=M[h];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function nb(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 lb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return nb(a,b,c)}var ob=(a,b,c)=>{switch(b){case 1:return c?d=>k()[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=>Ia[d>>3]:d=>Ja[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},pb=a=>{throw new N(a.da.ga.ea.name+" instance already deleted");},qb=!1,rb=()=>{},sb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ka)return null;a=sb(a,b,c.ka);return null===a?null:c.Da(a)},tb={},R=[],ub=()=>{for(;R.length;){var a=R.pop();a.da.qa=!1;a["delete"]()}},S,T={},vb=(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]},wb=(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;qb=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&&qb.register(b,{da:c},b);return b};rb=b=>{qb.unregister(b)};return U(a)};function xb(){}var yb=(a,b)=>Object.defineProperty(b,"name",{value:a}),zb=(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}},Ab=(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`);zb(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)},Bb=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 Cb(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.ra=c;this.oa=d;this.ka=e;this.Fa=f;this.ua=g;this.Da=h;this.Ja=[]}var Db=(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 Eb(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 "${jb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return Db(b.da.fa,b.da.ga.ea,this.ea)}function Fb(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 "${jb(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=Db(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,Gb(()=>d["delete"]()));null!==a&&a.push(this.oa,c)}break;default:throw new N("Unsupporting sharing policy");}}return c}function Hb(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 "${jb(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 Db(b.da.fa,b.da.ga.ea,this.ea)}function Ib(a){return this.fromWireType(z()[a>>2])}function Jb(a,b,c,d,e,f,g,h,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=h;this.Ka=l;this.La=m;this.oa=n;e||void 0!==b.ka?this.toWireType=Fb:(this.toWireType=d?Eb:Hb,this.la=null)}var Kb=(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=eb(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Lb,Nb=a=>{a=Mb(a);var b=K(a);W(a);return b},Ob=(a,b)=>{function c(f){e[f]||M[f]||(lb[f]?lb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Lb(`${a}: `+d.map(Nb).join([", "]));},Pb=(a,b)=>{for(var c=[],d=0;d>2]);return c},Qb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Rb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,l=Rb(b);c="void"!==b[0].name;d=[a,mb,d,e,Qb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},Wb=[],X=[],Gb=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Wb.pop()||X.length;X[b]=a;X[b+1]=1;return b}},Xb={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Gb(b),na:8,readValueFromPointer:Ib,la:null},Yb=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(k()[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}`);}},Zb=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Nb(a)}`,new N(a);return b},$b=(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,Ka[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&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},ac=(a,b)=>{var c=17;Y(a,t(),b,c)},bc=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},cc=new TextDecoder("utf-16le"),dc=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return cc.decode(t().slice(a,c))},ec=(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},fc=a=>2*a.length,gc=(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},hc=(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},ic=a=>{for(var b=0,c=0;c=d&&++c;b+=4}return b},jc={},kc=1,lc=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"})),mc={},nc=a=>{if(!(a instanceof bb||"unwind"==a))throw a;},oc=0,pc=a=>{Ha=a;0{if(!Ga)try{if(a(),!(0{if(!vc){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",_:"./this.program"},b;for(b in uc)void 0===uc[b]?delete a[b]:a[b]=uc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);vc=c}return vc},vc,xc=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))),a);Ua("initRandomDevice")},yc=a=>(yc=xc())(a),zc=Array(256),Ac=0;256>Ac;++Ac)zc[Ac]=String.fromCharCode(Ac);kb=zc;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(xb.prototype,{isAliasOf:function(a){if(!(this instanceof xb&&a instanceof xb))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||pb(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||pb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");rb(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||pb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(ub);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=ub;A.setDelayFunction=a=>{S=a;R.length&&S&&S(ub)};Object.assign(Jb.prototype,{Ga(a){this.Ba&&(a=this.Ba(a));return a},Aa(a){this.oa?.(a)},na:8,readValueFromPointer:Ib,fromWireType:function(a){function b(){return this.xa?wb(this.ea.ra,{ga:this.Ia,fa:c,ma:this,ia:a}):wb(this.ea.ra,{ga:this,fa:a})}var c=this.Ga(a);if(!c)return this.Aa(a),null;var d=vb(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=tb[d];if(!d)return b.call(this);d=this.wa?d.Ca:d.pointerType;var e=sb(c,this.ea,d.ea);return null===e?b.call(this):this.xa?wb(d.ea.ra,{ga:d,fa:e,ma:this,ia:a}):wb(d.ea.ra,{ga:d,fa:e})}});Lb=A.UnboundTypeError=((a,b)=>{var c=yb(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-Wb.length;sa&&(jc[0]=this,addEventListener("message",Qa));var Cc={c:(a,b,c,d)=>{Ua(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},t:(a,b)=>eb(a)(b),d:(a,b,c)=>{var d=new gb(a);z()[d.fa+16>>2]=0;z()[d.fa+4>>2]=b;z()[d.fa+8>>2]=c;hb=a;ib++;throw hb;},P:()=>{Ua("")},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 "${jb(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},na:8,readValueFromPointer:ob(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,h,l,m,n,x,v)=>{n=K(n);f=V(e,f);h&&=V(g,h);m&&=V(l,m);v=V(x,v);var y=Bb(n);Ab(y,function(){Ob(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var D=w.ea;var ea=D.ra}else ea=xb.prototype;w=yb(n,function(...Za){if(Object.getPrototypeOf(this)!==$a)throw new N("Use 'new' to construct "+n);if(void 0===E.pa)throw new N(n+" has no accessible constructor");var Sb=E.pa[Za.length];if(void 0===Sb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${Za.length}) - expected (${Object.keys(E.pa).toString()}) parameters instead!`);return Sb.apply(this,Za)});var $a=Object.create(ea,{constructor:{value:w}});w.prototype=$a;var E=new Cb(n,w,$a,v,D,f,h,m);if(E.ka){var fa;(fa=E.ka).za??(fa.za=[]);E.ka.za.push(E)}D=new Jb(n,E,!0,!1,!1);fa=new Jb(n+"*",E,!1,!1,!1);ea=new Jb(n+" const*",E,!1,!0,!1);tb[a]={pointerType:fa,Ca:ea};Kb(y,w);return[D,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Pb(b,c);e=V(d,e);Q([],[a],h=>{h=h[0];var l=`constructor ${h.name}`;void 0===h.ea.pa&&(h.ea.pa=[]);if(void 0!==h.ea.pa[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.ea.pa[b-1]=()=>{Ob(`Cannot construct ${h.name} due to unbound types`,g)};Q([],g,m=>{m.splice(1,0,null);h.ea.pa[b-1]=Ub(l,m,null,e,f);return[]});return[]})},g:(a,b,c,d,e,f,g,h,l)=>{var m=Pb(c,d);b=K(b);b=Vb(b);f=V(e,f);Q([],[a],n=>{function x(){Ob(`Cannot call ${v} due to unbound types`,m)}n=n[0];var v=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&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):(zb(y,b,v),y[b].ja[c-2]=x);Q([],m,D=>{D=Ub(v,D,n,f,g,l);void 0===y[b].ja?(D.va=c-2,y[b]=D):y[b].ja[c-2]=D;return[]});return[]})},R:a=>P(a,Xb),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:Yb(b,c,d),la:null});Ab(b,e)},k:(a,b,c)=>{var d=Zb(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:yb(`${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:$b(b,c),la:null})},C:(a,b,c,d,e,f,g)=>{var h=Pb(b,c);a=K(a);a=Vb(a);e=V(d,e);Ab(a,function(){Ob(`Cannot call ${a} due to unbound types`,h)},b-1);Q([],h,l=>{Kb(a,Ub(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=h=>h;if(0===d){var f=32-8*c;e=h=>h<>>f}var g=b.includes("unsigned")?function(h,l){return l>>>0}:function(h,l){return l};P(a,{name:b,fromWireType:e,toWireType:g,na:8,readValueFromPointer:ob(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(k().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,h=0;h<=e;++h){var l=f+h;if(h==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(h=0;h>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=dc;var e=ec;var f=fc;var g=h=>da()[h>>1]}else 4===b&&(d=gc,e=hc,f=ic,g=h=>z()[h>>2]);P(a,{name:c,fromWireType:h=>{for(var l=z()[h>>2],m,n=h+4,x=0;x<=l;++x){var v=h+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(h);return m},toWireType:(h,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!==h&&h.push(W,n);return n},na:8,readValueFromPointer:Ib,la(h){W(h)}})},T:(a,b)=>{b=K(b);P(a,{Qa:!0,name:b,na:0,fromWireType:()=>{},toWireType:()=>{}})},I:(a,b)=>{let c=jc[kc]=new Worker(lc);c.postMessage({$ww:kc,wasm:Fa,js:A.mainScriptUrlOrBlob||_scriptName,wasmMemory:p,sb:a,sz:b});c.onmessage=Sa;return kc++},O:()=>1,v:()=>{oc=0},w:(a,b)=>{mc[a]&&(clearTimeout(mc[a].id),delete mc[a]);if(!b)return 0;var c=setTimeout(()=>{delete mc[a];qc(()=>Bc(a,performance.now()))},b);mc[a]={id:c,Ua: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=h=>{var l=Math.abs(h);return`UTC${0<=h?"-":"+"}${String(Math.floor(l/60)).padStart(2,"0")}${String(l%60).padStart(2,"0")}`};a=b(f);b=b(e);et().set(sc[a].Ea,b),B:()=>rc.length,D:()=>sc.length,z:(a,b)=>{a=rc[a].Pa;var c=bc(a)+1;Y(a,t(),b,c)},x:a=>sc[a].mode,F:a=>sc[a].Ea.length,A:(a,b)=>{a=rc[a].Sa;var c=bc(a)+1;Y(a,t(),b,c)},y:(a,b)=>{a=sc[a].Ta;var c=bc(a)+1;Y(a,t(),b,c)},H:()=>{a:{if(!tc.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(bc(a)+1);a=Y(a,b,0,b.length);b.length=a;tc=b}b=tc.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:()=>performance.now(),G:a=>Ea(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},h:(a,b,c,d,e)=>{jc[a].postMessage({_wsc:b,x:[c,d,e]})},M:(a,b)=>{var c=0;wc().forEach((d,e)=>{var f=b+c;e=z()[a+4*e>>2]=f;for(f=0;f{var c=wc();z()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);z()[b>>2]=d;return 0},b:a=>{Ha=a;pc(a)},J:(a,b)=>{yc(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:pc,Q:function(a,b){Object.values(jc).forEach(c=>{c.postMessage({_wsc:a,x:[b]})})}},Z=function(){function a(c,d){Z=c.exports;db=Z.$;Ma.unshift(Z.Y);Fa=d;H--;0==H&&(null!==Ta&&(clearInterval(Ta),Ta=null),I&&(c=I,I=null,c()));return Z}var b={a:Cc};H++;if(A.instantiateWasm)try{return A.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}Wa??=Va("Vosklet.wasm")?"Vosklet.wasm":F+"Vosklet.wasm";ab(b,function(c){a(c.instance,c.module)}).catch(na);return{}}(),W=a=>(W=Z.Z)(a),C=a=>(C=Z._)(a),Mb=a=>(Mb=Z.aa)(a),Bc=(a,b)=>(Bc=Z.ba)(a,b),Pa=(a,b)=>(Pa=Z.ca)(a,b),Dc;I=function Ec(){Dc||Fc();Dc||(I=Ec)};function Fc(){if(!(0 loadVosklet); \ No newline at end of file diff --git a/Examples/Vosklet.wasm b/Examples/Vosklet.wasm index b03275696391eb46ff3092c949a113511dc88b67..02209cccdb9ce0e30d1b2f03e8464d08b81c909c 100755 GIT binary patch delta 6511 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 F^S_2RAW8rL delta 6507 zcmZ`-4_H;lu|MbZf*?q4%oPb<2_n0tNDW$JiKRx2B0)q{G)Rd230wgQB3=;{6&3%) zkEcWlYxP11K|qrj{8J86s#J+3mM9uysU<#QH0AmDd_F_+OiFxjX7*f6`}N)Ln{Q@z zemgTeyE}Wp@t1?D1E}%y;Qb>eu>GG0j~iWOu2d_{Th#`0y}8aj?*sFD=A-5#=55m^ z?3^}11=4_i0%QVm(Wgyt4R+DGD|K6_Yu`i^;*woQ2Y|3MYl|z;Fg6}x z%vmUm9vqX?;`Af_tI7H^Ls=oV>(=Zk4K*^hd6LHnNFllK%g?X~|nzr9whI%AF0nh%S)XRS{UMV@}v>hVv5EA%U8t*M#@Q>L7=GO+5eoUrcR;98BvF^dn+Sx4#5v|GbRIP=##u2{EgpzVZofW`v(0X+lc4>S%a zK%akY{MaWa-+gY-ZKM)WRpk+(L<9_aC=qQW`VG20r9|8$dAEw=eQzVA)^%sqo$-3r zoxq@E-~P**@=BVj6ozRE%I~GBis>~KWYIf|-5QQ#vp|pQ5}mVImDYb*&xvHNnim?D z+f*g}BLWvkv4da~)|c2O{}T;8+E-ghHX`8plAgFy5d=&o)XKr98G$iU}f`Ju1br#ocnlDOF<4_NpXD^ zuo~$GbXZjT0+x-73S9`EF!6*%Y!C9jMeHU4WAdHxsx(WN$Xm?(&|bEfCDMY-c5*zh zm__1v_!2e~dGQh!jl6RSTS&NHtwEd~^fJq*K#l}vLx5>1WgzmFvNY7MEoD29Cnd6F z!1dNd7C;kvUtuTEP@cpt5a3mI5qZ!ub_RLhGIj}hb27V!ydi}hL!OYzqFr&jsyB@NMl|U;r-X-jHGn74`<#_r%4Ac4>&2ODnuY_d*)$*qvSps_E7&;%?8;$FK@_d=2v@NMixpM~h8)OZaEPVw2V~Z$Jq9TJ|mS zoI=_ky|Iv8r5Ppb*hx|wmIwaGp-pEFB1a|!>i0R)RJL}ltltuSO7EDLU-$51k+{7kN z#5)yFx~9Yx0M?Kn!f|uToddw2YS1BW(HpFe{P%(mw>@OHyzK{evrV#ZIF6t}_b+AF-7(XLZ?Rb9Q5Eu% znFXr@U2hibt|=0WUD$%IHDx&PUPG=tttx$n{8_WA3>dNrWaW1fKSfs+Pm)ES!)R_X zphNV&N_JiKM(4YKFTr27s>&eA`n9*=&S46>YS>MQdiI<|HT^+VYDpGFwQN0t9@es0 zm9FOP^Qw|ZU0uZ2v8z-!CYyC=J*y(j9nc>ZVdob;^(+w`gf*~(Mrkfkay>^_zD6ze z(Z{Ni@}hhvHiBGw5z`Qv@5}xZ^Z}(HY7OpxOzIAU`+O+%a)X;2Sp`HC4UMvK^fa$3Ct9nLrK^xxp! zTO>DZEyz)Qv|)i4WqWVFC^uxvpCoTIcu1$z8w?)!iPWnuLVdlbanWn7#tHe6nu<_EGM*}#>rr92j7H$z_Y->PCUG%OQ0dxe~K<*$})b`4UIqwU$8;{|j!FSz~ zy5&pBs|_A_gEd>m-742a;Oduy$D|P zz_0`kuoi;!e#34^$Sey%+W$vB7JBA)1|;zB&Kq>?X@oq!K|0)^oie z*gom90|w)|PVr?FDn;c5By?-MN&>>iQOsf!w~?jKh0B|sIgD3GNGBtRn>$Y z%WV%QBr2F7B_oVLx4jHVlGzDqn@EtsCk;r_QxYPsS-1^1IeZjT75M;Oo1dAh7xBIvzq<8nzWk_06W*ZSpegf!%RZqgBSCJLJ)?T8oZ#;V+0%qo)8)w;1-#vm zTYjx6oh0iG{ybK`0{doYN|}+)*Dt^giJ-NZ$MbV^QtY6^ne7?RBjuU38c#;uOwD*c z^f1OxXmlg*%$8v*fd@sR+!O?Bp!X&yN>gqdsbtTA1_?SWvOSpl$|jx?O`-Zic#RBY zi;>>0%!SKIvR*xr8*l5PSZVB^rzxjM)=NWqw2WnsgKs;dX4mIyie&+U#r?^~s^US1 zRki+t&y=CQUnsq82QGW8Zh4L$ldC$rSQ-m~D@({z_b<8pdm%~c;bBlvh)`PngYv zGU#8==?mhvpV zgVs>Ejn*5O&G(?6Q`vksjklH1c+?7B1><_(3O?Bd0oGMU^S{0iPJ5SdtTHCp_LCl( z&+};o-TOt^YVId4$sK)Y8>FA9#hG&m?@|TZs1+es(@gWZC(X z7_G?8{g68h-ijP1_t^PV9Jj3D0m#GF@JEz(fuJmA6mW0EB^2-$U#w^R0cc_HgKs0H z3^4cud&pXTf!>YDzrlH$Vg-&r#Kjmg;4Fpw82K?B{FnBgLVi($vNo*a@^4$WLzG9) zI)2LwU%qch*ObOXqIVsv@~ic{h!Q^RAYjf0c*!78{|2L+&6PA>Tx66pv`X}DgmQXs z1{c4lc6V8lODL)&>u;?!>QN2BQq%Gxg#*ur)yBx6q9&i z3!GhT3l9VTdiWL|?XKN@PT#eg$D44mH}~*hEdKDle4;m=xwdAwBS7dSr-{x_>|S}m z4*~|U7Y+XXUQYjJnOG)yTA6%DPL$C%gSb(~XCmJ3O=(|f@Evb*KWe<;zta>u&?5Wu z_H}s~$yvF!mAG*jI|;@izl(1|EitcCphM$bwvTTmJ*buRyZiVu(%V6IyCN3uH|*Bm zll|s?!`=)!*dxo~&Y(Z@8M0q5=M~h=Zh`K0h1R?NE#5+y!n1^#ULo&iO$C?#7__(1 z_%y-O2xs{N`K}Xu3F)O$cRgU}{h&v63EKglOZL!nIA6bcfX8}nuJTZnw}J3i4IJs6 z|A&5Tcgm8he$F}0ai>4z?|7)SuHC0Kr3M_o3sehq7^u!eoH@+B7=mgI`_X@}E6RJI zzYp|*$gSt2>3B|o4T6Kdx1Re=3Y(Q`PmRpVp{@jOJX>U#WB=slL(m(6j*FZ1e9i*g z17TtpWn$0PaW)R|34n1X lrhKX?e*#=5&?i8b#F{$(>?nkN@uLtOAP?wG4g9O0{2$^Mn-l;5 diff --git a/Vosklet.js b/Vosklet.js index 9c8a71f..23db047 100644 --- a/Vosklet.js +++ b/Vosklet.js @@ -1 +1 @@ -var loadVosklet = (() => { var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; return (function(moduleArg = {}) { var moduleRtn;function k(){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&&"renderer"!=process.type,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,h)=>{e.addEventListener("status",l=>{l.detail?h(l.detail):(d&&(e.findWord=m=>e.ha.findWord(m)),g(e))},{once:!0})});va.addEventListener("message",g=>{g=g.data;let h=C(g.byteLength);t().set(new Uint8Array(g),h);e.ha=new A.CommonModel(B.length-1,d,"/"+b,c,h,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((h,l)=>{f.addEventListener("status",m=>{m.detail?l(m.detail):h(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),F="",Ca,Da;if(pa||qa)qa?F=self.location.href:"undefined"!=typeof document&&document.currentScript&&(F=document.currentScript.src),_scriptName&&(F=_scriptName),F.startsWith("blob:")?F="":F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(Da=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),Ca=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));var Ea=console.log.bind(console),G=console.error.bind(console);Object.assign(A,Ba);Ba=null;var p,Fa,Ga=!1,Ha,q,aa,ca,ha,ia,ja,la,Ia,Ja,Ka;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=Ka=new Float64Array(a);A.HEAP64=Ia=new BigInt64Array(a);A.HEAPU64=Ja=new BigUint64Array(a)}if(A.wasmMemory)p=A.wasmMemory;else if(p=new WebAssembly.Memory({initial:5040,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 La=[],Ma=[],Na=[];function Oa(){if(sa)Pa(A.sb,A.sz),removeEventListener("message",Qa),Ra=Ra.forEach(Sa),addEventListener("message",Sa);else for(;0a.startsWith("data:application/octet-stream;base64,"),Wa;function Xa(a){return Ca(a).then(b=>new Uint8Array(b),()=>{if(Da)var b=Da(a);else throw"both async and sync fetching of the wasm failed";return b})}function Ya(a,b,c){return Xa(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Ua(d)})}function ab(a,b){var c=Wa;return"function"!=typeof WebAssembly.instantiateStreaming||Va(c)||"function"!=typeof fetch?Ya(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 Ya(c,a,b)}))}function bb(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ra=[],cb=[],db,eb=a=>{var b=cb[a];b||(a>=cb.length&&(cb.length=a+1),cb[a]=b=db.get(a));return b},Sa=a=>{a=a.data;let b=a._wsc;b&&eb(b)(...a.x)},Qa=a=>{Ra.push(a)},fb=new TextDecoder,J=(a,b)=>{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&t()[c];)++c;return fb.decode(t().slice(a,c))};class gb{constructor(a){this.fa=a-24}}var hb=0,ib=0,jb=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},kb,K=a=>{for(var b="";t()[a];)b+=kb[t()[a++]];return b},L={},M={},lb={},N,mb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new O("Mismatched type converter count");for(var l=0;llb[h]=b);var e=Array(b.length),f=[],g=0;b.forEach((h,l)=>{M.hasOwnProperty(h)?e[l]=M[h]:(f.push(h),L.hasOwnProperty(h)||(L[h]=[]),L[h].push(()=>{e[l]=M[h];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function nb(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 lb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return nb(a,b,c)}var ob=(a,b,c)=>{switch(b){case 1:return c?d=>k()[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=>Ia[d>>3]:d=>Ja[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},pb=a=>{throw new N(a.da.ga.ea.name+" instance already deleted");},qb=!1,rb=()=>{},sb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ka)return null;a=sb(a,b,c.ka);return null===a?null:c.Da(a)},tb={},R=[],ub=()=>{for(;R.length;){var a=R.pop();a.da.qa=!1;a["delete"]()}},S,T={},vb=(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]},wb=(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;qb=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&&qb.register(b,{da:c},b);return b};rb=b=>{qb.unregister(b)};return U(a)};function xb(){}var yb=(a,b)=>Object.defineProperty(b,"name",{value:a}),zb=(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}},Ab=(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`);zb(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)},Bb=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 Cb(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.ra=c;this.oa=d;this.ka=e;this.Fa=f;this.ua=g;this.Da=h;this.Ja=[]}var Db=(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 Eb(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 "${jb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return Db(b.da.fa,b.da.ga.ea,this.ea)}function Fb(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 "${jb(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=Db(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,Gb(()=>d["delete"]()));null!==a&&a.push(this.oa,c)}break;default:throw new N("Unsupporting sharing policy");}}return c}function Hb(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 "${jb(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 Db(b.da.fa,b.da.ga.ea,this.ea)}function Ib(a){return this.fromWireType(z()[a>>2])}function Jb(a,b,c,d,e,f,g,h,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=h;this.Ka=l;this.La=m;this.oa=n;e||void 0!==b.ka?this.toWireType=Fb:(this.toWireType=d?Eb:Hb,this.la=null)}var Kb=(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=eb(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Lb,Nb=a=>{a=Mb(a);var b=K(a);W(a);return b},Ob=(a,b)=>{function c(f){e[f]||M[f]||(lb[f]?lb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Lb(`${a}: `+d.map(Nb).join([", "]));},Pb=(a,b)=>{for(var c=[],d=0;d>2]);return c},Qb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Rb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,l=Rb(b);c="void"!==b[0].name;d=[a,mb,d,e,Qb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},Wb=[],X=[],Gb=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Wb.pop()||X.length;X[b]=a;X[b+1]=1;return b}},Xb={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Gb(b),na:8,readValueFromPointer:Ib,la:null},Yb=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(k()[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}`);}},Zb=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Nb(a)}`,new N(a);return b},$b=(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,Ka[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&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},ac=(a,b)=>{var c=17;Y(a,t(),b,c)},bc=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},cc=new TextDecoder("utf-16le"),dc=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return cc.decode(t().slice(a,c))},ec=(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},fc=a=>2*a.length,gc=(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},hc=(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},ic=a=>{for(var b=0,c=0;c=d&&++c;b+=4}return b},jc={},kc=1,lc=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"})),mc={},nc=a=>{if(!(a instanceof bb||"unwind"==a))throw a;},oc=0,pc=a=>{Ha=a;0{if(!Ga)try{if(a(),!(0{if(!vc){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",_:"./this.program"},b;for(b in uc)void 0===uc[b]?delete a[b]:a[b]=uc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);vc=c}return vc},vc,xc=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))),a);Ua("initRandomDevice")},yc=a=>(yc=xc())(a),zc=Array(256),Ac=0;256>Ac;++Ac)zc[Ac]=String.fromCharCode(Ac);kb=zc;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(xb.prototype,{isAliasOf:function(a){if(!(this instanceof xb&&a instanceof xb))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||pb(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||pb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");rb(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||pb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(ub);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=ub;A.setDelayFunction=a=>{S=a;R.length&&S&&S(ub)};Object.assign(Jb.prototype,{Ga(a){this.Ba&&(a=this.Ba(a));return a},Aa(a){this.oa?.(a)},na:8,readValueFromPointer:Ib,fromWireType:function(a){function b(){return this.xa?wb(this.ea.ra,{ga:this.Ia,fa:c,ma:this,ia:a}):wb(this.ea.ra,{ga:this,fa:a})}var c=this.Ga(a);if(!c)return this.Aa(a),null;var d=vb(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=tb[d];if(!d)return b.call(this);d=this.wa?d.Ca:d.pointerType;var e=sb(c,this.ea,d.ea);return null===e?b.call(this):this.xa?wb(d.ea.ra,{ga:d,fa:e,ma:this,ia:a}):wb(d.ea.ra,{ga:d,fa:e})}});Lb=A.UnboundTypeError=((a,b)=>{var c=yb(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-Wb.length;sa&&(jc[0]=this,addEventListener("message",Qa));var Cc={c:(a,b,c,d)=>{Ua(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},t:(a,b)=>eb(a)(b),d:(a,b,c)=>{var d=new gb(a);z()[d.fa+16>>2]=0;z()[d.fa+4>>2]=b;z()[d.fa+8>>2]=c;hb=a;ib++;throw hb;},P:()=>{Ua("")},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 "${jb(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},na:8,readValueFromPointer:ob(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,h,l,m,n,x,v)=>{n=K(n);f=V(e,f);h&&=V(g,h);m&&=V(l,m);v=V(x,v);var y=Bb(n);Ab(y,function(){Ob(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var D=w.ea;var ea=D.ra}else ea=xb.prototype;w=yb(n,function(...Za){if(Object.getPrototypeOf(this)!==$a)throw new N("Use 'new' to construct "+n);if(void 0===E.pa)throw new N(n+" has no accessible constructor");var Sb=E.pa[Za.length];if(void 0===Sb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${Za.length}) - expected (${Object.keys(E.pa).toString()}) parameters instead!`);return Sb.apply(this,Za)});var $a=Object.create(ea,{constructor:{value:w}});w.prototype=$a;var E=new Cb(n,w,$a,v,D,f,h,m);if(E.ka){var fa;(fa=E.ka).za??(fa.za=[]);E.ka.za.push(E)}D=new Jb(n,E,!0,!1,!1);fa=new Jb(n+"*",E,!1,!1,!1);ea=new Jb(n+" const*",E,!1,!0,!1);tb[a]={pointerType:fa,Ca:ea};Kb(y,w);return[D,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Pb(b,c);e=V(d,e);Q([],[a],h=>{h=h[0];var l=`constructor ${h.name}`;void 0===h.ea.pa&&(h.ea.pa=[]);if(void 0!==h.ea.pa[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.ea.pa[b-1]=()=>{Ob(`Cannot construct ${h.name} due to unbound types`,g)};Q([],g,m=>{m.splice(1,0,null);h.ea.pa[b-1]=Ub(l,m,null,e,f);return[]});return[]})},g:(a,b,c,d,e,f,g,h,l)=>{var m=Pb(c,d);b=K(b);b=Vb(b);f=V(e,f);Q([],[a],n=>{function x(){Ob(`Cannot call ${v} due to unbound types`,m)}n=n[0];var v=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&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):(zb(y,b,v),y[b].ja[c-2]=x);Q([],m,D=>{D=Ub(v,D,n,f,g,l);void 0===y[b].ja?(D.va=c-2,y[b]=D):y[b].ja[c-2]=D;return[]});return[]})},R:a=>P(a,Xb),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:Yb(b,c,d),la:null});Ab(b,e)},k:(a,b,c)=>{var d=Zb(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:yb(`${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:$b(b,c),la:null})},C:(a,b,c,d,e,f,g)=>{var h=Pb(b,c);a=K(a);a=Vb(a);e=V(d,e);Ab(a,function(){Ob(`Cannot call ${a} due to unbound types`,h)},b-1);Q([],h,l=>{Kb(a,Ub(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=h=>h;if(0===d){var f=32-8*c;e=h=>h<>>f}var g=b.includes("unsigned")?function(h,l){return l>>>0}:function(h,l){return l};P(a,{name:b,fromWireType:e,toWireType:g,na:8,readValueFromPointer:ob(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(k().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,h=0;h<=e;++h){var l=f+h;if(h==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(h=0;h>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=dc;var e=ec;var f=fc;var g=h=>da()[h>>1]}else 4===b&&(d=gc,e=hc,f=ic,g=h=>z()[h>>2]);P(a,{name:c,fromWireType:h=>{for(var l=z()[h>>2],m,n=h+4,x=0;x<=l;++x){var v=h+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(h);return m},toWireType:(h,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!==h&&h.push(W,n);return n},na:8,readValueFromPointer:Ib,la(h){W(h)}})},T:(a,b)=>{b=K(b);P(a,{Qa:!0,name:b,na:0,fromWireType:()=>{},toWireType:()=>{}})},I:(a,b)=>{let c=jc[kc]=new Worker(lc);c.postMessage({$ww:kc,wasm:Fa,js:A.mainScriptUrlOrBlob||_scriptName,wasmMemory:p,sb:a,sz:b});c.onmessage=Sa;return kc++},O:()=>1,v:()=>{oc=0},w:(a,b)=>{mc[a]&&(clearTimeout(mc[a].id),delete mc[a]);if(!b)return 0;var c=setTimeout(()=>{delete mc[a];qc(()=>Bc(a,performance.now()))},b);mc[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=h=>{var l=Math.abs(h);return`UTC${0<=h?"-":"+"}${String(Math.floor(l/60)).padStart(2,"0")}${String(l%60).padStart(2,"0")}`};a=b(f);b=b(e);et().set(sc[a].Ea,b),B:()=>rc.length,D:()=>sc.length,z:(a,b)=>{a=rc[a].Pa;var c=bc(a)+1;Y(a,t(),b,c)},x:a=>sc[a].mode,F:a=>sc[a].Ea.length,A:(a,b)=>{a=rc[a].Sa;var c=bc(a)+1;Y(a,t(),b,c)},y:(a,b)=>{a=sc[a].Ta;var c=bc(a)+1;Y(a,t(),b,c)},H:()=>{a:{if(!tc.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(bc(a)+1);a=Y(a,b,0,b.length);b.length=a;tc=b}b=tc.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:()=>performance.now(),G:a=>Ea(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},h:(a,b,c,d,e)=>{jc[a].postMessage({_wsc:b,x:[c,d,e]})},M:(a,b)=>{var c=0;wc().forEach((d,e)=>{var f=b+c;e=z()[a+4*e>>2]=f;for(f=0;f{var c=wc();z()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);z()[b>>2]=d;return 0},b:a=>{Ha=a;pc(a)},J:(a,b)=>{yc(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:pc,Q:function(a,b){Object.values(jc).forEach(c=>{c.postMessage({_wsc:a,x:[b]})})}},Z=function(){function a(c,d){Z=c.exports;db=Z.$;Ma.unshift(Z.Y);Fa=d;H--;0==H&&(null!==Ta&&(clearInterval(Ta),Ta=null),I&&(c=I,I=null,c()));return Z}var b={a:Cc};H++;if(A.instantiateWasm)try{return A.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}Wa??=Va("Vosklet.wasm")?"Vosklet.wasm":F+"Vosklet.wasm";ab(b,function(c){a(c.instance,c.module)}).catch(na);return{}}(),W=a=>(W=Z.Z)(a),C=a=>(C=Z._)(a),Mb=a=>(Mb=Z.aa)(a),Bc=(a,b)=>(Bc=Z.ba)(a,b),Pa=(a,b)=>(Pa=Z.ca)(a,b),Dc;I=function Ec(){Dc||Fc();Dc||(I=Ec)};function Fc(){if(!(0 loadVosklet); \ No newline at end of file +var loadVosklet = (() => { var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; return (function(moduleArg = {}) { var moduleRtn;function k(){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&&"renderer"!=process.type,sa=A.$ww;let B=[],ta=["status","partialResult","result"],ua=URL.createObjectURL(new Blob(["(",(async()=>{let a=new TextDecoder,b=new TextEncoder,c=await navigator.storage.getDirectory();onmessage=async d=>{d=d.data;var e=d.Na.split("/"),f=c;for(var g of e)f=await f.getDirectoryHandle(g,{create:!0});e=await f.getFileHandle("id",{create:!0});g=await f.getFileHandle("model.tgz",{create:!0});f=await e.createSyncAccessHandle();e=await g.createSyncAccessHandle();g=new ArrayBuffer(f.getSize());f.read(g);let h;if(a.decode(g)==d.id)h=new ArrayBuffer(e.getSize()),e.read(h),d=await (new Response((new Response(h)).body.pipeThrough(new DecompressionStream("gzip")))).arrayBuffer();else{g=await fetch(d.url);if(!g.ok){postMessage("Unable to download model");return}g=g.body.tee();h=await (new Response(g[0].pipeThrough(new CompressionStream("gzip")))).arrayBuffer();e.write(h,{at:0});e.truncate(h.byteLength);d=b.encode(d.id);f.write(d,{at:0});f.truncate(d.length);d=await (new Response(g[1])).arrayBuffer()}f.close();e.close();self.postMessage(d,[d])}}).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,h)=>{e.addEventListener("status",l=>{l.detail?h(l.detail):(d&&(e.findWord=m=>e.ha.findWord(m)),g(e))},{once:!0})});va.addEventListener("message",g=>{g=g.data;let h=C(g.byteLength);t().set(new Uint8Array(g),h);e.ha=new A.CommonModel(B.length-1,d,"/"+b,c,h,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((h,l)=>{f.addEventListener("status",m=>{m.detail?l(m.detail):h(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.safeDelete(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),F="",Ca,Da;if(pa||qa)qa?F=self.location.href:"undefined"!=typeof document&&document.currentScript&&(F=document.currentScript.src),_scriptName&&(F=_scriptName),F.startsWith("blob:")?F="":F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(Da=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),Ca=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));var Ea=console.log.bind(console),G=console.error.bind(console);Object.assign(A,Ba);Ba=null;var p,Fa,Ga=!1,Ha,q,aa,ca,ha,ia,ja,la,Ia,Ja,Ka;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=Ka=new Float64Array(a);A.HEAP64=Ia=new BigInt64Array(a);A.HEAPU64=Ja=new BigUint64Array(a)}if(A.wasmMemory)p=A.wasmMemory;else if(p=new WebAssembly.Memory({initial:5040,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 La=[],Ma=[],Na=[];function Oa(){if(sa)Pa(A.sb,A.sz),removeEventListener("message",Qa),Ra=Ra.forEach(Sa),addEventListener("message",Sa);else for(;0a.startsWith("data:application/octet-stream;base64,"),Wa;function Xa(a){return Ca(a).then(b=>new Uint8Array(b),()=>{if(Da)var b=Da(a);else throw"both async and sync fetching of the wasm failed";return b})}function Ya(a,b,c){return Xa(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Ua(d)})}function ab(a,b){var c=Wa;return"function"!=typeof WebAssembly.instantiateStreaming||Va(c)||"function"!=typeof fetch?Ya(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 Ya(c,a,b)}))}function bb(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ra=[],cb=[],db,eb=a=>{var b=cb[a];b||(a>=cb.length&&(cb.length=a+1),cb[a]=b=db.get(a));return b},Sa=a=>{a=a.data;let b=a._wsc;b&&eb(b)(...a.x)},Qa=a=>{Ra.push(a)},fb=new TextDecoder,J=(a,b)=>{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&t()[c];)++c;return fb.decode(t().slice(a,c))};class gb{constructor(a){this.fa=a-24}}var hb=0,ib=0,jb=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},kb,K=a=>{for(var b="";t()[a];)b+=kb[t()[a++]];return b},L={},M={},lb={},N,mb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new O("Mismatched type converter count");for(var l=0;llb[h]=b);var e=Array(b.length),f=[],g=0;b.forEach((h,l)=>{M.hasOwnProperty(h)?e[l]=M[h]:(f.push(h),L.hasOwnProperty(h)||(L[h]=[]),L[h].push(()=>{e[l]=M[h];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function nb(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 lb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return nb(a,b,c)}var ob=(a,b,c)=>{switch(b){case 1:return c?d=>k()[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=>Ia[d>>3]:d=>Ja[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},pb=a=>{throw new N(a.da.ga.ea.name+" instance already deleted");},qb=!1,rb=()=>{},sb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ka)return null;a=sb(a,b,c.ka);return null===a?null:c.Da(a)},tb={},R=[],ub=()=>{for(;R.length;){var a=R.pop();a.da.qa=!1;a["delete"]()}},S,T={},vb=(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]},wb=(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;qb=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&&qb.register(b,{da:c},b);return b};rb=b=>{qb.unregister(b)};return U(a)};function xb(){}var yb=(a,b)=>Object.defineProperty(b,"name",{value:a}),zb=(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}},Ab=(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`);zb(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)},Bb=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 Cb(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.ra=c;this.oa=d;this.ka=e;this.Fa=f;this.ua=g;this.Da=h;this.Ja=[]}var Db=(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 Eb(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 "${jb(b)}" as a ${this.name}`);if(!b.da.fa)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return Db(b.da.fa,b.da.ga.ea,this.ea)}function Fb(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 "${jb(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=Db(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,Gb(()=>d["delete"]()));null!==a&&a.push(this.oa,c)}break;default:throw new N("Unsupporting sharing policy");}}return c}function Hb(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 "${jb(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 Db(b.da.fa,b.da.ga.ea,this.ea)}function Ib(a){return this.fromWireType(z()[a>>2])}function Jb(a,b,c,d,e,f,g,h,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=h;this.Ka=l;this.La=m;this.oa=n;e||void 0!==b.ka?this.toWireType=Fb:(this.toWireType=d?Eb:Hb,this.la=null)}var Kb=(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=eb(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Lb,Nb=a=>{a=Mb(a);var b=K(a);W(a);return b},Ob=(a,b)=>{function c(f){e[f]||M[f]||(lb[f]?lb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Lb(`${a}: `+d.map(Nb).join([", "]));},Pb=(a,b)=>{for(var c=[],d=0;d>2]);return c},Qb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Rb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,l=Rb(b);c="void"!==b[0].name;d=[a,mb,d,e,Qb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},Wb=[],X=[],Gb=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Wb.pop()||X.length;X[b]=a;X[b+1]=1;return b}},Xb={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Gb(b),na:8,readValueFromPointer:Ib,la:null},Yb=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(k()[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}`);}},Zb=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Nb(a)}`,new N(a);return b},$b=(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,Ka[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&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},ac=(a,b)=>{var c=17;Y(a,t(),b,c)},bc=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},cc=new TextDecoder("utf-16le"),dc=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return cc.decode(t().slice(a,c))},ec=(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},fc=a=>2*a.length,gc=(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},hc=(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},ic=a=>{for(var b=0,c=0;c=d&&++c;b+=4}return b},jc={},kc=1,lc=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"})),mc={},nc=a=>{if(!(a instanceof bb||"unwind"==a))throw a;},oc=0,pc=a=>{Ha=a;0{if(!Ga)try{if(a(),!(0{if(!vc){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",_:"./this.program"},b;for(b in uc)void 0===uc[b]?delete a[b]:a[b]=uc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);vc=c}return vc},vc,xc=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))),a);Ua("initRandomDevice")},yc=a=>(yc=xc())(a),zc=Array(256),Ac=0;256>Ac;++Ac)zc[Ac]=String.fromCharCode(Ac);kb=zc;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(xb.prototype,{isAliasOf:function(a){if(!(this instanceof xb&&a instanceof xb))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||pb(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||pb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");rb(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||pb(this);if(this.da.qa&&!this.da.ta)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(ub);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=ub;A.setDelayFunction=a=>{S=a;R.length&&S&&S(ub)};Object.assign(Jb.prototype,{Ga(a){this.Ba&&(a=this.Ba(a));return a},Aa(a){this.oa?.(a)},na:8,readValueFromPointer:Ib,fromWireType:function(a){function b(){return this.xa?wb(this.ea.ra,{ga:this.Ia,fa:c,ma:this,ia:a}):wb(this.ea.ra,{ga:this,fa:a})}var c=this.Ga(a);if(!c)return this.Aa(a),null;var d=vb(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=tb[d];if(!d)return b.call(this);d=this.wa?d.Ca:d.pointerType;var e=sb(c,this.ea,d.ea);return null===e?b.call(this):this.xa?wb(d.ea.ra,{ga:d,fa:e,ma:this,ia:a}):wb(d.ea.ra,{ga:d,fa:e})}});Lb=A.UnboundTypeError=((a,b)=>{var c=yb(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-Wb.length;sa&&(jc[0]=this,addEventListener("message",Qa));var Cc={c:(a,b,c,d)=>{Ua(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},t:(a,b)=>eb(a)(b),d:(a,b,c)=>{var d=new gb(a);z()[d.fa+16>>2]=0;z()[d.fa+4>>2]=b;z()[d.fa+8>>2]=c;hb=a;ib++;throw hb;},P:()=>{Ua("")},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 "${jb(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},na:8,readValueFromPointer:ob(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,h,l,m,n,x,v)=>{n=K(n);f=V(e,f);h&&=V(g,h);m&&=V(l,m);v=V(x,v);var y=Bb(n);Ab(y,function(){Ob(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var D=w.ea;var ea=D.ra}else ea=xb.prototype;w=yb(n,function(...Za){if(Object.getPrototypeOf(this)!==$a)throw new N("Use 'new' to construct "+n);if(void 0===E.pa)throw new N(n+" has no accessible constructor");var Sb=E.pa[Za.length];if(void 0===Sb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${Za.length}) - expected (${Object.keys(E.pa).toString()}) parameters instead!`);return Sb.apply(this,Za)});var $a=Object.create(ea,{constructor:{value:w}});w.prototype=$a;var E=new Cb(n,w,$a,v,D,f,h,m);if(E.ka){var fa;(fa=E.ka).za??(fa.za=[]);E.ka.za.push(E)}D=new Jb(n,E,!0,!1,!1);fa=new Jb(n+"*",E,!1,!1,!1);ea=new Jb(n+" const*",E,!1,!0,!1);tb[a]={pointerType:fa,Ca:ea};Kb(y,w);return[D,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Pb(b,c);e=V(d,e);Q([],[a],h=>{h=h[0];var l=`constructor ${h.name}`;void 0===h.ea.pa&&(h.ea.pa=[]);if(void 0!==h.ea.pa[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.ea.pa[b-1]=()=>{Ob(`Cannot construct ${h.name} due to unbound types`,g)};Q([],g,m=>{m.splice(1,0,null);h.ea.pa[b-1]=Ub(l,m,null,e,f);return[]});return[]})},g:(a,b,c,d,e,f,g,h,l)=>{var m=Pb(c,d);b=K(b);b=Vb(b);f=V(e,f);Q([],[a],n=>{function x(){Ob(`Cannot call ${v} due to unbound types`,m)}n=n[0];var v=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&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):(zb(y,b,v),y[b].ja[c-2]=x);Q([],m,D=>{D=Ub(v,D,n,f,g,l);void 0===y[b].ja?(D.va=c-2,y[b]=D):y[b].ja[c-2]=D;return[]});return[]})},R:a=>P(a,Xb),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:Yb(b,c,d),la:null});Ab(b,e)},k:(a,b,c)=>{var d=Zb(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:yb(`${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:$b(b,c),la:null})},C:(a,b,c,d,e,f,g)=>{var h=Pb(b,c);a=K(a);a=Vb(a);e=V(d,e);Ab(a,function(){Ob(`Cannot call ${a} due to unbound types`,h)},b-1);Q([],h,l=>{Kb(a,Ub(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=h=>h;if(0===d){var f=32-8*c;e=h=>h<>>f}var g=b.includes("unsigned")?function(h,l){return l>>>0}:function(h,l){return l};P(a,{name:b,fromWireType:e,toWireType:g,na:8,readValueFromPointer:ob(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(k().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,h=0;h<=e;++h){var l=f+h;if(h==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(h=0;h>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=dc;var e=ec;var f=fc;var g=h=>da()[h>>1]}else 4===b&&(d=gc,e=hc,f=ic,g=h=>z()[h>>2]);P(a,{name:c,fromWireType:h=>{for(var l=z()[h>>2],m,n=h+4,x=0;x<=l;++x){var v=h+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(h);return m},toWireType:(h,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!==h&&h.push(W,n);return n},na:8,readValueFromPointer:Ib,la(h){W(h)}})},T:(a,b)=>{b=K(b);P(a,{Qa:!0,name:b,na:0,fromWireType:()=>{},toWireType:()=>{}})},I:(a,b)=>{let c=jc[kc]=new Worker(lc);c.postMessage({$ww:kc,wasm:Fa,js:A.mainScriptUrlOrBlob||_scriptName,wasmMemory:p,sb:a,sz:b});c.onmessage=Sa;return kc++},O:()=>1,v:()=>{oc=0},w:(a,b)=>{mc[a]&&(clearTimeout(mc[a].id),delete mc[a]);if(!b)return 0;var c=setTimeout(()=>{delete mc[a];qc(()=>Bc(a,performance.now()))},b);mc[a]={id:c,Ua: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=h=>{var l=Math.abs(h);return`UTC${0<=h?"-":"+"}${String(Math.floor(l/60)).padStart(2,"0")}${String(l%60).padStart(2,"0")}`};a=b(f);b=b(e);et().set(sc[a].Ea,b),B:()=>rc.length,D:()=>sc.length,z:(a,b)=>{a=rc[a].Pa;var c=bc(a)+1;Y(a,t(),b,c)},x:a=>sc[a].mode,F:a=>sc[a].Ea.length,A:(a,b)=>{a=rc[a].Sa;var c=bc(a)+1;Y(a,t(),b,c)},y:(a,b)=>{a=sc[a].Ta;var c=bc(a)+1;Y(a,t(),b,c)},H:()=>{a:{if(!tc.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(bc(a)+1);a=Y(a,b,0,b.length);b.length=a;tc=b}b=tc.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:()=>performance.now(),G:a=>Ea(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},h:(a,b,c,d,e)=>{jc[a].postMessage({_wsc:b,x:[c,d,e]})},M:(a,b)=>{var c=0;wc().forEach((d,e)=>{var f=b+c;e=z()[a+4*e>>2]=f;for(f=0;f{var c=wc();z()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);z()[b>>2]=d;return 0},b:a=>{Ha=a;pc(a)},J:(a,b)=>{yc(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:pc,Q:function(a,b){Object.values(jc).forEach(c=>{c.postMessage({_wsc:a,x:[b]})})}},Z=function(){function a(c,d){Z=c.exports;db=Z.$;Ma.unshift(Z.Y);Fa=d;H--;0==H&&(null!==Ta&&(clearInterval(Ta),Ta=null),I&&(c=I,I=null,c()));return Z}var b={a:Cc};H++;if(A.instantiateWasm)try{return A.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}Wa??=Va("Vosklet.wasm")?"Vosklet.wasm":F+"Vosklet.wasm";ab(b,function(c){a(c.instance,c.module)}).catch(na);return{}}(),W=a=>(W=Z.Z)(a),C=a=>(C=Z._)(a),Mb=a=>(Mb=Z.aa)(a),Bc=(a,b)=>(Bc=Z.ba)(a,b),Pa=(a,b)=>(Pa=Z.ca)(a,b),Dc;I=function Ec(){Dc||Fc();Dc||(I=Ec)};function Fc(){if(!(0 loadVosklet); \ No newline at end of file diff --git a/Vosklet.wasm b/Vosklet.wasm index b03275696391eb46ff3092c949a113511dc88b67..02209cccdb9ce0e30d1b2f03e8464d08b81c909c 100755 GIT binary patch delta 6511 zcmZ`d3shCtvFDrsf}lAuh=^B0kiAQhTC~=pB}R>+K}1wEN{D=d2uKv+im0flD8@yV zC}C3tyrF<-5`v#_kPx*>t+7PGU#TU&TcauUxvVuLk62>g%hJ4E^uzkTFM^nBrCy;{=v&oolSUU#8m$6o0M7t80XQ3zM!N(#Yuz>@CB&tB3=+}t zF2nqRC`{Yp0x-Zx+v0jCOY5!?bFW#_3-fwh0o(uv0=NTs01N^cY~=Mk`)!Z*&}LZw zrr#K>bykYVUj6X%AJn){&=fx

a*IJNqe9yK4;B@AOB{_8U!cd#*6WZ3w{g0G0DoidwNWFV8}~T0&vl40wf;T#smfIUK6hnmJCVM9 zuFoq|9}vAu#r57QR4I9;u=4IGqw;P*V7yOWho-!qq$;_gnu7HEiK^oCrV6yMPiMCW z;@WiJ?H!_R2CLNaI*g2P=AsQo!SWPUN&X!v=g(sMK`1P*vQ3D~Uu9cqvyw`i10z_{ zz-ri23p~h6BG`J8_e#0B%bdls^ATn}5srXkK>#3B&4En@RY@0V*(&j@^tWs#%u z#ViFCoR&}oB6A5#LjKwkwgYioEL#fLXo+S1w88#5JBEUiICh>C-e4CI2QFo&5O*(S zmk>9_vj>Rl5?DRr#fdD!1&_&J4ClCioV+i3=?&*)&`z&17Sc56NWpQem|W*p>ySj1t`nw*rZhHOz-p z8gkfPN;ctL;g<@@#;s*updqYl*|&%@a_M}GhFo@qb`-2<_vm0Z$OCKH0P%v!UchQB z)@}9yN0OS-Rq&L~FNDM?c}>yxJf#DRRplY;n_B_AsiLkf8fOF zS5J*y*x{f>=SCJpSIMs&jSG)WY}^>^sTkrlB{~PzO}ZDan@P8o_1nnU#ExJYyf?E( z*#{MLy`jIn#DmRj7CCT&V+Ext`D{Lxq9mVHQLRF^(t;@3D$lrStGw)eCZ4iQ@&((N zKYFR##yH~kZR|XGORgeswgR~O&`hq|*<)Hy{f(o^n3x;P$BKm0Y=rn|6dx*Hi{pM` z&iBm2IJJX0sTAM58jR0qD`cgz+s7Vy+U?D?s$v5k{N}yQYRSGGcKJf#FxgZn$Bjz3;Lp#Is6elj(xh0&g@4cF!psi=EqyrZr_CV7p0IoK%%=lfK@h zDm^Cc1hn#r)E{rCiU-l6yWAXZk-&rZ?h1B8^+MyjK9$N}wx~)U(Z;od&~q5V&MJ0G zYW?)A)N1^#s#Fs#@~YW-RO+o}Q7X0OopY*^NmE_K)Uqp7HztR5$RSoqI(LEZ&BMtr zx(=~eG!R*O2RAho!AI;(M1eHq<$dhPvD0Xf~YpJU%lkZ zP3--VGOto{B?g;J#l3dYAqndw zNnDF5DL=(hWI-aoK#72thl!~7pJU-p-H%J0}CjDP%j78`4@ z{E|+t;rHe{?fDf&UVg#x2A=$@s)Q|&2euaIS>1GC0T<ZqXe#&agV@F&@dlzPdhcf=3e3&!;!gk>`>@)Gs+miSEQevBlgYQVb>5eQ}!d(_Fz3WaIrrGcnyC)Oa z;v!Ge3vegVMngA?kO>?ZpgHb@>pgafPNUP6?uh*!%fV7C{%=Qjx44n%zWeO9++FUW znHR*k|A5s}zmzSRGIEcDy{z`9}6S(J5wd#pNQvHu8xuXgzc3kFTkR`;{;zyt`bz9Lqw;>E2To%i{vxkiKmdH z+nLKwPaVKZrAiwk6<0T&L@F5rO)GcY9V)YeNTpzq>FCa2QzcG!sGJ!?Dt*tHDsj(C z6>-gzr{E!n4dsuh;;)XUiidjfaJp6%z-P#{A}^jpI{rT=9gksr5$;VM#w%(4YjfS3 zj=VcVx~%{l7>;yfAml*rP2em|xnqWs zJ`)Bc@Q`F{5ciQoJRyQybqDh*=_(~sTI-k%%}KOj8^g`FbwQLA-k+l>Cx|wRLU@Gq zWsQb!JF{jt=4y)PJX97B$C+8h01sKU{ESbNt{%^q*0uwdGuH6@Ij@&lon9z~xqy{L zWU2EPT>iZfC;6~YC@6R+GI3WZ4@W*=BF7I7(Kb=?o|EW~7#WlJU^z##;-v9WfSXME z`sD+sk~tOv@==8qZs*DT|3VLZ)&# zM_XTk=Au*k$(vH^YLcep6KyP>!GmNcPfm8kWfX_QC7@f;1B*~U`%JiRG)KQ&?r@+f zyMZo9l_p06T}-sdh~V-YRZqjsB6v1GLM?S4c=NO6&TNjKEn-R}KSnaw6%JYH94U&M zV~PSY93o+flCs<=Q#R$Tep%>Tj(>QGvbnsGOeU`Em&HX(SxdAj+rFw_mOoF*?DI_7 z;mm$n^?WIFTEH)n&FX&uJNLlDYUQhe_vioH{3#BZ2kty?B z(=YRQP0CVV<2x{yhbGQl%;`yTS|V|=i7l~wCFmJNv5o@^TSqmArzf61afIyAz>L$N4{+t z4|l(Aoj$AzY?%8pM;%w7im75I~-B#rN&9CEi&z5(fcH`+Oo&UexJnF3m$wSrf|y3xIY zk8?%^%W8A@-`ES|<%%d@ZEi@}M|?;Y&!P-E_le?c?kmn`@o1_=q}Y?qUl5bBc{HY4 zl+CjMmsJ{#N{S#K@6L_tb78ld#>UBh(p)#Clq#$ zpeUx~a4*zboWq-au%0nxFv8#m-$qI?=-?0J!E5<>dN;=X8uw|61u*_lFVdtz&oh_T zlO3o1|5o0W%P(qB*1C0E{%z}efa2&{$8QhDm+u?mHKpNzu&;wGzgo}pDBzlMQq0%@ zFBv$xzrieLQw6Q(=b7aUsTB5&P)@InJeulNZ7%GB1uDr#zMm{M9+W#bnS88`_<+qO z|3vZ^9DLP#GJ<@*au9|(yb5_uaS|_YfxD}1;h|vP2;0IV+_cA`#?DQ*QZ`B*BwN&-1rryH@Z;#1~24rOf2-1K-&pQp)&B zl82nd{l={_9_29{6P|uqQ!3pR15mNRVHq4h{n|Ck9#MEPJA=>VXk0Sr)S0>Ix%zzEI%0e&cV&=RY@jy;Zbhdsp2?y7Ui zGo2?jk#LB!q17ifh|r4vs^Pw4Cr(exTK1-O zRn|HjoQmSnEcgHZhx>uP0Pq>WMG;lYXHLLd_zGl;eKg)ICXSR`pfx91=w8slir^0m zUga)|-(&t0{{Uv%06qt}1b{!(+Xy&n!rH{_w^Fi0rzcty!_zWwoMT1rgFN48tm9uj F^S_2RAW8rL delta 6507 zcmZ`-4_H;lu|MbZf*?q4%oPb<2_n0tNDW$JiKRx2B0)q{G)Rd230wgQB3=;{6&3%) zkEcWlYxP11K|qrj{8J86s#J+3mM9uysU<#QH0AmDd_F_+OiFxjX7*f6`}N)Ln{Q@z zemgTeyE}Wp@t1?D1E}%y;Qb>eu>GG0j~iWOu2d_{Th#`0y}8aj?*sFD=A-5#=55m^ z?3^}11=4_i0%QVm(Wgyt4R+DGD|K6_Yu`i^;*woQ2Y|3MYl|z;Fg6}x z%vmUm9vqX?;`Af_tI7H^Ls=oV>(=Zk4K*^hd6LHnNFllK%g?X~|nzr9whI%AF0nh%S)XRS{UMV@}v>hVv5EA%U8t*M#@Q>L7=GO+5eoUrcR;98BvF^dn+Sx4#5v|GbRIP=##u2{EgpzVZofW`v(0X+lc4>S%a zK%akY{MaWa-+gY-ZKM)WRpk+(L<9_aC=qQW`VG20r9|8$dAEw=eQzVA)^%sqo$-3r zoxq@E-~P**@=BVj6ozRE%I~GBis>~KWYIf|-5QQ#vp|pQ5}mVImDYb*&xvHNnim?D z+f*g}BLWvkv4da~)|c2O{}T;8+E-ghHX`8plAgFy5d=&o)XKr98G$iU}f`Ju1br#ocnlDOF<4_NpXD^ zuo~$GbXZjT0+x-73S9`EF!6*%Y!C9jMeHU4WAdHxsx(WN$Xm?(&|bEfCDMY-c5*zh zm__1v_!2e~dGQh!jl6RSTS&NHtwEd~^fJq*K#l}vLx5>1WgzmFvNY7MEoD29Cnd6F z!1dNd7C;kvUtuTEP@cpt5a3mI5qZ!ub_RLhGIj}hb27V!ydi}hL!OYzqFr&jsyB@NMl|U;r-X-jHGn74`<#_r%4Ac4>&2ODnuY_d*)$*qvSps_E7&;%?8;$FK@_d=2v@NMixpM~h8)OZaEPVw2V~Z$Jq9TJ|mS zoI=_ky|Iv8r5Ppb*hx|wmIwaGp-pEFB1a|!>i0R)RJL}ltltuSO7EDLU-$51k+{7kN z#5)yFx~9Yx0M?Kn!f|uToddw2YS1BW(HpFe{P%(mw>@OHyzK{evrV#ZIF6t}_b+AF-7(XLZ?Rb9Q5Eu% znFXr@U2hibt|=0WUD$%IHDx&PUPG=tttx$n{8_WA3>dNrWaW1fKSfs+Pm)ES!)R_X zphNV&N_JiKM(4YKFTr27s>&eA`n9*=&S46>YS>MQdiI<|HT^+VYDpGFwQN0t9@es0 zm9FOP^Qw|ZU0uZ2v8z-!CYyC=J*y(j9nc>ZVdob;^(+w`gf*~(Mrkfkay>^_zD6ze z(Z{Ni@}hhvHiBGw5z`Qv@5}xZ^Z}(HY7OpxOzIAU`+O+%a)X;2Sp`HC4UMvK^fa$3Ct9nLrK^xxp! zTO>DZEyz)Qv|)i4WqWVFC^uxvpCoTIcu1$z8w?)!iPWnuLVdlbanWn7#tHe6nu<_EGM*}#>rr92j7H$z_Y->PCUG%OQ0dxe~K<*$})b`4UIqwU$8;{|j!FSz~ zy5&pBs|_A_gEd>m-742a;Oduy$D|P zz_0`kuoi;!e#34^$Sey%+W$vB7JBA)1|;zB&Kq>?X@oq!K|0)^oie z*gom90|w)|PVr?FDn;c5By?-MN&>>iQOsf!w~?jKh0B|sIgD3GNGBtRn>$Y z%WV%QBr2F7B_oVLx4jHVlGzDqn@EtsCk;r_QxYPsS-1^1IeZjT75M;Oo1dAh7xBIvzq<8nzWk_06W*ZSpegf!%RZqgBSCJLJ)?T8oZ#;V+0%qo)8)w;1-#vm zTYjx6oh0iG{ybK`0{doYN|}+)*Dt^giJ-NZ$MbV^QtY6^ne7?RBjuU38c#;uOwD*c z^f1OxXmlg*%$8v*fd@sR+!O?Bp!X&yN>gqdsbtTA1_?SWvOSpl$|jx?O`-Zic#RBY zi;>>0%!SKIvR*xr8*l5PSZVB^rzxjM)=NWqw2WnsgKs;dX4mIyie&+U#r?^~s^US1 zRki+t&y=CQUnsq82QGW8Zh4L$ldC$rSQ-m~D@({z_b<8pdm%~c;bBlvh)`PngYv zGU#8==?mhvpV zgVs>Ejn*5O&G(?6Q`vksjklH1c+?7B1><_(3O?Bd0oGMU^S{0iPJ5SdtTHCp_LCl( z&+};o-TOt^YVId4$sK)Y8>FA9#hG&m?@|TZs1+es(@gWZC(X z7_G?8{g68h-ijP1_t^PV9Jj3D0m#GF@JEz(fuJmA6mW0EB^2-$U#w^R0cc_HgKs0H z3^4cud&pXTf!>YDzrlH$Vg-&r#Kjmg;4Fpw82K?B{FnBgLVi($vNo*a@^4$WLzG9) zI)2LwU%qch*ObOXqIVsv@~ic{h!Q^RAYjf0c*!78{|2L+&6PA>Tx66pv`X}DgmQXs z1{c4lc6V8lODL)&>u;?!>QN2BQq%Gxg#*ur)yBx6q9&i z3!GhT3l9VTdiWL|?XKN@PT#eg$D44mH}~*hEdKDle4;m=xwdAwBS7dSr-{x_>|S}m z4*~|U7Y+XXUQYjJnOG)yTA6%DPL$C%gSb(~XCmJ3O=(|f@Evb*KWe<;zta>u&?5Wu z_H}s~$yvF!mAG*jI|;@izl(1|EitcCphM$bwvTTmJ*buRyZiVu(%V6IyCN3uH|*Bm zll|s?!`=)!*dxo~&Y(Z@8M0q5=M~h=Zh`K0h1R?NE#5+y!n1^#ULo&iO$C?#7__(1 z_%y-O2xs{N`K}Xu3F)O$cRgU}{h&v63EKglOZL!nIA6bcfX8}nuJTZnw}J3i4IJs6 z|A&5Tcgm8he$F}0ai>4z?|7)SuHC0Kr3M_o3sehq7^u!eoH@+B7=mgI`_X@}E6RJI zzYp|*$gSt2>3B|o4T6Kdx1Re=3Y(Q`PmRpVp{@jOJX>U#WB=slL(m(6j*FZ1e9i*g z17TtpWn$0PaW)R|34n1X lrhKX?e*#=5&?i8b#F{$(>?nkN@uLtOAP?wG4g9O0{2$^Mn-l;5 diff --git a/src/Wrapper.js b/src/Wrapper.js index 5201898..fc5577d 100644 --- a/src/Wrapper.js +++ b/src/Wrapper.js @@ -4,17 +4,18 @@ */ let objs = []; -let events = ["status", "partialResult", "result"]; -let storageWorkerURL = URL.createObjectURL(new Blob(['(', (() => { +let events = ['status', 'partialResult', 'result']; +let storageWorkerURL = URL.createObjectURL(new Blob(['(', (async () => { let txtDecoder = new TextDecoder(); let txtEncoder = new TextEncoder(); + let OPFSRoot = await navigator.storage.getDirectory(); onmessage = async msg => { msg = msg.data; - let components = msg.storepath.split("/"); - let prevDir = await navigator.storage.getDirectory(); + let components = msg.storepath.split('/'); + let prevDir = OPFSRoot; 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 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()); @@ -23,16 +24,16 @@ let storageWorkerURL = URL.createObjectURL(new Blob(['(', (() => { 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(); + 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"); + postMessage('Unable to download model'); return; } let teed = res.body.tee(); - tgz = await new Response(teed[0].pipeThrough(new CompressionStream("gzip"))).arrayBuffer(); + 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); @@ -44,10 +45,10 @@ let storageWorkerURL = URL.createObjectURL(new Blob(['(', (() => { mdlFile.close(); self.postMessage(tar, [tar]); } -}).toString(), ')()'], { type: "text/javascript" })) +}).toString(), ')()'], { type: 'text/javascript' })) let storageWorker = new Worker(storageWorkerURL); let processorURL = URL.createObjectURL(new Blob(['(', (() => { - registerProcessor("VoskletTransferer", class extends AudioWorkletProcessor { + registerProcessor('VoskletTransferer', class extends AudioWorkletProcessor { constructor(opts) { super(); this.count = 0; @@ -65,7 +66,7 @@ let processorURL = URL.createObjectURL(new Blob(['(', (() => { return true; } }) -}).toString(), ')()'], { type: "text/javascript" })); +}).toString(), ')()'], { type: 'text/javascript' })); Module['cleanUp'] = async () => { for(let obj of objs) await obj.delete(); @@ -76,8 +77,8 @@ Module['cleanUp'] = async () => { Module['createTransferer'] = async (ctx, bufferSize) => { await ctx.audioWorklet.addModule(processorURL); - return new AudioWorkletNode(ctx, "VoskletTransferer", { - channelCountMode: "explicit", + return new AudioWorkletNode(ctx, 'VoskletTransferer', { + channelCountMode: 'explicit', numberOfInputs: 1, numberOfOutputs: 0, channelCount: 1, @@ -96,19 +97,19 @@ class CommonModel extends EventTarget { static async mk(url, storepath, id, normalMdl) { let mdl = new CommonModel(); let result = new Promise((resolve, reject) => { - mdl.addEventListener("status", ev => { + mdl.addEventListener('status', ev => { if(!ev.detail) { if(normalMdl) mdl['findWord'] = word => mdl.obj['findWord'](word) resolve(mdl) } else reject(ev.detail) - }, { once : true }) + }, { once: true }) }); - storageWorker.addEventListener("message", tar => { + storageWorker.addEventListener('message', tar => { 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, @@ -128,7 +129,7 @@ Module['createSpkModel'] = async (url, storepath, id) => class Recognizer extends EventTarget { constructor() { super(); - // Closure workaround, this is removed if I put it as a regular class function. For some reason delete() doesn't + // Closure workaround to prevent acceptWaveform from getting removed this['acceptWaveform'] = audioData => { let start = _malloc(audioData.length * 4); HEAPF32.set(audioData, start / 4); @@ -146,17 +147,17 @@ class Recognizer extends EventTarget { }) } async delete(processCurrent = false) { - let result = new Promise((resolve, _) => this.addEventListener("status", _ => { + let result = new Promise((resolve, _) => this.addEventListener('status', _ => { this.obj.delete(); resolve(); }, { once: true })); - this.obj.safeDelete(processCurrent); + 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 => { + rec.addEventListener('status', ev => { if(!ev.detail) resolve(rec); else reject(ev.detail); }, { once: true }); @@ -182,6 +183,4 @@ 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); - - + Recognizer.mk(model.obj, sampleRate, 3, grammar, null); \ No newline at end of file diff --git a/test b/test index eb92dd2..8c4edee 100755 --- a/test +++ b/test @@ -36,12 +36,12 @@ OPENFST=$(realpath openfst) CLAPACK_WASM=$(realpath clapack-wasm) cd src && -MODE=1 && # 0: Debug, 1: Optimized release +MODE=0 && # 0: Debug, 1: Optimized release echo "Mode = $MODE" && if [ "$MODE" = 0 ]; then - em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O0 -std=c++23 -g3 -Wall -Wextra -Wpedantic -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 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -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 + em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -O0 -std=c++23 -g3 -Wall -Wextra -Wpedantic -fno-rtti -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -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 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -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 -std=c++23 -O3 -Wall -Wextra -Wpedantic -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 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -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 && + em++ Util.cc CommonModel.cc Recognizer.cc Bindings.cc -std=c++23 -O3 -Wall -Wextra -Wpedantic -fno-rtti -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -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 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -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 && tr -d '\n' < ../test.js | tr -s ' ' > /tmp/hehe && mv /tmp/hehe ../test.js fi cd .. &&