diff --git "a/assets/worker-d3671fec.js" "b/assets/worker-d3671fec.js" deleted file mode 100644--- "a/assets/worker-d3671fec.js" +++ /dev/null @@ -1,1790 +0,0 @@ -var fn=Object.defineProperty;var gn=(tt,y,n)=>y in tt?fn(tt,y,{enumerable:!0,configurable:!0,writable:!0,value:n}):tt[y]=n;var jt=(tt,y,n)=>(gn(tt,typeof y!="symbol"?y+"":y,n),n);(function(){var tt;"use strict";function _mergeNamespaces(y,n){return n.forEach(function(u){u&&typeof u!="string"&&!Array.isArray(u)&&Object.keys(u).forEach(function(d){if(d!=="default"&&!(d in y)){var l=Object.getOwnPropertyDescriptor(u,d);Object.defineProperty(y,d,l.get?l:{enumerable:!0,get:function(){return u[d]}})}})}),Object.freeze(y)}function dispatchCallback(y,n){y!==null&&y(n)}function reverseDictionary(y){return Object.fromEntries(Object.entries(y).map(([n,u])=>[u,n]))}function escapeRegExp(y){return y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const Callable=class{constructor(){let y=function(...n){return y._call(...n)};return Object.setPrototypeOf(y,new.target.prototype)}_call(...y){throw Error("Must implement _call method in subclass")}};function isTypedArray(y){var n,u,d;return((d=(u=(n=y==null?void 0:y.prototype)==null?void 0:n.__proto__)==null?void 0:u.constructor)==null?void 0:d.name)==="TypedArray"}function isIntegralNumber(y){return Number.isInteger(y)||typeof y=="bigint"}function exists(y){return y!=null}function mergeArrays(...y){return Array.prototype.concat.apply([],y)}var sharp={},ONNX_NODE=Object.freeze({__proto__:null,default:sharp});function getDefaultExportFromCjs(y){return y&&y.__esModule&&Object.prototype.hasOwnProperty.call(y,"default")?y.default:y}function getAugmentedNamespace(y){if(y.__esModule)return y;var n=y.default;if(typeof n=="function"){var u=function d(){return this instanceof d?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};u.prototype=n.prototype}else u={};return Object.defineProperty(u,"__esModule",{value:!0}),Object.keys(y).forEach(function(d){var l=Object.getOwnPropertyDescriptor(y,d);Object.defineProperty(u,d,l.get?l:{enumerable:!0,get:function(){return y[d]}})}),u}var ortWeb_min$1={exports:{}};const backends={},backendsSortedByPriority=[],registerBackend=(y,n,u)=>{if(n&&typeof n.init=="function"&&typeof n.createSessionHandler=="function"){const d=backends[y];if(d===void 0)backends[y]={backend:n,priority:u};else{if(d.priority>u)return;if(d.priority===u&&d.backend!==n)throw new Error(`cannot register backend "${y}" using priority ${u}`)}if(u>=0){const l=backendsSortedByPriority.indexOf(y);l!==-1&&backendsSortedByPriority.splice(l,1);for(let p=0;p<backendsSortedByPriority.length;p++)if(backends[backendsSortedByPriority[p]].priority<=u){backendsSortedByPriority.splice(p,0,y);return}backendsSortedByPriority.push(y)}return}throw new TypeError("not a valid backend")},resolveBackend=async y=>{const n=y.length===0?backendsSortedByPriority:y,u=[];for(const d of n){const l=backends[d];if(l){if(l.initialized)return l.backend;if(l.aborted)continue;const p=!!l.initPromise;try{return p||(l.initPromise=l.backend.init()),await l.initPromise,l.initialized=!0,l.backend}catch(s){p||u.push({name:d,err:s}),l.aborted=!0}finally{delete l.initPromise}}}throw new Error(`no available backend found. ERR: ${u.map(d=>`[${d.name}] ${d.err}`).join(", ")}`)};class EnvImpl{constructor(){this.wasm={},this.webgl={},this.logLevelInternal="warning"}set logLevel(n){if(n!==void 0){if(typeof n!="string"||["verbose","info","warning","error","fatal"].indexOf(n)===-1)throw new Error(`Unsupported logging level: ${n}`);this.logLevelInternal=n}}get logLevel(){return this.logLevelInternal}}const env$1=new EnvImpl,isBigInt64ArrayAvailable=typeof BigInt64Array<"u"&&typeof BigInt64Array.from=="function",isBigUint64ArrayAvailable=typeof BigUint64Array<"u"&&typeof BigUint64Array.from=="function",NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array]]),NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);isBigInt64ArrayAvailable&&(NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.set("int64",BigInt64Array),NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.set(BigInt64Array,"int64")),isBigUint64ArrayAvailable&&(NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.set("uint64",BigUint64Array),NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.set(BigUint64Array,"uint64"));const calculateSize=y=>{let n=1;for(let u=0;u<y.length;u++){const d=y[u];if(typeof d!="number"||!Number.isSafeInteger(d))throw new TypeError(`dims[${u}] must be an integer, got: ${d}`);if(d<0)throw new RangeError(`dims[${u}] must be a non-negative integer, got: ${d}`);n*=d}return n};let Tensor$2=class at{constructor(n,u,d){let l,p,s;if(typeof n=="string")if(l=n,s=d,n==="string"){if(!Array.isArray(u))throw new TypeError("A string tensor's data must be a string array.");p=u}else{const f=NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(n);if(f===void 0)throw new TypeError(`Unsupported tensor type: ${n}.`);if(Array.isArray(u))p=f.from(u);else if(u instanceof f)p=u;else throw new TypeError(`A ${l} tensor's data must be type of ${f}`)}else if(s=u,Array.isArray(n)){if(n.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const f=typeof n[0];if(f==="string")l="string",p=n;else if(f==="boolean")l="bool",p=Uint8Array.from(n);else throw new TypeError(`Invalid element type of data array: ${f}.`)}else{const f=NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.get(n.constructor);if(f===void 0)throw new TypeError(`Unsupported type for tensor data: ${n.constructor}.`);l=f,p=n}if(s===void 0)s=[p.length];else if(!Array.isArray(s))throw new TypeError("A tensor's dims must be a number array");const h=calculateSize(s);if(h!==p.length)throw new Error(`Tensor's size(${h}) does not match data length(${p.length}).`);this.dims=s,this.type=l,this.data=p,this.size=h}static bufferToTensor(n,u){if(n===void 0)throw new Error("Image buffer must be defined");if(u.height===void 0||u.width===void 0)throw new Error("Image height and width must be defined");const{height:d,width:l}=u,p=u.norm;let s,h;p===void 0||p.mean===void 0?s=255:s=p.mean,p===void 0||p.bias===void 0?h=0:h=p.bias;const f=u.bitmapFormat!==void 0?u.bitmapFormat:"RGBA",a=u.tensorFormat!==void 0&&u.tensorFormat!==void 0?u.tensorFormat:"RGB",o=d*l,t=a==="RGBA"?new Float32Array(o*4):new Float32Array(o*3);let e=4,r=0,i=1,c=2,g=3,m=0,b=o,_=o*2,w=-1;f==="RGB"&&(e=3,r=0,i=1,c=2,g=-1),a==="RGBA"?w=o*3:a==="RBG"?(m=0,_=o,b=o*2):a==="BGR"&&(_=0,b=o,m=o*2);for(let S=0;S<o;S++,r+=e,c+=e,i+=e,g+=e)t[m++]=(n[r]+h)/s,t[b++]=(n[i]+h)/s,t[_++]=(n[c]+h)/s,w!==-1&&g!==-1&&(t[w++]=(n[g]+h)/s);return a==="RGBA"?new at("float32",t,[1,4,d,l]):new at("float32",t,[1,3,d,l])}static async fromImage(n,u){const d=typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement,l=typeof ImageData<"u"&&n instanceof ImageData,p=typeof ImageBitmap<"u"&&n instanceof ImageBitmap,s=typeof String<"u"&&(n instanceof String||typeof n=="string");let h,f={};if(d){const a=document.createElement("canvas"),o=a.getContext("2d");if(o!=null){let t=n.naturalHeight,e=n.naturalWidth;if(u!==void 0&&u.resizedHeight!==void 0&&u.resizedWidth!==void 0&&(t=u.resizedHeight,e=u.resizedWidth),u!==void 0){if(f=u,u.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");if(f.tensorFormat="RGBA",u.height!==void 0&&u.height!==t)throw new Error("Image input config height doesn't match HTMLImageElement height");if(f.height=t,u.width!==void 0&&u.width!==e)throw new Error("Image input config width doesn't match HTMLImageElement width");f.width=e}else f.tensorFormat="RGBA",f.height=t,f.width=e;a.width=e,a.height=t,o.drawImage(n,0,0,e,t),h=o.getImageData(0,0,e,t).data}else throw new Error("Can not access image data")}else if(l){const a="RGBA";let o,t;if(u!==void 0&&u.resizedWidth!==void 0&&u.resizedHeight!==void 0?(o=u.resizedHeight,t=u.resizedWidth):(o=n.height,t=n.width),u!==void 0){if(f=u,u.bitmapFormat!==void 0&&u.bitmapFormat!==a)throw new Error("Image input config format must be RGBA for ImageData");f.bitmapFormat="RGBA"}else f.bitmapFormat="RGBA";if(f.height=o,f.width=t,u!==void 0){const e=document.createElement("canvas");e.width=t,e.height=o;const r=e.getContext("2d");if(r!=null)r.putImageData(n,0,0),h=r.getImageData(0,0,t,o).data;else throw new Error("Can not access image data")}else h=n.data}else if(p){if(u===void 0)throw new Error("Please provide image config with format for Imagebitmap");if(u.bitmapFormat!==void 0)throw new Error("Image input config format must be defined for ImageBitmap");const a=document.createElement("canvas").getContext("2d");if(a!=null){const o=n.height,t=n.width;if(a.drawImage(n,0,0,t,o),h=a.getImageData(0,0,t,o).data,u!==void 0){if(u.height!==void 0&&u.height!==o)throw new Error("Image input config height doesn't match ImageBitmap height");if(f.height=o,u.width!==void 0&&u.width!==t)throw new Error("Image input config width doesn't match ImageBitmap width");f.width=t}else f.height=o,f.width=t;return at.bufferToTensor(h,f)}else throw new Error("Can not access image data")}else{if(s)return new Promise((a,o)=>{const t=document.createElement("canvas"),e=t.getContext("2d");if(!n||!e)return o();const r=new Image;r.crossOrigin="Anonymous",r.src=n,r.onload=()=>{t.width=r.width,t.height=r.height,e.drawImage(r,0,0,t.width,t.height);const i=e.getImageData(0,0,t.width,t.height);if(u!==void 0){if(u.height!==void 0&&u.height!==t.height)throw new Error("Image input config height doesn't match ImageBitmap height");if(f.height=t.height,u.width!==void 0&&u.width!==t.width)throw new Error("Image input config width doesn't match ImageBitmap width");f.width=t.width}else f.height=t.height,f.width=t.width;a(at.bufferToTensor(i.data,f))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(h!==void 0)return at.bufferToTensor(h,f);throw new Error("Input data provided is not supported - aborted tensor creation")}toImageData(n){var u,d;const l=document.createElement("canvas").getContext("2d");let p;if(l!=null){const s=this.dims[3],h=this.dims[2],f=this.dims[1],a=n!==void 0&&n.format!==void 0?n.format:"RGB",o=n!==void 0&&((u=n.norm)===null||u===void 0?void 0:u.mean)!==void 0?n.norm.mean:255,t=n!==void 0&&((d=n.norm)===null||d===void 0?void 0:d.bias)!==void 0?n.norm.bias:0,e=h*s;if(n!==void 0){if(n.height!==void 0&&n.height!==h)throw new Error("Image output config height doesn't match tensor height");if(n.width!==void 0&&n.width!==s)throw new Error("Image output config width doesn't match tensor width");if(n.format!==void 0&&f===4&&n.format!=="RGBA"||f===3&&n.format!=="RGB"&&n.format!=="BGR")throw new Error("Tensor format doesn't match input tensor dims")}const r=4;let i=0,c=1,g=2,m=3,b=0,_=e,w=e*2,v=-1;a==="RGBA"?(b=0,_=e,w=e*2,v=e*3):a==="RGB"?(b=0,_=e,w=e*2):a==="RBG"&&(b=0,w=e,_=e*2),p=l.createImageData(s,h);for(let S=0;S<h*s;i+=r,c+=r,g+=r,m+=r,S++)p.data[i]=(this.data[b++]-t)*o,p.data[c]=(this.data[_++]-t)*o,p.data[g]=(this.data[w++]-t)*o,p.data[m]=v===-1?255:(this.data[v++]-t)*o}else throw new Error("Can not access image data");return p}reshape(n){return new at(this.type,this.data,n)}};const Tensor$1=Tensor$2;let InferenceSession$2=class dn{constructor(n){this.handler=n}async run(n,u,d){const l={};let p={};if(typeof n!="object"||n===null||n instanceof Tensor$1||Array.isArray(n))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let s=!0;if(typeof u=="object"){if(u===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(u instanceof Tensor$1)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(u)){if(u.length===0)throw new TypeError("'fetches' cannot be an empty array.");s=!1;for(const a of u){if(typeof a!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(a)===-1)throw new RangeError(`'fetches' contains invalid output name: ${a}.`);l[a]=null}if(typeof d=="object"&&d!==null)p=d;else if(typeof d<"u")throw new TypeError("'options' must be an object.")}else{let a=!1;const o=Object.getOwnPropertyNames(u);for(const t of this.outputNames)if(o.indexOf(t)!==-1){const e=u[t];(e===null||e instanceof Tensor$1)&&(a=!0,s=!1,l[t]=e)}if(a){if(typeof d=="object"&&d!==null)p=d;else if(typeof d<"u")throw new TypeError("'options' must be an object.")}else p=u}}else if(typeof u<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const a of this.inputNames)if(typeof n[a]>"u")throw new Error(`input '${a}' is missing in 'feeds'.`);if(s)for(const a of this.outputNames)l[a]=null;const h=await this.handler.run(n,l,p),f={};for(const a in h)Object.hasOwnProperty.call(h,a)&&(f[a]=new Tensor$1(h[a].type,h[a].data,h[a].dims));return f}static async create(n,u,d,l){let p,s={};if(typeof n=="string"){if(p=n,typeof u=="object"&&u!==null)s=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof Uint8Array){if(p=n,typeof u=="object"&&u!==null)s=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer){const t=n;let e=0,r=n.byteLength;if(typeof u=="object"&&u!==null)s=u;else if(typeof u=="number"){if(e=u,!Number.isSafeInteger(e))throw new RangeError("'byteOffset' must be an integer.");if(e<0||e>=t.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${t.byteLength}).`);if(r=n.byteLength-e,typeof d=="number"){if(r=d,!Number.isSafeInteger(r))throw new RangeError("'byteLength' must be an integer.");if(r<=0||e+r>t.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${t.byteLength-e}].`);if(typeof l=="object"&&l!==null)s=l;else if(typeof l<"u")throw new TypeError("'options' must be an object.")}else if(typeof d<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof u<"u")throw new TypeError("'options' must be an object.");p=new Uint8Array(t,e,r)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");const f=(s.executionProviders||[]).map(t=>typeof t=="string"?t:t.name),o=await(await resolveBackend(f)).createSessionHandler(p,s);return new dn(o)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};const InferenceSession$1=InferenceSession$2;var lib=Object.freeze({__proto__:null,InferenceSession:InferenceSession$1,Tensor:Tensor$1,env:env$1,registerBackend}),require$$0=getAugmentedNamespace(lib);/*! -* ONNX Runtime Web v1.14.0 -* Copyright (c) Microsoft Corporation. All rights reserved. -* Licensed under the MIT License. -*/(function(module,exports){(function(y,n){module.exports=n(require$$0)})(self,__WEBPACK_EXTERNAL_MODULE__1670__=>(()=>{var __webpack_modules__={3474:(y,n,u)=>{var d,l=(d=(d=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(p){function s(){return X.buffer!=ne&&Ee(X.buffer),me}function h(){return X.buffer!=ne&&Ee(X.buffer),Ie}function f(){return X.buffer!=ne&&Ee(X.buffer),Oe}function a(){return X.buffer!=ne&&Ee(X.buffer),ce}function o(){return X.buffer!=ne&&Ee(X.buffer),Te}var t,e,r;p=p||{},t||(t=p!==void 0?p:{}),t.ready=new Promise(function(x,A){e=x,r=A});var i,c,g,m,b,_,w=Object.assign({},t),v="./this.program",S=(x,A)=>{throw A},O=typeof window=="object",E=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",I=t.ENVIRONMENT_IS_PTHREAD||!1,C="";function B(x){return t.locateFile?t.locateFile(x,C):C+x}if(T){let x;C=E?u(908).dirname(C)+"/":"//",_=()=>{b||(m=u(1384),b=u(908))},i=function(A,k){return _(),A=b.normalize(A),m.readFileSync(A,k?void 0:"utf8")},g=A=>((A=i(A,!0)).buffer||(A=new Uint8Array(A)),A),c=(A,k,M)=>{_(),A=b.normalize(A),m.readFile(A,function(j,V){j?M(j):k(V.buffer)})},1<process.argv.length&&(v=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",function(A){if(!(A instanceof Ze))throw A}),process.on("unhandledRejection",function(A){throw A}),S=(A,k)=>{if(Ve())throw process.exitCode=A,k;k instanceof Ze||z("exiting due to exception: "+k),process.exit(A)},t.inspect=function(){return"[Emscripten Module object]"};try{x=u(9925)}catch(A){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),A}u.g.Worker=x.Worker}else(O||E)&&(E?C=self.location.href:typeof document<"u"&&document.currentScript&&(C=document.currentScript.src),d&&(C=d),C=C.indexOf("blob:")!==0?C.substr(0,C.replace(/[?#].*/,"").lastIndexOf("/")+1):"",T||(i=x=>{var A=new XMLHttpRequest;return A.open("GET",x,!1),A.send(null),A.responseText},E&&(g=x=>{var A=new XMLHttpRequest;return A.open("GET",x,!1),A.responseType="arraybuffer",A.send(null),new Uint8Array(A.response)}),c=(x,A,k)=>{var M=new XMLHttpRequest;M.open("GET",x,!0),M.responseType="arraybuffer",M.onload=()=>{M.status==200||M.status==0&&M.response?A(M.response):k()},M.onerror=k,M.send(null)}));T&&typeof performance>"u"&&(u.g.performance=u(6953).performance);var F=console.log.bind(console),N=console.warn.bind(console);T&&(_(),F=x=>m.writeSync(1,x+` -`),N=x=>m.writeSync(2,x+` -`));var H,$=t.print||F,z=t.printErr||N;Object.assign(t,w),w=null,t.thisProgram&&(v=t.thisProgram),t.quit&&(S=t.quit),t.wasmBinary&&(H=t.wasmBinary);var J=t.noExitRuntime||!1;typeof WebAssembly!="object"&&pe("no native wasm support detected");var X,te,ne,me,Ie,Oe,ce,Te,_e=!1,Le=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function We(x,A,k){var M=(A>>>=0)+k;for(k=A;x[k]&&!(k>=M);)++k;if(16<k-A&&x.buffer&&Le)return Le.decode(x.buffer instanceof SharedArrayBuffer?x.slice(A,k):x.subarray(A,k));for(M="";A<k;){var j=x[A++];if(128&j){var V=63&x[A++];if((224&j)==192)M+=String.fromCharCode((31&j)<<6|V);else{var K=63&x[A++];65536>(j=(240&j)==224?(15&j)<<12|V<<6|K:(7&j)<<18|V<<12|K<<6|63&x[A++])?M+=String.fromCharCode(j):(j-=65536,M+=String.fromCharCode(55296|j>>10,56320|1023&j))}}else M+=String.fromCharCode(j)}return M}function Ae(x,A){return(x>>>=0)?We(h(),x,A):""}function Ce(x,A,k,M){if(!(0<M))return 0;var j=k>>>=0;M=k+M-1;for(var V=0;V<x.length;++V){var K=x.charCodeAt(V);if(55296<=K&&57343>=K&&(K=65536+((1023&K)<<10)|1023&x.charCodeAt(++V)),127>=K){if(k>=M)break;A[k++>>>0]=K}else{if(2047>=K){if(k+1>=M)break;A[k++>>>0]=192|K>>6}else{if(65535>=K){if(k+2>=M)break;A[k++>>>0]=224|K>>12}else{if(k+3>=M)break;A[k++>>>0]=240|K>>18,A[k++>>>0]=128|K>>12&63}A[k++>>>0]=128|K>>6&63}A[k++>>>0]=128|63&K}}return A[k>>>0]=0,k-j}function Me(x){for(var A=0,k=0;k<x.length;++k){var M=x.charCodeAt(k);127>=M?A++:2047>=M?A+=2:55296<=M&&57343>=M?(A+=4,++k):A+=3}return A}function Ee(x){ne=x,t.HEAP8=me=new Int8Array(x),t.HEAP16=new Int16Array(x),t.HEAP32=Oe=new Int32Array(x),t.HEAPU8=Ie=new Uint8Array(x),t.HEAPU16=new Uint16Array(x),t.HEAPU32=ce=new Uint32Array(x),t.HEAPF32=new Float32Array(x),t.HEAPF64=Te=new Float64Array(x)}I&&(ne=t.buffer);var ve=t.INITIAL_MEMORY||16777216;if(I)X=t.wasmMemory,ne=t.buffer;else if(t.wasmMemory)X=t.wasmMemory;else if(!((X=new WebAssembly.Memory({initial:ve/65536,maximum:65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw z("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"),T&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");X&&(ne=X.buffer),ve=ne.byteLength,Ee(ne);var je,ze=[],Ue=[],He=[],Ke=[];function Ve(){return J||!1}function Be(){var x=t.preRun.shift();ze.unshift(x)}var Se,Fe=0,Xe=null;function pe(x){throw I?postMessage({cmd:"onAbort",arg:x}):t.onAbort&&t.onAbort(x),z(x="Aborted("+x+")"),_e=!0,x=new WebAssembly.RuntimeError(x+". Build with -sASSERTIONS for more info."),r(x),x}function ht(){return Se.startsWith("data:application/octet-stream;base64,")}function ut(){var x=Se;try{if(x==Se&&H)return new Uint8Array(H);if(g)return g(x);throw"both async and sync fetching of the wasm failed"}catch(A){pe(A)}}Se="ort-wasm-threaded.wasm",ht()||(Se=B(Se));var Et={};function Ze(x){this.name="ExitStatus",this.message="Program terminated with exit("+x+")",this.status=x}function lt(x){(x=re.Vb[x])||pe(),re.mc(x)}function ct(x){var A=re.Cc();if(!A)return 6;re.ac.push(A),re.Vb[x.Ub]=A,A.Ub=x.Ub;var k={cmd:"run",start_routine:x.Ic,arg:x.zc,pthread_ptr:x.Ub};return A.$b=()=>{k.time=performance.now(),A.postMessage(k,x.Nc)},A.loaded&&(A.$b(),delete A.$b),0}function Ne(x){if(I)return Z(1,1,x);Ve()||(re.oc(),t.onExit&&t.onExit(x),_e=!0),S(x,new Ze(x))}function rt(x,A){if(!A&&I)throw It(x),"unwind";Ve()||I||(Wt(),nt(He),qt(0),Ct[1].length&&Nt(1,10),Ct[2].length&&Nt(2,10),re.oc()),Ne(x)}var re={Yb:[],ac:[],qc:[],Vb:{},fc:function(){I&&re.Ec()},Pc:function(){},Ec:function(){re.receiveObjectTransfer=re.Gc,re.threadInitTLS=re.pc,re.setExitStatus=re.nc,J=!1},nc:function(){},oc:function(){for(var x of Object.values(re.Vb))re.mc(x);for(x of re.Yb)x.terminate();re.Yb=[]},mc:function(x){var A=x.Ub;delete re.Vb[A],re.Yb.push(x),re.ac.splice(re.ac.indexOf(x),1),x.Ub=0,Ft(A)},Gc:function(){},pc:function(){re.qc.forEach(x=>x())},Fc:function(x,A){x.onmessage=k=>{var M=(k=k.data).cmd;if(x.Ub&&(re.Bc=x.Ub),k.targetThread&&k.targetThread!=Dt()){var j=re.Vb[k.Qc];j?j.postMessage(k,k.transferList):z('Internal error! Worker sent a message "'+M+'" to target pthread '+k.targetThread+", but that thread no longer exists!")}else M==="processProxyingQueue"?L(k.queue):M==="spawnThread"?ct(k):M==="cleanupThread"?lt(k.thread):M==="killThread"?(k=k.thread,M=re.Vb[k],delete re.Vb[k],M.terminate(),Ft(k),re.ac.splice(re.ac.indexOf(M),1),M.Ub=0):M==="cancelThread"?re.Vb[k.thread].postMessage({cmd:"cancel"}):M==="loaded"?(x.loaded=!0,A&&A(x),x.$b&&(x.$b(),delete x.$b)):M==="print"?$("Thread "+k.threadId+": "+k.text):M==="printErr"?z("Thread "+k.threadId+": "+k.text):M==="alert"?alert("Thread "+k.threadId+": "+k.text):k.target==="setimmediate"?x.postMessage(k):M==="onAbort"?t.onAbort&&t.onAbort(k.arg):M&&z("worker sent an unknown command "+M);re.Bc=void 0},x.onerror=k=>{throw z("worker sent an error! "+k.filename+":"+k.lineno+": "+k.message),k},T&&(x.on("message",function(k){x.onmessage({data:k})}),x.on("error",function(k){x.onerror(k)}),x.on("detachedExit",function(){})),x.postMessage({cmd:"load",urlOrBlob:t.mainScriptUrlOrBlob||d,wasmMemory:X,wasmModule:te})},yc:function(){var x=B("ort-wasm-threaded.worker.js");re.Yb.push(new Worker(x))},Cc:function(){return re.Yb.length==0&&(re.yc(),re.Fc(re.Yb[0])),re.Yb.pop()}};function nt(x){for(;0<x.length;)x.shift()(t)}function Pt(x){var A=le();return x=x(),ue(A),x}function It(x){if(I)return Z(2,0,x);try{rt(x)}catch(A){A instanceof Ze||A=="unwind"||S(1,A)}}t.PThread=re,t.establishStackSpace=function(){var x=Dt(),A=f()[x+44>>2>>>0];x=f()[x+48>>2>>>0],Zt(A,A-x),ue(A)};var Je=[];function ye(x){var A=Je[x];return A||(x>=Je.length&&(Je.length=x+1),Je[x]=A=je.get(x)),A}t.invokeEntryPoint=function(x,A){x=ye(x)(A),Ve()?re.nc(x):Kt(x)};var it,pt,ot=[],se=0,ie=0;function oe(x){this.Zb=x,this.Sb=x-24,this.xc=function(A){a()[this.Sb+4>>2>>>0]=A},this.bc=function(){return a()[this.Sb+4>>2>>>0]},this.wc=function(A){a()[this.Sb+8>>2>>>0]=A},this.Dc=function(){return a()[this.Sb+8>>2>>>0]},this.rc=function(){f()[this.Sb>>2>>>0]=0},this.hc=function(A){A=A?1:0,s()[this.Sb+12>>0>>>0]=A},this.uc=function(){return s()[this.Sb+12>>0>>>0]!=0},this.ic=function(A){A=A?1:0,s()[this.Sb+13>>0>>>0]=A},this.kc=function(){return s()[this.Sb+13>>0>>>0]!=0},this.fc=function(A,k){this.cc(0),this.xc(A),this.wc(k),this.rc(),this.hc(!1),this.ic(!1)},this.sc=function(){Atomics.add(f(),this.Sb>>2,1)},this.Hc=function(){return Atomics.sub(f(),this.Sb>>2,1)===1},this.cc=function(A){a()[this.Sb+16>>2>>>0]=A},this.tc=function(){return a()[this.Sb+16>>2>>>0]},this.vc=function(){if(Jt(this.bc()))return a()[this.Zb>>2>>>0];var A=this.tc();return A!==0?A:this.Zb}}function ft(x){return Gt(new oe(x).Sb)}function st(x,A,k,M){return I?Z(3,1,x,A,k,M):gt(x,A,k,M)}function gt(x,A,k,M){if(typeof SharedArrayBuffer>"u")return z("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var j=[];return I&&j.length===0?st(x,A,k,M):(x={Ic:k,Ub:x,zc:M,Nc:j},I?(x.Oc="spawnThread",postMessage(x,j),0):ct(x))}function mt(x,A,k){return I?Z(4,1,x,A,k):0}function bt(x,A){if(I)return Z(5,1,x,A)}function yt(x,A){if(I)return Z(6,1,x,A)}function _t(x,A,k){if(I)return Z(7,1,x,A,k)}function wt(x,A,k){return I?Z(8,1,x,A,k):0}function vt(x,A){if(I)return Z(9,1,x,A)}function Tt(x,A,k){if(I)return Z(10,1,x,A,k)}function xt(x,A,k,M){if(I)return Z(11,1,x,A,k,M)}function St(x,A,k,M){if(I)return Z(12,1,x,A,k,M)}function Ot(x,A,k,M){if(I)return Z(13,1,x,A,k,M)}function At(x){if(I)return Z(14,1,x)}function P(x,A){if(I)return Z(15,1,x,A)}function D(x,A,k){if(I)return Z(16,1,x,A,k)}function L(x){Atomics.store(f(),x>>2,1),Dt()&&Yt(x),Atomics.compareExchange(f(),x>>2,1,0)}function R(x){return a()[x>>>2]+4294967296*f()[x+4>>>2]}function U(x,A,k,M,j,V){return I?Z(17,1,x,A,k,M,j,V):-52}function W(x,A,k,M,j,V){if(I)return Z(18,1,x,A,k,M,j,V)}function Y(x){var A=Me(x)+1,k=Lt(A);return k&&Ce(x,s(),k,A),k}function Q(x,A,k){function M(fe){return(fe=fe.toTimeString().match(/\(([A-Za-z ]+)\)$/))?fe[1]:"GMT"}if(I)return Z(19,1,x,A,k);var j=new Date().getFullYear(),V=new Date(j,0,1),K=new Date(j,6,1);j=V.getTimezoneOffset();var ee=K.getTimezoneOffset(),he=Math.max(j,ee);f()[x>>2>>>0]=60*he,f()[A>>2>>>0]=+(j!=ee),x=M(V),A=M(K),x=Y(x),A=Y(A),ee<j?(a()[k>>2>>>0]=x,a()[k+4>>2>>>0]=A):(a()[k>>2>>>0]=A,a()[k+4>>2>>>0]=x)}function Z(x,A){var k=arguments.length-2,M=arguments;return Pt(()=>{for(var j=Rt(8*k),V=j>>3,K=0;K<k;K++){var ee=M[2+K];o()[V+K>>>0]=ee}return Xt(x,k,j,A)})}t.executeNotifiedProxyingQueue=L,pt=T?()=>{var x=process.hrtime();return 1e3*x[0]+x[1]/1e6}:I?()=>performance.now()-t.__performance_now_clock_drift:()=>performance.now();var ae,we=[],$e={};function De(){if(!ae){var x,A={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:v||"./this.program"};for(x in $e)$e[x]===void 0?delete A[x]:A[x]=$e[x];var k=[];for(x in A)k.push(x+"="+A[x]);ae=k}return ae}function G(x,A){if(I)return Z(20,1,x,A);var k=0;return De().forEach(function(M,j){var V=A+k;for(j=a()[x+4*j>>2>>>0]=V,V=0;V<M.length;++V)s()[j++>>0>>>0]=M.charCodeAt(V);s()[j>>0>>>0]=0,k+=M.length+1}),0}function ge(x,A){if(I)return Z(21,1,x,A);var k=De();a()[x>>2>>>0]=k.length;var M=0;return k.forEach(function(j){M+=j.length+1}),a()[A>>2>>>0]=M,0}function xe(x){return I?Z(22,1,x):52}function Ge(x,A,k,M){return I?Z(23,1,x,A,k,M):52}function Qe(x,A,k,M,j){return I?Z(24,1,x,A,k,M,j):70}var Ct=[null,[],[]];function Nt(x,A){var k=Ct[x];A===0||A===10?((x===1?$:z)(We(k,0)),k.length=0):k.push(A)}function Bt(x,A,k,M){if(I)return Z(25,1,x,A,k,M);for(var j=0,V=0;V<k;V++){var K=a()[A>>2>>>0],ee=a()[A+4>>2>>>0];A+=8;for(var he=0;he<ee;he++)Nt(x,h()[K+he>>>0]);j+=ee}return a()[M>>2>>>0]=j,0}var Re=0;function kt(x){return x%4==0&&(x%100!=0||x%400==0)}var zt=[31,29,31,30,31,30,31,31,30,31,30,31],Ut=[31,28,31,30,31,30,31,31,30,31,30,31];function Vt(x,A,k,M){function j(q,be,Pe){for(q=typeof q=="number"?q.toString():q||"";q.length<be;)q=Pe[0]+q;return q}function V(q,be){return j(q,be,"0")}function K(q,be){function Pe(dt){return 0>dt?-1:0<dt?1:0}var et;return(et=Pe(q.getFullYear()-be.getFullYear()))===0&&(et=Pe(q.getMonth()-be.getMonth()))===0&&(et=Pe(q.getDate()-be.getDate())),et}function ee(q){switch(q.getDay()){case 0:return new Date(q.getFullYear()-1,11,29);case 1:return q;case 2:return new Date(q.getFullYear(),0,3);case 3:return new Date(q.getFullYear(),0,2);case 4:return new Date(q.getFullYear(),0,1);case 5:return new Date(q.getFullYear()-1,11,31);case 6:return new Date(q.getFullYear()-1,11,30)}}function he(q){var be=q.Wb;for(q=new Date(new Date(q.Xb+1900,0,1).getTime());0<be;){var Pe=q.getMonth(),et=(kt(q.getFullYear())?zt:Ut)[Pe];if(!(be>et-q.getDate())){q.setDate(q.getDate()+be);break}be-=et-q.getDate()+1,q.setDate(1),11>Pe?q.setMonth(Pe+1):(q.setMonth(0),q.setFullYear(q.getFullYear()+1))}return Pe=new Date(q.getFullYear()+1,0,4),be=ee(new Date(q.getFullYear(),0,4)),Pe=ee(Pe),0>=K(be,q)?0>=K(Pe,q)?q.getFullYear()+1:q.getFullYear():q.getFullYear()-1}var fe=f()[M+40>>2>>>0];for(var ke in M={Lc:f()[M>>2>>>0],Kc:f()[M+4>>2>>>0],dc:f()[M+8>>2>>>0],jc:f()[M+12>>2>>>0],ec:f()[M+16>>2>>>0],Xb:f()[M+20>>2>>>0],Tb:f()[M+24>>2>>>0],Wb:f()[M+28>>2>>>0],Rc:f()[M+32>>2>>>0],Jc:f()[M+36>>2>>>0],Mc:fe?Ae(fe):""},k=Ae(k),fe={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})k=k.replace(new RegExp(ke,"g"),fe[ke]);var Ye="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),qe="January February March April May June July August September October November December".split(" ");for(ke in fe={"%a":function(q){return Ye[q.Tb].substring(0,3)},"%A":function(q){return Ye[q.Tb]},"%b":function(q){return qe[q.ec].substring(0,3)},"%B":function(q){return qe[q.ec]},"%C":function(q){return V((q.Xb+1900)/100|0,2)},"%d":function(q){return V(q.jc,2)},"%e":function(q){return j(q.jc,2," ")},"%g":function(q){return he(q).toString().substring(2)},"%G":function(q){return he(q)},"%H":function(q){return V(q.dc,2)},"%I":function(q){return(q=q.dc)==0?q=12:12<q&&(q-=12),V(q,2)},"%j":function(q){for(var be=0,Pe=0;Pe<=q.ec-1;be+=(kt(q.Xb+1900)?zt:Ut)[Pe++]);return V(q.jc+be,3)},"%m":function(q){return V(q.ec+1,2)},"%M":function(q){return V(q.Kc,2)},"%n":function(){return` -`},"%p":function(q){return 0<=q.dc&&12>q.dc?"AM":"PM"},"%S":function(q){return V(q.Lc,2)},"%t":function(){return" "},"%u":function(q){return q.Tb||7},"%U":function(q){return V(Math.floor((q.Wb+7-q.Tb)/7),2)},"%V":function(q){var be=Math.floor((q.Wb+7-(q.Tb+6)%7)/7);if(2>=(q.Tb+371-q.Wb-2)%7&&be++,be)be==53&&((Pe=(q.Tb+371-q.Wb)%7)==4||Pe==3&&kt(q.Xb)||(be=1));else{be=52;var Pe=(q.Tb+7-q.Wb-1)%7;(Pe==4||Pe==5&&kt(q.Xb%400-1))&&be++}return V(be,2)},"%w":function(q){return q.Tb},"%W":function(q){return V(Math.floor((q.Wb+7-(q.Tb+6)%7)/7),2)},"%y":function(q){return(q.Xb+1900).toString().substring(2)},"%Y":function(q){return q.Xb+1900},"%z":function(q){var be=0<=(q=q.Jc);return q=Math.abs(q)/60,(be?"+":"-")+("0000"+(q/60*100+q%60)).slice(-4)},"%Z":function(q){return q.Mc},"%%":function(){return"%"}},k=k.replace(/%%/g,"\0\0"),fe)k.includes(ke)&&(k=k.replace(new RegExp(ke,"g"),fe[ke](M)));return ke=function(q){var be=Array(Me(q)+1);return Ce(q,be,0,be.length),be}(k=k.replace(/\0\0/g,"%")),ke.length>A?0:(function(q,be){s().set(q,be>>>0)}(ke,x),ke.length-1)}re.fc();var hn=[null,Ne,It,st,mt,bt,yt,_t,wt,vt,Tt,xt,St,Ot,At,P,D,U,W,Q,G,ge,xe,Ge,Qe,Bt],pn={b:function(x){return Lt(x+24)+24},n:function(x){return(x=new oe(x)).uc()||(x.hc(!0),se--),x.ic(!1),ot.push(x),x.sc(),x.vc()},ma:function(x){throw z("Unexpected exception thrown, this is not properly supported - aborting"),_e=!0,x},x:function(){de(0);var x=ot.pop();if(x.Hc()&&!x.kc()){var A=x.Dc();A&&ye(A)(x.Zb),ft(x.Zb)}ie=0},e:function(){var x=ie;if(!x)return Re=0;var A=new oe(x);A.cc(x);var k=A.bc();if(!k)return Re=0,x;for(var M=Array.prototype.slice.call(arguments),j=0;j<M.length;j++){var V=M[j];if(V===0||V===k)break;if($t(V,k,A.Sb+16))return Re=V,x}return Re=k,x},l:function(){var x=ie;if(!x)return Re=0;var A=new oe(x);A.cc(x);var k=A.bc();if(!k)return Re=0,x;for(var M=Array.prototype.slice.call(arguments),j=0;j<M.length;j++){var V=M[j];if(V===0||V===k)break;if($t(V,k,A.Sb+16))return Re=V,x}return Re=k,x},h:function(){var x=ie;if(!x)return Re=0;var A=new oe(x);A.cc(x);var k=A.bc();if(!k)return Re=0,x;for(var M=Array.prototype.slice.call(arguments),j=0;j<M.length;j++){var V=M[j];if(V===0||V===k)break;if($t(V,k,A.Sb+16))return Re=V,x}return Re=k,x},t:ft,M:function(){var x=ot.pop();x||pe("no exception to throw");var A=x.Zb;throw x.kc()||(ot.push(x),x.ic(!0),x.hc(!1),se++),ie=A,A},c:function(x,A,k){throw new oe(x).fc(A,k),ie=x,se++,x},pa:function(){return se},Fa:function(x){Ht(x,!E,1,!O),re.pc()},T:function(x){I?postMessage({cmd:"cleanupThread",thread:x}):lt(x)},xa:gt,j:function(x){throw ie||(ie=x),x},H:mt,Ma:bt,ua:yt,wa:_t,oa:wt,Ka:vt,Ca:Tt,Ja:xt,V:St,va:Ot,sa:At,La:P,ta:D,Ta:function(){},X:function(){pe("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},Ua:function(){pe("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},W:function(){return Date.now()},ya:function(){return 2097152},Oa:function(){return!0},za:function(x,A,k,M){if(x==A)setTimeout(()=>L(M));else if(I)postMessage({targetThread:x,cmd:"processProxyingQueue",queue:M});else{if(!(x=re.Vb[x]))return;x.postMessage({cmd:"processProxyingQueue",queue:M})}return 1},Ea:function(){return-1},Pa:function(x,A){x=new Date(1e3*R(x)),f()[A>>2>>>0]=x.getUTCSeconds(),f()[A+4>>2>>>0]=x.getUTCMinutes(),f()[A+8>>2>>>0]=x.getUTCHours(),f()[A+12>>2>>>0]=x.getUTCDate(),f()[A+16>>2>>>0]=x.getUTCMonth(),f()[A+20>>2>>>0]=x.getUTCFullYear()-1900,f()[A+24>>2>>>0]=x.getUTCDay(),x=(x.getTime()-Date.UTC(x.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,f()[A+28>>2>>>0]=x},Qa:function(x,A){x=new Date(1e3*R(x)),f()[A>>2>>>0]=x.getSeconds(),f()[A+4>>2>>>0]=x.getMinutes(),f()[A+8>>2>>>0]=x.getHours(),f()[A+12>>2>>>0]=x.getDate(),f()[A+16>>2>>>0]=x.getMonth(),f()[A+20>>2>>>0]=x.getFullYear()-1900,f()[A+24>>2>>>0]=x.getDay();var k=new Date(x.getFullYear(),0,1),M=(x.getTime()-k.getTime())/864e5|0;f()[A+28>>2>>>0]=M,f()[A+36>>2>>>0]=-60*x.getTimezoneOffset(),M=new Date(x.getFullYear(),6,1).getTimezoneOffset(),x=0|(M!=(k=k.getTimezoneOffset())&&x.getTimezoneOffset()==Math.min(k,M)),f()[A+32>>2>>>0]=x},Ra:function(x){var A=new Date(f()[x+20>>2>>>0]+1900,f()[x+16>>2>>>0],f()[x+12>>2>>>0],f()[x+8>>2>>>0],f()[x+4>>2>>>0],f()[x>>2>>>0],0),k=f()[x+32>>2>>>0],M=A.getTimezoneOffset(),j=new Date(A.getFullYear(),0,1),V=new Date(A.getFullYear(),6,1).getTimezoneOffset(),K=j.getTimezoneOffset(),ee=Math.min(K,V);return 0>k?f()[x+32>>2>>>0]=+(V!=K&&ee==M):0<k!=(ee==M)&&(V=Math.max(K,V),A.setTime(A.getTime()+6e4*((0<k?ee:V)-M))),f()[x+24>>2>>>0]=A.getDay(),k=(A.getTime()-j.getTime())/864e5|0,f()[x+28>>2>>>0]=k,f()[x>>2>>>0]=A.getSeconds(),f()[x+4>>2>>>0]=A.getMinutes(),f()[x+8>>2>>>0]=A.getHours(),f()[x+12>>2>>>0]=A.getDate(),f()[x+16>>2>>>0]=A.getMonth(),A.getTime()/1e3|0},Aa:U,Ba:W,Sa:function x(A,k,M){x.Ac||(x.Ac=!0,Q(A,k,M))},y:function(){pe("")},U:function(){if(!T&&!E){var x="Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread";it||(it={}),it[x]||(it[x]=1,T&&(x="warning: "+x),z(x))}},ra:function(){return 4294901760},B:pt,Ia:function(x,A,k){h().copyWithin(x>>>0,A>>>0,A+k>>>0)},F:function(){return T?u(3993).cpus().length:navigator.hardwareConcurrency},Da:function(x,A,k){we.length=A,k>>=3;for(var M=0;M<A;M++)we[M]=o()[k+M>>>0];return(0>x?Et[-x-1]:hn[x]).apply(null,we)},qa:function(x){var A=h().length;if((x>>>=0)<=A||4294901760<x)return!1;for(var k=1;4>=k;k*=2){var M=A*(1+.2/k);M=Math.min(M,x+100663296);var j=Math;M=Math.max(x,M),j=j.min.call(j,4294901760,M+(65536-M%65536)%65536);e:{try{X.grow(j-ne.byteLength+65535>>>16),Ee(X.buffer);var V=1;break e}catch{}V=void 0}if(V)return!0}return!1},Na:function(){throw"unwind"},Ga:G,Ha:ge,J:rt,I:xe,S:Ge,ga:Qe,R:Bt,d:function(){return Re},na:function x(A,k){x.lc||(x.lc=function(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var j=new Uint8Array(1);return()=>(crypto.getRandomValues(j),j[0])}if(T)try{var V=u(Object(function(){var K=new Error("Cannot find module 'crypto'");throw K.code="MODULE_NOT_FOUND",K}()));return()=>V.randomBytes(1)[0]}catch{}return()=>pe("randomDevice")}());for(var M=0;M<k;M++)s()[A+M>>0>>>0]=x.lc();return 0},ia:function(x,A,k){var M=le();try{return ye(x)(A,k)}catch(j){if(ue(M),j!==j+0)throw j;de(1,0)}},ja:function(x,A,k){var M=le();try{return ye(x)(A,k)}catch(j){if(ue(M),j!==j+0)throw j;de(1,0)}},K:function(x){var A=le();try{return ye(x)()}catch(k){if(ue(A),k!==k+0)throw k;de(1,0)}},f:function(x,A){var k=le();try{return ye(x)(A)}catch(M){if(ue(k),M!==M+0)throw M;de(1,0)}},P:function(x,A,k){var M=le();try{return ye(x)(A,k)}catch(j){if(ue(M),j!==j+0)throw j;de(1,0)}},Q:function(x,A,k){var M=le();try{return ye(x)(A,k)}catch(j){if(ue(M),j!==j+0)throw j;de(1,0)}},k:function(x,A,k){var M=le();try{return ye(x)(A,k)}catch(j){if(ue(M),j!==j+0)throw j;de(1,0)}},p:function(x,A,k,M){var j=le();try{return ye(x)(A,k,M)}catch(V){if(ue(j),V!==V+0)throw V;de(1,0)}},q:function(x,A,k,M,j){var V=le();try{return ye(x)(A,k,M,j)}catch(K){if(ue(V),K!==K+0)throw K;de(1,0)}},N:function(x,A,k,M,j,V){var K=le();try{return ye(x)(A,k,M,j,V)}catch(ee){if(ue(K),ee!==ee+0)throw ee;de(1,0)}},s:function(x,A,k,M,j,V){var K=le();try{return ye(x)(A,k,M,j,V)}catch(ee){if(ue(K),ee!==ee+0)throw ee;de(1,0)}},w:function(x,A,k,M,j,V,K){var ee=le();try{return ye(x)(A,k,M,j,V,K)}catch(he){if(ue(ee),he!==he+0)throw he;de(1,0)}},L:function(x,A,k,M,j,V,K,ee){var he=le();try{return ye(x)(A,k,M,j,V,K,ee)}catch(fe){if(ue(he),fe!==fe+0)throw fe;de(1,0)}},E:function(x,A,k,M,j,V,K,ee,he,fe,ke,Ye){var qe=le();try{return ye(x)(A,k,M,j,V,K,ee,he,fe,ke,Ye)}catch(q){if(ue(qe),q!==q+0)throw q;de(1,0)}},aa:function(x,A,k,M,j,V,K,ee){var he=le();try{return un(x,A,k,M,j,V,K,ee)}catch(fe){if(ue(he),fe!==fe+0)throw fe;de(1,0)}},_:function(x,A,k,M,j,V,K){var ee=le();try{return en(x,A,k,M,j,V,K)}catch(he){if(ue(ee),he!==he+0)throw he;de(1,0)}},Z:function(x,A,k,M,j){var V=le();try{return ln(x,A,k,M,j)}catch(K){if(ue(V),K!==K+0)throw K;de(1,0)}},ca:function(x,A,k,M){var j=le();try{return sn(x,A,k,M)}catch(V){if(ue(j),V!==V+0)throw V;de(1,0)}},$:function(x){var A=le();try{return Qt(x)}catch(k){if(ue(A),k!==k+0)throw k;de(1,0)}},ba:function(x,A){var k=le();try{return an(x,A)}catch(M){if(ue(k),M!==M+0)throw M;de(1,0)}},Y:function(x,A,k){var M=le();try{return tn(x,A,k)}catch(j){if(ue(M),j!==j+0)throw j;de(1,0)}},g:function(x){var A=le();try{ye(x)()}catch(k){if(ue(A),k!==k+0)throw k;de(1,0)}},r:function(x,A){var k=le();try{ye(x)(A)}catch(M){if(ue(k),M!==M+0)throw M;de(1,0)}},i:function(x,A,k){var M=le();try{ye(x)(A,k)}catch(j){if(ue(M),j!==j+0)throw j;de(1,0)}},ha:function(x,A,k,M){var j=le();try{ye(x)(A,k,M)}catch(V){if(ue(j),V!==V+0)throw V;de(1,0)}},m:function(x,A,k,M){var j=le();try{ye(x)(A,k,M)}catch(V){if(ue(j),V!==V+0)throw V;de(1,0)}},v:function(x,A,k,M,j){var V=le();try{ye(x)(A,k,M,j)}catch(K){if(ue(V),K!==K+0)throw K;de(1,0)}},u:function(x,A,k,M,j,V){var K=le();try{ye(x)(A,k,M,j,V)}catch(ee){if(ue(K),ee!==ee+0)throw ee;de(1,0)}},O:function(x,A,k,M,j,V,K){var ee=le();try{ye(x)(A,k,M,j,V,K)}catch(he){if(ue(ee),he!==he+0)throw he;de(1,0)}},A:function(x,A,k,M,j,V,K,ee){var he=le();try{ye(x)(A,k,M,j,V,K,ee)}catch(fe){if(ue(he),fe!==fe+0)throw fe;de(1,0)}},ka:function(x,A,k,M,j,V,K,ee,he){var fe=le();try{ye(x)(A,k,M,j,V,K,ee,he)}catch(ke){if(ue(fe),ke!==ke+0)throw ke;de(1,0)}},C:function(x,A,k,M,j,V,K,ee,he,fe,ke){var Ye=le();try{ye(x)(A,k,M,j,V,K,ee,he,fe,ke)}catch(qe){if(ue(Ye),qe!==qe+0)throw qe;de(1,0)}},D:function(x,A,k,M,j,V,K,ee,he,fe,ke,Ye,qe,q,be,Pe){var et=le();try{ye(x)(A,k,M,j,V,K,ee,he,fe,ke,Ye,qe,q,be,Pe)}catch(dt){if(ue(et),dt!==dt+0)throw dt;de(1,0)}},fa:function(x,A,k,M,j,V,K,ee){var he=le();try{nn(x,A,k,M,j,V,K,ee)}catch(fe){if(ue(he),fe!==fe+0)throw fe;de(1,0)}},da:function(x,A,k,M,j,V,K,ee,he,fe,ke,Ye){var qe=le();try{on(x,A,k,M,j,V,K,ee,he,fe,ke,Ye)}catch(q){if(ue(qe),q!==q+0)throw q;de(1,0)}},ea:function(x,A,k,M,j,V){var K=le();try{rn(x,A,k,M,j,V)}catch(ee){if(ue(K),ee!==ee+0)throw ee;de(1,0)}},o:function(x){return x},a:X||t.wasmMemory,G:function(x){Re=x},la:Vt,z:function(x,A,k,M){return Vt(x,A,k,M)}};(function(){function x(j,V){t.asm=j.exports,re.qc.push(t.asm.sb),je=t.asm.ub,Ue.unshift(t.asm.Va),te=V,I||(Fe--,t.monitorRunDependencies&&t.monitorRunDependencies(Fe),Fe==0&&Xe&&(j=Xe,Xe=null,j()))}function A(j){x(j.instance,j.module)}function k(j){return function(){if(!H&&(O||E)){if(typeof fetch=="function"&&!Se.startsWith("file://"))return fetch(Se,{credentials:"same-origin"}).then(function(V){if(!V.ok)throw"failed to load wasm binary file at '"+Se+"'";return V.arrayBuffer()}).catch(function(){return ut()});if(c)return new Promise(function(V,K){c(Se,function(ee){V(new Uint8Array(ee))},K)})}return Promise.resolve().then(function(){return ut()})}().then(function(V){return WebAssembly.instantiate(V,M)}).then(function(V){return V}).then(j,function(V){z("failed to asynchronously prepare wasm: "+V),pe(V)})}var M={a:pn};if(I||(Fe++,t.monitorRunDependencies&&t.monitorRunDependencies(Fe)),t.instantiateWasm)try{return t.instantiateWasm(M,x)}catch(j){return z("Module.instantiateWasm callback failed with error: "+j),!1}(H||typeof WebAssembly.instantiateStreaming!="function"||ht()||Se.startsWith("file://")||T||typeof fetch!="function"?k(A):fetch(Se,{credentials:"same-origin"}).then(function(j){return WebAssembly.instantiateStreaming(j,M).then(A,function(V){return z("wasm streaming compile failed: "+V),z("falling back to ArrayBuffer instantiation"),k(A)})})).catch(r)})(),t.___wasm_call_ctors=function(){return(t.___wasm_call_ctors=t.asm.Va).apply(null,arguments)},t._OrtInit=function(){return(t._OrtInit=t.asm.Wa).apply(null,arguments)},t._OrtCreateSessionOptions=function(){return(t._OrtCreateSessionOptions=t.asm.Xa).apply(null,arguments)},t._OrtAppendExecutionProvider=function(){return(t._OrtAppendExecutionProvider=t.asm.Ya).apply(null,arguments)},t._OrtAddSessionConfigEntry=function(){return(t._OrtAddSessionConfigEntry=t.asm.Za).apply(null,arguments)},t._OrtReleaseSessionOptions=function(){return(t._OrtReleaseSessionOptions=t.asm._a).apply(null,arguments)},t._OrtCreateSession=function(){return(t._OrtCreateSession=t.asm.$a).apply(null,arguments)},t._OrtReleaseSession=function(){return(t._OrtReleaseSession=t.asm.ab).apply(null,arguments)},t._OrtGetInputCount=function(){return(t._OrtGetInputCount=t.asm.bb).apply(null,arguments)},t._OrtGetOutputCount=function(){return(t._OrtGetOutputCount=t.asm.cb).apply(null,arguments)},t._OrtGetInputName=function(){return(t._OrtGetInputName=t.asm.db).apply(null,arguments)},t._OrtGetOutputName=function(){return(t._OrtGetOutputName=t.asm.eb).apply(null,arguments)},t._OrtFree=function(){return(t._OrtFree=t.asm.fb).apply(null,arguments)},t._OrtCreateTensor=function(){return(t._OrtCreateTensor=t.asm.gb).apply(null,arguments)},t._OrtGetTensorData=function(){return(t._OrtGetTensorData=t.asm.hb).apply(null,arguments)},t._OrtReleaseTensor=function(){return(t._OrtReleaseTensor=t.asm.ib).apply(null,arguments)},t._OrtCreateRunOptions=function(){return(t._OrtCreateRunOptions=t.asm.jb).apply(null,arguments)},t._OrtAddRunConfigEntry=function(){return(t._OrtAddRunConfigEntry=t.asm.kb).apply(null,arguments)},t._OrtReleaseRunOptions=function(){return(t._OrtReleaseRunOptions=t.asm.lb).apply(null,arguments)},t._OrtRun=function(){return(t._OrtRun=t.asm.mb).apply(null,arguments)},t._OrtEndProfiling=function(){return(t._OrtEndProfiling=t.asm.nb).apply(null,arguments)};var Dt=t._pthread_self=function(){return(Dt=t._pthread_self=t.asm.ob).apply(null,arguments)},Lt=t._malloc=function(){return(Lt=t._malloc=t.asm.pb).apply(null,arguments)},Gt=t._free=function(){return(Gt=t._free=t.asm.qb).apply(null,arguments)},qt=t._fflush=function(){return(qt=t._fflush=t.asm.rb).apply(null,arguments)};t.__emscripten_tls_init=function(){return(t.__emscripten_tls_init=t.asm.sb).apply(null,arguments)};var Wt=t.___funcs_on_exit=function(){return(Wt=t.___funcs_on_exit=t.asm.tb).apply(null,arguments)},Ht=t.__emscripten_thread_init=function(){return(Ht=t.__emscripten_thread_init=t.asm.vb).apply(null,arguments)};t.__emscripten_thread_crashed=function(){return(t.__emscripten_thread_crashed=t.asm.wb).apply(null,arguments)};var Mt,Xt=t._emscripten_run_in_main_runtime_thread_js=function(){return(Xt=t._emscripten_run_in_main_runtime_thread_js=t.asm.xb).apply(null,arguments)},Yt=t.__emscripten_proxy_execute_task_queue=function(){return(Yt=t.__emscripten_proxy_execute_task_queue=t.asm.yb).apply(null,arguments)},Ft=t.__emscripten_thread_free_data=function(){return(Ft=t.__emscripten_thread_free_data=t.asm.zb).apply(null,arguments)},Kt=t.__emscripten_thread_exit=function(){return(Kt=t.__emscripten_thread_exit=t.asm.Ab).apply(null,arguments)},de=t._setThrew=function(){return(de=t._setThrew=t.asm.Bb).apply(null,arguments)},Zt=t._emscripten_stack_set_limits=function(){return(Zt=t._emscripten_stack_set_limits=t.asm.Cb).apply(null,arguments)},le=t.stackSave=function(){return(le=t.stackSave=t.asm.Db).apply(null,arguments)},ue=t.stackRestore=function(){return(ue=t.stackRestore=t.asm.Eb).apply(null,arguments)},Rt=t.stackAlloc=function(){return(Rt=t.stackAlloc=t.asm.Fb).apply(null,arguments)},$t=t.___cxa_can_catch=function(){return($t=t.___cxa_can_catch=t.asm.Gb).apply(null,arguments)},Jt=t.___cxa_is_pointer_type=function(){return(Jt=t.___cxa_is_pointer_type=t.asm.Hb).apply(null,arguments)},Qt=t.dynCall_j=function(){return(Qt=t.dynCall_j=t.asm.Ib).apply(null,arguments)},en=t.dynCall_iiiiij=function(){return(en=t.dynCall_iiiiij=t.asm.Jb).apply(null,arguments)},tn=t.dynCall_jii=function(){return(tn=t.dynCall_jii=t.asm.Kb).apply(null,arguments)},nn=t.dynCall_viiiiij=function(){return(nn=t.dynCall_viiiiij=t.asm.Lb).apply(null,arguments)},rn=t.dynCall_vjji=function(){return(rn=t.dynCall_vjji=t.asm.Mb).apply(null,arguments)},on=t.dynCall_viiijjjii=function(){return(on=t.dynCall_viiijjjii=t.asm.Nb).apply(null,arguments)},sn=t.dynCall_iij=function(){return(sn=t.dynCall_iij=t.asm.Ob).apply(null,arguments)},an=t.dynCall_ji=function(){return(an=t.dynCall_ji=t.asm.Pb).apply(null,arguments)},un=t.dynCall_iiiiiij=function(){return(un=t.dynCall_iiiiiij=t.asm.Qb).apply(null,arguments)},ln=t.dynCall_iiij=function(){return(ln=t.dynCall_iiij=t.asm.Rb).apply(null,arguments)};function cn(){function x(){if(!Mt&&(Mt=!0,t.calledRun=!0,!_e)&&(I||nt(Ue),e(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),!I)){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;){var A=t.postRun.shift();Ke.unshift(A)}nt(Ke)}}if(!(0<Fe))if(I)e(t),I||nt(Ue),postMessage({cmd:"loaded"});else{if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)Be();nt(ze),0<Fe||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),x()},1)):x())}}if(t.UTF8ToString=Ae,t.stringToUTF8=function(x,A,k){return Ce(x,h(),A,k)},t.lengthBytesUTF8=Me,t.keepRuntimeAlive=Ve,t.wasmMemory=X,t.stackSave=le,t.stackRestore=ue,t.stackAlloc=Rt,t.ExitStatus=Ze,t.PThread=re,Xe=function x(){Mt||cn(),Mt||(Xe=x)},t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();return cn(),p.ready});y.exports=l},932:(y,n,u)=>{var d,l=(d=(d=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(p){var s,h,f;p=p||{},s||(s=p!==void 0?p:{}),s.ready=new Promise(function(P,D){h=P,f=D});var a,o,t,e,r,i,c=Object.assign({},s),g="./this.program",m=(P,D)=>{throw D},b=typeof window=="object",_=typeof importScripts=="function",w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v="";w?(v=_?u(908).dirname(v)+"/":"//",i=()=>{r||(e=u(1384),r=u(908))},a=function(P,D){return i(),P=r.normalize(P),e.readFileSync(P,D?void 0:"utf8")},t=P=>((P=a(P,!0)).buffer||(P=new Uint8Array(P)),P),o=(P,D,L)=>{i(),P=r.normalize(P),e.readFile(P,function(R,U){R?L(R):D(U.buffer)})},1<process.argv.length&&(g=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",function(P){if(!(P instanceof Ue))throw P}),process.on("unhandledRejection",function(P){throw P}),m=(P,D)=>{if(T||0<Le)throw process.exitCode=P,D;D instanceof Ue||E("exiting due to exception: "+D),process.exit(P)},s.inspect=function(){return"[Emscripten Module object]"}):(b||_)&&(_?v=self.location.href:typeof document<"u"&&document.currentScript&&(v=document.currentScript.src),d&&(v=d),v=v.indexOf("blob:")!==0?v.substr(0,v.replace(/[?#].*/,"").lastIndexOf("/")+1):"",a=P=>{var D=new XMLHttpRequest;return D.open("GET",P,!1),D.send(null),D.responseText},_&&(t=P=>{var D=new XMLHttpRequest;return D.open("GET",P,!1),D.responseType="arraybuffer",D.send(null),new Uint8Array(D.response)}),o=(P,D,L)=>{var R=new XMLHttpRequest;R.open("GET",P,!0),R.responseType="arraybuffer",R.onload=()=>{R.status==200||R.status==0&&R.response?D(R.response):L()},R.onerror=L,R.send(null)});var S,O=s.print||console.log.bind(console),E=s.printErr||console.warn.bind(console);Object.assign(s,c),c=null,s.thisProgram&&(g=s.thisProgram),s.quit&&(m=s.quit),s.wasmBinary&&(S=s.wasmBinary);var T=s.noExitRuntime||!1;typeof WebAssembly!="object"&&Ee("no native wasm support detected");var I,C,B,F,N,H,$=!1,z=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function J(P,D,L){var R=(D>>>=0)+L;for(L=D;P[L]&&!(L>=R);)++L;if(16<L-D&&P.buffer&&z)return z.decode(P.subarray(D,L));for(R="";D<L;){var U=P[D++];if(128&U){var W=63&P[D++];if((224&U)==192)R+=String.fromCharCode((31&U)<<6|W);else{var Y=63&P[D++];65536>(U=(240&U)==224?(15&U)<<12|W<<6|Y:(7&U)<<18|W<<12|Y<<6|63&P[D++])?R+=String.fromCharCode(U):(U-=65536,R+=String.fromCharCode(55296|U>>10,56320|1023&U))}}else R+=String.fromCharCode(U)}return R}function X(P,D){return(P>>>=0)?J(F,P,D):""}function te(P,D,L,R){if(!(0<R))return 0;var U=L>>>=0;R=L+R-1;for(var W=0;W<P.length;++W){var Y=P.charCodeAt(W);if(55296<=Y&&57343>=Y&&(Y=65536+((1023&Y)<<10)|1023&P.charCodeAt(++W)),127>=Y){if(L>=R)break;D[L++>>>0]=Y}else{if(2047>=Y){if(L+1>=R)break;D[L++>>>0]=192|Y>>6}else{if(65535>=Y){if(L+2>=R)break;D[L++>>>0]=224|Y>>12}else{if(L+3>=R)break;D[L++>>>0]=240|Y>>18,D[L++>>>0]=128|Y>>12&63}D[L++>>>0]=128|Y>>6&63}D[L++>>>0]=128|63&Y}}return D[L>>>0]=0,L-U}function ne(P){for(var D=0,L=0;L<P.length;++L){var R=P.charCodeAt(L);127>=R?D++:2047>=R?D+=2:55296<=R&&57343>=R?(D+=4,++L):D+=3}return D}function me(){var P=I.buffer;C=P,s.HEAP8=B=new Int8Array(P),s.HEAP16=new Int16Array(P),s.HEAP32=N=new Int32Array(P),s.HEAPU8=F=new Uint8Array(P),s.HEAPU16=new Uint16Array(P),s.HEAPU32=H=new Uint32Array(P),s.HEAPF32=new Float32Array(P),s.HEAPF64=new Float64Array(P)}var Ie,Oe=[],ce=[],Te=[],_e=[],Le=0;function We(){var P=s.preRun.shift();Oe.unshift(P)}var Ae,Ce=0,Me=null;function Ee(P){throw s.onAbort&&s.onAbort(P),E(P="Aborted("+P+")"),$=!0,P=new WebAssembly.RuntimeError(P+". Build with -sASSERTIONS for more info."),f(P),P}function ve(){return Ae.startsWith("data:application/octet-stream;base64,")}if(Ae="ort-wasm.wasm",!ve()){var je=Ae;Ae=s.locateFile?s.locateFile(je,v):v+je}function ze(){var P=Ae;try{if(P==Ae&&S)return new Uint8Array(S);if(t)return t(P);throw"both async and sync fetching of the wasm failed"}catch(D){Ee(D)}}function Ue(P){this.name="ExitStatus",this.message="Program terminated with exit("+P+")",this.status=P}function He(P){for(;0<P.length;)P.shift()(s)}var Ke=[],Ve=0,Be=0;function Se(P){this.Db=P,this.zb=P-24,this.Ub=function(D){H[this.zb+4>>2>>>0]=D},this.Eb=function(){return H[this.zb+4>>2>>>0]},this.Sb=function(D){H[this.zb+8>>2>>>0]=D},this.Wb=function(){return H[this.zb+8>>2>>>0]},this.Tb=function(){N[this.zb>>2>>>0]=0},this.Ib=function(D){B[this.zb+12>>0>>>0]=D?1:0},this.Pb=function(){return B[this.zb+12>>0>>>0]!=0},this.Jb=function(D){B[this.zb+13>>0>>>0]=D?1:0},this.Lb=function(){return B[this.zb+13>>0>>>0]!=0},this.Rb=function(D,L){this.Fb(0),this.Ub(D),this.Sb(L),this.Tb(),this.Ib(!1),this.Jb(!1)},this.Nb=function(){N[this.zb>>2>>>0]+=1},this.Xb=function(){var D=N[this.zb>>2>>>0];return N[this.zb>>2>>>0]=D-1,D===1},this.Fb=function(D){H[this.zb+16>>2>>>0]=D},this.Ob=function(){return H[this.zb+16>>2>>>0]},this.Qb=function(){if(gt(this.Eb()))return H[this.Db>>2>>>0];var D=this.Ob();return D!==0?D:this.Db}}function Fe(P){return it(new Se(P).zb)}var Xe=[];function pe(P){var D=Xe[P];return D||(P>=Xe.length&&(Xe.length=P+1),Xe[P]=D=Ie.get(P)),D}function ht(P){var D=ne(P)+1,L=ye(D);return L&&te(P,B,L,D),L}var ut={};function Et(){if(!Ze){var P,D={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:g||"./this.program"};for(P in ut)ut[P]===void 0?delete D[P]:D[P]=ut[P];var L=[];for(P in D)L.push(P+"="+D[P]);Ze=L}return Ze}var Ze,lt=[null,[],[]];function ct(P,D){var L=lt[P];D===0||D===10?((P===1?O:E)(J(L,0)),L.length=0):L.push(D)}var Ne=0;function rt(P){return P%4==0&&(P%100!=0||P%400==0)}var re=[31,29,31,30,31,30,31,31,30,31,30,31],nt=[31,28,31,30,31,30,31,31,30,31,30,31];function Pt(P,D,L,R){function U(G,ge,xe){for(G=typeof G=="number"?G.toString():G||"";G.length<ge;)G=xe[0]+G;return G}function W(G,ge){return U(G,ge,"0")}function Y(G,ge){function xe(Qe){return 0>Qe?-1:0<Qe?1:0}var Ge;return(Ge=xe(G.getFullYear()-ge.getFullYear()))===0&&(Ge=xe(G.getMonth()-ge.getMonth()))===0&&(Ge=xe(G.getDate()-ge.getDate())),Ge}function Q(G){switch(G.getDay()){case 0:return new Date(G.getFullYear()-1,11,29);case 1:return G;case 2:return new Date(G.getFullYear(),0,3);case 3:return new Date(G.getFullYear(),0,2);case 4:return new Date(G.getFullYear(),0,1);case 5:return new Date(G.getFullYear()-1,11,31);case 6:return new Date(G.getFullYear()-1,11,30)}}function Z(G){var ge=G.Bb;for(G=new Date(new Date(G.Cb+1900,0,1).getTime());0<ge;){var xe=G.getMonth(),Ge=(rt(G.getFullYear())?re:nt)[xe];if(!(ge>Ge-G.getDate())){G.setDate(G.getDate()+ge);break}ge-=Ge-G.getDate()+1,G.setDate(1),11>xe?G.setMonth(xe+1):(G.setMonth(0),G.setFullYear(G.getFullYear()+1))}return xe=new Date(G.getFullYear()+1,0,4),ge=Q(new Date(G.getFullYear(),0,4)),xe=Q(xe),0>=Y(ge,G)?0>=Y(xe,G)?G.getFullYear()+1:G.getFullYear():G.getFullYear()-1}var ae=N[R+40>>2>>>0];for(var we in R={$b:N[R>>2>>>0],Zb:N[R+4>>2>>>0],Gb:N[R+8>>2>>>0],Kb:N[R+12>>2>>>0],Hb:N[R+16>>2>>>0],Cb:N[R+20>>2>>>0],Ab:N[R+24>>2>>>0],Bb:N[R+28>>2>>>0],bc:N[R+32>>2>>>0],Yb:N[R+36>>2>>>0],ac:ae?X(ae):""},L=X(L),ae={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})L=L.replace(new RegExp(we,"g"),ae[we]);var $e="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),De="January February March April May June July August September October November December".split(" ");for(we in ae={"%a":function(G){return $e[G.Ab].substring(0,3)},"%A":function(G){return $e[G.Ab]},"%b":function(G){return De[G.Hb].substring(0,3)},"%B":function(G){return De[G.Hb]},"%C":function(G){return W((G.Cb+1900)/100|0,2)},"%d":function(G){return W(G.Kb,2)},"%e":function(G){return U(G.Kb,2," ")},"%g":function(G){return Z(G).toString().substring(2)},"%G":function(G){return Z(G)},"%H":function(G){return W(G.Gb,2)},"%I":function(G){return(G=G.Gb)==0?G=12:12<G&&(G-=12),W(G,2)},"%j":function(G){for(var ge=0,xe=0;xe<=G.Hb-1;ge+=(rt(G.Cb+1900)?re:nt)[xe++]);return W(G.Kb+ge,3)},"%m":function(G){return W(G.Hb+1,2)},"%M":function(G){return W(G.Zb,2)},"%n":function(){return` -`},"%p":function(G){return 0<=G.Gb&&12>G.Gb?"AM":"PM"},"%S":function(G){return W(G.$b,2)},"%t":function(){return" "},"%u":function(G){return G.Ab||7},"%U":function(G){return W(Math.floor((G.Bb+7-G.Ab)/7),2)},"%V":function(G){var ge=Math.floor((G.Bb+7-(G.Ab+6)%7)/7);if(2>=(G.Ab+371-G.Bb-2)%7&&ge++,ge)ge==53&&((xe=(G.Ab+371-G.Bb)%7)==4||xe==3&&rt(G.Cb)||(ge=1));else{ge=52;var xe=(G.Ab+7-G.Bb-1)%7;(xe==4||xe==5&&rt(G.Cb%400-1))&&ge++}return W(ge,2)},"%w":function(G){return G.Ab},"%W":function(G){return W(Math.floor((G.Bb+7-(G.Ab+6)%7)/7),2)},"%y":function(G){return(G.Cb+1900).toString().substring(2)},"%Y":function(G){return G.Cb+1900},"%z":function(G){var ge=0<=(G=G.Yb);return G=Math.abs(G)/60,(ge?"+":"-")+("0000"+(G/60*100+G%60)).slice(-4)},"%Z":function(G){return G.ac},"%%":function(){return"%"}},L=L.replace(/%%/g,"\0\0"),ae)L.includes(we)&&(L=L.replace(new RegExp(we,"g"),ae[we](R)));return we=function(G){var ge=Array(ne(G)+1);return te(G,ge,0,ge.length),ge}(L=L.replace(/\0\0/g,"%")),we.length>D?0:(B.set(we,P>>>0),we.length-1)}var It={a:function(P){return ye(P+24)+24},m:function(P){return(P=new Se(P)).Pb()||(P.Ib(!0),Ve--),P.Jb(!1),Ke.push(P),P.Nb(),P.Qb()},ia:function(P){throw E("Unexpected exception thrown, this is not properly supported - aborting"),$=!0,P},w:function(){se(0);var P=Ke.pop();if(P.Xb()&&!P.Lb()){var D=P.Wb();D&&pe(D)(P.Db),Fe(P.Db)}Be=0},d:function(){var P=Be;if(!P)return Ne=0;var D=new Se(P);D.Fb(P);var L=D.Eb();if(!L)return Ne=0,P;for(var R=Array.prototype.slice.call(arguments),U=0;U<R.length;U++){var W=R[U];if(W===0||W===L)break;if(st(W,L,D.zb+16))return Ne=W,P}return Ne=L,P},k:function(){var P=Be;if(!P)return Ne=0;var D=new Se(P);D.Fb(P);var L=D.Eb();if(!L)return Ne=0,P;for(var R=Array.prototype.slice.call(arguments),U=0;U<R.length;U++){var W=R[U];if(W===0||W===L)break;if(st(W,L,D.zb+16))return Ne=W,P}return Ne=L,P},g:function(){var P=Be;if(!P)return Ne=0;var D=new Se(P);D.Fb(P);var L=D.Eb();if(!L)return Ne=0,P;for(var R=Array.prototype.slice.call(arguments),U=0;U<R.length;U++){var W=R[U];if(W===0||W===L)break;if(st(W,L,D.zb+16))return Ne=W,P}return Ne=L,P},s:Fe,L:function(){var P=Ke.pop();P||Ee("no exception to throw");var D=P.Db;throw P.Lb()||(Ke.push(P),P.Jb(!0),P.Ib(!1),Ve++),Be=D,D},b:function(P,D,L){throw new Se(P).Rb(D,L),Be=P,Ve++,P},la:function(){return Ve},i:function(P){throw Be||(Be=P),P},H:function(){return 0},Ba:function(){},pa:function(){},ra:function(){},ka:function(){return 0},za:function(){},ua:function(){},ya:function(){},R:function(){},qa:function(){},na:function(){},Aa:function(){},oa:function(){},Ha:function(){},Ja:function(){Ee("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},Ia:function(){Ee("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},S:function(){return Date.now()},Ca:function(){return!0},Da:function(P,D){P=new Date(1e3*(H[P>>>2]+4294967296*N[P+4>>>2])),N[D>>2>>>0]=P.getUTCSeconds(),N[D+4>>2>>>0]=P.getUTCMinutes(),N[D+8>>2>>>0]=P.getUTCHours(),N[D+12>>2>>>0]=P.getUTCDate(),N[D+16>>2>>>0]=P.getUTCMonth(),N[D+20>>2>>>0]=P.getUTCFullYear()-1900,N[D+24>>2>>>0]=P.getUTCDay(),N[D+28>>2>>>0]=(P.getTime()-Date.UTC(P.getUTCFullYear(),0,1,0,0,0,0))/864e5|0},Ea:function(P,D){P=new Date(1e3*(H[P>>>2]+4294967296*N[P+4>>>2])),N[D>>2>>>0]=P.getSeconds(),N[D+4>>2>>>0]=P.getMinutes(),N[D+8>>2>>>0]=P.getHours(),N[D+12>>2>>>0]=P.getDate(),N[D+16>>2>>>0]=P.getMonth(),N[D+20>>2>>>0]=P.getFullYear()-1900,N[D+24>>2>>>0]=P.getDay();var L=new Date(P.getFullYear(),0,1);N[D+28>>2>>>0]=(P.getTime()-L.getTime())/864e5|0,N[D+36>>2>>>0]=-60*P.getTimezoneOffset();var R=new Date(P.getFullYear(),6,1).getTimezoneOffset();L=L.getTimezoneOffset(),N[D+32>>2>>>0]=0|(R!=L&&P.getTimezoneOffset()==Math.min(L,R))},Fa:function(P){var D=new Date(N[P+20>>2>>>0]+1900,N[P+16>>2>>>0],N[P+12>>2>>>0],N[P+8>>2>>>0],N[P+4>>2>>>0],N[P>>2>>>0],0),L=N[P+32>>2>>>0],R=D.getTimezoneOffset(),U=new Date(D.getFullYear(),0,1),W=new Date(D.getFullYear(),6,1).getTimezoneOffset(),Y=U.getTimezoneOffset(),Q=Math.min(Y,W);return 0>L?N[P+32>>2>>>0]=+(W!=Y&&Q==R):0<L!=(Q==R)&&(W=Math.max(Y,W),D.setTime(D.getTime()+6e4*((0<L?Q:W)-R))),N[P+24>>2>>>0]=D.getDay(),N[P+28>>2>>>0]=(D.getTime()-U.getTime())/864e5|0,N[P>>2>>>0]=D.getSeconds(),N[P+4>>2>>>0]=D.getMinutes(),N[P+8>>2>>>0]=D.getHours(),N[P+12>>2>>>0]=D.getDate(),N[P+16>>2>>>0]=D.getMonth(),D.getTime()/1e3|0},sa:function(){return-52},ta:function(){},Ga:function P(D,L,R){P.Vb||(P.Vb=!0,function(U,W,Y){function Q(De){return(De=De.toTimeString().match(/\(([A-Za-z ]+)\)$/))?De[1]:"GMT"}var Z=new Date().getFullYear(),ae=new Date(Z,0,1),we=new Date(Z,6,1);Z=ae.getTimezoneOffset();var $e=we.getTimezoneOffset();N[U>>2>>>0]=60*Math.max(Z,$e),N[W>>2>>>0]=+(Z!=$e),U=Q(ae),W=Q(we),U=ht(U),W=ht(W),$e<Z?(H[Y>>2>>>0]=U,H[Y+4>>2>>>0]=W):(H[Y>>2>>>0]=W,H[Y+4>>2>>>0]=U)}(D,L,R))},B:function(){Ee("")},ma:function(){return 4294901760},I:w?()=>{var P=process.hrtime();return 1e3*P[0]+P[1]/1e6}:()=>performance.now(),xa:function(P,D,L){F.copyWithin(P>>>0,D>>>0,D+L>>>0)},G:function(P){var D=F.length;if(4294901760<(P>>>=0))return!1;for(var L=1;4>=L;L*=2){var R=D*(1+.2/L);R=Math.min(R,P+100663296);var U=Math;R=Math.max(P,R),U=U.min.call(U,4294901760,R+(65536-R%65536)%65536);e:{try{I.grow(U-C.byteLength+65535>>>16),me();var W=1;break e}catch{}W=void 0}if(W)return!0}return!1},va:function(P,D){var L=0;return Et().forEach(function(R,U){var W=D+L;for(U=H[P+4*U>>2>>>0]=W,W=0;W<R.length;++W)B[U++>>0>>>0]=R.charCodeAt(W);B[U>>0>>>0]=0,L+=R.length+1}),0},wa:function(P,D){var L=Et();H[P>>2>>>0]=L.length;var R=0;return L.forEach(function(U){R+=U.length+1}),H[D>>2>>>0]=R,0},ba:function(P){T||0<Le||(ot(),He(Te),pt(0),lt[1].length&&ct(1,10),lt[2].length&&ct(2,10)),T||0<Le||(s.onExit&&s.onExit(P),$=!0),m(P,new Ue(P))},E:function(){return 52},Q:function(){return 52},ca:function(){return 70},P:function(P,D,L,R){for(var U=0,W=0;W<L;W++){var Y=H[D>>2>>>0],Q=H[D+4>>2>>>0];D+=8;for(var Z=0;Z<Q;Z++)ct(P,F[Y+Z>>>0]);U+=Q}return H[R>>2>>>0]=U,0},c:function(){return Ne},ja:function P(D,L){P.Mb||(P.Mb=function(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var U=new Uint8Array(1);return()=>(crypto.getRandomValues(U),U[0])}if(w)try{var W=u(Object(function(){var Y=new Error("Cannot find module 'crypto'");throw Y.code="MODULE_NOT_FOUND",Y}()));return()=>W.randomBytes(1)[0]}catch{}return()=>Ee("randomDevice")}());for(var R=0;R<L;R++)B[D+R>>0>>>0]=P.Mb();return 0},ea:function(P,D,L){var R=ie();try{return pe(P)(D,L)}catch(U){if(oe(R),U!==U+0)throw U;se(1,0)}},fa:function(P,D,L){var R=ie();try{return pe(P)(D,L)}catch(U){if(oe(R),U!==U+0)throw U;se(1,0)}},J:function(P){var D=ie();try{return pe(P)()}catch(L){if(oe(D),L!==L+0)throw L;se(1,0)}},e:function(P,D){var L=ie();try{return pe(P)(D)}catch(R){if(oe(L),R!==R+0)throw R;se(1,0)}},N:function(P,D,L){var R=ie();try{return pe(P)(D,L)}catch(U){if(oe(R),U!==U+0)throw U;se(1,0)}},O:function(P,D,L){var R=ie();try{return pe(P)(D,L)}catch(U){if(oe(R),U!==U+0)throw U;se(1,0)}},j:function(P,D,L){var R=ie();try{return pe(P)(D,L)}catch(U){if(oe(R),U!==U+0)throw U;se(1,0)}},o:function(P,D,L,R){var U=ie();try{return pe(P)(D,L,R)}catch(W){if(oe(U),W!==W+0)throw W;se(1,0)}},p:function(P,D,L,R,U){var W=ie();try{return pe(P)(D,L,R,U)}catch(Y){if(oe(W),Y!==Y+0)throw Y;se(1,0)}},M:function(P,D,L,R,U,W){var Y=ie();try{return pe(P)(D,L,R,U,W)}catch(Q){if(oe(Y),Q!==Q+0)throw Q;se(1,0)}},r:function(P,D,L,R,U,W){var Y=ie();try{return pe(P)(D,L,R,U,W)}catch(Q){if(oe(Y),Q!==Q+0)throw Q;se(1,0)}},v:function(P,D,L,R,U,W,Y){var Q=ie();try{return pe(P)(D,L,R,U,W,Y)}catch(Z){if(oe(Q),Z!==Z+0)throw Z;se(1,0)}},K:function(P,D,L,R,U,W,Y,Q){var Z=ie();try{return pe(P)(D,L,R,U,W,Y,Q)}catch(ae){if(oe(Z),ae!==ae+0)throw ae;se(1,0)}},D:function(P,D,L,R,U,W,Y,Q,Z,ae,we,$e){var De=ie();try{return pe(P)(D,L,R,U,W,Y,Q,Z,ae,we,$e)}catch(G){if(oe(De),G!==G+0)throw G;se(1,0)}},X:function(P,D,L,R,U,W,Y,Q){var Z=ie();try{return St(P,D,L,R,U,W,Y,Q)}catch(ae){if(oe(Z),ae!==ae+0)throw ae;se(1,0)}},V:function(P,D,L,R,U,W,Y){var Q=ie();try{return bt(P,D,L,R,U,W,Y)}catch(Z){if(oe(Q),Z!==Z+0)throw Z;se(1,0)}},U:function(P,D,L,R,U){var W=ie();try{return Ot(P,D,L,R,U)}catch(Y){if(oe(W),Y!==Y+0)throw Y;se(1,0)}},Z:function(P,D,L,R){var U=ie();try{return Tt(P,D,L,R)}catch(W){if(oe(U),W!==W+0)throw W;se(1,0)}},W:function(P){var D=ie();try{return mt(P)}catch(L){if(oe(D),L!==L+0)throw L;se(1,0)}},Y:function(P,D){var L=ie();try{return xt(P,D)}catch(R){if(oe(L),R!==R+0)throw R;se(1,0)}},T:function(P,D,L){var R=ie();try{return yt(P,D,L)}catch(U){if(oe(R),U!==U+0)throw U;se(1,0)}},f:function(P){var D=ie();try{pe(P)()}catch(L){if(oe(D),L!==L+0)throw L;se(1,0)}},q:function(P,D){var L=ie();try{pe(P)(D)}catch(R){if(oe(L),R!==R+0)throw R;se(1,0)}},h:function(P,D,L){var R=ie();try{pe(P)(D,L)}catch(U){if(oe(R),U!==U+0)throw U;se(1,0)}},da:function(P,D,L,R){var U=ie();try{pe(P)(D,L,R)}catch(W){if(oe(U),W!==W+0)throw W;se(1,0)}},l:function(P,D,L,R){var U=ie();try{pe(P)(D,L,R)}catch(W){if(oe(U),W!==W+0)throw W;se(1,0)}},t:function(P,D,L,R,U){var W=ie();try{pe(P)(D,L,R,U)}catch(Y){if(oe(W),Y!==Y+0)throw Y;se(1,0)}},u:function(P,D,L,R,U,W){var Y=ie();try{pe(P)(D,L,R,U,W)}catch(Q){if(oe(Y),Q!==Q+0)throw Q;se(1,0)}},x:function(P,D,L,R,U,W,Y){var Q=ie();try{pe(P)(D,L,R,U,W,Y)}catch(Z){if(oe(Q),Z!==Z+0)throw Z;se(1,0)}},z:function(P,D,L,R,U,W,Y,Q){var Z=ie();try{pe(P)(D,L,R,U,W,Y,Q)}catch(ae){if(oe(Z),ae!==ae+0)throw ae;se(1,0)}},ga:function(P,D,L,R,U,W,Y,Q,Z){var ae=ie();try{pe(P)(D,L,R,U,W,Y,Q,Z)}catch(we){if(oe(ae),we!==we+0)throw we;se(1,0)}},A:function(P,D,L,R,U,W,Y,Q,Z,ae,we){var $e=ie();try{pe(P)(D,L,R,U,W,Y,Q,Z,ae,we)}catch(De){if(oe($e),De!==De+0)throw De;se(1,0)}},C:function(P,D,L,R,U,W,Y,Q,Z,ae,we,$e,De,G,ge,xe){var Ge=ie();try{pe(P)(D,L,R,U,W,Y,Q,Z,ae,we,$e,De,G,ge,xe)}catch(Qe){if(oe(Ge),Qe!==Qe+0)throw Qe;se(1,0)}},aa:function(P,D,L,R,U,W,Y,Q){var Z=ie();try{_t(P,D,L,R,U,W,Y,Q)}catch(ae){if(oe(Z),ae!==ae+0)throw ae;se(1,0)}},_:function(P,D,L,R,U,W,Y,Q,Z,ae,we,$e){var De=ie();try{vt(P,D,L,R,U,W,Y,Q,Z,ae,we,$e)}catch(G){if(oe(De),G!==G+0)throw G;se(1,0)}},$:function(P,D,L,R,U,W){var Y=ie();try{wt(P,D,L,R,U,W)}catch(Q){if(oe(Y),Q!==Q+0)throw Q;se(1,0)}},n:function(P){return P},F:function(P){Ne=P},ha:Pt,y:function(P,D,L,R){return Pt(P,D,L,R)}};(function(){function P(U){s.asm=U.exports,I=s.asm.Ka,me(),Ie=s.asm.ib,ce.unshift(s.asm.La),Ce--,s.monitorRunDependencies&&s.monitorRunDependencies(Ce),Ce==0&&Me&&(U=Me,Me=null,U())}function D(U){P(U.instance)}function L(U){return function(){if(!S&&(b||_)){if(typeof fetch=="function"&&!Ae.startsWith("file://"))return fetch(Ae,{credentials:"same-origin"}).then(function(W){if(!W.ok)throw"failed to load wasm binary file at '"+Ae+"'";return W.arrayBuffer()}).catch(function(){return ze()});if(o)return new Promise(function(W,Y){o(Ae,function(Q){W(new Uint8Array(Q))},Y)})}return Promise.resolve().then(function(){return ze()})}().then(function(W){return WebAssembly.instantiate(W,R)}).then(function(W){return W}).then(U,function(W){E("failed to asynchronously prepare wasm: "+W),Ee(W)})}var R={a:It};if(Ce++,s.monitorRunDependencies&&s.monitorRunDependencies(Ce),s.instantiateWasm)try{return s.instantiateWasm(R,P)}catch(U){return E("Module.instantiateWasm callback failed with error: "+U),!1}(S||typeof WebAssembly.instantiateStreaming!="function"||ve()||Ae.startsWith("file://")||w||typeof fetch!="function"?L(D):fetch(Ae,{credentials:"same-origin"}).then(function(U){return WebAssembly.instantiateStreaming(U,R).then(D,function(W){return E("wasm streaming compile failed: "+W),E("falling back to ArrayBuffer instantiation"),L(D)})})).catch(f)})(),s.___wasm_call_ctors=function(){return(s.___wasm_call_ctors=s.asm.La).apply(null,arguments)},s._OrtInit=function(){return(s._OrtInit=s.asm.Ma).apply(null,arguments)},s._OrtCreateSessionOptions=function(){return(s._OrtCreateSessionOptions=s.asm.Na).apply(null,arguments)},s._OrtAppendExecutionProvider=function(){return(s._OrtAppendExecutionProvider=s.asm.Oa).apply(null,arguments)},s._OrtAddSessionConfigEntry=function(){return(s._OrtAddSessionConfigEntry=s.asm.Pa).apply(null,arguments)},s._OrtReleaseSessionOptions=function(){return(s._OrtReleaseSessionOptions=s.asm.Qa).apply(null,arguments)},s._OrtCreateSession=function(){return(s._OrtCreateSession=s.asm.Ra).apply(null,arguments)},s._OrtReleaseSession=function(){return(s._OrtReleaseSession=s.asm.Sa).apply(null,arguments)},s._OrtGetInputCount=function(){return(s._OrtGetInputCount=s.asm.Ta).apply(null,arguments)},s._OrtGetOutputCount=function(){return(s._OrtGetOutputCount=s.asm.Ua).apply(null,arguments)},s._OrtGetInputName=function(){return(s._OrtGetInputName=s.asm.Va).apply(null,arguments)},s._OrtGetOutputName=function(){return(s._OrtGetOutputName=s.asm.Wa).apply(null,arguments)},s._OrtFree=function(){return(s._OrtFree=s.asm.Xa).apply(null,arguments)},s._OrtCreateTensor=function(){return(s._OrtCreateTensor=s.asm.Ya).apply(null,arguments)},s._OrtGetTensorData=function(){return(s._OrtGetTensorData=s.asm.Za).apply(null,arguments)},s._OrtReleaseTensor=function(){return(s._OrtReleaseTensor=s.asm._a).apply(null,arguments)},s._OrtCreateRunOptions=function(){return(s._OrtCreateRunOptions=s.asm.$a).apply(null,arguments)},s._OrtAddRunConfigEntry=function(){return(s._OrtAddRunConfigEntry=s.asm.ab).apply(null,arguments)},s._OrtReleaseRunOptions=function(){return(s._OrtReleaseRunOptions=s.asm.bb).apply(null,arguments)},s._OrtRun=function(){return(s._OrtRun=s.asm.cb).apply(null,arguments)},s._OrtEndProfiling=function(){return(s._OrtEndProfiling=s.asm.db).apply(null,arguments)};var Je,ye=s._malloc=function(){return(ye=s._malloc=s.asm.eb).apply(null,arguments)},it=s._free=function(){return(it=s._free=s.asm.fb).apply(null,arguments)},pt=s._fflush=function(){return(pt=s._fflush=s.asm.gb).apply(null,arguments)},ot=s.___funcs_on_exit=function(){return(ot=s.___funcs_on_exit=s.asm.hb).apply(null,arguments)},se=s._setThrew=function(){return(se=s._setThrew=s.asm.jb).apply(null,arguments)},ie=s.stackSave=function(){return(ie=s.stackSave=s.asm.kb).apply(null,arguments)},oe=s.stackRestore=function(){return(oe=s.stackRestore=s.asm.lb).apply(null,arguments)},ft=s.stackAlloc=function(){return(ft=s.stackAlloc=s.asm.mb).apply(null,arguments)},st=s.___cxa_can_catch=function(){return(st=s.___cxa_can_catch=s.asm.nb).apply(null,arguments)},gt=s.___cxa_is_pointer_type=function(){return(gt=s.___cxa_is_pointer_type=s.asm.ob).apply(null,arguments)},mt=s.dynCall_j=function(){return(mt=s.dynCall_j=s.asm.pb).apply(null,arguments)},bt=s.dynCall_iiiiij=function(){return(bt=s.dynCall_iiiiij=s.asm.qb).apply(null,arguments)},yt=s.dynCall_jii=function(){return(yt=s.dynCall_jii=s.asm.rb).apply(null,arguments)},_t=s.dynCall_viiiiij=function(){return(_t=s.dynCall_viiiiij=s.asm.sb).apply(null,arguments)},wt=s.dynCall_vjji=function(){return(wt=s.dynCall_vjji=s.asm.tb).apply(null,arguments)},vt=s.dynCall_viiijjjii=function(){return(vt=s.dynCall_viiijjjii=s.asm.ub).apply(null,arguments)},Tt=s.dynCall_iij=function(){return(Tt=s.dynCall_iij=s.asm.vb).apply(null,arguments)},xt=s.dynCall_ji=function(){return(xt=s.dynCall_ji=s.asm.wb).apply(null,arguments)},St=s.dynCall_iiiiiij=function(){return(St=s.dynCall_iiiiiij=s.asm.xb).apply(null,arguments)},Ot=s.dynCall_iiij=function(){return(Ot=s.dynCall_iiij=s.asm.yb).apply(null,arguments)};function At(){function P(){if(!Je&&(Je=!0,s.calledRun=!0,!$)){if(He(ce),h(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;){var D=s.postRun.shift();_e.unshift(D)}He(_e)}}if(!(0<Ce)){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)We();He(Oe),0<Ce||(s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),P()},1)):P())}}if(s.UTF8ToString=X,s.stringToUTF8=function(P,D,L){return te(P,F,D,L)},s.lengthBytesUTF8=ne,s.stackSave=ie,s.stackRestore=oe,s.stackAlloc=ft,Me=function P(){Je||At(),Je||(Me=P)},s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);0<s.preInit.length;)s.preInit.pop()();return At(),p.ready});y.exports=l},4537:y=>{y.exports=function(n,u){for(var d=new Array(arguments.length-1),l=0,p=2,s=!0;p<arguments.length;)d[l++]=arguments[p++];return new Promise(function(h,f){d[l]=function(a){if(s)if(s=!1,a)f(a);else{for(var o=new Array(arguments.length-1),t=0;t<o.length;)o[t++]=arguments[t];h.apply(null,o)}};try{n.apply(u||null,d)}catch(a){s&&(s=!1,f(a))}})}},7419:(y,n)=>{var u=n;u.length=function(h){var f=h.length;if(!f)return 0;for(var a=0;--f%4>1&&h.charAt(f)==="=";)++a;return Math.ceil(3*h.length)/4-a};for(var d=new Array(64),l=new Array(123),p=0;p<64;)l[d[p]=p<26?p+65:p<52?p+71:p<62?p-4:p-59|43]=p++;u.encode=function(h,f,a){for(var o,t=null,e=[],r=0,i=0;f<a;){var c=h[f++];switch(i){case 0:e[r++]=d[c>>2],o=(3&c)<<4,i=1;break;case 1:e[r++]=d[o|c>>4],o=(15&c)<<2,i=2;break;case 2:e[r++]=d[o|c>>6],e[r++]=d[63&c],i=0}r>8191&&((t||(t=[])).push(String.fromCharCode.apply(String,e)),r=0)}return i&&(e[r++]=d[o],e[r++]=61,i===1&&(e[r++]=61)),t?(r&&t.push(String.fromCharCode.apply(String,e.slice(0,r))),t.join("")):String.fromCharCode.apply(String,e.slice(0,r))};var s="invalid encoding";u.decode=function(h,f,a){for(var o,t=a,e=0,r=0;r<h.length;){var i=h.charCodeAt(r++);if(i===61&&e>1)break;if((i=l[i])===void 0)throw Error(s);switch(e){case 0:o=i,e=1;break;case 1:f[a++]=o<<2|(48&i)>>4,o=i,e=2;break;case 2:f[a++]=(15&o)<<4|(60&i)>>2,o=i,e=3;break;case 3:f[a++]=(3&o)<<6|i,e=0}}if(e===1)throw Error(s);return a-t},u.test=function(h){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(h)}},9211:y=>{function n(){this._listeners={}}y.exports=n,n.prototype.on=function(u,d,l){return(this._listeners[u]||(this._listeners[u]=[])).push({fn:d,ctx:l||this}),this},n.prototype.off=function(u,d){if(u===void 0)this._listeners={};else if(d===void 0)this._listeners[u]=[];else for(var l=this._listeners[u],p=0;p<l.length;)l[p].fn===d?l.splice(p,1):++p;return this},n.prototype.emit=function(u){var d=this._listeners[u];if(d){for(var l=[],p=1;p<arguments.length;)l.push(arguments[p++]);for(p=0;p<d.length;)d[p].fn.apply(d[p++].ctx,l)}return this}},945:y=>{function n(s){return typeof Float32Array<"u"?function(){var h=new Float32Array([-0]),f=new Uint8Array(h.buffer),a=f[3]===128;function o(i,c,g){h[0]=i,c[g]=f[0],c[g+1]=f[1],c[g+2]=f[2],c[g+3]=f[3]}function t(i,c,g){h[0]=i,c[g]=f[3],c[g+1]=f[2],c[g+2]=f[1],c[g+3]=f[0]}function e(i,c){return f[0]=i[c],f[1]=i[c+1],f[2]=i[c+2],f[3]=i[c+3],h[0]}function r(i,c){return f[3]=i[c],f[2]=i[c+1],f[1]=i[c+2],f[0]=i[c+3],h[0]}s.writeFloatLE=a?o:t,s.writeFloatBE=a?t:o,s.readFloatLE=a?e:r,s.readFloatBE=a?r:e}():function(){function h(a,o,t,e){var r=o<0?1:0;if(r&&(o=-o),o===0)a(1/o>0?0:2147483648,t,e);else if(isNaN(o))a(2143289344,t,e);else if(o>34028234663852886e22)a((r<<31|2139095040)>>>0,t,e);else if(o<11754943508222875e-54)a((r<<31|Math.round(o/1401298464324817e-60))>>>0,t,e);else{var i=Math.floor(Math.log(o)/Math.LN2);a((r<<31|i+127<<23|8388607&Math.round(o*Math.pow(2,-i)*8388608))>>>0,t,e)}}function f(a,o,t){var e=a(o,t),r=2*(e>>31)+1,i=e>>>23&255,c=8388607&e;return i===255?c?NaN:r*(1/0):i===0?1401298464324817e-60*r*c:r*Math.pow(2,i-150)*(c+8388608)}s.writeFloatLE=h.bind(null,u),s.writeFloatBE=h.bind(null,d),s.readFloatLE=f.bind(null,l),s.readFloatBE=f.bind(null,p)}(),typeof Float64Array<"u"?function(){var h=new Float64Array([-0]),f=new Uint8Array(h.buffer),a=f[7]===128;function o(i,c,g){h[0]=i,c[g]=f[0],c[g+1]=f[1],c[g+2]=f[2],c[g+3]=f[3],c[g+4]=f[4],c[g+5]=f[5],c[g+6]=f[6],c[g+7]=f[7]}function t(i,c,g){h[0]=i,c[g]=f[7],c[g+1]=f[6],c[g+2]=f[5],c[g+3]=f[4],c[g+4]=f[3],c[g+5]=f[2],c[g+6]=f[1],c[g+7]=f[0]}function e(i,c){return f[0]=i[c],f[1]=i[c+1],f[2]=i[c+2],f[3]=i[c+3],f[4]=i[c+4],f[5]=i[c+5],f[6]=i[c+6],f[7]=i[c+7],h[0]}function r(i,c){return f[7]=i[c],f[6]=i[c+1],f[5]=i[c+2],f[4]=i[c+3],f[3]=i[c+4],f[2]=i[c+5],f[1]=i[c+6],f[0]=i[c+7],h[0]}s.writeDoubleLE=a?o:t,s.writeDoubleBE=a?t:o,s.readDoubleLE=a?e:r,s.readDoubleBE=a?r:e}():function(){function h(a,o,t,e,r,i){var c=e<0?1:0;if(c&&(e=-e),e===0)a(0,r,i+o),a(1/e>0?0:2147483648,r,i+t);else if(isNaN(e))a(0,r,i+o),a(2146959360,r,i+t);else if(e>17976931348623157e292)a(0,r,i+o),a((c<<31|2146435072)>>>0,r,i+t);else{var g;if(e<22250738585072014e-324)a((g=e/5e-324)>>>0,r,i+o),a((c<<31|g/4294967296)>>>0,r,i+t);else{var m=Math.floor(Math.log(e)/Math.LN2);m===1024&&(m=1023),a(4503599627370496*(g=e*Math.pow(2,-m))>>>0,r,i+o),a((c<<31|m+1023<<20|1048576*g&1048575)>>>0,r,i+t)}}}function f(a,o,t,e,r){var i=a(e,r+o),c=a(e,r+t),g=2*(c>>31)+1,m=c>>>20&2047,b=4294967296*(1048575&c)+i;return m===2047?b?NaN:g*(1/0):m===0?5e-324*g*b:g*Math.pow(2,m-1075)*(b+4503599627370496)}s.writeDoubleLE=h.bind(null,u,0,4),s.writeDoubleBE=h.bind(null,d,4,0),s.readDoubleLE=f.bind(null,l,0,4),s.readDoubleBE=f.bind(null,p,4,0)}(),s}function u(s,h,f){h[f]=255&s,h[f+1]=s>>>8&255,h[f+2]=s>>>16&255,h[f+3]=s>>>24}function d(s,h,f){h[f]=s>>>24,h[f+1]=s>>>16&255,h[f+2]=s>>>8&255,h[f+3]=255&s}function l(s,h){return(s[h]|s[h+1]<<8|s[h+2]<<16|s[h+3]<<24)>>>0}function p(s,h){return(s[h]<<24|s[h+1]<<16|s[h+2]<<8|s[h+3])>>>0}y.exports=n(n)},7199:module=>{function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(y){}return null}module.exports=inquire},6662:y=>{y.exports=function(n,u,d){var l=d||8192,p=l>>>1,s=null,h=l;return function(f){if(f<1||f>p)return n(f);h+f>l&&(s=n(l),h=0);var a=u.call(s,h,h+=f);return 7&h&&(h=1+(7|h)),a}}},4997:(y,n)=>{var u=n;u.length=function(d){for(var l=0,p=0,s=0;s<d.length;++s)(p=d.charCodeAt(s))<128?l+=1:p<2048?l+=2:(64512&p)==55296&&(64512&d.charCodeAt(s+1))==56320?(++s,l+=4):l+=3;return l},u.read=function(d,l,p){if(p-l<1)return"";for(var s,h=null,f=[],a=0;l<p;)(s=d[l++])<128?f[a++]=s:s>191&&s<224?f[a++]=(31&s)<<6|63&d[l++]:s>239&&s<365?(s=((7&s)<<18|(63&d[l++])<<12|(63&d[l++])<<6|63&d[l++])-65536,f[a++]=55296+(s>>10),f[a++]=56320+(1023&s)):f[a++]=(15&s)<<12|(63&d[l++])<<6|63&d[l++],a>8191&&((h||(h=[])).push(String.fromCharCode.apply(String,f)),a=0);return h?(a&&h.push(String.fromCharCode.apply(String,f.slice(0,a))),h.join("")):String.fromCharCode.apply(String,f.slice(0,a))},u.write=function(d,l,p){for(var s,h,f=p,a=0;a<d.length;++a)(s=d.charCodeAt(a))<128?l[p++]=s:s<2048?(l[p++]=s>>6|192,l[p++]=63&s|128):(64512&s)==55296&&(64512&(h=d.charCodeAt(a+1)))==56320?(s=65536+((1023&s)<<10)+(1023&h),++a,l[p++]=s>>18|240,l[p++]=s>>12&63|128,l[p++]=s>>6&63|128,l[p++]=63&s|128):(l[p++]=s>>12|224,l[p++]=s>>6&63|128,l[p++]=63&s|128);return p-f}},3442:(y,n)=>{n.__esModule=!0;var u=function(){function d(l){if(!l)throw new TypeError("Invalid argument; `value` has no value.");this.value=d.EMPTY,l&&d.isGuid(l)&&(this.value=l)}return d.isGuid=function(l){var p=l.toString();return l&&(l instanceof d||d.validator.test(p))},d.create=function(){return new d([d.gen(2),d.gen(1),d.gen(1),d.gen(1),d.gen(3)].join("-"))},d.createEmpty=function(){return new d("emptyguid")},d.parse=function(l){return new d(l)},d.raw=function(){return[d.gen(2),d.gen(1),d.gen(1),d.gen(1),d.gen(3)].join("-")},d.gen=function(l){for(var p="",s=0;s<l;s++)p+=(65536*(1+Math.random())|0).toString(16).substring(1);return p},d.prototype.equals=function(l){return d.isGuid(l)&&this.value===l.toString()},d.prototype.isEmpty=function(){return this.value===d.EMPTY},d.prototype.toString=function(){return this.value},d.prototype.toJSON=function(){return{value:this.value}},d.validator=new RegExp("^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$","i"),d.EMPTY="00000000-0000-0000-0000-000000000000",d}();n.Guid=u},3720:y=>{y.exports=u;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function u(T,I,C){this.low=0|T,this.high=0|I,this.unsigned=!!C}function d(T){return(T&&T.__isLong__)===!0}u.prototype.__isLong__,Object.defineProperty(u.prototype,"__isLong__",{value:!0}),u.isLong=d;var l={},p={};function s(T,I){var C,B,F;return I?(F=0<=(T>>>=0)&&T<256)&&(B=p[T])?B:(C=f(T,(0|T)<0?-1:0,!0),F&&(p[T]=C),C):(F=-128<=(T|=0)&&T<128)&&(B=l[T])?B:(C=f(T,T<0?-1:0,!1),F&&(l[T]=C),C)}function h(T,I){if(isNaN(T))return I?m:g;if(I){if(T<0)return m;if(T>=r)return S}else{if(T<=-i)return O;if(T+1>=i)return v}return T<0?h(-T,I).neg():f(T%e|0,T/e|0,I)}function f(T,I,C){return new u(T,I,C)}u.fromInt=s,u.fromNumber=h,u.fromBits=f;var a=Math.pow;function o(T,I,C){if(T.length===0)throw Error("empty string");if(T==="NaN"||T==="Infinity"||T==="+Infinity"||T==="-Infinity")return g;if(typeof I=="number"?(C=I,I=!1):I=!!I,(C=C||10)<2||36<C)throw RangeError("radix");var B;if((B=T.indexOf("-"))>0)throw Error("interior hyphen");if(B===0)return o(T.substring(1),I,C).neg();for(var F=h(a(C,8)),N=g,H=0;H<T.length;H+=8){var $=Math.min(8,T.length-H),z=parseInt(T.substring(H,H+$),C);if($<8){var J=h(a(C,$));N=N.mul(J).add(h(z))}else N=(N=N.mul(F)).add(h(z))}return N.unsigned=I,N}function t(T,I){return typeof T=="number"?h(T,I):typeof T=="string"?o(T,I):f(T.low,T.high,typeof I=="boolean"?I:T.unsigned)}u.fromString=o,u.fromValue=t;var e=4294967296,r=e*e,i=r/2,c=s(1<<24),g=s(0);u.ZERO=g;var m=s(0,!0);u.UZERO=m;var b=s(1);u.ONE=b;var _=s(1,!0);u.UONE=_;var w=s(-1);u.NEG_ONE=w;var v=f(-1,2147483647,!1);u.MAX_VALUE=v;var S=f(-1,-1,!0);u.MAX_UNSIGNED_VALUE=S;var O=f(0,-2147483648,!1);u.MIN_VALUE=O;var E=u.prototype;E.toInt=function(){return this.unsigned?this.low>>>0:this.low},E.toNumber=function(){return this.unsigned?(this.high>>>0)*e+(this.low>>>0):this.high*e+(this.low>>>0)},E.toString=function(T){if((T=T||10)<2||36<T)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(O)){var I=h(T),C=this.div(I),B=C.mul(I).sub(this);return C.toString(T)+B.toInt().toString(T)}return"-"+this.neg().toString(T)}for(var F=h(a(T,6),this.unsigned),N=this,H="";;){var $=N.div(F),z=(N.sub($.mul(F)).toInt()>>>0).toString(T);if((N=$).isZero())return z+H;for(;z.length<6;)z="0"+z;H=""+z+H}},E.getHighBits=function(){return this.high},E.getHighBitsUnsigned=function(){return this.high>>>0},E.getLowBits=function(){return this.low},E.getLowBitsUnsigned=function(){return this.low>>>0},E.getNumBitsAbs=function(){if(this.isNegative())return this.eq(O)?64:this.neg().getNumBitsAbs();for(var T=this.high!=0?this.high:this.low,I=31;I>0&&!(T&1<<I);I--);return this.high!=0?I+33:I+1},E.isZero=function(){return this.high===0&&this.low===0},E.eqz=E.isZero,E.isNegative=function(){return!this.unsigned&&this.high<0},E.isPositive=function(){return this.unsigned||this.high>=0},E.isOdd=function(){return(1&this.low)==1},E.isEven=function(){return(1&this.low)==0},E.equals=function(T){return d(T)||(T=t(T)),(this.unsigned===T.unsigned||this.high>>>31!=1||T.high>>>31!=1)&&this.high===T.high&&this.low===T.low},E.eq=E.equals,E.notEquals=function(T){return!this.eq(T)},E.neq=E.notEquals,E.ne=E.notEquals,E.lessThan=function(T){return this.comp(T)<0},E.lt=E.lessThan,E.lessThanOrEqual=function(T){return this.comp(T)<=0},E.lte=E.lessThanOrEqual,E.le=E.lessThanOrEqual,E.greaterThan=function(T){return this.comp(T)>0},E.gt=E.greaterThan,E.greaterThanOrEqual=function(T){return this.comp(T)>=0},E.gte=E.greaterThanOrEqual,E.ge=E.greaterThanOrEqual,E.compare=function(T){if(d(T)||(T=t(T)),this.eq(T))return 0;var I=this.isNegative(),C=T.isNegative();return I&&!C?-1:!I&&C?1:this.unsigned?T.high>>>0>this.high>>>0||T.high===this.high&&T.low>>>0>this.low>>>0?-1:1:this.sub(T).isNegative()?-1:1},E.comp=E.compare,E.negate=function(){return!this.unsigned&&this.eq(O)?O:this.not().add(b)},E.neg=E.negate,E.add=function(T){d(T)||(T=t(T));var I=this.high>>>16,C=65535&this.high,B=this.low>>>16,F=65535&this.low,N=T.high>>>16,H=65535&T.high,$=T.low>>>16,z=0,J=0,X=0,te=0;return X+=(te+=F+(65535&T.low))>>>16,J+=(X+=B+$)>>>16,z+=(J+=C+H)>>>16,z+=I+N,f((X&=65535)<<16|(te&=65535),(z&=65535)<<16|(J&=65535),this.unsigned)},E.subtract=function(T){return d(T)||(T=t(T)),this.add(T.neg())},E.sub=E.subtract,E.multiply=function(T){if(this.isZero())return g;if(d(T)||(T=t(T)),n)return f(n.mul(this.low,this.high,T.low,T.high),n.get_high(),this.unsigned);if(T.isZero())return g;if(this.eq(O))return T.isOdd()?O:g;if(T.eq(O))return this.isOdd()?O:g;if(this.isNegative())return T.isNegative()?this.neg().mul(T.neg()):this.neg().mul(T).neg();if(T.isNegative())return this.mul(T.neg()).neg();if(this.lt(c)&&T.lt(c))return h(this.toNumber()*T.toNumber(),this.unsigned);var I=this.high>>>16,C=65535&this.high,B=this.low>>>16,F=65535&this.low,N=T.high>>>16,H=65535&T.high,$=T.low>>>16,z=65535&T.low,J=0,X=0,te=0,ne=0;return te+=(ne+=F*z)>>>16,X+=(te+=B*z)>>>16,te&=65535,X+=(te+=F*$)>>>16,J+=(X+=C*z)>>>16,X&=65535,J+=(X+=B*$)>>>16,X&=65535,J+=(X+=F*H)>>>16,J+=I*z+C*$+B*H+F*N,f((te&=65535)<<16|(ne&=65535),(J&=65535)<<16|(X&=65535),this.unsigned)},E.mul=E.multiply,E.divide=function(T){if(d(T)||(T=t(T)),T.isZero())throw Error("division by zero");var I,C,B;if(n)return this.unsigned||this.high!==-2147483648||T.low!==-1||T.high!==-1?f((this.unsigned?n.div_u:n.div_s)(this.low,this.high,T.low,T.high),n.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?m:g;if(this.unsigned){if(T.unsigned||(T=T.toUnsigned()),T.gt(this))return m;if(T.gt(this.shru(1)))return _;B=m}else{if(this.eq(O))return T.eq(b)||T.eq(w)?O:T.eq(O)?b:(I=this.shr(1).div(T).shl(1)).eq(g)?T.isNegative()?b:w:(C=this.sub(T.mul(I)),B=I.add(C.div(T)));if(T.eq(O))return this.unsigned?m:g;if(this.isNegative())return T.isNegative()?this.neg().div(T.neg()):this.neg().div(T).neg();if(T.isNegative())return this.div(T.neg()).neg();B=g}for(C=this;C.gte(T);){I=Math.max(1,Math.floor(C.toNumber()/T.toNumber()));for(var F=Math.ceil(Math.log(I)/Math.LN2),N=F<=48?1:a(2,F-48),H=h(I),$=H.mul(T);$.isNegative()||$.gt(C);)$=(H=h(I-=N,this.unsigned)).mul(T);H.isZero()&&(H=b),B=B.add(H),C=C.sub($)}return B},E.div=E.divide,E.modulo=function(T){return d(T)||(T=t(T)),n?f((this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,T.low,T.high),n.get_high(),this.unsigned):this.sub(this.div(T).mul(T))},E.mod=E.modulo,E.rem=E.modulo,E.not=function(){return f(~this.low,~this.high,this.unsigned)},E.and=function(T){return d(T)||(T=t(T)),f(this.low&T.low,this.high&T.high,this.unsigned)},E.or=function(T){return d(T)||(T=t(T)),f(this.low|T.low,this.high|T.high,this.unsigned)},E.xor=function(T){return d(T)||(T=t(T)),f(this.low^T.low,this.high^T.high,this.unsigned)},E.shiftLeft=function(T){return d(T)&&(T=T.toInt()),(T&=63)==0?this:T<32?f(this.low<<T,this.high<<T|this.low>>>32-T,this.unsigned):f(0,this.low<<T-32,this.unsigned)},E.shl=E.shiftLeft,E.shiftRight=function(T){return d(T)&&(T=T.toInt()),(T&=63)==0?this:T<32?f(this.low>>>T|this.high<<32-T,this.high>>T,this.unsigned):f(this.high>>T-32,this.high>=0?0:-1,this.unsigned)},E.shr=E.shiftRight,E.shiftRightUnsigned=function(T){if(d(T)&&(T=T.toInt()),(T&=63)==0)return this;var I=this.high;return T<32?f(this.low>>>T|I<<32-T,I>>>T,this.unsigned):f(T===32?I:I>>>T-32,0,this.unsigned)},E.shru=E.shiftRightUnsigned,E.shr_u=E.shiftRightUnsigned,E.toSigned=function(){return this.unsigned?f(this.low,this.high,!1):this},E.toUnsigned=function(){return this.unsigned?this:f(this.low,this.high,!0)},E.toBytes=function(T){return T?this.toBytesLE():this.toBytesBE()},E.toBytesLE=function(){var T=this.high,I=this.low;return[255&I,I>>>8&255,I>>>16&255,I>>>24,255&T,T>>>8&255,T>>>16&255,T>>>24]},E.toBytesBE=function(){var T=this.high,I=this.low;return[T>>>24,T>>>16&255,T>>>8&255,255&T,I>>>24,I>>>16&255,I>>>8&255,255&I]},u.fromBytes=function(T,I,C){return C?u.fromBytesLE(T,I):u.fromBytesBE(T,I)},u.fromBytesLE=function(T,I){return new u(T[0]|T[1]<<8|T[2]<<16|T[3]<<24,T[4]|T[5]<<8|T[6]<<16|T[7]<<24,I)},u.fromBytesBE=function(T,I){return new u(T[4]<<24|T[5]<<16|T[6]<<8|T[7],T[0]<<24|T[1]<<16|T[2]<<8|T[3],I)}},1446:(y,n,u)=>{var d,l,p,s=u(2100),h=s.Reader,f=s.Writer,a=s.util,o=s.roots.default||(s.roots.default={});o.onnx=((p={}).Version=(d={},(l=Object.create(d))[d[0]="_START_VERSION"]=0,l[d[1]="IR_VERSION_2017_10_10"]=1,l[d[2]="IR_VERSION_2017_10_30"]=2,l[d[3]="IR_VERSION_2017_11_3"]=3,l[d[4]="IR_VERSION_2019_1_22"]=4,l[d[5]="IR_VERSION"]=5,l),p.AttributeProto=function(){function t(e){if(this.floats=[],this.ints=[],this.strings=[],this.tensors=[],this.graphs=[],e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.name="",t.prototype.refAttrName="",t.prototype.docString="",t.prototype.type=0,t.prototype.f=0,t.prototype.i=a.Long?a.Long.fromBits(0,0,!1):0,t.prototype.s=a.newBuffer([]),t.prototype.t=null,t.prototype.g=null,t.prototype.floats=a.emptyArray,t.prototype.ints=a.emptyArray,t.prototype.strings=a.emptyArray,t.prototype.tensors=a.emptyArray,t.prototype.graphs=a.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=f.create()),e.name!=null&&e.hasOwnProperty("name")&&r.uint32(10).string(e.name),e.f!=null&&e.hasOwnProperty("f")&&r.uint32(21).float(e.f),e.i!=null&&e.hasOwnProperty("i")&&r.uint32(24).int64(e.i),e.s!=null&&e.hasOwnProperty("s")&&r.uint32(34).bytes(e.s),e.t!=null&&e.hasOwnProperty("t")&&o.onnx.TensorProto.encode(e.t,r.uint32(42).fork()).ldelim(),e.g!=null&&e.hasOwnProperty("g")&&o.onnx.GraphProto.encode(e.g,r.uint32(50).fork()).ldelim(),e.floats!=null&&e.floats.length){r.uint32(58).fork();for(var i=0;i<e.floats.length;++i)r.float(e.floats[i]);r.ldelim()}if(e.ints!=null&&e.ints.length){for(r.uint32(66).fork(),i=0;i<e.ints.length;++i)r.int64(e.ints[i]);r.ldelim()}if(e.strings!=null&&e.strings.length)for(i=0;i<e.strings.length;++i)r.uint32(74).bytes(e.strings[i]);if(e.tensors!=null&&e.tensors.length)for(i=0;i<e.tensors.length;++i)o.onnx.TensorProto.encode(e.tensors[i],r.uint32(82).fork()).ldelim();if(e.graphs!=null&&e.graphs.length)for(i=0;i<e.graphs.length;++i)o.onnx.GraphProto.encode(e.graphs[i],r.uint32(90).fork()).ldelim();return e.docString!=null&&e.hasOwnProperty("docString")&&r.uint32(106).string(e.docString),e.type!=null&&e.hasOwnProperty("type")&&r.uint32(160).int32(e.type),e.refAttrName!=null&&e.hasOwnProperty("refAttrName")&&r.uint32(170).string(e.refAttrName),r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.AttributeProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:c.name=e.string();break;case 21:c.refAttrName=e.string();break;case 13:c.docString=e.string();break;case 20:c.type=e.int32();break;case 2:c.f=e.float();break;case 3:c.i=e.int64();break;case 4:c.s=e.bytes();break;case 5:c.t=o.onnx.TensorProto.decode(e,e.uint32());break;case 6:c.g=o.onnx.GraphProto.decode(e,e.uint32());break;case 7:if(c.floats&&c.floats.length||(c.floats=[]),(7&g)==2)for(var m=e.uint32()+e.pos;e.pos<m;)c.floats.push(e.float());else c.floats.push(e.float());break;case 8:if(c.ints&&c.ints.length||(c.ints=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)c.ints.push(e.int64());else c.ints.push(e.int64());break;case 9:c.strings&&c.strings.length||(c.strings=[]),c.strings.push(e.bytes());break;case 10:c.tensors&&c.tensors.length||(c.tensors=[]),c.tensors.push(o.onnx.TensorProto.decode(e,e.uint32()));break;case 11:c.graphs&&c.graphs.length||(c.graphs=[]),c.graphs.push(o.onnx.GraphProto.decode(e,e.uint32()));break;default:e.skipType(7&g)}}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.name!=null&&e.hasOwnProperty("name")&&!a.isString(e.name))return"name: string expected";if(e.refAttrName!=null&&e.hasOwnProperty("refAttrName")&&!a.isString(e.refAttrName))return"refAttrName: string expected";if(e.docString!=null&&e.hasOwnProperty("docString")&&!a.isString(e.docString))return"docString: string expected";if(e.type!=null&&e.hasOwnProperty("type"))switch(e.type){default:return"type: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:}if(e.f!=null&&e.hasOwnProperty("f")&&typeof e.f!="number")return"f: number expected";if(e.i!=null&&e.hasOwnProperty("i")&&!(a.isInteger(e.i)||e.i&&a.isInteger(e.i.low)&&a.isInteger(e.i.high)))return"i: integer|Long expected";if(e.s!=null&&e.hasOwnProperty("s")&&!(e.s&&typeof e.s.length=="number"||a.isString(e.s)))return"s: buffer expected";if(e.t!=null&&e.hasOwnProperty("t")&&(i=o.onnx.TensorProto.verify(e.t)))return"t."+i;if(e.g!=null&&e.hasOwnProperty("g")&&(i=o.onnx.GraphProto.verify(e.g)))return"g."+i;if(e.floats!=null&&e.hasOwnProperty("floats")){if(!Array.isArray(e.floats))return"floats: array expected";for(var r=0;r<e.floats.length;++r)if(typeof e.floats[r]!="number")return"floats: number[] expected"}if(e.ints!=null&&e.hasOwnProperty("ints")){if(!Array.isArray(e.ints))return"ints: array expected";for(r=0;r<e.ints.length;++r)if(!(a.isInteger(e.ints[r])||e.ints[r]&&a.isInteger(e.ints[r].low)&&a.isInteger(e.ints[r].high)))return"ints: integer|Long[] expected"}if(e.strings!=null&&e.hasOwnProperty("strings")){if(!Array.isArray(e.strings))return"strings: array expected";for(r=0;r<e.strings.length;++r)if(!(e.strings[r]&&typeof e.strings[r].length=="number"||a.isString(e.strings[r])))return"strings: buffer[] expected"}if(e.tensors!=null&&e.hasOwnProperty("tensors")){if(!Array.isArray(e.tensors))return"tensors: array expected";for(r=0;r<e.tensors.length;++r)if(i=o.onnx.TensorProto.verify(e.tensors[r]))return"tensors."+i}if(e.graphs!=null&&e.hasOwnProperty("graphs")){if(!Array.isArray(e.graphs))return"graphs: array expected";for(r=0;r<e.graphs.length;++r){var i;if(i=o.onnx.GraphProto.verify(e.graphs[r]))return"graphs."+i}}return null},t.fromObject=function(e){if(e instanceof o.onnx.AttributeProto)return e;var r=new o.onnx.AttributeProto;switch(e.name!=null&&(r.name=String(e.name)),e.refAttrName!=null&&(r.refAttrName=String(e.refAttrName)),e.docString!=null&&(r.docString=String(e.docString)),e.type){case"UNDEFINED":case 0:r.type=0;break;case"FLOAT":case 1:r.type=1;break;case"INT":case 2:r.type=2;break;case"STRING":case 3:r.type=3;break;case"TENSOR":case 4:r.type=4;break;case"GRAPH":case 5:r.type=5;break;case"FLOATS":case 6:r.type=6;break;case"INTS":case 7:r.type=7;break;case"STRINGS":case 8:r.type=8;break;case"TENSORS":case 9:r.type=9;break;case"GRAPHS":case 10:r.type=10}if(e.f!=null&&(r.f=Number(e.f)),e.i!=null&&(a.Long?(r.i=a.Long.fromValue(e.i)).unsigned=!1:typeof e.i=="string"?r.i=parseInt(e.i,10):typeof e.i=="number"?r.i=e.i:typeof e.i=="object"&&(r.i=new a.LongBits(e.i.low>>>0,e.i.high>>>0).toNumber())),e.s!=null&&(typeof e.s=="string"?a.base64.decode(e.s,r.s=a.newBuffer(a.base64.length(e.s)),0):e.s.length&&(r.s=e.s)),e.t!=null){if(typeof e.t!="object")throw TypeError(".onnx.AttributeProto.t: object expected");r.t=o.onnx.TensorProto.fromObject(e.t)}if(e.g!=null){if(typeof e.g!="object")throw TypeError(".onnx.AttributeProto.g: object expected");r.g=o.onnx.GraphProto.fromObject(e.g)}if(e.floats){if(!Array.isArray(e.floats))throw TypeError(".onnx.AttributeProto.floats: array expected");r.floats=[];for(var i=0;i<e.floats.length;++i)r.floats[i]=Number(e.floats[i])}if(e.ints){if(!Array.isArray(e.ints))throw TypeError(".onnx.AttributeProto.ints: array expected");for(r.ints=[],i=0;i<e.ints.length;++i)a.Long?(r.ints[i]=a.Long.fromValue(e.ints[i])).unsigned=!1:typeof e.ints[i]=="string"?r.ints[i]=parseInt(e.ints[i],10):typeof e.ints[i]=="number"?r.ints[i]=e.ints[i]:typeof e.ints[i]=="object"&&(r.ints[i]=new a.LongBits(e.ints[i].low>>>0,e.ints[i].high>>>0).toNumber())}if(e.strings){if(!Array.isArray(e.strings))throw TypeError(".onnx.AttributeProto.strings: array expected");for(r.strings=[],i=0;i<e.strings.length;++i)typeof e.strings[i]=="string"?a.base64.decode(e.strings[i],r.strings[i]=a.newBuffer(a.base64.length(e.strings[i])),0):e.strings[i].length&&(r.strings[i]=e.strings[i])}if(e.tensors){if(!Array.isArray(e.tensors))throw TypeError(".onnx.AttributeProto.tensors: array expected");for(r.tensors=[],i=0;i<e.tensors.length;++i){if(typeof e.tensors[i]!="object")throw TypeError(".onnx.AttributeProto.tensors: object expected");r.tensors[i]=o.onnx.TensorProto.fromObject(e.tensors[i])}}if(e.graphs){if(!Array.isArray(e.graphs))throw TypeError(".onnx.AttributeProto.graphs: array expected");for(r.graphs=[],i=0;i<e.graphs.length;++i){if(typeof e.graphs[i]!="object")throw TypeError(".onnx.AttributeProto.graphs: object expected");r.graphs[i]=o.onnx.GraphProto.fromObject(e.graphs[i])}}return r},t.toObject=function(e,r){r||(r={});var i={};if((r.arrays||r.defaults)&&(i.floats=[],i.ints=[],i.strings=[],i.tensors=[],i.graphs=[]),r.defaults){if(i.name="",i.f=0,a.Long){var c=new a.Long(0,0,!1);i.i=r.longs===String?c.toString():r.longs===Number?c.toNumber():c}else i.i=r.longs===String?"0":0;r.bytes===String?i.s="":(i.s=[],r.bytes!==Array&&(i.s=a.newBuffer(i.s))),i.t=null,i.g=null,i.docString="",i.type=r.enums===String?"UNDEFINED":0,i.refAttrName=""}if(e.name!=null&&e.hasOwnProperty("name")&&(i.name=e.name),e.f!=null&&e.hasOwnProperty("f")&&(i.f=r.json&&!isFinite(e.f)?String(e.f):e.f),e.i!=null&&e.hasOwnProperty("i")&&(typeof e.i=="number"?i.i=r.longs===String?String(e.i):e.i:i.i=r.longs===String?a.Long.prototype.toString.call(e.i):r.longs===Number?new a.LongBits(e.i.low>>>0,e.i.high>>>0).toNumber():e.i),e.s!=null&&e.hasOwnProperty("s")&&(i.s=r.bytes===String?a.base64.encode(e.s,0,e.s.length):r.bytes===Array?Array.prototype.slice.call(e.s):e.s),e.t!=null&&e.hasOwnProperty("t")&&(i.t=o.onnx.TensorProto.toObject(e.t,r)),e.g!=null&&e.hasOwnProperty("g")&&(i.g=o.onnx.GraphProto.toObject(e.g,r)),e.floats&&e.floats.length){i.floats=[];for(var g=0;g<e.floats.length;++g)i.floats[g]=r.json&&!isFinite(e.floats[g])?String(e.floats[g]):e.floats[g]}if(e.ints&&e.ints.length)for(i.ints=[],g=0;g<e.ints.length;++g)typeof e.ints[g]=="number"?i.ints[g]=r.longs===String?String(e.ints[g]):e.ints[g]:i.ints[g]=r.longs===String?a.Long.prototype.toString.call(e.ints[g]):r.longs===Number?new a.LongBits(e.ints[g].low>>>0,e.ints[g].high>>>0).toNumber():e.ints[g];if(e.strings&&e.strings.length)for(i.strings=[],g=0;g<e.strings.length;++g)i.strings[g]=r.bytes===String?a.base64.encode(e.strings[g],0,e.strings[g].length):r.bytes===Array?Array.prototype.slice.call(e.strings[g]):e.strings[g];if(e.tensors&&e.tensors.length)for(i.tensors=[],g=0;g<e.tensors.length;++g)i.tensors[g]=o.onnx.TensorProto.toObject(e.tensors[g],r);if(e.graphs&&e.graphs.length)for(i.graphs=[],g=0;g<e.graphs.length;++g)i.graphs[g]=o.onnx.GraphProto.toObject(e.graphs[g],r);return e.docString!=null&&e.hasOwnProperty("docString")&&(i.docString=e.docString),e.type!=null&&e.hasOwnProperty("type")&&(i.type=r.enums===String?o.onnx.AttributeProto.AttributeType[e.type]:e.type),e.refAttrName!=null&&e.hasOwnProperty("refAttrName")&&(i.refAttrName=e.refAttrName),i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t.AttributeType=function(){var e={},r=Object.create(e);return r[e[0]="UNDEFINED"]=0,r[e[1]="FLOAT"]=1,r[e[2]="INT"]=2,r[e[3]="STRING"]=3,r[e[4]="TENSOR"]=4,r[e[5]="GRAPH"]=5,r[e[6]="FLOATS"]=6,r[e[7]="INTS"]=7,r[e[8]="STRINGS"]=8,r[e[9]="TENSORS"]=9,r[e[10]="GRAPHS"]=10,r}(),t}(),p.ValueInfoProto=function(){function t(e){if(e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.name="",t.prototype.type=null,t.prototype.docString="",t.create=function(e){return new t(e)},t.encode=function(e,r){return r||(r=f.create()),e.name!=null&&e.hasOwnProperty("name")&&r.uint32(10).string(e.name),e.type!=null&&e.hasOwnProperty("type")&&o.onnx.TypeProto.encode(e.type,r.uint32(18).fork()).ldelim(),e.docString!=null&&e.hasOwnProperty("docString")&&r.uint32(26).string(e.docString),r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.ValueInfoProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:c.name=e.string();break;case 2:c.type=o.onnx.TypeProto.decode(e,e.uint32());break;case 3:c.docString=e.string();break;default:e.skipType(7&g)}}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.name!=null&&e.hasOwnProperty("name")&&!a.isString(e.name))return"name: string expected";if(e.type!=null&&e.hasOwnProperty("type")){var r=o.onnx.TypeProto.verify(e.type);if(r)return"type."+r}return e.docString!=null&&e.hasOwnProperty("docString")&&!a.isString(e.docString)?"docString: string expected":null},t.fromObject=function(e){if(e instanceof o.onnx.ValueInfoProto)return e;var r=new o.onnx.ValueInfoProto;if(e.name!=null&&(r.name=String(e.name)),e.type!=null){if(typeof e.type!="object")throw TypeError(".onnx.ValueInfoProto.type: object expected");r.type=o.onnx.TypeProto.fromObject(e.type)}return e.docString!=null&&(r.docString=String(e.docString)),r},t.toObject=function(e,r){r||(r={});var i={};return r.defaults&&(i.name="",i.type=null,i.docString=""),e.name!=null&&e.hasOwnProperty("name")&&(i.name=e.name),e.type!=null&&e.hasOwnProperty("type")&&(i.type=o.onnx.TypeProto.toObject(e.type,r)),e.docString!=null&&e.hasOwnProperty("docString")&&(i.docString=e.docString),i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t}(),p.NodeProto=function(){function t(e){if(this.input=[],this.output=[],this.attribute=[],e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.input=a.emptyArray,t.prototype.output=a.emptyArray,t.prototype.name="",t.prototype.opType="",t.prototype.domain="",t.prototype.attribute=a.emptyArray,t.prototype.docString="",t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=f.create()),e.input!=null&&e.input.length)for(var i=0;i<e.input.length;++i)r.uint32(10).string(e.input[i]);if(e.output!=null&&e.output.length)for(i=0;i<e.output.length;++i)r.uint32(18).string(e.output[i]);if(e.name!=null&&e.hasOwnProperty("name")&&r.uint32(26).string(e.name),e.opType!=null&&e.hasOwnProperty("opType")&&r.uint32(34).string(e.opType),e.attribute!=null&&e.attribute.length)for(i=0;i<e.attribute.length;++i)o.onnx.AttributeProto.encode(e.attribute[i],r.uint32(42).fork()).ldelim();return e.docString!=null&&e.hasOwnProperty("docString")&&r.uint32(50).string(e.docString),e.domain!=null&&e.hasOwnProperty("domain")&&r.uint32(58).string(e.domain),r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.NodeProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:c.input&&c.input.length||(c.input=[]),c.input.push(e.string());break;case 2:c.output&&c.output.length||(c.output=[]),c.output.push(e.string());break;case 3:c.name=e.string();break;case 4:c.opType=e.string();break;case 7:c.domain=e.string();break;case 5:c.attribute&&c.attribute.length||(c.attribute=[]),c.attribute.push(o.onnx.AttributeProto.decode(e,e.uint32()));break;case 6:c.docString=e.string();break;default:e.skipType(7&g)}}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.input!=null&&e.hasOwnProperty("input")){if(!Array.isArray(e.input))return"input: array expected";for(var r=0;r<e.input.length;++r)if(!a.isString(e.input[r]))return"input: string[] expected"}if(e.output!=null&&e.hasOwnProperty("output")){if(!Array.isArray(e.output))return"output: array expected";for(r=0;r<e.output.length;++r)if(!a.isString(e.output[r]))return"output: string[] expected"}if(e.name!=null&&e.hasOwnProperty("name")&&!a.isString(e.name))return"name: string expected";if(e.opType!=null&&e.hasOwnProperty("opType")&&!a.isString(e.opType))return"opType: string expected";if(e.domain!=null&&e.hasOwnProperty("domain")&&!a.isString(e.domain))return"domain: string expected";if(e.attribute!=null&&e.hasOwnProperty("attribute")){if(!Array.isArray(e.attribute))return"attribute: array expected";for(r=0;r<e.attribute.length;++r){var i=o.onnx.AttributeProto.verify(e.attribute[r]);if(i)return"attribute."+i}}return e.docString!=null&&e.hasOwnProperty("docString")&&!a.isString(e.docString)?"docString: string expected":null},t.fromObject=function(e){if(e instanceof o.onnx.NodeProto)return e;var r=new o.onnx.NodeProto;if(e.input){if(!Array.isArray(e.input))throw TypeError(".onnx.NodeProto.input: array expected");r.input=[];for(var i=0;i<e.input.length;++i)r.input[i]=String(e.input[i])}if(e.output){if(!Array.isArray(e.output))throw TypeError(".onnx.NodeProto.output: array expected");for(r.output=[],i=0;i<e.output.length;++i)r.output[i]=String(e.output[i])}if(e.name!=null&&(r.name=String(e.name)),e.opType!=null&&(r.opType=String(e.opType)),e.domain!=null&&(r.domain=String(e.domain)),e.attribute){if(!Array.isArray(e.attribute))throw TypeError(".onnx.NodeProto.attribute: array expected");for(r.attribute=[],i=0;i<e.attribute.length;++i){if(typeof e.attribute[i]!="object")throw TypeError(".onnx.NodeProto.attribute: object expected");r.attribute[i]=o.onnx.AttributeProto.fromObject(e.attribute[i])}}return e.docString!=null&&(r.docString=String(e.docString)),r},t.toObject=function(e,r){r||(r={});var i={};if((r.arrays||r.defaults)&&(i.input=[],i.output=[],i.attribute=[]),r.defaults&&(i.name="",i.opType="",i.docString="",i.domain=""),e.input&&e.input.length){i.input=[];for(var c=0;c<e.input.length;++c)i.input[c]=e.input[c]}if(e.output&&e.output.length)for(i.output=[],c=0;c<e.output.length;++c)i.output[c]=e.output[c];if(e.name!=null&&e.hasOwnProperty("name")&&(i.name=e.name),e.opType!=null&&e.hasOwnProperty("opType")&&(i.opType=e.opType),e.attribute&&e.attribute.length)for(i.attribute=[],c=0;c<e.attribute.length;++c)i.attribute[c]=o.onnx.AttributeProto.toObject(e.attribute[c],r);return e.docString!=null&&e.hasOwnProperty("docString")&&(i.docString=e.docString),e.domain!=null&&e.hasOwnProperty("domain")&&(i.domain=e.domain),i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t}(),p.ModelProto=function(){function t(e){if(this.opsetImport=[],this.metadataProps=[],e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.irVersion=a.Long?a.Long.fromBits(0,0,!1):0,t.prototype.opsetImport=a.emptyArray,t.prototype.producerName="",t.prototype.producerVersion="",t.prototype.domain="",t.prototype.modelVersion=a.Long?a.Long.fromBits(0,0,!1):0,t.prototype.docString="",t.prototype.graph=null,t.prototype.metadataProps=a.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=f.create()),e.irVersion!=null&&e.hasOwnProperty("irVersion")&&r.uint32(8).int64(e.irVersion),e.producerName!=null&&e.hasOwnProperty("producerName")&&r.uint32(18).string(e.producerName),e.producerVersion!=null&&e.hasOwnProperty("producerVersion")&&r.uint32(26).string(e.producerVersion),e.domain!=null&&e.hasOwnProperty("domain")&&r.uint32(34).string(e.domain),e.modelVersion!=null&&e.hasOwnProperty("modelVersion")&&r.uint32(40).int64(e.modelVersion),e.docString!=null&&e.hasOwnProperty("docString")&&r.uint32(50).string(e.docString),e.graph!=null&&e.hasOwnProperty("graph")&&o.onnx.GraphProto.encode(e.graph,r.uint32(58).fork()).ldelim(),e.opsetImport!=null&&e.opsetImport.length)for(var i=0;i<e.opsetImport.length;++i)o.onnx.OperatorSetIdProto.encode(e.opsetImport[i],r.uint32(66).fork()).ldelim();if(e.metadataProps!=null&&e.metadataProps.length)for(i=0;i<e.metadataProps.length;++i)o.onnx.StringStringEntryProto.encode(e.metadataProps[i],r.uint32(114).fork()).ldelim();return r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.ModelProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:c.irVersion=e.int64();break;case 8:c.opsetImport&&c.opsetImport.length||(c.opsetImport=[]),c.opsetImport.push(o.onnx.OperatorSetIdProto.decode(e,e.uint32()));break;case 2:c.producerName=e.string();break;case 3:c.producerVersion=e.string();break;case 4:c.domain=e.string();break;case 5:c.modelVersion=e.int64();break;case 6:c.docString=e.string();break;case 7:c.graph=o.onnx.GraphProto.decode(e,e.uint32());break;case 14:c.metadataProps&&c.metadataProps.length||(c.metadataProps=[]),c.metadataProps.push(o.onnx.StringStringEntryProto.decode(e,e.uint32()));break;default:e.skipType(7&g)}}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.irVersion!=null&&e.hasOwnProperty("irVersion")&&!(a.isInteger(e.irVersion)||e.irVersion&&a.isInteger(e.irVersion.low)&&a.isInteger(e.irVersion.high)))return"irVersion: integer|Long expected";if(e.opsetImport!=null&&e.hasOwnProperty("opsetImport")){if(!Array.isArray(e.opsetImport))return"opsetImport: array expected";for(var r=0;r<e.opsetImport.length;++r)if(i=o.onnx.OperatorSetIdProto.verify(e.opsetImport[r]))return"opsetImport."+i}if(e.producerName!=null&&e.hasOwnProperty("producerName")&&!a.isString(e.producerName))return"producerName: string expected";if(e.producerVersion!=null&&e.hasOwnProperty("producerVersion")&&!a.isString(e.producerVersion))return"producerVersion: string expected";if(e.domain!=null&&e.hasOwnProperty("domain")&&!a.isString(e.domain))return"domain: string expected";if(e.modelVersion!=null&&e.hasOwnProperty("modelVersion")&&!(a.isInteger(e.modelVersion)||e.modelVersion&&a.isInteger(e.modelVersion.low)&&a.isInteger(e.modelVersion.high)))return"modelVersion: integer|Long expected";if(e.docString!=null&&e.hasOwnProperty("docString")&&!a.isString(e.docString))return"docString: string expected";if(e.graph!=null&&e.hasOwnProperty("graph")&&(i=o.onnx.GraphProto.verify(e.graph)))return"graph."+i;if(e.metadataProps!=null&&e.hasOwnProperty("metadataProps")){if(!Array.isArray(e.metadataProps))return"metadataProps: array expected";for(r=0;r<e.metadataProps.length;++r){var i;if(i=o.onnx.StringStringEntryProto.verify(e.metadataProps[r]))return"metadataProps."+i}}return null},t.fromObject=function(e){if(e instanceof o.onnx.ModelProto)return e;var r=new o.onnx.ModelProto;if(e.irVersion!=null&&(a.Long?(r.irVersion=a.Long.fromValue(e.irVersion)).unsigned=!1:typeof e.irVersion=="string"?r.irVersion=parseInt(e.irVersion,10):typeof e.irVersion=="number"?r.irVersion=e.irVersion:typeof e.irVersion=="object"&&(r.irVersion=new a.LongBits(e.irVersion.low>>>0,e.irVersion.high>>>0).toNumber())),e.opsetImport){if(!Array.isArray(e.opsetImport))throw TypeError(".onnx.ModelProto.opsetImport: array expected");r.opsetImport=[];for(var i=0;i<e.opsetImport.length;++i){if(typeof e.opsetImport[i]!="object")throw TypeError(".onnx.ModelProto.opsetImport: object expected");r.opsetImport[i]=o.onnx.OperatorSetIdProto.fromObject(e.opsetImport[i])}}if(e.producerName!=null&&(r.producerName=String(e.producerName)),e.producerVersion!=null&&(r.producerVersion=String(e.producerVersion)),e.domain!=null&&(r.domain=String(e.domain)),e.modelVersion!=null&&(a.Long?(r.modelVersion=a.Long.fromValue(e.modelVersion)).unsigned=!1:typeof e.modelVersion=="string"?r.modelVersion=parseInt(e.modelVersion,10):typeof e.modelVersion=="number"?r.modelVersion=e.modelVersion:typeof e.modelVersion=="object"&&(r.modelVersion=new a.LongBits(e.modelVersion.low>>>0,e.modelVersion.high>>>0).toNumber())),e.docString!=null&&(r.docString=String(e.docString)),e.graph!=null){if(typeof e.graph!="object")throw TypeError(".onnx.ModelProto.graph: object expected");r.graph=o.onnx.GraphProto.fromObject(e.graph)}if(e.metadataProps){if(!Array.isArray(e.metadataProps))throw TypeError(".onnx.ModelProto.metadataProps: array expected");for(r.metadataProps=[],i=0;i<e.metadataProps.length;++i){if(typeof e.metadataProps[i]!="object")throw TypeError(".onnx.ModelProto.metadataProps: object expected");r.metadataProps[i]=o.onnx.StringStringEntryProto.fromObject(e.metadataProps[i])}}return r},t.toObject=function(e,r){r||(r={});var i={};if((r.arrays||r.defaults)&&(i.opsetImport=[],i.metadataProps=[]),r.defaults){if(a.Long){var c=new a.Long(0,0,!1);i.irVersion=r.longs===String?c.toString():r.longs===Number?c.toNumber():c}else i.irVersion=r.longs===String?"0":0;i.producerName="",i.producerVersion="",i.domain="",a.Long?(c=new a.Long(0,0,!1),i.modelVersion=r.longs===String?c.toString():r.longs===Number?c.toNumber():c):i.modelVersion=r.longs===String?"0":0,i.docString="",i.graph=null}if(e.irVersion!=null&&e.hasOwnProperty("irVersion")&&(typeof e.irVersion=="number"?i.irVersion=r.longs===String?String(e.irVersion):e.irVersion:i.irVersion=r.longs===String?a.Long.prototype.toString.call(e.irVersion):r.longs===Number?new a.LongBits(e.irVersion.low>>>0,e.irVersion.high>>>0).toNumber():e.irVersion),e.producerName!=null&&e.hasOwnProperty("producerName")&&(i.producerName=e.producerName),e.producerVersion!=null&&e.hasOwnProperty("producerVersion")&&(i.producerVersion=e.producerVersion),e.domain!=null&&e.hasOwnProperty("domain")&&(i.domain=e.domain),e.modelVersion!=null&&e.hasOwnProperty("modelVersion")&&(typeof e.modelVersion=="number"?i.modelVersion=r.longs===String?String(e.modelVersion):e.modelVersion:i.modelVersion=r.longs===String?a.Long.prototype.toString.call(e.modelVersion):r.longs===Number?new a.LongBits(e.modelVersion.low>>>0,e.modelVersion.high>>>0).toNumber():e.modelVersion),e.docString!=null&&e.hasOwnProperty("docString")&&(i.docString=e.docString),e.graph!=null&&e.hasOwnProperty("graph")&&(i.graph=o.onnx.GraphProto.toObject(e.graph,r)),e.opsetImport&&e.opsetImport.length){i.opsetImport=[];for(var g=0;g<e.opsetImport.length;++g)i.opsetImport[g]=o.onnx.OperatorSetIdProto.toObject(e.opsetImport[g],r)}if(e.metadataProps&&e.metadataProps.length)for(i.metadataProps=[],g=0;g<e.metadataProps.length;++g)i.metadataProps[g]=o.onnx.StringStringEntryProto.toObject(e.metadataProps[g],r);return i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t}(),p.StringStringEntryProto=function(){function t(e){if(e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.key="",t.prototype.value="",t.create=function(e){return new t(e)},t.encode=function(e,r){return r||(r=f.create()),e.key!=null&&e.hasOwnProperty("key")&&r.uint32(10).string(e.key),e.value!=null&&e.hasOwnProperty("value")&&r.uint32(18).string(e.value),r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.StringStringEntryProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:c.key=e.string();break;case 2:c.value=e.string();break;default:e.skipType(7&g)}}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){return typeof e!="object"||e===null?"object expected":e.key!=null&&e.hasOwnProperty("key")&&!a.isString(e.key)?"key: string expected":e.value!=null&&e.hasOwnProperty("value")&&!a.isString(e.value)?"value: string expected":null},t.fromObject=function(e){if(e instanceof o.onnx.StringStringEntryProto)return e;var r=new o.onnx.StringStringEntryProto;return e.key!=null&&(r.key=String(e.key)),e.value!=null&&(r.value=String(e.value)),r},t.toObject=function(e,r){r||(r={});var i={};return r.defaults&&(i.key="",i.value=""),e.key!=null&&e.hasOwnProperty("key")&&(i.key=e.key),e.value!=null&&e.hasOwnProperty("value")&&(i.value=e.value),i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t}(),p.TensorAnnotation=function(){function t(e){if(this.quantParameterTensorNames=[],e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.tensorName="",t.prototype.quantParameterTensorNames=a.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=f.create()),e.tensorName!=null&&e.hasOwnProperty("tensorName")&&r.uint32(10).string(e.tensorName),e.quantParameterTensorNames!=null&&e.quantParameterTensorNames.length)for(var i=0;i<e.quantParameterTensorNames.length;++i)o.onnx.StringStringEntryProto.encode(e.quantParameterTensorNames[i],r.uint32(18).fork()).ldelim();return r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.TensorAnnotation;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:c.tensorName=e.string();break;case 2:c.quantParameterTensorNames&&c.quantParameterTensorNames.length||(c.quantParameterTensorNames=[]),c.quantParameterTensorNames.push(o.onnx.StringStringEntryProto.decode(e,e.uint32()));break;default:e.skipType(7&g)}}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.tensorName!=null&&e.hasOwnProperty("tensorName")&&!a.isString(e.tensorName))return"tensorName: string expected";if(e.quantParameterTensorNames!=null&&e.hasOwnProperty("quantParameterTensorNames")){if(!Array.isArray(e.quantParameterTensorNames))return"quantParameterTensorNames: array expected";for(var r=0;r<e.quantParameterTensorNames.length;++r){var i=o.onnx.StringStringEntryProto.verify(e.quantParameterTensorNames[r]);if(i)return"quantParameterTensorNames."+i}}return null},t.fromObject=function(e){if(e instanceof o.onnx.TensorAnnotation)return e;var r=new o.onnx.TensorAnnotation;if(e.tensorName!=null&&(r.tensorName=String(e.tensorName)),e.quantParameterTensorNames){if(!Array.isArray(e.quantParameterTensorNames))throw TypeError(".onnx.TensorAnnotation.quantParameterTensorNames: array expected");r.quantParameterTensorNames=[];for(var i=0;i<e.quantParameterTensorNames.length;++i){if(typeof e.quantParameterTensorNames[i]!="object")throw TypeError(".onnx.TensorAnnotation.quantParameterTensorNames: object expected");r.quantParameterTensorNames[i]=o.onnx.StringStringEntryProto.fromObject(e.quantParameterTensorNames[i])}}return r},t.toObject=function(e,r){r||(r={});var i={};if((r.arrays||r.defaults)&&(i.quantParameterTensorNames=[]),r.defaults&&(i.tensorName=""),e.tensorName!=null&&e.hasOwnProperty("tensorName")&&(i.tensorName=e.tensorName),e.quantParameterTensorNames&&e.quantParameterTensorNames.length){i.quantParameterTensorNames=[];for(var c=0;c<e.quantParameterTensorNames.length;++c)i.quantParameterTensorNames[c]=o.onnx.StringStringEntryProto.toObject(e.quantParameterTensorNames[c],r)}return i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t}(),p.GraphProto=function(){function t(e){if(this.node=[],this.initializer=[],this.input=[],this.output=[],this.valueInfo=[],this.quantizationAnnotation=[],e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.node=a.emptyArray,t.prototype.name="",t.prototype.initializer=a.emptyArray,t.prototype.docString="",t.prototype.input=a.emptyArray,t.prototype.output=a.emptyArray,t.prototype.valueInfo=a.emptyArray,t.prototype.quantizationAnnotation=a.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=f.create()),e.node!=null&&e.node.length)for(var i=0;i<e.node.length;++i)o.onnx.NodeProto.encode(e.node[i],r.uint32(10).fork()).ldelim();if(e.name!=null&&e.hasOwnProperty("name")&&r.uint32(18).string(e.name),e.initializer!=null&&e.initializer.length)for(i=0;i<e.initializer.length;++i)o.onnx.TensorProto.encode(e.initializer[i],r.uint32(42).fork()).ldelim();if(e.docString!=null&&e.hasOwnProperty("docString")&&r.uint32(82).string(e.docString),e.input!=null&&e.input.length)for(i=0;i<e.input.length;++i)o.onnx.ValueInfoProto.encode(e.input[i],r.uint32(90).fork()).ldelim();if(e.output!=null&&e.output.length)for(i=0;i<e.output.length;++i)o.onnx.ValueInfoProto.encode(e.output[i],r.uint32(98).fork()).ldelim();if(e.valueInfo!=null&&e.valueInfo.length)for(i=0;i<e.valueInfo.length;++i)o.onnx.ValueInfoProto.encode(e.valueInfo[i],r.uint32(106).fork()).ldelim();if(e.quantizationAnnotation!=null&&e.quantizationAnnotation.length)for(i=0;i<e.quantizationAnnotation.length;++i)o.onnx.TensorAnnotation.encode(e.quantizationAnnotation[i],r.uint32(114).fork()).ldelim();return r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.GraphProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:c.node&&c.node.length||(c.node=[]),c.node.push(o.onnx.NodeProto.decode(e,e.uint32()));break;case 2:c.name=e.string();break;case 5:c.initializer&&c.initializer.length||(c.initializer=[]),c.initializer.push(o.onnx.TensorProto.decode(e,e.uint32()));break;case 10:c.docString=e.string();break;case 11:c.input&&c.input.length||(c.input=[]),c.input.push(o.onnx.ValueInfoProto.decode(e,e.uint32()));break;case 12:c.output&&c.output.length||(c.output=[]),c.output.push(o.onnx.ValueInfoProto.decode(e,e.uint32()));break;case 13:c.valueInfo&&c.valueInfo.length||(c.valueInfo=[]),c.valueInfo.push(o.onnx.ValueInfoProto.decode(e,e.uint32()));break;case 14:c.quantizationAnnotation&&c.quantizationAnnotation.length||(c.quantizationAnnotation=[]),c.quantizationAnnotation.push(o.onnx.TensorAnnotation.decode(e,e.uint32()));break;default:e.skipType(7&g)}}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.node!=null&&e.hasOwnProperty("node")){if(!Array.isArray(e.node))return"node: array expected";for(var r=0;r<e.node.length;++r)if(i=o.onnx.NodeProto.verify(e.node[r]))return"node."+i}if(e.name!=null&&e.hasOwnProperty("name")&&!a.isString(e.name))return"name: string expected";if(e.initializer!=null&&e.hasOwnProperty("initializer")){if(!Array.isArray(e.initializer))return"initializer: array expected";for(r=0;r<e.initializer.length;++r)if(i=o.onnx.TensorProto.verify(e.initializer[r]))return"initializer."+i}if(e.docString!=null&&e.hasOwnProperty("docString")&&!a.isString(e.docString))return"docString: string expected";if(e.input!=null&&e.hasOwnProperty("input")){if(!Array.isArray(e.input))return"input: array expected";for(r=0;r<e.input.length;++r)if(i=o.onnx.ValueInfoProto.verify(e.input[r]))return"input."+i}if(e.output!=null&&e.hasOwnProperty("output")){if(!Array.isArray(e.output))return"output: array expected";for(r=0;r<e.output.length;++r)if(i=o.onnx.ValueInfoProto.verify(e.output[r]))return"output."+i}if(e.valueInfo!=null&&e.hasOwnProperty("valueInfo")){if(!Array.isArray(e.valueInfo))return"valueInfo: array expected";for(r=0;r<e.valueInfo.length;++r)if(i=o.onnx.ValueInfoProto.verify(e.valueInfo[r]))return"valueInfo."+i}if(e.quantizationAnnotation!=null&&e.hasOwnProperty("quantizationAnnotation")){if(!Array.isArray(e.quantizationAnnotation))return"quantizationAnnotation: array expected";for(r=0;r<e.quantizationAnnotation.length;++r){var i;if(i=o.onnx.TensorAnnotation.verify(e.quantizationAnnotation[r]))return"quantizationAnnotation."+i}}return null},t.fromObject=function(e){if(e instanceof o.onnx.GraphProto)return e;var r=new o.onnx.GraphProto;if(e.node){if(!Array.isArray(e.node))throw TypeError(".onnx.GraphProto.node: array expected");r.node=[];for(var i=0;i<e.node.length;++i){if(typeof e.node[i]!="object")throw TypeError(".onnx.GraphProto.node: object expected");r.node[i]=o.onnx.NodeProto.fromObject(e.node[i])}}if(e.name!=null&&(r.name=String(e.name)),e.initializer){if(!Array.isArray(e.initializer))throw TypeError(".onnx.GraphProto.initializer: array expected");for(r.initializer=[],i=0;i<e.initializer.length;++i){if(typeof e.initializer[i]!="object")throw TypeError(".onnx.GraphProto.initializer: object expected");r.initializer[i]=o.onnx.TensorProto.fromObject(e.initializer[i])}}if(e.docString!=null&&(r.docString=String(e.docString)),e.input){if(!Array.isArray(e.input))throw TypeError(".onnx.GraphProto.input: array expected");for(r.input=[],i=0;i<e.input.length;++i){if(typeof e.input[i]!="object")throw TypeError(".onnx.GraphProto.input: object expected");r.input[i]=o.onnx.ValueInfoProto.fromObject(e.input[i])}}if(e.output){if(!Array.isArray(e.output))throw TypeError(".onnx.GraphProto.output: array expected");for(r.output=[],i=0;i<e.output.length;++i){if(typeof e.output[i]!="object")throw TypeError(".onnx.GraphProto.output: object expected");r.output[i]=o.onnx.ValueInfoProto.fromObject(e.output[i])}}if(e.valueInfo){if(!Array.isArray(e.valueInfo))throw TypeError(".onnx.GraphProto.valueInfo: array expected");for(r.valueInfo=[],i=0;i<e.valueInfo.length;++i){if(typeof e.valueInfo[i]!="object")throw TypeError(".onnx.GraphProto.valueInfo: object expected");r.valueInfo[i]=o.onnx.ValueInfoProto.fromObject(e.valueInfo[i])}}if(e.quantizationAnnotation){if(!Array.isArray(e.quantizationAnnotation))throw TypeError(".onnx.GraphProto.quantizationAnnotation: array expected");for(r.quantizationAnnotation=[],i=0;i<e.quantizationAnnotation.length;++i){if(typeof e.quantizationAnnotation[i]!="object")throw TypeError(".onnx.GraphProto.quantizationAnnotation: object expected");r.quantizationAnnotation[i]=o.onnx.TensorAnnotation.fromObject(e.quantizationAnnotation[i])}}return r},t.toObject=function(e,r){r||(r={});var i={};if((r.arrays||r.defaults)&&(i.node=[],i.initializer=[],i.input=[],i.output=[],i.valueInfo=[],i.quantizationAnnotation=[]),r.defaults&&(i.name="",i.docString=""),e.node&&e.node.length){i.node=[];for(var c=0;c<e.node.length;++c)i.node[c]=o.onnx.NodeProto.toObject(e.node[c],r)}if(e.name!=null&&e.hasOwnProperty("name")&&(i.name=e.name),e.initializer&&e.initializer.length)for(i.initializer=[],c=0;c<e.initializer.length;++c)i.initializer[c]=o.onnx.TensorProto.toObject(e.initializer[c],r);if(e.docString!=null&&e.hasOwnProperty("docString")&&(i.docString=e.docString),e.input&&e.input.length)for(i.input=[],c=0;c<e.input.length;++c)i.input[c]=o.onnx.ValueInfoProto.toObject(e.input[c],r);if(e.output&&e.output.length)for(i.output=[],c=0;c<e.output.length;++c)i.output[c]=o.onnx.ValueInfoProto.toObject(e.output[c],r);if(e.valueInfo&&e.valueInfo.length)for(i.valueInfo=[],c=0;c<e.valueInfo.length;++c)i.valueInfo[c]=o.onnx.ValueInfoProto.toObject(e.valueInfo[c],r);if(e.quantizationAnnotation&&e.quantizationAnnotation.length)for(i.quantizationAnnotation=[],c=0;c<e.quantizationAnnotation.length;++c)i.quantizationAnnotation[c]=o.onnx.TensorAnnotation.toObject(e.quantizationAnnotation[c],r);return i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t}(),p.TensorProto=function(){function t(e){if(this.dims=[],this.floatData=[],this.int32Data=[],this.stringData=[],this.int64Data=[],this.externalData=[],this.doubleData=[],this.uint64Data=[],e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.dims=a.emptyArray,t.prototype.dataType=0,t.prototype.segment=null,t.prototype.floatData=a.emptyArray,t.prototype.int32Data=a.emptyArray,t.prototype.stringData=a.emptyArray,t.prototype.int64Data=a.emptyArray,t.prototype.name="",t.prototype.docString="",t.prototype.rawData=a.newBuffer([]),t.prototype.externalData=a.emptyArray,t.prototype.dataLocation=0,t.prototype.doubleData=a.emptyArray,t.prototype.uint64Data=a.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=f.create()),e.dims!=null&&e.dims.length){r.uint32(10).fork();for(var i=0;i<e.dims.length;++i)r.int64(e.dims[i]);r.ldelim()}if(e.dataType!=null&&e.hasOwnProperty("dataType")&&r.uint32(16).int32(e.dataType),e.segment!=null&&e.hasOwnProperty("segment")&&o.onnx.TensorProto.Segment.encode(e.segment,r.uint32(26).fork()).ldelim(),e.floatData!=null&&e.floatData.length){for(r.uint32(34).fork(),i=0;i<e.floatData.length;++i)r.float(e.floatData[i]);r.ldelim()}if(e.int32Data!=null&&e.int32Data.length){for(r.uint32(42).fork(),i=0;i<e.int32Data.length;++i)r.int32(e.int32Data[i]);r.ldelim()}if(e.stringData!=null&&e.stringData.length)for(i=0;i<e.stringData.length;++i)r.uint32(50).bytes(e.stringData[i]);if(e.int64Data!=null&&e.int64Data.length){for(r.uint32(58).fork(),i=0;i<e.int64Data.length;++i)r.int64(e.int64Data[i]);r.ldelim()}if(e.name!=null&&e.hasOwnProperty("name")&&r.uint32(66).string(e.name),e.rawData!=null&&e.hasOwnProperty("rawData")&&r.uint32(74).bytes(e.rawData),e.doubleData!=null&&e.doubleData.length){for(r.uint32(82).fork(),i=0;i<e.doubleData.length;++i)r.double(e.doubleData[i]);r.ldelim()}if(e.uint64Data!=null&&e.uint64Data.length){for(r.uint32(90).fork(),i=0;i<e.uint64Data.length;++i)r.uint64(e.uint64Data[i]);r.ldelim()}if(e.docString!=null&&e.hasOwnProperty("docString")&&r.uint32(98).string(e.docString),e.externalData!=null&&e.externalData.length)for(i=0;i<e.externalData.length;++i)o.onnx.StringStringEntryProto.encode(e.externalData[i],r.uint32(106).fork()).ldelim();return e.dataLocation!=null&&e.hasOwnProperty("dataLocation")&&r.uint32(112).int32(e.dataLocation),r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.TensorProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:if(c.dims&&c.dims.length||(c.dims=[]),(7&g)==2)for(var m=e.uint32()+e.pos;e.pos<m;)c.dims.push(e.int64());else c.dims.push(e.int64());break;case 2:c.dataType=e.int32();break;case 3:c.segment=o.onnx.TensorProto.Segment.decode(e,e.uint32());break;case 4:if(c.floatData&&c.floatData.length||(c.floatData=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)c.floatData.push(e.float());else c.floatData.push(e.float());break;case 5:if(c.int32Data&&c.int32Data.length||(c.int32Data=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)c.int32Data.push(e.int32());else c.int32Data.push(e.int32());break;case 6:c.stringData&&c.stringData.length||(c.stringData=[]),c.stringData.push(e.bytes());break;case 7:if(c.int64Data&&c.int64Data.length||(c.int64Data=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)c.int64Data.push(e.int64());else c.int64Data.push(e.int64());break;case 8:c.name=e.string();break;case 12:c.docString=e.string();break;case 9:c.rawData=e.bytes();break;case 13:c.externalData&&c.externalData.length||(c.externalData=[]),c.externalData.push(o.onnx.StringStringEntryProto.decode(e,e.uint32()));break;case 14:c.dataLocation=e.int32();break;case 10:if(c.doubleData&&c.doubleData.length||(c.doubleData=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)c.doubleData.push(e.double());else c.doubleData.push(e.double());break;case 11:if(c.uint64Data&&c.uint64Data.length||(c.uint64Data=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)c.uint64Data.push(e.uint64());else c.uint64Data.push(e.uint64());break;default:e.skipType(7&g)}}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.dims!=null&&e.hasOwnProperty("dims")){if(!Array.isArray(e.dims))return"dims: array expected";for(var r=0;r<e.dims.length;++r)if(!(a.isInteger(e.dims[r])||e.dims[r]&&a.isInteger(e.dims[r].low)&&a.isInteger(e.dims[r].high)))return"dims: integer|Long[] expected"}if(e.dataType!=null&&e.hasOwnProperty("dataType")&&!a.isInteger(e.dataType))return"dataType: integer expected";if(e.segment!=null&&e.hasOwnProperty("segment")&&(i=o.onnx.TensorProto.Segment.verify(e.segment)))return"segment."+i;if(e.floatData!=null&&e.hasOwnProperty("floatData")){if(!Array.isArray(e.floatData))return"floatData: array expected";for(r=0;r<e.floatData.length;++r)if(typeof e.floatData[r]!="number")return"floatData: number[] expected"}if(e.int32Data!=null&&e.hasOwnProperty("int32Data")){if(!Array.isArray(e.int32Data))return"int32Data: array expected";for(r=0;r<e.int32Data.length;++r)if(!a.isInteger(e.int32Data[r]))return"int32Data: integer[] expected"}if(e.stringData!=null&&e.hasOwnProperty("stringData")){if(!Array.isArray(e.stringData))return"stringData: array expected";for(r=0;r<e.stringData.length;++r)if(!(e.stringData[r]&&typeof e.stringData[r].length=="number"||a.isString(e.stringData[r])))return"stringData: buffer[] expected"}if(e.int64Data!=null&&e.hasOwnProperty("int64Data")){if(!Array.isArray(e.int64Data))return"int64Data: array expected";for(r=0;r<e.int64Data.length;++r)if(!(a.isInteger(e.int64Data[r])||e.int64Data[r]&&a.isInteger(e.int64Data[r].low)&&a.isInteger(e.int64Data[r].high)))return"int64Data: integer|Long[] expected"}if(e.name!=null&&e.hasOwnProperty("name")&&!a.isString(e.name))return"name: string expected";if(e.docString!=null&&e.hasOwnProperty("docString")&&!a.isString(e.docString))return"docString: string expected";if(e.rawData!=null&&e.hasOwnProperty("rawData")&&!(e.rawData&&typeof e.rawData.length=="number"||a.isString(e.rawData)))return"rawData: buffer expected";if(e.externalData!=null&&e.hasOwnProperty("externalData")){if(!Array.isArray(e.externalData))return"externalData: array expected";for(r=0;r<e.externalData.length;++r){var i;if(i=o.onnx.StringStringEntryProto.verify(e.externalData[r]))return"externalData."+i}}if(e.dataLocation!=null&&e.hasOwnProperty("dataLocation"))switch(e.dataLocation){default:return"dataLocation: enum value expected";case 0:case 1:}if(e.doubleData!=null&&e.hasOwnProperty("doubleData")){if(!Array.isArray(e.doubleData))return"doubleData: array expected";for(r=0;r<e.doubleData.length;++r)if(typeof e.doubleData[r]!="number")return"doubleData: number[] expected"}if(e.uint64Data!=null&&e.hasOwnProperty("uint64Data")){if(!Array.isArray(e.uint64Data))return"uint64Data: array expected";for(r=0;r<e.uint64Data.length;++r)if(!(a.isInteger(e.uint64Data[r])||e.uint64Data[r]&&a.isInteger(e.uint64Data[r].low)&&a.isInteger(e.uint64Data[r].high)))return"uint64Data: integer|Long[] expected"}return null},t.fromObject=function(e){if(e instanceof o.onnx.TensorProto)return e;var r=new o.onnx.TensorProto;if(e.dims){if(!Array.isArray(e.dims))throw TypeError(".onnx.TensorProto.dims: array expected");r.dims=[];for(var i=0;i<e.dims.length;++i)a.Long?(r.dims[i]=a.Long.fromValue(e.dims[i])).unsigned=!1:typeof e.dims[i]=="string"?r.dims[i]=parseInt(e.dims[i],10):typeof e.dims[i]=="number"?r.dims[i]=e.dims[i]:typeof e.dims[i]=="object"&&(r.dims[i]=new a.LongBits(e.dims[i].low>>>0,e.dims[i].high>>>0).toNumber())}if(e.dataType!=null&&(r.dataType=0|e.dataType),e.segment!=null){if(typeof e.segment!="object")throw TypeError(".onnx.TensorProto.segment: object expected");r.segment=o.onnx.TensorProto.Segment.fromObject(e.segment)}if(e.floatData){if(!Array.isArray(e.floatData))throw TypeError(".onnx.TensorProto.floatData: array expected");for(r.floatData=[],i=0;i<e.floatData.length;++i)r.floatData[i]=Number(e.floatData[i])}if(e.int32Data){if(!Array.isArray(e.int32Data))throw TypeError(".onnx.TensorProto.int32Data: array expected");for(r.int32Data=[],i=0;i<e.int32Data.length;++i)r.int32Data[i]=0|e.int32Data[i]}if(e.stringData){if(!Array.isArray(e.stringData))throw TypeError(".onnx.TensorProto.stringData: array expected");for(r.stringData=[],i=0;i<e.stringData.length;++i)typeof e.stringData[i]=="string"?a.base64.decode(e.stringData[i],r.stringData[i]=a.newBuffer(a.base64.length(e.stringData[i])),0):e.stringData[i].length&&(r.stringData[i]=e.stringData[i])}if(e.int64Data){if(!Array.isArray(e.int64Data))throw TypeError(".onnx.TensorProto.int64Data: array expected");for(r.int64Data=[],i=0;i<e.int64Data.length;++i)a.Long?(r.int64Data[i]=a.Long.fromValue(e.int64Data[i])).unsigned=!1:typeof e.int64Data[i]=="string"?r.int64Data[i]=parseInt(e.int64Data[i],10):typeof e.int64Data[i]=="number"?r.int64Data[i]=e.int64Data[i]:typeof e.int64Data[i]=="object"&&(r.int64Data[i]=new a.LongBits(e.int64Data[i].low>>>0,e.int64Data[i].high>>>0).toNumber())}if(e.name!=null&&(r.name=String(e.name)),e.docString!=null&&(r.docString=String(e.docString)),e.rawData!=null&&(typeof e.rawData=="string"?a.base64.decode(e.rawData,r.rawData=a.newBuffer(a.base64.length(e.rawData)),0):e.rawData.length&&(r.rawData=e.rawData)),e.externalData){if(!Array.isArray(e.externalData))throw TypeError(".onnx.TensorProto.externalData: array expected");for(r.externalData=[],i=0;i<e.externalData.length;++i){if(typeof e.externalData[i]!="object")throw TypeError(".onnx.TensorProto.externalData: object expected");r.externalData[i]=o.onnx.StringStringEntryProto.fromObject(e.externalData[i])}}switch(e.dataLocation){case"DEFAULT":case 0:r.dataLocation=0;break;case"EXTERNAL":case 1:r.dataLocation=1}if(e.doubleData){if(!Array.isArray(e.doubleData))throw TypeError(".onnx.TensorProto.doubleData: array expected");for(r.doubleData=[],i=0;i<e.doubleData.length;++i)r.doubleData[i]=Number(e.doubleData[i])}if(e.uint64Data){if(!Array.isArray(e.uint64Data))throw TypeError(".onnx.TensorProto.uint64Data: array expected");for(r.uint64Data=[],i=0;i<e.uint64Data.length;++i)a.Long?(r.uint64Data[i]=a.Long.fromValue(e.uint64Data[i])).unsigned=!0:typeof e.uint64Data[i]=="string"?r.uint64Data[i]=parseInt(e.uint64Data[i],10):typeof e.uint64Data[i]=="number"?r.uint64Data[i]=e.uint64Data[i]:typeof e.uint64Data[i]=="object"&&(r.uint64Data[i]=new a.LongBits(e.uint64Data[i].low>>>0,e.uint64Data[i].high>>>0).toNumber(!0))}return r},t.toObject=function(e,r){r||(r={});var i={};if((r.arrays||r.defaults)&&(i.dims=[],i.floatData=[],i.int32Data=[],i.stringData=[],i.int64Data=[],i.doubleData=[],i.uint64Data=[],i.externalData=[]),r.defaults&&(i.dataType=0,i.segment=null,i.name="",r.bytes===String?i.rawData="":(i.rawData=[],r.bytes!==Array&&(i.rawData=a.newBuffer(i.rawData))),i.docString="",i.dataLocation=r.enums===String?"DEFAULT":0),e.dims&&e.dims.length){i.dims=[];for(var c=0;c<e.dims.length;++c)typeof e.dims[c]=="number"?i.dims[c]=r.longs===String?String(e.dims[c]):e.dims[c]:i.dims[c]=r.longs===String?a.Long.prototype.toString.call(e.dims[c]):r.longs===Number?new a.LongBits(e.dims[c].low>>>0,e.dims[c].high>>>0).toNumber():e.dims[c]}if(e.dataType!=null&&e.hasOwnProperty("dataType")&&(i.dataType=e.dataType),e.segment!=null&&e.hasOwnProperty("segment")&&(i.segment=o.onnx.TensorProto.Segment.toObject(e.segment,r)),e.floatData&&e.floatData.length)for(i.floatData=[],c=0;c<e.floatData.length;++c)i.floatData[c]=r.json&&!isFinite(e.floatData[c])?String(e.floatData[c]):e.floatData[c];if(e.int32Data&&e.int32Data.length)for(i.int32Data=[],c=0;c<e.int32Data.length;++c)i.int32Data[c]=e.int32Data[c];if(e.stringData&&e.stringData.length)for(i.stringData=[],c=0;c<e.stringData.length;++c)i.stringData[c]=r.bytes===String?a.base64.encode(e.stringData[c],0,e.stringData[c].length):r.bytes===Array?Array.prototype.slice.call(e.stringData[c]):e.stringData[c];if(e.int64Data&&e.int64Data.length)for(i.int64Data=[],c=0;c<e.int64Data.length;++c)typeof e.int64Data[c]=="number"?i.int64Data[c]=r.longs===String?String(e.int64Data[c]):e.int64Data[c]:i.int64Data[c]=r.longs===String?a.Long.prototype.toString.call(e.int64Data[c]):r.longs===Number?new a.LongBits(e.int64Data[c].low>>>0,e.int64Data[c].high>>>0).toNumber():e.int64Data[c];if(e.name!=null&&e.hasOwnProperty("name")&&(i.name=e.name),e.rawData!=null&&e.hasOwnProperty("rawData")&&(i.rawData=r.bytes===String?a.base64.encode(e.rawData,0,e.rawData.length):r.bytes===Array?Array.prototype.slice.call(e.rawData):e.rawData),e.doubleData&&e.doubleData.length)for(i.doubleData=[],c=0;c<e.doubleData.length;++c)i.doubleData[c]=r.json&&!isFinite(e.doubleData[c])?String(e.doubleData[c]):e.doubleData[c];if(e.uint64Data&&e.uint64Data.length)for(i.uint64Data=[],c=0;c<e.uint64Data.length;++c)typeof e.uint64Data[c]=="number"?i.uint64Data[c]=r.longs===String?String(e.uint64Data[c]):e.uint64Data[c]:i.uint64Data[c]=r.longs===String?a.Long.prototype.toString.call(e.uint64Data[c]):r.longs===Number?new a.LongBits(e.uint64Data[c].low>>>0,e.uint64Data[c].high>>>0).toNumber(!0):e.uint64Data[c];if(e.docString!=null&&e.hasOwnProperty("docString")&&(i.docString=e.docString),e.externalData&&e.externalData.length)for(i.externalData=[],c=0;c<e.externalData.length;++c)i.externalData[c]=o.onnx.StringStringEntryProto.toObject(e.externalData[c],r);return e.dataLocation!=null&&e.hasOwnProperty("dataLocation")&&(i.dataLocation=r.enums===String?o.onnx.TensorProto.DataLocation[e.dataLocation]:e.dataLocation),i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t.DataType=function(){var e={},r=Object.create(e);return r[e[0]="UNDEFINED"]=0,r[e[1]="FLOAT"]=1,r[e[2]="UINT8"]=2,r[e[3]="INT8"]=3,r[e[4]="UINT16"]=4,r[e[5]="INT16"]=5,r[e[6]="INT32"]=6,r[e[7]="INT64"]=7,r[e[8]="STRING"]=8,r[e[9]="BOOL"]=9,r[e[10]="FLOAT16"]=10,r[e[11]="DOUBLE"]=11,r[e[12]="UINT32"]=12,r[e[13]="UINT64"]=13,r[e[14]="COMPLEX64"]=14,r[e[15]="COMPLEX128"]=15,r[e[16]="BFLOAT16"]=16,r}(),t.Segment=function(){function e(r){if(r)for(var i=Object.keys(r),c=0;c<i.length;++c)r[i[c]]!=null&&(this[i[c]]=r[i[c]])}return e.prototype.begin=a.Long?a.Long.fromBits(0,0,!1):0,e.prototype.end=a.Long?a.Long.fromBits(0,0,!1):0,e.create=function(r){return new e(r)},e.encode=function(r,i){return i||(i=f.create()),r.begin!=null&&r.hasOwnProperty("begin")&&i.uint32(8).int64(r.begin),r.end!=null&&r.hasOwnProperty("end")&&i.uint32(16).int64(r.end),i},e.encodeDelimited=function(r,i){return this.encode(r,i).ldelim()},e.decode=function(r,i){r instanceof h||(r=h.create(r));for(var c=i===void 0?r.len:r.pos+i,g=new o.onnx.TensorProto.Segment;r.pos<c;){var m=r.uint32();switch(m>>>3){case 1:g.begin=r.int64();break;case 2:g.end=r.int64();break;default:r.skipType(7&m)}}return g},e.decodeDelimited=function(r){return r instanceof h||(r=new h(r)),this.decode(r,r.uint32())},e.verify=function(r){return typeof r!="object"||r===null?"object expected":r.begin!=null&&r.hasOwnProperty("begin")&&!(a.isInteger(r.begin)||r.begin&&a.isInteger(r.begin.low)&&a.isInteger(r.begin.high))?"begin: integer|Long expected":r.end!=null&&r.hasOwnProperty("end")&&!(a.isInteger(r.end)||r.end&&a.isInteger(r.end.low)&&a.isInteger(r.end.high))?"end: integer|Long expected":null},e.fromObject=function(r){if(r instanceof o.onnx.TensorProto.Segment)return r;var i=new o.onnx.TensorProto.Segment;return r.begin!=null&&(a.Long?(i.begin=a.Long.fromValue(r.begin)).unsigned=!1:typeof r.begin=="string"?i.begin=parseInt(r.begin,10):typeof r.begin=="number"?i.begin=r.begin:typeof r.begin=="object"&&(i.begin=new a.LongBits(r.begin.low>>>0,r.begin.high>>>0).toNumber())),r.end!=null&&(a.Long?(i.end=a.Long.fromValue(r.end)).unsigned=!1:typeof r.end=="string"?i.end=parseInt(r.end,10):typeof r.end=="number"?i.end=r.end:typeof r.end=="object"&&(i.end=new a.LongBits(r.end.low>>>0,r.end.high>>>0).toNumber())),i},e.toObject=function(r,i){i||(i={});var c={};if(i.defaults){if(a.Long){var g=new a.Long(0,0,!1);c.begin=i.longs===String?g.toString():i.longs===Number?g.toNumber():g}else c.begin=i.longs===String?"0":0;a.Long?(g=new a.Long(0,0,!1),c.end=i.longs===String?g.toString():i.longs===Number?g.toNumber():g):c.end=i.longs===String?"0":0}return r.begin!=null&&r.hasOwnProperty("begin")&&(typeof r.begin=="number"?c.begin=i.longs===String?String(r.begin):r.begin:c.begin=i.longs===String?a.Long.prototype.toString.call(r.begin):i.longs===Number?new a.LongBits(r.begin.low>>>0,r.begin.high>>>0).toNumber():r.begin),r.end!=null&&r.hasOwnProperty("end")&&(typeof r.end=="number"?c.end=i.longs===String?String(r.end):r.end:c.end=i.longs===String?a.Long.prototype.toString.call(r.end):i.longs===Number?new a.LongBits(r.end.low>>>0,r.end.high>>>0).toNumber():r.end),c},e.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},e}(),t.DataLocation=function(){var e={},r=Object.create(e);return r[e[0]="DEFAULT"]=0,r[e[1]="EXTERNAL"]=1,r}(),t}(),p.TensorShapeProto=function(){function t(e){if(this.dim=[],e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.dim=a.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=f.create()),e.dim!=null&&e.dim.length)for(var i=0;i<e.dim.length;++i)o.onnx.TensorShapeProto.Dimension.encode(e.dim[i],r.uint32(10).fork()).ldelim();return r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.TensorShapeProto;e.pos<i;){var g=e.uint32();g>>>3==1?(c.dim&&c.dim.length||(c.dim=[]),c.dim.push(o.onnx.TensorShapeProto.Dimension.decode(e,e.uint32()))):e.skipType(7&g)}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.dim!=null&&e.hasOwnProperty("dim")){if(!Array.isArray(e.dim))return"dim: array expected";for(var r=0;r<e.dim.length;++r){var i=o.onnx.TensorShapeProto.Dimension.verify(e.dim[r]);if(i)return"dim."+i}}return null},t.fromObject=function(e){if(e instanceof o.onnx.TensorShapeProto)return e;var r=new o.onnx.TensorShapeProto;if(e.dim){if(!Array.isArray(e.dim))throw TypeError(".onnx.TensorShapeProto.dim: array expected");r.dim=[];for(var i=0;i<e.dim.length;++i){if(typeof e.dim[i]!="object")throw TypeError(".onnx.TensorShapeProto.dim: object expected");r.dim[i]=o.onnx.TensorShapeProto.Dimension.fromObject(e.dim[i])}}return r},t.toObject=function(e,r){r||(r={});var i={};if((r.arrays||r.defaults)&&(i.dim=[]),e.dim&&e.dim.length){i.dim=[];for(var c=0;c<e.dim.length;++c)i.dim[c]=o.onnx.TensorShapeProto.Dimension.toObject(e.dim[c],r)}return i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t.Dimension=function(){function e(i){if(i)for(var c=Object.keys(i),g=0;g<c.length;++g)i[c[g]]!=null&&(this[c[g]]=i[c[g]])}var r;return e.prototype.dimValue=a.Long?a.Long.fromBits(0,0,!1):0,e.prototype.dimParam="",e.prototype.denotation="",Object.defineProperty(e.prototype,"value",{get:a.oneOfGetter(r=["dimValue","dimParam"]),set:a.oneOfSetter(r)}),e.create=function(i){return new e(i)},e.encode=function(i,c){return c||(c=f.create()),i.dimValue!=null&&i.hasOwnProperty("dimValue")&&c.uint32(8).int64(i.dimValue),i.dimParam!=null&&i.hasOwnProperty("dimParam")&&c.uint32(18).string(i.dimParam),i.denotation!=null&&i.hasOwnProperty("denotation")&&c.uint32(26).string(i.denotation),c},e.encodeDelimited=function(i,c){return this.encode(i,c).ldelim()},e.decode=function(i,c){i instanceof h||(i=h.create(i));for(var g=c===void 0?i.len:i.pos+c,m=new o.onnx.TensorShapeProto.Dimension;i.pos<g;){var b=i.uint32();switch(b>>>3){case 1:m.dimValue=i.int64();break;case 2:m.dimParam=i.string();break;case 3:m.denotation=i.string();break;default:i.skipType(7&b)}}return m},e.decodeDelimited=function(i){return i instanceof h||(i=new h(i)),this.decode(i,i.uint32())},e.verify=function(i){if(typeof i!="object"||i===null)return"object expected";var c={};if(i.dimValue!=null&&i.hasOwnProperty("dimValue")&&(c.value=1,!(a.isInteger(i.dimValue)||i.dimValue&&a.isInteger(i.dimValue.low)&&a.isInteger(i.dimValue.high))))return"dimValue: integer|Long expected";if(i.dimParam!=null&&i.hasOwnProperty("dimParam")){if(c.value===1)return"value: multiple values";if(c.value=1,!a.isString(i.dimParam))return"dimParam: string expected"}return i.denotation!=null&&i.hasOwnProperty("denotation")&&!a.isString(i.denotation)?"denotation: string expected":null},e.fromObject=function(i){if(i instanceof o.onnx.TensorShapeProto.Dimension)return i;var c=new o.onnx.TensorShapeProto.Dimension;return i.dimValue!=null&&(a.Long?(c.dimValue=a.Long.fromValue(i.dimValue)).unsigned=!1:typeof i.dimValue=="string"?c.dimValue=parseInt(i.dimValue,10):typeof i.dimValue=="number"?c.dimValue=i.dimValue:typeof i.dimValue=="object"&&(c.dimValue=new a.LongBits(i.dimValue.low>>>0,i.dimValue.high>>>0).toNumber())),i.dimParam!=null&&(c.dimParam=String(i.dimParam)),i.denotation!=null&&(c.denotation=String(i.denotation)),c},e.toObject=function(i,c){c||(c={});var g={};return c.defaults&&(g.denotation=""),i.dimValue!=null&&i.hasOwnProperty("dimValue")&&(typeof i.dimValue=="number"?g.dimValue=c.longs===String?String(i.dimValue):i.dimValue:g.dimValue=c.longs===String?a.Long.prototype.toString.call(i.dimValue):c.longs===Number?new a.LongBits(i.dimValue.low>>>0,i.dimValue.high>>>0).toNumber():i.dimValue,c.oneofs&&(g.value="dimValue")),i.dimParam!=null&&i.hasOwnProperty("dimParam")&&(g.dimParam=i.dimParam,c.oneofs&&(g.value="dimParam")),i.denotation!=null&&i.hasOwnProperty("denotation")&&(g.denotation=i.denotation),g},e.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},e}(),t}(),p.TypeProto=function(){function t(r){if(r)for(var i=Object.keys(r),c=0;c<i.length;++c)r[i[c]]!=null&&(this[i[c]]=r[i[c]])}var e;return t.prototype.tensorType=null,t.prototype.denotation="",Object.defineProperty(t.prototype,"value",{get:a.oneOfGetter(e=["tensorType"]),set:a.oneOfSetter(e)}),t.create=function(r){return new t(r)},t.encode=function(r,i){return i||(i=f.create()),r.tensorType!=null&&r.hasOwnProperty("tensorType")&&o.onnx.TypeProto.Tensor.encode(r.tensorType,i.uint32(10).fork()).ldelim(),r.denotation!=null&&r.hasOwnProperty("denotation")&&i.uint32(50).string(r.denotation),i},t.encodeDelimited=function(r,i){return this.encode(r,i).ldelim()},t.decode=function(r,i){r instanceof h||(r=h.create(r));for(var c=i===void 0?r.len:r.pos+i,g=new o.onnx.TypeProto;r.pos<c;){var m=r.uint32();switch(m>>>3){case 1:g.tensorType=o.onnx.TypeProto.Tensor.decode(r,r.uint32());break;case 6:g.denotation=r.string();break;default:r.skipType(7&m)}}return g},t.decodeDelimited=function(r){return r instanceof h||(r=new h(r)),this.decode(r,r.uint32())},t.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.tensorType!=null&&r.hasOwnProperty("tensorType")){var i=o.onnx.TypeProto.Tensor.verify(r.tensorType);if(i)return"tensorType."+i}return r.denotation!=null&&r.hasOwnProperty("denotation")&&!a.isString(r.denotation)?"denotation: string expected":null},t.fromObject=function(r){if(r instanceof o.onnx.TypeProto)return r;var i=new o.onnx.TypeProto;if(r.tensorType!=null){if(typeof r.tensorType!="object")throw TypeError(".onnx.TypeProto.tensorType: object expected");i.tensorType=o.onnx.TypeProto.Tensor.fromObject(r.tensorType)}return r.denotation!=null&&(i.denotation=String(r.denotation)),i},t.toObject=function(r,i){i||(i={});var c={};return i.defaults&&(c.denotation=""),r.tensorType!=null&&r.hasOwnProperty("tensorType")&&(c.tensorType=o.onnx.TypeProto.Tensor.toObject(r.tensorType,i),i.oneofs&&(c.value="tensorType")),r.denotation!=null&&r.hasOwnProperty("denotation")&&(c.denotation=r.denotation),c},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t.Tensor=function(){function r(i){if(i)for(var c=Object.keys(i),g=0;g<c.length;++g)i[c[g]]!=null&&(this[c[g]]=i[c[g]])}return r.prototype.elemType=0,r.prototype.shape=null,r.create=function(i){return new r(i)},r.encode=function(i,c){return c||(c=f.create()),i.elemType!=null&&i.hasOwnProperty("elemType")&&c.uint32(8).int32(i.elemType),i.shape!=null&&i.hasOwnProperty("shape")&&o.onnx.TensorShapeProto.encode(i.shape,c.uint32(18).fork()).ldelim(),c},r.encodeDelimited=function(i,c){return this.encode(i,c).ldelim()},r.decode=function(i,c){i instanceof h||(i=h.create(i));for(var g=c===void 0?i.len:i.pos+c,m=new o.onnx.TypeProto.Tensor;i.pos<g;){var b=i.uint32();switch(b>>>3){case 1:m.elemType=i.int32();break;case 2:m.shape=o.onnx.TensorShapeProto.decode(i,i.uint32());break;default:i.skipType(7&b)}}return m},r.decodeDelimited=function(i){return i instanceof h||(i=new h(i)),this.decode(i,i.uint32())},r.verify=function(i){if(typeof i!="object"||i===null)return"object expected";if(i.elemType!=null&&i.hasOwnProperty("elemType")&&!a.isInteger(i.elemType))return"elemType: integer expected";if(i.shape!=null&&i.hasOwnProperty("shape")){var c=o.onnx.TensorShapeProto.verify(i.shape);if(c)return"shape."+c}return null},r.fromObject=function(i){if(i instanceof o.onnx.TypeProto.Tensor)return i;var c=new o.onnx.TypeProto.Tensor;if(i.elemType!=null&&(c.elemType=0|i.elemType),i.shape!=null){if(typeof i.shape!="object")throw TypeError(".onnx.TypeProto.Tensor.shape: object expected");c.shape=o.onnx.TensorShapeProto.fromObject(i.shape)}return c},r.toObject=function(i,c){c||(c={});var g={};return c.defaults&&(g.elemType=0,g.shape=null),i.elemType!=null&&i.hasOwnProperty("elemType")&&(g.elemType=i.elemType),i.shape!=null&&i.hasOwnProperty("shape")&&(g.shape=o.onnx.TensorShapeProto.toObject(i.shape,c)),g},r.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},r}(),t}(),p.OperatorSetIdProto=function(){function t(e){if(e)for(var r=Object.keys(e),i=0;i<r.length;++i)e[r[i]]!=null&&(this[r[i]]=e[r[i]])}return t.prototype.domain="",t.prototype.version=a.Long?a.Long.fromBits(0,0,!1):0,t.create=function(e){return new t(e)},t.encode=function(e,r){return r||(r=f.create()),e.domain!=null&&e.hasOwnProperty("domain")&&r.uint32(10).string(e.domain),e.version!=null&&e.hasOwnProperty("version")&&r.uint32(16).int64(e.version),r},t.encodeDelimited=function(e,r){return this.encode(e,r).ldelim()},t.decode=function(e,r){e instanceof h||(e=h.create(e));for(var i=r===void 0?e.len:e.pos+r,c=new o.onnx.OperatorSetIdProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:c.domain=e.string();break;case 2:c.version=e.int64();break;default:e.skipType(7&g)}}return c},t.decodeDelimited=function(e){return e instanceof h||(e=new h(e)),this.decode(e,e.uint32())},t.verify=function(e){return typeof e!="object"||e===null?"object expected":e.domain!=null&&e.hasOwnProperty("domain")&&!a.isString(e.domain)?"domain: string expected":e.version!=null&&e.hasOwnProperty("version")&&!(a.isInteger(e.version)||e.version&&a.isInteger(e.version.low)&&a.isInteger(e.version.high))?"version: integer|Long expected":null},t.fromObject=function(e){if(e instanceof o.onnx.OperatorSetIdProto)return e;var r=new o.onnx.OperatorSetIdProto;return e.domain!=null&&(r.domain=String(e.domain)),e.version!=null&&(a.Long?(r.version=a.Long.fromValue(e.version)).unsigned=!1:typeof e.version=="string"?r.version=parseInt(e.version,10):typeof e.version=="number"?r.version=e.version:typeof e.version=="object"&&(r.version=new a.LongBits(e.version.low>>>0,e.version.high>>>0).toNumber())),r},t.toObject=function(e,r){r||(r={});var i={};if(r.defaults)if(i.domain="",a.Long){var c=new a.Long(0,0,!1);i.version=r.longs===String?c.toString():r.longs===Number?c.toNumber():c}else i.version=r.longs===String?"0":0;return e.domain!=null&&e.hasOwnProperty("domain")&&(i.domain=e.domain),e.version!=null&&e.hasOwnProperty("version")&&(typeof e.version=="number"?i.version=r.longs===String?String(e.version):e.version:i.version=r.longs===String?a.Long.prototype.toString.call(e.version):r.longs===Number?new a.LongBits(e.version.low>>>0,e.version.high>>>0).toNumber():e.version),i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t}(),p),y.exports=o},2100:(y,n,u)=>{y.exports=u(9482)},9482:(y,n,u)=>{var d=n;function l(){d.util._configure(),d.Writer._configure(d.BufferWriter),d.Reader._configure(d.BufferReader)}d.build="minimal",d.Writer=u(1173),d.BufferWriter=u(3155),d.Reader=u(1408),d.BufferReader=u(593),d.util=u(9693),d.rpc=u(5994),d.roots=u(5054),d.configure=l,l()},1408:(y,n,u)=>{y.exports=f;var d,l=u(9693),p=l.LongBits,s=l.utf8;function h(c,g){return RangeError("index out of range: "+c.pos+" + "+(g||1)+" > "+c.len)}function f(c){this.buf=c,this.pos=0,this.len=c.length}var a,o=typeof Uint8Array<"u"?function(c){if(c instanceof Uint8Array||Array.isArray(c))return new f(c);throw Error("illegal buffer")}:function(c){if(Array.isArray(c))return new f(c);throw Error("illegal buffer")},t=function(){return l.Buffer?function(c){return(f.create=function(g){return l.Buffer.isBuffer(g)?new d(g):o(g)})(c)}:o};function e(){var c=new p(0,0),g=0;if(!(this.len-this.pos>4)){for(;g<3;++g){if(this.pos>=this.len)throw h(this);if(c.lo=(c.lo|(127&this.buf[this.pos])<<7*g)>>>0,this.buf[this.pos++]<128)return c}return c.lo=(c.lo|(127&this.buf[this.pos++])<<7*g)>>>0,c}for(;g<4;++g)if(c.lo=(c.lo|(127&this.buf[this.pos])<<7*g)>>>0,this.buf[this.pos++]<128)return c;if(c.lo=(c.lo|(127&this.buf[this.pos])<<28)>>>0,c.hi=(c.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return c;if(g=0,this.len-this.pos>4){for(;g<5;++g)if(c.hi=(c.hi|(127&this.buf[this.pos])<<7*g+3)>>>0,this.buf[this.pos++]<128)return c}else for(;g<5;++g){if(this.pos>=this.len)throw h(this);if(c.hi=(c.hi|(127&this.buf[this.pos])<<7*g+3)>>>0,this.buf[this.pos++]<128)return c}throw Error("invalid varint encoding")}function r(c,g){return(c[g-4]|c[g-3]<<8|c[g-2]<<16|c[g-1]<<24)>>>0}function i(){if(this.pos+8>this.len)throw h(this,8);return new p(r(this.buf,this.pos+=4),r(this.buf,this.pos+=4))}f.create=t(),f.prototype._slice=l.Array.prototype.subarray||l.Array.prototype.slice,f.prototype.uint32=(a=4294967295,function(){if(a=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128||(a=(a|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)||(a=(a|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)||(a=(a|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)||(a=(a|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128))return a;if((this.pos+=5)>this.len)throw this.pos=this.len,h(this,10);return a}),f.prototype.int32=function(){return 0|this.uint32()},f.prototype.sint32=function(){var c=this.uint32();return c>>>1^-(1&c)|0},f.prototype.bool=function(){return this.uint32()!==0},f.prototype.fixed32=function(){if(this.pos+4>this.len)throw h(this,4);return r(this.buf,this.pos+=4)},f.prototype.sfixed32=function(){if(this.pos+4>this.len)throw h(this,4);return 0|r(this.buf,this.pos+=4)},f.prototype.float=function(){if(this.pos+4>this.len)throw h(this,4);var c=l.float.readFloatLE(this.buf,this.pos);return this.pos+=4,c},f.prototype.double=function(){if(this.pos+8>this.len)throw h(this,4);var c=l.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,c},f.prototype.bytes=function(){var c=this.uint32(),g=this.pos,m=this.pos+c;if(m>this.len)throw h(this,c);return this.pos+=c,Array.isArray(this.buf)?this.buf.slice(g,m):g===m?new this.buf.constructor(0):this._slice.call(this.buf,g,m)},f.prototype.string=function(){var c=this.bytes();return s.read(c,0,c.length)},f.prototype.skip=function(c){if(typeof c=="number"){if(this.pos+c>this.len)throw h(this,c);this.pos+=c}else do if(this.pos>=this.len)throw h(this);while(128&this.buf[this.pos++]);return this},f.prototype.skipType=function(c){switch(c){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(c=7&this.uint32())!=4;)this.skipType(c);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+c+" at offset "+this.pos)}return this},f._configure=function(c){d=c,f.create=t(),d._configure();var g=l.Long?"toLong":"toNumber";l.merge(f.prototype,{int64:function(){return e.call(this)[g](!1)},uint64:function(){return e.call(this)[g](!0)},sint64:function(){return e.call(this).zzDecode()[g](!1)},fixed64:function(){return i.call(this)[g](!0)},sfixed64:function(){return i.call(this)[g](!1)}})}},593:(y,n,u)=>{y.exports=p;var d=u(1408);(p.prototype=Object.create(d.prototype)).constructor=p;var l=u(9693);function p(s){d.call(this,s)}p._configure=function(){l.Buffer&&(p.prototype._slice=l.Buffer.prototype.slice)},p.prototype.string=function(){var s=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+s,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+s,this.len))},p._configure()},5054:y=>{y.exports={}},5994:(y,n,u)=>{n.Service=u(7948)},7948:(y,n,u)=>{y.exports=l;var d=u(9693);function l(p,s,h){if(typeof p!="function")throw TypeError("rpcImpl must be a function");d.EventEmitter.call(this),this.rpcImpl=p,this.requestDelimited=!!s,this.responseDelimited=!!h}(l.prototype=Object.create(d.EventEmitter.prototype)).constructor=l,l.prototype.rpcCall=function p(s,h,f,a,o){if(!a)throw TypeError("request must be specified");var t=this;if(!o)return d.asPromise(p,t,s,h,f,a);if(t.rpcImpl)try{return t.rpcImpl(s,h[t.requestDelimited?"encodeDelimited":"encode"](a).finish(),function(e,r){if(e)return t.emit("error",e,s),o(e);if(r!==null){if(!(r instanceof f))try{r=f[t.responseDelimited?"decodeDelimited":"decode"](r)}catch(i){return t.emit("error",i,s),o(i)}return t.emit("data",r,s),o(null,r)}t.end(!0)})}catch(e){return t.emit("error",e,s),void setTimeout(function(){o(e)},0)}else setTimeout(function(){o(Error("already ended"))},0)},l.prototype.end=function(p){return this.rpcImpl&&(p||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},1945:(y,n,u)=>{y.exports=l;var d=u(9693);function l(f,a){this.lo=f>>>0,this.hi=a>>>0}var p=l.zero=new l(0,0);p.toNumber=function(){return 0},p.zzEncode=p.zzDecode=function(){return this},p.length=function(){return 1};var s=l.zeroHash="\0\0\0\0\0\0\0\0";l.fromNumber=function(f){if(f===0)return p;var a=f<0;a&&(f=-f);var o=f>>>0,t=(f-o)/4294967296>>>0;return a&&(t=~t>>>0,o=~o>>>0,++o>4294967295&&(o=0,++t>4294967295&&(t=0))),new l(o,t)},l.from=function(f){if(typeof f=="number")return l.fromNumber(f);if(d.isString(f)){if(!d.Long)return l.fromNumber(parseInt(f,10));f=d.Long.fromString(f)}return f.low||f.high?new l(f.low>>>0,f.high>>>0):p},l.prototype.toNumber=function(f){if(!f&&this.hi>>>31){var a=1+~this.lo>>>0,o=~this.hi>>>0;return a||(o=o+1>>>0),-(a+4294967296*o)}return this.lo+4294967296*this.hi},l.prototype.toLong=function(f){return d.Long?new d.Long(0|this.lo,0|this.hi,!!f):{low:0|this.lo,high:0|this.hi,unsigned:!!f}};var h=String.prototype.charCodeAt;l.fromHash=function(f){return f===s?p:new l((h.call(f,0)|h.call(f,1)<<8|h.call(f,2)<<16|h.call(f,3)<<24)>>>0,(h.call(f,4)|h.call(f,5)<<8|h.call(f,6)<<16|h.call(f,7)<<24)>>>0)},l.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},l.prototype.zzEncode=function(){var f=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^f)>>>0,this.lo=(this.lo<<1^f)>>>0,this},l.prototype.zzDecode=function(){var f=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^f)>>>0,this.hi=(this.hi>>>1^f)>>>0,this},l.prototype.length=function(){var f=this.lo,a=(this.lo>>>28|this.hi<<4)>>>0,o=this.hi>>>24;return o===0?a===0?f<16384?f<128?1:2:f<2097152?3:4:a<16384?a<128?5:6:a<2097152?7:8:o<128?9:10}},9693:function(y,n,u){var d=n;function l(s,h,f){for(var a=Object.keys(h),o=0;o<a.length;++o)s[a[o]]!==void 0&&f||(s[a[o]]=h[a[o]]);return s}function p(s){function h(f,a){if(!(this instanceof h))return new h(f,a);Object.defineProperty(this,"message",{get:function(){return f}}),Error.captureStackTrace?Error.captureStackTrace(this,h):Object.defineProperty(this,"stack",{value:new Error().stack||""}),a&&l(this,a)}return(h.prototype=Object.create(Error.prototype)).constructor=h,Object.defineProperty(h.prototype,"name",{get:function(){return s}}),h.prototype.toString=function(){return this.name+": "+this.message},h}d.asPromise=u(4537),d.base64=u(7419),d.EventEmitter=u(9211),d.float=u(945),d.inquire=u(7199),d.utf8=u(4997),d.pool=u(6662),d.LongBits=u(1945),d.isNode=!!(u.g!==void 0&&u.g&&u.g.process&&u.g.process.versions&&u.g.process.versions.node),d.global=d.isNode&&u.g||typeof window<"u"&&window||typeof self<"u"&&self||this,d.emptyArray=Object.freeze?Object.freeze([]):[],d.emptyObject=Object.freeze?Object.freeze({}):{},d.isInteger=Number.isInteger||function(s){return typeof s=="number"&&isFinite(s)&&Math.floor(s)===s},d.isString=function(s){return typeof s=="string"||s instanceof String},d.isObject=function(s){return s&&typeof s=="object"},d.isset=d.isSet=function(s,h){var f=s[h];return!(f==null||!s.hasOwnProperty(h))&&(typeof f!="object"||(Array.isArray(f)?f.length:Object.keys(f).length)>0)},d.Buffer=function(){try{var s=d.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),d._Buffer_from=null,d._Buffer_allocUnsafe=null,d.newBuffer=function(s){return typeof s=="number"?d.Buffer?d._Buffer_allocUnsafe(s):new d.Array(s):d.Buffer?d._Buffer_from(s):typeof Uint8Array>"u"?s:new Uint8Array(s)},d.Array=typeof Uint8Array<"u"?Uint8Array:Array,d.Long=d.global.dcodeIO&&d.global.dcodeIO.Long||d.global.Long||d.inquire("long"),d.key2Re=/^true|false|0|1$/,d.key32Re=/^-?(?:0|[1-9][0-9]*)$/,d.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,d.longToHash=function(s){return s?d.LongBits.from(s).toHash():d.LongBits.zeroHash},d.longFromHash=function(s,h){var f=d.LongBits.fromHash(s);return d.Long?d.Long.fromBits(f.lo,f.hi,h):f.toNumber(!!h)},d.merge=l,d.lcFirst=function(s){return s.charAt(0).toLowerCase()+s.substring(1)},d.newError=p,d.ProtocolError=p("ProtocolError"),d.oneOfGetter=function(s){for(var h={},f=0;f<s.length;++f)h[s[f]]=1;return function(){for(var a=Object.keys(this),o=a.length-1;o>-1;--o)if(h[a[o]]===1&&this[a[o]]!==void 0&&this[a[o]]!==null)return a[o]}},d.oneOfSetter=function(s){return function(h){for(var f=0;f<s.length;++f)s[f]!==h&&delete this[s[f]]}},d.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},d._configure=function(){var s=d.Buffer;s?(d._Buffer_from=s.from!==Uint8Array.from&&s.from||function(h,f){return new s(h,f)},d._Buffer_allocUnsafe=s.allocUnsafe||function(h){return new s(h)}):d._Buffer_from=d._Buffer_allocUnsafe=null}},1173:(y,n,u)=>{y.exports=t;var d,l=u(9693),p=l.LongBits,s=l.base64,h=l.utf8;function f(b,_,w){this.fn=b,this.len=_,this.next=void 0,this.val=w}function a(){}function o(b){this.head=b.head,this.tail=b.tail,this.len=b.len,this.next=b.states}function t(){this.len=0,this.head=new f(a,0,0),this.tail=this.head,this.states=null}var e=function(){return l.Buffer?function(){return(t.create=function(){return new d})()}:function(){return new t}};function r(b,_,w){_[w]=255&b}function i(b,_){this.len=b,this.next=void 0,this.val=_}function c(b,_,w){for(;b.hi;)_[w++]=127&b.lo|128,b.lo=(b.lo>>>7|b.hi<<25)>>>0,b.hi>>>=7;for(;b.lo>127;)_[w++]=127&b.lo|128,b.lo=b.lo>>>7;_[w++]=b.lo}function g(b,_,w){_[w]=255&b,_[w+1]=b>>>8&255,_[w+2]=b>>>16&255,_[w+3]=b>>>24}t.create=e(),t.alloc=function(b){return new l.Array(b)},l.Array!==Array&&(t.alloc=l.pool(t.alloc,l.Array.prototype.subarray)),t.prototype._push=function(b,_,w){return this.tail=this.tail.next=new f(b,_,w),this.len+=_,this},i.prototype=Object.create(f.prototype),i.prototype.fn=function(b,_,w){for(;b>127;)_[w++]=127&b|128,b>>>=7;_[w]=b},t.prototype.uint32=function(b){return this.len+=(this.tail=this.tail.next=new i((b>>>=0)<128?1:b<16384?2:b<2097152?3:b<268435456?4:5,b)).len,this},t.prototype.int32=function(b){return b<0?this._push(c,10,p.fromNumber(b)):this.uint32(b)},t.prototype.sint32=function(b){return this.uint32((b<<1^b>>31)>>>0)},t.prototype.uint64=function(b){var _=p.from(b);return this._push(c,_.length(),_)},t.prototype.int64=t.prototype.uint64,t.prototype.sint64=function(b){var _=p.from(b).zzEncode();return this._push(c,_.length(),_)},t.prototype.bool=function(b){return this._push(r,1,b?1:0)},t.prototype.fixed32=function(b){return this._push(g,4,b>>>0)},t.prototype.sfixed32=t.prototype.fixed32,t.prototype.fixed64=function(b){var _=p.from(b);return this._push(g,4,_.lo)._push(g,4,_.hi)},t.prototype.sfixed64=t.prototype.fixed64,t.prototype.float=function(b){return this._push(l.float.writeFloatLE,4,b)},t.prototype.double=function(b){return this._push(l.float.writeDoubleLE,8,b)};var m=l.Array.prototype.set?function(b,_,w){_.set(b,w)}:function(b,_,w){for(var v=0;v<b.length;++v)_[w+v]=b[v]};t.prototype.bytes=function(b){var _=b.length>>>0;if(!_)return this._push(r,1,0);if(l.isString(b)){var w=t.alloc(_=s.length(b));s.decode(b,w,0),b=w}return this.uint32(_)._push(m,_,b)},t.prototype.string=function(b){var _=h.length(b);return _?this.uint32(_)._push(h.write,_,b):this._push(r,1,0)},t.prototype.fork=function(){return this.states=new o(this),this.head=this.tail=new f(a,0,0),this.len=0,this},t.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new f(a,0,0),this.len=0),this},t.prototype.ldelim=function(){var b=this.head,_=this.tail,w=this.len;return this.reset().uint32(w),w&&(this.tail.next=b.next,this.tail=_,this.len+=w),this},t.prototype.finish=function(){for(var b=this.head.next,_=this.constructor.alloc(this.len),w=0;b;)b.fn(b.val,_,w),w+=b.len,b=b.next;return _},t._configure=function(b){d=b,t.create=e(),d._configure()}},3155:(y,n,u)=>{y.exports=p;var d=u(1173);(p.prototype=Object.create(d.prototype)).constructor=p;var l=u(9693);function p(){d.call(this)}function s(h,f,a){h.length<40?l.utf8.write(h,f,a):f.utf8Write?f.utf8Write(h,a):f.write(h,a)}p._configure=function(){p.alloc=l._Buffer_allocUnsafe,p.writeBytesBuffer=l.Buffer&&l.Buffer.prototype instanceof Uint8Array&&l.Buffer.prototype.set.name==="set"?function(h,f,a){f.set(h,a)}:function(h,f,a){if(h.copy)h.copy(f,a,0,h.length);else for(var o=0;o<h.length;)f[a++]=h[o++]}},p.prototype.bytes=function(h){l.isString(h)&&(h=l._Buffer_from(h,"base64"));var f=h.length>>>0;return this.uint32(f),f&&this._push(p.writeBytesBuffer,f,h),this},p.prototype.string=function(h){var f=l.Buffer.byteLength(h);return this.uint32(f),f&&this._push(s,f,h),this},p._configure()},7714:(y,n,u)=>{n.R=void 0;const d=u(6919),l=u(7448);n.R=new class{async init(){}async createSessionHandler(p,s){const h=new d.Session(s);return await h.loadModel(p),new l.OnnxjsSessionHandler(h)}}},4200:(y,n,u)=>{n.c8=n.rX=void 0;const d=u(1670),l=u(5381),p=u(2157),s=u(2306);n.rX=()=>{if((typeof d.env.wasm.initTimeout!="number"||d.env.wasm.initTimeout<0)&&(d.env.wasm.initTimeout=0),typeof d.env.wasm.simd!="boolean"&&(d.env.wasm.simd=!0),typeof d.env.wasm.proxy!="boolean"&&(d.env.wasm.proxy=!1),typeof d.env.wasm.numThreads!="number"||!Number.isInteger(d.env.wasm.numThreads)||d.env.wasm.numThreads<=0){const h=typeof navigator>"u"?(0,l.cpus)().length:navigator.hardwareConcurrency;d.env.wasm.numThreads=Math.min(4,Math.ceil((h||1)/2))}},n.c8=new class{async init(){(0,n.rX)(),await(0,p.initWasm)()}async createSessionHandler(h,f){const a=new s.OnnxruntimeWebAssemblySessionHandler;return await a.loadModel(h,f),Promise.resolve(a)}}},6018:function(y,n,u){var d=this&&this.__createBinding||(Object.create?function(s,h,f,a){a===void 0&&(a=f);var o=Object.getOwnPropertyDescriptor(h,f);o&&!("get"in o?!h.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return h[f]}}),Object.defineProperty(s,a,o)}:function(s,h,f,a){a===void 0&&(a=f),s[a]=h[f]}),l=this&&this.__exportStar||function(s,h){for(var f in s)f==="default"||Object.prototype.hasOwnProperty.call(h,f)||d(h,s,f)};Object.defineProperty(n,"__esModule",{value:!0}),l(u(1670),n);const p=u(1670);{const s=u(7714).R;(0,p.registerBackend)("webgl",s,-10)}{const s=u(4200).c8;(0,p.registerBackend)("cpu",s,10),(0,p.registerBackend)("wasm",s,10),(0,p.registerBackend)("xnnpack",s,9)}},246:(y,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createAttributeWithCacheKey=void 0;class u{constructor(l){Object.assign(this,l)}get cacheKey(){return this._cacheKey||(this._cacheKey=Object.getOwnPropertyNames(this).sort().map(l=>`${this[l]}`).join(";")),this._cacheKey}}n.createAttributeWithCacheKey=d=>new u(d)},7778:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Attribute=void 0;const d=u(1446),l=u(9395),p=u(9162),s=u(2517);var h=l.onnxruntime.experimental.fbs;class f{constructor(o){if(this._attributes=new Map,o!=null){for(const t of o)t instanceof d.onnx.AttributeProto?this._attributes.set(t.name,[f.getValue(t),f.getType(t)]):t instanceof h.Attribute&&this._attributes.set(t.name(),[f.getValue(t),f.getType(t)]);if(this._attributes.size<o.length)throw new Error("duplicated attribute names")}}set(o,t,e){this._attributes.set(o,[e,t])}delete(o){this._attributes.delete(o)}getFloat(o,t){return this.get(o,"float",t)}getInt(o,t){return this.get(o,"int",t)}getString(o,t){return this.get(o,"string",t)}getTensor(o,t){return this.get(o,"tensor",t)}getFloats(o,t){return this.get(o,"floats",t)}getInts(o,t){return this.get(o,"ints",t)}getStrings(o,t){return this.get(o,"strings",t)}getTensors(o,t){return this.get(o,"tensors",t)}get(o,t,e){const r=this._attributes.get(o);if(r===void 0){if(e!==void 0)return e;throw new Error(`required attribute not found: ${o}`)}if(r[1]!==t)throw new Error(`type mismatch: expected ${t} but got ${r[1]}`);return r[0]}static getType(o){const t=o instanceof d.onnx.AttributeProto?o.type:o.type();switch(t){case d.onnx.AttributeProto.AttributeType.FLOAT:return"float";case d.onnx.AttributeProto.AttributeType.INT:return"int";case d.onnx.AttributeProto.AttributeType.STRING:return"string";case d.onnx.AttributeProto.AttributeType.TENSOR:return"tensor";case d.onnx.AttributeProto.AttributeType.FLOATS:return"floats";case d.onnx.AttributeProto.AttributeType.INTS:return"ints";case d.onnx.AttributeProto.AttributeType.STRINGS:return"strings";case d.onnx.AttributeProto.AttributeType.TENSORS:return"tensors";default:throw new Error(`attribute type is not supported yet: ${d.onnx.AttributeProto.AttributeType[t]}`)}}static getValue(o){const t=o instanceof d.onnx.AttributeProto?o.type:o.type();if(t===d.onnx.AttributeProto.AttributeType.GRAPH||t===d.onnx.AttributeProto.AttributeType.GRAPHS)throw new Error("graph attribute is not supported yet");const e=this.getValueNoCheck(o);if(t===d.onnx.AttributeProto.AttributeType.INT&&s.LongUtil.isLong(e))return s.LongUtil.longToNumber(e);if(t===d.onnx.AttributeProto.AttributeType.INTS){const r=e,i=new Array(r.length);for(let c=0;c<r.length;c++){const g=r[c];i[c]=s.LongUtil.longToNumber(g)}return i}if(t===d.onnx.AttributeProto.AttributeType.TENSOR)return o instanceof d.onnx.AttributeProto?p.Tensor.fromProto(e):p.Tensor.fromOrtTensor(e);if(t===d.onnx.AttributeProto.AttributeType.TENSORS){if(o instanceof d.onnx.AttributeProto)return e.map(r=>p.Tensor.fromProto(r));if(o instanceof h.Attribute)return e.map(r=>p.Tensor.fromOrtTensor(r))}if(t===d.onnx.AttributeProto.AttributeType.STRING&&o instanceof d.onnx.AttributeProto){const r=e;return(0,s.decodeUtf8String)(r)}return t===d.onnx.AttributeProto.AttributeType.STRINGS&&o instanceof d.onnx.AttributeProto?e.map(s.decodeUtf8String):e}static getValueNoCheck(o){return o instanceof d.onnx.AttributeProto?this.getValueNoCheckFromOnnxFormat(o):this.getValueNoCheckFromOrtFormat(o)}static getValueNoCheckFromOnnxFormat(o){switch(o.type){case d.onnx.AttributeProto.AttributeType.FLOAT:return o.f;case d.onnx.AttributeProto.AttributeType.INT:return o.i;case d.onnx.AttributeProto.AttributeType.STRING:return o.s;case d.onnx.AttributeProto.AttributeType.TENSOR:return o.t;case d.onnx.AttributeProto.AttributeType.GRAPH:return o.g;case d.onnx.AttributeProto.AttributeType.FLOATS:return o.floats;case d.onnx.AttributeProto.AttributeType.INTS:return o.ints;case d.onnx.AttributeProto.AttributeType.STRINGS:return o.strings;case d.onnx.AttributeProto.AttributeType.TENSORS:return o.tensors;case d.onnx.AttributeProto.AttributeType.GRAPHS:return o.graphs;default:throw new Error(`unsupported attribute type: ${d.onnx.AttributeProto.AttributeType[o.type]}`)}}static getValueNoCheckFromOrtFormat(o){switch(o.type()){case h.AttributeType.FLOAT:return o.f();case h.AttributeType.INT:return o.i();case h.AttributeType.STRING:return o.s();case h.AttributeType.TENSOR:return o.t();case h.AttributeType.GRAPH:return o.g();case h.AttributeType.FLOATS:return o.floatsArray();case h.AttributeType.INTS:{const t=[];for(let e=0;e<o.intsLength();e++)t.push(o.ints(e));return t}case h.AttributeType.STRINGS:{const t=[];for(let e=0;e<o.stringsLength();e++)t.push(o.strings(e));return t}case h.AttributeType.TENSORS:{const t=[];for(let e=0;e<o.tensorsLength();e++)t.push(o.tensors(e));return t}default:throw new Error(`unsupported attribute type: ${h.AttributeType[o.type()]}`)}}}n.Attribute=f},7091:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.resolveBackend=n.backend=void 0;const d=u(5038),l=new Map;async function p(s){const h=n.backend;if(h[s]!==void 0&&function(f){const a=f;return"initialize"in a&&typeof a.initialize=="function"&&"createSessionHandler"in a&&typeof a.createSessionHandler=="function"&&"dispose"in a&&typeof a.dispose=="function"}(h[s])){const f=h[s];let a=f.initialize();if(typeof a=="object"&&"then"in a&&(a=await a),a)return l.set(s,f),f}}n.backend={webgl:new d.WebGLBackend},n.resolveBackend=async function s(h){if(!h)return s(["webgl"]);{const f=typeof h=="string"?[h]:h;for(const a of f){const o=l.get(a);if(o)return o;const t=await p(a);if(t)return t}}throw new Error("no available backend to use")}},5038:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.WebGLBackend=void 0;const d=u(1670),l=u(6231),p=u(6416),s=u(7305);n.WebGLBackend=class{get contextId(){return d.env.webgl.contextId}set contextId(h){d.env.webgl.contextId=h}get matmulMaxBatchSize(){return d.env.webgl.matmulMaxBatchSize}set matmulMaxBatchSize(h){d.env.webgl.matmulMaxBatchSize=h}get textureCacheMode(){return d.env.webgl.textureCacheMode}set textureCacheMode(h){d.env.webgl.textureCacheMode=h}get pack(){return d.env.webgl.pack}set pack(h){d.env.webgl.pack=h}get async(){return d.env.webgl.async}set async(h){d.env.webgl.async=h}initialize(){try{return this.glContext=(0,s.createWebGLContext)(this.contextId),typeof this.matmulMaxBatchSize!="number"&&(this.matmulMaxBatchSize=16),typeof this.textureCacheMode!="string"&&(this.textureCacheMode="full"),typeof this.pack!="boolean"&&(this.pack=!1),typeof this.async!="boolean"&&(this.async=!1),l.Logger.setWithEnv(d.env),l.Logger.verbose("WebGLBackend",`Created WebGLContext: ${typeof this.glContext} with matmulMaxBatchSize: ${this.matmulMaxBatchSize}; textureCacheMode: ${this.textureCacheMode}; pack: ${this.pack}; async: ${this.async}.`),!0}catch(h){return l.Logger.warning("WebGLBackend",`Unable to initialize WebGLBackend. ${h}`),!1}}createSessionHandler(h){return new p.WebGLSessionHandler(this,h)}dispose(){this.glContext.dispose()}}},5107:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.CoordsGlslLib=void 0;const d=u(2517),l=u(8520),p=u(5060),s=u(7859),h=u(9390);class f extends l.GlslLib{constructor(o){super(o)}getFunctions(){return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},this.offsetToCoords()),this.coordsToOffset()),this.toVec()),this.valueFrom()),this.getCommonUtilFuncs()),this.getInputsSamplingSnippets()),this.getOutputSamplingSnippet())}getCustomTypes(){return{}}offsetToCoords(){return{offsetToCoords:new l.GlslLibRoutine(` - vec2 offsetToCoords(int offset, int width, int height) { - int t = offset / width; - int s = offset - t*width; - vec2 coords = (vec2(s,t) + vec2(0.5,0.5)) / vec2(width, height); - return coords; - } - `)}}coordsToOffset(){return{coordsToOffset:new l.GlslLibRoutine(` - int coordsToOffset(vec2 coords, int width, int height) { - float s = coords.s * float(width); - float t = coords.t * float(height); - int offset = int(t) * width + int(s); - return offset; - } - `)}}getOutputSamplingSnippet(){const o=this.context.outputTextureLayout;return o.isPacked?this.getPackedOutputSamplingSnippet(o):this.getUnpackedOutputSamplingSnippet(o)}getPackedOutputSamplingSnippet(o){const t=o.unpackedShape,e=[o.width,o.height],r={},i="getOutputCoords";switch(t.length){case 0:r[i]=this.getOutputScalarCoords();break;case 1:r[i]=this.getOutputPacked1DCoords(t,e);break;case 2:r[i]=this.getOutputPacked2DCoords(t,e);break;case 3:r[i]=this.getOutputPacked3DCoords(t,e);break;default:r[i]=this.getOutputPackedNDCoords(t,e)}const c=` - void setOutput(vec4 val) { - ${(0,p.getGlsl)(this.context.glContext.version).output} = val; - } - `;return r.floatTextureSetRGBA=new l.GlslLibRoutine(c),r}getUnpackedOutputSamplingSnippet(o){const t=o.unpackedShape,e=[o.width,o.height],r={},i="getOutputCoords";switch(t.length){case 0:r[i]=this.getOutputScalarCoords();break;case 1:r[i]=this.getOutputUnpacked1DCoords(t,e);break;case 2:r[i]=this.getOutputUnpacked2DCoords(t,e);break;case 3:r[i]=this.getOutputUnpacked3DCoords(t,e);break;case 4:r[i]=this.getOutputUnpacked4DCoords(t,e);break;case 5:r[i]=this.getOutputUnpacked5DCoords(t,e);break;case 6:r[i]=this.getOutputUnpacked6DCoords(t,e);break;default:throw new Error(`Unsupported output dimensionality: ${t.length}`)}const c=` - void setOutput(float val) { - ${(0,p.getGlsl)(this.context.glContext.version).output} = vec4(val, 0, 0, 0); - } - `;return r.floatTextureSetR=new l.GlslLibRoutine(c),r}getOutputScalarCoords(){return new l.GlslLibRoutine(` - int getOutputCoords() { - return 0; - } - `)}getOutputPacked1DCoords(o,t){const e=t;let r="";return e[0]===1?(r=` - int getOutputCoords() { - return 2 * int(TexCoords.y * ${e[1]}.0); - } - `,new l.GlslLibRoutine(r)):e[1]===1?(r=` - int getOutputCoords() { - return 2 * int(TexCoords.x * ${e[0]}.0); - } - `,new l.GlslLibRoutine(r)):(r=` - int getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${e[0]}, ${e[1]})); - return 2 * (resTexRC.y * ${e[0]} + resTexRC.x); - } - `,new l.GlslLibRoutine(r))}getOutputPacked2DCoords(o,t){let e="";if(d.ArrayUtil.arraysEqual(o,t))return e=` - ivec2 getOutputCoords() { - return 2 * ivec2(TexCoords.xy * vec2(${t[0]}, ${t[1]})); - } - `,new l.GlslLibRoutine(e);const r=t,i=Math.ceil(o[1]/2);return e=` - ivec2 getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${r[0]}, ${r[1]})); - - int index = resTexRC.y * ${r[0]} + resTexRC.x; - - // reverse r and c order for packed texture - int r = imod(index, ${i}) * 2; - int c = 2 * (index / ${i}); - - return ivec2(r, c); - } - `,new l.GlslLibRoutine(e)}getOutputPacked3DCoords(o,t){const e=[t[0],t[1]],r=Math.ceil(o[2]/2),i=r*Math.ceil(o[1]/2),c=` - ivec3 getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${e[0]}, ${e[1]})); - int index = resTexRC.y * ${e[0]} + resTexRC.x; - - int b = index / ${i}; - index -= b * ${i}; - - // reverse r and c order for packed texture - int r = imod(index, ${r}) * 2; - int c = 2 * (index / ${r}); - - return ivec3(b, r, c); - } - `;return new l.GlslLibRoutine(c)}getOutputPackedNDCoords(o,t){const e=[t[0],t[1]],r=Math.ceil(o[o.length-1]/2),i=r*Math.ceil(o[o.length-2]/2);let c=i,g="",m="b, r, c";for(let _=2;_<o.length-1;_++)c*=o[o.length-_-1],g=` - int b${_} = index / ${c}; - index -= b${_} * ${c}; - `+g,m=`b${_}, `+m;const b=` - ivec${o.length} getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${e[0]}, ${e[1]})); - int index = resTexRC.y * ${e[0]} + resTexRC.x; - - ${g} - - int b = index / ${i}; - index -= b * ${i}; - - // reverse r and c order for packed texture - int r = imod(index, ${r}) * 2; - int c = 2 * (index / ${r}); - - return ivec${o.length}(${m}); - } - `;return new l.GlslLibRoutine(b)}getOutputUnpacked1DCoords(o,t){const e=` - int getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${t[0]}, ${t[1]})); - return resTexRC.y * ${t[0]} + resTexRC.x; - } - `;return new l.GlslLibRoutine(e)}getOutputUnpacked2DCoords(o,t){const e=` - ivec2 getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${t[0]}, ${t[1]})); - int index = resTexRC.y * ${t[0]} + resTexRC.x; - int r = index / ${o[1]}; - int c = index - r * ${o[1]}; - return ivec2(r, c); - } - `;return new l.GlslLibRoutine(e)}getOutputUnpacked3DCoords(o,t){let e="";const r=o.length;let i=null;r<2&&(i=[]),i=new Array(r-1),i[r-2]=o[r-1];for(let m=r-3;m>=0;--m)i[m]=i[m+1]*o[m+1];const c=["r","c","d"],g=i.map((m,b)=>`int ${c[b]} = index / ${m}; ${b===i.length-1?`int ${c[b+1]} = index - ${c[b]} * ${m}`:`index -= ${c[b]} * ${m}`};`).join("");return e=` - ivec3 getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${t[0]}, ${t[1]})); - int index = resTexRC.y * ${t[0]} + resTexRC.x; - ${g} - return ivec3(r, c, d); - } - `,new l.GlslLibRoutine(e)}getOutputUnpacked4DCoords(o,t){let e="";const r=o.length;let i=null;r<2&&(i=[]),i=new Array(r-1),i[r-2]=o[r-1];for(let m=r-3;m>=0;--m)i[m]=i[m+1]*o[m+1];const c=["r","c","d","d2"],g=i.map((m,b)=>`int ${c[b]} = index / ${m}; ${b===i.length-1?`int ${c[b+1]} = index - ${c[b]} * ${m}`:`index -= ${c[b]} * ${m}`};`).join("");return e=` - ivec4 getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${t[0]}, ${t[1]})); - int index = resTexRC.y * ${t[0]} + resTexRC.x; - ${g} - return ivec4(r, c, d, d2); - } - `,new l.GlslLibRoutine(e)}getOutputUnpacked5DCoords(o,t){let e="";const r=o.length;let i=null;r<2&&(i=[]),i=new Array(r-1),i[r-2]=o[r-1];for(let m=r-3;m>=0;--m)i[m]=i[m+1]*o[m+1];const c=["r","c","d","d2","d3"],g=i.map((m,b)=>`int ${c[b]} = index / ${m}; ${b===i.length-1?`int ${c[b+1]} = index - ${c[b]} * ${m}`:`index -= ${c[b]} * ${m}`};`).join("");return e=` - ivec5 getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${t[0]}, ${t[1]})); - int index = resTexRC.y * ${t[0]} + resTexRC.x; - ${g} - return ivec5(r, c, d, d2, d3); - } - `,new l.GlslLibRoutine(e)}getOutputUnpacked6DCoords(o,t){let e="";const r=o.length;let i=null;r<2&&(i=[]),i=new Array(r-1),i[r-2]=o[r-1];for(let m=r-3;m>=0;--m)i[m]=i[m+1]*o[m+1];const c=["r","c","d","d2","d3","d4"],g=i.map((m,b)=>`int ${c[b]} = index / ${m}; ${b===i.length-1?`int ${c[b+1]} = index - ${c[b]} * ${m}`:`index -= ${c[b]} * ${m}`};`).join("");return e=` - ivec6 getOutputCoords() { - ivec2 resTexRC = ivec2(TexCoords.xy * - vec2(${t[0]}, ${t[1]})); - int index = resTexRC.y * ${t[0]} + resTexRC.x; - ${g} - return ivec6(r, c, d, d2, d3, d4); - } - `,new l.GlslLibRoutine(e)}getCommonUtilFuncs(){const o={};let t="uvFromFlat";o[t]=new l.GlslLibRoutine(` - vec2 uvFromFlat(int texNumR, int texNumC, int index) { - int texC = index / texNumR; - int texR = index - texC * texNumR; - // TODO: swap texR, texC order in following function so row is corresponding to u and column is corresponding to - // v. - return (vec2(texR, texC) + halfCR) / vec2(texNumR, texNumC); - } - `),t="packedUVfrom1D",o[t]=new l.GlslLibRoutine(` - vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { - int texelIndex = index / 2; - int texR = texelIndex / texNumC; - int texC = texelIndex - texR * texNumC; - return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); - } - `),t="packedUVfrom2D",o[t]=new l.GlslLibRoutine(` - vec2 packedUVfrom2D(int texNumR, int texNumC, int texelsInLogicalRow, int row, int col) { - int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); - int texR = texelIndex / texNumC; - int texC = texelIndex - texR * texNumC; - return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); - } - `),t="packedUVfrom3D",o[t]=new l.GlslLibRoutine(` - vec2 packedUVfrom3D(int texNumR, int texNumC, - int texelsInBatch, int texelsInLogicalRow, int b, - int row, int col) { - int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2); - int texR = index / texNumC; - int texC = index - texR * texNumC; - return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); - } - `),t="sampleTexture";const e=(0,p.getGlsl)(this.context.glContext.version);return o[t]=new l.GlslLibRoutine(` - float sampleTexture(sampler2D textureSampler, vec2 uv) { - return ${e.texture2D}(textureSampler, uv).r; - }`),o}getInputsSamplingSnippets(){const o={},t=this.context.outputTextureLayout;return this.context.programInfo.inputNames.forEach((e,r)=>{const i=this.context.inputTextureLayouts[r],c=(0,h.generateShaderFuncNameFromInputSamplerName)(e);i.isPacked?o[c]=this.getPackedSamplerFromInput(c,e,i):o[c]=this.getUnpackedSamplerFromInput(c,e,i);const g=(0,h.generateShaderFuncNameFromInputSamplerNameAtOutCoords)(e);i.unpackedShape.length<=t.unpackedShape.length&&(i.isPacked?o[g]=this.getPackedSamplerAtOutputCoords(g,i,t,e):o[g]=this.getUnpackedSamplerAtOutputCoords(g,i,t,e))}),o}getPackedSamplerAtOutputCoords(o,t,e,r){const i=t.unpackedShape,c=e.unpackedShape,g=r,m=(0,h.generateShaderFuncNameFromInputSamplerName)(g),b=i.length,_=c.length,w=d.BroadcastUtil.getBroadcastDims(i,c),v=(0,h.getCoordsDataType)(_),S=_-b;let O;const E=(0,h.getGlChannels)();O=b===0?"":_<2&&w.length>=1?"coords = 0;":w.map(N=>`coords.${E[N+S]} = 0;`).join(` -`);let T="";T=_<2&&b>0?"coords":i.map((N,H)=>`coords.${E[H+S]}`).join(", ");let I="return outputValue;";const C=d.ShapeUtil.size(i)===1,B=d.ShapeUtil.size(c)===1;if(b!==1||C||B){if(C&&!B)I=_===1?` - return vec4(outputValue.x, outputValue.x, 0., 0.); - `:` - return vec4(outputValue.x); - `;else if(w.length){const N=b-2,H=b-1;w.indexOf(N)>-1&&w.indexOf(H)>-1?I="return vec4(outputValue.x);":w.indexOf(N)>-1?I="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":w.indexOf(H)>-1&&(I="return vec4(outputValue.xx, outputValue.zz);")}}else I=` - return vec4(outputValue.xy, outputValue.xy); - `;const F=` - vec4 ${o}() { - ${v} coords = getOutputCoords(); - - int lastDim = coords.${E[_-1]}; - coords.${E[_-1]} = coords.${E[_-2]}; - coords.${E[_-2]} = lastDim; - - ${O} - vec4 outputValue = ${m}(${T}); - ${I} - } - `;return new l.GlslLibRoutine(F,["coordinates.getOutputCoords"])}getUnpackedSamplerAtOutputCoords(o,t,e,r){const i=[e.width,e.height],c=[t.width,t.height],g=t.unpackedShape.length,m=e.unpackedShape.length,b=t.unpackedShape,_=e.unpackedShape,w=(0,h.generateShaderFuncNameFromInputSamplerName)(r);if(g===m&&d.ArrayUtil.arraysEqual(c,i)){const B=` - float ${o}() { - return sampleTexture(${r}, TexCoords); - } - `;return new l.GlslLibRoutine(B,["coordinates.sampleTexture"])}const v=(0,h.getCoordsDataType)(m),S=d.BroadcastUtil.getBroadcastDims(b,_),O=m-g;let E;const T=(0,h.getGlChannels)();E=g===0?"":m<2&&S.length>=1?"coords = 0;":S.map(B=>`coords.${T[B+O]} = 0;`).join(` -`);let I="";I=m<2&&g>0?"coords":t.unpackedShape.map((B,F)=>`coords.${T[F+O]}`).join(", ");const C=` - float ${o}() { - ${v} coords = getOutputCoords(); - ${E} - return ${w}(${I}); - } - `;return new l.GlslLibRoutine(C,["coordinates.getOutputCoords"])}getPackedSamplerFromInput(o,t,e){switch(e.unpackedShape.length){case 0:return this.getPackedSamplerScalar(o,t);case 1:return this.getPackedSampler1D(o,t,e);case 2:return this.getPackedSampler2D(o,t,e);case 3:return this.getPackedSampler3D(o,t,e);default:return this.getPackedSamplerND(o,t,e)}}getUnpackedSamplerFromInput(o,t,e){const r=e.unpackedShape;switch(r.length){case 0:return this.getUnpackedSamplerScalar(o,t,e);case 1:return this.getUnpackedSampler1D(o,t,e);case 2:return this.getUnpackedSampler2D(o,t,e);case 3:return this.getUnpackedSampler3D(o,t,e);case 4:return this.getUnpackedSampler4D(o,t,e);case 5:return this.getUnpackedSampler5D(o,t,e);case 6:return this.getUnpackedSampler6D(o,t,e);default:throw new Error(`Unsupported dimension ${r.length}-D`)}}getPackedSamplerScalar(o,t){const e=` - vec4 ${o}() { - return ${(0,p.getGlsl)(this.context.glContext.version).texture2D}(${t}, halfCR); - } - `;return new l.GlslLibRoutine(e)}getPackedSampler1D(o,t,e){const r=[e.width,e.height],i=[r[1],r[0]],c=(0,p.getGlsl)(this.context.glContext.version),g=`vec4 ${o}(int index) { - vec2 uv = packedUVfrom1D( - ${i[0]}, ${i[1]}, index); - return ${c.texture2D}(${t}, uv); - }`;return new l.GlslLibRoutine(g,["coordinates.packedUVfrom1D"])}getPackedSampler2D(o,t,e){const r=e.unpackedShape,i=[e.width,e.height],c=(0,p.getGlsl)(this.context.glContext.version),g=i[0],m=i[1];if(i!=null&&d.ArrayUtil.arraysEqual(r,i)){const v=`vec4 ${o}(int row, int col) { - vec2 uv = (vec2(col, row) + halfCR) / vec2(${m}.0, ${g}.0); - return ${c.texture2D}(${t}, uv); - }`;return new l.GlslLibRoutine(v)}const b=i,_=Math.ceil(r[1]/2),w=`vec4 ${o}(int row, int col) { - vec2 uv = packedUVfrom2D(${b[1]}, ${b[0]}, ${_}, row, col); - return ${c.texture2D}(${t}, uv); - }`;return new l.GlslLibRoutine(w,["coordinates.packedUVfrom2D"])}getPackedSampler3D(o,t,e){const r=e.unpackedShape,i=[e.width,e.height],c=[i[0],i[1]],g=(0,p.getGlsl)(this.context.glContext.version);if(r[0]===1){const v=r.slice(1),S=[1,2],O=(0,h.squeezeInputShape)(r,v),E=["b","row","col"],T=JSON.parse(JSON.stringify(e));T.unpackedShape=O;const I=this.getPackedSamplerFromInput(o,t,T),C=`${I.routineBody} - vec4 ${o}(int b, int row, int col) { - return ${o}(${(0,h.getSqueezedParams)(E,S)}); - } `;return new l.GlslLibRoutine(C,I.dependencies)}const m=c[0],b=c[1],_=Math.ceil(r[2]/2),w=`vec4 ${o}(int b, int row, int col) { - vec2 uv = packedUVfrom3D( - ${b}, ${m}, ${_*Math.ceil(r[1]/2)}, ${_}, b, row, col); - return ${g.texture2D}(${t}, uv);}`;return new l.GlslLibRoutine(w,["coordinates.packedUVfrom3D"])}getPackedSamplerND(o,t,e){const r=e.unpackedShape,i=r.length,c=[e.width,e.height],g=(0,p.getGlsl)(this.context.glContext.version),m=[c[0],c[1]],b=m[1],_=m[0],w=Math.ceil(r[i-1]/2);let v=w*Math.ceil(r[i-2]/2),S="int b, int row, int col",O=`b * ${v} + (row / 2) * ${w} + (col / 2)`;for(let T=2;T<i-1;T++)S=`int b${T}, `+S,v*=r[i-T-1],O=`b${T} * ${v} + `+O;const E=`vec4 ${o}(${S}) { - int index = ${O}; - int texR = index / ${_}; - int texC = index - texR * ${_}; - vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${_}, ${b}); - return ${g.texture2D}(${t}, uv); - }`;return new l.GlslLibRoutine(E)}getUnpackedSamplerScalar(o,t,e){const[r,i]=[e.width,e.height];if(r===1&&i===1){const g=` - float ${o}() { - return sampleTexture(${t}, halfCR); - } - `;return new l.GlslLibRoutine(g,["coordinates.sampleTexture"])}const c=` - float ${o}() { - int offset_${t} = coordsToOffset(TexCoords, ${r}, ${i}); - vec2 uv = uvFromFlat(${r}, ${i}, offset_${t}); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(c,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}getUnpackedSampler1D(o,t,e){const r=e.width,i=e.height;if(i===1&&r===1){const g=` - float ${o}(int index) { - return sampleTexture(${t}, halfCR); - } - `;return new l.GlslLibRoutine(g,["coordinates.sampleTexture"])}if(i===1){const g=` - float ${o}(int index) { - vec2 uv = vec2((float(index) + 0.5) / ${r}.0, 0.5); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(g,["coordinates.sampleTexture"])}if(r===1){const g=` - float ${o}(int index) { - vec2 uv = vec2(0.5, (float(index) + 0.5) / ${i}.0); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(g,["coordinates.sampleTexture"])}const c=` - float ${o}(int index) { - vec2 uv = uvFromFlat(${r}, ${i}, index); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(c,["coordinates.uvFromFlat","coordinates.sampleTexture"])}getUnpackedSampler2D(o,t,e){const r=e.unpackedShape,i=[e.height,e.width];if(i!=null&&d.ArrayUtil.arraysEqual(r,i)){const v=` - float ${o}(int row, int col) { - vec2 uv = (vec2(row, col) + halfCR) / vec2(${i[1]}.0, ${i[0]}.0); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(v,["coordinates.sampleTexture"])}const{newShape:c,keptDims:g}=(0,s.squeezeShape)(r),m=c;if(m.length<r.length){const v=(0,h.squeezeInputShape)(r,m),S=JSON.parse(JSON.stringify(e));S.unpackedShape=v;const O=["col","row"],E=` - ${this.getUnpackedSamplerFromInput(o,t,S).routineBody} - float ${o}(int row, int col) { - return ${o}(${(0,h.getSqueezedParams)(O,g)}); - } - `;return new l.GlslLibRoutine(E,["coordinates.sampleTexture"])}const b=i[1],_=i[0];if(_===1){const v=` - float ${o}(int row, int col) { - int offset_${t} = coordsToOffset(TexCoords, ${b}, ${_}); - float index = dot(vec3(row, col, offset_${t}), vec3(${r[1]}, 1, 1)); - vec2 uv = vec2(0.5, (index + 0.5) / ${b}.0); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(v,["coordinates.sampleTexture","coordinates.coordsToOffset"])}if(b===1){const v=` - float ${o}(int row, int col) { - int offset_${t} = coordsToOffset(TexCoords, ${b}, ${_}); - float index = dot(vec3(row, col, offset_${t}), vec3(${r[1]}, 1, 1)); - vec2 uv = vec2((index + 0.5) / ${_}.0, 0.5); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(v,["coordinates.sampleTexture","coordinates.coordsToOffset"])}const w=` - float ${o}(int row, int col) { - int index = col * ${r[1]} + row; - vec2 uv = uvFromFlat(${b}, ${_}, index); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(w,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}getUnpackedSampler3D(o,t,e){const r=e.unpackedShape,i=r[1]*r[2],c=r[2],{newShape:g,keptDims:m}=(0,s.squeezeShape)(r),b=g;if(b.length<r.length){const w=(0,h.squeezeInputShape)(r,b),v=["batch","col","row"],S=JSON.parse(JSON.stringify(e));S.unpackedShape=w;const O=this.getUnpackedSamplerFromInput(o,t,S),E=m.reverse(),T=` - ${O.routineBody} - float ${o}(int batch, int row, int col) { - return ${o}(${(0,h.getSqueezedParams)(v,E)}); - } - `;return new l.GlslLibRoutine(T,O.dependencies)}const _=` - float ${o}(int depth, int row, int col) { - // Explicitly use integer operations as dot() only works on floats. - int index = depth * ${i} + col * ${c} + row; - vec2 uv = uvFromFlat(${e.width}, ${e.height}, index); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(_,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}getUnpackedSampler4D(o,t,e){const r=e.unpackedShape,i=r[3],c=r[2]*i,g=` - float ${o}(int row, int col, int depth, int depth2) { - int index = row * ${r[1]*c} + col * ${c} + - depth2 * ${i} + depth; - vec2 uv = uvFromFlat(${e.width}, ${e.height}, index); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(g,["coordinates.uvFromFlat","coordinates.sampleTexture"])}getUnpackedSampler5D(o,t,e){const r=e.unpackedShape,i=r[4],c=r[3]*i,g=r[2]*c,m=r[1]*g,{newShape:b,keptDims:_}=(0,s.squeezeShape)(r);if(b.length<r.length){const v=(0,h.squeezeInputShape)(r,b),S=["row","col","depth","depth2","depth3"],O=JSON.parse(JSON.stringify(e));O.unpackedShape=v;const E=` - ${this.getUnpackedSamplerFromInput(o,t,O).routineBody} - float ${o}(int row, int col, int depth, int depth2, int depth3) { - return ${o}(${(0,h.getSqueezedParams)(S,_)}); - } - `;return new l.GlslLibRoutine(E,["coordinates.sampleTexture","coordinates.uvFromFlat"])}const w=` - float ${o}(int row, int col, int depth, int depth2, int depth3) { - int index = row * ${m} + col * ${g} + depth * ${c} + - depth3 * ${i} + depth2; - vec2 uv = uvFromFlat(${e.width}, ${e.height}, index); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(w,["coordinates.sampleTexture","coordinates.uvFromFlat"])}getUnpackedSampler6D(o,t,e){const r=e.unpackedShape,i=r[5],c=r[4]*i,g=r[3]*c,m=r[2]*g,b=r[1]*m,{newShape:_,keptDims:w}=(0,s.squeezeShape)(r);if(_.length<r.length){const S=(0,h.squeezeInputShape)(r,_),O=["row","col","depth","depth2","depth3","depth4"],E=JSON.parse(JSON.stringify(e));E.unpackedShape=S;const T=` - ${this.getUnpackedSamplerFromInput(o,t,E).routineBody} - float ${o}(int row, int col, int depth, - int depth2, int depth3, int depth4) { - return ${o}(${(0,h.getSqueezedParams)(O,w)}); - } - `;return new l.GlslLibRoutine(T,["coordinates.sampleTexture","coordinates.uvFromFlat"])}const v=` - float ${o}(int row, int col, int depth, - int depth2, int depth3, int depth4) { - int index = row * ${b} + col * ${m} + depth * ${g} + - depth2 * ${c} + depth3 * ${i} + depth4; - vec2 uv = uvFromFlat(${e.width}, ${e.height}, index); - return sampleTexture(${t}, uv); - } - `;return new l.GlslLibRoutine(v,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}toVec(){const o=this.context.outputTextureLayout,t=o.shape.length,e=o.strides,r=o.width,i=o.height,c=[];for(let m=0;m<t-1;++m)c.push(` - c[${m}] = offset / ${e[m]};`),c.push(` - offset -= c[${m}] * ${e[m]};`);c.push(` - c[${t-1}] = offset;`);const g=` - void toVec(vec2 texCoords, out int c[${t}]) { - int offset = coordsToOffset(texCoords, ${r}, ${i}); - ${c.join("")} - } - void toVec(int offset, out int c[${t}]) { - ${c.join("")} - } - `;return{toVec:new l.GlslLibRoutine(g,["coordinates.coordsToOffset"])}}valueFrom(){const o={};return this.context.programInfo.inputNames.forEach((t,e)=>{const r=this.context.inputTextureLayouts[e],i=(r.unpackedShape.length>0?r.unpackedShape:r.shape).length;let c=`_${t}`;o[c]=new l.GlslLibRoutine(this.getValueFromSingle(t,i,r.width,r.height,!1),[`shapeUtils.indicesToOffset${c}`,"coordinates.offsetToCoords","fragcolor.getColorAsFloat"]),c+="_T",o[c]=new l.GlslLibRoutine(this.getValueFromSingle(t,i,r.width,r.height,!0),[`shapeUtils.indicesToOffset${c}`,"coordinates.offsetToCoords","fragcolor.getColorAsFloat"])}),o}getValueFromSingle(o,t,e,r,i){let c=`_${o}`;return i&&(c+="_T"),` - float ${c}(int m[${t}]) { - int offset = indicesToOffset${c}(m); - vec2 coords = offsetToCoords(offset, ${e}, ${r}); - float value = getColorAsFloat(${(0,p.getGlsl)(this.context.glContext.version).texture2D}(${o}, coords)); - return value; - } - `}getPackedValueFrom(o,t,e,r,i){let c=`_${o}_Pack`;return i&&(c+="_T"),` - vec4 ${c}(int m[${t}]) { - int offset = indicesToOffset_${o}(m); - vec2 coords = offsetToCoords(offset, ${e}, ${r}); - return ${(0,p.getGlsl)(this.context.glContext.version).texture2D}(${o}, coords); - } - `}}n.CoordsGlslLib=f},8520:(y,n)=>{var u;Object.defineProperty(n,"__esModule",{value:!0}),n.TopologicalSortGlslRoutines=n.GlslLibRoutineNode=n.GlslLibRoutine=n.GlslLib=n.GlslContext=n.FunctionType=void 0,(u=n.FunctionType||(n.FunctionType={}))[u.ValueBased=0]="ValueBased",u[u.Positional=1]="Positional",n.GlslContext=class{constructor(d,l,p,s){this.glContext=d,this.programInfo=l,this.inputTextureLayouts=p,this.outputTextureLayout=s}},n.GlslLib=class{constructor(d){this.context=d}},n.GlslLibRoutine=class{constructor(d,l){this.routineBody=d,this.dependencies=l}},n.GlslLibRoutineNode=class{constructor(d,l,p){this.name=d,this.dependencies=p||[],l&&(this.routineBody=l)}addDependency(d){d&&this.dependencies.push(d)}},n.TopologicalSortGlslRoutines=class{static returnOrderedNodes(d){if(!d||d.length===0)return[];if(d.length===1)return d;const l=new Set,p=new Set,s=new Array;return this.createOrderedNodes(d,l,p,s),s}static createOrderedNodes(d,l,p,s){for(let h=0;h<d.length;++h)this.dfsTraverse(d[h],l,p,s)}static dfsTraverse(d,l,p,s){if(!d||p.has(d.name))return;if(l.has(d.name))throw new Error("Cyclic dependency detected. Can't topologically sort routines needed for shader.");l.add(d.name);const h=d.dependencies;if(h&&h.length>0)for(let f=0;f<h.length;++f)this.dfsTraverse(h[f],l,p,s);s.push(d),p.add(d.name),l.delete(d.name)}}},7341:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.EncodingGlslLib=void 0;const d=u(8520);class l extends d.GlslLib{constructor(s){super(s)}getFunctions(){return Object.assign(Object.assign({},this.encodeFloat32()),this.decodeFloat32())}getCustomTypes(){return{}}encodeFloat32(){return{encode:new d.GlslLibRoutine(`highp vec4 encode(highp float f) { - return vec4(f, 0.0, 0.0, 0.0); - } - `)}}decodeFloat32(){return{decode:new d.GlslLibRoutine(`highp float decode(highp vec4 rgba) { - return rgba.r; - } - `)}}encodeUint8(){const s=l.isLittleEndian()?"rgba.rgba=rgba.abgr;":"";return{encode:new d.GlslLibRoutine(` - highp vec4 encode(highp float f) { - highp float F = abs(f); - highp float Sign = step(0.0,-f); - highp float Exponent = floor(log2(F)); - highp float Mantissa = (exp2(- Exponent) * F); - Exponent = floor(log2(F) + 127.0) + floor(log2(Mantissa)); - highp vec4 rgba; - rgba[0] = 128.0 * Sign + floor(Exponent*exp2(-1.0)); - rgba[1] = 128.0 * mod(Exponent,2.0) + mod(floor(Mantissa*128.0),128.0); - rgba[2] = floor(mod(floor(Mantissa*exp2(23.0 -8.0)),exp2(8.0))); - rgba[3] = floor(exp2(23.0)*mod(Mantissa,exp2(-15.0))); - ${s} - rgba = rgba / 255.0; // values need to be normalized to [0,1] - return rgba; - } - `)}}decodeUint8(){const s=l.isLittleEndian()?"rgba.rgba=rgba.abgr;":"";return{decode:new d.GlslLibRoutine(` - highp float decode(highp vec4 rgba) { - rgba = rgba * 255.0; // values need to be de-normalized from [0,1] to [0,255] - ${s} - highp float Sign = 1.0 - step(128.0,rgba[0])*2.0; - highp float Exponent = 2.0 * mod(rgba[0],128.0) + step(128.0,rgba[1]) - 127.0; - highp float Mantissa = mod(rgba[1],128.0)*65536.0 + rgba[2]*256.0 +rgba[3] + float(0x800000); - highp float Result = Sign * exp2(Exponent) * (Mantissa * exp2(-23.0 )); - return Result; - } - `)}}static isLittleEndian(){const s=new ArrayBuffer(4),h=new Uint32Array(s),f=new Uint8Array(s);if(h[0]=3735928559,f[0]===239)return!0;if(f[0]===222)return!1;throw new Error("unknown endianness")}}n.EncodingGlslLib=l},9894:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.FragColorGlslLib=void 0;const d=u(8520),l=u(5060);class p extends d.GlslLib{constructor(h){super(h)}getFunctions(){return Object.assign(Object.assign({},this.setFragColor()),this.getColorAsFloat())}getCustomTypes(){return{}}setFragColor(){const h=(0,l.getGlsl)(this.context.glContext.version);return{setFragColor:new d.GlslLibRoutine(` - void setFragColor(float value) { - ${h.output} = encode(value); - } - `,["encoding.encode"])}}getColorAsFloat(){return{getColorAsFloat:new d.GlslLibRoutine(` - float getColorAsFloat(vec4 color) { - return decode(color); - } - `,["encoding.decode"])}}}n.FragColorGlslLib=p},2848:(y,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.replaceInlines=void 0;const u=/@inline[\s\n\r]+(\w+)[\s\n\r]+([0-9a-zA-Z_]+)\s*\(([^)]*)\)\s*{(([^}]|[\n\r])*)}/gm;n.replaceInlines=function(d){const l={};let p;for(;(p=u.exec(d))!==null;){const s=p[3].split(",").map(h=>{const f=h.trim().split(" ");return f&&f.length===2?{type:f[0],name:f[1]}:null}).filter(h=>h!==null);l[p[2]]={params:s,body:p[4]}}for(const s in l){const h="(\\w+)?\\s+([_0-9a-zA-Z]+)\\s+=\\s+__FUNC__\\((.*)\\)\\s*;".replace("__FUNC__",s),f=new RegExp(h,"gm");for(;(p=f.exec(d))!==null;){const a=p[1],o=p[2],t=p[3].split(","),e=a?`${a} ${o};`:"";let r=l[s].body,i="";l[s].params.forEach((g,m)=>{g&&(i+=`${g.type} ${g.name} = ${t[m]}; -`)}),r=`${i} - ${r}`,r=r.replace("return",`${o} = `);const c=` - ${e} - { - ${r} - } - `;d=d.replace(p[0],c)}}return d.replace(u,"")}},8879:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.GlslPreprocessor=void 0;const d=u(8520),l=u(2848),p=u(5483),s=u(5060);n.GlslPreprocessor=class{constructor(h,f,a,o){this.libs={},this.glslLibRoutineDependencyGraph={},this.context=new d.GlslContext(h,f,a,o),Object.keys(p.glslRegistry).forEach(e=>{const r=new p.glslRegistry[e](this.context);this.libs[e]=r});const t=this.glslLibRoutineDependencyGraph;for(const e in this.libs){const r=this.libs[e].getFunctions();for(const i in r){const c=e+"."+i;let g;t[c]?(g=t[c],g.routineBody=r[i].routineBody):(g=new d.GlslLibRoutineNode(c,r[i].routineBody),t[c]=g);const m=r[i].dependencies;if(m)for(let b=0;b<m.length;++b)if(t[m[b]])g.addDependency(t[m[b]]);else{const _=new d.GlslLibRoutineNode(m[b]);t[m[b]]=_,g.addDependency(_)}}}}preprocess(){const h=this.context.programInfo;let f=h.shaderSource;return this.context.programInfo.hasMain||(f=`${f} - ${(0,s.getDefaultFragShaderMain)(this.context.glContext.version,this.context.outputTextureLayout.shape.length)}`),f=(0,l.replaceInlines)(f),`${(0,s.getFragShaderPreamble)(this.context.glContext.version)} - ${this.getUniforms(h.inputNames,h.variables)} - ${this.getImports(f)} - ${f}`}getImports(h){const f=this.selectGlslLibRoutinesToBeIncluded(h);if(f.length===0)return"";let a="";for(let o=0;o<f.length;++o){if(!f[o].routineBody)throw new Error(`Missing body for the Glsl Library routine: ${f[o].name}`);a+=f[o].routineBody+` -`}return a}selectGlslLibRoutinesToBeIncluded(h){const f=[];return Object.keys(this.glslLibRoutineDependencyGraph).forEach(a=>{const o=a.split(".")[1];h.indexOf(o)!==-1&&f.push(this.glslLibRoutineDependencyGraph[a])}),d.TopologicalSortGlslRoutines.returnOrderedNodes(f)}getUniforms(h,f){const a=[];if(h)for(const o of h)a.push(`uniform sampler2D ${o};`);if(f)for(const o of f)a.push(`uniform ${o.type} ${o.name}${o.arrayLength?`[${o.arrayLength}]`:""};`);return a.join(` -`)}}},5483:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.glslRegistry=void 0;const d=u(5107),l=u(7341),p=u(9894),s=u(2655),h=u(3891);n.glslRegistry={encoding:l.EncodingGlslLib,fragcolor:p.FragColorGlslLib,vec:h.VecGlslLib,shapeUtils:s.ShapeUtilsGlslLib,coordinates:d.CoordsGlslLib}},2655:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ShapeUtilsGlslLib=void 0;const d=u(8520);class l extends d.GlslLib{constructor(s){super(s)}getFunctions(){return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},this.bcastIndex()),this.bcastMatmulIndex()),this.offsetToIndices()),this.indicesToOffset()),this.incrementIndices())}getCustomTypes(){return{}}bcastIndex(){const s=this.context.outputTextureLayout.shape.length,h={};return this.context.programInfo.inputNames.forEach((f,a)=>{const o=this.context.inputTextureLayouts[a].unpackedShape;if(o.length<=s){const t=o.length,e=s-t,r=`bcastIndices_${f}`;let i="";for(let g=0;g<t;++g)i+=` - realIndices[${g}] = int( mod(float(bcastedIndices[${e+g}]), ${o[g]}.0) ); - `;const c=` - void ${r} (int bcastedIndices[${s}], out int realIndices[${t}]) { - ${i} - } - `;h[r]=new d.GlslLibRoutine(c)}}),h}bcastMatmulIndex(){const s=this.context.outputTextureLayout.shape.length,h={};return this.context.programInfo.inputNames.forEach((f,a)=>{const o=this.context.inputTextureLayouts[a].shape;if(!(o.length<2||o.length>s)){const t=o.length,e=s-t,r=`bcastMatmulIndices_${f}`;let i="";for(let g=0;g<t-2;++g)i+=` - realIndices[${g}] = int( mod(float(bcastedIndices[${e+g}]), ${o[g]}.0) ); - `;const c=` - void ${r}(int bcastedIndices[${s}], out int realIndices[${t}]) { - ${i} - realIndices[${t-1}] = bcastedIndices[${s-1}]; - realIndices[${t-2}] = bcastedIndices[${s-2}]; - } - `;h[r]=new d.GlslLibRoutine(c)}}),h}indicesToOffset(){const s={};return this.context.programInfo.inputNames.forEach((h,f)=>{const a=this.context.inputTextureLayouts[f].shape,o=this.context.inputTextureLayouts[f].strides,t=a.length;let e=`indicesToOffset_${h}`;s[e]=new d.GlslLibRoutine(l.indexToOffsetSingle(e,t,o)),e=`indicesToOffset_${h}_T`,s[e]=new d.GlslLibRoutine(l.indexToOffsetSingle(e,t,o.slice().reverse()))}),s}static indexToOffsetSingle(s,h,f){let a="";for(let o=h-1;o>=0;--o)a+=` - offset += indices[${o}] * ${f[o]}; - `;return` - int ${s}(int indices[${h}]) { - int offset = 0; - ${a} - return offset; - } - `}offsetToIndices(){const s={};return this.context.programInfo.inputNames.forEach((h,f)=>{const a=this.context.inputTextureLayouts[f].shape,o=this.context.inputTextureLayouts[f].strides,t=a.length;let e=`offsetToIndices_${h}`;s[e]=new d.GlslLibRoutine(l.offsetToIndicesSingle(e,t,o)),e=`offsetToIndices_${h}_T`,s[e]=new d.GlslLibRoutine(l.offsetToIndicesSingle(e,t,o.slice().reverse()))}),s}static offsetToIndicesSingle(s,h,f){const a=[];for(let o=0;o<h-1;++o)a.push(` - indices[${o}] = offset / ${f[o]};`),a.push(` - offset -= indices[${o}] * ${f[o]};`);return a.push(` - indices[${h-1}] = offset;`),` - void ${s}(int offset, out int indices[${h}]) { - ${a.join("")} - } - `}incrementIndices(){const s={};return this.context.programInfo.inputNames.forEach((h,f)=>{const a=this.context.inputTextureLayouts[f].shape,o=a.length,t=`incrementIndices_${h}`;let e="";for(let i=0;i<o;++i)e+=` - shape[${i}] = ${a[i]};`;const r=` - void ${t}(int axis, out int indices[${o}]) { - int shape[${o}]; - ${e}; - for(int i = ${o} -1 ; i >= 0; --i) { - if(i > axis) continue; - indices[i] += 1; - if(indices[i] < shape[i]) { - break; - } - indices[i] = 0; - } - } - `;s[t]=new d.GlslLibRoutine(r)}),s}}n.ShapeUtilsGlslLib=l},5060:(y,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.getDefaultFragShaderMain=n.getFragShaderPreamble=n.getVertexShaderSource=n.getGlsl=void 0;const u={version:"",attribute:"attribute",varyingVertex:"varying",varyingFrag:"varying",texture2D:"texture2D",output:"gl_FragColor",outputDeclaration:""},d={version:"#version 300 es",attribute:"in",varyingVertex:"out",varyingFrag:"in",texture2D:"texture",output:"outputColor",outputDeclaration:"out vec4 outputColor;"};function l(p){return p===1?u:d}n.getGlsl=l,n.getVertexShaderSource=function(p){const s=l(p);return`${s.version} - precision highp float; - ${s.attribute} vec3 position; - ${s.attribute} vec2 textureCoord; - - ${s.varyingVertex} vec2 TexCoords; - - void main() - { - gl_Position = vec4(position, 1.0); - TexCoords = textureCoord; - }`},n.getFragShaderPreamble=function(p){const s=l(p);return`${s.version} - precision highp float; - precision highp int; - precision highp sampler2D; - ${s.varyingFrag} vec2 TexCoords; - ${s.outputDeclaration} - const vec2 halfCR = vec2(0.5, 0.5); - - // Custom vector types to handle higher dimenalities. - struct ivec5 - { - int x; - int y; - int z; - int w; - int u; - }; - - struct ivec6 - { - int x; - int y; - int z; - int w; - int u; - int v; - }; - - int imod(int x, int y) { - return x - y * (x / y); - } - - `},n.getDefaultFragShaderMain=function(p,s){return` - void main() { - int indices[${s}]; - toVec(TexCoords, indices); - vec4 result = vec4(process(indices)); - ${l(p).output} = result; - } - `}},3891:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.VecGlslLib=void 0;const d=u(8520);class l extends d.GlslLib{constructor(s){super(s)}getCustomTypes(){return{}}getFunctions(){return Object.assign(Object.assign(Object.assign(Object.assign({},this.binaryVecFunctions()),this.copyVec()),this.setVecItem()),this.getVecItem())}binaryVecFunctions(){const s=this.context.outputTextureLayout.shape.length,h={add:"+=",sub:"-=",mul:"*=",div:"/="},f={};for(const a in h){const o=`${a}Vec`;let t="";for(let r=0;r<s;++r)t+=` - dest[${r}] ${h[a]} src[${r}]; - `;const e=` - void ${o}(int src[${s}], out int dest[${s}]) { - ${t} - } - `;f[o]=new d.GlslLibRoutine(e)}return f}copyVec(){const s=this.context.outputTextureLayout.shape.length;let h="";for(let a=0;a<s;++a)h+=` - dest[${a}] = src[${a}]; - `;const f=` - void copyVec(int src[${s}], out int dest[${s}]) { - ${h} - } - `;return{copyVec:new d.GlslLibRoutine(f)}}setVecItem(){const s=this.context.outputTextureLayout.shape.length;let h=` - if(index < 0) - index =${s} + index; - if (index == 0) - m[0] = value; - `;for(let a=1;a<s-1;++a)h+=` - else if (index == ${a}) - m[${a}] = value; - `;h+=` - else - m[${s-1}] = value; - `;const f=` - void setVecItem(out int m[${s}], int index, int value) { - ${h} - } - `;return{setVecItem:new d.GlslLibRoutine(f)}}getVecItem(){const s=this.context.outputTextureLayout.shape.length;let h=` - if(index < 0) - index = ${s} + index; - if (index == 0) - return m[0]; - `;for(let a=1;a<s-1;++a)h+=` - else if (index == ${a}) - return m[${a}]; - `;h+=` - else - return m[${s-1}]; - `;const f=` - int getVecItem(int m[${s}], int index) { - ${h} - } - `;return{getVecItem:new d.GlslLibRoutine(f)}}}n.VecGlslLib=l},8316:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.WebGLInferenceHandler=void 0;const d=u(6231),l=u(9162),p=u(2517),s=u(2403),h=u(7019),f=u(8710),a=u(5611),o=u(4057),t=u(2039);n.WebGLInferenceHandler=class{constructor(e){this.session=e,this.packedTextureDataCache=new Map,this.unpackedTextureDataCache=new Map}calculateTextureWidthAndHeight(e,r){return(0,o.calculateTextureWidthAndHeight)(this.session.layoutStrategy,e,r)}executeProgram(e,r){if(r.length<e.inputNames.length)throw new Error(`Input size mustn't be less than ${e.inputNames.length}.`);if(e.inputNames.length!==e.inputTypes.length)throw new Error("input names size does not match input types");const i=[];for(let w=0;w<e.inputNames.length;++w)i[w]=this.getOrCreateTextureData(r[w],e.inputTypes[w]);const c=((w,v)=>{const S=v.map(E=>`${E.unpackedShape.join(",")};${E.width}x${E.height}`).join("_");let O=w.name;return w.cacheHint&&(O+="["+w.cacheHint+"]"),O+=":"+S,O})(e,i);let g=this.session.programManager.getArtifact(c);const m=g?g.programInfo:typeof e.get=="function"?e.get():e,b=(0,o.createTextureLayoutFromTextureType)(this.session.layoutStrategy,m.output.dims,m.output.textureType),_=this.createTextureData(b,m.output.type);return g||(g=this.session.programManager.build(m,i,_),this.session.programManager.setArtifact(c,g)),this.runProgram(g,i,_),_}run(e,r){return this.executeProgram(e,r).tensor}runProgram(e,r,i){for(let c=0;c<r.length;++c)if(!!r[c].isPacked!=(e.programInfo.inputTypes[c]===t.TextureType.packed))throw new Error(`input[${c}] property packed inconsistent`);if(!!i.isPacked!=(e.programInfo.output.textureType===t.TextureType.packed))throw new Error("output property packed inconsistent");this.session.programManager.run(e,r,i)}getOrCreateTextureData(e,r){let i=this.getTextureData(e.dataId,r===t.TextureType.packed);if(!i&&(i=this.getTextureData(e.dataId,r!==t.TextureType.packed),i))return r===t.TextureType.packed?this.pack(i):this.unpack(i);if(!i){const c=(0,o.createTextureLayoutFromTextureType)(this.session.layoutStrategy,e.dims,r);if(r===t.TextureType.packedLastDimension){const b=e.dims;if(b.length===4){const _=[b[0],Math.ceil(b[1]*b[2]*b[3]/4)],w=(0,o.createTextureLayoutFromTextureType)(this.session.layoutStrategy,_,r);let v=e.numberData;if(b[1]*b[2]*b[3]%4!=0){const S=b[0],O=b[1]*b[2]*b[3],E=Math.ceil(O*1/4)*4;v=new Float32Array(S*E);for(let T=0;T<S;++T){const I=T*O,C=T*E+T%1*O;v.set(e.numberData.subarray(I,I+O),C)}}return this.createTextureData(w,e.type,v,e,1)}}if(r===t.TextureType.packed){const g=(0,o.createTextureLayoutFromShape)(this.session.layoutStrategy,e.dims,1,[],{reverseWH:!0}),m=this.createTextureData(g,e.type,e.numberData,e,1);i=this.pack(m)}else i=this.createTextureData(c,e.type,e.numberData,e,1)}return i}createTextureDataFromLayoutBindTensor(e,r,i,c){return this.createTextureData(e,r,i,c,1)}createTextureData(e,r,i,c,g){d.Logger.verbose("InferenceHandler",`Creating TextureData: layout:[${JSON.stringify(e)}]`);const m=this.session.textureManager.createTextureFromLayout(r,e,i,g);return this.createTextureDataFromTexture(e,r,m,c)}reshapeUnpacked(e,r){const i=this.getOrCreateTextureData(e,t.TextureType.unpacked),c={channels:i.channels,height:i.height,width:i.width,shape:r.length!==0?r:[1],strides:p.ShapeUtil.computeStrides(r),unpackedShape:r};return this.createTextureDataFromTexture(c,e.type,i.texture).tensor}reshapePacked(e,r){const i=this.getOrCreateTextureData(e,t.TextureType.packed);if((0,h.isReshapeCheap)(e.dims,r)){const _={channels:i.channels,height:i.height,width:i.width,shape:r.length!==0?r:[1],strides:p.ShapeUtil.computeStrides(r),unpackedShape:r,isPacked:!0};return this.createTextureDataFromTexture(_,e.type,i.texture).tensor}const c=(0,h.processDims3D)(e.dims),g=(0,h.processDims3D)(r),m=this.reshapePacked(e,c),b=this.run((0,h.createPackedReshape3DProgramInfoLoader)(this,m,g),[m]);return this.reshapePacked(b,r)}cast(e,r){const i=this.getOrCreateTextureData(e,t.TextureType.unpacked);return this.createTextureDataFromTexture(i,r,i.texture).tensor}createTextureDataFromTexture(e,r,i,c,g){const m=Object.assign(Object.assign({},e),{tensor:c||new l.Tensor(e.unpackedShape,r,b=>this.readTexture(m),async b=>this.readTextureAsync(m),void 0,g),texture:i});return this.setTextureData(m.tensor.dataId,m,e.isPacked),m}getTextureData(e,r=!1){return this.session.isInitializer(e)?this.session.getTextureData(e,r):r?this.packedTextureDataCache.get(e):this.unpackedTextureDataCache.get(e)}setTextureData(e,r,i=!1){this.session.isInitializer(e)?this.session.setTextureData(e,r,i):(i?this.packedTextureDataCache:this.unpackedTextureDataCache).set(e,r)}isTextureLayoutCached(e,r=!1){return!!this.getTextureData(e.dataId,r)}dispose(){this.session.textureManager.clearActiveTextures(),this.packedTextureDataCache.forEach(e=>this.session.textureManager.releaseTexture(e)),this.packedTextureDataCache=new Map,this.unpackedTextureDataCache.forEach(e=>this.session.textureManager.releaseTexture(e)),this.unpackedTextureDataCache=new Map}readTexture(e){return e.isPacked?this.readTexture(this.unpack(e)):this.session.backend.glContext.isFloat32DownloadSupported?this.session.textureManager.readTexture(e,e.tensor.type,e.channels):this.session.textureManager.readUint8TextureAsFloat((0,f.encodeAsUint8)(this,e))}async readTextureAsync(e){return e.isPacked?this.readTextureAsync(this.unpack(e)):this.session.backend.glContext.isFloat32DownloadSupported?this.session.textureManager.readTextureAsync(e,e.tensor.type,e.channels):this.session.textureManager.readUint8TextureAsFloat((0,f.encodeAsUint8)(this,e))}pack(e){return this.executeProgram((0,s.createPackProgramInfoLoader)(this,e.tensor),[e.tensor])}unpack(e){return this.executeProgram((0,a.createUnpackProgramInfoLoader)(this,e.tensor),[e.tensor])}}},1640:function(y,n,u){var d=this&&this.__createBinding||(Object.create?function(X,te,ne,me){me===void 0&&(me=ne);var Ie=Object.getOwnPropertyDescriptor(te,ne);Ie&&!("get"in Ie?!te.__esModule:Ie.writable||Ie.configurable)||(Ie={enumerable:!0,get:function(){return te[ne]}}),Object.defineProperty(X,me,Ie)}:function(X,te,ne,me){me===void 0&&(me=ne),X[me]=te[ne]}),l=this&&this.__setModuleDefault||(Object.create?function(X,te){Object.defineProperty(X,"default",{enumerable:!0,value:te})}:function(X,te){X.default=te}),p=this&&this.__importStar||function(X){if(X&&X.__esModule)return X;var te={};if(X!=null)for(var ne in X)ne!=="default"&&Object.prototype.hasOwnProperty.call(X,ne)&&d(te,X,ne);return l(te,X),te};Object.defineProperty(n,"__esModule",{value:!0}),n.WEBGL_OP_RESOLVE_RULES=void 0;const s=u(2898),h=p(u(7839)),f=u(4196),a=u(2069),o=u(8138),t=u(9663),e=u(5193),r=u(7992),i=u(1253),c=u(4776),g=u(6572),m=u(3346),b=u(5623),_=u(2870),w=u(2143),v=u(4939),S=u(718),O=u(2268),E=u(8117),T=u(2278),I=u(5524),C=u(5975),B=u(3933),F=u(6558),N=u(5723),H=u(3738),$=p(u(4909)),z=u(8428),J=u(9793);n.WEBGL_OP_RESOLVE_RULES=[["Abs","","6+",$.abs],["Acos","","7+",$.acos],["Add","","7+",h.add],["And","","7+",h.and],["Asin","","7+",$.asin],["Atan","","7+",$.atan],["AveragePool","","7+",w.averagePool,w.parseAveragePoolAttributes],["BatchNormalization","","7+",s.batchNormalization,s.parseBatchNormalizationAttributes],["Cast","","6+",f.cast,f.parseCastAttributes],["Ceil","","6+",$.ceil],["Clip","","6-10",$.clip,$.parseClipAttributes],["Clip","","11+",$.clipV11],["Concat","","4+",a.concat,a.parseConcatAttributes],["Conv","","1+",o.conv,o.parseConvAttributes],["ConvTranspose","","1+",t.convTranspose,t.parseConvTransposeAttributes],["Cos","","7+",$.cos],["Div","","7+",h.div],["Dropout","","7+",$.identity],["DepthToSpace","","1+",e.depthToSpace,e.parseDepthToSpaceAttributes],["Equal","","7+",h.equal],["Elu","","6+",$.elu,$.parseEluAttributes],["Exp","","6+",$.exp],["Flatten","","1+",r.flatten,r.parseFlattenAttributes],["Floor","","6+",$.floor],["FusedConv","com.microsoft","1+",o.conv,o.parseConvAttributes],["Gather","","1+",i.gather,i.parseGatherAttributes],["Gemm","","7-10",c.gemm,c.parseGemmAttributesV7],["Gemm","","11+",c.gemm,c.parseGemmAttributesV11],["GlobalAveragePool","","1+",w.globalAveragePool,w.parseGlobalAveragePoolAttributes],["GlobalMaxPool","","1+",w.globalMaxPool],["Greater","","7+",h.greater],["Identity","","1+",$.identity],["ImageScaler","","1+",g.imageScaler,g.parseImageScalerAttributes],["InstanceNormalization","","6+",m.instanceNormalization,m.parseInstanceNormalizationAttributes],["LeakyRelu","","6+",$.leakyRelu,$.parseLeakyReluAttributes],["Less","","7+",h.less],["Log","","6+",$.log],["MatMul","","1+",b.matMul,b.parseMatMulAttributes],["MaxPool","","1+",w.maxPool,w.parseMaxPoolAttributes],["Mul","","7+",h.mul],["Neg","","6+",$.neg],["Not","","1+",$.not],["Or","","7+",h.or],["Pad","","2-10",_.padV2,_.parsePadAttributesV2],["Pad","","11+",_.padV11,_.parsePadAttributesV11],["Pow","","7+",h.pow],["PRelu","","7+",h.pRelu],["ReduceLogSum","","1+",v.reduceLogSum,v.parseReduceAttributes],["ReduceMax","","1+",v.reduceMax,v.parseReduceAttributes],["ReduceMean","","1+",v.reduceMean,v.parseReduceAttributes],["ReduceMin","","1+",v.reduceMin,v.parseReduceAttributes],["ReduceProd","","1+",v.reduceProd,v.parseReduceAttributes],["ReduceSum","","1-12",v.reduceSum,v.parseReduceAttributes],["ReduceSumSquare","","1+",v.reduceLogSumSquare,v.parseReduceAttributes],["Relu","","6+",$.relu],["Reshape","","5+",S.reshape],["Resize","","10",O.resize,O.parseResizeAttributesV10],["Resize","","11+",O.resize,O.parseResizeAttributesV11],["Shape","","1+",E.shape],["Sigmoid","","6+",$.sigmoid],["Sin","","7+",$.sin],["Slice","","10+",T.sliceV10],["Slice","","1-9",T.slice,T.parseSliceAttributes],["Softmax","","1-12",I.softmax,I.parseSoftmaxAttributes],["Softmax","","13+",I.softmaxV13,I.parseSoftmaxAttributesV13],["Split","","2-12",C.split,C.parseSplitAttributes],["Sqrt","","6+",$.sqrt],["Squeeze","","1-12",B.squeeze,B.parseSqueezeAttributes],["Squeeze","","13+",B.squeezeV13],["Sub","","7+",h.sub],["Sum","","6+",F.sum],["Tan","","7+",$.tan],["Tanh","","6+",$.tanh],["Tile","","6+",N.tile],["Transpose","","1+",H.transpose,H.parseTransposeAttributes],["Upsample","","7-8",J.upsample,J.parseUpsampleAttributesV7],["Upsample","","9",J.upsample,J.parseUpsampleAttributesV9],["Unsqueeze","","1-12",z.unsqueeze,z.parseUnsqueezeAttributes],["Unsqueeze","","13+",z.unsqueezeV13],["Xor","","7+",h.xor]]},2898:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseBatchNormalizationAttributes=n.batchNormalization=void 0;const d=u(246),l=u(5060),p=u(2039),s={name:"BatchNormalization",inputNames:["A","Scale","B","Mean","Variance"],inputTypes:[p.TextureType.unpacked,p.TextureType.unpacked,p.TextureType.unpacked,p.TextureType.unpacked,p.TextureType.unpacked]};n.batchNormalization=(a,o,t)=>(f(o),[a.run(Object.assign(Object.assign({},s),{cacheHint:t.cacheKey,get:()=>h(a,o,t)}),o)]),n.parseBatchNormalizationAttributes=a=>{const o=a.attributes.getFloat("epsilon",1e-5),t=a.attributes.getFloat("momentum",.9),e=a.attributes.getInt("spatial",1);return(0,d.createAttributeWithCacheKey)({epsilon:o,momentum:t,spatial:e})};const h=(a,o,t)=>{const e=(0,l.getGlsl)(a.session.backend.glContext.version),r=o[0].dims.length,[i,c]=a.calculateTextureWidthAndHeight(o[1].dims,p.TextureType.unpacked),g=` - float process(int[${r}] indices) { - vec2 position = offsetToCoords(indices[1], ${i}, ${c}); - float scale = getColorAsFloat(${e.texture2D}(Scale, position)); - float mean = getColorAsFloat(${e.texture2D}(Mean, position)); - float variance = getColorAsFloat(${e.texture2D}(Variance, position)); - float b = getColorAsFloat(${e.texture2D}(B, position)); - - return scale * ( (_A(indices) - mean) / sqrt(variance + float(${t.epsilon})) ) + b; - }`;return Object.assign(Object.assign({},s),{output:{dims:o[0].dims,type:o[0].type,textureType:p.TextureType.unpacked},shaderSource:g})},f=a=>{if(!a||a.length!==5)throw new Error("BatchNormalization requires 5 inputs.");const o=a[0],t=a[1],e=a[2],r=a[3],i=a[4];if(o.dims.length<3||t.dims.length!==1||e.dims.length!==1||r.dims.length!==1||i.dims.length!==1)throw new Error("invalid input shape.");if(t.dims[0]!==o.dims[1]||e.dims[0]!==o.dims[1]||r.dims[0]!==o.dims[1]||i.dims[0]!==o.dims[1])throw new Error("invalid input shape.");if(o.type!=="float32"&&o.type!=="float64"||t.type!=="float32"&&t.type!=="float64"||e.type!=="float32"&&e.type!=="float64"||r.type!=="float32"&&r.type!=="float64"||i.type!=="float32"&&i.type!=="float64")throw new Error("invalid input tensor types.")}},7839:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.xor=n.sub=n.pRelu=n.pow=n.or=n.mul=n.less=n.greater=n.equal=n.div=n.and=n.add=n.glslPRelu=n.glslPow=n.glslXor=n.glslOr=n.glslAnd=n.glslLess=n.glslGreater=n.glslEqual=n.glslSub=n.glslMul=n.glslDiv=n.glslAdd=void 0;const d=u(2517),l=u(8520),p=u(5060),s=u(2039);function h(){const v="add_";return{body:` - float ${v}(float a, float b) { - return a + b; - } - vec4 ${v}(vec4 v1, vec4 v2) { - return v1 + v2; - } - `,name:v,type:l.FunctionType.ValueBased}}function f(){const v="div_";return{body:` - float ${v}(float a, float b) { - return a / b; - } - vec4 ${v}(vec4 v1, vec4 v2) { - return v1 / v2; - } - `,name:v,type:l.FunctionType.ValueBased}}function a(){const v="mul_";return{body:` - float ${v}(float a, float b) { - return a * b; - } - vec4 ${v}(vec4 v1, vec4 v2) { - return v1 * v2; - } - `,name:v,type:l.FunctionType.ValueBased}}function o(){const v="sub_";return{body:` - float ${v}(float a, float b) { - return a - b; - } - vec4 ${v}(vec4 v1, vec4 v2) { - return v1 - v2; - } - `,name:v,type:l.FunctionType.ValueBased}}function t(){const v="equal_";return{body:` - float ${v}(float a, float b) { - return float(a == b); - } - vec4 ${v}(vec4 v1, vec4 v2) { - return vec4(equal(v1, v2)); - } - `,name:v,type:l.FunctionType.ValueBased}}function e(){const v="greater_";return{body:` - float ${v}(float a, float b) { - return float(a > b); - } - vec4 ${v}(vec4 v1, vec4 v2) { - return vec4( v1.r > v2.r , - v1.g > v2.g, - v1.b > v2.b, - v1.a > v2.a ); - } - `,name:v,type:l.FunctionType.ValueBased}}function r(){const v="less_";return{body:` - float ${v}(float a, float b) { - return float(a < b); - } - vec4 ${v}(vec4 v1, vec4 v2) { - return vec4( v1.r < v2.r , - v1.g < v2.g, - v1.b < v2.b, - v1.a < v2.a ); - } - `,name:v,type:l.FunctionType.ValueBased}}function i(){const v="and_";return{body:` - float ${v}(float a, float b) { - return float( bool(a) && bool(b) ); - } - vec4 ${v}(vec4 v1, vec4 v2) { - bvec4 b1 = bvec4(v1); - bvec4 b2 = bvec4(v2); - return vec4( b1.r && b2.r , - b1.g && b2.g, - b1.b && b2.b, - b1.a && b2.a ); - } - `,name:v,type:l.FunctionType.ValueBased}}function c(){const v="or_";return{body:` - float ${v}(float a, float b) { - return float( bool(a) || bool(b) ); - } - vec4 ${v}(vec4 v1, vec4 v2) { - bvec4 b1 = bvec4(v1); - bvec4 b2 = bvec4(v2); - return vec4( b1.r || b2.r , - b1.g || b2.g, - b1.b || b2.b, - b1.a || b2.a ); - } - `,name:v,type:l.FunctionType.ValueBased}}function g(){const v="xor_";return{body:` - float ${v}(float a, float b) { - return float( bool(a) ^^ bool(b) ); - } - vec4 ${v}(vec4 v1, vec4 v2) { - bvec4 b1 = bvec4(v1); - bvec4 b2 = bvec4(v2); - return vec4( b1.r ^^ b2.r , - b1.g ^^ b2.g, - b1.b ^^ b2.b, - b1.a ^^ b2.a ); - } - `,name:v,type:l.FunctionType.ValueBased}}function m(){return function(v){const S=`${v}_`;return{body:` - float ${S}(float a, float b) { - return ${v}(a, b); - } - vec4 ${S}(vec4 v1, vec4 v2) { - return ${v}(v1, v2); - } - `,name:S,type:l.FunctionType.ValueBased}}("pow")}function b(){const v="prelu_";return{body:` - float ${v}(float a, float b) { - return a < 0.0 ? a * b: a; - } - vec4 ${v}(vec4 v1, vec4 v2) { - return vec4( - v1.r < 0.0 ? v1.r * v2.r: v1.r, - v1.g < 0.0 ? v1.g * v2.g: v1.g, - v1.b < 0.0 ? v1.b * v2.b: v1.b, - v1.a < 0.0 ? v1.a * v2.a: v1.a - ); - } - `,name:v,type:l.FunctionType.ValueBased}}n.glslAdd=h,n.glslDiv=f,n.glslMul=a,n.glslSub=o,n.glslEqual=t,n.glslGreater=e,n.glslLess=r,n.glslAnd=i,n.glslOr=c,n.glslXor=g,n.glslPow=m,n.glslPRelu=b;const _=(v,S,O,E=S[0].type,T)=>{const I=v.session.pack?s.TextureType.packed:s.TextureType.unpacked;return{name:O.name,inputNames:["A","B"],inputTypes:[I,I],cacheHint:T,get:()=>w(v,S,O,E)}},w=(v,S,O,E=S[0].type)=>{const T=v.session.pack?s.TextureType.packed:s.TextureType.unpacked,I=!d.ShapeUtil.areEqual(S[0].dims,S[1].dims);let C=S[0].dims;const B=v.session.pack;if(I){const H=d.BroadcastUtil.calcShape(S[0].dims,S[1].dims,!1);if(!H)throw new Error("Can't perform binary op on the given tensors");C=H;const $=C.length,z=S[0].dims.length!==0?S[0].dims.length:1,J=S[1].dims.length!==0?S[1].dims.length:1,X=S[0].dims.length!==0?"bcastIndices_A(indices, aindices);":"aindices[0] = 0;",te=S[1].dims.length!==0?"bcastIndices_B(indices, bindices);":"bindices[0] = 0;",ne=(0,p.getGlsl)(v.session.backend.glContext.version),me=B?` - ${O.body} - void main() { - vec4 a = getAAtOutCoords(); - vec4 b = getBAtOutCoords(); - vec4 result = ${O.name}(a, b); - ${ne.output} = result; - }`:` - ${O.body} - float process(int indices[${$}]) { - int aindices[${z}]; - int bindices[${J}]; - ${X} - ${te} - return ${O.name}(_A(aindices), _B(bindices)); - }`;return{name:O.name,inputNames:["A","B"],inputTypes:[T,T],output:{dims:C,type:E,textureType:T},shaderSource:me,hasMain:B}}const F=(0,p.getGlsl)(v.session.backend.glContext.version),N=` - ${O.body} - void main() { - vec4 v1 = ${F.texture2D}(A, TexCoords); - vec4 v2 = ${F.texture2D}(B, TexCoords); - vec4 result = ${O.name}(v1, v2); - ${F.output} = result; - } - `;return{name:O.name,inputNames:["A","B"],inputTypes:[T,T],output:{dims:S[0].dims,type:E,textureType:T},shaderSource:N,hasMain:!0}};n.add=(v,S)=>[v.run(_(v,S,h()),S)],n.and=(v,S)=>[v.run(_(v,S,i(),"bool"),S)],n.div=(v,S)=>[v.run(_(v,S,f()),S)],n.equal=(v,S)=>[v.run(_(v,S,t(),"bool"),S)],n.greater=(v,S)=>[v.run(_(v,S,e(),"bool"),S)],n.less=(v,S)=>[v.run(_(v,S,r(),"bool"),S)],n.mul=(v,S)=>[v.run(_(v,S,a()),S)],n.or=(v,S)=>[v.run(_(v,S,c(),"bool"),S)],n.pow=(v,S)=>[v.run(_(v,S,m()),S)],n.pRelu=(v,S)=>[v.run(_(v,S,b()),S)],n.sub=(v,S)=>[v.run(_(v,S,o()),S)],n.xor=(v,S)=>[v.run(_(v,S,g(),"bool"),S)]},4196:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseCastAttributes=n.cast=void 0;const d=u(2517);n.cast=(p,s,h)=>(l(s),[p.cast(s[0],h)]),n.parseCastAttributes=p=>d.ProtoUtil.tensorDataTypeFromProto(p.attributes.getInt("to"));const l=p=>{if(!p||p.length!==1)throw new Error("Cast requires 1 input.");if(p[0].type==="string")throw new Error("Invalid input type.")}},1163:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createPackedConcatProgramInfoLoader=void 0;const d=u(5060),l=u(2039),p=u(9390),s=u(2827);n.createPackedConcatProgramInfoLoader=(f,a,o)=>{const t=(e=a.length,r=o.cacheKey,{name:"Concat (packed)",inputNames:Array.from({length:e},(i,c)=>`X${c}`),inputTypes:Array(e).fill(l.TextureType.packed),cacheHint:r});var e,r;return Object.assign(Object.assign({},t),{get:()=>((i,c,g,m)=>{const b=g[0].dims.slice();if(m>=b.length||m<-1*b.length)throw new Error("axis specified for concat doesn't match input dimensionality");m<0&&(m=b.length+m);const _=b.slice(0);for(let X=1;X<g.length;X++){const te=g[X].dims.slice();for(let ne=0;ne<b.length;ne++)if(ne===m)_[m]+=te[ne];else if(b[ne]!==te[ne])throw new Error("non concat dimensions must match")}const w=_.length,v=(0,s.getChannels)("coords",w),S=(0,p.getCoordsDataType)(w),O=(0,s.unpackFromChannel)(),E=g.map(X=>X.dims),T=(0,p.getGlChannels)(w),I=new Array(E.length-1);I[0]=E[0][m];for(let X=1;X<I.length;X++)I[X]=I[X-1]+E[X][m];const C=T[m],B=T.slice(-2),F=T.join();let N=`if (${C} < ${I[0]}) { - return getChannel( - getX0(${F}), vec2(${B.join()})); - }`;for(let X=1;X<I.length;X++){const te=I[X-1];N+=` - if (${C} < ${I[X]} && ${C} >= ${I[X-1]}) { - return getChannel( - getX${X}(${h(T,C,te)}), - vec2(${h(B,C,te)})); - }`}const H=I.length,$=I[I.length-1];N+=` - return getChannel( - getX${H}(${h(T,C,$)}), - vec2(${h(B,C,$)}));`;const z=(0,d.getGlsl)(i.session.backend.glContext.version),J=` - ${O} - float getValue(${T.map(X=>"int "+X)}) { - ${N} - } - - void main() { - ${S} coords = getOutputCoords(); - int lastDim = coords.${T[w-1]}; - coords.${T[w-1]} = coords.${T[w-2]}; - coords.${T[w-2]} = lastDim; - - vec4 result = vec4(getValue(${v}), 0., 0., 0.); - - ${v[w-1]} = ${v[w-1]} + 1; - if (${v[w-1]} < ${_[w-1]}) { - result.g = getValue(${v}); - } - - ${v[w-2]} = ${v[w-2]} + 1; - if (${v[w-2]} < ${_[w-2]}) { - result.a = getValue(${v}); - } - - ${v[w-1]} = ${v[w-1]} - 1; - if (${v[w-2]} < ${_[w-2]} && - ${v[w-1]} < ${_[w-1]}) { - result.b = getValue(${v}); - } - ${z.output} = result; - } - `;return Object.assign(Object.assign({},c),{output:{dims:_,type:g[0].type,textureType:l.TextureType.packed},shaderSource:J,hasMain:!0})})(f,t,a,o.axis)})};const h=(f,a,o)=>{const t=f.indexOf(a);return f.map((e,r)=>r===t?`${e} - ${o}`:e).join()}},2069:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseConcatAttributes=n.concat=void 0;const d=u(246),l=u(2039),p=u(1163);n.concat=(e,r,i)=>(t(r),e.session.pack&&r[0].dims.length>1?[e.run((0,p.createPackedConcatProgramInfoLoader)(e,r,i),r)]:[e.run(s(e,r,i),r)]);const s=(e,r,i)=>{const c=(g=r.length,m=i.cacheKey,{name:"Concat",inputNames:Array.from({length:g},(b,_)=>`X${_}`),inputTypes:Array(g).fill(l.TextureType.unpacked),cacheHint:m});var g,m;return Object.assign(Object.assign({},c),{get:()=>((b,_,w,v)=>{const S=w[0].dims.slice();if(v>=S.length||v<-1*S.length)throw new Error("axis specified for concat doesn't match input dimensionality");v<0&&(v=S.length+v);const O=S.slice(0);for(let F=1;F<w.length;F++){const N=w[F].dims.slice();for(let H=0;H<S.length;H++)if(H===v)O[v]+=N[H];else if(S[H]!==N[H])throw new Error("non concat dimensions must match")}const E=O.length,T=new Array(w.length);let I=0;for(let F=0;F<T.length;++F)I+=w[F].dims[v],T[F]=I;let C="";C=w.length<5?h(T):f(T);const B=` - ${a(w.length,E)} - ${o(T)} - ${C} - float process(int indices[${E}]) { - int textureIndex = getTextureWhereDataResides (indices[${v}]); - - if(textureIndex != 0) { - indices[${v}] = indices[${v}] - int(getSizeInConcatAxisValueFromIndex(textureIndex-int(1))); - } - - return fetchDataFromCorrectTexture(textureIndex, indices); - }`;return Object.assign(Object.assign({},_),{output:{dims:O,type:w[0].type,textureType:l.TextureType.unpacked},shaderSource:B})})(0,c,r,i.axis)})},h=e=>`int getTextureWhereDataResides(int index) { - ${e.map((r,i)=>`if(index<${r}) {return ${i};} -`).join("")} - }`,f=e=>h(e),a=(e,r)=>{const i=[`float fetchDataFromCorrectTexture(int textureIndex, int indices[${r}]) {`];for(let c=0;c<e;++c)c===0?i.push(` if (textureIndex == ${c}) { return _X${c}(indices); }`):c===e-1?i.push(` else { return _X${c}(indices); }`):i.push(` else if (textureIndex == ${c}) { return _X${c}(indices); }`);return i.push(" }"),i.join(` -`)},o=e=>{const r=["int getSizeInConcatAxisValueFromIndex(int index) {"];for(let i=0;i<e.length;++i)i===0?r.push(` if (index == ${i}) { return ${e[i]}; }`):i===e.length-1?r.push(` else { return ${e[i]}; }`):r.push(` else if (index == ${i}) { return ${e[i]}; }`);return r.push(" }"),r.join(` -`)};n.parseConcatAttributes=e=>(0,d.createAttributeWithCacheKey)({axis:e.attributes.getInt("axis")});const t=e=>{if(!e||e.length<1)throw new Error("too few inputs");const r=e[0].type,i=e[0].dims.length;if(r==="string")throw new Error("string tensor is not supported yet");for(const c of e){if(c.type!==r)throw new Error("input tensors should be one type");if(c.dims.length!==i)throw new Error("input tensors should have the same shape")}}},4770:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createUnpackedGroupedConvProgramInfoLoader=void 0;const d=u(6231),l=u(5060),p=u(2039),s=u(8138),h=u(2823);n.createUnpackedGroupedConvProgramInfoLoader=(f,a,o)=>{const t=(e=a.length>2,r=o.cacheKey,{name:"GroupedConv",inputNames:e?["X","W","Bias"]:["X","W"],inputTypes:e?[p.TextureType.unpacked,p.TextureType.unpacked,p.TextureType.unpacked]:[p.TextureType.unpacked,p.TextureType.unpacked],cacheHint:r});var e,r;return Object.assign(Object.assign({},t),{get:()=>((i,c,g,m)=>{const b=c.length>2?"value += getBias(output_channel);":"",_=c[0].dims.slice(),w=c[1].dims.slice(),v=w[0]/m.group;d.Logger.verbose("GroupedConv",`autpPad:${m.autoPad}, dilations:${m.dilations}, group:${m.group}, kernelShape:${m.kernelShape}, pads:${m.pads}, strides:${m.strides}`);const S=(0,s.calculateOutputShape)(_,w,m.dilations,m.pads,m.strides),O=(0,l.getGlsl)(i.session.backend.glContext.version),{activationFunction:E,applyActivation:T}=(0,h.getActivationSnippet)(m),I=` - const ivec2 strides = ivec2(${m.strides[0]}, ${m.strides[1]}); - const ivec2 pads = ivec2(${m.pads[0]}, ${m.pads[1]}); - ${E} - void main() { - ivec4 coords = getOutputCoords(); - int batch = coords.x; - int output_channel = coords.y; - ivec2 xRCCorner = coords.zw * strides - pads; - int group_id = output_channel / ${v}; - - float value = 0.0; - for (int wInChannel = 0; wInChannel < ${w[1]}; wInChannel++) { - int input_channel = group_id * ${w[1]} + wInChannel; - for (int wHeight = 0; wHeight < ${w[2]}; wHeight++) { - int xHeight = xRCCorner.x + wHeight * ${m.dilations[0]}; - - if (xHeight < 0 || xHeight >= ${_[2]}) { - continue; - } - - for (int wWidth = 0; wWidth < ${w[3]}; wWidth++) { - int xWidth = xRCCorner.y + wWidth * ${m.dilations[1]}; - if (xWidth < 0 || xWidth >= ${_[3]}) { - continue; - } - - float xVal = getX(batch, input_channel, xWidth, xHeight); - float wVal = getW(output_channel, wInChannel, wWidth, wHeight); - value += xVal*wVal; - } - } - } - ${b} - ${T} - ${O.output} = vec4(value, .0, .0, .0); - } -`;return Object.assign(Object.assign({},g),{output:{dims:S,type:c[0].type,textureType:p.TextureType.unpacked},shaderSource:I,hasMain:!0})})(f,a,t,o)})}},1386:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.conv2DPacked=n.conv2DPackedPointwise=void 0;const d=u(8138),l=u(8555),p=u(708);n.conv2DPackedPointwise=(s,h,f)=>{const a=h[0].dims,o=h[1].dims,t=(0,d.calculateOutputShape)(a,o,f.dilations,f.pads,f.strides),e=s.reshapePacked(h[0],[a[1],a[2]*a[3]]),r=s.reshapePacked(h[1],[o[0],o[1]]),i=h.length>2?[r,e,h[2]]:[r,e],c=s.run((0,p.createPackedMatmulProgramInfoLoader)(s,i,f),i);return s.reshapePacked(c,t)},n.conv2DPacked=(s,h,f)=>{const a=h[0].dims,o=h[1].dims,t=(0,d.calculateOutputShape)(a,o,f.dilations,f.pads,f.strides),e=s.run((0,l.createPackedIm2ColProgramInfoLoader)(s,h[0],h[1],t,f),[h[0]]),r=s.reshapePacked(h[1],[o[0],o[1]*o[2]*o[3]]),i=h.length===3?[r,e,h[2]]:[r,e],c=s.run((0,p.createPackedMatmulProgramInfoLoader)(s,i,f),i);return s.reshapePacked(c,t)}},9663:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseConvTransposeAttributes=n.convTranspose=void 0;const d=u(246),l=u(5060),p=u(2039),s=u(2823),h=(r,i,c,g,m,b)=>(r-1)*i+c+(g-1)*m+1-b,f=(r,i,c,g,m)=>{const b=Math.floor(r/2);i==="SAME_UPPER"?(c[g]=b,c[m]=r-b):i==="SAME_LOWER"&&(c[g]=r-b,c[m]=b)};n.convTranspose=(r,i,c)=>(e(i,c),a(r,i,c));const a=(r,i,c)=>{const g=t(c,i);return[o(r,i,g)]},o=(r,i,c)=>r.run(((g,m,b)=>{const _=(w=m.length>2,v=b.cacheKey,{name:"ConvTranspose",inputNames:w?["X","W","B"]:["X","W"],inputTypes:w?[p.TextureType.unpacked,p.TextureType.unpacked,p.TextureType.unpacked]:[p.TextureType.unpacked,p.TextureType.unpacked],cacheHint:v});var w,v;return Object.assign(Object.assign({},_),{get:()=>((S,O,E,T)=>{const I=O.length>2?"getB(output_channel)":"0.0",C=O[0].dims,B=O[1].dims,F=B[1],N=B[0]/T.group,H=[O[0].dims[0],O[1].dims[1]*T.group,...T.outputShape],$=(0,l.getGlsl)(S.session.backend.glContext.version),{activationFunction:z,applyActivation:J}=(0,s.getActivationSnippet)(T),X=` - const ivec2 strides = ivec2(${T.strides[0]}, ${T.strides[1]}); - const ivec2 pads = ivec2(${T.pads[0]}, ${T.pads[1]}); - ${z} - void main() { - ivec4 coords = getOutputCoords(); - int batch = coords.x; - int output_channel = coords.y; - - ivec2 loc = coords.zw + pads; - - int group_id = output_channel / ${F}; - int wOutChannel = output_channel - group_id * ${F}; - - float value = ${I}; - for (int inChannelOffset = 0; inChannelOffset < ${N}; inChannelOffset++) { - int input_channel = group_id * ${N} + inChannelOffset; - for (int wWOff = 0; wWOff < ${B[2]}; wWOff++) { - for (int wHOff = 0; wHOff < ${B[3]}; wHOff++) { - ivec2 wOff = ivec2(wWOff * ${T.dilations[0]}, wHOff * ${T.dilations[1]}); - ivec2 wLoc = loc - wOff; - ivec2 wLocIn = wLoc / strides; - if ( - wLocIn * strides == wLoc && - wLocIn.x >= 0 && wLocIn.x < ${C[2]} && - wLocIn.y >= 0 && wLocIn.y < ${C[3]} - ) { - float xVal = getX(batch, input_channel, wLocIn.y, wLocIn.x); - float wVal = getW(input_channel, wOutChannel, wHOff, wWOff); - value += xVal * wVal; - } - } - } - } - ${J} - ${$.output} = vec4(value, .0, .0, .0); - } -`;return Object.assign(Object.assign({},E),{output:{dims:H,type:O[0].type,textureType:p.TextureType.unpacked},shaderSource:X,hasMain:!0})})(g,m,_,b)})})(r,i,c),i),t=(r,i)=>{const c=r.kernelShape.slice();if(r.kernelShape.length===0)for(let _=2;_<i[1].dims.length;++_)c.push(i[1].dims[_]);const g=r.pads.slice(),m=r.outputShape.slice();((_,w,v,S,O,E,T,I)=>{const C=_.length-2,B=I.length===0;for(let F=0;F<C;++F){const N=B?_[F+2]*E[F]:I[F],H=h(_[F+2],E[F],O[F],w[F],v[F],N);f(H,S,O,F,F+C),B&&I.push(E[F]*(_[F+2]-1)+T[F]+(w[F]-1)*v[F]+1-O[F]-O[F+C])}})(i[0].dims,c,r.dilations,r.autoPad,g,r.strides,r.outputPadding,m);const b=Object.assign({},r);return Object.assign(b,{kernelShape:c,pads:g,outputShape:m,cacheKey:r.cacheKey}),b};n.parseConvTransposeAttributes=r=>{const i=r.attributes,c=(0,s.parseInternalActivationAttributes)(i),g=i.getString("auto_pad","NOTSET"),m=i.getInts("dilations",[1,1]),b=i.getInt("group",1),_=i.getInts("kernel_shape",[]),w=i.getInts("output_padding",[0,0]),v=i.getInts("output_shape",[]),S=i.getInts("pads",[0,0,0,0]),O=i.getInts("strides",[1,1]);return(0,d.createAttributeWithCacheKey)(Object.assign({autoPad:g,dilations:m,group:b,kernelShape:_,outputPadding:w,outputShape:v,pads:S,strides:O},c))};const e=(r,i)=>{if(!r||r.length!==2&&r.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(r[0].dims.length!==4||r[1].dims.length!==4)throw new Error("currently only support 2-dimensional conv");if(r[0].dims[1]!==r[1].dims[0])throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");const c=r[1].dims[1]*i.group;if(r.length===3&&(r[2].dims.length!==1||r[2].dims[0]!==c))throw new Error("invalid bias");const g=r[0].dims.length-2;if(i.dilations.length!==g)throw new Error(`dilations should be ${g}D`);if(i.strides.length!==g)throw new Error(`strides should be ${g}D`);if(i.pads.length!==2*g)throw new Error(`pads should be ${2*g}D`);if(i.outputPadding.length!==g)throw new Error(`output_padding should be ${g}D`);if(i.kernelShape.length!==0&&i.kernelShape.length!==r[1].dims.length-2)throw new Error("invalid kernel shape");if(i.outputShape.length!==0&&i.outputShape.length!==r[0].dims.length-2)throw new Error("invalid output shape");if(r[0].type!=="float32"||r[1].type!=="float32")throw new Error("ConvTranspose input(X,W) should be float tensor");if(r.length===3&&r[2].type!=="float32")throw new Error("ConvTranspose input(bias) should be float tensor")}},8138:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseConvAttributes=n.conv=n.calculateOutputShape=void 0;const d=u(246),l=u(2517),p=u(4770),s=u(1386),h=u(9828),f=u(2823),a=u(3248),o=u(5623);n.calculateOutputShape=(g,m,b,_,w)=>{const v=g[0],S=g.slice(2),O=S.length,E=m[0],T=m.slice(2).map((C,B)=>C+(C-1)*(b[B]-1)),I=S.map((C,B)=>C+_[B]+_[B+O]).map((C,B)=>Math.floor((C-T[B]+w[B])/w[B]));return[v,E].concat(...I)},n.conv=(g,m,b)=>(c(m,b),t(g,m,b));const t=(g,m,b)=>{const _=i(b,m),w=g.session.pack,v=_.kernelShape[0]===1&&_.kernelShape[1]===1;return _.group>1?[g.run((0,p.createUnpackedGroupedConvProgramInfoLoader)(g,m,_),m)]:v&&w?[e(g,m,_)]:w&&m[0].dims.length===4&&m[0].dims[0]===1&&!v?[(0,s.conv2DPacked)(g,m,_)]:[r(g,m,_)]},e=(g,m,b)=>{const _=m[0].dims,w=m[1].dims,v=(0,n.calculateOutputShape)(_,w,b.dilations,b.pads,b.strides),S=g.reshapeUnpacked(m[0],[_[1],_[2]*_[3]]),O=g.reshapeUnpacked(m[1],[w[0],w[1]]),E=m.length>2?[O,S,m[2]]:[O,S],T=g.run((0,o.createMatmulProgramInfoLoader)(E,b),E);return g.reshapeUnpacked(T,v)},r=(g,m,b)=>{const _=m[0].dims,w=m[1].dims,v=(0,n.calculateOutputShape)(_,w,b.dilations,b.pads,b.strides),S=g.run((0,a.createIm2ColProgramInfoLoader)(g,m[0],m[1],v,b),[m[0]]),O=m.length===3?[S,m[1],m[2]]:[S,m[1]];return g.run((0,h.createDotProductProgramInfoLoader)(g,m,v,b),O)},i=(g,m)=>{const b=g.kernelShape.slice();if(g.kernelShape.length===0)for(let v=2;v<m[1].dims.length;++v)b.push(m[1].dims[v]);const _=g.pads.slice();l.PoolConvUtil.adjustPadsBasedOnAutoPad(m[0].dims,g.strides,g.dilations,b,_,g.autoPad);const w=Object.assign({},g);return Object.assign(w,{kernelShape:b,pads:_,cacheKey:g.cacheKey}),w};n.parseConvAttributes=g=>{const m=g.attributes,b=(0,f.parseInternalActivationAttributes)(m),_=m.getString("auto_pad","NOTSET"),w=m.getInts("dilations",[1,1]),v=m.getInt("group",1),S=m.getInts("kernel_shape",[]),O=m.getInts("pads",[0,0,0,0]),E=m.getInts("strides",[1,1]);return(0,d.createAttributeWithCacheKey)(Object.assign({autoPad:_,dilations:w,group:v,kernelShape:S,pads:O,strides:E},b))};const c=(g,m)=>{if(!g||g.length!==2&&g.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(g[0].dims.length!==4||g[1].dims.length!==4)throw new Error("currently only support 2-dimensional conv");if(g[0].dims[1]!==g[1].dims[1]*m.group)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(g.length===3&&(g[2].dims.length!==1||g[1].dims[0]!==g[2].dims[0]))throw new Error("invalid bias");const b=g[0].dims.length-2;if(m.dilations.length!==b)throw new Error(`dilations should be ${b}D`);if(m.strides.length!==b)throw new Error(`strides should be ${b}D`);if(m.pads.length!==2*b)throw new Error(`pads should be ${2*b}D`);if(m.kernelShape.length!==0&&m.kernelShape.length!==g[1].dims.length-2)throw new Error("invalid kernel shape");if(g[0].type!=="float32"||g[1].type!=="float32")throw new Error("Conv input(X,W) should be float tensor");if(g.length===3&&g[2].type!=="float32")throw new Error("Conv input(bias) should be float tensor")}},5193:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseDepthToSpaceAttributes=n.depthToSpace=void 0;const d=u(3738);n.depthToSpace=(p,s,h)=>{l(s);const f=h.blocksize,a=f*f,o=h.mode==="DCR"?[0,3,4,1,5,2]:[0,1,4,2,5,3],t=h.mode==="DCR"?[s[0].dims[0],f,f,s[0].dims[1]/a,s[0].dims[2],s[0].dims[3]]:[s[0].dims[0],s[0].dims[1]/a,f,f,s[0].dims[2],s[0].dims[3]],e=p.reshapeUnpacked(s[0],t),r={perm:o,cacheKey:`${o}`},[i]=(0,d.transpose)(p,[e],r),c=[s[0].dims[0],s[0].dims[1]/a,s[0].dims[2]*f,s[0].dims[3]*f];return[p.reshapeUnpacked(i,c)]},n.parseDepthToSpaceAttributes=p=>{const s=p.attributes.getInt("blocksize");if(s<1)throw new Error(`blocksize must be >= 1, but got : ${s} for DepthToSpace`);const h=p.attributes.getString("mode","DCR");if(h!=="DCR"&&h!=="CRD")throw new Error(`unrecognized mode: ${h} for DepthToSpace`);return{mode:h,blocksize:s}};const l=p=>{if(p.length!==1)throw new Error(`DepthToSpace expect 1 inputs, but got ${p.length}`);if(p[0].type==="string"||p[0].dims.length!==4)throw new TypeError("DepthToSpace input should be a 4-D numeric tensor")}},9828:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createDotProductProgramInfoLoader=void 0;const d=u(2517),l=u(5060),p=u(2039),s=u(2823),h=u(3248);n.createDotProductProgramInfoLoader=(f,a,o,t)=>{const e=((r,i)=>({name:"ConvDotProduct",inputNames:r?["Im2Col","K","B"]:["Im2Col","K"],inputTypes:r?[p.TextureType.unpacked,p.TextureType.packedLastDimension,p.TextureType.unpacked]:[p.TextureType.unpacked,p.TextureType.packedLastDimension],cacheKey:i.activationCacheKey}))(a.length>2,t);return Object.assign(Object.assign({},e),{get:()=>((r,i,c,g,m)=>{const b=c[0].dims,_=c[1].dims,w=[_[0],Math.ceil(b[1]*_[2]*_[3]/4)],v=(0,h.calculateIm2ColDims)(b,_,g),[S,O]=r.calculateTextureWidthAndHeight(w,p.TextureType.packedLastDimension),E=d.ShapeUtil.computeStrides(v),[T,I]=r.calculateTextureWidthAndHeight(v,p.TextureType.packedLastDimension),C=g.length,B=c.length<3?"0.0":"_B(b)",F=Math.ceil(b[1]*_[2]*_[3]/4),{activationFunction:N,applyActivation:H}=(0,s.getActivationSnippet)(m),$=(0,l.getGlsl)(r.session.backend.glContext.version),z=` -${N} -float process(int indices[${C}]) { - int b[1]; - b[0] = indices[1]; - int im2col[4]; - im2col[0] = indices[0]; - im2col[1] = indices[2]; - im2col[2] = indices[3]; - int im2colOffset = im2col[0] * ${E[0]} + im2col[1] * ${E[1]} + im2col[2] * ${E[2]}; - int kernelOffset = indices[1] * ${w[1]}; - float value = ${B}; - for (int i = 0; i < ${F}; ++i) { - vec2 im2colCoords = offsetToCoords(im2colOffset, ${T}, ${I}); - vec2 kernelCoords = offsetToCoords(kernelOffset, ${S}, ${O}); - value += dot(${$.texture2D}(Im2Col, im2colCoords), ${$.texture2D}(K, kernelCoords)); - ++im2colOffset; - ++kernelOffset; - } - ${H} - return value; -}`;return Object.assign(Object.assign({},i),{output:{dims:g,type:c[0].type,textureType:p.TextureType.unpacked},shaderSource:z})})(f,e,a,o,t)})}},7992:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseFlattenAttributes=n.flatten=void 0;const d=u(2517);n.flatten=(p,s,h)=>{l(s,h);const f=d.ShapeUtil.flattenShape(s[0].dims,h);return[p.reshapeUnpacked(s[0],f)]},n.parseFlattenAttributes=p=>p.attributes.getInt("axis",1);const l=(p,s)=>{if(!p||p.length!==1)throw new Error("Flatten requires 1 input.");const h=p[0].dims.length;if(h===0)throw new Error("scalar tensor is not supported.");if(s<-h||s>h)throw new Error("Invalid axis");if(p[0].type==="string")throw new Error("string tensor is not supported.")}},2823:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseInternalActivationAttributes=n.getActivationSnippet=void 0;const d=u(2517),l=u(4909);n.getActivationSnippet=function(p){let s;switch(p.activation){case"Relu":s=(0,l.glslRelu)();break;case"Sigmoid":s=(0,l.glslSigmoid)();break;case"Clip":s=(0,l.glslClip)(p.clipMin,p.clipMax);break;default:return{activationFunction:"",applyActivation:""}}const h=s.name;return{activationFunction:s.body,applyActivation:`value = ${h}_(value);`}},n.parseInternalActivationAttributes=p=>{const s=p.getString("activation","");if(s==="Clip"){const[h,f]=p.getFloats("activation_params",[d.MIN_CLIP,d.MAX_CLIP]);return{activation:s,clipMax:f,clipMin:h,activationCacheKey:`${s}:${h},${f}`}}return{activation:s,activationCacheKey:s}}},1253:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseGatherAttributes=n.gather=void 0;const d=u(246),l=u(782),p=u(2517),s=u(2039);n.gather=(o,t,e)=>(a(t,e.axis),[o.run(f(o,t,e),t)]),n.parseGatherAttributes=o=>(0,d.createAttributeWithCacheKey)({axis:o.attributes.getInt("axis",0)});const h={name:"Gather",inputNames:["A","B"],inputTypes:[s.TextureType.unpacked,s.TextureType.unpacked]},f=(o,t,e)=>{const r=Object.assign(Object.assign({},h),{cacheHint:e.cacheKey});return Object.assign(Object.assign({},r),{get:()=>((i,c,g,m)=>{const b=g[0].dims.slice(),_=g[1].dims.slice(),w=new Array(b.length+_.length-1);m=p.ShapeUtil.normalizeAxis(m,b.length);const v=[];for(let O=0;O<w.length;O++)O<m?(w[O]=b[O],v.push(`inputIdx[${O}] = outputIdx[${O}];`)):O<m+_.length?(w[O]=_[O-m],v.push(`indexDataIdx[${O-m}] = outputIdx[${O}];`)):(w[O]=b[O-_.length+1],v.push(`inputIdx[${O-_.length+1}] = outputIdx[${O}];`));const S=` - float process(int outputIdx[${w.length||1}]) { - int inputIdx[${b.length}]; - int indexDataIdx[${_.length||1}]; - indexDataIdx[0] = 0; - ${v.join(` - `)} - int idx = int(_B(indexDataIdx)); - inputIdx[${m}] = idx < 0 ? idx + ${b[m]} : idx; - return _A(inputIdx); - }`;return Object.assign(Object.assign({},c),{output:{dims:w,type:g[0].type,textureType:s.TextureType.unpacked},shaderSource:S})})(0,r,t,e.axis)})},a=(o,t)=>{if(!o||o.length!==2)throw new Error("Gather requires 2 inputs.");const e=o[0].dims.length;if(e<1)throw new Error("Invalid input shape.");if(t<-e||t>e-1)throw new Error("Invalid axis.");if(l.NUMBER_TYPES.indexOf(o[0].type)===-1)throw new Error("Invaid input type.");if(o[1].type!=="int32"&&o[1].type!=="int16")throw new Error("Invaid input type.")}},4776:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseGemmAttributesV11=n.parseGemmAttributesV7=n.gemm=void 0;const d=u(246),l=u(2517),p=u(2039);n.gemm=(o,t,e)=>(a(t,e),[o.run(h(t,e),t)]);const s=(o,t)=>{const e=o.attributes.getInt("transA",0)!==0,r=o.attributes.getInt("transB",0)!==0,i=o.attributes.getFloat("alpha",1),c=o.attributes.getFloat("beta",1);return(0,d.createAttributeWithCacheKey)({transA:e,transB:r,alpha:i,beta:c,isOptionalC:t})};n.parseGemmAttributesV7=o=>s(o,!1),n.parseGemmAttributesV11=o=>s(o,!0);const h=(o,t)=>{const e={name:"Gemm",inputNames:o.length===3?["A","B","C"]:["A","B"],inputTypes:o.length===3?[p.TextureType.unpacked,p.TextureType.unpacked,p.TextureType.unpacked]:[p.TextureType.unpacked,p.TextureType.unpacked],key:t.cacheKey};return Object.assign(Object.assign({},e),{get:()=>f(e,o,t)})},f=(o,t,e)=>{const r=t[0].dims.slice(),i=t[1].dims.slice(),[c,g]=l.GemmUtil.getShapeOfGemmResult(r,e.transA,i,e.transB,t.length===3?t[2].dims:void 0),m=[c,g];if(!m)throw new Error("Can't use gemm on the given tensors");let b=r[r.length-1],_="";e.transA&&(b=r[0]),e.transA&&e.transB?_="value += _A_T(a) * _B_T(b);":e.transA&&!e.transB?_="value += _A_T(a) * _B(b);":!e.transA&&e.transB?_="value += _A(a) * _B_T(b);":e.transA||e.transB||(_="value += _A(a) * _B(b);");const w=m.length,v=` - float process(int indices[${w}]) { - int a[${w}]; - int b[${w}]; - ${t.length===3?`int c[${t[2].dims.length}];`:""} - - copyVec(indices, a); - copyVec(indices, b); - ${t.length===3?"bcastIndices_C(indices, c);":""} - - float value = 0.0; - for (int k=0; k<${b}; ++k) { - a[${w-1}] = k; - b[${w-2}] = k; - ${_} - } - - value = value * alpha; - ${t.length===3?"value += beta * _C(c);":""} - return value; - }`;return Object.assign(Object.assign({},o),{output:{dims:m,type:t[0].type,textureType:p.TextureType.unpacked},variables:[{name:"alpha",type:"float",data:e.alpha},{name:"beta",type:"float",data:e.beta}],shaderSource:v})},a=(o,t)=>{if(!o)throw new Error("Input is missing");if(t.isOptionalC&&(o.length<2||o.length>3))throw new Error("Invaid input shape.");if(!t.isOptionalC&&o.length!==3)throw new Error("Gemm requires 3 inputs");if(o.length===3&&o[2].dims.length!==1&&o[2].dims.length!==2)throw new Error("Invalid input shape of C");if(o[0].type!=="float32"&&o[0].type!=="float64"||o[1].type!=="float32"&&o[1].type!=="float64"||o.length===3&&o[2].type!=="float32"&&o[2].type!=="float64")throw new Error("Invalid input type.");if(o[0].type!==o[1].type||o.length===3&&o[0].type!==o[2].type)throw new Error("Input types are mismatched")}},8555:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createPackedIm2ColProgramInfoLoader=void 0;const d=u(5060),l=u(2039),p=u(2827);n.createPackedIm2ColProgramInfoLoader=(s,h,f,a,o)=>{const t=(e=o.cacheKey,{name:"Im2Col (packed)",inputNames:["A"],inputTypes:[l.TextureType.packed],cacheHint:e});var e;return Object.assign(Object.assign({},t),{get:()=>((r,i,c,g,m,b)=>{const _=c.dims,w=g.dims,v=m.length,S=[w[1]*w[2]*w[3],m[2]*m[3]],O=w[2]*w[3],E=(0,p.unpackFromChannel)(),T=(0,d.getGlsl)(r.session.backend.glContext.version);let I="";for(let B=0;B<=1;B++)for(let F=0;F<=1;F++)I+=` - blockIndex = rc.x + ${F}; - pos = rc.y + ${B}; - - if(blockIndex < ${S[1]} && pos < ${S[0]}) { - offsetY = int(blockIndex / (${m[v-1]})) * ${b.strides[0]} - - ${b.pads[0]}; - d0 = offsetY + ${b.dilations[0]} * (imod(pos, ${O}) / ${w[2]}); - - if(d0 < ${_[2]} && d0 >= 0) { - offsetX = imod(blockIndex, ${m[v-1]}) * ${b.strides[1]} - - ${b.pads[1]}; - d1 = offsetX + ${b.dilations[1]} * imod(imod(pos, ${O}), ${w[2]}); - - if(d1 < ${_[3]} && d1 >= 0) { - - ch = int(float(pos)/ ${O}.); - innerDims = vec2(d0, d1); - result[${2*B+F}] = getChannel( - getA(0, ch, int(innerDims.x), - int(innerDims.y)), innerDims); - } - } - } - - `;const C=` - ${E} - - void main() { - ivec2 rc = getOutputCoords(); - vec4 result = vec4(0.0); - int blockIndex, pos, offsetY, d0, offsetX, d1, ch; - vec2 innerDims; - ${I} - ${T.output} = result; - } - `;return Object.assign(Object.assign({},i),{output:{dims:S,type:c.type,textureType:l.TextureType.packed},shaderSource:C,hasMain:!0})})(s,t,h,f,a,o)})}},3248:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.calculateIm2ColDims=n.createIm2ColProgramInfoLoader=void 0;const d=u(2039);n.createIm2ColProgramInfoLoader=(l,p,s,h,f)=>{const a=(o=f.cacheKey,{name:"Im2Col",inputNames:["X"],inputTypes:[d.TextureType.unpacked],cacheHint:o});var o;return Object.assign(Object.assign({},a),{get:()=>((t,e,r,i,c,g)=>{const m=r.dims,b=i.dims,_=c.length,w=(0,n.calculateIm2ColDims)(m,b,c,4),v=` - const int XC = ${m[1]}; - const int XH = ${m[2]}; - const int XW = ${m[3]}; - const int KH = ${g.kernelShape[0]}; - const int KW = ${g.kernelShape[1]}; - const int dilationH = ${g.dilations[0]}; - const int dilationW = ${g.dilations[1]}; - const int strideH = ${g.strides[0]}; - const int strideW = ${g.strides[1]}; - const int padH = ${g.pads[0]}; - const int padW = ${g.pads[1]}; - const int KHKW = KH*KW; - const int XCKHKW = XC * KHKW; - const int outputChannels = 4; - vec4 process(int indices[${_}]) { - int b = indices[0]; // batch size - int oh = indices[1] * strideH - padH; //output height - int ow = indices[2] * strideW - padW; //output width - int p = indices[3] * outputChannels; //patch - vec4 value = vec4(0.0); - for(int i=0; i < outputChannels; ++i) { - if(p < XCKHKW) { - int patchC = p / KHKW; - int patchH = (p - patchC*KHKW) / KW; - int patchW = (p - patchC*KHKW) - patchH * KW; - int xh2 = oh + patchH * dilationH; - int xw2 = ow + patchW * dilationW; - int x[${m.length}]; - x[0] = b; - x[1] = patchC; - x[2] = xh2; - x[3] = xw2; - if(xh2 >= 0 && - xh2 < XH && - xw2 >= 0 && - xw2 < XW) { - value[i] = _X(x); - } - } - ++p; - } - return value; - } - `;return Object.assign(Object.assign({},e),{output:{dims:w,type:r.type,textureType:d.TextureType.packedLastDimension},shaderSource:v})})(0,a,p,s,h,f)})},n.calculateIm2ColDims=(l,p,s,h=4)=>[s[0],s[2],s[3],Math.ceil(l[1]*p[2]*p[3]/h)]},6572:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseImageScalerAttributes=n.imageScaler=void 0;const d=u(246),l=u(2039);n.imageScaler=(a,o,t)=>(f(o),[a.run(s(a,o,t),o)]),n.parseImageScalerAttributes=a=>{const o=a.attributes.getFloat("scale"),t=a.attributes.getFloats("bias");return(0,d.createAttributeWithCacheKey)({scale:o,bias:t})};const p={name:"ImageScaler",inputNames:["X"],inputTypes:[l.TextureType.unpacked]},s=(a,o,t)=>{const e=Object.assign(Object.assign({},p),{cacheHint:t.cacheKey});return Object.assign(Object.assign({},e),{get:()=>((r,i,c,g)=>{const m=c[0].dims.slice(),b=m.length,_=` - ${h(g.bias.length)} - float process(int indices[${b}]) { - return _X(indices) * scale + getBias(bias, indices[1]); - }`;return Object.assign(Object.assign({},i),{output:{dims:m,type:c[0].type,textureType:l.TextureType.unpacked},variables:[{name:"bias",type:"float",arrayLength:g.bias.length,data:g.bias},{name:"scale",type:"float",data:g.scale}],shaderSource:_})})(0,e,o,t)})},h=a=>{const o=[`float getBias(float bias[${a}], int channel) {`];for(let t=0;t<a;++t)t===0?o.push(` if (channel == ${t}) { return bias[${t}]; }`):t===a-1?o.push(` else { return bias[${t}]; }`):o.push(` else if (channel == ${t}) { return bias[${t}]; }`);return o.push(" }"),o.join(` -`)},f=a=>{if(!a||a.length!==1)throw new Error("ImageScaler requires 1 input.");if(a[0].dims.length!==4)throw new Error("Invalid input shape.");if(a[0].type!=="float32"&&a[0].type!=="float64")throw new Error("Invalid input type.")}},3346:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseInstanceNormalizationAttributes=n.instanceNormalization=void 0;const d=u(5060),l=u(2039);n.instanceNormalization=(o,t,e)=>{a(t);const r=o.run(s(t[0]),t);return[o.run(f(o,t[0],e,r.dims),[t[0],r,t[1],t[2]])]},n.parseInstanceNormalizationAttributes=o=>o.attributes.getFloat("epsilon",1e-5);const p={name:"InstanceNormalization_MeanAndVariance",inputNames:["X"],inputTypes:[l.TextureType.unpacked]},s=o=>Object.assign(Object.assign({},p),{get:()=>((t,e)=>{const r=e.dims.slice(),i=r[1],c=r[2]*r[3],g=[r[0],i],m=` - vec4 process(int[2] indices) { - vec4 v = vec4(0.0); - int a[4]; - a[0] = indices[0]; - a[1] = indices[1]; - float temp = 0.0; - for(int a2=0; a2<${r[2]}; a2++) { - a[2] = a2; - for(int a3=0; a3<${r[3]}; a3++) { - a[3] = a3; - float x = _X(a); - temp += x; - } - } - float mean = temp / float(${c}); - temp = 0.0; - for(int a2=0; a2<${r[2]}; a2++) { - a[2] = a2; - for(int a3=0; a3<${r[3]}; a3++) { - a[3] = a3; - float x = _X(a); - temp += (x - mean) * (x - mean); - } - } - v.r = mean; - v.g = temp / float(${c}); - - return v; - }`;return Object.assign(Object.assign({},t),{output:{dims:g,type:e.type,textureType:l.TextureType.packedLastDimension},shaderSource:m})})(p,o)}),h={name:"InstanceNormalization_ComputeOutput",inputNames:["X","MeanAndVariance","Scale","B"],inputTypes:[l.TextureType.unpacked,l.TextureType.packedLastDimension,l.TextureType.unpacked,l.TextureType.unpacked]},f=(o,t,e,r)=>{const i=Object.assign(Object.assign({},h),{cacheHint:`${e}`});return Object.assign(Object.assign({},i),{get:()=>((c,g,m,b,_)=>{const w=(0,d.getGlsl)(c.session.backend.glContext.version),[v,S]=c.calculateTextureWidthAndHeight(_,l.TextureType.packedLastDimension),[O,E]=[v/4,S],T=` - vec4 get_MeanAndVariance(int[2] mv) { - int offset = indicesToOffset_MeanAndVariance(mv); - vec2 coords = offsetToCoords(offset, ${O}, ${E}); - return ${w.texture2D}(MeanAndVariance, coords); - } - - float process(int[4] indices) { - int mv[2]; - mv[0] = indices[0]; - mv[1] = indices[1]; - vec4 mean_and_variance = get_MeanAndVariance(mv); - float mean = mean_and_variance.r; - float variance = mean_and_variance.g; - - int sb[1]; - sb[0] = indices[1]; - float scale = _Scale(sb); - float b = _B(sb); - - return scale * (_X(indices) - mean) / sqrt(variance + epsilon) + b; - }`;return Object.assign(Object.assign({},g),{output:{dims:m.dims,type:m.type,textureType:l.TextureType.unpacked},variables:[{name:"epsilon",type:"float",data:b}],shaderSource:T})})(o,i,t,e,r)})},a=o=>{if(!o||o.length!==3)throw new Error("InstanceNormalization requires 3 inputs.");const t=o[0],e=o[1],r=o[2];if(t.dims.length<3||e.dims.length!==1||r.dims.length!==1)throw new Error("Invalid input shape.");if(e.dims[0]!==t.dims[1]||r.dims[0]!==t.dims[1])throw new Error("Input shapes are mismatched.");if(t.type!=="float32"&&t.type!=="float64"||e.type!=="float32"&&e.type!=="float64"||r.type!=="float32"&&r.type!=="float64")throw new Error("Invalid input type.");if(o[0].dims.length!==4)throw new Error("Only support 4-D input shape.")}},708:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createPackedMatmulProgramInfoLoader=void 0;const d=u(2517),l=u(5060),p=u(2039),s=u(9390),h=u(2823),f=u(5623);n.createPackedMatmulProgramInfoLoader=(a,o,t)=>{const e=(r=o.length>2,i=t.activationCacheKey,{name:"MatMul (packed)",inputNames:r?["A","B","Bias"]:["A","B"],inputTypes:r?[p.TextureType.packed,p.TextureType.packed,p.TextureType.packed]:[p.TextureType.packed,p.TextureType.packed],cacheHint:i});var r,i;return Object.assign(Object.assign({},e),{get:()=>((c,g,m,b)=>{const _=m.length>2,w=_?"value += getBiasForMatmul();":"",v=m[0].dims,S=m[1].dims,O=d.BroadcastUtil.calcShape(v,S,!0),E=!d.ShapeUtil.areEqual(m[0].dims,m[1].dims);if(!O)throw new Error("Can't use matmul on the given tensors");const T=v[v.length-1],I=Math.ceil(T/2),C=v.length,B=S.length,F=(0,l.getGlsl)(c.session.backend.glContext.version),N=(0,s.getCoordsDataType)(O.length),H=O.length,$=(0,s.getGlChannels)(),{activationFunction:z,applyActivation:J}=(0,h.getActivationSnippet)(b),X=_?`${(0,f.getBiasForMatmul)(N,$,m[2].dims,O,!0)}`:"",te=E?`${function(Oe,ce,Te,_e){let Le=[],We=[];const Ae=Te[0].dims,Ce=Te[1].dims,Me=Ae.length,Ee=Ce.length,ve=_e.length,je=ve-Me,ze=ve-Ee;Le=Ae.map((Se,Fe)=>`coords.${ce[Fe+je]}`),Le[Me-1]="i*2",Le.join(", "),We=Ce.map((Se,Fe)=>`coords.${ce[Fe+ze]}`),We[Ee-2]="i*2",We.join(", ");const Ue=d.BroadcastUtil.getBroadcastDims(Ae,_e),He=d.BroadcastUtil.getBroadcastDims(Ce,_e),Ke=Ue.map(Se=>`coords.${ce[Se+je]} = 0;`).join(` -`),Ve=He.map(Se=>`coords.${ce[Se+ze]} = 0;`).join(` -`),Be=`int lastDim = coords.${ce[ve-1]}; - coords.${ce[ve-1]} = coords.${ce[ve-2]}; - coords.${ce[ve-2]} = lastDim;`;return` -vec4 getAAtOutCoordsMatmul(int i) { - ${Oe} coords = getOutputCoords(); - ${Be} - ${Ke} - vec4 outputValue = getA(${Le}); - return outputValue; -} - -vec4 getBAtOutCoordsMatmul(int i) { - ${Oe} coords = getOutputCoords(); - ${Be} - ${Ve} - vec4 outputValue = getB(${We}); - return outputValue; -}`}(N,$,m,O)}`:"",ne=E?"getAAtOutCoordsMatmul(i)":`getA(${function(Oe,ce){let Te="";for(let _e=0;_e<ce-2;_e++)Te+=`rc.${Oe[_e]}, `;return Te+=`rc.${Oe[ce-2]}, i*2`,Te}($,C)})`,me=E?"getBAtOutCoordsMatmul(i)":`getB(${function(Oe,ce){let Te="";for(let _e=0;_e<ce-2;_e++)Te+=`rc.${Oe[_e]}, `;return Te+=`i*2, rc.${Oe[ce-1]}`,Te}($,B)})`,Ie=` - ${te} - ${X} - ${z} - void main() { - ${E?"":`${N} rc = - getOutputCoords(); int lastDim = rc.${$[H-1]}; rc.${$[H-1]} = - rc.${$[H-2]}; rc.${$[H-2]} = lastDim; - `} - - vec4 value = vec4(0); - for (int i = 0; i < ${I}; i++) { - vec4 a = ${ne}; - vec4 b = ${me}; - - value += (a.rrbb * b.rgrg); - value += (a.ggaa * b.baba); - } - ${w} - ${J} - ${F.output} = value; - }`;return Object.assign(Object.assign({},g),{output:{dims:O,type:m[0].type,textureType:p.TextureType.packed},shaderSource:Ie,hasMain:!0})})(a,e,o,t)})}},5623:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.getBiasForMatmul=n.createMatmulProgramInfoLoader=n.parseMatMulAttributes=n.matMul=void 0;const d=u(2517),l=u(2039),p=u(9390),s=u(2823),h=u(708);function f(t,e){const r=(i=t.length>2,c=e.activationCacheKey,{name:"MatMul",inputNames:i?["A","B","Bias"]:["A","B"],inputTypes:i?[l.TextureType.unpacked,l.TextureType.unpacked,l.TextureType.unpacked]:[l.TextureType.unpacked,l.TextureType.unpacked],cacheHint:c});var i,c;return Object.assign(Object.assign({},r),{get:()=>function(g,m,b){const _=m[0].dims,w=m[1].dims,v=d.BroadcastUtil.calcShape(_,w,!0);if(!v)throw new Error("Can't use matmul on the given tensors");const S=(0,p.getCoordsDataType)(v.length),O=(0,p.getGlChannels)(),{activationFunction:E,applyActivation:T}=(0,s.getActivationSnippet)(b),I=m.length>2,C=I?"value += getBiasForMatmul();":"",B=I?`${o(S,O,m[2].dims,v,!1)}`:"",F=v.length,N=_.length,H=w.length,$=` - ${E} - ${B} - float process(int indices[${F}]) { - int a[${N}]; - int b[${H}]; - bcastMatmulIndices_A(indices, a); - bcastMatmulIndices_B(indices, b); - - float value; - for (int k=0; k<${_[_.length-1]}; ++k) { - a[${N-1}] = k; - b[${H-2}] = k; - value += _A(a) * _B(b); - } - ${C} - ${T} - return value; - }`;return Object.assign(Object.assign({},g),{output:{dims:v,type:m[0].type,textureType:l.TextureType.unpacked},shaderSource:$})}(r,t,e)})}n.matMul=(t,e,r)=>(a(e),t.session.pack?[t.run((0,h.createPackedMatmulProgramInfoLoader)(t,e,r),e)]:[t.run(f(e,r),e)]),n.parseMatMulAttributes=t=>(0,s.parseInternalActivationAttributes)(t.attributes),n.createMatmulProgramInfoLoader=f;const a=t=>{if(!t||t.length!==2)throw new Error("MatMul requires 2 inputs.");if(t[0].dims[t[0].dims.length-1]!==t[1].dims[t[1].dims.length-2])throw new Error("shared dimension does not match.");if(t[0].type!=="float32"&&t[0].type!=="float64"||t[1].type!=="float32"&&t[1].type!=="float64")throw new Error("inputs should be float type");if(t[0].type!==t[1].type)throw new Error("inputs types should match")};function o(t,e,r,i,c){let g="";const m=r.length,b=i.length,_=b-m;g=b<2&&m>0?"coords":r.map((S,O)=>`coords.${e[O+_]}`).join(", ");const w=d.BroadcastUtil.getBroadcastDims(r,i).map(S=>`coords.${e[S+_]} = 0;`).join(` -`);let v="vec4(outputValue.xx, outputValue.yy)";return d.ShapeUtil.size(r)===1&&(v="vec4(outputValue.x)"),c?` -vec4 getBiasForMatmul() { - ${t} coords = getOutputCoords(); - ${w} - vec4 outputValue = getBias(${g}); - return ${v}; -}`:` -float getBiasForMatmul() { - ${t} coords = getOutputCoords(); - ${w} - return getBias(coords.x); -}`}n.getBiasForMatmul=o},2403:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createPackProgramInfoLoader=void 0;const d=u(5060),l=u(2039),p=u(9390),s=u(2827),h={name:"pack",inputNames:["A"],inputTypes:[l.TextureType.unpackedReversed]};n.createPackProgramInfoLoader=(f,a)=>Object.assign(Object.assign({},h),{get:()=>((o,t)=>{const e=(0,d.getGlsl)(o.session.backend.glContext.version),r=t.dims,i=r.length,c=t.dims.length,g=(0,p.getCoordsDataType)(c),m=(0,s.getChannels)("rc",c),b=(_=c,w=m,v=r[r.length-2],S=r[r.length-1],_===0||_===1?"":` - int r = ${w[_-2]}; - int c = ${w[_-1]}; - int rp1 = ${w[_-2]} + 1; - int cp1 = ${w[_-1]} + 1; - bool rEdge = rp1 >= ${S}; - bool cEdge = cp1 >= ${v}; - `);var _,w,v,S;let O;O=i===0?[1,1]:i===1?[r[0],1]:[r[c-1],r[c-2]];const E=function(C,B,F){if(C===0)return"false";if(C===1)return`rc > ${B[0]}`;let N="";for(let H=C-2;H<C;H++)N+=`${F[H]} >= ${B[H-C+2]}`,H<C-1&&(N+="||");return N}(c,O,m),T=function(C,B){const F=C.length;if(F===0)return"getA(), 0, 0, 0";if(F===1)return`getA(rc), - rc + 1 >= ${C[0]} ? 0. : getA(rc + 1), - 0, 0`;let N="";if(F>2)for(let H=0;H<F-2;++H)N+=`${B[H]},`;return`getA(${N}r, c), - rEdge ? 0. : getA(${N}rp1, c), - cEdge ? 0. : getA(${N}r, cp1), - rEdge || cEdge ? 0. : getA(${N}rp1, cp1)`}(r,m),I=` - void main() { - ${g} rc = getOutputCoords(); - - if(${E}) { - ${e.output} = vec4(0); - } else { - ${b} - - ${e.output} = vec4(${T}); - } - } - `;return Object.assign(Object.assign({},h),{hasMain:!0,output:{dims:t.dims,type:t.type,textureType:l.TextureType.packed},shaderSource:I})})(f,a)})},2827:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.unpackFromChannel=n.getChannels=n.getVecChannels=void 0;const d=u(9390);function l(p,s){return(0,d.getGlChannels)(s).map(h=>`${p}.${h}`)}n.getVecChannels=l,n.getChannels=function(p,s){return s===1?[p]:l(p,s)},n.unpackFromChannel=function(){return` - float getChannel(vec4 frag, int dim) { - int modCoord = imod(dim, 2); - return modCoord == 0 ? frag.r : frag.g; - } - - float getChannel(vec4 frag, vec2 innerDims) { - vec2 modCoord = mod(innerDims, 2.); - return modCoord.x == 0. ? - (modCoord.y == 0. ? frag.r : frag.g) : - (modCoord.y == 0. ? frag.b : frag.a); - } - `}},2870:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parsePadAttributesV11=n.padV11=n.parsePadAttributesV2=n.padV2=void 0;const d=u(246),l=u(2517),p=u(5060),s=u(2039),h={name:"Pad",inputNames:["A"],inputTypes:[s.TextureType.unpacked]};n.padV2=(g,m,b)=>(o(m),[g.run(Object.assign(Object.assign({},h),{cacheHint:b.cacheKey,get:()=>a(g,m[0],b)}),m)]),n.parsePadAttributesV2=g=>{const m=g.attributes.getString("mode","constant"),b=g.attributes.getFloat("value",0),_=g.attributes.getInts("pads");return(0,d.createAttributeWithCacheKey)({mode:m,value:b,pads:_})},n.padV11=(g,m,b)=>{t(m);const _=f(g,m,b);return(0,n.padV2)(g,[m[0]],_)},n.parsePadAttributesV11=g=>g.attributes.getString("mode","constant");const f=(g,m,b)=>{if(!g.session.isInitializer(m[1].dataId)||m.length>=3&&!g.session.isInitializer(m[2].dataId))throw new Error("dynamic pad attributes are not allowed");const _=Array.from(m[1].integerData),w=m.length>=3?m[2].floatData[0]:0;return(0,d.createAttributeWithCacheKey)({mode:b,pads:_,value:w})},a=(g,m,b)=>{const _=l.ShapeUtil.padShape(m.dims.slice(),b.pads),w=_.length,v=` - ${e(g,m,b)} - float process(int[${w}] indices) { - return padA(indices); - }`;return{name:"Pad",inputNames:["A"],inputTypes:[s.TextureType.unpacked],output:{dims:_,type:m.type,textureType:s.TextureType.unpacked},shaderSource:v}},o=g=>{if(!g||g.length!==1)throw new Error("Pad requires 1 input");if(g[0].type!=="float32"&&g[0].type!=="float64")throw new Error("Invalid input type.")},t=g=>{if(!g||g.length!==2&&g.length!==3)throw new Error("Pad requires 2 or 3 inputs");if(g[1].type!=="int32")throw new Error("Invalid input type.");if(g.length>=3&&g[2].type==="string")throw new Error("Invalid input type.")},e=(g,m,b)=>{const _=(0,p.getGlsl)(g.session.backend.glContext.version),[w,v]=g.calculateTextureWidthAndHeight(m.dims,s.TextureType.unpacked),S=l.ShapeUtil.computeStrides(m.dims);switch(b.mode){case"constant":return r(_,m.dims,S,w,v,b.pads,b.value);case"reflect":return i(_,m.dims,S,w,v,b.pads);case"edge":return c(_,m.dims,S,w,v,b.pads);default:throw new Error("Invalid mode")}},r=(g,m,b,_,w,v,S)=>{const O=m.length;let E="";for(let T=O-1;T>=0;--T)E+=` - k = m[${T}] - ${v[T]}; - if (k < 0) return constant; - if (k >= ${m[T]}) return constant; - offset += k * ${b[T]}; - `;return` - float padA(int m[${O}]) { - const float constant = float(${S}); - int offset = 0; - int k = 0; - ${E} - vec2 coords = offsetToCoords(offset, ${_}, ${w}); - float value = getColorAsFloat(${g.texture2D}(A, coords)); - return value; - } - `},i=(g,m,b,_,w,v)=>{const S=m.length;let O="";for(let E=S-1;E>=0;--E)O+=` - k = m[${E}] - ${v[E]}; - if (k < 0) { k = -k; } - { - const int _2n_1 = ${2*(m[E]-1)}; - k = int( mod( float(k), float(_2n_1) ) ) ; - if(k >= ${m[E]}) { k = _2n_1 - k; } - } - offset += k * ${b[E]}; - `;return` - float padA(int m[${S}]) { - int offset = 0; - int k = 0; - ${O} - vec2 coords = offsetToCoords(offset, ${_}, ${w}); - float value = getColorAsFloat(${g.texture2D}(A, coords)); - return value; - } - `},c=(g,m,b,_,w,v)=>{const S=m.length;let O="";for(let E=S-1;E>=0;--E)O+=` - k = m[${E}] - ${v[E]}; - if (k < 0) k = 0; - if (k >= ${m[E]}) k = ${m[E]-1}; - offset += k * ${b[E]}; - `;return` - float padA(int m[${S}]) { - int offset = 0; - int k = 0; - ${O} - vec2 coords = offsetToCoords(offset, ${_}, ${w}); - float value = getColorAsFloat(${g.texture2D}(A, coords)); - return value; - } - `}},2143:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.globalMaxPool=n.parseMaxPoolAttributes=n.maxPool=n.parseGlobalAveragePoolAttributes=n.globalAveragePool=n.parseAveragePoolAttributes=n.averagePool=void 0;const d=u(246),l=u(2517),p=u(2039);n.averagePool=(c,g,m)=>{t(g);const b={name:"AveragePool",inputNames:["X"],inputTypes:[p.TextureType.unpacked],cacheHint:m.cacheKey};return[c.run(Object.assign(Object.assign({},b),{get:()=>s(g,b,!1,m)}),g)]},n.parseAveragePoolAttributes=c=>{const g=c.attributes.getString("auto_pad","NOTSET"),m=c.attributes.getInt("ceil_mode",0),b=c.attributes.getInt("count_include_pad",0)!==0,_=c.attributes.getInts("kernel_shape"),w=c.attributes.getInts("strides",[]),v=c.attributes.getInts("pads",[]);if(m!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");return(0,d.createAttributeWithCacheKey)({autoPad:g,ceilMode:m,countIncludePad:b,kernelShape:_,strides:w,pads:v})};const s=(c,g,m,b)=>{const[_,w]=f(c,b,m),v=l.ShapeUtil.size(_.kernelShape);let S="";_.countIncludePad?S+=`value /= float(${v});`:S+=`value /= float(${v} - pad);`;const O=` - ${e(c[0].dims,_,"value += _X(x);",S,"0.0")} - `;return Object.assign(Object.assign({},g),{output:{dims:w,type:c[0].type,textureType:p.TextureType.unpacked},shaderSource:O})};n.globalAveragePool=(c,g,m)=>{t(g);const b={name:"GlobalAveragePool",inputNames:["X"],inputTypes:[p.TextureType.unpacked],cacheHint:`${m.countIncludePad}`};return[c.run(Object.assign(Object.assign({},b),{get:()=>s(g,b,!0,m)}),g)]},n.parseGlobalAveragePoolAttributes=c=>{const g=c.attributes.getInt("count_include_pad",0)!==0;return(0,d.createAttributeWithCacheKey)({autoPad:"",ceilMode:0,countIncludePad:g,kernelShape:[],strides:[],pads:[]})},n.maxPool=(c,g,m)=>{t(g);const b={name:"MaxPool",inputNames:["X"],inputTypes:[p.TextureType.unpacked],cacheHint:m.cacheKey};return[c.run(Object.assign(Object.assign({},b),{get:()=>h(g,b,!1,m)}),g)]},n.parseMaxPoolAttributes=c=>{const g=c.attributes.getString("auto_pad","NOTSET"),m=c.attributes.getInt("ceil_mode",0),b=c.attributes.getInts("kernel_shape"),_=c.attributes.getInts("strides",[]),w=c.attributes.getInts("pads",[]),v=c.attributes.getInt("storage_order",0),S=c.attributes.getInts("dilations",[]);if(v!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(m!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");return(0,d.createAttributeWithCacheKey)({autoPad:g,ceilMode:m,countIncludePad:!1,kernelShape:b,strides:_,pads:w,storageOrder:v,dilations:S})};const h=(c,g,m,b)=>{const[_,w]=f(c,b,m),v=` - ${e(c[0].dims,_,` - value = max(_X(x), value); - `,"","-1e5")} - `;return Object.assign(Object.assign({},g),{output:{dims:w,type:c[0].type,textureType:p.TextureType.unpacked},shaderSource:v})},f=(c,g,m)=>{const b=c[0].dims.slice(),_=Object.hasOwnProperty.call(g,"dilations"),w=g.kernelShape.slice(),v=g.strides.slice(),S=_?g.dilations.slice():[],O=g.pads.slice();l.PoolConvUtil.adjustPoolAttributes(m,b,w,v,S,O);const E=l.PoolConvUtil.computePoolOutputShape(m,b,v,S,w,O,g.autoPad),T=Object.assign({},g);return _?Object.assign(T,{kernelShape:w,strides:v,pads:O,dilations:S,cacheKey:g.cacheKey}):Object.assign(T,{kernelShape:w,strides:v,pads:O,cacheKey:g.cacheKey}),[T,E]},a={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[],cacheKey:""},o={name:"GlobalMaxPool",inputNames:["X"],inputTypes:[p.TextureType.unpacked]};n.globalMaxPool=(c,g)=>(t(g),[c.run(Object.assign(Object.assign({},o),{get:()=>h(g,o,!0,a)}),g)]);const t=c=>{if(!c||c.length!==1)throw new Error("Pool ops requires 1 input.");if(c[0].type!=="float32"&&c[0].type!=="float64")throw new Error("Invalid input type.")},e=(c,g,m,b,_)=>{const w=c.length;if(g.kernelShape.length<=2){const v=g.kernelShape[g.kernelShape.length-1],S=g.strides[g.strides.length-1],O=g.pads[g.pads.length/2-1],E=g.pads[g.pads.length-1],T=c[w-1];let I="",C="",B="";if(I=O+E!==0?` - for (int i = 0; i < ${v}; i++) { - x[${w} - 1] = indices[${w} - 1] * ${S} - ${O} + i; - if (x[${w} - 1] < 0 || x[${w} - 1] >= ${T}) { - pad++; - continue; - } - ${m} - }`:` - for (int i = 0; i < ${v}; i++) { - x[${w} - 1] = indices[${w} - 1] * ${S} - ${O} + i; - ${m} - }`,g.kernelShape.length===2){const F=g.kernelShape[g.kernelShape.length-2],N=g.strides[g.strides.length-2],H=g.pads[g.pads.length/2-2],$=g.pads[g.pads.length-2],z=c[w-2];C=H+$!==0?` - for (int j = 0; j < ${F}; j++) { - x[${w} - 2] = indices[${w} - 2] * ${N} - ${H} + j; - if (x[${w} - 2] < 0 || x[${w} - 2] >= ${z}) { - pad+= ${v}; - continue; - } - `:` - for (int j = 0; j < ${F}; j++) { - x[${w} - 2] = indices[${w} - 2] * ${N} - ${H} + j; - `,B=` - } - `}return` - float process(int indices[${w}]) { - int x[${w}]; - copyVec(indices, x); - - float value = ${_}; - int pad = 0; - ${C} - ${I} - ${B} - ${b} - return value; - } - `}{const v=l.ShapeUtil.size(g.kernelShape),S=l.ShapeUtil.computeStrides(g.kernelShape),O=S.length,E=g.pads.length,T=i(O),I=r(c,"inputDims"),C=r(g.pads,"pads"),B=r(S,"kernelStrides"),F=r(g.strides,"strides");let N="";return N=g.pads.reduce((H,$)=>H+$)?` - if (x[j] >= inputDims[j] || x[j] < 0) { - pad++; - isPad = true; - break; - } - } - if (!isPad) { - ${m} - }`:` - } - ${m} - `,` - ${T} - float process(int indices[${w}]) { - int x[${w}]; - copyVec(indices, x); - int offset[${O}]; - int pads[${E}]; - int inputDims[${w}]; - int kernelStrides[${O}]; - int strides[${O}]; - ${C} - ${I} - ${F} - ${B} - - float value = ${_}; - int pad = 0; - bool isPad = false; - for (int i = 0; i < ${v}; i++) { - offsetToIndices(i, kernelStrides, offset); - isPad = false; - for (int j = ${w} - ${O}; j < ${w}; j++) { - x[j] = indices[j] * strides[j - ${w} + ${O}] - + offset[j - ${w} + ${O}] - pads[j - 2]; - ${N} - } - ${b} - - return value; - } - `}},r=(c,g)=>{let m="";for(let b=0;b<c.length;b++)m+=` - ${g}[${b}] = ${c[b]}; - `;return m},i=c=>` - void offsetToIndices(int offset, int[${c}] strides, out int[${c}] indices) { - if (${c} == 0) { - return; - } - for (int i = 0; i < ${c} - 1; ++i) { - indices[i] = offset / strides[i]; - offset -= indices[i] * strides[i]; - } - indices[${c} - 1] = offset; - }`},4939:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.reduceLogSumSquare=n.reduceLogSum=n.reduceProd=n.reduceMin=n.reduceMax=n.reduceMean=n.reduceSum=n.parseReduceAttributes=void 0;const d=u(246),l=u(782),p=u(2517),s=u(2039),h=(o,t,e,r,i)=>{a(t);const c={name:r,inputNames:["A"],inputTypes:[s.TextureType.unpacked]};return[o.run(Object.assign(Object.assign({},c),{cacheHint:e.cacheKey,get:()=>f(o,t,e,r,i,c)}),t)]};n.parseReduceAttributes=o=>{const t=o.attributes.getInts("axes",[]),e=o.attributes.getInt("keepdims",1)===1;return(0,d.createAttributeWithCacheKey)({axes:t,keepDims:e})};const f=(o,t,e,r,i,c)=>{const g=[],m=t[0].dims.length||1,b=[],_=p.ShapeUtil.normalizeAxes(e.axes,t[0].dims.length),w=i(t,_);let v=w[1];for(let O=0;O<t[0].dims.length;O++)_.indexOf(O)>=0||_.length===0?(e.keepDims&&g.push(1),v=` - for(int j${O} = 0; j${O} < ${t[0].dims[O]}; j${O}++) { - inputIdx[${O}] = j${O}; - ${v} - }`):(b.push(`inputIdx[${O}] = outputIdx[${g.length}];`),g.push(t[0].dims[O]));const S=` - float process(int outputIdx[${g.length||1}]) { - float value; // final result - int inputIdx[${m}]; // addressing input data - ${b.join(` -`)} - ${w[0]} // init ops for reduce max/min - ${v} - ${w[2]} // final computation for reduce mean - return value; - }`;return Object.assign(Object.assign({},c),{output:{dims:g,type:t[0].type,textureType:s.TextureType.unpacked},shaderSource:S})},a=o=>{if(!o||o.length!==1)throw new Error("Reduce op requires 1 input.");if(l.NUMBER_TYPES.indexOf(o[0].type)===-1)throw new Error("Invalid input type.")};n.reduceSum=(o,t,e)=>h(o,t,e,"ReduceSum",()=>["value = 0.0;","value += _A(inputIdx);",""]),n.reduceMean=(o,t,e)=>h(o,t,e,"ReduceMean",(r,i)=>{let c=1;for(let g=0;g<r[0].dims.length;g++)(i.indexOf(g)>=0||i.length===0)&&(c*=r[0].dims[g]);return["value = 0.0;","value += _A(inputIdx);",`value /= ${c}.;`]}),n.reduceMax=(o,t,e)=>h(o,t,e,"ReduceMax",(r,i)=>{const c=[];for(let g=0;g<r[0].dims.length;g++)(i.indexOf(g)>=0||i.length===0)&&c.push(`inputIdx[${g}] = 0;`);return[`${c.join(` -`)} -value = _A(inputIdx);`,"value = max(value, _A(inputIdx));",""]}),n.reduceMin=(o,t,e)=>h(o,t,e,"ReduceMin",(r,i)=>{const c=[];for(let g=0;g<r[0].dims.length;g++)(i.indexOf(g)>=0||i.length===0)&&c.push(`inputIdx[${g}] = 0;`);return[`${c.join(` -`)} -value = _A(inputIdx);`,"value = min(value, _A(inputIdx));",""]}),n.reduceProd=(o,t,e)=>h(o,t,e,"ReduceProd",()=>["value = 1.0;","value *= _A(inputIdx);",""]),n.reduceLogSum=(o,t,e)=>h(o,t,e,"ReduceLogSum",()=>["value = 0.0;","value += _A(inputIdx);","value = log(value);"]),n.reduceLogSumSquare=(o,t,e)=>h(o,t,e,"ReduceLogSumSquare",()=>["float t; value = 0.0;","t = _A(inputIdx); value += t * t;",""])},7019:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.isReshapeCheap=n.processDims3D=n.createPackedReshape3DProgramInfoLoader=void 0;const d=u(2517),l=u(5060),p=u(2039),s=u(2827);n.createPackedReshape3DProgramInfoLoader=(h,f,a)=>{const o=(t=>({name:"Reshape (packed)",inputTypes:[p.TextureType.packed],inputNames:["A"],cacheHint:`${t}`}))(a);return Object.assign(Object.assign({},o),{get:()=>((t,e,r,i)=>{const c=e.dims,g=i;let m="";for(let w=0;w<4;w++){let v="";switch(w){case 0:v="outputCoords = rc;";break;case 1:v="outputCoords = ivec3(rc.x, rc.y+1, rc.z);";break;case 2:v="outputCoords = ivec3(rc.x, rc.y, rc.z+1);";break;case 3:v="outputCoords = ivec3(rc.x, rc.y+1, rc.z+1);";break;default:throw new Error}m+=` - ${v} - ${w>0?"if(outputCoords.y < rows && outputCoords.z < cols){":""} - int flattenedIndex = getFlattenedIndex(outputCoords); - - ivec3 inputRC = inputCoordsFromReshapedOutCoords(flattenedIndex); - vec2 innerDims = vec2(float(inputRC.y),float(inputRC.z)); - - result[${w}] = getChannel(getA(inputRC.x, inputRC.y, inputRC.z), innerDims); - - ${w>0?"}":""} - `}const b=(0,l.getGlsl)(t.session.backend.glContext.version),_=` - ${function(w){const v=d.ShapeUtil.computeStrides(w),S=["b","r","c"],O="index";return` - ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${v.map((E,T)=>`int ${S[T]} = ${O} / ${E}; ${T===v.length-1?`int ${S[T+1]} = ${O} - ${S[T]} * ${E}`:`index -= ${S[T]} * ${E}`};`).join("")} - return ivec3(b, r, c); - } - `}(c)} - ${function(w){const v=d.ShapeUtil.computeStrides(w);return` - int getFlattenedIndex(ivec3 coords) { - // reverse y, z order - return coords.x * ${v[0]} + coords.z * ${v[1]} + coords.y; - } -`}(g)} - ${(0,s.unpackFromChannel)()} - - void main() { - ivec3 rc = getOutputCoords(); - - vec4 result = vec4(0.0); - - ivec3 outputCoords; - int rows = ${g[2]}; - int cols = ${g[1]}; - - ${m} - ${b.output} = result; - } - `;return Object.assign(Object.assign({},r),{output:{dims:g,type:e.type,textureType:p.TextureType.packed},shaderSource:_,hasMain:!0})})(h,f,o,a)})},n.processDims3D=function(h){if(h.length===0)return[1,1,1];let f=1;for(let a=0;a<h.length-2;++a)f*=h[a];return[f,h.length>1?h[h.length-2]:1,h[h.length-1]]},n.isReshapeCheap=function(h,f){let a=!1;return a=h.length===0||f.length===0||(h.length<2||f.length<2?h[h.length-1]===f[f.length-1]:h[h.length-1]===f[f.length-1]&&h[h.length-2]===f[f.length-2]),a}},718:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.reshape=void 0;const d=u(2517);n.reshape=(l,p)=>{const s=d.ShapeUtil.calculateReshapedDims(p[0].dims,p[1].integerData);return l.session.pack?[l.reshapePacked(p[0],s)]:[l.reshapeUnpacked(p[0],s)]}},2268:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseResizeAttributesV11=n.parseResizeAttributesV10=n.resize=void 0;const d=u(5060),l=u(2039),p=u(9390),s=u(2827),h=u(9793),f={name:"Resize",inputNames:["A"],inputTypes:[l.TextureType.packed]};n.resize=(r,i,c)=>((0,h.validateInputs)(i,c),[r.run(Object.assign(Object.assign({},f),{cacheHint:c.cacheKey,get:()=>a(r,i,c)}),i)]),n.parseResizeAttributesV10=r=>(0,h.parseUpsampleAttributes)(r,10),n.parseResizeAttributesV11=r=>(0,h.parseUpsampleAttributes)(r,11);const a=(r,i,c)=>{const g=(0,d.getGlsl)(r.session.backend.glContext.version),[m,b]=o(i,c);if(m.every(N=>N===1)&&c.coordinateTransformMode!=="tf_crop_and_resize")return Object.assign(Object.assign({},f),{output:{dims:b,type:i[0].type,textureType:l.TextureType.packed},hasMain:!0,shaderSource:`void main() { - vec4 v = ${g.texture2D}(X, TexCoords); - ${g.output} = v; - }`});const _=b.length;if(_<2)throw new Error(`output dimension should be at least 2, but got ${_}`);const w=b[_-2],v=b[_-1],S=i[0].dims;if(_!==S.length)throw new Error(`output dimension should match input ${S.length}, but got ${_}`);const O=S[_-2],E=S[_-1],T=m[_-2],I=m[_-1];let C="";if(c.mode!=="linear")throw new Error(`resize (packed) does not support mode: '${c.mode}'`);switch(c.coordinateTransformMode){case"asymmetric":C=` - vec4 getSourceFracIndex(ivec4 coords) { - return vec4(coords) / scaleWHWH; - } - `;break;case"half_pixel":C=` - vec4 getSourceFracIndex(ivec4 coords) { - return (vec4(coords) + 0.5) / scaleWHWH - 0.5; - } - `;break;case"pytorch_half_pixel":C=` - vec4 getSourceFracIndex(ivec4 coords) { - vec4 fcoords = vec4(coords); - return vec4( - ${v}.0 > 1.0 ? (fcoords.x + 0.5) / scaleWHWH.x - 0.5 : 0.0, - ${w}.0 > 1.0 ? (fcoords.y + 0.5) / scaleWHWH.y - 0.5 : 0.0, - ${v}.0 > 1.0 ? (fcoords.z + 0.5) / scaleWHWH.z - 0.5 : 0.0, - ${w}.0 > 1.0 ? (fcoords.w + 0.5) / scaleWHWH.w - 0.5 : 0.0 - ); - } - `;break;case"align_corners":C=` - vec4 getSourceFracIndex(ivec4 coords) { - vec4 resized = vec4(${v}.0 - 1.0, ${w}.0 - 1.0, ${v}.0 - 1.0, - ${w}.0 - 1.0); - vec4 original = vec4(${E}.0 - 1.0, ${O}.0 - 1.0, ${E}.0 - 1.0, - ${O}.0 - 1.0); - vec4 new_scale = original / resized; - return vec4(coords) * new_scale; - } - `;break;default:throw new Error(`resize (packed) does not support coordinateTransformMode: '${c.coordinateTransformMode}'`)}const B=(0,p.getCoordsDataType)(_),F=` - const vec2 inputWH = vec2(${O}.0, ${E}.0); - const vec4 scaleWHWH = vec4(float(${T}), float(${I}), float(${T}), float(${I})); - ${(0,s.unpackFromChannel)()} - ${C} - float getAValue(int x10, int r, int c, int d) { - return getChannel(getA(x10, r, c, d), vec2(c, d)); - } - void main() { - ${B} rc = getOutputCoords(); - - int batch = rc[0]; - int depth = rc[1]; - - // retrieve the 4 coordinates that is used in the 4 packed output values. - ivec4 coords = ivec4(rc.wz, rc.w + 1, rc.z + 1); - - // calculate the source index in fraction - vec4 sourceFrac = getSourceFracIndex(coords); - - // get the lower and upper bound of the 4 values that will be packed into one texel. - ivec4 x00 = ivec4(max(sourceFrac.xy, vec2(0.0)), min(inputWH - 1.0, ceil(sourceFrac.xy))); - ivec4 x01 = ivec4(max(sourceFrac.xw, vec2(0.0)), min(inputWH - 1.0, ceil(sourceFrac.xw))); - ivec4 x10 = ivec4(max(sourceFrac.zy, vec2(0.0)), min(inputWH - 1.0, ceil(sourceFrac.zy))); - ivec4 x11 = ivec4(max(sourceFrac.zw, vec2(0.0)), min(inputWH - 1.0, ceil(sourceFrac.zw))); - - bool hasNextRow = rc.w < ${w-1}; - bool hasNextCol = rc.z < ${v-1}; - - // pack x00, x01, x10, x11's top-left corner into one vec4 structure - vec4 topLeft = vec4( - getAValue(batch, depth, x00.x, x00.y), - hasNextCol ? getAValue(batch, depth, x01.x, x01.y) : 0.0, - hasNextRow ? getAValue(batch, depth, x10.x, x10.y) : 0.0, - (hasNextRow && hasNextCol) ? getAValue(batch, depth, x11.x, x11.y) : 0.0); - - // pack x00, x01, x10, x11's top-right corner into one vec4 structure - vec4 topRight = vec4( - getAValue(batch, depth, x00.x, x00.w), - hasNextCol ? getAValue(batch, depth, x01.x, x01.w) : 0.0, - hasNextRow ? getAValue(batch, depth, x10.x, x10.w) : 0.0, - (hasNextRow && hasNextCol) ? getAValue(batch, depth, x11.x, x11.w) : 0.0); - - // pack x00, x01, x10, x11's bottom-left corner into one vec4 structure - vec4 bottomLeft = vec4( - getAValue(batch, depth, x00.z, x00.y), - hasNextCol ? getAValue(batch, depth, x01.z, x01.y) : 0.0, - hasNextRow ? getAValue(batch, depth, x10.z, x10.y) : 0.0, - (hasNextRow && hasNextCol) ? getAValue(batch, depth, x11.z, x11.y) : 0.0); - - // pack x00, x01, x10, x11's bottom-right corner into one vec4 structure - vec4 bottomRight = vec4( - getAValue(batch, depth, x00.z, x00.w), - hasNextCol ? getAValue(batch, depth, x01.z, x01.w) : 0.0, - hasNextRow ? getAValue(batch, depth, x10.z, x10.w) : 0.0, - (hasNextRow && hasNextCol) ? getAValue(batch, depth, x11.z, x11.w) : 0.0); - - // calculate the interpolation fraction on u and v direction - vec4 frac = vec4(sourceFrac) - floor(sourceFrac); - vec4 clampFrac = clamp(frac, vec4(0.0), vec4(1.0)); - - vec4 top = mix(topLeft, topRight, clampFrac.ywyw); - vec4 bottom = mix(bottomLeft, bottomRight, clampFrac.ywyw); - vec4 newValue = mix(top, bottom, clampFrac.xxzz); - - ${g.output} = vec4(newValue); - } - `;return Object.assign(Object.assign({},f),{output:{dims:b,type:i[0].type,textureType:l.TextureType.packed},hasMain:!0,shaderSource:F})},o=(r,i)=>{const c=r[0].dims;let g,m=i.scales;if(m.length===0){const _=r[i.scalesInputIdx];if(_&&_.size!==0){if(r[i.sizesInputIdx])throw new Error("Only one of scales or sizes must be provided as input.");m=t(_,i.mode,i.isResize)}else{const w=r[i.sizesInputIdx];if(!w||w.size===0)throw new Error("Either scales or sizes MUST be provided as input.");g=Array.from(w.integerData),m=e(g,c,i.mode,i.isResize)}}else if(r[i.sizesInputIdx])throw new Error("Only one of scales or sizes must be provided as input.");const b=g||c.map((_,w)=>Math.floor(_*m[w]));return[m,b]},t=(r,i,c)=>{const g=Array.from(r.floatData);return(0,h.scalesValidation)(g,i,c),g},e=(r,i,c,g)=>{const m=i.length,b=new Array(m);for(let _=0,w=m;_<w;_++)if(i[_]===0){if(r[_]!==0)throw new Error("Input dim is zero but required output dim is non-zero.");b[_]=1}else b[_]=r[_]/i[_];return(0,h.scalesValidation)(b,c,g),b}},8117:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.shape=void 0;const d=u(9162);n.shape=(p,s)=>(l(s),[new d.Tensor([s[0].dims.length],"int32",void 0,void 0,new Int32Array(s[0].dims))]);const l=p=>{if(!p||p.length!==1)throw new Error("Shape requires 1 input.")}},2278:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.sliceV10=n.parseSliceAttributes=n.slice=void 0;const d=u(246),l=u(782),p=u(2517),s=u(2039),h={name:"Slice",inputNames:["A"],inputTypes:[s.TextureType.unpacked]};n.slice=(e,r,i)=>(a(r),[e.run(Object.assign(Object.assign({},h),{cacheHint:i.cacheKey,get:()=>f(e,r[0],i)}),r)]),n.parseSliceAttributes=e=>{const r=e.attributes.getInts("starts"),i=e.attributes.getInts("ends"),c=e.attributes.getInts("axes",[]);return(0,d.createAttributeWithCacheKey)({starts:r,ends:i,axes:c})};const f=(e,r,i)=>{const c=i.axes.length===0?r.dims.slice(0).map((S,O)=>O):i.axes,g=p.ShapeUtil.normalizeAxes(c,r.dims.length),m=i.starts.map((S,O)=>S>r.dims[g[O]]-1?r.dims[g[O]]:p.ShapeUtil.normalizeAxis(S,r.dims[g[O]])),b=i.ends.map((S,O)=>S>r.dims[g[O]]-1?r.dims[g[O]]:p.ShapeUtil.normalizeAxis(S,r.dims[g[O]])),_=r.dims.slice(),w=[];for(let S=0;S<g.length;S++)_[g[S]]=b[S]-m[S],m[S]>0&&w.push(`outputIdx[${g[S]}] += ${m[S]};`);const v=` - float process(int outputIdx[${_.length}]) { - ${w.join(` - `)} - return _A(outputIdx); - }`;return Object.assign(Object.assign({},h),{output:{dims:_,type:r.type,textureType:s.TextureType.unpacked},shaderSource:v})},a=e=>{if(!e||e.length!==1)throw new Error("Slice requires 1 input.");if(l.NUMBER_TYPES.indexOf(e[0].type)===-1)throw new Error("Invalid input type.")};n.sliceV10=(e,r)=>{t(r);const i=o(e,r);return[e.run(Object.assign(Object.assign({},h),{cacheHint:i.cacheKey,get:()=>f(e,r[0],i)}),[r[0]])]};const o=(e,r)=>{if(!e.session.isInitializer(r[1].dataId)||!e.session.isInitializer(r[2].dataId)||r.length>=4&&!e.session.isInitializer(r[3].dataId)||r.length>=5&&!e.session.isInitializer(r[4].dataId))throw new Error("dynamic slice attributes are not allowed");if(r.length>=5&&r[4].integerData.some(m=>m!==1))throw new Error("currently non-1 steps is not supported for Slice");const i=Array.from(r[1].integerData),c=Array.from(r[2].integerData),g=r.length>=4?Array.from(r[3].integerData):[];return{starts:i,ends:c,axes:g,cacheKey:`${g};${i};${c}`}},t=e=>{if(!e||e.length<3||e.length>5)throw new Error("Invalid input number.");if(e[1].type!=="int32"||e[1].dims.length!==1)throw new Error("Invalid input type.");if(e[2].type!=="int32"||e[2].dims.length!==1)throw new Error("Invalid input type.");if(e.length>=4&&(e[3].type!=="int32"||e[3].dims.length!==1))throw new Error("Invalid input type.");if(e.length>=5&&(e[4].type!=="int32"||e[4].dims.length!==1))throw new Error("Invalid input type.")}},5524:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.softmaxV13=n.parseSoftmaxAttributesV13=n.parseSoftmaxAttributes=n.softmax=void 0;const d=u(246),l=u(2517),p=u(5060),s=u(2039),h=u(3738),f={name:"SoftmaxComputeMax",inputNames:["A"],inputTypes:[s.TextureType.unpacked]},a={name:"SoftmaxComputeScale",inputNames:["A","Max"],inputTypes:[s.TextureType.unpacked,s.TextureType.unpacked]},o={name:"SoftMax",inputNames:["A","Max","Norm"],inputTypes:[s.TextureType.unpacked,s.TextureType.unpacked,s.TextureType.unpacked]};n.softmax=(g,m,b)=>{c(m);const _=m[0].dims.slice(),w=l.ShapeUtil.normalizeAxis(b.axis,_.length),v=l.ShapeUtil.sizeToDimension(_,w),S=l.ShapeUtil.sizeFromDimension(_,w);return t(g,m,b,v,S)},n.parseSoftmaxAttributes=g=>(0,d.createAttributeWithCacheKey)({axis:g.attributes.getInt("axis",1)}),n.parseSoftmaxAttributesV13=g=>(0,d.createAttributeWithCacheKey)({axis:g.attributes.getInt("axis",-1)}),n.softmaxV13=(g,m,b)=>{c(m);const _=m[0].dims.slice(),w=l.ShapeUtil.normalizeAxis(b.axis,_.length),v=_.length,S=w!==v-1,O=[];let E,T=[],I=[];S&&(T=Array.from({length:v}).map((N,H)=>H),T[w]=v-1,T[v-1]=w,T.map(N=>O.push(_[N])),E=(0,d.createAttributeWithCacheKey)({perm:T}),I=(0,h.transpose)(g,m,E));const C=S?l.ShapeUtil.sizeToDimension(O,v-1):l.ShapeUtil.sizeToDimension(_,v-1),B=S?l.ShapeUtil.sizeFromDimension(O,v-1):l.ShapeUtil.sizeFromDimension(_,v-1),F=t(g,S?I:m,b,C,B);return S?(0,h.transpose)(g,F,E):F};const t=(g,m,b,_,w)=>{const v=e(g,m[0],_,w,[_]),S=g.run(Object.assign(Object.assign({},f),{cacheHint:b.cacheKey,get:()=>v}),m),O=r(g,m[0],_,w,v.output.dims,[_]),E=g.run(Object.assign(Object.assign({},a),{cacheHint:b.cacheKey,get:()=>O}),[m[0],S]),T=i(g,m[0],_,w,v.output.dims,O.output.dims);return[g.run(Object.assign(Object.assign({},o),{cacheHint:b.cacheKey,get:()=>T}),[m[0],S,E])]},e=(g,m,b,_,w)=>{const[v,S]=g.calculateTextureWidthAndHeight(m.dims,s.TextureType.unpacked),O=w.length;if(b<1||_<1)throw new Error("Logical row count N and feature count D must be greater than or equal to 1");if(w.length!==1)throw new Error("Dimensionality of the output should be 1");if(w[0]!==b)throw new Error("Shape of the output should be equal to logical row count");const E=(0,p.getGlsl)(g.session.backend.glContext.version),T=` - float process(int[${O}] indices) { - int logical_row_start_offset = indices[0] * ${_}; - - float max = getColorAsFloat(${E.texture2D}(A, offsetToCoords(logical_row_start_offset, ${v}, - ${S} ))); - for(int i=1; i<${_}; ++i) - { - float current = getColorAsFloat(${E.texture2D}(A, offsetToCoords(logical_row_start_offset + i, - ${v}, ${S}))); - if(current > max) - max = current; - } - - return max; - }`;return Object.assign(Object.assign({},f),{output:{dims:w,type:m.type,textureType:s.TextureType.unpacked},shaderSource:T})},r=(g,m,b,_,w,v)=>{const[S,O]=g.calculateTextureWidthAndHeight(m.dims,s.TextureType.unpacked),E=v.length;if(b<1||_<1)throw new Error("Logical row count N and feature count D must be greater than or equal to 1");if(v.length!==1)throw new Error("Dimensionality of the output should be 1");if(v[0]!==b)throw new Error("Shape of the output should be equal to logical row count");if(w.length!==1)throw new Error("Dimensionality of the intermediate results should be 1");if(w[0]!==b)throw new Error("Shape of the intermediate results should be equal to logical row count");const T=` - float process(int[${E}] indices) { - int logical_row_start_offset = indices[0] * ${_}; - - float norm_factor = 0.0; - float max = _Max(indices); - for(int i=0; i<${_}; ++i) - { - norm_factor += exp(getColorAsFloat(${(0,p.getGlsl)(g.session.backend.glContext.version).texture2D}(A, offsetToCoords(logical_row_start_offset + i, - ${S}, ${O}))) - max); - } - - return norm_factor; - }`;return Object.assign(Object.assign({},a),{output:{dims:v,type:m.type,textureType:s.TextureType.unpacked},shaderSource:T})},i=(g,m,b,_,w,v)=>{const[S,O]=g.calculateTextureWidthAndHeight(m.dims,s.TextureType.unpacked),E=m.dims.length;if(b<1||_<1)throw new Error("Logical row count N and feature count D must be greater than or equal to 1");if(w.length!==1||v.length!==1)throw new Error("Dimensionality of the intermediate results should be 1");if(w[0]!==b||v[0]!==b)throw new Error("Shape of the intermediate results should be equal to logical row count");const T=` - float process(int[${E}] indices) { - - // get offset of current logical tensor index from the 2-D texture coordinates (TexCoords) - int offset = coordsToOffset(TexCoords, ${S}, ${O}); - - //determine the logical row for this index - int logical_row_index[1]; - logical_row_index[0] = offset / ${_}; - - float norm_factor = _Norm(logical_row_index); - - // avoid possible division by 0 - // if norm_facor is 0, all elements are zero - // if so, return 0 - if(norm_factor == 0.0) - return 0.0; - - return exp(_A(indices) - _Max(logical_row_index)) / norm_factor; - }`;return Object.assign(Object.assign({},o),{output:{dims:m.dims,type:m.type,textureType:s.TextureType.unpacked},shaderSource:T})},c=g=>{if(!g||g.length!==1)throw new Error("Softmax requires 1 input.");if(g[0].type!=="float32"&&g[0].type!=="float64")throw new Error("Invalid input type")}},5975:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseSplitAttributes=n.split=void 0;const d=u(246),l=u(2517),p=u(2039),s={name:"Split",inputNames:["A"],inputTypes:[p.TextureType.unpacked]};n.split=(o,t,e)=>{a(t);const r=l.ShapeUtil.normalizeAxis(e.axis,t[0].dims.length),i=h(o,t,r,e),c=[];for(let g=0;g<i;++g)c.push(o.run(Object.assign(Object.assign({},s),{cacheHint:`${e.cacheKey};${g}`,get:()=>f(o,t[0],e,r,g)}),t));return c},n.parseSplitAttributes=o=>{const t=o.attributes.getInt("axis",0),e=o.attributes.getInts("split",[]),r=o.outputs.length;return(0,d.createAttributeWithCacheKey)({axis:t,split:e,numOutputs:r})};const h=(o,t,e,r)=>{const[,i]=l.SplitUtil.splitShape(t[0].dims,e,r.split,r.numOutputs);return i.length},f=(o,t,e,r,i)=>{const[c,g]=l.SplitUtil.splitShape(t.dims,r,e.split,e.numOutputs),m=g[i],b=c[i],_=` - float process(int indices[${b.length}]) { - indices[${r}] += ${m}; - return _A(indices); - } - `;return Object.assign(Object.assign({},s),{cacheHint:`${e.cacheKey}:${i}`,output:{dims:b,type:t.type,textureType:p.TextureType.unpacked},shaderSource:_})},a=o=>{if(!o||o.length!==1)throw new Error("Split requires one input.");if(o[0].type!=="int8"&&o[0].type!=="uint8"&&o[0].type!=="int16"&&o[0].type!=="uint16"&&o[0].type!=="int32"&&o[0].type!=="uint32"&&o[0].type!=="float32"&&o[0].type!=="float64"&&o[0].type!=="bool")throw new Error("Invalid input type.")}},3933:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseSqueezeAttributes=n.squeezeV13=n.squeeze=void 0;const d=u(2517);n.squeeze=(s,h,f)=>{l(h);const a=d.ShapeUtil.squeezeShape(h[0].dims,f);return[s.reshapeUnpacked(h[0],a)]},n.squeezeV13=(s,h)=>(p(h),(0,n.squeeze)(s,[h[0]],Array.from(h[1].integerData))),n.parseSqueezeAttributes=s=>s.attributes.getInts("axes");const l=s=>{if(!s||s.length!==1)throw new Error("Squeeze requires 1 input.");if(s[0].type==="string")throw new Error("invalid input tensor types.")},p=s=>{if(!s||s.length!==2)throw new Error("Squeeze requires 2 inputs.");if(s[1].type!=="int32")throw new Error("Invalid input type.")}},6558:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.sum=void 0;const d=u(5060),l=u(2039);n.sum=(h,f)=>{s(f);const a={name:"Sum",inputNames:f.map((o,t)=>`X${t}`),inputTypes:new Array(f.length).fill(l.TextureType.unpacked)};return[h.run(Object.assign(Object.assign({},a),{get:()=>p(h,f,a)}),f)]};const p=(h,f,a)=>{const o=(0,d.getGlsl)(h.session.backend.glContext.version),t=f[0].dims.slice(),e=` - void main() { - vec4 result = ${f.map((r,i)=>`${o.texture2D}(X${i},TexCoords)`).join(" + ")}; - ${o.output} = result; - } - `;return Object.assign(Object.assign({},a),{output:{dims:t,type:f[0].type,textureType:l.TextureType.unpacked},hasMain:!0,shaderSource:e})},s=h=>{if(!h||h.length===0)throw new Error("Sum requires inputs.");const f=h[0].dims.length;for(let a=1;a<h.length;a++){if(f!==h[a].dims.length)throw new Error("Input shapes are mismatched.");for(let o=0;o<f;o++)if(h[0].dims[o]!==h[a].dims[o])throw new Error("Input shapes are not matched.")}if(h[0].type!=="float32"&&h[0].type!=="float64")throw new Error("Invalid input type.");for(let a=1;a<h.length;a++)if(h[0].type!==h[a].type)throw new Error("Input types are not matched.")}},5723:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.tile=void 0;const d=u(782),l=u(2039);n.tile=(h,f)=>{s(f);const a={name:"Tile",inputNames:["A"],inputTypes:[l.TextureType.unpacked]};return[h.run(Object.assign(Object.assign({},a),{get:()=>p(h,f,a)}),f)]};const p=(h,f,a)=>{const o=f[0].dims.slice(),t=new Array(o.length),e=[];for(let c=0;c<o.length;c++)t[c]=o[c]*f[1].numberData[c],e.push(`inputIdx[${c}] = int(mod(float(outputIdx[${c}]), ${o[c]}.));`);const r=t.length,i=` - float process(int outputIdx[${r}]) { - int inputIdx[${r}]; - ${e.join(` -`)} - return _A(inputIdx); - } - `;return Object.assign(Object.assign({},a),{output:{dims:t,type:f[0].type,textureType:l.TextureType.unpacked},shaderSource:i})},s=h=>{if(!h||h.length!==2)throw new Error("Tile requires 2 input.");if(h[1].dims.length!==1)throw new Error("The second input shape must 1 dimension.");if(h[1].dims[0]!==h[0].dims.length)throw new Error("Invalid input shape.");if(d.NUMBER_TYPES.indexOf(h[0].type)===-1)throw new Error("Invalid input type.");if(h[1].type!=="int32"&&h[1].type!=="int16")throw new Error("Invalid repeat type.")}},3738:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseTransposeAttributes=n.transpose=void 0;const d=u(246),l=u(2517),p=u(2039),s={name:"Transpose",inputNames:["A"],inputTypes:[p.TextureType.unpacked]};n.transpose=(e,r,i)=>(t(r),[e.run(Object.assign(Object.assign({},s),{cacheHint:i.cacheKey,get:()=>h(e,r[0],i.perm)}),r)]),n.parseTransposeAttributes=e=>(0,d.createAttributeWithCacheKey)({perm:e.attributes.getInts("perm",[])});const h=(e,r,i)=>{const c=r.dims;i=f(c,i);const g=a(c,i),m=c.length,b=` - ${o("perm",i,m)} - float process(int indices[${m}]) { - int a[${m}]; - perm(a, indices); - return _A(a); - }`;return Object.assign(Object.assign({},s),{output:{dims:g,type:r.type,textureType:p.TextureType.unpacked},shaderSource:b})},f=(e,r)=>(r&&r.length!==e.length&&(r=[...e.keys()].reverse()),r),a=(e,r)=>(r=f(e,r),l.ShapeUtil.sortBasedOnPerm(e,r)),o=(e,r,i)=>{const c=[];c.push(`void ${e}(out int a[${i}], int src[${i}]) {`);for(let g=0;g<i;++g)c.push(` a[${r[g]}]=src[${g}];`);return c.push(" }"),c.join(` -`)},t=e=>{if(!e||e.length!==1)throw new Error("Transpose requires 1 input.");if(e[0].type!=="float32"&&e[0].type!=="float64")throw new Error("input should be float tensor")}},8710:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.encodeAsUint8=void 0;const d=u(5060),l=u(2039);n.encodeAsUint8=(p,s)=>{const h=s.shape,f=(0,d.getGlsl)(p.session.backend.glContext.version),a=` - const float FLOAT_MAX = 1.70141184e38; - const float FLOAT_MIN = 1.17549435e-38; - - bool isNaN(float val) { - return (val < 1.0 || 0.0 < val || val == 0.0) ? false : true; - } - - highp vec4 encodeAsUint8(highp float v) { - if (isNaN(v)) { - return vec4(255, 255, 255, 255); - } - - highp float av = abs(v); - - if(av < FLOAT_MIN) { - return vec4(0.0, 0.0, 0.0, 0.0); - } else if(v > FLOAT_MAX) { - return vec4(0.0, 0.0, 128.0, 127.0) / 255.0; - } else if(v < -FLOAT_MAX) { - return vec4(0.0, 0.0, 128.0, 255.0) / 255.0; - } - - highp vec4 c = vec4(0,0,0,0); - - highp float e = floor(log2(av)); - highp float m = exp2(fract(log2(av))) - 1.0; - - c[2] = floor(128.0 * m); - m -= c[2] / 128.0; - c[1] = floor(32768.0 * m); - m -= c[1] / 32768.0; - c[0] = floor(8388608.0 * m); - - highp float ebias = e + 127.0; - c[3] = floor(ebias / 2.0); - ebias -= c[3] * 2.0; - c[2] += floor(ebias) * 128.0; - - c[3] += 128.0 * step(0.0, -v); - - return c / 255.0; - } - - void main() { - float value = ${f.texture2D}(X,TexCoords).r; - ${f.output} = encodeAsUint8(value); - }`,o={name:"Uint8Encode",inputTypes:[l.TextureType.unpacked],inputNames:["X"],output:{dims:h,type:s.tensor.type,textureType:l.TextureType.downloadUint8AsFloat},shaderSource:a,hasMain:!0};return p.executeProgram(o,[s.tensor])}},4909:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.tanh=n.tan=n.sqrt=n.sin=n.sigmoid=n.relu=n.not=n.neg=n.log=n.parseLeakyReluAttributes=n.leakyRelu=n.identity=n.floor=n.exp=n.parseEluAttributes=n.elu=n.cos=n.ceil=n.clipV11=n.parseClipAttributes=n.clip=n.atan=n.asin=n.acos=n.abs=n.glslTanh=n.glslTan=n.glslSqrt=n.glslSigmoid=n.glslRelu=n.glslSin=n.glslNot=n.glslNeg=n.glslLog=n.glslLeakyRelu=n.glslIdentity=n.glslClip=n.glslFloor=n.glslExp=n.glslElu=n.glslCos=n.glslCeil=n.glslAtan=n.glslAsin=n.glslAcos=n.glslAbs=void 0;const d=u(246),l=u(2517),p=u(8520),s=u(5060),h=u(2039);function f(){return F("abs")}function a(){return F("acos")}function o(){return F("asin")}function t(){return F("atan")}function e(){return F("ceil")}function r(){return F("cos")}function i($){const z="elu";return{body:` - const float alpha = float(${$}); - - float ${z}_(float a) { - return a >= 0.0 ? a: (exp(a) - 1.0) * alpha; - } - vec4 ${z}_(vec4 v) { - return vec4(${z}_(v.x), ${z}_(v.y), ${z}_(v.z), ${z}_(v.w)); - } - `,name:z,type:p.FunctionType.ValueBased}}function c(){return F("exp")}function g(){return F("floor")}function m($,z){const J="clip";return{body:` - const float min = float(${$}); - const float max = float(${z}); - - float ${J}_(float a) { - return clamp(a, min, max); - } - vec4 ${J}_(vec4 v) { - return clamp(v, min, max); - } - `,name:J,type:p.FunctionType.ValueBased}}function b(){const $="indentity";return{body:` - float ${$}_(float a) { - return a; - } - vec4 ${$}_(vec4 v) { - return v; - } - `,name:$,type:p.FunctionType.ValueBased}}function _($){const z="leakyRelu";return{body:` - const float alpha = float(${$}); - - float ${z}_(float a) { - return a < 0.0 ? a * alpha : a; - } - vec4 ${z}_(vec4 v) { - return vec4(${z}_(v.x), ${z}_(v.y), ${z}_(v.z), ${z}_(v.w)); - } - `,name:z,type:p.FunctionType.ValueBased}}function w(){return F("log")}function v(){const $="neg";return{body:` - float ${$}_(float a) { - return -a; - } - vec4 ${$}_(vec4 v) { - return -v; - } - `,name:$,type:p.FunctionType.ValueBased}}function S(){const $="not";return{body:` - float ${$}_(float a) { - return float( ! bool(a) ); - } - bool ${$}_(bool a) { - return !a; - } - vec4 ${$}_(vec4 v) { - return vec4(!bool(v.x), !bool(v.y), !bool(v.z), !bool(v.w)); - } - bvec4 ${$}_(bvec4 v) { - return bvec4(!v.x, !v.y, !v.z, !v.w); - } - `,name:$,type:p.FunctionType.ValueBased}}function O(){return F("sin")}function E(){const $="relu";return{body:` - float ${$}_(float a) { - return max( a, 0.0 ); - } - vec4 ${$}_(vec4 v) { - return max( v, 0.0 ); - } - `,name:$,type:p.FunctionType.ValueBased}}function T(){const $="sigmoid";return{body:` - float ${$}_(float a) { - return 1.0 / (1.0 + exp(-a)); - } - vec4 ${$}_(vec4 v) { - return 1.0 / (1.0 + exp(-v)); - } - `,name:$,type:p.FunctionType.ValueBased}}function I(){return F("sqrt")}function C(){return F("tan")}function B(){const $="tanh";return{body:` - float ${$}_(float a) { - a = clamp(a, -10., 10.); - a = exp(2.*a); - return (a - 1.) / (a + 1.); - } - vec4 ${$}_(vec4 v) { - v = clamp(v, -10., 10.); - v = exp(2.*v); - return (v - 1.) / (v + 1.); - } - `,name:$,type:p.FunctionType.ValueBased}}function F($){return{body:` - float ${$}_(float a) { - return ${$}(a); - } - vec4 ${$}_(vec4 v) { - return ${$}(v); - } - `,name:$,type:p.FunctionType.ValueBased}}n.glslAbs=f,n.glslAcos=a,n.glslAsin=o,n.glslAtan=t,n.glslCeil=e,n.glslCos=r,n.glslElu=i,n.glslExp=c,n.glslFloor=g,n.glslClip=m,n.glslIdentity=b,n.glslLeakyRelu=_,n.glslLog=w,n.glslNeg=v,n.glslNot=S,n.glslSin=O,n.glslRelu=E,n.glslSigmoid=T,n.glslSqrt=I,n.glslTan=C,n.glslTanh=B;const N=($,z,J,X)=>{const te=$.session.pack?h.TextureType.packed:h.TextureType.unpacked,ne={name:J.name,inputTypes:[te],inputNames:["A"],cacheHint:X};return Object.assign(Object.assign({},ne),{get:()=>((me,Ie,Oe,ce)=>{const Te=me.session.pack?h.TextureType.packed:h.TextureType.unpacked,_e=(0,s.getGlsl)(me.session.backend.glContext.version);return Object.assign(Object.assign({},Ie),{output:{dims:Oe.dims,type:Oe.type,textureType:Te},shaderSource:` - ${ce.body} - void main() { - vec4 v = ${_e.texture2D}(A, TexCoords); - v = ${ce.name}_(v); - ${_e.output} = v; - } - `,hasMain:!0})})($,ne,z,J)})};n.abs=($,z)=>[$.run(N($,z[0],f()),z)],n.acos=($,z)=>[$.run(N($,z[0],a()),z)],n.asin=($,z)=>[$.run(N($,z[0],o()),z)],n.atan=($,z)=>[$.run(N($,z[0],t()),z)],n.clip=($,z,J)=>[$.run(N($,z[0],m(J.min,J.max),J.cacheKey),z)],n.parseClipAttributes=$=>(0,d.createAttributeWithCacheKey)({min:$.attributes.getFloat("min",l.MIN_CLIP),max:$.attributes.getFloat("max",l.MAX_CLIP)}),n.clipV11=($,z)=>{const J=H($,z);return(0,n.clip)($,[z[0]],J)};const H=($,z)=>{if(z.length>=3&&(!$.session.isInitializer(z[1].dataId)||!$.session.isInitializer(z[2].dataId)))throw new Error("dynamic clip attributes are not allowed");const J=z.length>=3?z[1].numberData[0]:l.MIN_CLIP,X=z.length>=3?z[2].numberData[0]:l.MAX_CLIP;return(0,d.createAttributeWithCacheKey)({min:J,max:X})};n.ceil=($,z)=>[$.run(N($,z[0],e()),z)],n.cos=($,z)=>[$.run(N($,z[0],r()),z)],n.elu=($,z,J)=>[$.run(N($,z[0],i(J.alpha),J.cacheKey),z)],n.parseEluAttributes=$=>(0,d.createAttributeWithCacheKey)({alpha:$.attributes.getFloat("alpha",1)}),n.exp=($,z)=>[$.run(N($,z[0],c()),z)],n.floor=($,z)=>[$.run(N($,z[0],g()),z)],n.identity=($,z)=>[$.run(N($,z[0],b()),z)],n.leakyRelu=($,z,J)=>[$.run(N($,z[0],_(J.alpha),J.cacheKey),z)],n.parseLeakyReluAttributes=$=>(0,d.createAttributeWithCacheKey)({alpha:$.attributes.getFloat("alpha",.01)}),n.log=($,z)=>[$.run(N($,z[0],w()),z)],n.neg=($,z)=>[$.run(N($,z[0],v()),z)],n.not=($,z)=>[$.run(N($,z[0],S()),z)],n.relu=($,z)=>[$.run(N($,z[0],E()),z)],n.sigmoid=($,z)=>[$.run(N($,z[0],T()),z)],n.sin=($,z)=>[$.run(N($,z[0],O()),z)],n.sqrt=($,z)=>[$.run(N($,z[0],I()),z)],n.tan=($,z)=>[$.run(N($,z[0],C()),z)],n.tanh=($,z)=>[$.run(N($,z[0],B()),z)]},5611:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createUnpackProgramInfoLoader=n.createUnpackProgramInfo=void 0;const d=u(5060),l=u(2039),p=u(9390),s=u(2827),h={name:"unpack",inputNames:["A"],inputTypes:[l.TextureType.packed]};n.createUnpackProgramInfo=(f,a)=>{const o=a.dims.length,t=(0,s.getChannels)("rc",o),e=t.slice(-2),r=(0,p.getCoordsDataType)(o),i=(0,s.unpackFromChannel)(),c=a.dims.length===0?"":function(b,_){if(b===1)return"rc";let w="";for(let v=0;v<b;v++)w+=_[v],v<b-1&&(w+=",");return w}(o,t),g=o<=1?"rc":`vec2(${e.join(",")})`,m=` - ${i} - void main() { - ${r} rc = getOutputCoords(); - - // Sample the texture with the coords to get the rgba channel value. - vec4 packedInput = getA(${c}); - - ${(0,d.getGlsl)(f.session.backend.glContext.version).output} = vec4(getChannel(packedInput, ${g}), 0, 0, 0); - } - `;return Object.assign(Object.assign({},h),{hasMain:!0,output:{dims:a.dims,type:a.type,textureType:l.TextureType.unpacked},shaderSource:m})},n.createUnpackProgramInfoLoader=(f,a)=>Object.assign(Object.assign({},h),{get:()=>(0,n.createUnpackProgramInfo)(f,a)})},8428:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseUnsqueezeAttributes=n.unsqueezeV13=n.unsqueeze=void 0;const d=u(2517);n.unsqueeze=(s,h,f)=>{l(h);const a=d.ShapeUtil.unsqueezeShape(h[0].dims,f);return[s.reshapeUnpacked(h[0],a)]},n.unsqueezeV13=(s,h)=>(p(h),(0,n.unsqueeze)(s,[h[0]],Array.from(h[1].integerData))),n.parseUnsqueezeAttributes=s=>s.attributes.getInts("axes");const l=s=>{if(!s||s.length!==1)throw new Error("Unsqueeze requires 1 input.");if(s[0].type==="string")throw new Error("invalid input tensor types.")},p=s=>{if(!s||s.length!==2)throw new Error("Unsqueeze requires 2 inputs.");if(s[1].type!=="int32")throw new Error("Invalid input type.")}},9793:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.scalesValidation=n.validateInputs=n.parseUpsampleAttributes=n.parseUpsampleAttributesV9=n.parseUpsampleAttributesV7=n.upsample=void 0;const d=u(246),l=u(5060),p=u(2039),s={name:"Upsample",inputNames:["X"],inputTypes:[p.TextureType.unpacked]};n.upsample=(f,a,o)=>((0,n.validateInputs)(a,o),[f.run(Object.assign(Object.assign({},s),{cacheHint:o.cacheKey,get:()=>h(f,a,o)}),a)]),n.parseUpsampleAttributesV7=f=>(0,n.parseUpsampleAttributes)(f,7),n.parseUpsampleAttributesV9=f=>(0,n.parseUpsampleAttributes)(f,9),n.parseUpsampleAttributes=(f,a)=>{const o=a>=10,t=f.attributes.getString("mode","nearest");if(t!=="nearest"&&t!=="linear"&&(a<11||t!=="cubic"))throw new Error(`unrecognized mode: ${t}`);let e=[];a<9&&(e=f.attributes.getFloats("scales"),(0,n.scalesValidation)(e,t,o));const r=f.attributes.getFloat("extrapolation_value",0),i=a>10?f.attributes.getString("coordinate_transformation_mode","half_pixel"):"asymmetric";if(["asymmetric","pytorch_half_pixel","tf_half_pixel_for_nn","align_corners","tf_crop_and_resize","half_pixel"].indexOf(i)===-1)throw new Error(`coordinate_transform_mode '${i}' is not supported`);const c=i==="tf_crop_and_resize",g=c,m=t==="nearest"&&a>=11?f.attributes.getString("nearest_mode","round_prefer_floor"):"";if(["round_prefer_floor","round_prefer_ceil","floor","ceil",""].indexOf(m)===-1)throw new Error(`nearest_mode '${m}' is not supported`);const b=f.attributes.getFloat("cubic_coeff_a",-.75),_=f.attributes.getInt("exclude_outside",0)!==0;if(_&&t!=="cubic")throw new Error("exclude_outside can be set to 1 only when mode is CUBIC.");const w=a<11||t==="nearest"&&i==="asymmetric"&&m==="floor";let v=0,S=0,O=0;return a>10?f.inputs.length>2?(v=1,S=2,O=3):(S=1,O=2):a===9&&(S=1),(0,d.createAttributeWithCacheKey)({opset:a,isResize:o,mode:t,scales:e,extrapolationValue:r,coordinateTransformMode:i,useExtrapolation:g,needRoiInput:c,nearestMode:m,cubicCoefficientA:b,excludeOutside:_,useNearest2xOptimization:w,roiInputIdx:v,scalesInputIdx:S,sizesInputIdx:O})};const h=(f,a,o)=>{const t=(0,l.getGlsl)(f.session.backend.glContext.version),[e,r]=f.calculateTextureWidthAndHeight(a[0].dims,p.TextureType.unpacked),i=a[0].dims.map((O,E)=>Math.floor(O*o.scales[E])),[c,g]=f.calculateTextureWidthAndHeight(i,p.TextureType.unpacked),m=i.length,b=new Array(m),_=new Array(m);let w=` - int output_pitches[${m}]; - int input_pitches[${m}]; - `;for(let O=m-1;O>=0;O--)b[O]=O===m-1?1:b[O+1]*i[O+1],_[O]=O===m-1?1:_[O+1]*a[0].dims[O+1],w+=` - output_pitches[${O}] = ${b[O]}; - input_pitches[${O}] = ${_[O]}; - `;const v=` - float getInputFloat(int index) { - vec2 coords = offsetToCoords(index, ${e}, ${r}); - float value = getColorAsFloat(${t.texture2D}(X, coords)); - return value; - } - `,S=o.mode==="nearest"?` - ${v} - float process(int indices[${m}]) { - int input_index = 0; - int output_index = coordsToOffset(TexCoords, ${c}, ${g}); - - ${w} - - int d, m; - for (int dim = 0; dim < ${m}; ++dim) { - d = output_index / output_pitches[dim]; - m = output_index - d * output_pitches[dim]; - output_index = m; - - if (scales[dim] != 1 && d > 0) { - int d2 = d / scales[dim]; - m = d - d2 * scales[dim]; - d = d2; - } - input_index += input_pitches[dim] * d; - } - - return getInputFloat(input_index); - }`:m===4?` - ${v} - float process(int indices[4]) { - int input_index = 0; - int output_index = coordsToOffset(TexCoords, ${c}, ${g}); - - ${w} - - int m; - int index_of_dim0, index_of_dim1, index_of_dim2, index_of_dim3; - index_of_dim0 = output_index / output_pitches[0]; - m = output_index - index_of_dim0 * output_pitches[0]; - index_of_dim1 = m / output_pitches[1]; - m = m - index_of_dim1 * output_pitches[1]; - index_of_dim2 = m / output_pitches[2]; - m = m - index_of_dim2 * output_pitches[2]; - index_of_dim3 = m; - - int index_of_input_dim2, index_of_input_dim3, x_offset, y_offset; - index_of_input_dim2 = index_of_dim2 / scales[2]; - y_offset = index_of_dim2 - index_of_input_dim2 * scales[2]; - index_of_input_dim3 = index_of_dim3 / scales[3]; - x_offset = index_of_dim3 - index_of_input_dim3 * scales[3]; - - input_index = index_of_dim0 * input_pitches[0] + - index_of_dim1 * input_pitches[1] + - index_of_input_dim2 * input_pitches[2] + - index_of_input_dim3; - - float x00 = getInputFloat(input_index); - float x10, x01, x11; - - bool end_of_dim2 = false; - if (index_of_input_dim2 == (${a[0].dims[2]} - 1)) { - // It's the end in dimension 2 - x01 = x00; - end_of_dim2 = true; - } else { - x01 = getInputFloat(input_index + input_pitches[2]); - } - - if (index_of_input_dim3 == (input_pitches[2] - 1)) { - // It's the end in dimension 3 - x10 = x00; - x11 = x01; - } - else { - x10 = getInputFloat(input_index + 1); - x11 = end_of_dim2 ? x10 : getInputFloat(input_index + input_pitches[2] + 1); - } - - float y0 = x00 + float(y_offset) * (x01 - x00) / float(scales[2]); - float y1 = x10 + float(y_offset) * (x11 - x10) / float(scales[2]); - return y0 + float(x_offset) * (y1 - y0) / float(scales[3]); - }`:` - ${v} - float process(int indices[2]) { - int input_index = 0; - int output_index = coordsToOffset(TexCoords, ${c}, ${g}); - - ${w} - - int m; - int index_of_dim0, index_of_dim1; - index_of_dim0 = output_index / output_pitches[0]; - m = output_index - index_of_dim0 * output_pitches[0]; - index_of_dim1 = m; - - int index_of_input_dim0, index_of_input_dim1, x_offset, y_offset; - index_of_input_dim0 = index_of_dim0 / scales[0]; - y_offset = index_of_dim0 - index_of_input_dim0 * scales[0]; - index_of_input_dim1 = index_of_dim1 / scales[1]; - x_offset = index_of_dim1 - index_of_input_dim1 * scales[1]; - - input_index = index_of_input_dim0 * input_pitches[0] + index_of_input_dim1; - - float x00 = getInputFloat(input_index); - float x10, x01, x11; - - bool end_of_dim0 = false; - if (index_of_input_dim0 == (${a[0].dims[0]} - 1)) { - // It's the end in dimension 0 - x01 = x00; - end_of_dim0 = true; - } else { - x01 = getInputFloat(input_index + input_pitches[0]); - } - - if (index_of_input_dim1 == (input_pitches[0] - 1)) { - // It's the end in dimension 1 - x10 = x00; - x11 = x01; - } - else { - x10 = getInputFloat(input_index + 1); - x11 = end_of_dim0 ? x10 : getInputFloat(input_index + input_pitches[0] + 1); - } - - float y0 = x00 + float(y_offset) * (x01 - x00) / float(scales[0]); - float y1 = x10 + float(y_offset) * (x11 - x10) / float(scales[0]); - return y0 + float(x_offset) * (y1 - y0) / float(scales[1]); - }`;return Object.assign(Object.assign({},s),{output:{dims:i,type:a[0].type,textureType:p.TextureType.unpacked},shaderSource:S,variables:[{name:"scales",type:"int",arrayLength:o.scales.length,data:o.scales.map(O=>Math.ceil(O))}]})};n.validateInputs=(f,a)=>{if(!f||a.opset<9&&f.length!==1||a.opset>=9&&a.opset<11&&f.length!==2||a.opset>=11&&f.length<2)throw new Error("invalid inputs.");if(a.scales.length>0&&f[0].dims.length!==a.scales.length)throw new Error("Invalid input shape.");if(f[0].type==="string")throw new Error("Invalid input tensor types.")},n.scalesValidation=(f,a,o)=>{if(o){for(const t of f)if(t<=0)throw new Error("Scale value should be greater than 0.")}else for(const t of f)if(t<1)throw new Error("Scale value should be greater than or equal to 1.");if(!(a!=="linear"&&a!=="cubic"||f.length===2||f.length===4&&f[0]===1&&f[1]===1))throw new Error(`'Linear' mode and 'Cubic' mode only support 2-D inputs ('Bilinear', 'Bicubic') or 4-D inputs with the corresponding outermost 2 scale values being 1 in the ${o?"Resize":"Upsample"} opeartor.`)}},1958:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ProgramManager=void 0;const d=u(1670),l=u(6231),p=u(8879),s=u(5060);n.ProgramManager=class{constructor(h,f,a){this.profiler=h,this.glContext=f,this.textureLayoutStrategy=a,this.repo=new Map,this.attributesBound=!1}getArtifact(h){return this.repo.get(h)}setArtifact(h,f){this.repo.set(h,f)}run(h,f,a){var o;this.profiler.event("op",`ProgramManager.run ${(o=h.programInfo.name)!==null&&o!==void 0?o:"unknown kernel"}`,()=>{var t;const e=this.glContext.gl,r=h.program;e.useProgram(r);try{this.bindOutput(a),this.attributesBound||this.bindAttributes(h.attribLocations),this.bindUniforms(h.uniformLocations,(t=h.programInfo.variables)!==null&&t!==void 0?t:[],f)}catch(i){throw l.Logger.error("ProgramManager",h.programInfo.shaderSource),i}this.profiler.event("backend","GlContext.draw()",()=>{this.glContext.draw()})},this.glContext)}dispose(){this.vertexShader&&this.glContext.deleteShader(this.vertexShader),this.repo.forEach(h=>this.glContext.deleteProgram(h.program))}build(h,f,a){return this.profiler.event("backend","ProgramManager.build",()=>{const o=new p.GlslPreprocessor(this.glContext,h,f,a),t=o.preprocess(),e=this.compile(t);return{programInfo:h,program:e,uniformLocations:this.getUniformLocations(e,o.context.programInfo.inputNames,o.context.programInfo.variables),attribLocations:this.getAttribLocations(e)}})}compile(h){if(!this.vertexShader){l.Logger.verbose("ProrgramManager","Compiling and caching Vertex shader for the first time");const o=(0,s.getVertexShaderSource)(this.glContext.version);this.vertexShader=this.glContext.compileShader(o,this.glContext.gl.VERTEX_SHADER)}d.env.debug&&l.Logger.verbose("ProrgramManager",`FragShader: -${h} -`);const f=this.glContext.compileShader(h,this.glContext.gl.FRAGMENT_SHADER),a=this.glContext.createProgram(this.vertexShader,f);return this.glContext.deleteShader(f),a}bindOutput(h){const f=h.width,a=h.height;l.Logger.verbose("ProrgramManager",`Binding output texture to Framebuffer: w/h=${f}/${a}, shape=${h.shape}, type=${h.tensor.type}`),this.glContext.attachFramebuffer(h.texture,f,a)}bindAttributes(h){const f=h.position,a=h.textureCoord;this.glContext.setVertexAttributes(f,a),this.attributesBound=!0}bindUniforms(h,f,a){var o;const t=this.glContext.gl;let e=0;for(const{name:r,type:i,location:c,arrayLength:g}of h){const m=(o=f.find(b=>b.name===r))===null||o===void 0?void 0:o.data;if(i!=="sampler2D"&&!m)throw new Error(`variable '${r}' does not have data defined in program info`);switch(i){case"sampler2D":this.bindTexture(a[e],c,e),e++;break;case"float":g?t.uniform1fv(c,m):t.uniform1f(c,m);break;case"int":g?t.uniform1iv(c,m):t.uniform1i(c,m);break;default:throw new Error(`Uniform not implemented: ${i}`)}}}bindTexture(h,f,a){this.glContext.bindTextureToUniform(h.texture,a,f)}getAttribLocations(h){return{position:this.getAttribLocation(h,"position"),textureCoord:this.getAttribLocation(h,"textureCoord")}}getUniformLocations(h,f,a){const o=[];if(f)for(const t of f)o.push({name:t,type:"sampler2D",location:this.getUniformLocation(h,t)});if(a)for(const t of a)o.push(Object.assign(Object.assign({},t),{location:this.getUniformLocation(h,t.name)}));return o}getUniformLocation(h,f){const a=this.glContext.gl.getUniformLocation(h,f);if(a===null)throw new Error(`Uniform ${f} not found.`);return a}getAttribLocation(h,f){return this.glContext.gl.getAttribLocation(h,f)}}},6416:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.WebGLSessionHandler=void 0;const d=u(6231),l=u(1047),p=u(8316),s=u(1640),h=u(1958),f=u(7859),a=u(5702);n.WebGLSessionHandler=class{constructor(o,t){this.backend=o,this.context=t,this.layoutStrategy=new f.PreferLogicalStrategy(o.glContext.maxTextureSize),this.programManager=new h.ProgramManager(this.context.profiler,o.glContext,this.layoutStrategy),this.textureManager=new a.TextureManager(o.glContext,this.layoutStrategy,this.context.profiler,{reuseTextures:o.textureCacheMode==="full"}),this.packedTextureDataCache=new Map,this.unpackedTextureDataCache=new Map,this.pack=o.pack,this.pack2unpackMap=new Map,this.unpack2packMap=new Map}createInferenceHandler(){return new p.WebGLInferenceHandler(this)}onGraphInitialized(o){const t=o.getValues().filter(e=>e.from===-1&&e.tensor).map(e=>e.tensor.dataId);this.initializers=new Set(t)}isInitializer(o){return!!this.initializers&&this.initializers.has(o)}addInitializer(o){this.initializers.add(o)}getTextureData(o,t){return t?this.packedTextureDataCache.get(o):this.unpackedTextureDataCache.get(o)}setTextureData(o,t,e=!1){d.Logger.verbose("WebGLSessionHandler","Storing Texture data in cache"),e?this.packedTextureDataCache.set(o,t):this.unpackedTextureDataCache.set(o,t)}dispose(){this.programManager.dispose(),this.textureManager.clearActiveTextures(),this.packedTextureDataCache.forEach(o=>this.textureManager.releaseTexture(o,!0)),this.packedTextureDataCache=new Map,this.unpackedTextureDataCache.forEach(o=>this.textureManager.releaseTexture(o,!0)),this.unpackedTextureDataCache=new Map}resolve(o,t,e){const r=(0,l.resolveOperator)(o,t,s.WEBGL_OP_RESOLVE_RULES);return{impl:r.opImpl,context:r.opInit?r.opInit(o,e):o}}}},7769:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Uint8DataEncoder=n.RGBAFloatDataEncoder=n.RedFloat32DataEncoder=void 0;const d=u(6231);n.RedFloat32DataEncoder=class{constructor(l,p=1){if(p===1)this.internalFormat=l.R32F,this.format=l.RED,this.textureType=l.FLOAT,this.channelSize=p;else{if(p!==4)throw new Error(`Invalid number of channels: ${p}`);this.internalFormat=l.RGBA32F,this.format=l.RGBA,this.textureType=l.FLOAT,this.channelSize=p}}encode(l,p){let s,h;return l.constructor!==Float32Array&&(d.Logger.warning("Encoder","data was not of type Float32; creating new Float32Array"),h=new Float32Array(l)),p*this.channelSize>l.length?(d.Logger.warning("Encoder","Source data too small. Allocating larger array"),h=l,s=this.allocate(p*this.channelSize),h.forEach((f,a)=>s[a]=f)):(h=l,s=h),s}allocate(l){return new Float32Array(4*l)}decode(l,p){return this.channelSize===1?l.filter((s,h)=>h%4==0).subarray(0,p):l.subarray(0,p)}},n.RGBAFloatDataEncoder=class{constructor(l,p=1,s){if(p!==1&&p!==4)throw new Error(`Invalid number of channels: ${p}`);this.internalFormat=l.RGBA,this.format=l.RGBA,this.channelSize=p,this.textureType=s||l.FLOAT}encode(l,p){let s=l;return this.channelSize===1&&(d.Logger.verbose("Encoder","Exploding into a larger array"),s=this.allocate(p),l.forEach((h,f)=>s[4*f]=h)),s}allocate(l){return new Float32Array(4*l)}decode(l,p){return this.channelSize===1?l.filter((s,h)=>h%4==0).subarray(0,p):l.subarray(0,p)}},n.Uint8DataEncoder=class{constructor(l,p=1){if(this.channelSize=4,p===1)this.internalFormat=l.ALPHA,this.format=l.ALPHA,this.textureType=l.UNSIGNED_BYTE,this.channelSize=p;else{if(p!==4)throw new Error(`Invalid number of channels: ${p}`);this.internalFormat=l.RGBA,this.format=l.RGBA,this.textureType=l.UNSIGNED_BYTE,this.channelSize=p}}encode(l,p){return new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}allocate(l){return new Uint8Array(l*this.channelSize)}decode(l,p){if(l instanceof Uint8Array)return l.subarray(0,p);throw new Error(`Invalid array type: ${l.constructor}`)}}},7859:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.getBatchDim=n.sizeToSquarishShape=n.getRowsCols=n.sizeFromShape=n.isInt=n.parseAxisParam=n.squeezeShape=n.PreferLogicalStrategy=n.AlwaysKeepOriginalSizeStrategy=void 0;const d=u(6231),l=u(2517);function p(o,t){const e=[],r=[],i=t!=null&&Array.isArray(t)&&t.length===0,c=t==null||i?null:s(t,o).sort();let g=0;for(let m=0;m<o.length;++m){if(c!=null){if(c[g]===m&&o[m]!==1)throw new Error(`Can't squeeze axis ${m} since its dim '${o[m]}' is not 1`);(c[g]==null||c[g]>m)&&o[m]===1&&(e.push(o[m]),r.push(m)),c[g]<=m&&g++}o[m]!==1&&(e.push(o[m]),r.push(m))}return{newShape:e,keptDims:r}}function s(o,t){const e=t.length;return o=o==null?t.map((r,i)=>i):[].concat(o),(0,l.assert)(o.every(r=>r>=-e&&r<e),()=>`All values in axis param must be in range [-${e}, ${e}) but got axis ${o}`),(0,l.assert)(o.every(h),()=>`All values in axis param must be integers but got axis ${o}`),o.map(r=>r<0?e+r:r)}function h(o){return o%1==0}function f(o){if(o.length===0)return 1;let t=o[0];for(let e=1;e<o.length;e++)t*=o[e];return t}function a(o){const t=Math.ceil(Math.sqrt(o));return[t,Math.ceil(o/t)]}n.AlwaysKeepOriginalSizeStrategy=class{constructor(o){this.maxTextureSize=o}computeTextureWH(o,t){if(o.length===0)return[1,1];const e=this.maxTextureSize;if(t&&t.breakAxis!==void 0){const c=t.breakAxis>=o.length?1:o.slice(t.breakAxis).reduce((m,b)=>m*b),g=t.breakAxis<=0?1:o.slice(0,t.breakAxis).reduce((m,b)=>m*b);if(!(c>e||g>e))return[c,g];d.Logger.verbose("TextureLayout",`Given width/height preferences were unattainable: shape:${o}, breakAxis:${t.breakAxis}`)}const r=o.reduce((c,g)=>c*g);let i=Math.floor(Math.sqrt(r));for(;i<e&&i<r&&r%i!=0;i++);if(i>=e||r%i!=0)throw new Error(`The given dimensions are outside this GPU's boundaries: ${o}`);return[i,r/i]}},n.PreferLogicalStrategy=class{constructor(o){this.maxTextureSize=o}computeTextureWH(o,t){const e=this.computeTexture(o,t);return t&&t.isPacked&&(e[0]/=2,e[1]/=2),t&&t.reverseWH?[e[1],e[0]]:e}computeTexture(o,t){const e=t&&t.isPacked;if(o.length===0)return e?[2,2]:[1,1];let r=this.maxTextureSize;if(t&&t.breakAxis!==void 0){const g=t.breakAxis>=o.length?1:o.slice(t.breakAxis).reduce((b,_)=>b*_),m=t.breakAxis<=0?1:o.slice(0,t.breakAxis).reduce((b,_)=>b*_);if(!(g>r||m>r))return[g,m];d.Logger.verbose("TextureLayout",`Given width/height preferences were unattainable: shape:${o}, breakAxis:${t.breakAxis}`)}let i=o.slice(0);e&&(r*=2,i=i.map((g,m)=>m>=i.length-2?i[m]%2==0?i[m]:i[m]+1:i[m]),i.length===1&&(i=[2,i[0]])),i.length!==2&&(i=p(i).newShape);const c=f(i);return i.length<=1&&c<=r?[1,c]:i.length===2&&i[0]<=r&&i[1]<=r?i:i.length===3&&i[0]*i[1]<=r&&i[2]<=r?[i[0]*i[1],i[2]]:i.length===3&&i[0]<=r&&i[1]*i[2]<=r?[i[0],i[1]*i[2]]:i.length===4&&i[0]*i[1]*i[2]<=r&&i[3]<=r?[i[0]*i[1]*i[2],i[3]]:i.length===4&&i[0]<=r&&i[1]*i[2]*i[3]<=r?[i[0],i[1]*i[2]*i[3]]:e?a(c/4).map(g=>2*g):a(c)}},n.squeezeShape=p,n.parseAxisParam=s,n.isInt=h,n.sizeFromShape=f,n.getRowsCols=function(o){if(o.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[o.length>1?o[o.length-2]:1,o[o.length-1]]},n.sizeToSquarishShape=a,n.getBatchDim=function(o,t=2){return f(o.slice(0,o.length-t))}},4057:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createTextureLayoutFromShape=n.calculateTextureWidthAndHeight=n.createTextureLayoutFromTextureType=void 0;const d=u(2517),l=u(2039);n.createTextureLayoutFromTextureType=(p,s,h)=>{const f=h===l.TextureType.unpacked||h===l.TextureType.unpackedReversed?1:4,a=h===l.TextureType.packed,o=h===l.TextureType.unpackedReversed||h===l.TextureType.packed,t=h===l.TextureType.packedLastDimension?s.length-1:void 0,e=h===l.TextureType.packedLastDimension?s.map((r,i)=>i===s.length-1?4*r:r):void 0;return(0,n.createTextureLayoutFromShape)(p,s,f,e,{isPacked:a,reverseWH:o,breakAxis:t})},n.calculateTextureWidthAndHeight=(p,s,h)=>{const f=(0,n.createTextureLayoutFromTextureType)(p,s,h);return[f.width,f.height]},n.createTextureLayoutFromShape=(p,s,h=1,f,a)=>{const o=!(!a||!a.isPacked),[t,e]=p.computeTextureWH(o&&f||s,a),r=s.length;let i=s.slice(0);if(r===0&&(i=[1]),h===1)f=s;else if(o){if(h!==4)throw new Error("a packed texture must be 4-channel");f=s,r>0&&(i[r-1]=Math.ceil(i[r-1]/2)),r>1&&(i[r-2]=Math.ceil(i[r-2]/2))}else if(!f)throw new Error("Unpacked shape is needed when using channels > 1");return{width:t,height:e,channels:h,isPacked:o,shape:i,strides:d.ShapeUtil.computeStrides(i),unpackedShape:f,reversedWH:a&&a.reverseWH}}},5702:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.TextureManager=void 0;const d=u(6231);n.TextureManager=class{constructor(l,p,s,h){this.glContext=l,this.layoutStrategy=p,this.profiler=s,this.config=h,this.pendingRead=new Map,h.reuseTextures&&(this.inUseTextures=new Map,this.idleTextures=new Map,this.textureLookup=new Map)}createTextureFromLayout(l,p,s,h){const f=this.toEncoderType(l),a=this.glContext.getEncoder(f,p.channels||1,h);if(p.isPacked&&h===1)throw new Error("not implemented");const o=p.width,t=p.height;let e,r;if(this.config.reuseTextures){e=`${o}x${t}_${a.format}_${a.internalFormat}_${a.textureType}`,r=this.inUseTextures.get(e),r||(r=[],this.inUseTextures.set(e,r));const c=this.idleTextures.get(e);if(c&&c.length>0){const g=c.pop();return r.push(g),h===1&&this.glContext.updateTexture(g,o,t,a,this.toTextureData(l,s)),g}}d.Logger.verbose("TextureManager",`Creating new texture of size ${p.width}x${p.height}`);const i=this.glContext.allocateTexture(o,t,a,this.toTextureData(l,s));return this.config.reuseTextures&&(r.push(i),this.textureLookup.set(i,e)),i}readTexture(l,p,s){return s||(s=1),this.profiler.event("backend","TextureManager.readTexture",()=>{const h=l.shape.reduce((a,o)=>a*o)*s,f=this.glContext.readTexture(l.texture,l.width,l.height,h,this.toEncoderType(p),s);return this.toTensorData(p,f)})}async readTextureAsync(l,p,s){const h=l.tensor.dataId;if(s||(s=1),this.pendingRead.has(h)){const f=this.pendingRead.get(h);return new Promise(a=>f==null?void 0:f.push(a))}return this.profiler.event("backend","TextureManager.readTextureAsync",async()=>{this.pendingRead.set(h,[]);const f=l.shape.reduce((e,r)=>e*r)*s;await this.glContext.createAndWaitForFence();const a=this.glContext.readTexture(l.texture,l.width,l.height,f,this.toEncoderType(p),s),o=this.toTensorData(p,a),t=this.pendingRead.get(h);return this.pendingRead.delete(h),t==null||t.forEach(e=>e(o)),o})}readUint8TextureAsFloat(l){return this.profiler.event("backend","TextureManager.readUint8TextureAsFloat",()=>{const p=l.shape.reduce((h,f)=>h*f),s=this.glContext.readTexture(l.texture,l.width,l.height,4*p,"byte",4);return new Float32Array(s.buffer,s.byteOffset,p)})}releaseTexture(l,p){let s;if(this.config.reuseTextures&&(s=this.textureLookup.get(l.texture),s)){p&&this.textureLookup.delete(s);const h=this.inUseTextures.get(s);if(h){const f=h.indexOf(l.texture);if(f!==-1){h.splice(f,1);let a=this.idleTextures.get(s);a||(a=[],this.idleTextures.set(s,a)),a.push(l.texture)}}}s&&!p||(d.Logger.verbose("TextureManager",`Deleting texture of size ${l.width}x${l.height}`),this.glContext.deleteTexture(l.texture))}toTensorData(l,p){switch(l){case"int16":return p instanceof Int16Array?p:Int16Array.from(p);case"int32":return p instanceof Int32Array?p:Int32Array.from(p);case"int8":return p instanceof Int8Array?p:Int8Array.from(p);case"uint16":return p instanceof Uint16Array?p:Uint16Array.from(p);case"uint32":return p instanceof Uint32Array?p:Uint32Array.from(p);case"uint8":case"bool":return p instanceof Uint8Array?p:Uint8Array.from(p);case"float32":return p instanceof Float32Array?p:Float32Array.from(p);case"float64":return p instanceof Float64Array?p:Float64Array.from(p);default:throw new Error(`TensorData type ${l} is not supported`)}}toTextureData(l,p){if(p)return p instanceof Float32Array?p:new Float32Array(p)}toEncoderType(l){return"float"}clearActiveTextures(){this.glContext.clearActiveTextures()}}},2039:(y,n)=>{var u;Object.defineProperty(n,"__esModule",{value:!0}),n.TextureType=void 0,(u=n.TextureType||(n.TextureType={}))[u.unpacked=0]="unpacked",u[u.unpackedReversed=1]="unpackedReversed",u[u.packed=2]="packed",u[u.downloadUint8AsFloat=3]="downloadUint8AsFloat",u[u.packedLastDimension=4]="packedLastDimension"},9390:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.getGlChannels=n.getCoordsDataType=n.getSqueezedParams=n.squeezeInputShape=n.generateShaderFuncNameFromInputSamplerNameAtOutCoords=n.generateShaderFuncNameFromInputSamplerName=n.repeatedTry=n.getPackedShape=void 0;const d=u(2517);n.getPackedShape=function(l){const p=l.length;return l.slice(0,p-1).concat(l[p-1]/4)},n.repeatedTry=async function(l,p=h=>0,s){return new Promise((h,f)=>{let a=0;const o=()=>{if(l())return void h();a++;const t=p(a);s!=null&&a>=s?f():setTimeout(o,t)};o()})},n.generateShaderFuncNameFromInputSamplerName=function(l){return(0,d.assert)(l!==void 0&&l.length!==0,()=>"empty string found for sampler name"),"get"+l.charAt(0).toUpperCase()+l.slice(1)},n.generateShaderFuncNameFromInputSamplerNameAtOutCoords=function(l){return(0,d.assert)(l!==void 0&&l.length!==0,()=>"empty string found for sampler name"),"get"+l.charAt(0).toUpperCase()+l.slice(1)+"AtOutCoords"},n.squeezeInputShape=function(l,p){let s=JSON.parse(JSON.stringify(l));return s=p,s},n.getSqueezedParams=function(l,p){return p.map(s=>l[s]).join(", ")},n.getCoordsDataType=function(l){if(l<=1)return"int";if(l===2)return"ivec2";if(l===3)return"ivec3";if(l===4)return"ivec4";if(l===5)return"ivec5";if(l===6)return"ivec6";throw Error(`GPU for rank ${l} is not yet supported`)},n.getGlChannels=function(l=6){return["x","y","z","w","u","v"].slice(0,l)}},7305:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createNewWebGLContext=n.createWebGLContext=void 0;const d=u(6231),l=u(1713),p={};function s(h){const f=function(){if(typeof document>"u"){if(typeof OffscreenCanvas>"u")throw new TypeError("failed to create canvas: OffscreenCanvas is not supported");return new OffscreenCanvas(1,1)}const t=document.createElement("canvas");return t.width=1,t.height=1,t}();let a;const o={alpha:!1,depth:!1,antialias:!1,stencil:!1,preserveDrawingBuffer:!1,premultipliedAlpha:!1,failIfMajorPerformanceCaveat:!1};if((!h||h==="webgl2")&&(a=f.getContext("webgl2",o),a))try{return new l.WebGLContext(a,2)}catch(t){d.Logger.warning("GlContextFactory",`failed to create WebGLContext using contextId 'webgl2'. Error: ${t}`)}if((!h||h==="webgl")&&(a=f.getContext("webgl",o)||f.getContext("experimental-webgl",o),a))try{return new l.WebGLContext(a,1)}catch(t){d.Logger.warning("GlContextFactory",`failed to create WebGLContext using contextId 'webgl' or 'experimental-webgl'. Error: ${t}`)}throw new Error("WebGL is not supported")}n.createWebGLContext=function h(f){let a;f&&f!=="webgl2"||!("webgl2"in p)?f&&f!=="webgl"||!("webgl"in p)||(a=p.webgl):a=p.webgl2,a=a||s(f),f=f||a.version===1?"webgl":"webgl2";const o=a.gl;return p[f]=a,o.isContextLost()?(delete p[f],h(f)):(o.disable(o.DEPTH_TEST),o.disable(o.STENCIL_TEST),o.disable(o.BLEND),o.disable(o.DITHER),o.disable(o.POLYGON_OFFSET_FILL),o.disable(o.SAMPLE_COVERAGE),o.enable(o.SCISSOR_TEST),o.enable(o.CULL_FACE),o.cullFace(o.BACK),a)},n.createNewWebGLContext=s},1713:function(y,n,u){var d=this&&this.__createBinding||(Object.create?function(o,t,e,r){r===void 0&&(r=e);var i=Object.getOwnPropertyDescriptor(t,e);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(o,r,i)}:function(o,t,e,r){r===void 0&&(r=e),o[r]=t[e]}),l=this&&this.__setModuleDefault||(Object.create?function(o,t){Object.defineProperty(o,"default",{enumerable:!0,value:t})}:function(o,t){o.default=t}),p=this&&this.__importStar||function(o){if(o&&o.__esModule)return o;var t={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&d(t,o,e);return l(t,o),t};Object.defineProperty(n,"__esModule",{value:!0}),n.WebGLContext=n.linearSearchLastTrue=void 0;const s=u(1670),h=p(u(7769)),f=u(9390);function a(o){let t=0;for(;t<o.length&&o[t]();++t);return t-1}n.linearSearchLastTrue=a,n.WebGLContext=class{constructor(o,t){this.frameBufferBound=!1,this.itemsToPoll=[],this.gl=o,this.version=t,this.getExtensions(),this.vertexbuffer=this.createVertexbuffer(),this.framebuffer=this.createFramebuffer(),this.queryVitalParameters()}allocateTexture(o,t,e,r){const i=this.gl,c=i.createTexture();i.bindTexture(i.TEXTURE_2D,c),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE);const g=r?e.encode(r,o*t):null;return i.texImage2D(i.TEXTURE_2D,0,e.internalFormat,o,t,0,e.format,e.textureType,g),this.checkError(),c}updateTexture(o,t,e,r,i){const c=this.gl;c.bindTexture(c.TEXTURE_2D,o);const g=r.encode(i,t*e);c.texSubImage2D(c.TEXTURE_2D,0,0,0,t,e,r.format,r.textureType,g),this.checkError()}attachFramebuffer(o,t,e){const r=this.gl;r.bindTexture(r.TEXTURE_2D,o),r.bindFramebuffer(r.FRAMEBUFFER,this.framebuffer),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,o,0),this.checkError(),r.viewport(0,0,t,e),r.scissor(0,0,t,e)}readTexture(o,t,e,r,i,c){const g=this.gl;c||(c=1),this.frameBufferBound||this.attachFramebuffer(o,t,e);const m=this.getEncoder(i,c),b=m.allocate(t*e);return g.bindTexture(g.TEXTURE_2D,o),g.framebufferTexture2D(g.FRAMEBUFFER,g.COLOR_ATTACHMENT0,g.TEXTURE_2D,o,0),g.readPixels(0,0,t,e,g.RGBA,m.textureType,b),this.checkError(),m.decode(b,r)}isFramebufferReady(){return!0}getActiveTexture(){const o=this.gl;return"TEXTURE"+(o.getParameter(this.gl.ACTIVE_TEXTURE)-o.TEXTURE0)}getTextureBinding(){return this.gl.getParameter(this.gl.TEXTURE_BINDING_2D)}getFramebufferBinding(){return this.gl.getParameter(this.gl.FRAMEBUFFER_BINDING)}setVertexAttributes(o,t){const e=this.gl;e.vertexAttribPointer(o,3,e.FLOAT,!1,20,0),e.enableVertexAttribArray(o),t!==-1&&(e.vertexAttribPointer(t,2,e.FLOAT,!1,20,12),e.enableVertexAttribArray(t)),this.checkError()}createProgram(o,t){const e=this.gl,r=e.createProgram();return e.attachShader(r,o),e.attachShader(r,t),e.linkProgram(r),r}compileShader(o,t){const e=this.gl,r=e.createShader(t);if(!r)throw new Error(`createShader() returned null with type ${t}`);if(e.shaderSource(r,o),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)===!1)throw new Error(`Failed to compile shader: ${e.getShaderInfoLog(r)} -Shader source: -${o}`);return r}deleteShader(o){this.gl.deleteShader(o)}bindTextureToUniform(o,t,e){const r=this.gl;r.activeTexture(r.TEXTURE0+t),this.checkError(),r.bindTexture(r.TEXTURE_2D,o),this.checkError(),r.uniform1i(e,t),this.checkError()}draw(){this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4),this.checkError()}checkError(){if(s.env.debug){const o=this.gl,t=o.getError();let e="";switch(t){case o.NO_ERROR:return;case o.INVALID_ENUM:e="INVALID_ENUM";break;case o.INVALID_VALUE:e="INVALID_VALUE";break;case o.INVALID_OPERATION:e="INVALID_OPERATION";break;case o.INVALID_FRAMEBUFFER_OPERATION:e="INVALID_FRAMEBUFFER_OPERATION";break;case o.OUT_OF_MEMORY:e="OUT_OF_MEMORY";break;case o.CONTEXT_LOST_WEBGL:e="CONTEXT_LOST_WEBGL";break;default:e=`Unknown WebGL Error: ${t.toString(16)}`}throw new Error(e)}}deleteTexture(o){this.gl.deleteTexture(o)}deleteProgram(o){this.gl.deleteProgram(o)}getEncoder(o,t,e=0){if(this.version===2)return new h.RedFloat32DataEncoder(this.gl,t);switch(o){case"float":return e===1||this.isRenderFloat32Supported?new h.RGBAFloatDataEncoder(this.gl,t):new h.RGBAFloatDataEncoder(this.gl,t,this.textureHalfFloatExtension.HALF_FLOAT_OES);case"int":throw new Error("not implemented");case"byte":return new h.Uint8DataEncoder(this.gl,t);default:throw new Error(`Invalid dataType: ${o}`)}}clearActiveTextures(){const o=this.gl;for(let t=0;t<this.maxTextureImageUnits;++t)o.activeTexture(o.TEXTURE0+t),o.bindTexture(o.TEXTURE_2D,null)}dispose(){if(this.disposed)return;const o=this.gl;o.bindFramebuffer(o.FRAMEBUFFER,null),o.deleteFramebuffer(this.framebuffer),o.bindBuffer(o.ARRAY_BUFFER,null),o.deleteBuffer(this.vertexbuffer),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,null),o.finish(),this.disposed=!0}createDefaultGeometry(){return new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0])}createVertexbuffer(){const o=this.gl,t=o.createBuffer();if(!t)throw new Error("createBuffer() returned null");const e=this.createDefaultGeometry();return o.bindBuffer(o.ARRAY_BUFFER,t),o.bufferData(o.ARRAY_BUFFER,e,o.STATIC_DRAW),this.checkError(),t}createFramebuffer(){const o=this.gl.createFramebuffer();if(!o)throw new Error("createFramebuffer returned null");return o}queryVitalParameters(){const o=this.gl;if(this.isFloatTextureAttachableToFrameBuffer=this.checkFloatTextureAttachableToFrameBuffer(),this.isRenderFloat32Supported=this.checkRenderFloat32(),this.isFloat32DownloadSupported=this.checkFloat32Download(),this.version===1&&!this.textureHalfFloatExtension&&!this.isRenderFloat32Supported)throw new Error("both float32 and float16 TextureType are not supported");this.isBlendSupported=!this.isRenderFloat32Supported||this.checkFloat32Blend(),this.maxTextureSize=o.getParameter(o.MAX_TEXTURE_SIZE),this.maxTextureImageUnits=o.getParameter(o.MAX_TEXTURE_IMAGE_UNITS),this.version}getExtensions(){this.version===2?(this.colorBufferFloatExtension=this.gl.getExtension("EXT_color_buffer_float"),this.disjointTimerQueryWebgl2Extension=this.gl.getExtension("EXT_disjoint_timer_query_webgl2")):(this.textureFloatExtension=this.gl.getExtension("OES_texture_float"),this.textureHalfFloatExtension=this.gl.getExtension("OES_texture_half_float"))}checkFloatTextureAttachableToFrameBuffer(){const o=this.gl,t=o.createTexture();o.bindTexture(o.TEXTURE_2D,t);const e=this.version===2?o.RGBA32F:o.RGBA;o.texImage2D(o.TEXTURE_2D,0,e,1,1,0,o.RGBA,o.FLOAT,null);const r=o.createFramebuffer();o.bindFramebuffer(o.FRAMEBUFFER,r),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,t,0);const i=o.checkFramebufferStatus(o.FRAMEBUFFER)===o.FRAMEBUFFER_COMPLETE;return o.bindTexture(o.TEXTURE_2D,null),o.bindFramebuffer(o.FRAMEBUFFER,null),o.deleteTexture(t),o.deleteFramebuffer(r),i}checkRenderFloat32(){if(this.version===2){if(!this.colorBufferFloatExtension)return!1}else if(!this.textureFloatExtension)return!1;return this.isFloatTextureAttachableToFrameBuffer}checkFloat32Download(){if(this.version===2){if(!this.colorBufferFloatExtension)return!1}else if(!this.textureFloatExtension||!this.gl.getExtension("WEBGL_color_buffer_float"))return!1;return this.isFloatTextureAttachableToFrameBuffer}checkFloat32Blend(){const o=this.gl;let t,e,r,i,c;try{t=o.createTexture(),e=o.createFramebuffer(),o.bindTexture(o.TEXTURE_2D,t);const g=this.version===2?o.RGBA32F:o.RGBA;return o.texImage2D(o.TEXTURE_2D,0,g,1,1,0,o.RGBA,o.FLOAT,null),o.bindFramebuffer(o.FRAMEBUFFER,e),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,t,0),o.enable(o.BLEND),r=o.createShader(o.VERTEX_SHADER),!!r&&(o.shaderSource(r,"void main(){}"),o.compileShader(r),i=o.createShader(o.FRAGMENT_SHADER),!!i&&(o.shaderSource(i,"precision highp float;void main(){gl_FragColor=vec4(0.5);}"),o.compileShader(i),c=o.createProgram(),!!c&&(o.attachShader(c,r),o.attachShader(c,i),o.linkProgram(c),o.useProgram(c),o.drawArrays(o.POINTS,0,1),o.getError()===o.NO_ERROR)))}finally{o.disable(o.BLEND),c&&o.deleteProgram(c),r&&o.deleteShader(r),i&&o.deleteShader(i),e&&(o.bindFramebuffer(o.FRAMEBUFFER,null),o.deleteFramebuffer(e)),t&&(o.bindTexture(o.TEXTURE_2D,null),o.deleteTexture(t))}}beginTimer(){if(this.version===2&&this.disjointTimerQueryWebgl2Extension){const o=this.gl,t=this.disjointTimerQueryWebgl2Extension,e=o.createQuery();return o.beginQuery(t.TIME_ELAPSED_EXT,e),e}throw new Error("WebGL1 profiling currently not supported.")}endTimer(){if(this.version!==2||!this.disjointTimerQueryWebgl2Extension)throw new Error("WebGL1 profiling currently not supported");{const o=this.gl,t=this.disjointTimerQueryWebgl2Extension;o.endQuery(t.TIME_ELAPSED_EXT)}}isTimerResultAvailable(o){let t=!1,e=!1;if(this.version!==2||!this.disjointTimerQueryWebgl2Extension)throw new Error("WebGL1 profiling currently not supported");{const r=this.gl,i=this.disjointTimerQueryWebgl2Extension;t=r.getQueryParameter(o,r.QUERY_RESULT_AVAILABLE),e=r.getParameter(i.GPU_DISJOINT_EXT)}return t&&!e}getTimerResult(o){let t=0;if(this.version!==2)throw new Error("WebGL1 profiling currently not supported");{const e=this.gl;t=e.getQueryParameter(o,e.QUERY_RESULT),e.deleteQuery(o)}return t/1e6}async waitForQueryAndGetTime(o){return await(0,f.repeatedTry)(()=>this.isTimerResultAvailable(o)),this.getTimerResult(o)}async createAndWaitForFence(){const o=this.createFence(this.gl);return this.pollFence(o)}createFence(o){let t;const e=o,r=e.fenceSync(e.SYNC_GPU_COMMANDS_COMPLETE,0);return o.flush(),t=r===null?()=>!0:()=>{const i=e.clientWaitSync(r,0,0);return i===e.ALREADY_SIGNALED||i===e.CONDITION_SATISFIED},{query:r,isFencePassed:t}}async pollFence(o){return new Promise(t=>{this.addItemToPoll(()=>o.isFencePassed(),()=>t())})}pollItems(){const o=a(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=o;++t){const{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(o+1)}async addItemToPoll(o,t){this.itemsToPoll.push({isDoneFn:o,resolveFn:t}),this.itemsToPoll.length>1||await(0,f.repeatedTry)(()=>(this.pollItems(),this.itemsToPoll.length===0))}}},1036:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ExecutionPlan=void 0;const d=u(6231);class l{constructor(s,h){this.op=s,this.node=h}}n.ExecutionPlan=class{constructor(p,s,h){this.graph=p,this.profiler=h,this.initialize(s)}initialize(p){this.profiler.event("session","ExecutionPlan.initialize",()=>{const s=this.graph.getNodes();if(s.length!==p.length)throw new Error("The size of nodes and OPs do not match.");this._ops=p.map((h,f)=>new l(h,s[f])),this.reset(),this._starter=[],this._ops.forEach((h,f)=>{let a=!0;for(const o of h.node.inputs)if(!this._values[o]&&this.graph.getInputIndices().indexOf(o)===-1){a=!1;break}a&&this._starter.push(f)})})}reset(){this._values=this.graph.getValues().map(p=>p.tensor)}async execute(p,s){return this.profiler.event("session","ExecutionPlan.execute",async()=>{this.reset();const h=p.createInferenceHandler(),f=this.graph.getInputIndices();if(s.length!==f.length)throw new Error(`number of input tensors don't match the number of inputs to the model: actual: ${s.length} expected: ${f.length}`);s.forEach((i,c)=>{const g=f[c];this._values[g]=i});const a=this._starter.slice(0),o=this.graph.getValues(),t=this.graph.getNodes();let e=0;for(;e<a.length;){const i=a[e++],c=this._ops[i],g=c.node.inputs.map(w=>this._values[w]);if(g.indexOf(void 0)!==-1)throw new Error(`unresolved input detected: op: ${c.node}`);const m=g;d.Logger.verbose("ExecPlan",`Runing op:${c.node.name} (${m.map((w,v)=>`'${c.node.inputs[v]}': ${w.type}[${w.dims.join(",")}]`).join(", ")})`);const b=await this.profiler.event("node",c.node.name,async()=>c.op.impl(h,m,c.op.context));if(b.length!==c.node.outputs.length)throw new Error("the size of output does not match model definition.");b.forEach((w,v)=>{const S=c.node.outputs[v];if(this._values[S])throw new Error(`output [${S}] already has value: op:${c.node.name}`);this._values[S]=w});const _=new Set;b.forEach((w,v)=>{const S=c.node.outputs[v];for(const O of o[S].to){const E=t[O];let T=!0;for(const I of E.inputs)if(!this._values[I]){T=!1;break}T&&_.add(O)}}),a.push(..._)}const r=[];for(let i=0;i<this.graph.getOutputIndices().length;i++){const c=this.graph.getOutputIndices()[i],g=this._values[c];if(g===void 0)throw new Error(`required output [${c}] does not have value`);c===0?await g.getData():g.data,r.push(g)}return d.Logger.verbose("ExecPlan","disposing of inferenceHandler"),h.dispose(),r})}}},7070:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Graph=void 0;const d=u(1446),l=u(7778),p=u(9395),s=u(9162),h=u(2517);var f=p.onnxruntime.experimental.fbs;n.Graph={from:(e,r)=>new t(e,r)};class a{constructor(r){this._from=void 0,this._to=[],this.tensor=void 0,this.type=void 0,r&&(this.type=h.ProtoUtil.tensorValueTypeFromProto(r.type.tensorType))}get from(){return this._from}get to(){return this._to}}class o{constructor(r,i){r instanceof d.onnx.NodeProto?(this.name=r.name,this.opType=r.opType,this.attributes=new l.Attribute(r.attribute)):r instanceof f.Node&&(this.name=i??r.name(),this.opType=r.opType(),this.attributes=new l.Attribute(h.ProtoUtil.tensorAttributesFromORTFormat(r))),this.inputs=[],this.outputs=[],this.executeNode=!0}}class t{constructor(r,i){if(!r)throw new TypeError("graph is empty");this.buildGraph(r),this.transformGraph(i),this.checkIsAcyclic()}getInputIndices(){return this._allInputIndices}getInputNames(){return this._allInputNames}getOutputIndices(){return this._allOutputIndices}getOutputNames(){return this._allOutputNames}getValues(){return this._allData}getNodes(){return this._nodes}buildGraph(r){if(r instanceof d.onnx.GraphProto)this.buildGraphFromOnnxFormat(r);else{if(!(r instanceof f.Graph))throw new TypeError("Graph type is not supported.");this.buildGraphFromOrtFormat(r)}}buildGraphFromOnnxFormat(r){const i=new Map;this._allData=[],this._allInputIndices=[],this._allInputNames=[],this._allOutputIndices=[],this._allOutputNames=[],this._nodes=[];const c=new Map;if(!r.input)throw new Error("missing information in graph: input");const g=[];for(const m of r.input){if(i.has(m.name))throw new Error(`duplicated input name: ${m.name}`);const b=this._allData.push(new a(m))-1;i.set(m.name,b),g.push(m.name)}if(!r.initializer)throw new Error("missing information in graph: initializer");for(const m of r.initializer){let b=i.get(m.name);if(b===void 0){const _=new a;_.type={shape:{dims:h.ProtoUtil.tensorDimsFromProto(m.dims)},tensorType:h.ProtoUtil.tensorDataTypeFromProto(m.dataType)},b=this._allData.push(_)-1,i.set(m.name,b)}this._allData[b]._from=-1,this._allData[b].tensor=s.Tensor.fromProto(m)}for(let m=0;m<this._allData.length;m++)this._allData[m].tensor||(this._allInputIndices.push(m),this._allInputNames.push(g[m]));if(!r.output)throw new Error("missing information in graph: output");for(const m of r.output){if(i.has(m.name))throw new Error(`duplicated output name: ${m.name}`);const b=this._allData.push(new a(m))-1;i.set(m.name,b),this._allOutputIndices.push(b),this._allOutputNames.push(m.name)}if(!r.node)throw new Error("missing information in graph: node");for(const m of r.node){if(!m.name)for(let _=0;;_++){const w=`unnamed_${m.opType}_${_}`;if(!c.has(w)){m.name=w;break}}if(c.has(m.name))throw new Error(`duplicated node name: ${m.name}`);const b=this._nodes.push(new o(m))-1;c.set(m.name,b)}for(let m=0;m<this._nodes.length;m++){const b=this._nodes[m],_=r.node[m];if(!_.output)throw new Error(`missing output for node: ${_.name}`);for(const w of _.output){let v=i.get(w);if(v===void 0&&(v=this._allData.push(new a)-1,i.set(w,v)),b.outputs.push(v),this._allData[v]._from!==void 0)throw new Error(`multiple nodes output to one data value: ${v}`);if(this._allData[v]._from=m,_.opType==="Constant"){if(!_.attribute||_.attribute.length!==1||!_.attribute[0].t)throw new Error("missing attributes or missing tensor value in attributes for this Constant operator");if(!_.output||_.output.length!==1)throw new Error("missing output or incorrect number of outputs for this Constant operator");b.outputs.pop(),b.executeNode=!1,this._allData[v]._from=-1,this._allData[v].tensor=s.Tensor.fromProto(_.attribute[0].t)}}}for(let m=0;m<this._nodes.length;m++){const b=this._nodes[m],_=r.node[m];if(!_.input)throw new Error(`missing input for node: ${_.name}`);for(const w of _.input){const v=i.get(w);if(v===void 0){if(w===""&&_.input.length===3&&_.opType==="Resize")continue;throw new Error(`unrecognized input '${w}' for node: ${_.name}`)}b.inputs.push(v),this._allData[v]._to.push(m)}}return!0}buildGraphFromOrtFormat(r){var i,c,g;const m=new Map;this._allData=[],this._allInputIndices=[],this._allInputNames=[],this._allOutputIndices=[],this._allOutputNames=[],this._nodes=[];const b=new Map,_=[];for(let w=0;w<r.inputsLength();w++){const v=r.inputs(w);if(m.has(v))throw new Error(`duplicated input name: ${v}`);for(let S=0;S<r.nodeArgsLength();S++)if(((i=r.nodeArgs(S))===null||i===void 0?void 0:i.name())===v){const O=new a;if(((g=(c=r.nodeArgs(S))===null||c===void 0?void 0:c.type())===null||g===void 0?void 0:g.valueType())!==f.TypeInfoValue.tensor_type)throw new Error("Unexpected value type for the nodeArg.");const E=r.nodeArgs(S).type().value(new f.TensorTypeAndShape),T=h.ProtoUtil.tensorDataTypeFromProto(E.elemType()),I=E.shape(),C=[];for(let F=0;F<I.dimLength();F++)C.push(h.LongUtil.longToNumber(I.dim(F).value().dimValue()));O.type={shape:{dims:C},tensorType:T};const B=this._allData.push(O)-1;m.set(v,B),_.push(v)}}for(let w=0;w<r.initializersLength();w++){const v=r.initializers(w);let S=m.get(v.name());if(S===void 0){const O=new a,E=h.ProtoUtil.tensorDimsFromORTFormat(v),T=h.ProtoUtil.tensorDataTypeFromProto(v.dataType());O.type={shape:{dims:E},tensorType:T},S=this._allData.push(O)-1,m.set(v.name(),S)}this._allData[S]._from=-1,this._allData[S].tensor=s.Tensor.fromOrtTensor(v)}for(let w=0;w<this._allData.length;w++)this._allData[w].tensor||(this._allInputIndices.push(w),this._allInputNames.push(_[w]));for(let w=0;w<r.outputsLength();w++){const v=r.outputs(w);if(m.has(v))throw new Error(`duplicated output name: ${v}`);const S=this._allData.push(new a)-1;m.set(v,S),this._allOutputIndices.push(S),this._allOutputNames.push(v)}if(!r.nodes)throw new Error("missing information in graph: node");for(let w=0;w<r.nodesLength();w++){const v=r.nodes(w);let S=v.name();if(!S)for(let E=0;S=`unnamed_${v.opType()}_${E}`,b.has(S);E++);if(b.has(S))throw new Error(`duplicated node name: ${S}`);const O=this._nodes.push(new o(v,S))-1;b.set(S,O)}for(let w=0;w<this._nodes.length;w++){const v=this._nodes[w],S=r.nodes(w);if(S==null)throw new Error(`No node exists at index ${w}`);if((S==null?void 0:S.outputsLength())===0)throw new Error(`missing output for node: ${S.name}`);for(let O=0;O<(S==null?void 0:S.outputsLength());O++){const E=S==null?void 0:S.outputs(O);let T=m.get(E);if(T===void 0&&(T=this._allData.push(new a)-1,m.set(E,T)),v.outputs.push(T),this._allData[T]._from!==void 0)throw new Error(`multiple nodes output to one data value: ${T}`);if(this._allData[T]._from=w,S.opType()==="Constant"){if(S.attributesLength()!==1||!S.attributes(0).t())throw new Error("missing attributes or missing tensor value in attributes for this Constant operator");if(S.outputsLength()!==1)throw new Error("missing output or incorrect number of outputs for this Constant operator");v.outputs.pop(),v.executeNode=!1,this._allData[T]._from=-1,this._allData[T].tensor=s.Tensor.fromOrtTensor(S.attributes(0).t())}}}for(let w=0;w<this._nodes.length;w++){const v=this._nodes[w],S=r.nodes(w);if(S.inputsLength()===0)throw new Error(`missing input for node: ${S.name}`);for(let O=0;O<S.inputsLength();O++){const E=S.inputs(O),T=m.get(E);if(T===void 0)throw new Error(`unrecognized input '${E}' for node: ${S.name()}`);v.inputs.push(T),this._allData[T]._to.push(w)}}}checkIsAcyclic(){const r=new Set;this._allInputIndices.forEach(g=>{this._allData[g]._to.forEach(m=>{r.add(m)})});const i=Array.from(r),c=new Array(this._nodes.length).fill("white");for(;i.length>0;){const g=i.pop();c[g]==="gray"?c[g]="black":(i.push(g),c[g]="gray",this._nodes[g].outputs.forEach(m=>{const b=this._allData[m];if(b.tensor!==void 0)throw new Error("node outputs should not be initialized");if(b._from!==g)throw new Error("from property of the Value object doesn't match index of Node being processed");b._to.forEach(_=>{if(c[_]==="gray")throw new Error("model graph is cyclic");c[_]==="white"&&i.push(_)})}))}}transformGraph(r){this.removeAllIdentityNodes(),this.removeAllDropoutNodes(),this.fuseConvActivationNodes(),r&&r.transformGraph(this),this.finalizeGraph()}finalizeGraph(){let r=0;for(let i=0;i<this._nodes.length;i++)this._nodes[i].executeNode?r>0&&(this._nodes[i].inputs.forEach(c=>{const g=this._allData[c]._to.indexOf(i+r);g!==-1&&(this._allData[c]._to[g]=i)}),this._nodes[i].outputs.forEach(c=>{this._allData[c]._from&&this._allData[c]._from===i+r&&(this._allData[c]._from=i)})):(r++,this._nodes[i].outputs.forEach(c=>{this._allData[c]._from=-2}),this._nodes.splice(i,1),i--);r=0;for(let i=0;i<this._allData.length;i++)if(this._allData[i].from!==-2||this._allOutputIndices.indexOf(i+r)!==-1){if(r>0){let c=-1;this._allData[i].from!==void 0&&this._allData[i].from!==-1?(c=this._nodes[this._allData[i].from].outputs.indexOf(i+r),c!==-1&&(this._nodes[this._allData[i].from].outputs[c]=i)):(c=this._allInputIndices.indexOf(i+r),c!==-1&&(this._allInputIndices[c]=i)),this._allData[i].to.forEach(g=>{c=this._nodes[g].inputs.indexOf(i+r),c!==-1&&(this._nodes[g].inputs[c]=i)}),this._allData[i].to.length===0&&(c=this._allOutputIndices.indexOf(i+r),c!==-1&&(this._allOutputIndices[c]=i))}}else r++,this._allData.splice(i,1),i--}deleteNode(r){const i=this._nodes[r];if(i.outputs.length>1){for(let w=1;w<i.outputs.length;w++)if(this._allData[i.outputs[w]].to.length>0)throw new Error("Node deletion with more than one output connected to other nodes is not supported. ")}i.executeNode=!1;const c=i.inputs[0],g=i.outputs[0],m=this._allData[g].to,b=this._allData[c].to.indexOf(r);if(b===-1)throw new Error("The Value object doesn't have the current Node in it's 'to' property ");this._allData[c].to.splice(b,1),this._allData[g]._to=[];const _=this._allOutputIndices.indexOf(g);if(_!==-1&&(this._allOutputIndices[_]=c),m&&m.length>0)for(const w of m){const v=this._nodes[w].inputs.indexOf(g);if(v===-1)throw new Error("The Node object doesn't have the output Value in it's 'inputs' property ");this._nodes[w].inputs[v]=c,this._allData[c].to.push(w)}}removeAllDropoutNodes(){let r=0;for(const i of this._nodes){if(i.opType==="Dropout"){if(i.inputs.length!==1)throw new Error("Dropout nodes should only contain one input. ");if(i.outputs.length!==1&&i.outputs.length!==2)throw new Error("Dropout nodes should contain either 1 or 2 output(s)");if(i.outputs.length===2&&this._allData[i.outputs[1]]._to.length!==0)throw new Error("Dropout nodes's second output should not be referenced by other nodes");this.deleteNode(r)}r++}}removeAllIdentityNodes(){let r=0;for(const i of this._nodes)i.opType==="Identity"&&this.deleteNode(r),r++}isActivation(r){switch(r.opType){case"Relu":case"Sigmoid":case"Clip":return!0;default:return!1}}fuseConvActivationNodes(){for(const r of this._nodes)if(r.opType==="Conv"){const i=this._allData[r.outputs[0]]._to;if(i.length===1&&this.isActivation(this._nodes[i[0]])){const c=this._nodes[i[0]];if(c.opType==="Clip")if(c.inputs.length===1)try{r.attributes.set("activation_params","floats",[c.attributes.getFloat("min"),c.attributes.getFloat("max")])}catch{r.attributes.set("activation_params","floats",[h.MIN_CLIP,h.MAX_CLIP])}else{if(!(c.inputs.length>=3&&this._allData[c.inputs[1]].tensor!==void 0&&this._allData[c.inputs[2]].tensor!==void 0))continue;r.attributes.set("activation_params","floats",[this._allData[c.inputs[1]].tensor.floatData[0],this._allData[c.inputs[2]].tensor.floatData[0]])}r.attributes.set("activation","string",c.opType),this.deleteNode(i[0])}}}}},6231:(y,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.now=n.Profiler=n.Logger=void 0;const u={verbose:1e3,info:2e3,warning:4e3,error:5e3,fatal:6e3},d={none:new class{log(o,t,e){}},console:new class{log(o,t,e){console.log(`${this.color(o)} ${e?"\x1B[35m"+e+"\x1B[0m ":""}${t}`)}color(o){switch(o){case"verbose":return"\x1B[34;40mv\x1B[0m";case"info":return"\x1B[32mi\x1B[0m";case"warning":return"\x1B[30;43mw\x1B[0m";case"error":return"\x1B[31;40me\x1B[0m";case"fatal":return"\x1B[101mf\x1B[0m";default:throw new Error(`unsupported severity: ${o}`)}}}},l={provider:"console",minimalSeverity:"warning",logDateTime:!0,logSourceLocation:!1};let p={"":l};function s(o,t,e,r){if(t===void 0)return i=o,{verbose:s.verbose.bind(null,i),info:s.info.bind(null,i),warning:s.warning.bind(null,i),error:s.error.bind(null,i),fatal:s.fatal.bind(null,i)};if(e===void 0)h(o,t);else if(typeof e=="number"&&r===void 0)h(o,t);else if(typeof e=="string"&&r===void 0)h(o,e,0,t);else{if(typeof e!="string"||typeof r!="number")throw new TypeError("input is valid");h(o,e,0,t)}var i}function h(o,t,e,r){const i=p[r||""]||p[""];u[o]<u[i.minimalSeverity]||(i.logDateTime&&(t=`${new Date().toISOString()}|${t}`),i.logSourceLocation,d[i.provider].log(o,t,r))}(function(o){function t(r){p={},e("",r||{})}function e(r,i){if(r==="*")t(i);else{const c=p[r]||l;p[r]={provider:i.provider||c.provider,minimalSeverity:i.minimalSeverity||c.minimalSeverity,logDateTime:i.logDateTime===void 0?c.logDateTime:i.logDateTime,logSourceLocation:i.logSourceLocation===void 0?c.logSourceLocation:i.logSourceLocation}}}o.verbose=function(r,i){o("verbose",r,i)},o.info=function(r,i){o("info",r,i)},o.warning=function(r,i){o("warning",r,i)},o.error=function(r,i){o("error",r,i)},o.fatal=function(r,i){o("fatal",r,i)},o.reset=t,o.set=e,o.setWithEnv=function(r){const i={};r.logLevel&&(i.minimalSeverity=r.logLevel),e("",i)}})(s||(s={})),n.Logger=s;class f{constructor(t,e,r,i,c,g){this.category=t,this.name=e,this.startTime=r,this.endCallback=i,this.timer=c,this.ctx=g}end(){return this.endCallback(this)}async checkTimer(){if(this.ctx===void 0||this.timer===void 0)throw new Error("No webgl timer found");return this.ctx.endTimer(),this.ctx.waitForQueryAndGetTime(this.timer)}}class a{constructor(t,e,r,i){this.category=t,this.name=e,this.startTime=r,this.endTime=i}}n.Profiler=class{static create(o){return o===void 0?new this:new this(o.maxNumberEvents,o.flushBatchSize,o.flushIntervalInMilliseconds)}constructor(o,t,e){this._started=!1,this._flushPointer=0,this._started=!1,this._maxNumberEvents=o===void 0?1e4:o,this._flushBatchSize=t===void 0?10:t,this._flushIntervalInMilliseconds=e===void 0?5e3:e}start(){this._started=!0,this._timingEvents=[],this._flushTime=(0,n.now)(),this._flushPointer=0}stop(){for(this._started=!1;this._flushPointer<this._timingEvents.length;this._flushPointer++)this.logOneEvent(this._timingEvents[this._flushPointer])}event(o,t,e,r){const i=this._started?this.begin(o,t,r):void 0;let c=!1;const g=e();if(g&&typeof g.then=="function")return c=!0,new Promise((m,b)=>{g.then(async _=>{i&&await i.end(),m(_)},async _=>{i&&await i.end(),b(_)})});if(!c&&i){const m=i.end();if(m&&typeof m.then=="function")return new Promise((b,_)=>{m.then(()=>{b(g)},w=>{_(w)})})}return g}begin(o,t,e){if(!this._started)throw new Error("profiler is not started yet");if(e===void 0){const r=(0,n.now)();return this.flush(r),new f(o,t,r,i=>this.endSync(i))}{const r=e.beginTimer();return new f(o,t,0,async i=>this.end(i),r,e)}}async end(o){const t=await o.checkTimer();this._timingEvents.length<this._maxNumberEvents&&(this._timingEvents.push(new a(o.category,o.name,o.startTime,t)),this.flush(t))}endSync(o){const t=(0,n.now)();this._timingEvents.length<this._maxNumberEvents&&(this._timingEvents.push(new a(o.category,o.name,o.startTime,t)),this.flush(t))}logOneEvent(o){n.Logger.verbose(`Profiler.${o.category}`,`${(o.endTime-o.startTime).toFixed(2)}ms on event '${o.name}' at ${o.endTime.toFixed(2)}`)}flush(o){if(this._timingEvents.length-this._flushPointer>=this._flushBatchSize||o-this._flushTime>=this._flushIntervalInMilliseconds){for(const t=this._flushPointer;this._flushPointer<t+this._flushBatchSize&&this._flushPointer<this._timingEvents.length;this._flushPointer++)this.logOneEvent(this._timingEvents[this._flushPointer]);this._flushTime=(0,n.now)()}}get started(){return this._started}},n.now=typeof performance<"u"&&performance.now?()=>performance.now():Date.now},2644:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Model=void 0;const d=u(5686),l=u(1446),p=u(7070),s=u(9395),h=u(2517);var f=s.onnxruntime.experimental.fbs;n.Model=class{constructor(){}load(a,o,t){if(!t)try{return void this.loadFromOnnxFormat(a,o)}catch(e){if(t!==void 0)throw e}this.loadFromOrtFormat(a,o)}loadFromOnnxFormat(a,o){const t=l.onnx.ModelProto.decode(a);if(h.LongUtil.longToNumber(t.irVersion)<3)throw new Error("only support ONNX model with IR_VERSION>=3");this._opsets=t.opsetImport.map(e=>({domain:e.domain,version:h.LongUtil.longToNumber(e.version)})),this._graph=p.Graph.from(t.graph,o)}loadFromOrtFormat(a,o){const t=new d.flatbuffers.ByteBuffer(a),e=f.InferenceSession.getRootAsInferenceSession(t).model();if(h.LongUtil.longToNumber(e.irVersion())<3)throw new Error("only support ONNX model with IR_VERSION>=3");this._opsets=[];for(let r=0;r<e.opsetImportLength();r++){const i=e.opsetImport(r);this._opsets.push({domain:i==null?void 0:i.domain(),version:h.LongUtil.longToNumber(i.version())})}this._graph=p.Graph.from(e.graph(),o)}get graph(){return this._graph}get opsets(){return this._opsets}}},782:(y,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.FLOAT_TYPES=n.INT_TYPES=n.NUMBER_TYPES=void 0,n.NUMBER_TYPES=["float32","float64","int32","int16","int8","uint16","uint32","uint8"],n.INT_TYPES=["int32","int16","int8","uint16","uint32","uint8"],n.FLOAT_TYPES=["float32","float64"]},1047:(y,n)=>{function u(d,l){if(l.endsWith("+")){const p=Number.parseInt(l.substring(0,l.length-1),10);return!isNaN(p)&&p<=d}if(l.split("-").length===2){const p=l.split("-"),s=Number.parseInt(p[0],10),h=Number.parseInt(p[1],10);return!isNaN(s)&&!isNaN(h)&&s<=d&&d<=h}return Number.parseInt(l,10)===d}Object.defineProperty(n,"__esModule",{value:!0}),n.resolveOperator=void 0,n.resolveOperator=function(d,l,p){for(const s of p){const h=s[0],f=s[1],a=s[2],o=s[3],t=s[4];if(d.opType===h){for(const e of l)if((e.domain===f||e.domain==="ai.onnx"&&f==="")&&u(e.version,a))return{opImpl:o,opInit:t}}}throw new TypeError(`cannot resolve operator '${d.opType}' with opsets: ${l.map(s=>`${s.domain||"ai.onnx"} v${s.version}`).join(", ")}`)}},9395:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.onnxruntime=void 0;const d=u(5686);var l,p;l=n.onnxruntime||(n.onnxruntime={}),function(s){(function(h){h[h.UNDEFINED=0]="UNDEFINED",h[h.FLOAT=1]="FLOAT",h[h.INT=2]="INT",h[h.STRING=3]="STRING",h[h.TENSOR=4]="TENSOR",h[h.GRAPH=5]="GRAPH",h[h.FLOATS=6]="FLOATS",h[h.INTS=7]="INTS",h[h.STRINGS=8]="STRINGS",h[h.TENSORS=9]="TENSORS",h[h.GRAPHS=10]="GRAPHS",h[h.SPARSE_TENSOR=11]="SPARSE_TENSOR",h[h.SPARSE_TENSORS=12]="SPARSE_TENSORS"})(s.AttributeType||(s.AttributeType={}))}((p=l.experimental||(l.experimental={})).fbs||(p.fbs={})),function(s){(function(h){(function(f){(function(a){a[a.UNKNOWN=0]="UNKNOWN",a[a.VALUE=1]="VALUE",a[a.PARAM=2]="PARAM"})(f.DimensionValueType||(f.DimensionValueType={}))})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){(function(a){a[a.UNDEFINED=0]="UNDEFINED",a[a.FLOAT=1]="FLOAT",a[a.UINT8=2]="UINT8",a[a.INT8=3]="INT8",a[a.UINT16=4]="UINT16",a[a.INT16=5]="INT16",a[a.INT32=6]="INT32",a[a.INT64=7]="INT64",a[a.STRING=8]="STRING",a[a.BOOL=9]="BOOL",a[a.FLOAT16=10]="FLOAT16",a[a.DOUBLE=11]="DOUBLE",a[a.UINT32=12]="UINT32",a[a.UINT64=13]="UINT64",a[a.COMPLEX64=14]="COMPLEX64",a[a.COMPLEX128=15]="COMPLEX128",a[a.BFLOAT16=16]="BFLOAT16"})(f.TensorDataType||(f.TensorDataType={}))})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){(function(a){a[a.Primitive=0]="Primitive",a[a.Fused=1]="Fused"})(f.NodeType||(f.NodeType={}))})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){(function(a){a[a.NONE=0]="NONE",a[a.tensor_type=1]="tensor_type",a[a.sequence_type=2]="sequence_type",a[a.map_type=3]="map_type"})(f.TypeInfoValue||(f.TypeInfoValue={}))})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsShape(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsShape(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}dim(t,e){let r=this.bb.__offset(this.bb_pos,4);return r?(e||new s.experimental.fbs.Dimension).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}dimLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startShape(t){t.startObject(1)}static addDim(t,e){t.addFieldOffset(0,e,0)}static createDimVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startDimVector(t,e){t.startVector(4,e,4)}static endShape(t){return t.endObject()}static createShape(t,e){return a.startShape(t),a.addDim(t,e),a.endShape(t)}}f.Shape=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsDimension(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsDimension(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}value(t){let e=this.bb.__offset(this.bb_pos,4);return e?(t||new s.experimental.fbs.DimensionValue).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}denotation(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}static startDimension(t){t.startObject(2)}static addValue(t,e){t.addFieldOffset(0,e,0)}static addDenotation(t,e){t.addFieldOffset(1,e,0)}static endDimension(t){return t.endObject()}static createDimension(t,e,r){return a.startDimension(t),a.addValue(t,e),a.addDenotation(t,r),a.endDimension(t)}}f.Dimension=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsDimensionValue(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsDimensionValue(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}dimType(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt8(this.bb_pos+t):s.experimental.fbs.DimensionValueType.UNKNOWN}dimValue(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}dimParam(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__string(this.bb_pos+e,t):null}static startDimensionValue(t){t.startObject(3)}static addDimType(t,e){t.addFieldInt8(0,e,s.experimental.fbs.DimensionValueType.UNKNOWN)}static addDimValue(t,e){t.addFieldInt64(1,e,t.createLong(0,0))}static addDimParam(t,e){t.addFieldOffset(2,e,0)}static endDimensionValue(t){return t.endObject()}static createDimensionValue(t,e,r,i){return a.startDimensionValue(t),a.addDimType(t,e),a.addDimValue(t,r),a.addDimParam(t,i),a.endDimensionValue(t)}}f.DimensionValue=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsTensorTypeAndShape(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTensorTypeAndShape(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}elemType(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):s.experimental.fbs.TensorDataType.UNDEFINED}shape(t){let e=this.bb.__offset(this.bb_pos,6);return e?(t||new s.experimental.fbs.Shape).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}static startTensorTypeAndShape(t){t.startObject(2)}static addElemType(t,e){t.addFieldInt32(0,e,s.experimental.fbs.TensorDataType.UNDEFINED)}static addShape(t,e){t.addFieldOffset(1,e,0)}static endTensorTypeAndShape(t){return t.endObject()}static createTensorTypeAndShape(t,e,r){return a.startTensorTypeAndShape(t),a.addElemType(t,e),a.addShape(t,r),a.endTensorTypeAndShape(t)}}f.TensorTypeAndShape=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsMapType(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMapType(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}keyType(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt32(this.bb_pos+t):s.experimental.fbs.TensorDataType.UNDEFINED}valueType(t){let e=this.bb.__offset(this.bb_pos,6);return e?(t||new s.experimental.fbs.TypeInfo).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}static startMapType(t){t.startObject(2)}static addKeyType(t,e){t.addFieldInt32(0,e,s.experimental.fbs.TensorDataType.UNDEFINED)}static addValueType(t,e){t.addFieldOffset(1,e,0)}static endMapType(t){return t.endObject()}static createMapType(t,e,r){return a.startMapType(t),a.addKeyType(t,e),a.addValueType(t,r),a.endMapType(t)}}f.MapType=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSequenceType(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSequenceType(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}elemType(t){let e=this.bb.__offset(this.bb_pos,4);return e?(t||new s.experimental.fbs.TypeInfo).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}static startSequenceType(t){t.startObject(1)}static addElemType(t,e){t.addFieldOffset(0,e,0)}static endSequenceType(t){return t.endObject()}static createSequenceType(t,e){return a.startSequenceType(t),a.addElemType(t,e),a.endSequenceType(t)}}f.SequenceType=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(h.fbs||(h.fbs={})).EdgeEnd=class{constructor(){this.bb=null,this.bb_pos=0}__init(f,a){return this.bb_pos=f,this.bb=a,this}nodeIndex(){return this.bb.readUint32(this.bb_pos)}srcArgIndex(){return this.bb.readInt32(this.bb_pos+4)}dstArgIndex(){return this.bb.readInt32(this.bb_pos+8)}static createEdgeEnd(f,a,o,t){return f.prep(4,12),f.writeInt32(t),f.writeInt32(o),f.writeInt32(a),f.offset()}}})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsNodeEdge(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsNodeEdge(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}nodeIndex(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):0}inputEdges(t,e){let r=this.bb.__offset(this.bb_pos,6);return r?(e||new s.experimental.fbs.EdgeEnd).__init(this.bb.__vector(this.bb_pos+r)+12*t,this.bb):null}inputEdgesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}outputEdges(t,e){let r=this.bb.__offset(this.bb_pos,8);return r?(e||new s.experimental.fbs.EdgeEnd).__init(this.bb.__vector(this.bb_pos+r)+12*t,this.bb):null}outputEdgesLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startNodeEdge(t){t.startObject(3)}static addNodeIndex(t,e){t.addFieldInt32(0,e,0)}static addInputEdges(t,e){t.addFieldOffset(1,e,0)}static startInputEdgesVector(t,e){t.startVector(12,e,4)}static addOutputEdges(t,e){t.addFieldOffset(2,e,0)}static startOutputEdgesVector(t,e){t.startVector(12,e,4)}static endNodeEdge(t){return t.endObject()}static createNodeEdge(t,e,r,i){return a.startNodeEdge(t),a.addNodeIndex(t,e),a.addInputEdges(t,r),a.addOutputEdges(t,i),a.endNodeEdge(t)}}f.NodeEdge=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsNode(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsNode(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}name(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}docString(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}domain(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__string(this.bb_pos+e,t):null}sinceVersion(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt32(this.bb_pos+t):0}index(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readUint32(this.bb_pos+t):0}opType(t){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__string(this.bb_pos+e,t):null}type(){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.readInt32(this.bb_pos+t):s.experimental.fbs.NodeType.Primitive}executionProviderType(t){let e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__string(this.bb_pos+e,t):null}inputs(t,e){let r=this.bb.__offset(this.bb_pos,20);return r?this.bb.__string(this.bb.__vector(this.bb_pos+r)+4*t,e):null}inputsLength(){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__vector_len(this.bb_pos+t):0}outputs(t,e){let r=this.bb.__offset(this.bb_pos,22);return r?this.bb.__string(this.bb.__vector(this.bb_pos+r)+4*t,e):null}outputsLength(){let t=this.bb.__offset(this.bb_pos,22);return t?this.bb.__vector_len(this.bb_pos+t):0}attributes(t,e){let r=this.bb.__offset(this.bb_pos,24);return r?(e||new s.experimental.fbs.Attribute).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}attributesLength(){let t=this.bb.__offset(this.bb_pos,24);return t?this.bb.__vector_len(this.bb_pos+t):0}inputArgCounts(t){let e=this.bb.__offset(this.bb_pos,26);return e?this.bb.readInt32(this.bb.__vector(this.bb_pos+e)+4*t):0}inputArgCountsLength(){let t=this.bb.__offset(this.bb_pos,26);return t?this.bb.__vector_len(this.bb_pos+t):0}inputArgCountsArray(){let t=this.bb.__offset(this.bb_pos,26);return t?new Int32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}implicitInputs(t,e){let r=this.bb.__offset(this.bb_pos,28);return r?this.bb.__string(this.bb.__vector(this.bb_pos+r)+4*t,e):null}implicitInputsLength(){let t=this.bb.__offset(this.bb_pos,28);return t?this.bb.__vector_len(this.bb_pos+t):0}static startNode(t){t.startObject(13)}static addName(t,e){t.addFieldOffset(0,e,0)}static addDocString(t,e){t.addFieldOffset(1,e,0)}static addDomain(t,e){t.addFieldOffset(2,e,0)}static addSinceVersion(t,e){t.addFieldInt32(3,e,0)}static addIndex(t,e){t.addFieldInt32(4,e,0)}static addOpType(t,e){t.addFieldOffset(5,e,0)}static addType(t,e){t.addFieldInt32(6,e,s.experimental.fbs.NodeType.Primitive)}static addExecutionProviderType(t,e){t.addFieldOffset(7,e,0)}static addInputs(t,e){t.addFieldOffset(8,e,0)}static createInputsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startInputsVector(t,e){t.startVector(4,e,4)}static addOutputs(t,e){t.addFieldOffset(9,e,0)}static createOutputsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startOutputsVector(t,e){t.startVector(4,e,4)}static addAttributes(t,e){t.addFieldOffset(10,e,0)}static createAttributesVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startAttributesVector(t,e){t.startVector(4,e,4)}static addInputArgCounts(t,e){t.addFieldOffset(11,e,0)}static createInputArgCountsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addInt32(e[r]);return t.endVector()}static startInputArgCountsVector(t,e){t.startVector(4,e,4)}static addImplicitInputs(t,e){t.addFieldOffset(12,e,0)}static createImplicitInputsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startImplicitInputsVector(t,e){t.startVector(4,e,4)}static endNode(t){return t.endObject()}static createNode(t,e,r,i,c,g,m,b,_,w,v,S,O,E){return a.startNode(t),a.addName(t,e),a.addDocString(t,r),a.addDomain(t,i),a.addSinceVersion(t,c),a.addIndex(t,g),a.addOpType(t,m),a.addType(t,b),a.addExecutionProviderType(t,_),a.addInputs(t,w),a.addOutputs(t,v),a.addAttributes(t,S),a.addInputArgCounts(t,O),a.addImplicitInputs(t,E),a.endNode(t)}}f.Node=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsValueInfo(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsValueInfo(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}name(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}docString(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}type(t){let e=this.bb.__offset(this.bb_pos,8);return e?(t||new s.experimental.fbs.TypeInfo).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}static startValueInfo(t){t.startObject(3)}static addName(t,e){t.addFieldOffset(0,e,0)}static addDocString(t,e){t.addFieldOffset(1,e,0)}static addType(t,e){t.addFieldOffset(2,e,0)}static endValueInfo(t){return t.endObject()}static createValueInfo(t,e,r,i){return a.startValueInfo(t),a.addName(t,e),a.addDocString(t,r),a.addType(t,i),a.endValueInfo(t)}}f.ValueInfo=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsTypeInfo(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTypeInfo(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}denotation(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}valueType(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint8(this.bb_pos+t):s.experimental.fbs.TypeInfoValue.NONE}value(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__union(t,this.bb_pos+e):null}static startTypeInfo(t){t.startObject(3)}static addDenotation(t,e){t.addFieldOffset(0,e,0)}static addValueType(t,e){t.addFieldInt8(1,e,s.experimental.fbs.TypeInfoValue.NONE)}static addValue(t,e){t.addFieldOffset(2,e,0)}static endTypeInfo(t){return t.endObject()}static createTypeInfo(t,e,r,i){return a.startTypeInfo(t),a.addDenotation(t,e),a.addValueType(t,r),a.addValue(t,i),a.endTypeInfo(t)}}f.TypeInfo=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsOperatorSetId(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsOperatorSetId(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}domain(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}version(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}static startOperatorSetId(t){t.startObject(2)}static addDomain(t,e){t.addFieldOffset(0,e,0)}static addVersion(t,e){t.addFieldInt64(1,e,t.createLong(0,0))}static endOperatorSetId(t){return t.endObject()}static createOperatorSetId(t,e,r){return a.startOperatorSetId(t),a.addDomain(t,e),a.addVersion(t,r),a.endOperatorSetId(t)}}f.OperatorSetId=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsTensor(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTensor(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}name(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}docString(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}dims(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt64(this.bb.__vector(this.bb_pos+e)+8*t):this.bb.createLong(0,0)}dimsLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}dataType(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readInt32(this.bb_pos+t):s.experimental.fbs.TensorDataType.UNDEFINED}rawData(t){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.readUint8(this.bb.__vector(this.bb_pos+e)+t):0}rawDataLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}rawDataArray(){let t=this.bb.__offset(this.bb_pos,12);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}stringData(t,e){let r=this.bb.__offset(this.bb_pos,14);return r?this.bb.__string(this.bb.__vector(this.bb_pos+r)+4*t,e):null}stringDataLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}static startTensor(t){t.startObject(6)}static addName(t,e){t.addFieldOffset(0,e,0)}static addDocString(t,e){t.addFieldOffset(1,e,0)}static addDims(t,e){t.addFieldOffset(2,e,0)}static createDimsVector(t,e){t.startVector(8,e.length,8);for(let r=e.length-1;r>=0;r--)t.addInt64(e[r]);return t.endVector()}static startDimsVector(t,e){t.startVector(8,e,8)}static addDataType(t,e){t.addFieldInt32(3,e,s.experimental.fbs.TensorDataType.UNDEFINED)}static addRawData(t,e){t.addFieldOffset(4,e,0)}static createRawDataVector(t,e){t.startVector(1,e.length,1);for(let r=e.length-1;r>=0;r--)t.addInt8(e[r]);return t.endVector()}static startRawDataVector(t,e){t.startVector(1,e,1)}static addStringData(t,e){t.addFieldOffset(5,e,0)}static createStringDataVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startStringDataVector(t,e){t.startVector(4,e,4)}static endTensor(t){return t.endObject()}static createTensor(t,e,r,i,c,g,m){return a.startTensor(t),a.addName(t,e),a.addDocString(t,r),a.addDims(t,i),a.addDataType(t,c),a.addRawData(t,g),a.addStringData(t,m),a.endTensor(t)}}f.Tensor=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSparseTensor(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSparseTensor(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}values(t){let e=this.bb.__offset(this.bb_pos,4);return e?(t||new s.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}indices(t){let e=this.bb.__offset(this.bb_pos,6);return e?(t||new s.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}dims(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readInt64(this.bb.__vector(this.bb_pos+e)+8*t):this.bb.createLong(0,0)}dimsLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startSparseTensor(t){t.startObject(3)}static addValues(t,e){t.addFieldOffset(0,e,0)}static addIndices(t,e){t.addFieldOffset(1,e,0)}static addDims(t,e){t.addFieldOffset(2,e,0)}static createDimsVector(t,e){t.startVector(8,e.length,8);for(let r=e.length-1;r>=0;r--)t.addInt64(e[r]);return t.endVector()}static startDimsVector(t,e){t.startVector(8,e,8)}static endSparseTensor(t){return t.endObject()}static createSparseTensor(t,e,r,i){return a.startSparseTensor(t),a.addValues(t,e),a.addIndices(t,r),a.addDims(t,i),a.endSparseTensor(t)}}f.SparseTensor=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsAttribute(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAttribute(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}name(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}docString(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__string(this.bb_pos+e,t):null}type(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readInt32(this.bb_pos+t):s.experimental.fbs.AttributeType.UNDEFINED}f(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readFloat32(this.bb_pos+t):0}i(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}s(t){let e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__string(this.bb_pos+e,t):null}t(t){let e=this.bb.__offset(this.bb_pos,16);return e?(t||new s.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}g(t){let e=this.bb.__offset(this.bb_pos,18);return e?(t||new s.experimental.fbs.Graph).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}floats(t){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readFloat32(this.bb.__vector(this.bb_pos+e)+4*t):0}floatsLength(){let t=this.bb.__offset(this.bb_pos,20);return t?this.bb.__vector_len(this.bb_pos+t):0}floatsArray(){let t=this.bb.__offset(this.bb_pos,20);return t?new Float32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}ints(t){let e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readInt64(this.bb.__vector(this.bb_pos+e)+8*t):this.bb.createLong(0,0)}intsLength(){let t=this.bb.__offset(this.bb_pos,22);return t?this.bb.__vector_len(this.bb_pos+t):0}strings(t,e){let r=this.bb.__offset(this.bb_pos,24);return r?this.bb.__string(this.bb.__vector(this.bb_pos+r)+4*t,e):null}stringsLength(){let t=this.bb.__offset(this.bb_pos,24);return t?this.bb.__vector_len(this.bb_pos+t):0}tensors(t,e){let r=this.bb.__offset(this.bb_pos,26);return r?(e||new s.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}tensorsLength(){let t=this.bb.__offset(this.bb_pos,26);return t?this.bb.__vector_len(this.bb_pos+t):0}graphs(t,e){let r=this.bb.__offset(this.bb_pos,28);return r?(e||new s.experimental.fbs.Graph).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}graphsLength(){let t=this.bb.__offset(this.bb_pos,28);return t?this.bb.__vector_len(this.bb_pos+t):0}static startAttribute(t){t.startObject(13)}static addName(t,e){t.addFieldOffset(0,e,0)}static addDocString(t,e){t.addFieldOffset(1,e,0)}static addType(t,e){t.addFieldInt32(2,e,s.experimental.fbs.AttributeType.UNDEFINED)}static addF(t,e){t.addFieldFloat32(3,e,0)}static addI(t,e){t.addFieldInt64(4,e,t.createLong(0,0))}static addS(t,e){t.addFieldOffset(5,e,0)}static addT(t,e){t.addFieldOffset(6,e,0)}static addG(t,e){t.addFieldOffset(7,e,0)}static addFloats(t,e){t.addFieldOffset(8,e,0)}static createFloatsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addFloat32(e[r]);return t.endVector()}static startFloatsVector(t,e){t.startVector(4,e,4)}static addInts(t,e){t.addFieldOffset(9,e,0)}static createIntsVector(t,e){t.startVector(8,e.length,8);for(let r=e.length-1;r>=0;r--)t.addInt64(e[r]);return t.endVector()}static startIntsVector(t,e){t.startVector(8,e,8)}static addStrings(t,e){t.addFieldOffset(10,e,0)}static createStringsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startStringsVector(t,e){t.startVector(4,e,4)}static addTensors(t,e){t.addFieldOffset(11,e,0)}static createTensorsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startTensorsVector(t,e){t.startVector(4,e,4)}static addGraphs(t,e){t.addFieldOffset(12,e,0)}static createGraphsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startGraphsVector(t,e){t.startVector(4,e,4)}static endAttribute(t){return t.endObject()}static createAttribute(t,e,r,i,c,g,m,b,_,w,v,S,O,E){return a.startAttribute(t),a.addName(t,e),a.addDocString(t,r),a.addType(t,i),a.addF(t,c),a.addI(t,g),a.addS(t,m),a.addT(t,b),a.addG(t,_),a.addFloats(t,w),a.addInts(t,v),a.addStrings(t,S),a.addTensors(t,O),a.addGraphs(t,E),a.endAttribute(t)}}f.Attribute=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsGraph(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsGraph(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}initializers(t,e){let r=this.bb.__offset(this.bb_pos,4);return r?(e||new s.experimental.fbs.Tensor).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}initializersLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}nodeArgs(t,e){let r=this.bb.__offset(this.bb_pos,6);return r?(e||new s.experimental.fbs.ValueInfo).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}nodeArgsLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}nodes(t,e){let r=this.bb.__offset(this.bb_pos,8);return r?(e||new s.experimental.fbs.Node).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}nodesLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}maxNodeIndex(){let t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readUint32(this.bb_pos+t):0}nodeEdges(t,e){let r=this.bb.__offset(this.bb_pos,12);return r?(e||new s.experimental.fbs.NodeEdge).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}nodeEdgesLength(){let t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__vector_len(this.bb_pos+t):0}inputs(t,e){let r=this.bb.__offset(this.bb_pos,14);return r?this.bb.__string(this.bb.__vector(this.bb_pos+r)+4*t,e):null}inputsLength(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__vector_len(this.bb_pos+t):0}outputs(t,e){let r=this.bb.__offset(this.bb_pos,16);return r?this.bb.__string(this.bb.__vector(this.bb_pos+r)+4*t,e):null}outputsLength(){let t=this.bb.__offset(this.bb_pos,16);return t?this.bb.__vector_len(this.bb_pos+t):0}sparseInitializers(t,e){let r=this.bb.__offset(this.bb_pos,18);return r?(e||new s.experimental.fbs.SparseTensor).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}sparseInitializersLength(){let t=this.bb.__offset(this.bb_pos,18);return t?this.bb.__vector_len(this.bb_pos+t):0}static startGraph(t){t.startObject(8)}static addInitializers(t,e){t.addFieldOffset(0,e,0)}static createInitializersVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startInitializersVector(t,e){t.startVector(4,e,4)}static addNodeArgs(t,e){t.addFieldOffset(1,e,0)}static createNodeArgsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startNodeArgsVector(t,e){t.startVector(4,e,4)}static addNodes(t,e){t.addFieldOffset(2,e,0)}static createNodesVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startNodesVector(t,e){t.startVector(4,e,4)}static addMaxNodeIndex(t,e){t.addFieldInt32(3,e,0)}static addNodeEdges(t,e){t.addFieldOffset(4,e,0)}static createNodeEdgesVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startNodeEdgesVector(t,e){t.startVector(4,e,4)}static addInputs(t,e){t.addFieldOffset(5,e,0)}static createInputsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startInputsVector(t,e){t.startVector(4,e,4)}static addOutputs(t,e){t.addFieldOffset(6,e,0)}static createOutputsVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startOutputsVector(t,e){t.startVector(4,e,4)}static addSparseInitializers(t,e){t.addFieldOffset(7,e,0)}static createSparseInitializersVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startSparseInitializersVector(t,e){t.startVector(4,e,4)}static endGraph(t){return t.endObject()}static createGraph(t,e,r,i,c,g,m,b,_){return a.startGraph(t),a.addInitializers(t,e),a.addNodeArgs(t,r),a.addNodes(t,i),a.addMaxNodeIndex(t,c),a.addNodeEdges(t,g),a.addInputs(t,m),a.addOutputs(t,b),a.addSparseInitializers(t,_),a.endGraph(t)}}f.Graph=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsModel(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsModel(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}irVersion(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}opsetImport(t,e){let r=this.bb.__offset(this.bb_pos,6);return r?(e||new s.experimental.fbs.OperatorSetId).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}opsetImportLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}producerName(t){let e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__string(this.bb_pos+e,t):null}producerVersion(t){let e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__string(this.bb_pos+e,t):null}domain(t){let e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__string(this.bb_pos+e,t):null}modelVersion(){let t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readInt64(this.bb_pos+t):this.bb.createLong(0,0)}docString(t){let e=this.bb.__offset(this.bb_pos,16);return e?this.bb.__string(this.bb_pos+e,t):null}graph(t){let e=this.bb.__offset(this.bb_pos,18);return e?(t||new s.experimental.fbs.Graph).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}graphDocString(t){let e=this.bb.__offset(this.bb_pos,20);return e?this.bb.__string(this.bb_pos+e,t):null}static startModel(t){t.startObject(9)}static addIrVersion(t,e){t.addFieldInt64(0,e,t.createLong(0,0))}static addOpsetImport(t,e){t.addFieldOffset(1,e,0)}static createOpsetImportVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startOpsetImportVector(t,e){t.startVector(4,e,4)}static addProducerName(t,e){t.addFieldOffset(2,e,0)}static addProducerVersion(t,e){t.addFieldOffset(3,e,0)}static addDomain(t,e){t.addFieldOffset(4,e,0)}static addModelVersion(t,e){t.addFieldInt64(5,e,t.createLong(0,0))}static addDocString(t,e){t.addFieldOffset(6,e,0)}static addGraph(t,e){t.addFieldOffset(7,e,0)}static addGraphDocString(t,e){t.addFieldOffset(8,e,0)}static endModel(t){return t.endObject()}static createModel(t,e,r,i,c,g,m,b,_,w){return a.startModel(t),a.addIrVersion(t,e),a.addOpsetImport(t,r),a.addProducerName(t,i),a.addProducerVersion(t,c),a.addDomain(t,g),a.addModelVersion(t,m),a.addDocString(t,b),a.addGraph(t,_),a.addGraphDocString(t,w),a.endModel(t)}}f.Model=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsKernelCreateInfos(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsKernelCreateInfos(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}nodeIndices(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readUint32(this.bb.__vector(this.bb_pos+e)+4*t):0}nodeIndicesLength(){let t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}nodeIndicesArray(){let t=this.bb.__offset(this.bb_pos,4);return t?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}kernelDefHashes(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint64(this.bb.__vector(this.bb_pos+e)+8*t):this.bb.createLong(0,0)}kernelDefHashesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}static startKernelCreateInfos(t){t.startObject(2)}static addNodeIndices(t,e){t.addFieldOffset(0,e,0)}static createNodeIndicesVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addInt32(e[r]);return t.endVector()}static startNodeIndicesVector(t,e){t.startVector(4,e,4)}static addKernelDefHashes(t,e){t.addFieldOffset(1,e,0)}static createKernelDefHashesVector(t,e){t.startVector(8,e.length,8);for(let r=e.length-1;r>=0;r--)t.addInt64(e[r]);return t.endVector()}static startKernelDefHashesVector(t,e){t.startVector(8,e,8)}static endKernelCreateInfos(t){return t.endObject()}static createKernelCreateInfos(t,e,r){return a.startKernelCreateInfos(t),a.addNodeIndices(t,e),a.addKernelDefHashes(t,r),a.endKernelCreateInfos(t)}}f.KernelCreateInfos=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSubGraphSessionState(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSubGraphSessionState(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}graphId(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}sessionState(t){let e=this.bb.__offset(this.bb_pos,6);return e?(t||new s.experimental.fbs.SessionState).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}static startSubGraphSessionState(t){t.startObject(2)}static addGraphId(t,e){t.addFieldOffset(0,e,0)}static addSessionState(t,e){t.addFieldOffset(1,e,0)}static endSubGraphSessionState(t){let e=t.endObject();return t.requiredField(e,4),e}static createSubGraphSessionState(t,e,r){return a.startSubGraphSessionState(t),a.addGraphId(t,e),a.addSessionState(t,r),a.endSubGraphSessionState(t)}}f.SubGraphSessionState=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSessionState(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSessionState(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}kernels(t){let e=this.bb.__offset(this.bb_pos,4);return e?(t||new s.experimental.fbs.KernelCreateInfos).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}subGraphSessionStates(t,e){let r=this.bb.__offset(this.bb_pos,6);return r?(e||new s.experimental.fbs.SubGraphSessionState).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}subGraphSessionStatesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}static startSessionState(t){t.startObject(2)}static addKernels(t,e){t.addFieldOffset(0,e,0)}static addSubGraphSessionStates(t,e){t.addFieldOffset(1,e,0)}static createSubGraphSessionStatesVector(t,e){t.startVector(4,e.length,4);for(let r=e.length-1;r>=0;r--)t.addOffset(e[r]);return t.endVector()}static startSubGraphSessionStatesVector(t,e){t.startVector(4,e,4)}static endSessionState(t){return t.endObject()}static createSessionState(t,e,r){return a.startSessionState(t),a.addKernels(t,e),a.addSubGraphSessionStates(t,r),a.endSessionState(t)}}f.SessionState=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(f){class a{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsInferenceSession(t,e){return(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsInferenceSession(t,e){return t.setPosition(t.position()+d.flatbuffers.SIZE_PREFIX_LENGTH),(e||new a).__init(t.readInt32(t.position())+t.position(),t)}static bufferHasIdentifier(t){return t.__has_identifier("ORTM")}ortVersion(t){let e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__string(this.bb_pos+e,t):null}model(t){let e=this.bb.__offset(this.bb_pos,6);return e?(t||new s.experimental.fbs.Model).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}sessionState(t){let e=this.bb.__offset(this.bb_pos,8);return e?(t||new s.experimental.fbs.SessionState).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}static startInferenceSession(t){t.startObject(3)}static addOrtVersion(t,e){t.addFieldOffset(0,e,0)}static addModel(t,e){t.addFieldOffset(1,e,0)}static addSessionState(t,e){t.addFieldOffset(2,e,0)}static endInferenceSession(t){return t.endObject()}static finishInferenceSessionBuffer(t,e){t.finish(e,"ORTM")}static finishSizePrefixedInferenceSessionBuffer(t,e){t.finish(e,"ORTM",!0)}static createInferenceSession(t,e,r,i){return a.startInferenceSession(t),a.addOrtVersion(t,e),a.addModel(t,r),a.addSessionState(t,i),a.endInferenceSession(t)}}f.InferenceSession=a})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={}))},7448:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.OnnxjsSessionHandler=void 0;const d=u(1670),l=u(9162);n.OnnxjsSessionHandler=class{constructor(p){this.session=p,this.inputNames=this.session.inputNames,this.outputNames=this.session.outputNames}async dispose(){}async run(p,s,h){const f=new Map;for(const t in p)if(Object.hasOwnProperty.call(p,t)){const e=p[t];f.set(t,new l.Tensor(e.dims,e.type,void 0,void 0,e.data))}const a=await this.session.run(f),o={};return a.forEach((t,e)=>{o[e]=new d.Tensor(t.type,t.data,t.dims)}),o}startProfiling(){this.session.startProfiling()}endProfiling(){this.session.endProfiling()}}},6919:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Session=void 0;const d=u(7067),l=u(1296),p=u(7091),s=u(1036),h=u(6231),f=u(2644);n.Session=class{constructor(a={}){this._initialized=!1,this.backendHint=a.backendHint,this.profiler=h.Profiler.create(a.profiler),this.context={profiler:this.profiler,graphInputTypes:[],graphInputDims:[]}}get inputNames(){return this._model.graph.getInputNames()}get outputNames(){return this._model.graph.getOutputNames()}startProfiling(){this.profiler.start()}endProfiling(){this.profiler.stop()}async loadModel(a,o,t){await this.profiler.event("session","Session.loadModel",async()=>{const e=await(0,p.resolveBackend)(this.backendHint);if(this.sessionHandler=e.createSessionHandler(this.context),this._model=new f.Model,typeof a=="string"){const r=a.endsWith(".ort");if(typeof fetch>"u"){const i=await(0,l.promisify)(d.readFile)(a);this.initialize(i,r)}else{const i=await fetch(a),c=await i.arrayBuffer();this.initialize(new Uint8Array(c),r)}}else if(ArrayBuffer.isView(a))this.initialize(a);else{const r=new Uint8Array(a,o||0,t||a.byteLength);this.initialize(r)}})}initialize(a,o){if(this._initialized)throw new Error("already initialized");this.profiler.event("session","Session.initialize",()=>{const t=this.sessionHandler.transformGraph?this.sessionHandler:void 0;this._model.load(a,t,o),this.sessionHandler.onGraphInitialized&&this.sessionHandler.onGraphInitialized(this._model.graph),this.initializeOps(this._model.graph),this._executionPlan=new s.ExecutionPlan(this._model.graph,this._ops,this.profiler)}),this._initialized=!0}async run(a){if(!this._initialized)throw new Error("session not initialized yet");return this.profiler.event("session","Session.run",async()=>{const o=this.normalizeAndValidateInputs(a),t=await this._executionPlan.execute(this.sessionHandler,o);return this.createOutput(t)})}normalizeAndValidateInputs(a){const o=this._model.graph.getInputNames();if(Array.isArray(a)){if(a.length!==o.length)throw new Error(`incorrect input array length: expected ${o.length} but got ${a.length}`)}else{if(a.size!==o.length)throw new Error(`incorrect input map size: expected ${o.length} but got ${a.size}`);const t=new Array(a.size);let e=0;for(let r=0;r<o.length;++r){const i=a.get(o[r]);if(!i)throw new Error(`missing input tensor for: '${name}'`);t[e++]=i}a=t}if(this.context.graphInputTypes&&this.context.graphInputTypes.length!==0&&this.context.graphInputDims&&this.context.graphInputDims.length!==0)this.validateInputTensorDims(this.context.graphInputDims,a,!1);else{const t=this._model.graph.getInputIndices(),e=this._model.graph.getValues(),r=new Array(t.length);for(let i=0;i<t.length;++i){const c=e[t[i]];r[i]=c.type.shape.dims,this.context.graphInputTypes.push(c.type.tensorType),this.context.graphInputDims.push(a[i].dims)}this.validateInputTensorDims(r,a,!0)}return this.validateInputTensorTypes(this.context.graphInputTypes,a),a}validateInputTensorTypes(a,o){for(let t=0;t<o.length;t++){const e=a[t],r=o[t].type;if(e!==r)throw new Error(`input tensor[${t}] check failed: expected type '${e}' but got ${r}`)}}validateInputTensorDims(a,o,t){for(let e=0;e<o.length;e++){const r=a[e],i=o[e].dims;if(!this.compareTensorDims(r,i,t))throw new Error(`input tensor[${e}] check failed: expected shape '[${r.join(",")}]' but got [${i.join(",")}]`)}}compareTensorDims(a,o,t){if(a.length!==o.length)return!1;for(let e=0;e<a.length;++e)if(a[e]!==o[e]&&(!t||a[e]!==0))return!1;return!0}createOutput(a){const o=this._model.graph.getOutputNames();if(a.length!==o.length)throw new Error("expected number of outputs do not match number of generated outputs");const t=new Map;for(let e=0;e<o.length;++e)t.set(o[e],a[e]);return t}initializeOps(a){const o=a.getNodes();this._ops=new Array(o.length);for(let t=0;t<o.length;t++)this._ops[t]=this.sessionHandler.resolve(o[t],this._model.opsets,a)}}},9162:function(y,n,u){var d=this&&this.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(n,"__esModule",{value:!0}),n.Tensor=void 0;const l=u(3442),p=d(u(3720)),s=u(1446),h=u(9395),f=u(2517);var a=h.onnxruntime.experimental.fbs;class o{get data(){if(this.cache===void 0){const g=this.dataProvider(this.dataId);if(g.length!==this.size)throw new Error("Length of data provided by the Data Provider is inconsistent with the dims of this Tensor.");this.cache=g}return this.cache}get stringData(){if(this.type!=="string")throw new TypeError("data type is not string");return this.data}get integerData(){switch(this.type){case"uint8":case"int8":case"uint16":case"int16":case"int32":case"uint32":case"bool":return this.data;default:throw new TypeError("data type is not integer (uint8, int8, uint16, int16, int32, uint32, bool)")}}get floatData(){switch(this.type){case"float32":case"float64":return this.data;default:throw new TypeError("data type is not float (float32, float64)")}}get numberData(){if(this.type!=="string")return this.data;throw new TypeError("type cannot be non-number (string)")}get(g){return this.data[f.ShapeUtil.indicesToOffset(g,this.strides)]}set(g,m){this.data[f.ShapeUtil.indicesToOffset(g,this.strides)]=m}async getData(){return this.cache===void 0&&(this.cache=await this.asyncDataProvider(this.dataId)),this.cache}get strides(){return this._strides||(this._strides=f.ShapeUtil.computeStrides(this.dims)),this._strides}constructor(g,m,b,_,w,v=l.Guid.create()){this.dims=g,this.type=m,this.dataProvider=b,this.asyncDataProvider=_,this.cache=w,this.dataId=v,this.size=f.ShapeUtil.validateDimsAndCalcSize(g);const S=this.size,O=b===void 0&&_===void 0&&w===void 0;if(w!==void 0&&w.length!==S)throw new RangeError("Input dims doesn't match data length.");if(m==="string"){if(!(w===void 0||Array.isArray(w)&&w.every(E=>typeof E=="string")))throw new TypeError("cache should be a string array");O&&(this.cache=new Array(S))}else{if(w!==void 0){const E=e(m);if(!(w instanceof E))throw new TypeError(`cache should be type ${E.name}`)}if(O){const E=new ArrayBuffer(S*function(T){switch(T){case"bool":case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;case"float64":return 8;default:throw new Error(`cannot calculate sizeof() on type ${T}`)}}(m));this.cache=function(T,I){return new(e(I))(T)}(E,m)}}}static fromProto(g){if(!g)throw new Error("cannot construct Value from an empty tensor");const m=f.ProtoUtil.tensorDataTypeFromProto(g.dataType),b=f.ProtoUtil.tensorDimsFromProto(g.dims),_=new o(b,m);if(m==="string")g.stringData.forEach((w,v)=>{_.data[v]=(0,f.decodeUtf8String)(w)});else if(g.rawData&&typeof g.rawData.byteLength=="number"&&g.rawData.byteLength>0){const w=_.data,v=new DataView(g.rawData.buffer,g.rawData.byteOffset,g.rawData.byteLength),S=t(g.dataType),O=g.rawData.byteLength/S;if(g.rawData.byteLength%S!=0)throw new Error("invalid buffer length");if(w.length!==O)throw new Error("buffer length mismatch");for(let E=0;E<O;E++){const T=i(v,g.dataType,E*S);w[E]=T}}else{let w;switch(g.dataType){case s.onnx.TensorProto.DataType.FLOAT:w=g.floatData;break;case s.onnx.TensorProto.DataType.INT32:case s.onnx.TensorProto.DataType.INT16:case s.onnx.TensorProto.DataType.UINT16:case s.onnx.TensorProto.DataType.INT8:case s.onnx.TensorProto.DataType.UINT8:case s.onnx.TensorProto.DataType.BOOL:w=g.int32Data;break;case s.onnx.TensorProto.DataType.INT64:w=g.int64Data;break;case s.onnx.TensorProto.DataType.DOUBLE:w=g.doubleData;break;case s.onnx.TensorProto.DataType.UINT32:case s.onnx.TensorProto.DataType.UINT64:w=g.uint64Data;break;default:throw new Error("unspecific error")}if(w==null)throw new Error("failed to populate data from a tensorproto value");const v=_.data;if(v.length!==w.length)throw new Error("array length mismatch");for(let S=0;S<w.length;S++){const O=w[S];p.default.isLong(O)?v[S]=r(O,g.dataType):v[S]=O}}return _}static fromData(g,m,b){return new o(m,b,void 0,void 0,g)}static fromOrtTensor(g){if(!g)throw new Error("cannot construct Value from an empty tensor");const m=f.ProtoUtil.tensorDimsFromORTFormat(g),b=f.ProtoUtil.tensorDataTypeFromProto(g.dataType()),_=new o(m,b);if(b==="string")for(let w=0;w<g.stringDataLength();w++)_.data[w]=g.stringData(w);else if(g.rawDataArray()&&typeof g.rawDataLength()=="number"&&g.rawDataLength()>0){const w=_.data,v=new DataView(g.rawDataArray().buffer,g.rawDataArray().byteOffset,g.rawDataLength()),S=t(g.dataType()),O=g.rawDataLength()/S;if(g.rawDataLength()%S!=0)throw new Error("invalid buffer length");if(w.length!==O)throw new Error("buffer length mismatch");for(let E=0;E<O;E++){const T=i(v,g.dataType(),E*S);w[E]=T}}return _}}function t(c){switch(c){case s.onnx.TensorProto.DataType.UINT8:case s.onnx.TensorProto.DataType.INT8:case s.onnx.TensorProto.DataType.BOOL:return 1;case s.onnx.TensorProto.DataType.UINT16:case s.onnx.TensorProto.DataType.INT16:return 2;case s.onnx.TensorProto.DataType.FLOAT:case s.onnx.TensorProto.DataType.INT32:case s.onnx.TensorProto.DataType.UINT32:return 4;case s.onnx.TensorProto.DataType.INT64:case s.onnx.TensorProto.DataType.DOUBLE:case s.onnx.TensorProto.DataType.UINT64:return 8;default:throw new Error(`cannot calculate sizeof() on type ${s.onnx.TensorProto.DataType[c]}`)}}function e(c){switch(c){case"bool":case"uint8":return Uint8Array;case"int8":return Int8Array;case"int16":return Int16Array;case"uint16":return Uint16Array;case"int32":return Int32Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;default:throw new Error("unspecified error")}}function r(c,g){if(g===s.onnx.TensorProto.DataType.INT64||g===a.TensorDataType.INT64){if(c.greaterThanOrEqual(2147483648)||c.lessThan(-2147483648))throw new TypeError("int64 is not supported")}else{if(g!==s.onnx.TensorProto.DataType.UINT32&&g!==a.TensorDataType.UINT32&&g!==s.onnx.TensorProto.DataType.UINT64&&g!==a.TensorDataType.UINT64)throw new TypeError(`not a LONG type: ${s.onnx.TensorProto.DataType[g]}`);if(c.greaterThanOrEqual(4294967296)||c.lessThan(0))throw new TypeError("uint64 is not supported")}return c.toNumber()}function i(c,g,m){switch(g){case s.onnx.TensorProto.DataType.BOOL:case s.onnx.TensorProto.DataType.UINT8:return c.getUint8(m);case s.onnx.TensorProto.DataType.INT8:return c.getInt8(m);case s.onnx.TensorProto.DataType.UINT16:return c.getUint16(m,!0);case s.onnx.TensorProto.DataType.INT16:return c.getInt16(m,!0);case s.onnx.TensorProto.DataType.FLOAT:return c.getFloat32(m,!0);case s.onnx.TensorProto.DataType.INT32:return c.getInt32(m,!0);case s.onnx.TensorProto.DataType.UINT32:return c.getUint32(m,!0);case s.onnx.TensorProto.DataType.INT64:return r(p.default.fromBits(c.getUint32(m,!0),c.getUint32(m+4,!0),!1),g);case s.onnx.TensorProto.DataType.DOUBLE:return c.getFloat64(m,!0);case s.onnx.TensorProto.DataType.UINT64:return r(p.default.fromBits(c.getUint32(m,!0),c.getUint32(m+4,!0),!0),g);default:throw new Error(`cannot read from DataView for type ${s.onnx.TensorProto.DataType[g]}`)}}n.Tensor=o},2517:function(y,n,u){var d=this&&this.__importDefault||function(g){return g&&g.__esModule?g:{default:g}};Object.defineProperty(n,"__esModule",{value:!0}),n.decodeUtf8String=n.MAX_CLIP=n.MIN_CLIP=n.PoolConvUtil=n.ReduceUtil=n.SplitUtil=n.MathUtil=n.ShapeUtil=n.LongUtil=n.ProtoUtil=n.GemmUtil=n.arrayCopyHelper=n.BroadcastUtil=n.MatMulUtil=n.ArrayUtil=n.assert=n.checkInputsShape=void 0;const l=u(5686),p=d(u(3720)),s=u(1446),h=u(9162);n.checkInputsShape=function(g,...m){if(!g||g.length!==m.length)return!1;for(let b=0;b<g.length;b++)if(!g[b].dims||g[b].dims.length!==m[b])return!1;return!0},n.assert=function(g,m){if(!g)throw new Error(typeof m=="string"?m:m())},n.ArrayUtil=class{static arraysEqual(g,m){if(g.length!==m.length)return!1;for(let b=0;b<g.length;b++)if(g[b]!==m[b])return!1;return!0}};class f{static preprocessInputShapes(m,b){return[m.length===1?[1,m[0]]:m,b.length===1?[b[0],1]:b]}static postprocessOutputShape(m,b,_){b===1&&m.splice(m.length-2,1),_===1&&m.pop()}static calcMatMulShape(m,b){return m[1]!==b[0]?void 0:[m[0],b[1]]}}n.MatMulUtil=f;class a{static calcShape(m,b,_=!1){const w=m.length,v=b.length;if(w===0)return b;if(v===0)return m;const S=Math.max(m.length,b.length),O=new Array(S);if(_){if(w<2||v<2)return;const E=f.calcMatMulShape([m[w-2],m[w-1]],[b[v-2],b[v-1]]);if(E===void 0)return;[O[S-2],O[S-1]]=E}for(let E=_?3:1;E<=S;E++){const T=w-E<0?1:m[w-E],I=v-E<0?1:b[v-E];if(T!==I&&T>1&&I>1)return;O[S-E]=Math.max(T,I)}return O}static index(m,b){const _=new Array(b.length);return a.fillIndex(m,b,_),_}static fillIndex(m,b,_){const w=m.length-b.length;for(let v=0;v<b.length;v++)_[v]=m[w+v]%b[v]}static calc(m,b,_,w,v){const S=a.calcShape(m.dims,b.dims);if(S){if(w&&!e.areEqual(S,m.dims))return;const O=e.size(S),E=w?m:new h.Tensor(S,v||m.type);if(S.length===0)E.set([],_(m.get([]),b.get([])));else{const T=new Array(S.length),I=new Array(m.dims.length),C=new Array(b.dims.length);let B,F=0,N=0,H=!1,$=!1;m.dims.length===0&&(F=m.get([]),H=!0),b.dims.length===0&&(N=b.get([]),$=!0);for(let z=0;z<O;z++){B=z;for(let J=S.length-1;J>=0;J--)T[J]=B%S[J],B=Math.floor(B/S[J]);H||(a.fillIndex(T,m.dims,I),F=m.get(I)),$||(a.fillIndex(T,b.dims,C),N=b.get(C)),E.set(T,_(F,N))}}return E}}static isValidBroadcast(m,b){const _=m.length,w=b.length;if(_>w)return!1;for(let v=1;v<=_;v++)if(m[_-v]!==1&&m[_-v]!==b[w-v])return!1;return!0}static getBroadcastDims(m,b){const _=m.length,w=[];for(let v=0;v<_;v++){const S=_-1-v,O=m[S]||1;(b[b.length-1-v]||1)>1&&O===1&&w.unshift(S)}return w}}n.BroadcastUtil=a,n.arrayCopyHelper=function(g,m,b,_,w){if(_<0||_>=m.length)throw new Error("sourceIndex out of bounds");if(b<0||b>=g.length)throw new Error("targetIndex out of bounds");if(_+w>m.length)throw new Error("source indices to be copied are outside bounds");if(b+w>g.length)throw new Error("target array is too small to hold result");for(let v=0;v<w;v++)g[b+v]=m[_+v]},n.GemmUtil=class{static getShapeOfGemmResult(g,m,b,_,w){if(g.length!==2||b.length!==2)throw new Error("shape need to be of size 2");let v,S,O;m?(v=g[1],S=g[0]):(v=g[0],S=g[1]);let E=-1;if(_?(O=b[0],E=1):(O=b[1],E=0),b[E]!==S)throw new Error("dimension mismatch");if(v<=0||O<=0||S<=0)throw new Error("invalid shape specified");if(w&&!a.isValidBroadcast(w,[v,O]))throw new Error("gemm: invalid bias shape for broadcast");return[v,O,S]}};class o{static tensorDataTypeFromProto(m){switch(m){case s.onnx.TensorProto.DataType.INT8:return"int8";case s.onnx.TensorProto.DataType.UINT8:return"uint8";case s.onnx.TensorProto.DataType.BOOL:return"bool";case s.onnx.TensorProto.DataType.INT16:return"int16";case s.onnx.TensorProto.DataType.UINT16:return"uint16";case s.onnx.TensorProto.DataType.INT32:return"int32";case s.onnx.TensorProto.DataType.UINT32:return"uint32";case s.onnx.TensorProto.DataType.FLOAT:return"float32";case s.onnx.TensorProto.DataType.DOUBLE:return"float64";case s.onnx.TensorProto.DataType.STRING:return"string";case s.onnx.TensorProto.DataType.INT64:return"int32";case s.onnx.TensorProto.DataType.UINT64:return"uint32";default:throw new Error(`unsupported data type: ${s.onnx.TensorProto.DataType[m]}`)}}static tensorDataTypeStringToEnum(m){switch(m){case"int8":return s.onnx.TensorProto.DataType.INT8;case"uint8":return s.onnx.TensorProto.DataType.UINT8;case"bool":return s.onnx.TensorProto.DataType.BOOL;case"int16":return s.onnx.TensorProto.DataType.INT16;case"uint16":return s.onnx.TensorProto.DataType.UINT16;case"int32":return s.onnx.TensorProto.DataType.INT32;case"uint32":return s.onnx.TensorProto.DataType.UINT32;case"float32":return s.onnx.TensorProto.DataType.FLOAT;case"float64":return s.onnx.TensorProto.DataType.DOUBLE;case"string":return s.onnx.TensorProto.DataType.STRING;case"int64":return s.onnx.TensorProto.DataType.INT64;case"uint64":return s.onnx.TensorProto.DataType.UINT64;default:throw new Error(`unsupported data type: ${m}`)}}static tensorDimsFromProto(m){return m.map(b=>p.default.isLong(b)?b.toNumber():b)}static tensorValueTypeFromProto(m){return{tensorType:o.tensorDataTypeFromProto(m.elemType),shape:{dims:o.tensorDimsFromProto(m.shape.dim.map(b=>b.dimValue))}}}static tensorDimsFromORTFormat(m){const b=[];for(let _=0;_<m.dimsLength();_++)b.push(t.longToNumber(m.dims(_)));return b}static tensorAttributesFromORTFormat(m){const b=[];for(let _=0;_<m.attributesLength();_++)b.push(m.attributes(_));return b}}n.ProtoUtil=o;class t{static longToNumber(m,b){return p.default.isLong(m)?m.toNumber():m instanceof l.flatbuffers.Long?p.default.fromValue({low:m.low,high:m.high,unsigned:b!=null&&b}).toNumber():m}static isLong(m){return p.default.isLong(m)||m instanceof l.flatbuffers.Long}}n.LongUtil=t;class e{static size(m){return e.getSizeFromDimensionRange(m,0,m.length)}static sizeFromDimension(m,b){if(b<0||b>m.length)throw new Error(`invalid dimension of ${b} for sizeFromDimension as Tensor has ${m.length} dimensions.`);return e.getSizeFromDimensionRange(m,b,m.length)}static sizeToDimension(m,b){if(b<0||b>m.length)throw new Error(`invalid dimension of ${b} for sizeToDimension as Tensor has ${m.length} dimensions.`);return e.getSizeFromDimensionRange(m,0,b)}static getSizeFromDimensionRange(m,b,_){let w=1;for(let v=b;v<_;v++){if(m[v]<=0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains 0 or negative values in them.");w*=m[v]}return w}static computeStrides(m){const b=m.length;if(b===0)return[];if(b===1)return[1];const _=new Array(b);_[b-1]=1,_[b-2]=m[b-1];for(let w=b-3;w>=0;--w)_[w]=_[w+1]*m[w+1];return _}static transpose(m){return m.slice().reverse()}static indicesToOffset(m,b,_){_===void 0&&(_=m.length);let w=0;for(let v=0;v<_;++v)w+=b[v]*m[v];return w}static offsetToIndices(m,b){const _=b.length;if(_===0)return[];if(_===1)return[m*b[0]];const w=new Array(b.length);for(let v=0;v<w.length-1;++v)w[v]=Math.floor(m/b[v]),m-=w[v]*b[v];return w[w.length-1]=m,w}static normalizeAxis(m,b){if(m<-b&&m>=b)throw new Error("unsupported axis for this operation.");return m<0?m+b:m}static normalizeAxes(m,b){return m.map(_=>this.normalizeAxis(_,b))}static incrementIndex(m,b,_){if(b.length===0||m.length===0)throw new Error("Index incrementing unsupported for scalar Tensor");if(_===void 0)_=b.length;else if(_<=0||_>b.length)throw new Error("Incorrect axis to increment on");for(let w=_-1;w>=0&&(m[w]++,!(m[w]<b[w]));--w)m[w]=0}static calculateReshapedDims(m,b){if(b.length===0){if(m.length===0||e.size(m)===1)return[];throw new Error("cannot reshape to a scalar Tensor")}const _=b.length,w=new Array(_);let v=-1,S=1;for(let E=0;E<_;E++){if(b[E]<-1)throw new Error("a dimension in shape hints cannot be less than -1");if(b[E]===-1){if(v!==-1)throw new Error("at most one dimension in shape hints can be -1");v=E}else{if(b[E]===0){if(E>=m.length)throw new Error("the dimension with value zero exceeds the dimension size of the input tensor");w[E]=m[E]}else w[E]=b[E];S*=w[E]}}const O=e.size(m);if(v!==-1){if(O%S!=0)throw new Error(`the input tensor cannot be reshaped to the requested shape. Input shape: [${m}] Output shape: [${b}]`);w[v]=O/S}else if(S!==O)throw new Error("reshapedDims and originalDims don't have matching sizes");return w}static sortBasedOnPerm(m,b){return b?b.map(_=>m[_]):m.slice().reverse()}static padShape(m,b){const _=m.length;return m.map((w,v)=>w+b[v]+b[v+_])}static areEqual(m,b){return m.length===b.length&&m.every((_,w)=>_===b[w])}static validateDimsAndCalcSize(m){if(m.length>6)throw new TypeError("Only rank 0 to 6 is supported for tensor shape.");let b=1;for(const _ of m){if(!Number.isInteger(_))throw new TypeError(`Invalid shape: ${_} is not an integer`);if(_<0||_>2147483647)throw new TypeError(`Invalid shape: length ${_} is not allowed`);b*=_}return b}static flattenShape(m,b){b<0&&(b+=m.length);const _=m.reduce((v,S)=>v*S,1),w=m.slice(b).reduce((v,S)=>v*S,1);return[_/w,w]}static squeezeShape(m,b){const _=new Array;b=e.normalizeAxes(b,m.length);for(let w=0;w<m.length;w++){const v=b.indexOf(w)>=0;if(v&&m[w]!==1)throw new Error("squeeze an axis of size different than 1");(b.length===0&&m[w]>1||b.length>0&&!v)&&_.push(m[w])}return _}static unsqueezeShape(m,b){const _=new Array(m.length+b.length);_.fill(0);for(let v=0;v<b.length;v++){const S=e.normalizeAxis(b[v],_.length);if(S>=_.length)throw new Error("'axes' has an out of range axis");if(_[S]!==0)throw new Error("'axes' has a duplicate axis");_[S]=1}let w=0;for(let v=0;v<_.length;v++)_[v]===0&&(_[v]=m[w++]);if(w!==m.length)throw new Error("the unsqueezed dimension could not be established");return _}}n.ShapeUtil=e,n.MathUtil=class{static sqr(g,m,b,_,w){if(_<0||_>=m.length)throw new Error("sourceIndex out of bounds");if(b<0||b>=g.length)throw new Error("targetIndex out of bounds");if(_+w>m.length)throw new Error("source indices to be copied are outside bounds");if(b+w>g.length)throw new Error("target array is too small to hold result");for(let v=0;v<w;v++)g[b+v]+=Math.pow(m[_+v],2)}static axpy(g,m,b,_,w,v){if(_<0||_>=m.length)throw new Error("sourceIndex out of bounds");if(b<0||b>=g.length)throw new Error("targetIndex out of bounds");if(_+w>m.length)throw new Error("source indices to be copied are outside bounds");if(b+w>g.length)throw new Error("target array is too small to hold result");for(let S=0;S<w;S++)g[b+S]+=v*m[_+S]}static powx(g,m,b,_,w,v){if(_<0||_>=m.length)throw new Error("sourceIndex out of bounds");if(b<0||b>=g.length)throw new Error("targetIndex out of bounds");if(_+w>m.length)throw new Error("source indices to be copied are outside bounds");if(b+w>g.length)throw new Error("target array is too small to hold result");for(let S=0;S<w;S++)g[b+S]=Math.pow(m[_+S],v)}static mul(g,m,b,_,w){if(_<0||_>=m.length)throw new Error("sourceIndex out of bounds");if(b<0||b>=g.length)throw new Error("targetIndex out of bounds");if(_+w>m.length)throw new Error("source indices to be copied are outside bounds");if(b+w>g.length)throw new Error("target array is too small to hold result");for(let v=0;v<w;v++)g[b+v]=m[_+v]*g[b+v]}};class r{static splitShape(m,b,_,w){if(_.length===0){if(!w)throw new Error("need to know number of outputs when the 'split' attribute is not specified");r.determineSplit(m[b],w,_)}const v=[],S=[0];for(let O=0;O<_.length;++O){O!==0&&S.push(S[O-1]+_[O-1]);const E=m.slice();E[b]=_[O],v.push(E)}return[v,S]}static determineSplit(m,b,_){if(m%b!=0)throw new Error("cannot split tensor to equal sized parts");for(let w=0;w<b;++w)_.push(m/b)}}n.SplitUtil=r;class i{static calcReduce(m,b,_,w,v){const S=m.dims.slice(0);b.length===0&&S.forEach((F,N)=>b.push(N));const O=i.calcReduceShape(S,b,!0),E=e.size(O),T=new h.Tensor(O,m.type),I=e.computeStrides(O),C=e.computeStrides(S),B=new Array(S.length);for(let F=0;F<E;F++){const N=e.offsetToIndices(F,I);a.fillIndex(N,S,B),T.set(N,i.calcReduceByAxis(m.numberData,b,S,0,e.indicesToOffset(B,C),w,v))}return _?T:new h.Tensor(i.calcReduceShape(S,b,_),T.type,void 0,void 0,T.data,T.dataId)}static calcReduceByAxis(m,b,_,w,v,S,O){let E=0;if(w>=b.length)return S(m[v]);const T=b[w],I=T>=_.length?1:e.size(_.slice(T+1));for(let C=0;C<_[T];C++)E=C===0?i.calcReduceByAxis(m,b,_,w+1,v,S,O):O(E,i.calcReduceByAxis(m,b,_,w+1,v,S,O)),v+=I;return E}static calcReduceShape(m,b,_){const w=m.slice();for(let v=0;v<b.length;v++)w[b[v]]=_?1:0;return w.filter(v=>v!==0)}}n.ReduceUtil=i;class c{static adjustPoolAttributes(m,b,_,w,v,S){if(!m&&_.length!==b.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(m)for(let O=0;O<b.length-2;O++)O>=_.length?_.push(b[O+2]):_[O]=b[O+2];for(let O=0;O<_.length;O++)if(O<w.length){if(w[O]<0)throw new Error("strides should be greater than or equal to 1")}else w.push(1);for(let O=0;O<_.length;O++)if(O<v.length){if(v[O]<0)throw new Error("dilations should be greater than or equal to 1")}else v.push(1);for(let O=0;O<2*_.length;O++)if(O<S.length){if(S[O]<0)throw new Error("pad should be greater than or equal to 1")}else S.push(0);for(let O=0;O<_.length;O++){if(_[O]<=0)throw new Error("kernel shapes need to be greater than 0");if(S[O]>=_[O]||S[O+_.length]>=_[O])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(m,b,_,w,v,S){if(S){if(v.length!==2*(m.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(b.length!==m.length-2)throw new Error("length of strides should be the length of data dimensions");if(w.length!==m.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let O=0;O<m.length-2;O++)c.adjustPadAndReturnShape(m[O+2],b[O],_[O],w[O],v,O,O+m.length-2,S)}}static computePoolOutputShape(m,b,_,w,v,S,O){if(b.length<=0)throw new Error("input shape must be of size greater than 0");const E=[b[0],b[1]];return c.computeShapeHelper(m,b,E,_,w,v,S,O),E}static computeConvOutputShape(m,b,_,w,v,S,O){if(m.length<=0||b.length<=0)throw new Error("invalid input tensor dims or invalid filter tensor dims");const E=[m[0],b[0]];return c.computeShapeHelper(!1,m,E,_,w,v,S,O),E}static computeShapeHelper(m,b,_,w,v,S,O,E){if(m)for(let T=0;T<b.length-2;T++)_.push(1);else for(let T=0;T<b.length-2;T++)_.push(c.adjustPadAndReturnShape(b[T+2],w[T],v[T],S[T],O,T,T+b.length-2,E))}static adjustPadAndReturnShape(m,b,_,w,v,S,O,E){const T=_*(w-1)+1;if(!E||E==="NOTSET")return Math.floor((m+v[S]+v[O]-T)/b+1);switch(E){case"VALID":return v[S]=0,v[O]=0,Math.floor((m-T)/b+1);case"SAME_LOWER":case"SAME_UPPER":if(_!==1)throw new Error("Dilation not supported for SAME_UPPER or SAME_LOWER");{const I=((m+b-1)/b-1)*b+w-m;return v[S]=Math.floor(E==="SAME_LOWER"?(I+1)/2:I/2),v[O]=I-v[S],Math.floor((m+I-w)/b+1)}default:throw new Error("Unsupported AutoPad type")}}}n.PoolConvUtil=c,n.MIN_CLIP=-34028234663852886e22,n.MAX_CLIP=34028234663852886e22,n.decodeUtf8String=function(g){return new TextDecoder().decode(g)}},7967:(y,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.iterateExtraOptions=void 0,n.iterateExtraOptions=(u,d,l,p)=>{if(typeof u=="object"&&u!==null){if(l.has(u))throw new Error("Circular reference in options");l.add(u)}Object.entries(u).forEach(([s,h])=>{const f=d?d+s:s;if(typeof h=="object")(0,n.iterateExtraOptions)(h,f+".",l,p);else if(typeof h=="string"||typeof h=="number")p(f,h.toString());else{if(typeof h!="boolean")throw new Error("Can't handle extra config type: "+typeof h);p(f,h?"1":"0")}})}},2157:function(y,n,u){var d,l=this&&this.__createBinding||(Object.create?function(I,C,B,F){F===void 0&&(F=B);var N=Object.getOwnPropertyDescriptor(C,B);N&&!("get"in N?!C.__esModule:N.writable||N.configurable)||(N={enumerable:!0,get:function(){return C[B]}}),Object.defineProperty(I,F,N)}:function(I,C,B,F){F===void 0&&(F=B),I[F]=C[B]}),p=this&&this.__setModuleDefault||(Object.create?function(I,C){Object.defineProperty(I,"default",{enumerable:!0,value:C})}:function(I,C){I.default=C}),s=this&&this.__importStar||function(I){if(I&&I.__esModule)return I;var C={};if(I!=null)for(var B in I)B!=="default"&&Object.prototype.hasOwnProperty.call(I,B)&&l(C,I,B);return p(C,I),C};Object.defineProperty(n,"__esModule",{value:!0}),n.endProfiling=n.run=n.releaseSession=n.createSession=n.createSessionFinalize=n.createSessionAllocate=n.initOrt=n.initWasm=void 0;const h=u(1670),f=s(u(349)),a=u(6361),o=()=>!!h.env.wasm.proxy&&typeof document<"u";let t,e,r,i=!1,c=!1,g=!1;const m=[],b=[],_=[],w=[],v=[],S=[],O=()=>{if(i||!c||g||!t)throw new Error("worker not ready")},E=I=>{switch(I.data.type){case"init-wasm":i=!1,I.data.err?(g=!0,e[1](I.data.err)):(c=!0,e[0]());break;case"init-ort":I.data.err?r[1](I.data.err):r[0]();break;case"create_allocate":I.data.err?m.shift()[1](I.data.err):m.shift()[0](I.data.out);break;case"create_finalize":I.data.err?b.shift()[1](I.data.err):b.shift()[0](I.data.out);break;case"create":I.data.err?_.shift()[1](I.data.err):_.shift()[0](I.data.out);break;case"release":I.data.err?w.shift()[1](I.data.err):w.shift()[0]();break;case"run":I.data.err?v.shift()[1](I.data.err):v.shift()[0](I.data.out);break;case"end-profiling":I.data.err?S.shift()[1](I.data.err):S.shift()[0]()}},T=typeof document<"u"?(d=document==null?void 0:document.currentScript)===null||d===void 0?void 0:d.src:void 0;n.initWasm=async()=>{if(o()){if(c)return;if(i)throw new Error("multiple calls to 'initWasm()' detected.");if(g)throw new Error("previous call to 'initWasm()' failed.");return i=!0,h.env.wasm.wasmPaths===void 0&&T&&T.indexOf("blob:")!==0&&(h.env.wasm.wasmPaths=T.substr(0,+T.lastIndexOf("/")+1)),new Promise((I,C)=>{t==null||t.terminate(),t=u(9710).Z(),t.onmessage=E,e=[I,C];const B={type:"init-wasm",in:h.env.wasm};t.postMessage(B)})}return(0,a.initializeWebAssembly)(h.env.wasm)},n.initOrt=async(I,C)=>{if(o())return O(),new Promise((B,F)=>{r=[B,F];const N={type:"init-ort",in:{numThreads:I,loggingLevel:C}};t.postMessage(N)});f.initOrt(I,C)},n.createSessionAllocate=async I=>o()?(O(),new Promise((C,B)=>{m.push([C,B]);const F={type:"create_allocate",in:{model:I}};t.postMessage(F,[I.buffer])})):f.createSessionAllocate(I),n.createSessionFinalize=async(I,C)=>o()?(O(),new Promise((B,F)=>{b.push([B,F]);const N={type:"create_finalize",in:{modeldata:I,options:C}};t.postMessage(N)})):f.createSessionFinalize(I,C),n.createSession=async(I,C)=>o()?(O(),new Promise((B,F)=>{_.push([B,F]);const N={type:"create",in:{model:I,options:C}};t.postMessage(N,[I.buffer])})):f.createSession(I,C),n.releaseSession=async I=>{if(o())return O(),new Promise((C,B)=>{w.push([C,B]);const F={type:"release",in:I};t.postMessage(F)});f.releaseSession(I)},n.run=async(I,C,B,F,N)=>o()?(O(),new Promise((H,$)=>{v.push([H,$]);const z={type:"run",in:{sessionId:I,inputIndices:C,inputs:B,outputIndices:F,options:N}};t.postMessage(z,f.extractTransferableBuffers(B))})):f.run(I,C,B,F,N),n.endProfiling=async I=>{if(o())return O(),new Promise((C,B)=>{S.push([C,B]);const F={type:"end-profiling",in:I};t.postMessage(F)});f.endProfiling(I)}},586:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.setRunOptions=void 0;const d=u(7967),l=u(4983),p=u(6361);n.setRunOptions=s=>{const h=(0,p.getInstance)();let f=0;const a=[],o=s||{};try{if((s==null?void 0:s.logSeverityLevel)===void 0)o.logSeverityLevel=2;else if(typeof s.logSeverityLevel!="number"||!Number.isInteger(s.logSeverityLevel)||s.logSeverityLevel<0||s.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${s.logSeverityLevel}`);if((s==null?void 0:s.logVerbosityLevel)===void 0)o.logVerbosityLevel=0;else if(typeof s.logVerbosityLevel!="number"||!Number.isInteger(s.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${s.logVerbosityLevel}`);(s==null?void 0:s.terminate)===void 0&&(o.terminate=!1);let t=0;if((s==null?void 0:s.tag)!==void 0&&(t=(0,l.allocWasmString)(s.tag,a)),f=h._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,t),f===0)throw new Error("Can't create run options");return(s==null?void 0:s.extra)!==void 0&&(0,d.iterateExtraOptions)(s.extra,"",new WeakSet,(e,r)=>{const i=(0,l.allocWasmString)(e,a),c=(0,l.allocWasmString)(r,a);if(h._OrtAddRunConfigEntry(f,i,c)!==0)throw new Error(`Can't set a run config entry: ${e} - ${r}`)}),[f,a]}catch(t){throw f!==0&&h._OrtReleaseRunOptions(f),a.forEach(h._free),t}}},2306:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.OnnxruntimeWebAssemblySessionHandler=void 0;const d=u(2806),l=u(1670),p=u(2850),s=u(2157);let h;n.OnnxruntimeWebAssemblySessionHandler=class{async createSessionAllocate(f){const a=await fetch(f),o=await a.arrayBuffer();return(0,s.createSessionAllocate)(new Uint8Array(o))}async loadModel(f,a){if(h||(await(0,s.initOrt)(l.env.wasm.numThreads,(o=>{switch(o){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${o}`)}})(l.env.logLevel)),h=!0),typeof f=="string")if(typeof fetch>"u"){const o=await(0,p.promisify)(d.readFile)(f);[this.sessionId,this.inputNames,this.outputNames]=await(0,s.createSession)(o,a)}else{const o=await this.createSessionAllocate(f);[this.sessionId,this.inputNames,this.outputNames]=await(0,s.createSessionFinalize)(o,a)}else[this.sessionId,this.inputNames,this.outputNames]=await(0,s.createSession)(f,a)}async dispose(){return(0,s.releaseSession)(this.sessionId)}async run(f,a,o){const t=[],e=[];Object.entries(f).forEach(g=>{const m=g[0],b=g[1],_=this.inputNames.indexOf(m);if(_===-1)throw new Error(`invalid input '${m}'`);t.push(b),e.push(_)});const r=[];Object.entries(a).forEach(g=>{const m=g[0],b=this.outputNames.indexOf(m);if(b===-1)throw new Error(`invalid output '${m}'`);r.push(b)});const i=await(0,s.run)(this.sessionId,e,t.map(g=>[g.type,g.dims,g.data]),r,o),c={};for(let g=0;g<i.length;g++)c[this.outputNames[r[g]]]=new l.Tensor(i[g][0],i[g][2],i[g][1]);return c}startProfiling(){}endProfiling(){(0,s.endProfiling)(this.sessionId)}}},4919:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.setSessionOptions=void 0;const d=u(7967),l=u(4983),p=u(6361);n.setSessionOptions=s=>{const h=(0,p.getInstance)();let f=0;const a=[],o=s||{};(t=>{t.extra||(t.extra={}),t.extra.session||(t.extra.session={});const e=t.extra.session;e.use_ort_model_bytes_directly||(e.use_ort_model_bytes_directly="1")})(o);try{(s==null?void 0:s.graphOptimizationLevel)===void 0&&(o.graphOptimizationLevel="all");const t=(i=>{switch(i){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${i}`)}})(o.graphOptimizationLevel);(s==null?void 0:s.enableCpuMemArena)===void 0&&(o.enableCpuMemArena=!0),(s==null?void 0:s.enableMemPattern)===void 0&&(o.enableMemPattern=!0),(s==null?void 0:s.executionMode)===void 0&&(o.executionMode="sequential");const e=(i=>{switch(i){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${i}`)}})(o.executionMode);let r=0;if((s==null?void 0:s.logId)!==void 0&&(r=(0,l.allocWasmString)(s.logId,a)),(s==null?void 0:s.logSeverityLevel)===void 0)o.logSeverityLevel=2;else if(typeof s.logSeverityLevel!="number"||!Number.isInteger(s.logSeverityLevel)||s.logSeverityLevel<0||s.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${s.logSeverityLevel}`);if((s==null?void 0:s.logVerbosityLevel)===void 0)o.logVerbosityLevel=0;else if(typeof s.logVerbosityLevel!="number"||!Number.isInteger(s.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${s.logVerbosityLevel}`);if((s==null?void 0:s.enableProfiling)===void 0&&(o.enableProfiling=!1),f=h._OrtCreateSessionOptions(t,!!o.enableCpuMemArena,!!o.enableMemPattern,e,!!o.enableProfiling,0,r,o.logSeverityLevel,o.logVerbosityLevel),f===0)throw new Error("Can't create session options");return s!=null&&s.executionProviders&&((i,c,g)=>{for(const m of c){let b=typeof m=="string"?m:m.name;switch(b){case"xnnpack":b="XNNPACK";break;case"wasm":case"cpu":continue;default:throw new Error(`not supported EP: ${b}`)}const _=(0,l.allocWasmString)(b,g);if((0,p.getInstance)()._OrtAppendExecutionProvider(i,_)!==0)throw new Error(`Can't append execution provider: ${b}`)}})(f,s.executionProviders,a),(s==null?void 0:s.extra)!==void 0&&(0,d.iterateExtraOptions)(s.extra,"",new WeakSet,(i,c)=>{const g=(0,l.allocWasmString)(i,a),m=(0,l.allocWasmString)(c,a);if(h._OrtAddSessionConfigEntry(f,g,m)!==0)throw new Error(`Can't set a session config entry: ${i} - ${c}`)}),[f,a]}catch(t){throw f!==0&&h._OrtReleaseSessionOptions(f),a.forEach(h._free),t}}},4983:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.allocWasmString=void 0;const d=u(6361);n.allocWasmString=(l,p)=>{const s=(0,d.getInstance)(),h=s.lengthBytesUTF8(l)+1,f=s._malloc(h);return s.stringToUTF8(l,f,h),p.push(f),f}},349:(y,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.extractTransferableBuffers=n.endProfiling=n.run=n.releaseSession=n.createSession=n.createSessionFinalize=n.createSessionAllocate=n.initOrt=void 0;const d=u(586),l=u(4919),p=u(4983),s=u(6361);n.initOrt=(t,e)=>{const r=(0,s.getInstance)()._OrtInit(t,e);if(r!==0)throw new Error(`Can't initialize onnxruntime. error code = ${r}`)};const h=new Map;n.createSessionAllocate=t=>{const e=(0,s.getInstance)(),r=e._malloc(t.byteLength);return e.HEAPU8.set(t,r),[r,t.byteLength]},n.createSessionFinalize=(t,e)=>{const r=(0,s.getInstance)();let i=0,c=0,g=[];try{if([c,g]=(0,l.setSessionOptions)(e),i=r._OrtCreateSession(t[0],t[1],c),i===0)throw new Error("Can't create a session")}finally{r._free(t[0]),r._OrtReleaseSessionOptions(c),g.forEach(r._free)}const m=r._OrtGetInputCount(i),b=r._OrtGetOutputCount(i),_=[],w=[],v=[],S=[];for(let O=0;O<m;O++){const E=r._OrtGetInputName(i,O);if(E===0)throw new Error("Can't get an input name");w.push(E),_.push(r.UTF8ToString(E))}for(let O=0;O<b;O++){const E=r._OrtGetOutputName(i,O);if(E===0)throw new Error("Can't get an output name");S.push(E),v.push(r.UTF8ToString(E))}return h.set(i,[i,w,S]),[i,_,v]},n.createSession=(t,e)=>{const r=(0,n.createSessionAllocate)(t);return(0,n.createSessionFinalize)(r,e)},n.releaseSession=t=>{const e=(0,s.getInstance)(),r=h.get(t);if(!r)throw new Error("invalid session id");const i=r[0],c=r[1],g=r[2];c.forEach(e._OrtFree),g.forEach(e._OrtFree),e._OrtReleaseSession(i),h.delete(t)};const f=t=>{switch(t){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;default:throw new Error(`unsupported data type: ${t}`)}},a=t=>{switch(t){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";default:throw new Error(`unsupported data type: ${t}`)}},o=t=>{switch(t){case"float32":return Float32Array;case"uint8":case"bool":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${t}`)}};n.run=(t,e,r,i,c)=>{const g=(0,s.getInstance)(),m=h.get(t);if(!m)throw new Error("invalid session id");const b=m[0],_=m[1],w=m[2],v=e.length,S=i.length;let O=0,E=[];const T=[],I=[];try{[O,E]=(0,d.setRunOptions)(c);for(let $=0;$<v;$++){const z=r[$][0],J=r[$][1],X=r[$][2];let te,ne;if(Array.isArray(X)){ne=4*X.length,te=g._malloc(ne),I.push(te);let Oe=te/4;for(let ce=0;ce<X.length;ce++){if(typeof X[ce]!="string")throw new TypeError(`tensor data at index ${ce} is not a string`);g.HEAPU32[Oe++]=(0,p.allocWasmString)(X[ce],I)}}else ne=X.byteLength,te=g._malloc(ne),I.push(te),g.HEAPU8.set(new Uint8Array(X.buffer,X.byteOffset,ne),te);const me=g.stackSave(),Ie=g.stackAlloc(4*J.length);try{let Oe=Ie/4;J.forEach(Te=>g.HEAP32[Oe++]=Te);const ce=g._OrtCreateTensor(f(z),te,ne,Ie,J.length);if(ce===0)throw new Error("Can't create a tensor");T.push(ce)}finally{g.stackRestore(me)}}const C=g.stackSave(),B=g.stackAlloc(4*v),F=g.stackAlloc(4*v),N=g.stackAlloc(4*S),H=g.stackAlloc(4*S);try{let $=B/4,z=F/4,J=N/4,X=H/4;for(let me=0;me<v;me++)g.HEAPU32[$++]=T[me],g.HEAPU32[z++]=_[e[me]];for(let me=0;me<S;me++)g.HEAPU32[J++]=0,g.HEAPU32[X++]=w[i[me]];let te=g._OrtRun(b,F,B,v,H,S,N,O);const ne=[];if(te===0)for(let me=0;me<S;me++){const Ie=g.HEAPU32[N/4+me],Oe=g.stackSave(),ce=g.stackAlloc(16);let Te,_e=0;try{if(te=g._OrtGetTensorData(Ie,ce,ce+4,ce+8,ce+12),te!==0)throw new Error(`Can't access output tensor data. error code = ${te}`);let Le=ce/4;const We=g.HEAPU32[Le++];_e=g.HEAPU32[Le++];const Ae=g.HEAPU32[Le++],Ce=g.HEAPU32[Le++],Me=[];for(let ve=0;ve<Ce;ve++)Me.push(g.HEAPU32[Ae/4+ve]);g._OrtFree(Ae);const Ee=Me.length===0?1:Me.reduce((ve,je)=>ve*je);if(Te=a(We),Te==="string"){const ve=[];let je=_e/4;for(let ze=0;ze<Ee;ze++){const Ue=g.HEAPU32[je++],He=ze===Ee-1?void 0:g.HEAPU32[je]-Ue;ve.push(g.UTF8ToString(Ue,He))}ne.push([Te,Me,ve])}else{const ve=new(o(Te))(Ee);new Uint8Array(ve.buffer,ve.byteOffset,ve.byteLength).set(g.HEAPU8.subarray(_e,_e+ve.byteLength)),ne.push([Te,Me,ve])}}finally{g.stackRestore(Oe),Te==="string"&&_e&&g._free(_e),g._OrtReleaseTensor(Ie)}}if(te===0)return ne;throw new Error(`failed to call OrtRun(). error code = ${te}.`)}finally{g.stackRestore(C)}}finally{T.forEach(g._OrtReleaseTensor),I.forEach(g._free),g._OrtReleaseRunOptions(O),E.forEach(g._free)}},n.endProfiling=t=>{const e=(0,s.getInstance)(),r=h.get(t);if(!r)throw new Error("invalid session id");const i=r[0],c=e._OrtEndProfiling(i);if(c===0)throw new Error("Can't get an profile file name");e._OrtFree(c)},n.extractTransferableBuffers=t=>{const e=[];for(const r of t){const i=r[2];!Array.isArray(i)&&i.buffer&&e.push(i.buffer)}return e}},6361:function(y,n,u){var d=this&&this.__createBinding||(Object.create?function(c,g,m,b){b===void 0&&(b=m);var _=Object.getOwnPropertyDescriptor(g,m);_&&!("get"in _?!g.__esModule:_.writable||_.configurable)||(_={enumerable:!0,get:function(){return g[m]}}),Object.defineProperty(c,b,_)}:function(c,g,m,b){b===void 0&&(b=m),c[b]=g[m]}),l=this&&this.__setModuleDefault||(Object.create?function(c,g){Object.defineProperty(c,"default",{enumerable:!0,value:g})}:function(c,g){c.default=g}),p=this&&this.__importStar||function(c){if(c&&c.__esModule)return c;var g={};if(c!=null)for(var m in c)m!=="default"&&Object.prototype.hasOwnProperty.call(c,m)&&d(g,c,m);return l(g,c),g},s=this&&this.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(n,"__esModule",{value:!0}),n.dispose=n.getInstance=n.initializeWebAssembly=void 0;const h=p(u(6449)),f=s(u(932)),a=u(3474);let o,t=!1,e=!1,r=!1;const i=(c,g)=>g?c?"ort-wasm-simd-threaded.wasm":"ort-wasm-threaded.wasm":c?"ort-wasm-simd.wasm":"ort-wasm.wasm";n.initializeWebAssembly=async c=>{if(t)return Promise.resolve();if(e)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(r)throw new Error("previous call to 'initializeWebAssembly()' failed.");e=!0;const g=c.initTimeout,m=c.numThreads,b=c.simd,_=m>1&&(()=>{try{return typeof SharedArrayBuffer<"u"&&(typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])))}catch{return!1}})(),w=b&&(()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}})(),v=typeof c.wasmPaths=="string"?c.wasmPaths:void 0,S=i(!1,_),O=i(w,_),E=typeof c.wasmPaths=="object"?c.wasmPaths[O]:void 0;let T=!1;const I=[];if(g>0&&I.push(new Promise(C=>{setTimeout(()=>{T=!0,C()},g)})),I.push(new Promise((C,B)=>{const F=_?a:f.default,N={locateFile:(H,$)=>_&&H.endsWith(".worker.js")&&typeof Blob<"u"?URL.createObjectURL(new Blob([u(4154)],{type:"text/javascript"})):H===S?E??(v??$)+O:$+H};if(_)if(typeof Blob>"u")N.mainScriptUrlOrBlob=h.join("/","ort-wasm-threaded.js");else{const H=`var ortWasmThreaded=(function(){var _scriptDir;return ${F.toString()}})();`;N.mainScriptUrlOrBlob=new Blob([H],{type:"text/javascript"})}F(N).then(H=>{e=!1,t=!0,o=H,C()},H=>{e=!1,r=!0,B(H)})})),await Promise.race(I),T)throw new Error(`WebAssembly backend initializing failed due to timeout: ${g}ms`)},n.getInstance=()=>{if(t&&o)return o;throw new Error("WebAssembly is not initialized yet.")},n.dispose=()=>{var c;!t||e||r||(e=!0,(c=o.PThread)===null||c===void 0||c.terminateAllThreads(),o=void 0,e=!1,t=!1,r=!0)}},9710:(y,n,u)=>{u.d(n,{Z:()=>p});var d=u(477),l=u.n(d);function p(){return l()('/*!\n* ONNX Runtime Web v1.14.0\n* Copyright (c) Microsoft Corporation. All rights reserved.\n* Licensed under the MIT License.\n*/\n(()=>{var t={474:(t,e,n)=>{var _scriptDir,r=(_scriptDir=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(t){function e(){return j.buffer!=D&&N(j.buffer),P}function r(){return j.buffer!=D&&N(j.buffer),U}function a(){return j.buffer!=D&&N(j.buffer),F}function i(){return j.buffer!=D&&N(j.buffer),I}function o(){return j.buffer!=D&&N(j.buffer),W}var u,c,s;t=t||{},u||(u=void 0!==t?t:{}),u.ready=new Promise((function(t,e){c=t,s=e}));var l,f,p,h,d,y,b=Object.assign({},u),m="./this.program",g=(t,e)=>{throw e},v="object"==typeof window,w="function"==typeof importScripts,_="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,O=u.ENVIRONMENT_IS_PTHREAD||!1,A="";function S(t){return u.locateFile?u.locateFile(t,A):A+t}if(_){let e;A=w?n(908).dirname(A)+"/":"//",y=()=>{d||(h=n(384),d=n(908))},l=function(t,e){return y(),t=d.normalize(t),h.readFileSync(t,e?void 0:"utf8")},p=t=>((t=l(t,!0)).buffer||(t=new Uint8Array(t)),t),f=(t,e,n)=>{y(),t=d.normalize(t),h.readFile(t,(function(t,r){t?n(t):e(r.buffer)}))},1<process.argv.length&&(m=process.argv[1].replace(/\\\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof ct))throw t})),process.on("unhandledRejection",(function(t){throw t})),g=(t,e)=>{if(Q())throw process.exitCode=t,e;e instanceof ct||x("exiting due to exception: "+e),process.exit(t)},u.inspect=function(){return"[Emscripten Module object]"};try{e=n(925)}catch(t){throw console.error(\'The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?\'),t}n.g.Worker=e.Worker}else(v||w)&&(w?A=self.location.href:"undefined"!=typeof document&&document.currentScript&&(A=document.currentScript.src),_scriptDir&&(A=_scriptDir),A=0!==A.indexOf("blob:")?A.substr(0,A.replace(/[?#].*/,"").lastIndexOf("/")+1):"",_||(l=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},w&&(p=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),f=(t,e,n)=>{var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?e(r.response):n()},r.onerror=n,r.send(null)}));_&&"undefined"==typeof performance&&(n.g.performance=n(953).performance);var T=console.log.bind(console),E=console.warn.bind(console);_&&(y(),T=t=>h.writeSync(1,t+"\\n"),E=t=>h.writeSync(2,t+"\\n"));var M,C=u.print||T,x=u.printErr||E;Object.assign(u,b),b=null,u.thisProgram&&(m=u.thisProgram),u.quit&&(g=u.quit),u.wasmBinary&&(M=u.wasmBinary);var R=u.noExitRuntime||!1;"object"!=typeof WebAssembly&&at("no native wasm support detected");var j,k,D,P,U,F,I,W,H=!1,L="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function z(t,e,n){var r=(e>>>=0)+n;for(n=e;t[n]&&!(n>=r);)++n;if(16<n-e&&t.buffer&&L)return L.decode(t.buffer instanceof SharedArrayBuffer?t.slice(e,n):t.subarray(e,n));for(r="";e<n;){var a=t[e++];if(128&a){var i=63&t[e++];if(192==(224&a))r+=String.fromCharCode((31&a)<<6|i);else{var o=63&t[e++];65536>(a=224==(240&a)?(15&a)<<12|i<<6|o:(7&a)<<18|i<<12|o<<6|63&t[e++])?r+=String.fromCharCode(a):(a-=65536,r+=String.fromCharCode(55296|a>>10,56320|1023&a))}}else r+=String.fromCharCode(a)}return r}function Y(t,e){return(t>>>=0)?z(r(),t,e):""}function B(t,e,n,r){if(!(0<r))return 0;var a=n>>>=0;r=n+r-1;for(var i=0;i<t.length;++i){var o=t.charCodeAt(i);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++i)),127>=o){if(n>=r)break;e[n++>>>0]=o}else{if(2047>=o){if(n+1>=r)break;e[n++>>>0]=192|o>>6}else{if(65535>=o){if(n+2>=r)break;e[n++>>>0]=224|o>>12}else{if(n+3>=r)break;e[n++>>>0]=240|o>>18,e[n++>>>0]=128|o>>12&63}e[n++>>>0]=128|o>>6&63}e[n++>>>0]=128|63&o}}return e[n>>>0]=0,n-a}function G(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);127>=r?e++:2047>=r?e+=2:55296<=r&&57343>=r?(e+=4,++n):e+=3}return e}function N(t){D=t,u.HEAP8=P=new Int8Array(t),u.HEAP16=new Int16Array(t),u.HEAP32=F=new Int32Array(t),u.HEAPU8=U=new Uint8Array(t),u.HEAPU16=new Uint16Array(t),u.HEAPU32=I=new Uint32Array(t),u.HEAPF32=new Float32Array(t),u.HEAPF64=W=new Float64Array(t)}O&&(D=u.buffer);var V=u.INITIAL_MEMORY||16777216;if(O)j=u.wasmMemory,D=u.buffer;else if(u.wasmMemory)j=u.wasmMemory;else if(!((j=new WebAssembly.Memory({initial:V/65536,maximum:65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw x("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"),_&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");j&&(D=j.buffer),V=D.byteLength,N(D);var $,q=[],X=[],J=[],Z=[];function Q(){return R||!1}function K(){var t=u.preRun.shift();q.unshift(t)}var tt,et=0,nt=null,rt=null;function at(t){throw O?postMessage({cmd:"onAbort",arg:t}):u.onAbort&&u.onAbort(t),x(t="Aborted("+t+")"),H=!0,t=new WebAssembly.RuntimeError(t+". Build with -sASSERTIONS for more info."),s(t),t}function it(){return tt.startsWith("data:application/octet-stream;base64,")}function ot(){var t=tt;try{if(t==tt&&M)return new Uint8Array(M);if(p)return p(t);throw"both async and sync fetching of the wasm failed"}catch(t){at(t)}}tt="ort-wasm-threaded.wasm",it()||(tt=S(tt));var ut={};function ct(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function st(t){(t=ht.Vb[t])||at(),ht.mc(t)}function lt(t){var e=ht.Cc();if(!e)return 6;ht.ac.push(e),ht.Vb[t.Ub]=e,e.Ub=t.Ub;var n={cmd:"run",start_routine:t.Ic,arg:t.zc,pthread_ptr:t.Ub};return e.$b=()=>{n.time=performance.now(),e.postMessage(n,t.Nc)},e.loaded&&(e.$b(),delete e.$b),0}function ft(t){if(O)return $t(1,1,t);Q()||(ht.oc(),u.onExit&&u.onExit(t),H=!0),g(t,new ct(t))}function pt(t,e){if(!e&&O)throw bt(t),"unwind";Q()||O||(me(),dt(J),be(0),re[1].length&&ae(1,10),re[2].length&&ae(2,10),ht.oc()),ft(t)}var ht={Yb:[],ac:[],qc:[],Vb:{},fc:function(){O&&ht.Ec()},Pc:function(){},Ec:function(){ht.receiveObjectTransfer=ht.Gc,ht.threadInitTLS=ht.pc,ht.setExitStatus=ht.nc,R=!1},nc:function(){},oc:function(){for(var t of Object.values(ht.Vb))ht.mc(t);for(t of ht.Yb)t.terminate();ht.Yb=[]},mc:function(t){var e=t.Ub;delete ht.Vb[e],ht.Yb.push(t),ht.ac.splice(ht.ac.indexOf(t),1),t.Ub=0,Oe(e)},Gc:function(){},pc:function(){ht.qc.forEach((t=>t()))},Fc:function(t,e){t.onmessage=n=>{var r=(n=n.data).cmd;if(t.Ub&&(ht.Bc=t.Ub),n.targetThread&&n.targetThread!=he()){var a=ht.Vb[n.Qc];a?a.postMessage(n,n.transferList):x(\'Internal error! Worker sent a message "\'+r+\'" to target pthread \'+n.targetThread+", but that thread no longer exists!")}else"processProxyingQueue"===r?zt(n.queue):"spawnThread"===r?lt(n):"cleanupThread"===r?st(n.thread):"killThread"===r?(n=n.thread,r=ht.Vb[n],delete ht.Vb[n],r.terminate(),Oe(n),ht.ac.splice(ht.ac.indexOf(r),1),r.Ub=0):"cancelThread"===r?ht.Vb[n.thread].postMessage({cmd:"cancel"}):"loaded"===r?(t.loaded=!0,e&&e(t),t.$b&&(t.$b(),delete t.$b)):"print"===r?C("Thread "+n.threadId+": "+n.text):"printErr"===r?x("Thread "+n.threadId+": "+n.text):"alert"===r?alert("Thread "+n.threadId+": "+n.text):"setimmediate"===n.target?t.postMessage(n):"onAbort"===r?u.onAbort&&u.onAbort(n.arg):r&&x("worker sent an unknown command "+r);ht.Bc=void 0},t.onerror=t=>{throw x("worker sent an error! "+t.filename+":"+t.lineno+": "+t.message),t},_&&(t.on("message",(function(e){t.onmessage({data:e})})),t.on("error",(function(e){t.onerror(e)})),t.on("detachedExit",(function(){}))),t.postMessage({cmd:"load",urlOrBlob:u.mainScriptUrlOrBlob||_scriptDir,wasmMemory:j,wasmModule:k})},yc:function(){var t=S("ort-wasm-threaded.worker.js");ht.Yb.push(new Worker(t))},Cc:function(){return 0==ht.Yb.length&&(ht.yc(),ht.Fc(ht.Yb[0])),ht.Yb.pop()}};function dt(t){for(;0<t.length;)t.shift()(u)}function yt(t){var e=Ee();return t=t(),Me(e),t}function bt(t){if(O)return $t(2,0,t);try{pt(t)}catch(t){t instanceof ct||"unwind"==t||g(1,t)}}u.PThread=ht,u.establishStackSpace=function(){var t=he(),e=a()[t+44>>2>>>0];t=a()[t+48>>2>>>0],Te(e,e-t),Me(e)};var mt=[];function gt(t){var e=mt[t];return e||(t>=mt.length&&(mt.length=t+1),mt[t]=e=$.get(t)),e}u.invokeEntryPoint=function(t,e){t=gt(t)(e),Q()?ht.nc(t):Ae(t)};var vt,wt,_t=[],Ot=0,At=0;function St(t){this.Zb=t,this.Sb=t-24,this.xc=function(t){i()[this.Sb+4>>2>>>0]=t},this.bc=function(){return i()[this.Sb+4>>2>>>0]},this.wc=function(t){i()[this.Sb+8>>2>>>0]=t},this.Dc=function(){return i()[this.Sb+8>>2>>>0]},this.rc=function(){a()[this.Sb>>2>>>0]=0},this.hc=function(t){t=t?1:0,e()[this.Sb+12>>0>>>0]=t},this.uc=function(){return 0!=e()[this.Sb+12>>0>>>0]},this.ic=function(t){t=t?1:0,e()[this.Sb+13>>0>>>0]=t},this.kc=function(){return 0!=e()[this.Sb+13>>0>>>0]},this.fc=function(t,e){this.cc(0),this.xc(t),this.wc(e),this.rc(),this.hc(!1),this.ic(!1)},this.sc=function(){Atomics.add(a(),this.Sb>>2,1)},this.Hc=function(){return 1===Atomics.sub(a(),this.Sb>>2,1)},this.cc=function(t){i()[this.Sb+16>>2>>>0]=t},this.tc=function(){return i()[this.Sb+16>>2>>>0]},this.vc=function(){if(Re(this.bc()))return i()[this.Zb>>2>>>0];var t=this.tc();return 0!==t?t:this.Zb}}function Tt(t){return ye(new St(t).Sb)}function Et(t,e,n,r){return O?$t(3,1,t,e,n,r):Mt(t,e,n,r)}function Mt(t,e,n,r){if("undefined"==typeof SharedArrayBuffer)return x("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var a=[];return O&&0===a.length?Et(t,e,n,r):(t={Ic:n,Ub:t,zc:r,Nc:a},O?(t.Oc="spawnThread",postMessage(t,a),0):lt(t))}function Ct(t,e,n){return O?$t(4,1,t,e,n):0}function xt(t,e){if(O)return $t(5,1,t,e)}function Rt(t,e){if(O)return $t(6,1,t,e)}function jt(t,e,n){if(O)return $t(7,1,t,e,n)}function kt(t,e,n){return O?$t(8,1,t,e,n):0}function Dt(t,e){if(O)return $t(9,1,t,e)}function Pt(t,e,n){if(O)return $t(10,1,t,e,n)}function Ut(t,e,n,r){if(O)return $t(11,1,t,e,n,r)}function Ft(t,e,n,r){if(O)return $t(12,1,t,e,n,r)}function It(t,e,n,r){if(O)return $t(13,1,t,e,n,r)}function Wt(t){if(O)return $t(14,1,t)}function Ht(t,e){if(O)return $t(15,1,t,e)}function Lt(t,e,n){if(O)return $t(16,1,t,e,n)}function zt(t){Atomics.store(a(),t>>2,1),he()&&_e(t),Atomics.compareExchange(a(),t>>2,1,0)}function Yt(t){return i()[t>>>2]+4294967296*a()[t+4>>>2]}function Bt(t,e,n,r,a,i){return O?$t(17,1,t,e,n,r,a,i):-52}function Gt(t,e,n,r,a,i){if(O)return $t(18,1,t,e,n,r,a,i)}function Nt(t){var n=G(t)+1,r=de(n);return r&&B(t,e(),r,n),r}function Vt(t,e,n){function r(t){return(t=t.toTimeString().match(/\\(([A-Za-z ]+)\\)$/))?t[1]:"GMT"}if(O)return $t(19,1,t,e,n);var o=(new Date).getFullYear(),u=new Date(o,0,1),c=new Date(o,6,1);o=u.getTimezoneOffset();var s=c.getTimezoneOffset(),l=Math.max(o,s);a()[t>>2>>>0]=60*l,a()[e>>2>>>0]=Number(o!=s),t=r(u),e=r(c),t=Nt(t),e=Nt(e),s<o?(i()[n>>2>>>0]=t,i()[n+4>>2>>>0]=e):(i()[n>>2>>>0]=e,i()[n+4>>2>>>0]=t)}function $t(t,e){var n=arguments.length-2,r=arguments;return yt((()=>{for(var a=Ce(8*n),i=a>>3,u=0;u<n;u++){var c=r[2+u];o()[i+u>>>0]=c}return we(t,n,a,e)}))}u.executeNotifiedProxyingQueue=zt,wt=_?()=>{var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:O?()=>performance.now()-u.__performance_now_clock_drift:()=>performance.now();var qt,Xt=[],Jt={};function Zt(){if(!qt){var t,e={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",_:m||"./this.program"};for(t in Jt)void 0===Jt[t]?delete e[t]:e[t]=Jt[t];var n=[];for(t in e)n.push(t+"="+e[t]);qt=n}return qt}function Qt(t,n){if(O)return $t(20,1,t,n);var r=0;return Zt().forEach((function(a,o){var u=n+r;for(o=i()[t+4*o>>2>>>0]=u,u=0;u<a.length;++u)e()[o++>>0>>>0]=a.charCodeAt(u);e()[o>>0>>>0]=0,r+=a.length+1})),0}function Kt(t,e){if(O)return $t(21,1,t,e);var n=Zt();i()[t>>2>>>0]=n.length;var r=0;return n.forEach((function(t){r+=t.length+1})),i()[e>>2>>>0]=r,0}function te(t){return O?$t(22,1,t):52}function ee(t,e,n,r){return O?$t(23,1,t,e,n,r):52}function ne(t,e,n,r,a){return O?$t(24,1,t,e,n,r,a):70}var re=[null,[],[]];function ae(t,e){var n=re[t];0===e||10===e?((1===t?C:x)(z(n,0)),n.length=0):n.push(e)}function ie(t,e,n,a){if(O)return $t(25,1,t,e,n,a);for(var o=0,u=0;u<n;u++){var c=i()[e>>2>>>0],s=i()[e+4>>2>>>0];e+=8;for(var l=0;l<s;l++)ae(t,r()[c+l>>>0]);o+=s}return i()[a>>2>>>0]=o,0}var oe=0;function ue(t){return 0==t%4&&(0!=t%100||0==t%400)}var ce=[31,29,31,30,31,30,31,31,30,31,30,31],se=[31,28,31,30,31,30,31,31,30,31,30,31];function le(t,n,r,i){function o(t,e,n){for(t="number"==typeof t?t.toString():t||"";t.length<e;)t=n[0]+t;return t}function u(t,e){return o(t,e,"0")}function c(t,e){function n(t){return 0>t?-1:0<t?1:0}var r;return 0===(r=n(t.getFullYear()-e.getFullYear()))&&0===(r=n(t.getMonth()-e.getMonth()))&&(r=n(t.getDate()-e.getDate())),r}function s(t){switch(t.getDay()){case 0:return new Date(t.getFullYear()-1,11,29);case 1:return t;case 2:return new Date(t.getFullYear(),0,3);case 3:return new Date(t.getFullYear(),0,2);case 4:return new Date(t.getFullYear(),0,1);case 5:return new Date(t.getFullYear()-1,11,31);case 6:return new Date(t.getFullYear()-1,11,30)}}function l(t){var e=t.Wb;for(t=new Date(new Date(t.Xb+1900,0,1).getTime());0<e;){var n=t.getMonth(),r=(ue(t.getFullYear())?ce:se)[n];if(!(e>r-t.getDate())){t.setDate(t.getDate()+e);break}e-=r-t.getDate()+1,t.setDate(1),11>n?t.setMonth(n+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return n=new Date(t.getFullYear()+1,0,4),e=s(new Date(t.getFullYear(),0,4)),n=s(n),0>=c(e,t)?0>=c(n,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var f=a()[i+40>>2>>>0];for(var p in i={Lc:a()[i>>2>>>0],Kc:a()[i+4>>2>>>0],dc:a()[i+8>>2>>>0],jc:a()[i+12>>2>>>0],ec:a()[i+16>>2>>>0],Xb:a()[i+20>>2>>>0],Tb:a()[i+24>>2>>>0],Wb:a()[i+28>>2>>>0],Rc:a()[i+32>>2>>>0],Jc:a()[i+36>>2>>>0],Mc:f?Y(f):""},r=Y(r),f={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})r=r.replace(new RegExp(p,"g"),f[p]);var h="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),d="January February March April May June July August September October November December".split(" ");for(p in f={"%a":function(t){return h[t.Tb].substring(0,3)},"%A":function(t){return h[t.Tb]},"%b":function(t){return d[t.ec].substring(0,3)},"%B":function(t){return d[t.ec]},"%C":function(t){return u((t.Xb+1900)/100|0,2)},"%d":function(t){return u(t.jc,2)},"%e":function(t){return o(t.jc,2," ")},"%g":function(t){return l(t).toString().substring(2)},"%G":function(t){return l(t)},"%H":function(t){return u(t.dc,2)},"%I":function(t){return 0==(t=t.dc)?t=12:12<t&&(t-=12),u(t,2)},"%j":function(t){for(var e=0,n=0;n<=t.ec-1;e+=(ue(t.Xb+1900)?ce:se)[n++]);return u(t.jc+e,3)},"%m":function(t){return u(t.ec+1,2)},"%M":function(t){return u(t.Kc,2)},"%n":function(){return"\\n"},"%p":function(t){return 0<=t.dc&&12>t.dc?"AM":"PM"},"%S":function(t){return u(t.Lc,2)},"%t":function(){return"\\t"},"%u":function(t){return t.Tb||7},"%U":function(t){return u(Math.floor((t.Wb+7-t.Tb)/7),2)},"%V":function(t){var e=Math.floor((t.Wb+7-(t.Tb+6)%7)/7);if(2>=(t.Tb+371-t.Wb-2)%7&&e++,e)53==e&&(4==(n=(t.Tb+371-t.Wb)%7)||3==n&&ue(t.Xb)||(e=1));else{e=52;var n=(t.Tb+7-t.Wb-1)%7;(4==n||5==n&&ue(t.Xb%400-1))&&e++}return u(e,2)},"%w":function(t){return t.Tb},"%W":function(t){return u(Math.floor((t.Wb+7-(t.Tb+6)%7)/7),2)},"%y":function(t){return(t.Xb+1900).toString().substring(2)},"%Y":function(t){return t.Xb+1900},"%z":function(t){var e=0<=(t=t.Jc);return t=Math.abs(t)/60,(e?"+":"-")+String("0000"+(t/60*100+t%60)).slice(-4)},"%Z":function(t){return t.Mc},"%%":function(){return"%"}},r=r.replace(/%%/g,"\\0\\0"),f)r.includes(p)&&(r=r.replace(new RegExp(p,"g"),f[p](i)));return p=function(t){var e=Array(G(t)+1);return B(t,e,0,e.length),e}(r=r.replace(/\\0\\0/g,"%")),p.length>n?0:(function(t,n){e().set(t,n>>>0)}(p,t),p.length-1)}ht.fc();var fe=[null,ft,bt,Et,Ct,xt,Rt,jt,kt,Dt,Pt,Ut,Ft,It,Wt,Ht,Lt,Bt,Gt,Vt,Qt,Kt,te,ee,ne,ie],pe={b:function(t){return de(t+24)+24},n:function(t){return(t=new St(t)).uc()||(t.hc(!0),Ot--),t.ic(!1),_t.push(t),t.sc(),t.vc()},ma:function(t){throw x("Unexpected exception thrown, this is not properly supported - aborting"),H=!0,t},x:function(){Se(0);var t=_t.pop();if(t.Hc()&&!t.kc()){var e=t.Dc();e&>(e)(t.Zb),Tt(t.Zb)}At=0},e:function(){var t=At;if(!t)return oe=0;var e=new St(t);e.cc(t);var n=e.bc();if(!n)return oe=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(xe(i,n,e.Sb+16))return oe=i,t}return oe=n,t},l:function(){var t=At;if(!t)return oe=0;var e=new St(t);e.cc(t);var n=e.bc();if(!n)return oe=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(xe(i,n,e.Sb+16))return oe=i,t}return oe=n,t},h:function(){var t=At;if(!t)return oe=0;var e=new St(t);e.cc(t);var n=e.bc();if(!n)return oe=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(xe(i,n,e.Sb+16))return oe=i,t}return oe=n,t},t:Tt,M:function(){var t=_t.pop();t||at("no exception to throw");var e=t.Zb;throw t.kc()||(_t.push(t),t.ic(!0),t.hc(!1),Ot++),At=e,e},c:function(t,e,n){throw new St(t).fc(e,n),At=t,Ot++,t},pa:function(){return Ot},Fa:function(t){ge(t,!w,1,!v),ht.pc()},T:function(t){O?postMessage({cmd:"cleanupThread",thread:t}):st(t)},xa:Mt,j:function(t){throw At||(At=t),t},H:Ct,Ma:xt,ua:Rt,wa:jt,oa:kt,Ka:Dt,Ca:Pt,Ja:Ut,V:Ft,va:It,sa:Wt,La:Ht,ta:Lt,Ta:function(){},X:function(){at("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},Ua:function(){at("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},W:function(){return Date.now()},ya:function(){return 2097152},Oa:function(){return!0},za:function(t,e,n,r){if(t==e)setTimeout((()=>zt(r)));else if(O)postMessage({targetThread:t,cmd:"processProxyingQueue",queue:r});else{if(!(t=ht.Vb[t]))return;t.postMessage({cmd:"processProxyingQueue",queue:r})}return 1},Ea:function(){return-1},Pa:function(t,e){t=new Date(1e3*Yt(t)),a()[e>>2>>>0]=t.getUTCSeconds(),a()[e+4>>2>>>0]=t.getUTCMinutes(),a()[e+8>>2>>>0]=t.getUTCHours(),a()[e+12>>2>>>0]=t.getUTCDate(),a()[e+16>>2>>>0]=t.getUTCMonth(),a()[e+20>>2>>>0]=t.getUTCFullYear()-1900,a()[e+24>>2>>>0]=t.getUTCDay(),t=(t.getTime()-Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,a()[e+28>>2>>>0]=t},Qa:function(t,e){t=new Date(1e3*Yt(t)),a()[e>>2>>>0]=t.getSeconds(),a()[e+4>>2>>>0]=t.getMinutes(),a()[e+8>>2>>>0]=t.getHours(),a()[e+12>>2>>>0]=t.getDate(),a()[e+16>>2>>>0]=t.getMonth(),a()[e+20>>2>>>0]=t.getFullYear()-1900,a()[e+24>>2>>>0]=t.getDay();var n=new Date(t.getFullYear(),0,1),r=(t.getTime()-n.getTime())/864e5|0;a()[e+28>>2>>>0]=r,a()[e+36>>2>>>0]=-60*t.getTimezoneOffset(),r=new Date(t.getFullYear(),6,1).getTimezoneOffset(),t=0|(r!=(n=n.getTimezoneOffset())&&t.getTimezoneOffset()==Math.min(n,r)),a()[e+32>>2>>>0]=t},Ra:function(t){var e=new Date(a()[t+20>>2>>>0]+1900,a()[t+16>>2>>>0],a()[t+12>>2>>>0],a()[t+8>>2>>>0],a()[t+4>>2>>>0],a()[t>>2>>>0],0),n=a()[t+32>>2>>>0],r=e.getTimezoneOffset(),i=new Date(e.getFullYear(),0,1),o=new Date(e.getFullYear(),6,1).getTimezoneOffset(),u=i.getTimezoneOffset(),c=Math.min(u,o);return 0>n?a()[t+32>>2>>>0]=Number(o!=u&&c==r):0<n!=(c==r)&&(o=Math.max(u,o),e.setTime(e.getTime()+6e4*((0<n?c:o)-r))),a()[t+24>>2>>>0]=e.getDay(),n=(e.getTime()-i.getTime())/864e5|0,a()[t+28>>2>>>0]=n,a()[t>>2>>>0]=e.getSeconds(),a()[t+4>>2>>>0]=e.getMinutes(),a()[t+8>>2>>>0]=e.getHours(),a()[t+12>>2>>>0]=e.getDate(),a()[t+16>>2>>>0]=e.getMonth(),e.getTime()/1e3|0},Aa:Bt,Ba:Gt,Sa:function t(e,n,r){t.Ac||(t.Ac=!0,Vt(e,n,r))},y:function(){at("")},U:function(){if(!_&&!w){var t="Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread";vt||(vt={}),vt[t]||(vt[t]=1,_&&(t="warning: "+t),x(t))}},ra:function(){return 4294901760},B:wt,Ia:function(t,e,n){r().copyWithin(t>>>0,e>>>0,e+n>>>0)},F:function(){return _?n(993).cpus().length:navigator.hardwareConcurrency},Da:function(t,e,n){Xt.length=e,n>>=3;for(var r=0;r<e;r++)Xt[r]=o()[n+r>>>0];return(0>t?ut[-t-1]:fe[t]).apply(null,Xt)},qa:function(t){var e=r().length;if((t>>>=0)<=e||4294901760<t)return!1;for(var n=1;4>=n;n*=2){var a=e*(1+.2/n);a=Math.min(a,t+100663296);var i=Math;a=Math.max(t,a),i=i.min.call(i,4294901760,a+(65536-a%65536)%65536);t:{try{j.grow(i-D.byteLength+65535>>>16),N(j.buffer);var o=1;break t}catch(t){}o=void 0}if(o)return!0}return!1},Na:function(){throw"unwind"},Ga:Qt,Ha:Kt,J:pt,I:te,S:ee,ga:ne,R:ie,d:function(){return oe},na:function t(r,a){t.lc||(t.lc=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);return()=>(crypto.getRandomValues(t),t[0])}if(_)try{var e=n(Object(function(){var t=new Error("Cannot find module \'crypto\'");throw t.code="MODULE_NOT_FOUND",t}()));return()=>e.randomBytes(1)[0]}catch(t){}return()=>at("randomDevice")}());for(var i=0;i<a;i++)e()[r+i>>0>>>0]=t.lc();return 0},ia:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},ja:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},K:function(t){var e=Ee();try{return gt(t)()}catch(t){if(Me(e),t!==t+0)throw t;Se(1,0)}},f:function(t,e){var n=Ee();try{return gt(t)(e)}catch(t){if(Me(n),t!==t+0)throw t;Se(1,0)}},P:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},Q:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},k:function(t,e,n){var r=Ee();try{return gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},p:function(t,e,n,r){var a=Ee();try{return gt(t)(e,n,r)}catch(t){if(Me(a),t!==t+0)throw t;Se(1,0)}},q:function(t,e,n,r,a){var i=Ee();try{return gt(t)(e,n,r,a)}catch(t){if(Me(i),t!==t+0)throw t;Se(1,0)}},N:function(t,e,n,r,a,i){var o=Ee();try{return gt(t)(e,n,r,a,i)}catch(t){if(Me(o),t!==t+0)throw t;Se(1,0)}},s:function(t,e,n,r,a,i){var o=Ee();try{return gt(t)(e,n,r,a,i)}catch(t){if(Me(o),t!==t+0)throw t;Se(1,0)}},w:function(t,e,n,r,a,i,o){var u=Ee();try{return gt(t)(e,n,r,a,i,o)}catch(t){if(Me(u),t!==t+0)throw t;Se(1,0)}},L:function(t,e,n,r,a,i,o,u){var c=Ee();try{return gt(t)(e,n,r,a,i,o,u)}catch(t){if(Me(c),t!==t+0)throw t;Se(1,0)}},E:function(t,e,n,r,a,i,o,u,c,s,l,f){var p=Ee();try{return gt(t)(e,n,r,a,i,o,u,c,s,l,f)}catch(t){if(Me(p),t!==t+0)throw t;Se(1,0)}},aa:function(t,e,n,r,a,i,o,u){var c=Ee();try{return He(t,e,n,r,a,i,o,u)}catch(t){if(Me(c),t!==t+0)throw t;Se(1,0)}},_:function(t,e,n,r,a,i,o){var u=Ee();try{return ke(t,e,n,r,a,i,o)}catch(t){if(Me(u),t!==t+0)throw t;Se(1,0)}},Z:function(t,e,n,r,a){var i=Ee();try{return Le(t,e,n,r,a)}catch(t){if(Me(i),t!==t+0)throw t;Se(1,0)}},ca:function(t,e,n,r){var a=Ee();try{return Ie(t,e,n,r)}catch(t){if(Me(a),t!==t+0)throw t;Se(1,0)}},$:function(t){var e=Ee();try{return je(t)}catch(t){if(Me(e),t!==t+0)throw t;Se(1,0)}},ba:function(t,e){var n=Ee();try{return We(t,e)}catch(t){if(Me(n),t!==t+0)throw t;Se(1,0)}},Y:function(t,e,n){var r=Ee();try{return De(t,e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},g:function(t){var e=Ee();try{gt(t)()}catch(t){if(Me(e),t!==t+0)throw t;Se(1,0)}},r:function(t,e){var n=Ee();try{gt(t)(e)}catch(t){if(Me(n),t!==t+0)throw t;Se(1,0)}},i:function(t,e,n){var r=Ee();try{gt(t)(e,n)}catch(t){if(Me(r),t!==t+0)throw t;Se(1,0)}},ha:function(t,e,n,r){var a=Ee();try{gt(t)(e,n,r)}catch(t){if(Me(a),t!==t+0)throw t;Se(1,0)}},m:function(t,e,n,r){var a=Ee();try{gt(t)(e,n,r)}catch(t){if(Me(a),t!==t+0)throw t;Se(1,0)}},v:function(t,e,n,r,a){var i=Ee();try{gt(t)(e,n,r,a)}catch(t){if(Me(i),t!==t+0)throw t;Se(1,0)}},u:function(t,e,n,r,a,i){var o=Ee();try{gt(t)(e,n,r,a,i)}catch(t){if(Me(o),t!==t+0)throw t;Se(1,0)}},O:function(t,e,n,r,a,i,o){var u=Ee();try{gt(t)(e,n,r,a,i,o)}catch(t){if(Me(u),t!==t+0)throw t;Se(1,0)}},A:function(t,e,n,r,a,i,o,u){var c=Ee();try{gt(t)(e,n,r,a,i,o,u)}catch(t){if(Me(c),t!==t+0)throw t;Se(1,0)}},ka:function(t,e,n,r,a,i,o,u,c){var s=Ee();try{gt(t)(e,n,r,a,i,o,u,c)}catch(t){if(Me(s),t!==t+0)throw t;Se(1,0)}},C:function(t,e,n,r,a,i,o,u,c,s,l){var f=Ee();try{gt(t)(e,n,r,a,i,o,u,c,s,l)}catch(t){if(Me(f),t!==t+0)throw t;Se(1,0)}},D:function(t,e,n,r,a,i,o,u,c,s,l,f,p,h,d,y){var b=Ee();try{gt(t)(e,n,r,a,i,o,u,c,s,l,f,p,h,d,y)}catch(t){if(Me(b),t!==t+0)throw t;Se(1,0)}},fa:function(t,e,n,r,a,i,o,u){var c=Ee();try{Pe(t,e,n,r,a,i,o,u)}catch(t){if(Me(c),t!==t+0)throw t;Se(1,0)}},da:function(t,e,n,r,a,i,o,u,c,s,l,f){var p=Ee();try{Fe(t,e,n,r,a,i,o,u,c,s,l,f)}catch(t){if(Me(p),t!==t+0)throw t;Se(1,0)}},ea:function(t,e,n,r,a,i){var o=Ee();try{Ue(t,e,n,r,a,i)}catch(t){if(Me(o),t!==t+0)throw t;Se(1,0)}},o:function(t){return t},a:j||u.wasmMemory,G:function(t){oe=t},la:le,z:function(t,e,n,r){return le(t,e,n,r)}};!function(){function t(t,e){u.asm=t.exports,ht.qc.push(u.asm.sb),$=u.asm.ub,X.unshift(u.asm.Va),k=e,O||(et--,u.monitorRunDependencies&&u.monitorRunDependencies(et),0==et&&(null!==nt&&(clearInterval(nt),nt=null),rt&&(t=rt,rt=null,t())))}function e(e){t(e.instance,e.module)}function n(t){return function(){if(!M&&(v||w)){if("function"==typeof fetch&&!tt.startsWith("file://"))return fetch(tt,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at \'"+tt+"\'";return t.arrayBuffer()})).catch((function(){return ot()}));if(f)return new Promise((function(t,e){f(tt,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return ot()}))}().then((function(t){return WebAssembly.instantiate(t,r)})).then((function(t){return t})).then(t,(function(t){x("failed to asynchronously prepare wasm: "+t),at(t)}))}var r={a:pe};if(O||(et++,u.monitorRunDependencies&&u.monitorRunDependencies(et)),u.instantiateWasm)try{return u.instantiateWasm(r,t)}catch(t){return x("Module.instantiateWasm callback failed with error: "+t),!1}(M||"function"!=typeof WebAssembly.instantiateStreaming||it()||tt.startsWith("file://")||_||"function"!=typeof fetch?n(e):fetch(tt,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,r).then(e,(function(t){return x("wasm streaming compile failed: "+t),x("falling back to ArrayBuffer instantiation"),n(e)}))}))).catch(s)}(),u.___wasm_call_ctors=function(){return(u.___wasm_call_ctors=u.asm.Va).apply(null,arguments)},u._OrtInit=function(){return(u._OrtInit=u.asm.Wa).apply(null,arguments)},u._OrtCreateSessionOptions=function(){return(u._OrtCreateSessionOptions=u.asm.Xa).apply(null,arguments)},u._OrtAppendExecutionProvider=function(){return(u._OrtAppendExecutionProvider=u.asm.Ya).apply(null,arguments)},u._OrtAddSessionConfigEntry=function(){return(u._OrtAddSessionConfigEntry=u.asm.Za).apply(null,arguments)},u._OrtReleaseSessionOptions=function(){return(u._OrtReleaseSessionOptions=u.asm._a).apply(null,arguments)},u._OrtCreateSession=function(){return(u._OrtCreateSession=u.asm.$a).apply(null,arguments)},u._OrtReleaseSession=function(){return(u._OrtReleaseSession=u.asm.ab).apply(null,arguments)},u._OrtGetInputCount=function(){return(u._OrtGetInputCount=u.asm.bb).apply(null,arguments)},u._OrtGetOutputCount=function(){return(u._OrtGetOutputCount=u.asm.cb).apply(null,arguments)},u._OrtGetInputName=function(){return(u._OrtGetInputName=u.asm.db).apply(null,arguments)},u._OrtGetOutputName=function(){return(u._OrtGetOutputName=u.asm.eb).apply(null,arguments)},u._OrtFree=function(){return(u._OrtFree=u.asm.fb).apply(null,arguments)},u._OrtCreateTensor=function(){return(u._OrtCreateTensor=u.asm.gb).apply(null,arguments)},u._OrtGetTensorData=function(){return(u._OrtGetTensorData=u.asm.hb).apply(null,arguments)},u._OrtReleaseTensor=function(){return(u._OrtReleaseTensor=u.asm.ib).apply(null,arguments)},u._OrtCreateRunOptions=function(){return(u._OrtCreateRunOptions=u.asm.jb).apply(null,arguments)},u._OrtAddRunConfigEntry=function(){return(u._OrtAddRunConfigEntry=u.asm.kb).apply(null,arguments)},u._OrtReleaseRunOptions=function(){return(u._OrtReleaseRunOptions=u.asm.lb).apply(null,arguments)},u._OrtRun=function(){return(u._OrtRun=u.asm.mb).apply(null,arguments)},u._OrtEndProfiling=function(){return(u._OrtEndProfiling=u.asm.nb).apply(null,arguments)};var he=u._pthread_self=function(){return(he=u._pthread_self=u.asm.ob).apply(null,arguments)},de=u._malloc=function(){return(de=u._malloc=u.asm.pb).apply(null,arguments)},ye=u._free=function(){return(ye=u._free=u.asm.qb).apply(null,arguments)},be=u._fflush=function(){return(be=u._fflush=u.asm.rb).apply(null,arguments)};u.__emscripten_tls_init=function(){return(u.__emscripten_tls_init=u.asm.sb).apply(null,arguments)};var me=u.___funcs_on_exit=function(){return(me=u.___funcs_on_exit=u.asm.tb).apply(null,arguments)},ge=u.__emscripten_thread_init=function(){return(ge=u.__emscripten_thread_init=u.asm.vb).apply(null,arguments)};u.__emscripten_thread_crashed=function(){return(u.__emscripten_thread_crashed=u.asm.wb).apply(null,arguments)};var ve,we=u._emscripten_run_in_main_runtime_thread_js=function(){return(we=u._emscripten_run_in_main_runtime_thread_js=u.asm.xb).apply(null,arguments)},_e=u.__emscripten_proxy_execute_task_queue=function(){return(_e=u.__emscripten_proxy_execute_task_queue=u.asm.yb).apply(null,arguments)},Oe=u.__emscripten_thread_free_data=function(){return(Oe=u.__emscripten_thread_free_data=u.asm.zb).apply(null,arguments)},Ae=u.__emscripten_thread_exit=function(){return(Ae=u.__emscripten_thread_exit=u.asm.Ab).apply(null,arguments)},Se=u._setThrew=function(){return(Se=u._setThrew=u.asm.Bb).apply(null,arguments)},Te=u._emscripten_stack_set_limits=function(){return(Te=u._emscripten_stack_set_limits=u.asm.Cb).apply(null,arguments)},Ee=u.stackSave=function(){return(Ee=u.stackSave=u.asm.Db).apply(null,arguments)},Me=u.stackRestore=function(){return(Me=u.stackRestore=u.asm.Eb).apply(null,arguments)},Ce=u.stackAlloc=function(){return(Ce=u.stackAlloc=u.asm.Fb).apply(null,arguments)},xe=u.___cxa_can_catch=function(){return(xe=u.___cxa_can_catch=u.asm.Gb).apply(null,arguments)},Re=u.___cxa_is_pointer_type=function(){return(Re=u.___cxa_is_pointer_type=u.asm.Hb).apply(null,arguments)},je=u.dynCall_j=function(){return(je=u.dynCall_j=u.asm.Ib).apply(null,arguments)},ke=u.dynCall_iiiiij=function(){return(ke=u.dynCall_iiiiij=u.asm.Jb).apply(null,arguments)},De=u.dynCall_jii=function(){return(De=u.dynCall_jii=u.asm.Kb).apply(null,arguments)},Pe=u.dynCall_viiiiij=function(){return(Pe=u.dynCall_viiiiij=u.asm.Lb).apply(null,arguments)},Ue=u.dynCall_vjji=function(){return(Ue=u.dynCall_vjji=u.asm.Mb).apply(null,arguments)},Fe=u.dynCall_viiijjjii=function(){return(Fe=u.dynCall_viiijjjii=u.asm.Nb).apply(null,arguments)},Ie=u.dynCall_iij=function(){return(Ie=u.dynCall_iij=u.asm.Ob).apply(null,arguments)},We=u.dynCall_ji=function(){return(We=u.dynCall_ji=u.asm.Pb).apply(null,arguments)},He=u.dynCall_iiiiiij=function(){return(He=u.dynCall_iiiiiij=u.asm.Qb).apply(null,arguments)},Le=u.dynCall_iiij=function(){return(Le=u.dynCall_iiij=u.asm.Rb).apply(null,arguments)};function ze(){function t(){if(!ve&&(ve=!0,u.calledRun=!0,!H)&&(O||dt(X),c(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),!O)){if(u.postRun)for("function"==typeof u.postRun&&(u.postRun=[u.postRun]);u.postRun.length;){var t=u.postRun.shift();Z.unshift(t)}dt(Z)}}if(!(0<et))if(O)c(u),O||dt(X),postMessage({cmd:"loaded"});else{if(u.preRun)for("function"==typeof u.preRun&&(u.preRun=[u.preRun]);u.preRun.length;)K();dt(q),0<et||(u.setStatus?(u.setStatus("Running..."),setTimeout((function(){setTimeout((function(){u.setStatus("")}),1),t()}),1)):t())}}if(u.UTF8ToString=Y,u.stringToUTF8=function(t,e,n){return B(t,r(),e,n)},u.lengthBytesUTF8=G,u.keepRuntimeAlive=Q,u.wasmMemory=j,u.stackSave=Ee,u.stackRestore=Me,u.stackAlloc=Ce,u.ExitStatus=ct,u.PThread=ht,rt=function t(){ve||ze(),ve||(rt=t)},u.preInit)for("function"==typeof u.preInit&&(u.preInit=[u.preInit]);0<u.preInit.length;)u.preInit.pop()();return ze(),t.ready});t.exports=r},932:(t,e,n)=>{var _scriptDir,r=(_scriptDir=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(t){var e,r,a;t=t||{},e||(e=void 0!==t?t:{}),e.ready=new Promise((function(t,e){r=t,a=e}));var i,o,u,c,s,l,f=Object.assign({},e),p="./this.program",h=(t,e)=>{throw e},d="object"==typeof window,y="function"==typeof importScripts,b="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,m="";b?(m=y?n(908).dirname(m)+"/":"//",l=()=>{s||(c=n(384),s=n(908))},i=function(t,e){return l(),t=s.normalize(t),c.readFileSync(t,e?void 0:"utf8")},u=t=>((t=i(t,!0)).buffer||(t=new Uint8Array(t)),t),o=(t,e,n)=>{l(),t=s.normalize(t),c.readFile(t,(function(t,r){t?n(t):e(r.buffer)}))},1<process.argv.length&&(p=process.argv[1].replace(/\\\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(t){if(!(t instanceof J))throw t})),process.on("unhandledRejection",(function(t){throw t})),h=(t,e)=>{if(_||0<L)throw process.exitCode=t,e;e instanceof J||w("exiting due to exception: "+e),process.exit(t)},e.inspect=function(){return"[Emscripten Module object]"}):(d||y)&&(y?m=self.location.href:"undefined"!=typeof document&&document.currentScript&&(m=document.currentScript.src),_scriptDir&&(m=_scriptDir),m=0!==m.indexOf("blob:")?m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):"",i=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},y&&(u=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),o=(t,e,n)=>{var r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=()=>{200==r.status||0==r.status&&r.response?e(r.response):n()},r.onerror=n,r.send(null)});var g,v=e.print||console.log.bind(console),w=e.printErr||console.warn.bind(console);Object.assign(e,f),f=null,e.thisProgram&&(p=e.thisProgram),e.quit&&(h=e.quit),e.wasmBinary&&(g=e.wasmBinary);var _=e.noExitRuntime||!1;"object"!=typeof WebAssembly&&V("no native wasm support detected");var O,A,S,T,E,M,C=!1,x="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function R(t,e,n){var r=(e>>>=0)+n;for(n=e;t[n]&&!(n>=r);)++n;if(16<n-e&&t.buffer&&x)return x.decode(t.subarray(e,n));for(r="";e<n;){var a=t[e++];if(128&a){var i=63&t[e++];if(192==(224&a))r+=String.fromCharCode((31&a)<<6|i);else{var o=63&t[e++];65536>(a=224==(240&a)?(15&a)<<12|i<<6|o:(7&a)<<18|i<<12|o<<6|63&t[e++])?r+=String.fromCharCode(a):(a-=65536,r+=String.fromCharCode(55296|a>>10,56320|1023&a))}}else r+=String.fromCharCode(a)}return r}function j(t,e){return(t>>>=0)?R(T,t,e):""}function k(t,e,n,r){if(!(0<r))return 0;var a=n>>>=0;r=n+r-1;for(var i=0;i<t.length;++i){var o=t.charCodeAt(i);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++i)),127>=o){if(n>=r)break;e[n++>>>0]=o}else{if(2047>=o){if(n+1>=r)break;e[n++>>>0]=192|o>>6}else{if(65535>=o){if(n+2>=r)break;e[n++>>>0]=224|o>>12}else{if(n+3>=r)break;e[n++>>>0]=240|o>>18,e[n++>>>0]=128|o>>12&63}e[n++>>>0]=128|o>>6&63}e[n++>>>0]=128|63&o}}return e[n>>>0]=0,n-a}function D(t){for(var e=0,n=0;n<t.length;++n){var r=t.charCodeAt(n);127>=r?e++:2047>=r?e+=2:55296<=r&&57343>=r?(e+=4,++n):e+=3}return e}function P(){var t=O.buffer;A=t,e.HEAP8=S=new Int8Array(t),e.HEAP16=new Int16Array(t),e.HEAP32=E=new Int32Array(t),e.HEAPU8=T=new Uint8Array(t),e.HEAPU16=new Uint16Array(t),e.HEAPU32=M=new Uint32Array(t),e.HEAPF32=new Float32Array(t),e.HEAPF64=new Float64Array(t)}var U,F=[],I=[],W=[],H=[],L=0;function z(){var t=e.preRun.shift();F.unshift(t)}var Y,B=0,G=null,N=null;function V(t){throw e.onAbort&&e.onAbort(t),w(t="Aborted("+t+")"),C=!0,t=new WebAssembly.RuntimeError(t+". Build with -sASSERTIONS for more info."),a(t),t}function $(){return Y.startsWith("data:application/octet-stream;base64,")}if(Y="ort-wasm.wasm",!$()){var q=Y;Y=e.locateFile?e.locateFile(q,m):m+q}function X(){var t=Y;try{if(t==Y&&g)return new Uint8Array(g);if(u)return u(t);throw"both async and sync fetching of the wasm failed"}catch(t){V(t)}}function J(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function Z(t){for(;0<t.length;)t.shift()(e)}var Q=[],K=0,tt=0;function et(t){this.Db=t,this.zb=t-24,this.Ub=function(t){M[this.zb+4>>2>>>0]=t},this.Eb=function(){return M[this.zb+4>>2>>>0]},this.Sb=function(t){M[this.zb+8>>2>>>0]=t},this.Wb=function(){return M[this.zb+8>>2>>>0]},this.Tb=function(){E[this.zb>>2>>>0]=0},this.Ib=function(t){S[this.zb+12>>0>>>0]=t?1:0},this.Pb=function(){return 0!=S[this.zb+12>>0>>>0]},this.Jb=function(t){S[this.zb+13>>0>>>0]=t?1:0},this.Lb=function(){return 0!=S[this.zb+13>>0>>>0]},this.Rb=function(t,e){this.Fb(0),this.Ub(t),this.Sb(e),this.Tb(),this.Ib(!1),this.Jb(!1)},this.Nb=function(){E[this.zb>>2>>>0]+=1},this.Xb=function(){var t=E[this.zb>>2>>>0];return E[this.zb>>2>>>0]=t-1,1===t},this.Fb=function(t){M[this.zb+16>>2>>>0]=t},this.Ob=function(){return M[this.zb+16>>2>>>0]},this.Qb=function(){if(Mt(this.Eb()))return M[this.Db>>2>>>0];var t=this.Ob();return 0!==t?t:this.Db}}function nt(t){return vt(new et(t).zb)}var rt=[];function at(t){var e=rt[t];return e||(t>=rt.length&&(rt.length=t+1),rt[t]=e=U.get(t)),e}function it(t){var e=D(t)+1,n=gt(e);return n&&k(t,S,n,e),n}var ot={};function ut(){if(!ct){var t,e={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",_:p||"./this.program"};for(t in ot)void 0===ot[t]?delete e[t]:e[t]=ot[t];var n=[];for(t in e)n.push(t+"="+e[t]);ct=n}return ct}var ct,st=[null,[],[]];function lt(t,e){var n=st[t];0===e||10===e?((1===t?v:w)(R(n,0)),n.length=0):n.push(e)}var ft=0;function pt(t){return 0==t%4&&(0!=t%100||0==t%400)}var ht=[31,29,31,30,31,30,31,31,30,31,30,31],dt=[31,28,31,30,31,30,31,31,30,31,30,31];function yt(t,e,n,r){function a(t,e,n){for(t="number"==typeof t?t.toString():t||"";t.length<e;)t=n[0]+t;return t}function i(t,e){return a(t,e,"0")}function o(t,e){function n(t){return 0>t?-1:0<t?1:0}var r;return 0===(r=n(t.getFullYear()-e.getFullYear()))&&0===(r=n(t.getMonth()-e.getMonth()))&&(r=n(t.getDate()-e.getDate())),r}function u(t){switch(t.getDay()){case 0:return new Date(t.getFullYear()-1,11,29);case 1:return t;case 2:return new Date(t.getFullYear(),0,3);case 3:return new Date(t.getFullYear(),0,2);case 4:return new Date(t.getFullYear(),0,1);case 5:return new Date(t.getFullYear()-1,11,31);case 6:return new Date(t.getFullYear()-1,11,30)}}function c(t){var e=t.Bb;for(t=new Date(new Date(t.Cb+1900,0,1).getTime());0<e;){var n=t.getMonth(),r=(pt(t.getFullYear())?ht:dt)[n];if(!(e>r-t.getDate())){t.setDate(t.getDate()+e);break}e-=r-t.getDate()+1,t.setDate(1),11>n?t.setMonth(n+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return n=new Date(t.getFullYear()+1,0,4),e=u(new Date(t.getFullYear(),0,4)),n=u(n),0>=o(e,t)?0>=o(n,t)?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var s=E[r+40>>2>>>0];for(var l in r={$b:E[r>>2>>>0],Zb:E[r+4>>2>>>0],Gb:E[r+8>>2>>>0],Kb:E[r+12>>2>>>0],Hb:E[r+16>>2>>>0],Cb:E[r+20>>2>>>0],Ab:E[r+24>>2>>>0],Bb:E[r+28>>2>>>0],bc:E[r+32>>2>>>0],Yb:E[r+36>>2>>>0],ac:s?j(s):""},n=j(n),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})n=n.replace(new RegExp(l,"g"),s[l]);var f="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),p="January February March April May June July August September October November December".split(" ");for(l in s={"%a":function(t){return f[t.Ab].substring(0,3)},"%A":function(t){return f[t.Ab]},"%b":function(t){return p[t.Hb].substring(0,3)},"%B":function(t){return p[t.Hb]},"%C":function(t){return i((t.Cb+1900)/100|0,2)},"%d":function(t){return i(t.Kb,2)},"%e":function(t){return a(t.Kb,2," ")},"%g":function(t){return c(t).toString().substring(2)},"%G":function(t){return c(t)},"%H":function(t){return i(t.Gb,2)},"%I":function(t){return 0==(t=t.Gb)?t=12:12<t&&(t-=12),i(t,2)},"%j":function(t){for(var e=0,n=0;n<=t.Hb-1;e+=(pt(t.Cb+1900)?ht:dt)[n++]);return i(t.Kb+e,3)},"%m":function(t){return i(t.Hb+1,2)},"%M":function(t){return i(t.Zb,2)},"%n":function(){return"\\n"},"%p":function(t){return 0<=t.Gb&&12>t.Gb?"AM":"PM"},"%S":function(t){return i(t.$b,2)},"%t":function(){return"\\t"},"%u":function(t){return t.Ab||7},"%U":function(t){return i(Math.floor((t.Bb+7-t.Ab)/7),2)},"%V":function(t){var e=Math.floor((t.Bb+7-(t.Ab+6)%7)/7);if(2>=(t.Ab+371-t.Bb-2)%7&&e++,e)53==e&&(4==(n=(t.Ab+371-t.Bb)%7)||3==n&&pt(t.Cb)||(e=1));else{e=52;var n=(t.Ab+7-t.Bb-1)%7;(4==n||5==n&&pt(t.Cb%400-1))&&e++}return i(e,2)},"%w":function(t){return t.Ab},"%W":function(t){return i(Math.floor((t.Bb+7-(t.Ab+6)%7)/7),2)},"%y":function(t){return(t.Cb+1900).toString().substring(2)},"%Y":function(t){return t.Cb+1900},"%z":function(t){var e=0<=(t=t.Yb);return t=Math.abs(t)/60,(e?"+":"-")+String("0000"+(t/60*100+t%60)).slice(-4)},"%Z":function(t){return t.ac},"%%":function(){return"%"}},n=n.replace(/%%/g,"\\0\\0"),s)n.includes(l)&&(n=n.replace(new RegExp(l,"g"),s[l](r)));return l=function(t){var e=Array(D(t)+1);return k(t,e,0,e.length),e}(n=n.replace(/\\0\\0/g,"%")),l.length>e?0:(S.set(l,t>>>0),l.length-1)}var bt={a:function(t){return gt(t+24)+24},m:function(t){return(t=new et(t)).Pb()||(t.Ib(!0),K--),t.Jb(!1),Q.push(t),t.Nb(),t.Qb()},ia:function(t){throw w("Unexpected exception thrown, this is not properly supported - aborting"),C=!0,t},w:function(){Ot(0);var t=Q.pop();if(t.Xb()&&!t.Lb()){var e=t.Wb();e&&at(e)(t.Db),nt(t.Db)}tt=0},d:function(){var t=tt;if(!t)return ft=0;var e=new et(t);e.Fb(t);var n=e.Eb();if(!n)return ft=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(Et(i,n,e.zb+16))return ft=i,t}return ft=n,t},k:function(){var t=tt;if(!t)return ft=0;var e=new et(t);e.Fb(t);var n=e.Eb();if(!n)return ft=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(Et(i,n,e.zb+16))return ft=i,t}return ft=n,t},g:function(){var t=tt;if(!t)return ft=0;var e=new et(t);e.Fb(t);var n=e.Eb();if(!n)return ft=0,t;for(var r=Array.prototype.slice.call(arguments),a=0;a<r.length;a++){var i=r[a];if(0===i||i===n)break;if(Et(i,n,e.zb+16))return ft=i,t}return ft=n,t},s:nt,L:function(){var t=Q.pop();t||V("no exception to throw");var e=t.Db;throw t.Lb()||(Q.push(t),t.Jb(!0),t.Ib(!1),K++),tt=e,e},b:function(t,e,n){throw new et(t).Rb(e,n),tt=t,K++,t},la:function(){return K},i:function(t){throw tt||(tt=t),t},H:function(){return 0},Ba:function(){},pa:function(){},ra:function(){},ka:function(){return 0},za:function(){},ua:function(){},ya:function(){},R:function(){},qa:function(){},na:function(){},Aa:function(){},oa:function(){},Ha:function(){},Ja:function(){V("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},Ia:function(){V("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},S:function(){return Date.now()},Ca:function(){return!0},Da:function(t,e){t=new Date(1e3*(M[t>>>2]+4294967296*E[t+4>>>2])),E[e>>2>>>0]=t.getUTCSeconds(),E[e+4>>2>>>0]=t.getUTCMinutes(),E[e+8>>2>>>0]=t.getUTCHours(),E[e+12>>2>>>0]=t.getUTCDate(),E[e+16>>2>>>0]=t.getUTCMonth(),E[e+20>>2>>>0]=t.getUTCFullYear()-1900,E[e+24>>2>>>0]=t.getUTCDay(),E[e+28>>2>>>0]=(t.getTime()-Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0))/864e5|0},Ea:function(t,e){t=new Date(1e3*(M[t>>>2]+4294967296*E[t+4>>>2])),E[e>>2>>>0]=t.getSeconds(),E[e+4>>2>>>0]=t.getMinutes(),E[e+8>>2>>>0]=t.getHours(),E[e+12>>2>>>0]=t.getDate(),E[e+16>>2>>>0]=t.getMonth(),E[e+20>>2>>>0]=t.getFullYear()-1900,E[e+24>>2>>>0]=t.getDay();var n=new Date(t.getFullYear(),0,1);E[e+28>>2>>>0]=(t.getTime()-n.getTime())/864e5|0,E[e+36>>2>>>0]=-60*t.getTimezoneOffset();var r=new Date(t.getFullYear(),6,1).getTimezoneOffset();n=n.getTimezoneOffset(),E[e+32>>2>>>0]=0|(r!=n&&t.getTimezoneOffset()==Math.min(n,r))},Fa:function(t){var e=new Date(E[t+20>>2>>>0]+1900,E[t+16>>2>>>0],E[t+12>>2>>>0],E[t+8>>2>>>0],E[t+4>>2>>>0],E[t>>2>>>0],0),n=E[t+32>>2>>>0],r=e.getTimezoneOffset(),a=new Date(e.getFullYear(),0,1),i=new Date(e.getFullYear(),6,1).getTimezoneOffset(),o=a.getTimezoneOffset(),u=Math.min(o,i);return 0>n?E[t+32>>2>>>0]=Number(i!=o&&u==r):0<n!=(u==r)&&(i=Math.max(o,i),e.setTime(e.getTime()+6e4*((0<n?u:i)-r))),E[t+24>>2>>>0]=e.getDay(),E[t+28>>2>>>0]=(e.getTime()-a.getTime())/864e5|0,E[t>>2>>>0]=e.getSeconds(),E[t+4>>2>>>0]=e.getMinutes(),E[t+8>>2>>>0]=e.getHours(),E[t+12>>2>>>0]=e.getDate(),E[t+16>>2>>>0]=e.getMonth(),e.getTime()/1e3|0},sa:function(){return-52},ta:function(){},Ga:function t(e,n,r){t.Vb||(t.Vb=!0,function(t,e,n){function r(t){return(t=t.toTimeString().match(/\\(([A-Za-z ]+)\\)$/))?t[1]:"GMT"}var a=(new Date).getFullYear(),i=new Date(a,0,1),o=new Date(a,6,1);a=i.getTimezoneOffset();var u=o.getTimezoneOffset();E[t>>2>>>0]=60*Math.max(a,u),E[e>>2>>>0]=Number(a!=u),t=r(i),e=r(o),t=it(t),e=it(e),u<a?(M[n>>2>>>0]=t,M[n+4>>2>>>0]=e):(M[n>>2>>>0]=e,M[n+4>>2>>>0]=t)}(e,n,r))},B:function(){V("")},ma:function(){return 4294901760},I:b?()=>{var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:()=>performance.now(),xa:function(t,e,n){T.copyWithin(t>>>0,e>>>0,e+n>>>0)},G:function(t){var e=T.length;if(4294901760<(t>>>=0))return!1;for(var n=1;4>=n;n*=2){var r=e*(1+.2/n);r=Math.min(r,t+100663296);var a=Math;r=Math.max(t,r),a=a.min.call(a,4294901760,r+(65536-r%65536)%65536);t:{try{O.grow(a-A.byteLength+65535>>>16),P();var i=1;break t}catch(t){}i=void 0}if(i)return!0}return!1},va:function(t,e){var n=0;return ut().forEach((function(r,a){var i=e+n;for(a=M[t+4*a>>2>>>0]=i,i=0;i<r.length;++i)S[a++>>0>>>0]=r.charCodeAt(i);S[a>>0>>>0]=0,n+=r.length+1})),0},wa:function(t,e){var n=ut();M[t>>2>>>0]=n.length;var r=0;return n.forEach((function(t){r+=t.length+1})),M[e>>2>>>0]=r,0},ba:function(t){_||0<L||(_t(),Z(W),wt(0),st[1].length&<(1,10),st[2].length&<(2,10)),_||0<L||(e.onExit&&e.onExit(t),C=!0),h(t,new J(t))},E:function(){return 52},Q:function(){return 52},ca:function(){return 70},P:function(t,e,n,r){for(var a=0,i=0;i<n;i++){var o=M[e>>2>>>0],u=M[e+4>>2>>>0];e+=8;for(var c=0;c<u;c++)lt(t,T[o+c>>>0]);a+=u}return M[r>>2>>>0]=a,0},c:function(){return ft},ja:function t(e,r){t.Mb||(t.Mb=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);return()=>(crypto.getRandomValues(t),t[0])}if(b)try{var e=n(Object(function(){var t=new Error("Cannot find module \'crypto\'");throw t.code="MODULE_NOT_FOUND",t}()));return()=>e.randomBytes(1)[0]}catch(t){}return()=>V("randomDevice")}());for(var a=0;a<r;a++)S[e+a>>0>>>0]=t.Mb();return 0},ea:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},fa:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},J:function(t){var e=At();try{return at(t)()}catch(t){if(St(e),t!==t+0)throw t;Ot(1,0)}},e:function(t,e){var n=At();try{return at(t)(e)}catch(t){if(St(n),t!==t+0)throw t;Ot(1,0)}},N:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},O:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},j:function(t,e,n){var r=At();try{return at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},o:function(t,e,n,r){var a=At();try{return at(t)(e,n,r)}catch(t){if(St(a),t!==t+0)throw t;Ot(1,0)}},p:function(t,e,n,r,a){var i=At();try{return at(t)(e,n,r,a)}catch(t){if(St(i),t!==t+0)throw t;Ot(1,0)}},M:function(t,e,n,r,a,i){var o=At();try{return at(t)(e,n,r,a,i)}catch(t){if(St(o),t!==t+0)throw t;Ot(1,0)}},r:function(t,e,n,r,a,i){var o=At();try{return at(t)(e,n,r,a,i)}catch(t){if(St(o),t!==t+0)throw t;Ot(1,0)}},v:function(t,e,n,r,a,i,o){var u=At();try{return at(t)(e,n,r,a,i,o)}catch(t){if(St(u),t!==t+0)throw t;Ot(1,0)}},K:function(t,e,n,r,a,i,o,u){var c=At();try{return at(t)(e,n,r,a,i,o,u)}catch(t){if(St(c),t!==t+0)throw t;Ot(1,0)}},D:function(t,e,n,r,a,i,o,u,c,s,l,f){var p=At();try{return at(t)(e,n,r,a,i,o,u,c,s,l,f)}catch(t){if(St(p),t!==t+0)throw t;Ot(1,0)}},X:function(t,e,n,r,a,i,o,u){var c=At();try{return Ft(t,e,n,r,a,i,o,u)}catch(t){if(St(c),t!==t+0)throw t;Ot(1,0)}},V:function(t,e,n,r,a,i,o){var u=At();try{return xt(t,e,n,r,a,i,o)}catch(t){if(St(u),t!==t+0)throw t;Ot(1,0)}},U:function(t,e,n,r,a){var i=At();try{return It(t,e,n,r,a)}catch(t){if(St(i),t!==t+0)throw t;Ot(1,0)}},Z:function(t,e,n,r){var a=At();try{return Pt(t,e,n,r)}catch(t){if(St(a),t!==t+0)throw t;Ot(1,0)}},W:function(t){var e=At();try{return Ct(t)}catch(t){if(St(e),t!==t+0)throw t;Ot(1,0)}},Y:function(t,e){var n=At();try{return Ut(t,e)}catch(t){if(St(n),t!==t+0)throw t;Ot(1,0)}},T:function(t,e,n){var r=At();try{return Rt(t,e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},f:function(t){var e=At();try{at(t)()}catch(t){if(St(e),t!==t+0)throw t;Ot(1,0)}},q:function(t,e){var n=At();try{at(t)(e)}catch(t){if(St(n),t!==t+0)throw t;Ot(1,0)}},h:function(t,e,n){var r=At();try{at(t)(e,n)}catch(t){if(St(r),t!==t+0)throw t;Ot(1,0)}},da:function(t,e,n,r){var a=At();try{at(t)(e,n,r)}catch(t){if(St(a),t!==t+0)throw t;Ot(1,0)}},l:function(t,e,n,r){var a=At();try{at(t)(e,n,r)}catch(t){if(St(a),t!==t+0)throw t;Ot(1,0)}},t:function(t,e,n,r,a){var i=At();try{at(t)(e,n,r,a)}catch(t){if(St(i),t!==t+0)throw t;Ot(1,0)}},u:function(t,e,n,r,a,i){var o=At();try{at(t)(e,n,r,a,i)}catch(t){if(St(o),t!==t+0)throw t;Ot(1,0)}},x:function(t,e,n,r,a,i,o){var u=At();try{at(t)(e,n,r,a,i,o)}catch(t){if(St(u),t!==t+0)throw t;Ot(1,0)}},z:function(t,e,n,r,a,i,o,u){var c=At();try{at(t)(e,n,r,a,i,o,u)}catch(t){if(St(c),t!==t+0)throw t;Ot(1,0)}},ga:function(t,e,n,r,a,i,o,u,c){var s=At();try{at(t)(e,n,r,a,i,o,u,c)}catch(t){if(St(s),t!==t+0)throw t;Ot(1,0)}},A:function(t,e,n,r,a,i,o,u,c,s,l){var f=At();try{at(t)(e,n,r,a,i,o,u,c,s,l)}catch(t){if(St(f),t!==t+0)throw t;Ot(1,0)}},C:function(t,e,n,r,a,i,o,u,c,s,l,f,p,h,d,y){var b=At();try{at(t)(e,n,r,a,i,o,u,c,s,l,f,p,h,d,y)}catch(t){if(St(b),t!==t+0)throw t;Ot(1,0)}},aa:function(t,e,n,r,a,i,o,u){var c=At();try{jt(t,e,n,r,a,i,o,u)}catch(t){if(St(c),t!==t+0)throw t;Ot(1,0)}},_:function(t,e,n,r,a,i,o,u,c,s,l,f){var p=At();try{Dt(t,e,n,r,a,i,o,u,c,s,l,f)}catch(t){if(St(p),t!==t+0)throw t;Ot(1,0)}},$:function(t,e,n,r,a,i){var o=At();try{kt(t,e,n,r,a,i)}catch(t){if(St(o),t!==t+0)throw t;Ot(1,0)}},n:function(t){return t},F:function(t){ft=t},ha:yt,y:function(t,e,n,r){return yt(t,e,n,r)}};!function(){function t(t){e.asm=t.exports,O=e.asm.Ka,P(),U=e.asm.ib,I.unshift(e.asm.La),B--,e.monitorRunDependencies&&e.monitorRunDependencies(B),0==B&&(null!==G&&(clearInterval(G),G=null),N&&(t=N,N=null,t()))}function n(e){t(e.instance)}function r(t){return function(){if(!g&&(d||y)){if("function"==typeof fetch&&!Y.startsWith("file://"))return fetch(Y,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at \'"+Y+"\'";return t.arrayBuffer()})).catch((function(){return X()}));if(o)return new Promise((function(t,e){o(Y,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return X()}))}().then((function(t){return WebAssembly.instantiate(t,i)})).then((function(t){return t})).then(t,(function(t){w("failed to asynchronously prepare wasm: "+t),V(t)}))}var i={a:bt};if(B++,e.monitorRunDependencies&&e.monitorRunDependencies(B),e.instantiateWasm)try{return e.instantiateWasm(i,t)}catch(t){return w("Module.instantiateWasm callback failed with error: "+t),!1}(g||"function"!=typeof WebAssembly.instantiateStreaming||$()||Y.startsWith("file://")||b||"function"!=typeof fetch?r(n):fetch(Y,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,i).then(n,(function(t){return w("wasm streaming compile failed: "+t),w("falling back to ArrayBuffer instantiation"),r(n)}))}))).catch(a)}(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.La).apply(null,arguments)},e._OrtInit=function(){return(e._OrtInit=e.asm.Ma).apply(null,arguments)},e._OrtCreateSessionOptions=function(){return(e._OrtCreateSessionOptions=e.asm.Na).apply(null,arguments)},e._OrtAppendExecutionProvider=function(){return(e._OrtAppendExecutionProvider=e.asm.Oa).apply(null,arguments)},e._OrtAddSessionConfigEntry=function(){return(e._OrtAddSessionConfigEntry=e.asm.Pa).apply(null,arguments)},e._OrtReleaseSessionOptions=function(){return(e._OrtReleaseSessionOptions=e.asm.Qa).apply(null,arguments)},e._OrtCreateSession=function(){return(e._OrtCreateSession=e.asm.Ra).apply(null,arguments)},e._OrtReleaseSession=function(){return(e._OrtReleaseSession=e.asm.Sa).apply(null,arguments)},e._OrtGetInputCount=function(){return(e._OrtGetInputCount=e.asm.Ta).apply(null,arguments)},e._OrtGetOutputCount=function(){return(e._OrtGetOutputCount=e.asm.Ua).apply(null,arguments)},e._OrtGetInputName=function(){return(e._OrtGetInputName=e.asm.Va).apply(null,arguments)},e._OrtGetOutputName=function(){return(e._OrtGetOutputName=e.asm.Wa).apply(null,arguments)},e._OrtFree=function(){return(e._OrtFree=e.asm.Xa).apply(null,arguments)},e._OrtCreateTensor=function(){return(e._OrtCreateTensor=e.asm.Ya).apply(null,arguments)},e._OrtGetTensorData=function(){return(e._OrtGetTensorData=e.asm.Za).apply(null,arguments)},e._OrtReleaseTensor=function(){return(e._OrtReleaseTensor=e.asm._a).apply(null,arguments)},e._OrtCreateRunOptions=function(){return(e._OrtCreateRunOptions=e.asm.$a).apply(null,arguments)},e._OrtAddRunConfigEntry=function(){return(e._OrtAddRunConfigEntry=e.asm.ab).apply(null,arguments)},e._OrtReleaseRunOptions=function(){return(e._OrtReleaseRunOptions=e.asm.bb).apply(null,arguments)},e._OrtRun=function(){return(e._OrtRun=e.asm.cb).apply(null,arguments)},e._OrtEndProfiling=function(){return(e._OrtEndProfiling=e.asm.db).apply(null,arguments)};var mt,gt=e._malloc=function(){return(gt=e._malloc=e.asm.eb).apply(null,arguments)},vt=e._free=function(){return(vt=e._free=e.asm.fb).apply(null,arguments)},wt=e._fflush=function(){return(wt=e._fflush=e.asm.gb).apply(null,arguments)},_t=e.___funcs_on_exit=function(){return(_t=e.___funcs_on_exit=e.asm.hb).apply(null,arguments)},Ot=e._setThrew=function(){return(Ot=e._setThrew=e.asm.jb).apply(null,arguments)},At=e.stackSave=function(){return(At=e.stackSave=e.asm.kb).apply(null,arguments)},St=e.stackRestore=function(){return(St=e.stackRestore=e.asm.lb).apply(null,arguments)},Tt=e.stackAlloc=function(){return(Tt=e.stackAlloc=e.asm.mb).apply(null,arguments)},Et=e.___cxa_can_catch=function(){return(Et=e.___cxa_can_catch=e.asm.nb).apply(null,arguments)},Mt=e.___cxa_is_pointer_type=function(){return(Mt=e.___cxa_is_pointer_type=e.asm.ob).apply(null,arguments)},Ct=e.dynCall_j=function(){return(Ct=e.dynCall_j=e.asm.pb).apply(null,arguments)},xt=e.dynCall_iiiiij=function(){return(xt=e.dynCall_iiiiij=e.asm.qb).apply(null,arguments)},Rt=e.dynCall_jii=function(){return(Rt=e.dynCall_jii=e.asm.rb).apply(null,arguments)},jt=e.dynCall_viiiiij=function(){return(jt=e.dynCall_viiiiij=e.asm.sb).apply(null,arguments)},kt=e.dynCall_vjji=function(){return(kt=e.dynCall_vjji=e.asm.tb).apply(null,arguments)},Dt=e.dynCall_viiijjjii=function(){return(Dt=e.dynCall_viiijjjii=e.asm.ub).apply(null,arguments)},Pt=e.dynCall_iij=function(){return(Pt=e.dynCall_iij=e.asm.vb).apply(null,arguments)},Ut=e.dynCall_ji=function(){return(Ut=e.dynCall_ji=e.asm.wb).apply(null,arguments)},Ft=e.dynCall_iiiiiij=function(){return(Ft=e.dynCall_iiiiiij=e.asm.xb).apply(null,arguments)},It=e.dynCall_iiij=function(){return(It=e.dynCall_iiij=e.asm.yb).apply(null,arguments)};function Wt(){function t(){if(!mt&&(mt=!0,e.calledRun=!0,!C)){if(Z(I),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var t=e.postRun.shift();H.unshift(t)}Z(H)}}if(!(0<B)){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)z();Z(F),0<B||(e.setStatus?(e.setStatus("Running..."),setTimeout((function(){setTimeout((function(){e.setStatus("")}),1),t()}),1)):t())}}if(e.UTF8ToString=j,e.stringToUTF8=function(t,e,n){return k(t,T,e,n)},e.lengthBytesUTF8=D,e.stackSave=At,e.stackRestore=St,e.stackAlloc=Tt,N=function t(){mt||Wt(),mt||(N=t)},e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return Wt(),t.ready});t.exports=r},967:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.iterateExtraOptions=void 0,e.iterateExtraOptions=(t,n,r,a)=>{if("object"==typeof t&&null!==t){if(r.has(t))throw new Error("Circular reference in options");r.add(t)}Object.entries(t).forEach((([t,i])=>{const o=n?n+t:t;if("object"==typeof i)(0,e.iterateExtraOptions)(i,o+".",r,a);else if("string"==typeof i||"number"==typeof i)a(o,i.toString());else{if("boolean"!=typeof i)throw new Error("Can\'t handle extra config type: "+typeof i);a(o,i?"1":"0")}}))}},586:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setRunOptions=void 0;const r=n(967),a=n(983),i=n(361);e.setRunOptions=t=>{const e=(0,i.getInstance)();let n=0;const o=[],u=t||{};try{if(void 0===(null==t?void 0:t.logSeverityLevel))u.logSeverityLevel=2;else if("number"!=typeof t.logSeverityLevel||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${t.logSeverityLevel}`);if(void 0===(null==t?void 0:t.logVerbosityLevel))u.logVerbosityLevel=0;else if("number"!=typeof t.logVerbosityLevel||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);void 0===(null==t?void 0:t.terminate)&&(u.terminate=!1);let i=0;if(void 0!==(null==t?void 0:t.tag)&&(i=(0,a.allocWasmString)(t.tag,o)),n=e._OrtCreateRunOptions(u.logSeverityLevel,u.logVerbosityLevel,!!u.terminate,i),0===n)throw new Error("Can\'t create run options");return void 0!==(null==t?void 0:t.extra)&&(0,r.iterateExtraOptions)(t.extra,"",new WeakSet,((t,r)=>{const i=(0,a.allocWasmString)(t,o),u=(0,a.allocWasmString)(r,o);if(0!==e._OrtAddRunConfigEntry(n,i,u))throw new Error(`Can\'t set a run config entry: ${t} - ${r}`)})),[n,o]}catch(t){throw 0!==n&&e._OrtReleaseRunOptions(n),o.forEach(e._free),t}}},919:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setSessionOptions=void 0;const r=n(967),a=n(983),i=n(361);e.setSessionOptions=t=>{const e=(0,i.getInstance)();let n=0;const o=[],u=t||{};(t=>{t.extra||(t.extra={}),t.extra.session||(t.extra.session={});const e=t.extra.session;e.use_ort_model_bytes_directly||(e.use_ort_model_bytes_directly="1")})(u);try{void 0===(null==t?void 0:t.graphOptimizationLevel)&&(u.graphOptimizationLevel="all");const c=(t=>{switch(t){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${t}`)}})(u.graphOptimizationLevel);void 0===(null==t?void 0:t.enableCpuMemArena)&&(u.enableCpuMemArena=!0),void 0===(null==t?void 0:t.enableMemPattern)&&(u.enableMemPattern=!0),void 0===(null==t?void 0:t.executionMode)&&(u.executionMode="sequential");const s=(t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}})(u.executionMode);let l=0;if(void 0!==(null==t?void 0:t.logId)&&(l=(0,a.allocWasmString)(t.logId,o)),void 0===(null==t?void 0:t.logSeverityLevel))u.logSeverityLevel=2;else if("number"!=typeof t.logSeverityLevel||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${t.logSeverityLevel}`);if(void 0===(null==t?void 0:t.logVerbosityLevel))u.logVerbosityLevel=0;else if("number"!=typeof t.logVerbosityLevel||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);if(void 0===(null==t?void 0:t.enableProfiling)&&(u.enableProfiling=!1),n=e._OrtCreateSessionOptions(c,!!u.enableCpuMemArena,!!u.enableMemPattern,s,!!u.enableProfiling,0,l,u.logSeverityLevel,u.logVerbosityLevel),0===n)throw new Error("Can\'t create session options");return(null==t?void 0:t.executionProviders)&&((t,e,n)=>{for(const r of e){let e="string"==typeof r?r:r.name;switch(e){case"xnnpack":e="XNNPACK";break;case"wasm":case"cpu":continue;default:throw new Error(`not supported EP: ${e}`)}const o=(0,a.allocWasmString)(e,n);if(0!==(0,i.getInstance)()._OrtAppendExecutionProvider(t,o))throw new Error(`Can\'t append execution provider: ${e}`)}})(n,t.executionProviders,o),void 0!==(null==t?void 0:t.extra)&&(0,r.iterateExtraOptions)(t.extra,"",new WeakSet,((t,r)=>{const i=(0,a.allocWasmString)(t,o),u=(0,a.allocWasmString)(r,o);if(0!==e._OrtAddSessionConfigEntry(n,i,u))throw new Error(`Can\'t set a session config entry: ${t} - ${r}`)})),[n,o]}catch(t){throw 0!==n&&e._OrtReleaseSessionOptions(n),o.forEach(e._free),t}}},983:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.allocWasmString=void 0;const r=n(361);e.allocWasmString=(t,e)=>{const n=(0,r.getInstance)(),a=n.lengthBytesUTF8(t)+1,i=n._malloc(a);return n.stringToUTF8(t,i,a),e.push(i),i}},349:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.extractTransferableBuffers=e.endProfiling=e.run=e.releaseSession=e.createSession=e.createSessionFinalize=e.createSessionAllocate=e.initOrt=void 0;const r=n(586),a=n(919),i=n(983),o=n(361);e.initOrt=(t,e)=>{const n=(0,o.getInstance)()._OrtInit(t,e);if(0!==n)throw new Error(`Can\'t initialize onnxruntime. error code = ${n}`)};const u=new Map;e.createSessionAllocate=t=>{const e=(0,o.getInstance)(),n=e._malloc(t.byteLength);return e.HEAPU8.set(t,n),[n,t.byteLength]},e.createSessionFinalize=(t,e)=>{const n=(0,o.getInstance)();let r=0,i=0,c=[];try{if([i,c]=(0,a.setSessionOptions)(e),r=n._OrtCreateSession(t[0],t[1],i),0===r)throw new Error("Can\'t create a session")}finally{n._free(t[0]),n._OrtReleaseSessionOptions(i),c.forEach(n._free)}const s=n._OrtGetInputCount(r),l=n._OrtGetOutputCount(r),f=[],p=[],h=[],d=[];for(let t=0;t<s;t++){const e=n._OrtGetInputName(r,t);if(0===e)throw new Error("Can\'t get an input name");p.push(e),f.push(n.UTF8ToString(e))}for(let t=0;t<l;t++){const e=n._OrtGetOutputName(r,t);if(0===e)throw new Error("Can\'t get an output name");d.push(e),h.push(n.UTF8ToString(e))}return u.set(r,[r,p,d]),[r,f,h]},e.createSession=(t,n)=>{const r=(0,e.createSessionAllocate)(t);return(0,e.createSessionFinalize)(r,n)},e.releaseSession=t=>{const e=(0,o.getInstance)(),n=u.get(t);if(!n)throw new Error("invalid session id");const r=n[0],a=n[1],i=n[2];a.forEach(e._OrtFree),i.forEach(e._OrtFree),e._OrtReleaseSession(r),u.delete(t)};const c=t=>{switch(t){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;default:throw new Error(`unsupported data type: ${t}`)}},s=t=>{switch(t){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";default:throw new Error(`unsupported data type: ${t}`)}},l=t=>{switch(t){case"float32":return Float32Array;case"uint8":case"bool":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${t}`)}};e.run=(t,e,n,a,f)=>{const p=(0,o.getInstance)(),h=u.get(t);if(!h)throw new Error("invalid session id");const d=h[0],y=h[1],b=h[2],m=e.length,g=a.length;let v=0,w=[];const _=[],O=[];try{[v,w]=(0,r.setRunOptions)(f);for(let t=0;t<m;t++){const e=n[t][0],r=n[t][1],a=n[t][2];let o,u;if(Array.isArray(a)){u=4*a.length,o=p._malloc(u),O.push(o);let t=o/4;for(let e=0;e<a.length;e++){if("string"!=typeof a[e])throw new TypeError(`tensor data at index ${e} is not a string`);p.HEAPU32[t++]=(0,i.allocWasmString)(a[e],O)}}else u=a.byteLength,o=p._malloc(u),O.push(o),p.HEAPU8.set(new Uint8Array(a.buffer,a.byteOffset,u),o);const s=p.stackSave(),l=p.stackAlloc(4*r.length);try{let t=l/4;r.forEach((e=>p.HEAP32[t++]=e));const n=p._OrtCreateTensor(c(e),o,u,l,r.length);if(0===n)throw new Error("Can\'t create a tensor");_.push(n)}finally{p.stackRestore(s)}}const t=p.stackSave(),o=p.stackAlloc(4*m),u=p.stackAlloc(4*m),h=p.stackAlloc(4*g),A=p.stackAlloc(4*g);try{let n=o/4,r=u/4,i=h/4,c=A/4;for(let t=0;t<m;t++)p.HEAPU32[n++]=_[t],p.HEAPU32[r++]=y[e[t]];for(let t=0;t<g;t++)p.HEAPU32[i++]=0,p.HEAPU32[c++]=b[a[t]];let f=p._OrtRun(d,u,o,m,A,g,h,v);const w=[];if(0===f)for(let t=0;t<g;t++){const e=p.HEAPU32[h/4+t],n=p.stackSave(),r=p.stackAlloc(16);let a,i=0;try{if(f=p._OrtGetTensorData(e,r,r+4,r+8,r+12),0!==f)throw new Error(`Can\'t access output tensor data. error code = ${f}`);let t=r/4;const o=p.HEAPU32[t++];i=p.HEAPU32[t++];const u=p.HEAPU32[t++],c=p.HEAPU32[t++],h=[];for(let t=0;t<c;t++)h.push(p.HEAPU32[u/4+t]);p._OrtFree(u);const d=0===h.length?1:h.reduce(((t,e)=>t*e));if(a=s(o),"string"===a){const t=[];let e=i/4;for(let n=0;n<d;n++){const r=p.HEAPU32[e++],a=n===d-1?void 0:p.HEAPU32[e]-r;t.push(p.UTF8ToString(r,a))}w.push([a,h,t])}else{const t=new(l(a))(d);new Uint8Array(t.buffer,t.byteOffset,t.byteLength).set(p.HEAPU8.subarray(i,i+t.byteLength)),w.push([a,h,t])}}finally{p.stackRestore(n),"string"===a&&i&&p._free(i),p._OrtReleaseTensor(e)}}if(0===f)return w;throw new Error(`failed to call OrtRun(). error code = ${f}.`)}finally{p.stackRestore(t)}}finally{_.forEach(p._OrtReleaseTensor),O.forEach(p._free),p._OrtReleaseRunOptions(v),w.forEach(p._free)}},e.endProfiling=t=>{const e=(0,o.getInstance)(),n=u.get(t);if(!n)throw new Error("invalid session id");const r=n[0],a=e._OrtEndProfiling(r);if(0===a)throw new Error("Can\'t get an profile file name");e._OrtFree(a)},e.extractTransferableBuffers=t=>{const e=[];for(const n of t){const t=n[2];!Array.isArray(t)&&t.buffer&&e.push(t.buffer)}return e}},361:function(t,e,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,a)}:function(t,e,n,r){void 0===r&&(r=n),t[r]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),i=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&r(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.dispose=e.getInstance=e.initializeWebAssembly=void 0;const u=i(n(449)),c=o(n(932)),s=n(474);let l,f=!1,p=!1,h=!1;const d=(t,e)=>e?t?"ort-wasm-simd-threaded.wasm":"ort-wasm-threaded.wasm":t?"ort-wasm-simd.wasm":"ort-wasm.wasm";e.initializeWebAssembly=async t=>{if(f)return Promise.resolve();if(p)throw new Error("multiple calls to \'initializeWebAssembly()\' detected.");if(h)throw new Error("previous call to \'initializeWebAssembly()\' failed.");p=!0;const e=t.initTimeout,r=t.numThreads,a=t.simd,i=r>1&&(()=>{try{return"undefined"!=typeof SharedArrayBuffer&&("undefined"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])))}catch(t){return!1}})(),o=a&&(()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch(t){return!1}})(),y="string"==typeof t.wasmPaths?t.wasmPaths:void 0,b=d(!1,i),m=d(o,i),g="object"==typeof t.wasmPaths?t.wasmPaths[m]:void 0;let v=!1;const w=[];if(e>0&&w.push(new Promise((t=>{setTimeout((()=>{v=!0,t()}),e)}))),w.push(new Promise(((t,e)=>{const r=i?s:c.default,a={locateFile:(t,e)=>i&&t.endsWith(".worker.js")&&"undefined"!=typeof Blob?URL.createObjectURL(new Blob([n(154)],{type:"text/javascript"})):t===b?null!=g?g:(null!=y?y:e)+m:e+t};if(i)if("undefined"==typeof Blob)a.mainScriptUrlOrBlob=u.join("/","ort-wasm-threaded.js");else{const t=`var ortWasmThreaded=(function(){var _scriptDir;return ${r.toString()}})();`;a.mainScriptUrlOrBlob=new Blob([t],{type:"text/javascript"})}r(a).then((e=>{p=!1,f=!0,l=e,t()}),(t=>{p=!1,h=!0,e(t)}))}))),await Promise.race(w),v)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},e.getInstance=()=>{if(f&&l)return l;throw new Error("WebAssembly is not initialized yet.")},e.dispose=()=>{var t;!f||p||h||(p=!0,null===(t=l.PThread)||void 0===t||t.terminateAllThreads(),l=void 0,p=!1,f=!1,h=!0)}},154:t=>{"use strict";t.exports=\'"use strict";var e={},t="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node;if(t){var r=require("worker_threads"),a=r.parentPort;a.on("message",(e=>onmessage({data:e})));var o=require("fs");Object.assign(global,{self:global,require:require,Module:e,location:{href:__filename},Worker:r.Worker,importScripts:function(e){(0,eval)(o.readFileSync(e,"utf8"))},postMessage:function(e){a.postMessage(e)},performance:global.performance||{now:function(){return Date.now()}}})}var s=!1,n=[],i=function(){var e=Array.prototype.slice.call(arguments).join(" ");t?o.writeSync(2,e+"\\\\n"):console.error(e)};self.alert=function(){var t=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:t,threadId:e._pthread_self()})},e.instantiateWasm=(t,r)=>{var a=new WebAssembly.Instance(e.wasmModule,t);return r(a),e.wasmModule=null,a.exports},self.onunhandledrejection=e=>{throw e.reason??e},self.onmessage=t=>{try{if("load"===t.data.cmd){if(e.wasmModule=t.data.wasmModule,e.wasmMemory=t.data.wasmMemory,e.buffer=e.wasmMemory.buffer,e.ENVIRONMENT_IS_PTHREAD=!0,"string"==typeof t.data.urlOrBlob)importScripts(t.data.urlOrBlob);else{var r=URL.createObjectURL(t.data.urlOrBlob);importScripts(r),URL.revokeObjectURL(r)}ortWasmThreaded(e).then((function(t){e=t}))}else if("run"===t.data.cmd){e.__performance_now_clock_drift=performance.now()-t.data.time,e.__emscripten_thread_init(t.data.pthread_ptr,0,0,1),e.establishStackSpace(),e.PThread.receiveObjectTransfer(t.data),e.PThread.threadInitTLS(),s||(n.forEach((t=>{e.executeNotifiedProxyingQueue(t)})),n=[],s=!0);try{e.invokeEntryPoint(t.data.start_routine,t.data.arg)}catch(t){if("unwind"!=t){if(!(t instanceof e.ExitStatus))throw t;e.keepRuntimeAlive()||e.__emscripten_thread_exit(t.status)}}}else"cancel"===t.data.cmd?e._pthread_self()&&e.__emscripten_thread_exit(-1):"setimmediate"===t.data.target||("processProxyingQueue"===t.data.cmd?s?e.executeNotifiedProxyingQueue(t.data.queue):n.push(t.data.queue):(i("worker.js received unknown command "+t.data.cmd),i(t.data)))}catch(t){throw i("worker.js onmessage() captured an uncaught exception: "+t),t&&t.stack&&i(t.stack),e.__emscripten_thread_crashed&&e.__emscripten_thread_crashed(),t}};\\n\'},384:()=>{},993:()=>{},908:()=>{},953:()=>{},925:()=>{},449:()=>{}},e={};function n(r){var a=e[r];if(void 0!==a)return a.exports;var i=e[r]={exports:{}};return t[r].call(i.exports,i,i.exports,n),i.exports}n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),(()=>{"use strict";const t=n(349),e=n(361);self.onmessage=n=>{switch(n.data.type){case"init-wasm":(0,e.initializeWebAssembly)(n.data.in).then((()=>postMessage({type:"init-wasm"})),(t=>postMessage({type:"init-wasm",err:t})));break;case"init-ort":try{const{numThreads:e,loggingLevel:r}=n.data.in;(0,t.initOrt)(e,r),postMessage({type:"init-ort"})}catch(t){postMessage({type:"init-ort",err:t})}break;case"create_allocate":try{const{model:e}=n.data.in,r=(0,t.createSessionAllocate)(e);postMessage({type:"create_allocate",out:r})}catch(t){postMessage({type:"create_allocate",err:t})}break;case"create_finalize":try{const{modeldata:e,options:r}=n.data.in,a=(0,t.createSessionFinalize)(e,r);postMessage({type:"create_finalize",out:a})}catch(t){postMessage({type:"create_finalize",err:t})}break;case"create":try{const{model:e,options:r}=n.data.in,a=(0,t.createSession)(e,r);postMessage({type:"create",out:a})}catch(t){postMessage({type:"create",err:t})}break;case"release":try{const e=n.data.in;(0,t.releaseSession)(e),postMessage({type:"release"})}catch(t){postMessage({type:"release",err:t})}break;case"run":try{const{sessionId:e,inputIndices:r,inputs:a,outputIndices:i,options:o}=n.data.in,u=(0,t.run)(e,r,a,i,o);postMessage({type:"run",out:u},(0,t.extractTransferableBuffers)(u))}catch(t){postMessage({type:"run",err:t})}break;case"end-profiling":try{const e=n.data.in;(0,t.endProfiling)(e),postMessage({type:"end-profiling"})}catch(t){postMessage({type:"end-profiling",err:t})}}}})()})();\n',"Worker",void 0,void 0)}},477:y=>{y.exports=function(n,u,d,l){var p=self||window;try{try{var s;try{s=new p.Blob([n])}catch{(s=new(p.BlobBuilder||p.WebKitBlobBuilder||p.MozBlobBuilder||p.MSBlobBuilder)).append(n),s=s.getBlob()}var h=p.URL||p.webkitURL,f=h.createObjectURL(s),a=new p[u](f,d);return h.revokeObjectURL(f),a}catch{return new p[u]("data:application/javascript,".concat(encodeURIComponent(n)),d)}}catch{if(!l)throw Error("Inline worker is not supported");return new p[u](l,d)}}},4154:y=>{y.exports=`"use strict";var e={},t="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node;if(t){var r=require("worker_threads"),a=r.parentPort;a.on("message",(e=>onmessage({data:e})));var o=require("fs");Object.assign(global,{self:global,require:require,Module:e,location:{href:__filename},Worker:r.Worker,importScripts:function(e){(0,eval)(o.readFileSync(e,"utf8"))},postMessage:function(e){a.postMessage(e)},performance:global.performance||{now:function(){return Date.now()}}})}var s=!1,n=[],i=function(){var e=Array.prototype.slice.call(arguments).join(" ");t?o.writeSync(2,e+"\\n"):console.error(e)};self.alert=function(){var t=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:t,threadId:e._pthread_self()})},e.instantiateWasm=(t,r)=>{var a=new WebAssembly.Instance(e.wasmModule,t);return r(a),e.wasmModule=null,a.exports},self.onunhandledrejection=e=>{throw e.reason??e},self.onmessage=t=>{try{if("load"===t.data.cmd){if(e.wasmModule=t.data.wasmModule,e.wasmMemory=t.data.wasmMemory,e.buffer=e.wasmMemory.buffer,e.ENVIRONMENT_IS_PTHREAD=!0,"string"==typeof t.data.urlOrBlob)importScripts(t.data.urlOrBlob);else{var r=URL.createObjectURL(t.data.urlOrBlob);importScripts(r),URL.revokeObjectURL(r)}ortWasmThreaded(e).then((function(t){e=t}))}else if("run"===t.data.cmd){e.__performance_now_clock_drift=performance.now()-t.data.time,e.__emscripten_thread_init(t.data.pthread_ptr,0,0,1),e.establishStackSpace(),e.PThread.receiveObjectTransfer(t.data),e.PThread.threadInitTLS(),s||(n.forEach((t=>{e.executeNotifiedProxyingQueue(t)})),n=[],s=!0);try{e.invokeEntryPoint(t.data.start_routine,t.data.arg)}catch(t){if("unwind"!=t){if(!(t instanceof e.ExitStatus))throw t;e.keepRuntimeAlive()||e.__emscripten_thread_exit(t.status)}}}else"cancel"===t.data.cmd?e._pthread_self()&&e.__emscripten_thread_exit(-1):"setimmediate"===t.data.target||("processProxyingQueue"===t.data.cmd?s?e.executeNotifiedProxyingQueue(t.data.queue):n.push(t.data.queue):(i("worker.js received unknown command "+t.data.cmd),i(t.data)))}catch(t){throw i("worker.js onmessage() captured an uncaught exception: "+t),t&&t.stack&&i(t.stack),e.__emscripten_thread_crashed&&e.__emscripten_thread_crashed(),t}}; -`},1670:y=>{y.exports=__WEBPACK_EXTERNAL_MODULE__1670__},7067:()=>{},1296:()=>{},1384:()=>{},3993:()=>{},908:()=>{},6953:()=>{},9925:()=>{},2806:()=>{},6449:()=>{},2850:()=>{},5381:()=>{},5686:(y,n,u)=>{u.r(n),u.d(n,{flatbuffers:()=>d});var d={};d.Offset,d.Table,d.SIZEOF_SHORT=2,d.SIZEOF_INT=4,d.FILE_IDENTIFIER_LENGTH=4,d.SIZE_PREFIX_LENGTH=4,d.Encoding={UTF8_BYTES:1,UTF16_STRING:2},d.int32=new Int32Array(2),d.float32=new Float32Array(d.int32.buffer),d.float64=new Float64Array(d.int32.buffer),d.isLittleEndian=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1,d.Long=function(l,p){this.low=0|l,this.high=0|p},d.Long.create=function(l,p){return l==0&&p==0?d.Long.ZERO:new d.Long(l,p)},d.Long.prototype.toFloat64=function(){return(this.low>>>0)+4294967296*this.high},d.Long.prototype.equals=function(l){return this.low==l.low&&this.high==l.high},d.Long.ZERO=new d.Long(0,0),d.Builder=function(l){if(l)p=l;else var p=1024;this.bb=d.ByteBuffer.allocate(p),this.space=p,this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1},d.Builder.prototype.clear=function(){this.bb.clear(),this.space=this.bb.capacity(),this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1},d.Builder.prototype.forceDefaults=function(l){this.force_defaults=l},d.Builder.prototype.dataBuffer=function(){return this.bb},d.Builder.prototype.asUint8Array=function(){return this.bb.bytes().subarray(this.bb.position(),this.bb.position()+this.offset())},d.Builder.prototype.prep=function(l,p){l>this.minalign&&(this.minalign=l);for(var s=1+~(this.bb.capacity()-this.space+p)&l-1;this.space<s+l+p;){var h=this.bb.capacity();this.bb=d.Builder.growByteBuffer(this.bb),this.space+=this.bb.capacity()-h}this.pad(s)},d.Builder.prototype.pad=function(l){for(var p=0;p<l;p++)this.bb.writeInt8(--this.space,0)},d.Builder.prototype.writeInt8=function(l){this.bb.writeInt8(this.space-=1,l)},d.Builder.prototype.writeInt16=function(l){this.bb.writeInt16(this.space-=2,l)},d.Builder.prototype.writeInt32=function(l){this.bb.writeInt32(this.space-=4,l)},d.Builder.prototype.writeInt64=function(l){this.bb.writeInt64(this.space-=8,l)},d.Builder.prototype.writeFloat32=function(l){this.bb.writeFloat32(this.space-=4,l)},d.Builder.prototype.writeFloat64=function(l){this.bb.writeFloat64(this.space-=8,l)},d.Builder.prototype.addInt8=function(l){this.prep(1,0),this.writeInt8(l)},d.Builder.prototype.addInt16=function(l){this.prep(2,0),this.writeInt16(l)},d.Builder.prototype.addInt32=function(l){this.prep(4,0),this.writeInt32(l)},d.Builder.prototype.addInt64=function(l){this.prep(8,0),this.writeInt64(l)},d.Builder.prototype.addFloat32=function(l){this.prep(4,0),this.writeFloat32(l)},d.Builder.prototype.addFloat64=function(l){this.prep(8,0),this.writeFloat64(l)},d.Builder.prototype.addFieldInt8=function(l,p,s){(this.force_defaults||p!=s)&&(this.addInt8(p),this.slot(l))},d.Builder.prototype.addFieldInt16=function(l,p,s){(this.force_defaults||p!=s)&&(this.addInt16(p),this.slot(l))},d.Builder.prototype.addFieldInt32=function(l,p,s){(this.force_defaults||p!=s)&&(this.addInt32(p),this.slot(l))},d.Builder.prototype.addFieldInt64=function(l,p,s){!this.force_defaults&&p.equals(s)||(this.addInt64(p),this.slot(l))},d.Builder.prototype.addFieldFloat32=function(l,p,s){(this.force_defaults||p!=s)&&(this.addFloat32(p),this.slot(l))},d.Builder.prototype.addFieldFloat64=function(l,p,s){(this.force_defaults||p!=s)&&(this.addFloat64(p),this.slot(l))},d.Builder.prototype.addFieldOffset=function(l,p,s){(this.force_defaults||p!=s)&&(this.addOffset(p),this.slot(l))},d.Builder.prototype.addFieldStruct=function(l,p,s){p!=s&&(this.nested(p),this.slot(l))},d.Builder.prototype.nested=function(l){if(l!=this.offset())throw new Error("FlatBuffers: struct must be serialized inline.")},d.Builder.prototype.notNested=function(){if(this.isNested)throw new Error("FlatBuffers: object serialization must not be nested.")},d.Builder.prototype.slot=function(l){this.vtable[l]=this.offset()},d.Builder.prototype.offset=function(){return this.bb.capacity()-this.space},d.Builder.growByteBuffer=function(l){var p=l.capacity();if(3221225472&p)throw new Error("FlatBuffers: cannot grow buffer beyond 2 gigabytes.");var s=p<<1,h=d.ByteBuffer.allocate(s);return h.setPosition(s-p),h.bytes().set(l.bytes(),s-p),h},d.Builder.prototype.addOffset=function(l){this.prep(d.SIZEOF_INT,0),this.writeInt32(this.offset()-l+d.SIZEOF_INT)},d.Builder.prototype.startObject=function(l){this.notNested(),this.vtable==null&&(this.vtable=[]),this.vtable_in_use=l;for(var p=0;p<l;p++)this.vtable[p]=0;this.isNested=!0,this.object_start=this.offset()},d.Builder.prototype.endObject=function(){if(this.vtable==null||!this.isNested)throw new Error("FlatBuffers: endObject called without startObject");this.addInt32(0);for(var l=this.offset(),p=this.vtable_in_use-1;p>=0&&this.vtable[p]==0;p--);for(var s=p+1;p>=0;p--)this.addInt16(this.vtable[p]!=0?l-this.vtable[p]:0);this.addInt16(l-this.object_start);var h=(s+2)*d.SIZEOF_SHORT;this.addInt16(h);var f=0,a=this.space;e:for(p=0;p<this.vtables.length;p++){var o=this.bb.capacity()-this.vtables[p];if(h==this.bb.readInt16(o)){for(var t=d.SIZEOF_SHORT;t<h;t+=d.SIZEOF_SHORT)if(this.bb.readInt16(a+t)!=this.bb.readInt16(o+t))continue e;f=this.vtables[p];break}}return f?(this.space=this.bb.capacity()-l,this.bb.writeInt32(this.space,f-l)):(this.vtables.push(this.offset()),this.bb.writeInt32(this.bb.capacity()-l,this.offset()-l)),this.isNested=!1,l},d.Builder.prototype.finish=function(l,p,s){var h=s?d.SIZE_PREFIX_LENGTH:0;if(p){var f=p;if(this.prep(this.minalign,d.SIZEOF_INT+d.FILE_IDENTIFIER_LENGTH+h),f.length!=d.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: file identifier must be length "+d.FILE_IDENTIFIER_LENGTH);for(var a=d.FILE_IDENTIFIER_LENGTH-1;a>=0;a--)this.writeInt8(f.charCodeAt(a))}this.prep(this.minalign,d.SIZEOF_INT+h),this.addOffset(l),h&&this.addInt32(this.bb.capacity()-this.space),this.bb.setPosition(this.space)},d.Builder.prototype.finishSizePrefixed=function(l,p){this.finish(l,p,!0)},d.Builder.prototype.requiredField=function(l,p){var s=this.bb.capacity()-l,h=s-this.bb.readInt32(s);if(this.bb.readInt16(h+p)==0)throw new Error("FlatBuffers: field "+p+" must be set")},d.Builder.prototype.startVector=function(l,p,s){this.notNested(),this.vector_num_elems=p,this.prep(d.SIZEOF_INT,l*p),this.prep(s,l*p)},d.Builder.prototype.endVector=function(){return this.writeInt32(this.vector_num_elems),this.offset()},d.Builder.prototype.createString=function(l){if(l instanceof Uint8Array)var p=l;else{p=[];for(var s=0;s<l.length;){var h,f=l.charCodeAt(s++);(h=f<55296||f>=56320?f:(f<<10)+l.charCodeAt(s++)+-56613888)<128?p.push(h):(h<2048?p.push(h>>6&31|192):(h<65536?p.push(h>>12&15|224):p.push(h>>18&7|240,h>>12&63|128),p.push(h>>6&63|128)),p.push(63&h|128))}}this.addInt8(0),this.startVector(1,p.length,1),this.bb.setPosition(this.space-=p.length),s=0;for(var a=this.space,o=this.bb.bytes();s<p.length;s++)o[a++]=p[s];return this.endVector()},d.Builder.prototype.createLong=function(l,p){return d.Long.create(l,p)},d.ByteBuffer=function(l){this.bytes_=l,this.position_=0},d.ByteBuffer.allocate=function(l){return new d.ByteBuffer(new Uint8Array(l))},d.ByteBuffer.prototype.clear=function(){this.position_=0},d.ByteBuffer.prototype.bytes=function(){return this.bytes_},d.ByteBuffer.prototype.position=function(){return this.position_},d.ByteBuffer.prototype.setPosition=function(l){this.position_=l},d.ByteBuffer.prototype.capacity=function(){return this.bytes_.length},d.ByteBuffer.prototype.readInt8=function(l){return this.readUint8(l)<<24>>24},d.ByteBuffer.prototype.readUint8=function(l){return this.bytes_[l]},d.ByteBuffer.prototype.readInt16=function(l){return this.readUint16(l)<<16>>16},d.ByteBuffer.prototype.readUint16=function(l){return this.bytes_[l]|this.bytes_[l+1]<<8},d.ByteBuffer.prototype.readInt32=function(l){return this.bytes_[l]|this.bytes_[l+1]<<8|this.bytes_[l+2]<<16|this.bytes_[l+3]<<24},d.ByteBuffer.prototype.readUint32=function(l){return this.readInt32(l)>>>0},d.ByteBuffer.prototype.readInt64=function(l){return new d.Long(this.readInt32(l),this.readInt32(l+4))},d.ByteBuffer.prototype.readUint64=function(l){return new d.Long(this.readUint32(l),this.readUint32(l+4))},d.ByteBuffer.prototype.readFloat32=function(l){return d.int32[0]=this.readInt32(l),d.float32[0]},d.ByteBuffer.prototype.readFloat64=function(l){return d.int32[d.isLittleEndian?0:1]=this.readInt32(l),d.int32[d.isLittleEndian?1:0]=this.readInt32(l+4),d.float64[0]},d.ByteBuffer.prototype.writeInt8=function(l,p){this.bytes_[l]=p},d.ByteBuffer.prototype.writeUint8=function(l,p){this.bytes_[l]=p},d.ByteBuffer.prototype.writeInt16=function(l,p){this.bytes_[l]=p,this.bytes_[l+1]=p>>8},d.ByteBuffer.prototype.writeUint16=function(l,p){this.bytes_[l]=p,this.bytes_[l+1]=p>>8},d.ByteBuffer.prototype.writeInt32=function(l,p){this.bytes_[l]=p,this.bytes_[l+1]=p>>8,this.bytes_[l+2]=p>>16,this.bytes_[l+3]=p>>24},d.ByteBuffer.prototype.writeUint32=function(l,p){this.bytes_[l]=p,this.bytes_[l+1]=p>>8,this.bytes_[l+2]=p>>16,this.bytes_[l+3]=p>>24},d.ByteBuffer.prototype.writeInt64=function(l,p){this.writeInt32(l,p.low),this.writeInt32(l+4,p.high)},d.ByteBuffer.prototype.writeUint64=function(l,p){this.writeUint32(l,p.low),this.writeUint32(l+4,p.high)},d.ByteBuffer.prototype.writeFloat32=function(l,p){d.float32[0]=p,this.writeInt32(l,d.int32[0])},d.ByteBuffer.prototype.writeFloat64=function(l,p){d.float64[0]=p,this.writeInt32(l,d.int32[d.isLittleEndian?0:1]),this.writeInt32(l+4,d.int32[d.isLittleEndian?1:0])},d.ByteBuffer.prototype.getBufferIdentifier=function(){if(this.bytes_.length<this.position_+d.SIZEOF_INT+d.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier.");for(var l="",p=0;p<d.FILE_IDENTIFIER_LENGTH;p++)l+=String.fromCharCode(this.readInt8(this.position_+d.SIZEOF_INT+p));return l},d.ByteBuffer.prototype.__offset=function(l,p){var s=l-this.readInt32(l);return p<this.readInt16(s)?this.readInt16(s+p):0},d.ByteBuffer.prototype.__union=function(l,p){return l.bb_pos=p+this.readInt32(p),l.bb=this,l},d.ByteBuffer.prototype.__string=function(l,p){l+=this.readInt32(l);var s=this.readInt32(l),h="",f=0;if(l+=d.SIZEOF_INT,p===d.Encoding.UTF8_BYTES)return this.bytes_.subarray(l,l+s);for(;f<s;){var a,o=this.readUint8(l+f++);if(o<192)a=o;else{var t=this.readUint8(l+f++);if(o<224)a=(31&o)<<6|63&t;else{var e=this.readUint8(l+f++);a=o<240?(15&o)<<12|(63&t)<<6|63&e:(7&o)<<18|(63&t)<<12|(63&e)<<6|63&this.readUint8(l+f++)}}a<65536?h+=String.fromCharCode(a):(a-=65536,h+=String.fromCharCode(55296+(a>>10),56320+(1023&a)))}return h},d.ByteBuffer.prototype.__indirect=function(l){return l+this.readInt32(l)},d.ByteBuffer.prototype.__vector=function(l){return l+this.readInt32(l)+d.SIZEOF_INT},d.ByteBuffer.prototype.__vector_len=function(l){return this.readInt32(l+this.readInt32(l))},d.ByteBuffer.prototype.__has_identifier=function(l){if(l.length!=d.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: file identifier must be length "+d.FILE_IDENTIFIER_LENGTH);for(var p=0;p<d.FILE_IDENTIFIER_LENGTH;p++)if(l.charCodeAt(p)!=this.readInt8(this.position_+d.SIZEOF_INT+p))return!1;return!0},d.ByteBuffer.prototype.createLong=function(l,p){return d.Long.create(l,p)}}},__webpack_module_cache__={};function __webpack_require__(y){var n=__webpack_module_cache__[y];if(n!==void 0)return n.exports;var u=__webpack_module_cache__[y]={exports:{}};return __webpack_modules__[y].call(u.exports,u,u.exports,__webpack_require__),u.exports}__webpack_require__.n=y=>{var n=y&&y.__esModule?()=>y.default:()=>y;return __webpack_require__.d(n,{a:n}),n},__webpack_require__.d=(y,n)=>{for(var u in n)__webpack_require__.o(n,u)&&!__webpack_require__.o(y,u)&&Object.defineProperty(y,u,{enumerable:!0,get:n[u]})},__webpack_require__.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),__webpack_require__.o=(y,n)=>Object.prototype.hasOwnProperty.call(y,n),__webpack_require__.r=y=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(y,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(y,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(6018);return __webpack_exports__})())})(ortWeb_min$1);var ortWeb_minExports=ortWeb_min$1.exports,ortWeb_min=getDefaultExportFromCjs(ortWeb_minExports),ONNX_WEB=_mergeNamespaces({__proto__:null,default:ortWeb_min},[ortWeb_minExports]);let ONNX;const executionProviders=["wasm"];typeof process<"u"&&((tt=process==null?void 0:process.release)==null?void 0:tt.name)==="node"?(ONNX=sharp??ONNX_NODE,executionProviders.unshift("cpu")):(ONNX=ortWeb_min??ONNX_WEB,typeof navigator<"u"&&/iP(hone|od|ad).+16_4.+AppleWebKit/.test(navigator.userAgent)&&(ONNX.env.wasm.simd=!1));const{env:onnx_env}=ONNX,VERSION="2.5.0",WEB_CACHE_AVAILABLE=typeof self<"u"&&"caches"in self,FS_AVAILABLE=!isEmpty(sharp),PATH_AVAILABLE=!isEmpty(sharp),RUNNING_LOCALLY=FS_AVAILABLE&&PATH_AVAILABLE,__dirname=RUNNING_LOCALLY?sharp.dirname(sharp.dirname(sharp.fileURLToPath(self.location.href))):"./",DEFAULT_CACHE_DIR=RUNNING_LOCALLY?sharp.join(__dirname,"/.cache/"):null,DEFAULT_LOCAL_MODEL_PATH="/models/",localModelPath=RUNNING_LOCALLY?sharp.join(__dirname,DEFAULT_LOCAL_MODEL_PATH):DEFAULT_LOCAL_MODEL_PATH;onnx_env.wasm.wasmPaths=RUNNING_LOCALLY?sharp.join(__dirname,"/dist/"):`https://cdn.jsdelivr.net/npm/@xenova/transformers@${VERSION}/dist/`;const env={backends:{onnx:onnx_env,tfjs:{}},__dirname,version:VERSION,allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!0,localModelPath,useFS:FS_AVAILABLE,useBrowserCache:WEB_CACHE_AVAILABLE,useFSCache:FS_AVAILABLE,cacheDir:DEFAULT_CACHE_DIR,useCustomCache:!1,customCache:null};function isEmpty(y){return Object.keys(y).length===0}globalThis.ReadableStream||(globalThis.ReadableStream=sharp.ReadableStream);class FileResponse{constructor(n){jt(this,"_CONTENT_TYPE_MAP",{txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"});if(this.filePath=n,this.headers=new Headers,this.exists=sharp.existsSync(n),this.exists){this.status=200,this.statusText="OK";let u=sharp.statSync(n);this.headers.set("content-length",u.size.toString()),this.updateContentType();let d=this;this.body=new ReadableStream({start(l){d.arrayBuffer().then(p=>{l.enqueue(new Uint8Array(p)),l.close()})}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){const n=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",this._CONTENT_TYPE_MAP[n]??"application/octet-stream")}clone(){let n=new FileResponse(this.filePath);return n.exists=this.exists,n.status=this.status,n.statusText=this.statusText,n.headers=new Headers(this.headers),n}async arrayBuffer(){return(await sharp.promises.readFile(this.filePath)).buffer}async blob(){const n=await sharp.promises.readFile(this.filePath);return new Blob([n],{type:this.headers.get("content-type")})}async text(){return await sharp.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function isValidHttpUrl(y,n=null){let u;try{u=new URL(y)}catch{return!1}return n&&!n.includes(u.hostname)?!1:u.protocol==="http:"||u.protocol==="https:"}async function getFile(y){var n,u,d;if(env.useFS&&!isValidHttpUrl(y))return new FileResponse(y);if(typeof process<"u"&&((n=process==null?void 0:process.release)==null?void 0:n.name)==="node"){const l=!!((u=process.env)!=null&&u.TESTING_REMOTELY),p=env.version,s=new Headers;if(s.set("User-Agent",`transformers.js/${p}; is_ci/${l};`),isValidHttpUrl(y,["huggingface.co","hf.co"])){const f=(d=process.env)==null?void 0:d.HF_ACCESS_TOKEN;f&&s.set("Authorization",`Bearer ${f}`)}return fetch(y,{headers:s})}else return fetch(y)}const ERROR_MAPPING={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};function handleError(y,n,u){if(!u)return null;const d=ERROR_MAPPING[y]??`Error (${y}) occurred while trying to load file`;throw Error(`${d}: "${n}".`)}class FileCache{constructor(n){this.path=n}async match(n){let u=sharp.join(this.path,n),d=new FileResponse(u);if(d.exists)return d}async put(n,u){const d=Buffer.from(await u.arrayBuffer());let l=sharp.join(this.path,n);try{await sharp.promises.mkdir(sharp.dirname(l),{recursive:!0}),await sharp.promises.writeFile(l,d)}catch(p){console.warn("An error occurred while writing the file to cache:",p)}}}async function tryCache(y,...n){for(let u of n)try{let d=await y.match(u);if(d)return d}catch{continue}}async function getModelFile(y,n,u=!0,d={}){if(!env.allowLocalModels&&d.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");dispatchCallback(d.progress_callback,{status:"initiate",name:y,file:n});let l;if(!l&&env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{l=await caches.open("transformers-cache")}catch(c){console.warn("An error occurred while opening the browser cache:",c)}}if(!l&&env.useFSCache&&(l=new FileCache(d.cache_dir??env.cacheDir)),!l&&env.useCustomCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");const p=d.revision??"main";let s=pathJoin(y,n),h=pathJoin(env.localModelPath,s),f=pathJoin(env.remoteHost,env.remotePathTemplate.replaceAll("{model}",y).replaceAll("{revision}",p),n),a=p==="main"?s:pathJoin(y,p,n),o,t=l instanceof FileCache?a:f,e,r;if(l&&(r=await tryCache(l,h,t)),r===void 0){if(env.allowLocalModels)if(isValidHttpUrl(s)){if(d.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${s}.`)}else try{r=await getFile(h),o=h}catch(g){console.warn(`Unable to load from local path "${h}": "${g}"`)}if(r===void 0||r.status===404){if(d.local_files_only||!env.allowRemoteModels){if(u)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${h}".`);return null}if(r=await getFile(f),r.status!==200)return handleError(r.status,f,u);o=t}l&&r instanceof Response&&r.status===200&&(e=r.clone())}dispatchCallback(d.progress_callback,{status:"download",name:y,file:n});const i=await readResponse(r,c=>{dispatchCallback(d.progress_callback,{status:"progress",...c,name:y,file:n})});return e&&o&&await l.match(o)===void 0&&await l.put(o,e).catch(c=>{console.warn(`Unable to add response to browser cache: ${c}.`)}),dispatchCallback(d.progress_callback,{status:"done",name:y,file:n}),i}async function getModelJSON(y,n,u=!0,d={}){let l=await getModelFile(y,n,u,d);if(l===null)return{};let s=new TextDecoder("utf-8").decode(l);return JSON.parse(s)}async function readResponse(y,n){const u=y.headers.get("Content-Length");u===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let d=parseInt(u??"0"),l=new Uint8Array(d),p=0;const s=y.body.getReader();async function h(){const{done:f,value:a}=await s.read();if(f)return;let o=p+a.length;if(o>d){d=o;let e=new Uint8Array(d);e.set(l),l=e}l.set(a,p),p=o;const t=p/d*100;return n({progress:t,loaded:p,total:d}),h()}return await h(),l}function pathJoin(...y){return y=y.map((n,u)=>(u&&(n=n.replace(new RegExp("^/"),"")),u!==y.length-1&&(n=n.replace(new RegExp("/$"),"")),n)),y.join("/")}function transpose_data(y,n,u){const d=new Array(u.length),l=new Array(u.length);for(let h=u.length-1,f=1;h>=0;--h)l[h]=f,d[h]=n[u[h]],f*=d[h];const p=u.map((h,f)=>l[u.indexOf(f)]),s=new y.constructor(y.length);for(let h=0;h<y.length;++h){let f=0;for(let a=n.length-1,o=h;a>=0;--a)f+=o%n[a]*p[a],o=Math.floor(o/n[a]);s[f]=y[h]}return[s,d]}function softmax(y){const n=max(y)[0],u=y.map(p=>Math.exp(p-n)),d=u.reduce((p,s)=>p+s,0);return u.map(p=>p/d)}function log_softmax(y){return softmax(y).map(d=>Math.log(d))}function getTopItems(y,n=0){return y=Array.from(y).map((u,d)=>[d,u]).sort((u,d)=>d[1]-u[1]),n>0&&(y=y.slice(0,n)),y}function min(y){if(y.length===0)throw Error("Array must not be empty");let n=y[0],u=0;for(let d=1;d<y.length;++d)y[d]<n&&(n=y[d],u=d);return[n,u]}function max(y){if(y.length===0)throw Error("Array must not be empty");let n=y[0],u=0;for(let d=1;d<y.length;++d)y[d]>n&&(n=y[d],u=d);return[n,u]}function medianFilter(y,n){if(n%2===0||n<=0)throw new Error("Window size must be a positive odd number");const u=new y.constructor(y.length),d=new y.constructor(n),l=Math.floor(n/2);for(let p=0;p<y.length;++p){let s=0;for(let h=-l;h<=l;++h){let f=p+h;f<0?f=Math.abs(f):f>=y.length&&(f=2*(y.length-1)-f),d[s++]=y[f]}d.sort(),u[p]=d[l]}return u}function round(y,n){const u=Math.pow(10,n);return Math.round(y*u)/u}const ONNXTensor$1=ONNX.Tensor;class Tensor extends ONNXTensor$1{constructor(...n){return n[0]instanceof ONNX.Tensor?super(n[0].type,n[0].data,n[0].dims):super(...n),new Proxy(this,{get:(u,d)=>{if(typeof d=="string"){let l=Number(d);if(Number.isInteger(l))return u._getitem(l)}return u[d]},set:(u,d,l)=>u[d]=l})}*[Symbol.iterator](){const[n,...u]=this.dims;if(u.length>0){const d=u.reduce((l,p)=>l*p);for(let l=0;l<n;++l)yield this._subarray(l,d,u)}else yield*this.data}_getitem(n){const[u,...d]=this.dims;if(n=safeIndex(n,u),d.length>0){const l=d.reduce((p,s)=>p*s);return this._subarray(n,l,d)}else return new Tensor(this.type,[this.data[n]],d)}indexOf(n){for(let u=0;u<this.data.length;++u)if(this.data[u]==n)return u;return-1}_subarray(n,u,d){let l=this.data.subarray(n*u,(n+1)*u);return new Tensor(this.type,l,d)}item(){if(this.data.length!==1)throw new Error(`a Tensor with ${this.data.length} elements cannot be converted to Scalar`);return this.data[0]}tolist(){return reshape(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){for(let n=0;n<this.data.length;++n)this.data[n]=1/(1+Math.exp(-this.data[n]));return this}clone(){return new Tensor(this.type,this.data.slice(),this.dims.slice())}slice(...n){let u=[],d=[];for(let f=0;f<this.dims.length;++f){let a=n[f];if(a==null)d.push([0,this.dims[f]]),u.push(this.dims[f]);else if(typeof a=="number")a=safeIndex(a,this.dims[f],f),d.push([a,a+1]);else if(Array.isArray(a)&&a.length===2){if(a[0]>a[1])throw new Error(`Invalid slice: ${a}`);let o=[Math.max(a[0],0),Math.min(a[1],this.dims[f])];d.push(o),u.push(o[1]-o[0])}else throw new Error(`Invalid slice: ${a}`)}let l=d.map(([f,a])=>a-f),p=l.reduce((f,a)=>f*a),s=new this.data.constructor(p);const h=this.stride();for(let f=0;f<p;++f){let a=0;for(let o=l.length-1,t=f;o>=0;--o){const e=l[o];a+=(t%e+d[o][0])*h[o],t=Math.floor(t/e)}s[f]=this.data[a]}return new Tensor(this.type,s,u)}transpose(...n){return transpose(this,n)}sum(n=null,u=!1){return this.norm(1,n,u)}norm(n="fro",u=null,d=!1){if(n==="fro")n=2;else if(typeof n=="string")throw Error(`Unsupported norm: ${n}`);if(u===null){let s=this.data.reduce((h,f)=>h+f**n,0)**(1/n);return new Tensor(this.type,[s],[])}u=safeIndex(u,this.dims.length);const l=this.dims.slice();l[u]=1;const p=new this.data.constructor(this.data.length/this.dims[u]);for(let s=0;s<this.data.length;++s){let h=0;for(let f=this.dims.length-1,a=s,o=1;f>=0;--f){const t=this.dims[f];if(f!==u){const e=a%t;h+=e*o,o*=l[f]}a=Math.floor(a/t)}p[h]+=this.data[s]**n}if(n!==1)for(let s=0;s<p.length;++s)p[s]=p[s]**(1/n);return d||l.splice(u,1),new Tensor(this.type,p,l)}normalize_(n=2,u=1){u=safeIndex(u,this.dims.length);const d=this.norm(n,u,!0);for(let l=0;l<this.data.length;++l){let p=0;for(let s=this.dims.length-1,h=l,f=1;s>=0;--s){const a=this.dims[s];if(s!==u){const o=h%a;p+=o*f,f*=this.dims[s]}h=Math.floor(h/a)}this.data[l]/=d.data[p]}return this}normalize(n=2,u=1){return this.clone().normalize_(n,u)}stride(){return dimsToStride(this.dims)}squeeze(n=null){return new Tensor(this.type,this.data,calc_squeeze_dims(this.dims,n))}squeeze_(n=null){return this.dims=calc_squeeze_dims(this.dims,n),this}unsqueeze(n=null){return new Tensor(this.type,this.data,calc_unsqueeze_dims(this.dims,n))}unsqueeze_(n=null){return this.dims=calc_unsqueeze_dims(this.dims,n),this}flatten_(n=0,u=-1){u=(u+this.dims.length)%this.dims.length;let d=this.dims.slice(0,n),l=this.dims.slice(n,u+1),p=this.dims.slice(u+1);return this.dims=[...d,l.reduce((s,h)=>s*h,1),...p],this}flatten(n=0,u=-1){return this.clone().flatten_(n,u)}view(...n){let u=-1;for(let d=0;d<n.length;++d)if(n[d]===-1){if(u!==-1)throw new Error("Only one dimension can be inferred");u=d}if(u!==-1){const d=n.reduce((l,p,s)=>s!==u?l*p:l,1);n[u]=this.data.length/d}return new Tensor(this.type,this.data,n)}neg_(){for(let n=0;n<this.data.length;++n)this.data[n]=-this.data[n];return this}neg(){return this.clone().neg_()}}function reshape(y,n){const u=y.length,d=n.reduce((p,s)=>p*s);if(u!==d)throw Error(`cannot reshape array of size ${u} into shape (${n})`);let l=y;for(let p=n.length-1;p>=0;p--)l=l.reduce((s,h)=>{let f=s[s.length-1];return f.length<n[p]?f.push(h):s.push([h]),s},[[]]);return l[0]}function transpose(y,n){const[u,d]=transpose_data(y.data,y.dims,n);return new Tensor(y.type,u,d)}function calc_squeeze_dims(y,n){return y=y.slice(),n===null?y=y.filter(u=>u!==1):typeof n=="number"?y[n]===1&&y.splice(n,1):Array.isArray(n)&&(y=y.filter((u,d)=>u!==1||!n.includes(d))),y}function calc_unsqueeze_dims(y,n){return n=safeIndex(n,y.length+1),y=y.slice(),y.splice(n,0,1),y}function safeIndex(y,n,u=null){if(y<-n||y>=n)throw new Error(`IndexError: index ${y} is out of bounds for dimension${u===null?"":" "+u} with size ${n}`);return y<0&&(y=(y%n+n)%n),y}function cat(y,n=0){n=safeIndex(n,y[0].dims.length);const u=y[0].dims.slice();u[n]=y.reduce((s,h)=>s+h.dims[n],0);const d=u.reduce((s,h)=>s*h,1),l=new y[0].data.constructor(d),p=y[0].type;if(n===0){let s=0;for(let h of y)l.set(h.data,s),s+=h.data.length}else{let s=0;for(let h=0;h<y.length;++h){let f=y[h];for(let a=0;a<f.data.length;++a){let o=0;for(let t=f.dims.length-1,e=a,r=1;t>=0;--t){const i=f.dims[t];let c=e%i;t===n&&(c+=s),o+=c*r,r*=u[t],e=Math.floor(e/i)}l[o]=f.data[a]}s+=f.dims[n]}}return new Tensor(p,l,u)}function stack(y,n=0){return cat(y.map(u=>u.unsqueeze(n)),n)}function std_mean(y,n=null,u=1,d=!1){if(n===null){const a=y.data.reduce((r,i)=>r+i,0)/y.data.length,o=Math.sqrt(y.data.reduce((r,i)=>r+(i-a)**2,0)/(y.data.length-u)),t=new Tensor(y.type,[a],[]);return[new Tensor(y.type,[o],[]),t]}n=safeIndex(n,y.dims.length);const l=mean(y,n,d),p=y.dims.slice();p[n]=1;const s=new y.data.constructor(y.data.length/y.dims[n]);for(let f=0;f<y.data.length;++f){let a=0;for(let o=y.dims.length-1,t=f,e=1;o>=0;--o){const r=y.dims[o];if(o!==n){const i=t%r;a+=i*e,e*=p[o]}t=Math.floor(t/r)}s[a]+=(y.data[f]-l.data[a])**2}for(let f=0;f<s.length;++f)s[f]=Math.sqrt(s[f]/(y.dims[n]-u));return d||p.splice(n,1),[new Tensor(y.type,s,p),l]}function mean(y,n=null,u=!1){if(n===null){let p=y.data.reduce((s,h)=>s+h,0);return new Tensor(y.type,[p/y.data.length],[])}n=safeIndex(n,y.dims.length);const d=y.dims.slice();d[n]=1;const l=new y.data.constructor(y.data.length/y.dims[n]);for(let p=0;p<y.data.length;++p){let s=0;for(let h=y.dims.length-1,f=p,a=1;h>=0;--h){const o=y.dims[h];if(h!==n){const t=f%o;s+=t*a,a*=d[h]}f=Math.floor(f/o)}l[s]+=y.data[p]}if(y.dims[n]!==1)for(let p=0;p<l.length;++p)l[p]=l[p]/y.dims[n];return u||d.splice(n,1),new Tensor(y.type,l,d)}function dynamicTimeWarping(y){const[n,u]=y.dims,d=[n+1,u+1],l=new Tensor("float32",new Float32Array(d[0]*d[1]).fill(1/0),d),p=new Tensor("float32",new Float32Array(d[0]*d[1]).fill(-1),d);l[0].data[0]=0;for(let o=1;o<u+1;++o)for(let t=1;t<n+1;++t){const e=l[t-1][o-1].item(),r=l[t-1][o].item(),i=l[t][o-1].item();let c,g;e<r&&e<i?(c=e,g=0):r<e&&r<i?(c=r,g=1):(c=i,g=2),l[t].data[o]=y[t-1][o-1].item()+c,p[t].data[o]=g}let s=n,h=u;p.data.fill(2,0,d[1]);for(let o=0;o<d[0];++o)p[o].data[0]=1;let f=[],a=[];for(;s>0||h>0;)switch(f.push(s-1),a.push(h-1),p[s][h].item()){case 0:--s,--h;break;case 1:--s;break;case 2:--h;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${s}, ${h}]. Please file a bug report.`)}return f.reverse(),a.reverse(),[f,a]}function dimsToStride(y){const n=new Array(y.length);for(let u=y.length-1,d=1;u>=0;--u)n[u]=d,d*=y[u];return n}async function loadTokenizer(y,n){return await Promise.all([getModelJSON(y,"tokenizer.json",!0,n),getModelJSON(y,"tokenizer_config.json",!0,n)])}function createPattern(y,n=!0){return y.Regex?new RegExp(n?y.Regex:`(${y.Regex})`,"gu"):y.String?y.String:(console.warn("Unknown pattern type:",y),null)}function clean_up_tokenization(y){return y.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n\'t/g,"n't").replace(/ \'m/g,"'m").replace(/ \'s/g,"'s").replace(/ \'ve/g,"'ve").replace(/ \'re/g,"'re")}function fuse(y,n){let u=[],d=0;for(;d<y.length;){if(u.push(y[d]),y[d]!==n){++d;continue}for(;d<y.length&&y[d]===n;)++d}return u}function whitespace_split(y){return y.match(/\S+/g)||[]}const PUNCTUATION_REGEX="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E";class TokenizerModel extends Callable{constructor(n){super(),this.config=n,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=!1}static fromConfig(n,...u){switch(n.type){case"WordPiece":return new WordPieceTokenizer(n);case"Unigram":return new Unigram(n,...u);case"BPE":return new BPE(n,...u);default:throw new Error(`Unknown TokenizerModel type: ${n.type}`)}}_call(n){return this.encode(n)}encode(n){throw Error("encode should be implemented in subclass.")}convert_tokens_to_ids(n){let u=n.map(d=>this.tokens_to_ids.get(d)??this.unk_token_id);return this.fuse_unk&&(u=fuse(u,this.unk_token_id)),u}convert_ids_to_tokens(n){return n.map(u=>this.vocab[u]??this.unk_token)}}class WordPieceTokenizer extends TokenizerModel{constructor(n){super(n),this.tokens_to_ids=n.vocab,this.unk_token_id=this.tokens_to_ids.get(n.unk_token),this.unk_token=n.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[u,d]of this.tokens_to_ids)this.vocab[d]=u}encode(n){let u=[];for(let d of n){let l=[...d],p=!1,s=0,h=[];for(;s<l.length;){let f=l.length,a=null;for(;s<f;){let o=l.slice(s,f).join("");if(s>0&&(o=this.config.continuing_subword_prefix+o),this.tokens_to_ids.has(o)){a=o;break}--f}if(a===null){p=!0;break}h.push(a),s=f}p?u.push(this.unk_token):u.push(...h)}return u}}class Unigram extends TokenizerModel{constructor(n,u){super(n),this.vocab=new Array(n.vocab.size),this.scores=new Array(n.vocab.size);let d=0;n.vocab.forEach((l,p)=>{this.vocab[d]=p,this.scores[d]=l,++d}),this.unk_token_id=n.unk_id,this.unk_token=this.vocab[n.unk_id],this.tokens_to_ids=new Map(this.vocab.map((l,p)=>[l,p])),this.bosToken=" ",this.bosTokenId=this.tokens_to_ids.get(this.bosToken),this.eosToken=u.eos_token,this.eosTokenId=this.tokens_to_ids.get(this.eosToken),this.unkToken=this.vocab[this.unk_token_id],this.minScore=min(this.scores)[0],this.unkScore=this.minScore-10,this.scores[this.unk_token_id]=this.unkScore,this.trie=new CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(n){const u=n.sentence,d=u.length;let l=0;for(;l<d;){let s=!1;for(let h of this.trie.commonPrefixSearch(u.slice(l))){const f=this.tokens_to_ids.get(h),a=this.scores[f],o=h.length;n.insert(l,o,a,f),!s&&o===1&&(s=!0)}s||n.insert(l,1,this.unkScore,this.unk_token_id),l+=1}}tokenize(n){const u=new TokenLattice(n,this.bosTokenId,this.eosTokenId);return this.populateNodes(u),u.tokens()}encode(n){let u=[];for(let d of n){const l=this.tokenize(d);u.push(...l)}return u}}const BYTES_TO_UNICODE=(()=>{const y=[...Array.from({length:"~".charCodeAt(0)-"!".charCodeAt(0)+1},(l,p)=>p+"!".charCodeAt(0)),...Array.from({length:"¬".charCodeAt(0)-"¡".charCodeAt(0)+1},(l,p)=>p+"¡".charCodeAt(0)),...Array.from({length:"ÿ".charCodeAt(0)-"®".charCodeAt(0)+1},(l,p)=>p+"®".charCodeAt(0))];let n=y.slice(),u=0;for(let l=0;l<256;++l)y.includes(l)||(y.push(l),n.push(256+u),u+=1);let d=n.map(l=>String.fromCharCode(l));return Object.fromEntries(y.map((l,p)=>[l,d[p]]))})(),UNICODE_TO_BYTES=reverseDictionary(BYTES_TO_UNICODE);class BPE extends TokenizerModel{constructor(n){super(n),this.BPE_SPLIT_TOKEN=" ",this.tokens_to_ids=n.vocab,this.unk_token_id=this.tokens_to_ids.get(n.unk_token),this.unk_token=n.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[u,d]of this.tokens_to_ids)this.vocab[d]=u;this.bpe_ranks=new Map(n.merges.map((u,d)=>[u,d])),this.merges=n.merges.map(u=>u.split(this.BPE_SPLIT_TOKEN)),this.end_of_word_suffix=n.end_of_word_suffix,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.cache=Object.create(null),this.fuse_unk??(this.fuse_unk=this.config.fuse_unk)}get_pairs(n){let u=new Set,d=n[0];for(let l=1;l<n.length;++l){let p=n[l];u.add(d+this.BPE_SPLIT_TOKEN+p),d=p}return u}_get_best_bigram(n){let u,d=1/0;for(let l of n){let p=this.bpe_ranks.get(l)??1/0;p<d&&(u=l,d=p)}return u}bpe(n){if(n in this.cache)return this.cache[n];let u=Array.from(n);this.end_of_word_suffix&&(u[u.length-1]+=this.end_of_word_suffix);let d=this.get_pairs(u);if(!d.size)return this.end_of_word_suffix&&(n+=this.end_of_word_suffix),n;for(;;){let p=this._get_best_bigram(d);if(!this.bpe_ranks.has(p))break;let[s,h]=p.split(this.BPE_SPLIT_TOKEN),f=[],a=0,o=-1;for(;a<u.length;){if(o=u.indexOf(s,a),o===-1){for(let t=a;t<u.length;++t)f.push(u[t]);break}for(let t=a;t<o;++t)f.push(u[t]);a=o,u[a]===s&&a<u.length-1&&u[a+1]===h?(f.push(s+h),a+=2):(f.push(u[a]),a+=1)}if(u=f,u.length===1)break;d=this.get_pairs(u)}let l=u.join(this.BPE_SPLIT_TOKEN);return this.cache[n]=l,l}encode(n){let u=[];for(let d of n){let l=this.bpe(d).split(this.BPE_SPLIT_TOKEN);for(let p of l)this.tokens_to_ids.has(p)?u.push(p):this.byte_fallback?u.push(...Array.from(this.text_encoder.encode(p)).map(s=>`<0x${s.toString(16).toUpperCase().padStart(2,"0")}>`)):u.push(this.unk_token)}return u}}class Normalizer extends Callable{constructor(n){super(),this.config=n}static fromConfig(n){if(n===null)return null;switch(n.type){case"BertNormalizer":return new BertNormalizer(n);case"Precompiled":return new Precompiled(n);case"Sequence":return new NormalizerSequence(n);case"Replace":return new Replace(n);case"NFC":return new NFC(n);case"NFKD":return new NFKD(n);case"StripAccents":return new StripAccents(n);case"Lowercase":return new Lowercase(n);case"Prepend":return new Prepend(n);default:throw new Error(`Unknown Normalizer type: ${n.type}`)}}normalize(n){throw Error("normalize should be implemented in subclass.")}_call(n){return this.normalize(n)}}class Replace extends Normalizer{normalize(n){let u=createPattern(this.config.pattern);return u===null||(n=n.replaceAll(u,this.config.content)),n}}class NFC extends Normalizer{normalize(n){return n=n.normalize("NFC"),n}}class NFKD extends Normalizer{normalize(n){return n=n.normalize("NFKD"),n}}class StripAccents extends Normalizer{normalize(n){return n=n.replace(/[\u0300-\u036f]/g,""),n}}class Lowercase extends Normalizer{normalize(n){return n=n.toLowerCase(),n}}class Prepend extends Normalizer{normalize(n){return n=this.config.prepend+n,n}}class NormalizerSequence extends Normalizer{constructor(n){super(n),this.normalizers=n.normalizers.map(u=>Normalizer.fromConfig(u))}normalize(n){return this.normalizers.reduce((u,d)=>d.normalize(u),n)}}class BertNormalizer extends Normalizer{_tokenize_chinese_chars(n){let u=[];for(let d=0;d<n.length;++d){let l=n[d],p=l.charCodeAt(0);this._is_chinese_char(p)?(u.push(" "),u.push(l),u.push(" ")):u.push(l)}return u.join("")}_is_chinese_char(n){return n>=19968&&n<=40959||n>=13312&&n<=19903||n>=131072&&n<=173791||n>=173824&&n<=177983||n>=177984&&n<=178207||n>=178208&&n<=183983||n>=63744&&n<=64255||n>=194560&&n<=195103}stripAccents(n){return n.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}normalize(n){return this.config.handle_chinese_chars&&(n=this._tokenize_chinese_chars(n)),this.config.lowercase?(n=n.toLowerCase(),this.config.strip_accents!==!1&&(n=this.stripAccents(n))):this.config.strip_accents&&(n=this.stripAccents(n)),n}}class PreTokenizer extends Callable{static fromConfig(n){if(n===null)return null;switch(n.type){case"BertPreTokenizer":return new BertPreTokenizer(n);case"Sequence":return new PreTokenizerSequence(n);case"WhitespaceSplit":return new WhitespaceSplit(n);case"Metaspace":return new MetaspacePreTokenizer(n);case"ByteLevel":return new ByteLevelPreTokenizer(n);case"Split":return new SplitPreTokenizer(n);case"Punctuation":return new PunctuationPreTokenizer(n);case"Digits":return new DigitsPreTokenizer(n);default:throw new Error(`Unknown PreTokenizer type: ${n.type}`)}}pre_tokenize_text(n){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(n){let u=[];return Array.isArray(n)?u=n.map(d=>this.pre_tokenize_text(d)):u=this.pre_tokenize_text(n),u.flat()}_call(n){return this.pre_tokenize(n)}}class BertPreTokenizer extends PreTokenizer{constructor(n){super(),this.pattern=new RegExp(`[^\\s${PUNCTUATION_REGEX}]+|[${PUNCTUATION_REGEX}]`,"gu")}pre_tokenize_text(n){return n.trim().match(this.pattern)||[]}}class ByteLevelPreTokenizer extends PreTokenizer{constructor(n){super(),this.config=n,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=BYTES_TO_UNICODE,this.text_encoder=new TextEncoder}pre_tokenize_text(n){return(this.use_regex?n.match(this.pattern)||[]:[n]).map(d=>(this.add_prefix_space&&!d.startsWith(" ")&&(d=" "+d),d=Array.from(this.text_encoder.encode(d),l=>this.byte_encoder[l]).join(""),d))}}class SplitPreTokenizer extends PreTokenizer{constructor(n){super(),this.config=n,this.pattern=createPattern(this.config.pattern,this.config.invert)}pre_tokenize_text(n){return this.pattern===null?[]:this.config.invert?n.match(this.pattern)||[]:n.split(this.pattern).filter(u=>u)}}class PunctuationPreTokenizer extends PreTokenizer{constructor(n){super(),this.config=n,this.pattern=new RegExp(`[^${PUNCTUATION_REGEX}]+|[${PUNCTUATION_REGEX}]+`,"gu")}pre_tokenize_text(n){return n.match(this.pattern)||[]}}class DigitsPreTokenizer extends PreTokenizer{constructor(n){super(),this.config=n;const u=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(u,"gu")}pre_tokenize_text(n){return n.match(this.pattern)||[]}}class PostProcessor extends Callable{constructor(n){super(),this.config=n}static fromConfig(n){if(n===null)return null;switch(n.type){case"TemplateProcessing":return new TemplateProcessing(n);case"ByteLevel":return new ByteLevelPostProcessor(n);case"RobertaProcessing":return new RobertaProcessing(n);default:throw new Error(`Unknown PostProcessor type: ${n.type}`)}}post_process(n,...u){throw Error("post_process should be implemented in subclass.")}_call(n,...u){return this.post_process(n,...u)}}class RobertaProcessing extends PostProcessor{constructor(n){super(n),this.cls=n.cls[0],this.sep=n.sep[0]}post_process(n,u=null){return n=mergeArrays([this.cls],n,[this.sep]),u!==null&&(n=mergeArrays(n,[this.sep],u,[this.sep])),n}}class TemplateProcessing extends PostProcessor{constructor(n){super(n),this.single=n.single,this.pair=n.pair}post_process(n,u=null){let d=u===null?this.single:this.pair,l=[];for(let p of d)"SpecialToken"in p?l.push(p.SpecialToken.id):"Sequence"in p&&(p.Sequence.id==="A"?l=mergeArrays(l,n):p.Sequence.id==="B"&&(l=mergeArrays(l,u)));return l}}class ByteLevelPostProcessor extends PostProcessor{post_process(n){return n}}class Decoder extends Callable{constructor(n){super(),this.config=n,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=n.trim_offsets}static fromConfig(n){switch(n.type){case"WordPiece":return new WordPieceDecoder(n);case"Metaspace":return new MetaspaceDecoder(n);case"ByteLevel":return new ByteLevelDecoder(n);case"Replace":return new ReplaceDecoder(n);case"ByteFallback":return new ByteFallback(n);case"Fuse":return new FuseDecoder(n);case"Strip":return new StripDecoder(n);case"Sequence":return new DecoderSequence(n);default:throw new Error(`Unknown Decoder type: ${n.type}`)}}_call(n){return this.decode(n)}decode(n){return this.decode_chain(n).join("")}decode_chain(n){throw Error("`decode_chain` should be implemented in subclass.")}}class ReplaceDecoder extends Decoder{constructor(n){super(n)}decode_chain(n){let u=createPattern(this.config.pattern);return u===null?n:n.map(d=>d.replaceAll(u,this.config.content))}}class ByteFallback extends Decoder{constructor(n){super(n),this.text_decoder=new TextDecoder}decode_chain(n){let u=[],d=[];for(let l of n){let p=null;if(l.length===6&&l.startsWith("<0x")&&l.endsWith(">")){let s=parseInt(l.slice(3,5),16);isNaN(s)||(p=s)}if(p!==null)d.push(p);else{if(d.length>0){let s=this.text_decoder.decode(Uint8Array.from(d));u.push(s),d=[]}u.push(l)}}if(d.length>0){let l=this.text_decoder.decode(Uint8Array.from(d));u.push(l),d=[]}return u}}class FuseDecoder extends Decoder{constructor(n){super(n)}decode_chain(n){return[n.join("")]}}class StripDecoder extends Decoder{constructor(n){super(n),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(n){return n.map(u=>{let d=0;for(let p=0;p<this.start&&u[p]===this.content;++p){d=p+1;continue}let l=u.length;for(let p=0;p<this.stop;++p){const s=u.length-p-1;if(u[s]===this.content){l=s;continue}else break}return u.slice(d,l)})}}class WordPieceDecoder extends Decoder{constructor(n){super(n),this.cleanup=n.cleanup}decode_chain(n){return n.map((u,d)=>(d!==0&&(u.startsWith(this.config.prefix)?u=u.replace(this.config.prefix,""):u=" "+u),this.cleanup&&(u=clean_up_tokenization(u)),u))}}class ByteLevelDecoder extends Decoder{constructor(n){super(n),this.byte_decoder=UNICODE_TO_BYTES,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(n){let u=n.join(""),d=new Uint8Array([...u].map(p=>this.byte_decoder[p]));return this.text_decoder.decode(d)}decode_chain(n){let u=[],d=[];for(let l of n)this.added_tokens.includes(l)?(d.length>0&&(u.push(this.convert_tokens_to_string(d)),d=[]),u.push(l)):d.push(l);return d.length>0&&u.push(this.convert_tokens_to_string(d)),u}}class DecoderSequence extends Decoder{constructor(n){super(n),this.decoders=n.decoders.map(u=>Decoder.fromConfig(u))}decode_chain(n){return this.decoders.reduce((u,d)=>d.decode_chain(u),n)}}class MetaspacePreTokenizer extends PreTokenizer{constructor(n){super(),this.addPrefixSpace=n.add_prefix_space,this.replacement=n.replacement,this.strRep=n.str_rep||this.replacement}pre_tokenize(n){typeof n=="string"&&(n=n.trimStart().split(/\s+/));const u=[];for(let d of n){let l=d.replaceAll(" ",this.strRep);this.addPrefixSpace&&!l.startsWith(this.replacement)&&(l=this.strRep+l),u.push(l)}return u}}class MetaspaceDecoder extends Decoder{constructor(n){super(n),this.addPrefixSpace=n.add_prefix_space,this.replacement=n.replacement}decode_chain(n){let u=[];for(let d=0;d<n.length;++d){let l=n[d].replaceAll(this.replacement," ");this.addPrefixSpace&&d==0&&l.startsWith(" ")&&(l=l.substring(1)),u.push(l)}return u}}class Precompiled extends Normalizer{constructor(n){super(n),this.charsmap=n.precompiled_charsmap}normalize(n){return n=n.normalize("NFKC"),n}}class PreTokenizerSequence extends PreTokenizer{constructor(n){super(),this.tokenizers=n.pretokenizers.map(u=>PreTokenizer.fromConfig(u))}pre_tokenize_text(n){return typeof n=="string"&&(n=[n]),this.tokenizers.reduce((u,d)=>d.pre_tokenize(u),n)}}class WhitespaceSplit extends PreTokenizer{constructor(n){super()}pre_tokenize_text(n){return whitespace_split(n)}}class PreTrainedTokenizer extends Callable{constructor(n,u){super(),this.normalizer=Normalizer.fromConfig(n.normalizer),this.pre_tokenizer=PreTokenizer.fromConfig(n.pre_tokenizer),n.model.vocab&&(Array.isArray(n.model.vocab)||(n.model.vocab=Object.entries(n.model.vocab)),n.model.vocab=new Map(n.model.vocab)),this.model=TokenizerModel.fromConfig(n.model,u),this.post_processor=PostProcessor.fromConfig(n.post_processor),this.decoder=Decoder.fromConfig(n.decoder),this.decoder.end_of_word_suffix=this.model.end_of_word_suffix,this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(let d of n.added_tokens){let l=d.id,p=d.content;this.added_tokens.push(p),this.model.tokens_to_ids.set(p,l),this.model.vocab[l]=p,d.special&&(this.special_tokens.push(p),this.all_special_ids.push(l))}this.decoder.added_tokens=this.added_tokens,this.added_tokens_regex=new RegExp("("+this.added_tokens.map(escapeRegExp).join("|")+")"),this.mask_token=this.getToken(u,"mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken(u,"pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken(u,"sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.model_max_length=u.model_max_length,this.remove_space=u.remove_space,this.clean_up_tokenization_spaces=u.clean_up_tokenization_spaces??!0,this.padding_side="right"}getToken(n,...u){for(let d of u){let l=n[d];if(l)if(typeof l=="object"){if(l.__type==="AddedToken")return l.content;throw Error(`Unknown token: ${l}`)}else return l}return null}static async from_pretrained(n,{progress_callback:u=null,config:d=null,cache_dir:l=null,local_files_only:p=!1,revision:s="main"}={}){let h=await loadTokenizer(n,{progress_callback:u,config:d,cache_dir:l,local_files_only:p,revision:s});return new this(...h)}prepare_model_inputs(n){return n}_call(n,{text_pair:u=null,padding:d=!1,truncation:l=null,max_length:p=null,return_tensor:s=!0}={}){let h;if(Array.isArray(n)){if(n.length===0)throw Error("text array must be non-empty");if(u!==null){if(Array.isArray(u)){if(n.length!==u.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");h=n.map((t,e)=>this.encode(t,u[e]))}else h=n.map(t=>this.encode(t))}else{if(n===null)throw Error("text may not be null");if(Array.isArray(u))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");h=[this.encode(n,u)]}let f=max(h.map(t=>t.length))[0];p===null&&(p=f),p=Math.min(p,this.model_max_length);let a=[];if(d||l)for(let t=0;t<h.length;++t)if(h[t].length===p){a.push(new Array(h[t].length).fill(1));continue}else if(h[t].length>p)l&&(h[t]=h[t].slice(0,p)),a.push(new Array(h[t].length).fill(1));else if(d){let e=p-h[t].length;this.padding_side==="right"?(a.push(new Array(h[t].length).fill(1).concat(new Array(e).fill(0))),h[t].push(...new Array(e).fill(this.pad_token_id))):(a.push(new Array(e).fill(0).concat(new Array(h[t].length).fill(1))),h[t].unshift(...new Array(e).fill(this.pad_token_id)))}else a.push(new Array(h[t].length).fill(1));else a=h.map(t=>new Array(t.length).fill(1));if(s){if(!(d&&l)&&h.some(e=>e.length!==h[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");let t=[h.length,h[0].length];h=new Tensor("int64",BigInt64Array.from(h.flat().map(BigInt)),t),a=new Tensor("int64",BigInt64Array.from(a.flat().map(BigInt)),t)}else Array.isArray(n)||(h=h[0],a=a[0]);let o={input_ids:h,attention_mask:a};return o=this.prepare_model_inputs(o),o}_encode_text(n){return n===null?null:n.split(this.added_tokens_regex).filter(l=>l).map(l=>{if(this.added_tokens.includes(l))return l;{this.remove_space===!0&&(l=l.trim().split(/\s+/).join(" ")),this.normalizer!==null&&(l=this.normalizer(l));let p=this.pre_tokenizer!==null?this.pre_tokenizer(l):[l];return this.model(p)}}).flat()}encode(n,u=null){let d=this._encode_text(n),l=this._encode_text(u),p=this.post_processor!==null?this.post_processor(d,l):mergeArrays(d??[],l??[]);return this.model.convert_tokens_to_ids(p)}batch_decode(n,u={}){return n.map(d=>this.decode(d,u))}decode(n,u={}){if(!Array.isArray(n)||n.length===0||!isIntegralNumber(n[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(n,u)}decode_single(n,{skip_special_tokens:u=!1,clean_up_tokenization_spaces:d=null}){let l=this.model.convert_ids_to_tokens(n);u&&(l=l.filter(s=>!this.special_tokens.includes(s)));let p=this.decoder(l);return this.decoder.end_of_word_suffix&&(p=p.replaceAll(this.decoder.end_of_word_suffix," "),u&&(p=p.trim())),(d??this.clean_up_tokenization_spaces)&&(p=clean_up_tokenization(p)),p}}function add_token_types(y){if(y.input_ids instanceof Tensor)y.token_type_ids=new Tensor("int64",new BigInt64Array(y.input_ids.data.length),y.input_ids.dims);else if(Array.isArray(y.input_ids))Array.isArray(y.input_ids[0])?y.token_type_ids=y.input_ids.map(n=>new Array(n.length).fill(0)):y.token_type_ids=new Array(y.input_ids.length).fill(0);else throw new Error("Input ids must be a Tensor or an Array");return y}class BertTokenizer extends PreTrainedTokenizer{prepare_model_inputs(n){return add_token_types(n)}}class AlbertTokenizer extends PreTrainedTokenizer{prepare_model_inputs(n){return add_token_types(n)}}class MobileBertTokenizer extends PreTrainedTokenizer{prepare_model_inputs(n){return add_token_types(n)}}class SqueezeBertTokenizer extends PreTrainedTokenizer{prepare_model_inputs(n){return add_token_types(n)}}class DistilBertTokenizer extends PreTrainedTokenizer{}class T5Tokenizer extends PreTrainedTokenizer{}class GPT2Tokenizer extends PreTrainedTokenizer{}class BartTokenizer extends PreTrainedTokenizer{}class RobertaTokenizer extends PreTrainedTokenizer{}class BloomTokenizer extends PreTrainedTokenizer{}class LlamaTokenizer extends PreTrainedTokenizer{}class XLMRobertaTokenizer extends PreTrainedTokenizer{}class MPNetTokenizer extends PreTrainedTokenizer{}class FalconTokenizer extends PreTrainedTokenizer{prepare_model_inputs(n){return add_token_types(n)}}class GPTNeoXTokenizer extends PreTrainedTokenizer{}class NllbTokenizer extends PreTrainedTokenizer{constructor(n,u){super(n,u),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(d=>this.languageRegex.test(d))}_build_translation_inputs(n,u,d){if(!this.language_codes.includes(d.tgt_lang))throw new Error(`Target language code "${d.tgt_lang}" is not valid. Must be one of: {${this.language_codes.join(", ")}}`);if(d.src_lang!==void 0){if(!this.language_codes.includes(d.src_lang))throw new Error(`Source language code "${d.src_lang}" is not valid. Must be one of: {${this.language_codes.join(", ")}}`);for(let l of this.post_processor.config.single)if("SpecialToken"in l&&this.languageRegex.test(l.SpecialToken.id)){l.SpecialToken.id=d.src_lang;break}}return d.forced_bos_token_id=this.model.convert_tokens_to_ids([d.tgt_lang])[0],this._call(n,u)}}const WHISPER_LANGUAGES=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],WHISPER_LANGUAGE_MAPPING=new Map(WHISPER_LANGUAGES),WHISPER_TO_LANGUAGE_CODE_MAPPING=new Map([...WHISPER_LANGUAGES.map(([y,n])=>[n,y]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);class WhisperTokenizer extends PreTrainedTokenizer{_decode_asr(n,{return_timestamps:u=!1,return_language:d=!1,time_precision:l=null,force_full_sequences:p=!0}={}){if(l===null)throw Error("Must specify time_precision");let s=null;const h=u==="word";function f(){return{language:s,timestamp:[null,null],text:""}}const a=[];let o=f(),t=0;const e=this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1;let r=[],i=[],c=!1,g=null;const m=new Set(this.all_special_ids);for(let w of n){const v=w.tokens,S=h?w.token_timestamps:null;let O=null,E=e;if("stride"in w){const[C,B,F]=w.stride;if(t-=B,g=C-F,B&&(E=B/l+e),F)for(let N=v.length-1;N>=0;--N){const H=v[N];if(H>=e){if(O!==null&&(H-e)*l<g)break;O=H}}}let T=[],I=[];for(let C=0;C<v.length;++C){const B=v[C];if(m.has(B)){const F=this.decode([B]);if(F[0]==="["&&F[F.length-1]==="]"){const N=WHISPER_LANGUAGE_MAPPING.get(F.slice(1,-1));if(N!==void 0){if(s!==null&&N!==s&&!u){r.push(T);const H=this.findLongestCommonSequence(r)[0],$=this.decode(H);o.text=$,a.push(o),r=[],T=[],o=f()}s=o.language=N}}}else if(B>=e){const F=(B-e)*l+t,N=round(F,2);if(O!==null&&B>=O)c=!0;else if(c||r.length>0&&B<E)c=!1;else if(o.timestamp[0]===null)o.timestamp[0]=N;else if(N!==o.timestamp[0]){o.timestamp[1]=N,r.push(T),h&&i.push(I);const[H,$]=this.findLongestCommonSequence(r,i),z=this.decode(H);o.text=z,h&&(o.words=this.collateWordTimestamps(H,$,s)),a.push(o),r=[],T=[],i=[],I=[],o=f()}}else if(T.push(B),h){let F=round(S[C]+t,2),N;C+1<S.length?N=round(S[C+1]+t,2):N=null,I.push([F,N])}}if("stride"in w){const[C,B,F]=w.stride;t+=C-F}T.length>0?(r.push(T),h&&i.push(I)):r.every(C=>C.length===0)&&(o=f(),r=[],T=[],i=[],I=[])}if(r.length>0){if(p&&u)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");const[w,v]=this.findLongestCommonSequence(r,i),S=this.decode(w);o.text=S,h&&(o.words=this.collateWordTimestamps(w,v,s)),a.push(o)}let b=Object.create(null);const _=a.map(w=>w.text).join("");if(u||d){for(let w=0;w<a.length;++w){const v=a[w];u||delete v.timestamp,d||delete v.language}if(h){let w=[];for(let v of a)for(let S of v.words)w.push(S);b={chunks:w}}else b={chunks:a}}return[_,b]}findLongestCommonSequence(n,u=null){let d=n[0],l=d.length,p=[];const s=Array.isArray(u)&&u.length>0;let h=s?[]:null,f=s?u[0]:null;for(let a=1;a<n.length;++a){const o=n[a];let t=0,e=[l,l,0,0];const r=o.length;for(let w=1;w<l+r;++w){const v=w/1e4,S=Math.max(0,l-w),O=Math.min(l,l+r-w),E=d.slice(S,O),T=Math.max(0,w-l),I=Math.min(r,w),C=o.slice(T,I);if(E.length!==C.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");const B=E.filter((N,H)=>N===C[H]).length,F=B/w+v;B>1&&F>t&&(t=F,e=[S,O,T,I])}const[i,c,g,m]=e,b=Math.floor((c+i)/2),_=Math.floor((m+g)/2);p.push(...d.slice(0,b)),d=o.slice(_),l=d.length,s&&(h.push(...f.slice(0,b)),f=u[a].slice(_))}return p.push(...d),s?(h.push(...f),[p,h]):[p,[]]}collateWordTimestamps(n,u,d){let[l,p,s]=this.combineTokensIntoWords(n,d),h=[];for(let f=0;f<l.length;++f){const a=s[f];h.push({text:l[f],timestamp:[u[a.at(0)][0],u[a.at(-1)][1]]})}return h}combineTokensIntoWords(n,u,d=`"'“¡¿([{-`,l=`"'.。,,!!??::”)]}、`){u=u??"english";let p,s,h;return["chinese","japanese","thai","lao","myanmar"].includes(u)?[p,s,h]=this.splitTokensOnUnicode(n):[p,s,h]=this.splitTokensOnSpaces(n),this.mergePunctuations(p,s,h,d,l)}decode(n,u){let d;return u&&u.decode_with_timestamps?d=this.decodeWithTimestamps(n,u):d=super.decode(n,u),d}decodeWithTimestamps(n,u){const d=(u==null?void 0:u.time_precision)??.02,l=Array.from(this.all_special_ids).at(-1)+1;let p=[[]];for(let s of n)if(s>=l){let h=(s-l)*d;h=round(h,2),p.push(`<|${h}|>`),p.push([])}else p[p.length-1].push(s);return p=p.map(s=>typeof s=="string"?s:super.decode(s,u)),p.join("")}splitTokensOnUnicode(n){const u=this.decode(n,{decode_with_timestamps:!0}),d="�";let l=[],p=[],s=[],h=[],f=[],a=0;for(let o=0;o<n.length;++o){const t=n[o];h.push(t),f.push(o);const e=this.decode(h,{decode_with_timestamps:!0});(!e.includes(d)||u[a+e.indexOf(d)]===d)&&(l.push(e),p.push(h),s.push(f),h=[],f=[],a+=e.length)}return[l,p,s]}splitTokensOnSpaces(n){let[u,d,l]=this.splitTokensOnUnicode(n),p=[],s=[],h=[];const f=new RegExp(`[${PUNCTUATION_REGEX}]`);for(let a=0;a<u.length;++a){const o=u[a],t=d[a],e=l[a],r=t[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),i=o.startsWith(" "),c=o.trim(),g=f.test(c);if(r||i||g||p.length===0)p.push(o),s.push(t),h.push(e);else{const m=p.length-1;p[m]+=o,s[m].push(...t),h[m].push(...e)}}return[p,s,h]}mergePunctuations(n,u,d,l,p){let s=structuredClone(n),h=structuredClone(u),f=structuredClone(d),a=s.length-2,o=s.length-1;for(;a>=0;)s[a].startsWith(" ")&&l.includes(s[a].trim())?(s[o]=s[a]+s[o],h[o]=mergeArrays(h[a],h[o]),f[o]=mergeArrays(f[a],f[o]),s[a]="",h[a]=[],f[a]=[]):o=a,--a;for(a=0,o=1;o<s.length;)!s[a].endsWith(" ")&&p.includes(s[o])?(s[a]+=s[o],h[a]=mergeArrays(h[a],h[o]),f[a]=mergeArrays(f[a],f[o]),s[o]="",h[o]=[],f[o]=[]):a=o,++o;return[s.filter(t=>t),h.filter(t=>t.length>0),f.filter(t=>t.length>0)]}get_decoder_prompt_ids({language:n=null,task:u=null,no_timestamps:d=!0}={}){let l=[];if(n){n=n.toLowerCase();let p=WHISPER_TO_LANGUAGE_CODE_MAPPING.get(n);if(p===void 0)if(WHISPER_LANGUAGE_MAPPING.has(n))p=n;else{const f=n.length===2?WHISPER_LANGUAGE_MAPPING.keys():WHISPER_LANGUAGE_MAPPING.values();throw new Error(`Language "${n}" is not supported. Must be one of: ${JSON.stringify(f)}`)}let s=this.model.tokens_to_ids.get(`<|${p}|>`);if(s===void 0)throw new Error(`Unable to find language "${p}" in model vocabulary. Please report this issue at https://github.com/xenova/transformers.js/issues/new/choose.`);l.push(s)}else l.push(null);if(u){if(u=u.toLowerCase(),u!=="transcribe"&&u!=="translate")throw new Error(`Task "${u}" is not supported. Must be one of: ["transcribe", "translate"]`);let p=this.model.tokens_to_ids.get(`<|${u}|>`);if(p===void 0)throw new Error(`Unable to find task "${u}" in model vocabulary. Please report this issue at https://github.com/xenova/transformers.js/issues/new/choose.`);l.push(p)}else l.push(null);if(d){let p=this.model.tokens_to_ids.get("<|notimestamps|>");if(p===void 0)throw new Error('Unable to find "<|notimestamps|>" in model vocabulary. Please report this issue at https://github.com/xenova/transformers.js/issues/new/choose.');l.push(p)}return l.map((p,s)=>[s+1,p]).filter(p=>p[1]!==null)}}class CodeGenTokenizer extends PreTrainedTokenizer{}class CLIPTokenizer extends PreTrainedTokenizer{}class MarianTokenizer extends PreTrainedTokenizer{constructor(n,u){super(n,u),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(d=>this.languageRegex.test(d)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(n){if(n===null)return null;let[u,...d]=n.trim().split(this.languageRegex);if(d.length===0)return super._encode_text(u);if(d.length===2){let[l,p]=d;return this.supported_language_codes.includes(l)||console.warn(`Unsupported language code "${l}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),mergeArrays([l],super._encode_text(p))}}}class CharTrie{constructor(){this.root=CharTrieNode.default()}extend(n){for(let u of n)this.push(u)}push(n){let u=this.root;for(let d of n){let l=u.children.get(d);l===void 0&&(l=CharTrieNode.default(),u.children.set(d,l)),u=l}u.isLeaf=!0}*commonPrefixSearch(n){let u=this.root,d="";for(let l=0;l<n.length&&u!==void 0;++l){const p=n[l];d+=p,u=u.children.get(p),u!==void 0&&u.isLeaf&&(yield d)}}}class CharTrieNode{constructor(n,u){this.isLeaf=n,this.children=u}static default(){return new CharTrieNode(!1,new Map)}}class TokenLattice{constructor(n,u,d){this.sentence=n,this.len=n.length,this.bosTokenId=u,this.eosTokenId=d,this.nodes=[],this.beginNodes=new Array(this.len+1),this.endNodes=new Array(this.len+1);for(let s=0;s<this.len+1;++s)this.beginNodes[s]=[],this.endNodes[s]=[];const l=new TokenLatticeNode(this.bosTokenId,0,0,0,0),p=new TokenLatticeNode(this.eosTokenId,1,this.len,0,0);this.nodes.push(l.clone()),this.nodes.push(p.clone()),this.beginNodes[this.len].push(p),this.endNodes[0].push(l)}insert(n,u,d,l){const p=this.nodes.length,s=new TokenLatticeNode(l,p,n,u,d);this.beginNodes[n].push(s),this.endNodes[n+u].push(s),this.nodes.push(s)}viterbi(){const n=this.len;let u=0;for(;u<=n;){if(this.beginNodes[u].length==0)return[];for(let h of this.beginNodes[u]){h.prev=null;let f=0,a=null;for(let o of this.endNodes[u]){const t=o.backtraceScore+h.score;(a===null||t>f)&&(a=o.clone(),f=t)}if(a!==null)h.prev=a,h.backtraceScore=f;else return[]}++u}const d=[],p=this.beginNodes[n][0].prev;if(p===null)return[];let s=p.clone();for(;s.prev!==null;)d.push(s.clone()),s=s.clone().prev.clone();return d.reverse(),d}piece(n){return this.sentence.slice(n.pos,n.pos+n.length)}tokens(){return this.viterbi().map(u=>this.piece(u))}tokenIds(){return this.viterbi().map(u=>u.tokenId)}}class TokenLatticeNode{constructor(n,u,d,l,p){this.tokenId=n,this.nodeId=u,this.pos=d,this.length=l,this.score=p,this.prev=null,this.backtraceScore=0}clone(){const n=new TokenLatticeNode(this.tokenId,this.nodeId,this.pos,this.length,this.score);return n.prev=this.prev,n.backtraceScore=this.backtraceScore,n}}class AutoTokenizer{static async from_pretrained(n,{quantized:u=!0,progress_callback:d=null,config:l=null,cache_dir:p=null,local_files_only:s=!1,revision:h="main"}={}){let[f,a]=await loadTokenizer(n,{quantized:u,progress_callback:d,config:l,cache_dir:p,local_files_only:s,revision:h}),o=a.tokenizer_class.replace(/Fast$/,""),t=this.TOKENIZER_CLASS_MAPPING[o];return t||(console.warn(`Unknown tokenizer class "${o}", attempting to construct from base class.`),t=PreTrainedTokenizer),new t(f,a)}}jt(AutoTokenizer,"TOKENIZER_CLASS_MAPPING",{T5Tokenizer,DistilBertTokenizer,BertTokenizer,MobileBertTokenizer,SqueezeBertTokenizer,AlbertTokenizer,GPT2Tokenizer,BartTokenizer,RobertaTokenizer,WhisperTokenizer,CodeGenTokenizer,CLIPTokenizer,MarianTokenizer,BloomTokenizer,NllbTokenizer,LlamaTokenizer,XLMRobertaTokenizer,MPNetTokenizer,FalconTokenizer,GPTNeoXTokenizer,PreTrainedTokenizer});async function loadConfig(y,n){return await getModelJSON(y,"config.json",!0,n)}class PretrainedConfig{constructor(n){this.model_type=null,this.is_encoder_decoder=!1,Object.assign(this,n)}static async from_pretrained(n,{progress_callback:u=null,config:d=null,cache_dir:l=null,local_files_only:p=!1,revision:s="main"}={}){let h=d??await loadConfig(n,{progress_callback:u,config:d,cache_dir:l,local_files_only:p,revision:s});return new this(h)}}class AutoConfig{static async from_pretrained(...n){return PretrainedConfig.from_pretrained(...n)}}class LogitsProcessorList extends Callable{constructor(){super(),this.processors=[]}push(n){this.processors.push(n)}extend(n){this.processors.push(...n)}_call(n,u){for(let d of u)this.processors.forEach(l=>l(n,d))}[Symbol.iterator](){return this.processors.values()}}class LogitsProcessor extends Callable{_call(n,u){throw Error("`_call` should be implemented in a subclass")}}class ForceTokensLogitsProcessor extends LogitsProcessor{constructor(n){super(),this.force_token_map=Object.fromEntries(n??[])}_call(n,u){let d=this.force_token_map[n.length];return exists(d)&&(u.data.fill(-1/0),u.data[d]=0),u}}class ForcedBOSTokenLogitsProcessor extends LogitsProcessor{constructor(n){super(),this.bos_token_id=n}_call(n,u){return n.length===1&&(u.data.fill(-1/0),u.data[this.bos_token_id]=0),u}}class ForcedEOSTokenLogitsProcessor extends LogitsProcessor{constructor(n,u){super(),this.max_length=n,this.forced_eos_token_id=u}_call(n,u){}}class SuppressTokensAtBeginLogitsProcessor extends LogitsProcessor{constructor(n,u){super(),this.begin_suppress_tokens=n,this.begin_index=u}_call(n,u){if(n.length===this.begin_index)for(let d of this.begin_suppress_tokens)u.data[d]=-1/0;return u}}class WhisperTimeStampLogitsProcessor extends LogitsProcessor{constructor(n){super(),this.eos_token_id=n.eos_token_id,this.no_timestamps_token_id=n.no_timestamps_token_id,this.timestamp_begin=this.no_timestamps_token_id+1,this.begin_index=(n.forced_decoder_ids||[]).length+2,n.forced_decoder_ids.slice(-1)[0][1]===this.no_timestamps_token_id&&(this.begin_index-=1),this.max_initial_timestamp_index=n.max_initial_timestamp_index}_call(n,u){if(u.data[this.no_timestamps_token_id]=-1/0,n.length===this.begin_index-1)return u.data.fill(-1/0),u.data[this.timestamp_begin]=0,u;const d=n.slice(this.begin_index),l=d.length>=1&&d[d.length-1]>=this.timestamp_begin,p=d.length<2||d[d.length-2]>=this.timestamp_begin;if(l&&(p?u.data.subarray(this.timestamp_begin).fill(-1/0):u.data.subarray(0,this.eos_token_id).fill(-1/0)),n.length===this.begin_index&&this.max_initial_timestamp_index!==null){const a=this.timestamp_begin+this.max_initial_timestamp_index;u.data.subarray(a+1).fill(-1/0)}const s=log_softmax(u.data),h=Math.log(s.subarray(this.timestamp_begin).map(Math.exp).reduce((a,o)=>a+o)),f=max(s.subarray(0,this.timestamp_begin))[0];return h>f&&u.data.subarray(0,this.timestamp_begin).fill(-1/0),u}}class NoRepeatNGramLogitsProcessor extends LogitsProcessor{constructor(n){super(),this.no_repeat_ngram_size=n}getNgrams(n){const u=n.length,d=[];for(let p=0;p<u+1-this.no_repeat_ngram_size;++p){const s=[];for(let h=0;h<this.no_repeat_ngram_size;++h)s.push(n[p+h]);d.push(s)}const l=new Map;for(const p of d){const s=p.slice(0,p.length-1),h=JSON.stringify(s),f=l.get(h)??[];f.push(p[p.length-1]),l.set(h,f)}return l}getGeneratedNgrams(n,u){const d=u.slice(u.length+1-this.no_repeat_ngram_size,u.length);return n.get(JSON.stringify(d))??[]}calcBannedNgramTokens(n){const u=[];if(n.length+1<this.no_repeat_ngram_size)return u;{const d=this.getNgrams(n);return this.getGeneratedNgrams(d,n)}}_call(n,u){const d=this.calcBannedNgramTokens(n);for(const l of d)u.data[l]=-1/0;return u}}class RepetitionPenaltyLogitsProcessor extends LogitsProcessor{constructor(n){super(),this.penalty=n}_call(n,u){for(const d of n)u.data[d]<0?u.data[d]*=this.penalty:u.data[d]/=this.penalty;return u}}class GenerationConfig{constructor(n={}){this.max_length=n.max_length??20,this.max_new_tokens=n.max_new_tokens??null,this.min_length=n.min_length??0,this.min_new_tokens=n.min_new_tokens??null,this.early_stopping=n.early_stopping??!1,this.max_time=n.max_time??null,this.do_sample=n.do_sample??!1,this.num_beams=n.num_beams??1,this.num_beam_groups=n.num_beam_groups??1,this.penalty_alpha=n.penalty_alpha??null,this.use_cache=n.use_cache??!0,this.temperature=n.temperature??1,this.top_k=n.top_k??50,this.top_p=n.top_p??1,this.typical_p=n.typical_p??1,this.epsilon_cutoff=n.epsilon_cutoff??0,this.eta_cutoff=n.eta_cutoff??0,this.diversity_penalty=n.diversity_penalty??0,this.repetition_penalty=n.repetition_penalty??1,this.encoder_repetition_penalty=n.encoder_repetition_penalty??1,this.length_penalty=n.length_penalty??1,this.no_repeat_ngram_size=n.no_repeat_ngram_size??0,this.bad_words_ids=n.bad_words_ids??null,this.force_words_ids=n.force_words_ids??null,this.renormalize_logits=n.renormalize_logits??!1,this.constraints=n.constraints??null,this.forced_bos_token_id=n.forced_bos_token_id??null,this.forced_eos_token_id=n.forced_eos_token_id??null,this.remove_invalid_values=n.remove_invalid_values??!1,this.exponential_decay_length_penalty=n.exponential_decay_length_penalty??null,this.suppress_tokens=n.suppress_tokens??null,this.begin_suppress_tokens=n.begin_suppress_tokens??null,this.forced_decoder_ids=n.forced_decoder_ids??null,this.num_return_sequences=n.num_return_sequences??1,this.output_attentions=n.output_attentions??!1,this.output_hidden_states=n.output_hidden_states??!1,this.output_scores=n.output_scores??!1,this.return_dict_in_generate=n.return_dict_in_generate??!1,this.pad_token_id=n.pad_token_id??null,this.bos_token_id=n.bos_token_id??null,this.eos_token_id=n.eos_token_id??null,this.encoder_no_repeat_ngram_size=n.encoder_no_repeat_ngram_size??0,this.decoder_start_token_id=n.decoder_start_token_id??null,this.generation_kwargs=n.generation_kwargs??{}}}class Sampler extends Callable{constructor(n){super(),this.generation_config=n}_call(n,u=-1){return this.sample(n,u)}sample(n,u){throw Error("sample should be implemented in subclasses.")}getLogits(n,u){let d=n.dims.at(-1),l=n.data;if(u===-1)l=l.slice(-d);else{let p=u*d;l=l.slice(p,p+d)}return this.generation_config.temperature>0&&(l=l.map(p=>p/this.generation_config.temperature)),l}randomSelect(n){let u=n.reduce((l,p)=>l+p,0),d=Math.random()*u;for(let l=0;l<n.length;++l)if(d-=n[l],d<=0)return l;return 0}static getSampler(n){if(n.do_sample)return new MultinomialSampler(n);if(n.num_beams>1)return new BeamSearchSampler(n);if(n.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${n.num_return_sequences}.`);return new GreedySampler(n)}}class GreedySampler extends Sampler{sample(n,u=-1){let d=this.getLogits(n,u);return[[max(d)[1],0]]}}class MultinomialSampler extends Sampler{sample(n,u=-1){let d=n.dims.at(-1);this.generation_config.top_k>0&&(d=Math.min(this.generation_config.top_k,d));const l=this.getLogits(n,u),p=getTopItems(l,d),s=softmax(p.map(h=>h[1]));return Array.from({length:this.generation_config.num_beams},()=>{const h=this.randomSelect(s);return[p[h][0],Math.log(s[h])]})}}class BeamSearchSampler extends Sampler{sample(n,u=-1){let d=n.dims.at(-1);this.generation_config.top_k>0&&(d=Math.min(this.generation_config.top_k,d));const l=this.getLogits(n,u),p=getTopItems(l,d),s=softmax(p.map(h=>h[1]));return Array.from({length:this.generation_config.num_beams},(h,f)=>[p[f][0],Math.log(s[f])])}}const{InferenceSession,Tensor:ONNXTensor}=ONNX;class ModelType{}class EncoderOnlyModelType extends ModelType{}class EncoderDecoderModelType extends ModelType{}class Seq2SeqModelType extends EncoderDecoderModelType{}class DecoderOnlyModelType extends ModelType{}const MODEL_TYPE_MAPPING=new Map([["CLIPTextModelWithProjection",EncoderOnlyModelType],["CLIPVisionModelWithProjection",EncoderOnlyModelType]]);async function forward(y,n){return MODEL_TYPE_MAPPING.get(y.constructor.name)===DecoderOnlyModelType?await decoderForward(y,n):await encoderForward(y,n)}async function constructSession(y,n,u){let d=`onnx/${n}${u.quantized?"_quantized":""}.onnx`,l=await getModelFile(y,d,!0,u);try{return await InferenceSession.create(l,{executionProviders})}catch(p){if(executionProviders.length===1&&executionProviders[0]==="wasm")throw p;return console.warn(p),console.warn("Something went wrong during model construction (most likely a missing operation). Using `wasm` as a fallback. "),await InferenceSession.create(l,{executionProviders:["wasm"]})}}async function validateInputs(y,n){const u={},d=[];for(let s of y.inputNames)n[s]===void 0?d.push(s):u[s]=n[s];if(d.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${d.join(", ")}.`);const l=Object.keys(n).length,p=y.inputNames.length;if(l>p){let s=Object.keys(n).filter(h=>!y.inputNames.includes(h));console.warn(`WARNING: Too many inputs were provided (${l} > ${p}). The following inputs will be ignored: "${s.join(", ")}".`)}return u}async function sessionRun(y,n){const u=await validateInputs(y,n);try{let d=await y.run(u);return d=replaceTensors(d),d}catch(d){throw console.error(`An error occurred during model execution: "${d}".`),console.error("Inputs given to model:",u),d}}function replaceTensors(y){for(let n in y)y[n]instanceof ONNXTensor?y[n]=new Tensor(y[n]):typeof y[n]=="object"&&replaceTensors(y[n]);return y}function toI64Tensor(y){if(y instanceof Tensor)return y;if(y.length===0)throw Error("items must be non-empty");if(Array.isArray(y[0])){if(y.some(n=>n.length!==y[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new Tensor("int64",BigInt64Array.from(y.flat().map(n=>BigInt(n))),[y.length,y[0].length])}else return new Tensor("int64",BigInt64Array.from(y.map(n=>BigInt(n))),[1,y.length])}function prepareAttentionMask(y,n){let u=y.config.pad_token_id??null,d=y.config.eos_token_id??null;isIntegralNumber(d)&&(d=[d]);let l=n.indexOf(u)!==-1,p=d===null||!d.includes(u);if(l&&p){let s=BigInt64Array.from(n.data.map(h=>h!=u));return new Tensor("int64",s,n.dims)}else return new Tensor("int64",new BigInt64Array(n.data.length).fill(1n),n.dims)}function boolTensor(y){return new Tensor("bool",[y],[1])}async function seq2seqForward(y,n,{add_decoder_pkv:u=!0}={}){let{encoder_outputs:d,past_key_values:l}=n;d||(d=(await encoderForward(y,n)).last_hidden_state);let p={input_ids:n.decoder_input_ids,encoder_hidden_states:d,use_cache_branch:boolTensor(!!l)};y.decoder_merged_session.inputNames.includes("encoder_attention_mask")&&(p.encoder_attention_mask=n.attention_mask),y.addPastKeyValues(p,l,u);const s=await sessionRun(y.decoder_merged_session,p);let h=s.logits;l=y.getPastKeyValues(s,l);const f=y.getAttentions(s);return new Seq2SeqLMOutput({logits:h,past_key_values:l,encoder_outputs:d,...f})}function seq2seqStartBeams(y,n,u,d=!0){let l=[],p=0,s=y.config.decoder_start_token_id;Array.isArray(s)||(s=[s]);for(let h of n){h.dims=[1,...h.dims];let f={inputs:h,encoder_outputs:null,prev_model_outputs:null,output_token_ids:s,done:!1,score:0,id:p++};d&&(f.attention_mask=prepareAttentionMask(y,h)),l.push(f)}return l}async function seq2seqRunBeam(y,n,{input_name:u="input_ids"}={}){var p;let d={[u]:n.inputs,decoder_input_ids:toI64Tensor(n.output_token_ids.slice(-1)),encoder_outputs:n.encoder_outputs,past_key_values:(p=n.prev_model_outputs)==null?void 0:p.past_key_values};n.attention_mask&&(d.attention_mask=n.attention_mask);let l=await y.forward(d);return n.prev_model_outputs=l,n.encoder_outputs=l.encoder_outputs,l}async function encoderForward(y,n){let u={};for(let d of y.session.inputNames)u[d]=n[d];return await sessionRun(y.session,u)}async function decoderForward(y,n){let{input_ids:u,past_key_values:d,attention_mask:l}=n,p={input_ids:u,attention_mask:l??prepareAttentionMask(y,u),use_cache_branch:boolTensor(d!==null)};y.addPastKeyValues(p,d);let s=await sessionRun(y.session,p),h=s.logits;return d=y.getPastKeyValues(s,d),{logits:h,past_key_values:d}}function decoderStartBeams(y,n,u,d){let l=[],p=0;for(let s of n){let h=s.tolist().map(Number);s.dims=[1,...s.dims];let f;d?(f=d[p],f.dims=[1,...f.dims]):f=prepareAttentionMask(y,s);let a={input:s,model_input_ids:s,attention_mask:f,prev_model_outputs:null,output_token_ids:h,num_output_tokens:u,done:!1,score:0,id:p++};l.push(a)}return l}async function decoderRunBeam(y,n){var p;let u=new BigInt64Array(n.output_token_ids.length).fill(1n),d={input_ids:n.model_input_ids,attention_mask:new Tensor("int64",u,[1,u.length]),past_key_values:(p=n.prev_model_outputs)==null?void 0:p.past_key_values},l=await y.forward(d);return n.prev_model_outputs=l,l}function decoderUpdatebeam(y,n){y.output_token_ids=[...y.output_token_ids,n],y.model_input_ids=new Tensor("int64",[BigInt(n)],[1,1])}class PreTrainedModel extends Callable{constructor(n,u){super(),this.config=n,this.session=u}async dispose(){let n=[];for(let u of Object.keys(this)){let d=this[u];d instanceof InferenceSession&&n.push(d.handler.dispose())}return await Promise.all(n)}static async from_pretrained(n,{quantized:u=!0,progress_callback:d=null,config:l=null,cache_dir:p=null,local_files_only:s=!1,revision:h="main",model_file_name:f=null}={}){let a={quantized:u,progress_callback:d,config:l,cache_dir:p,local_files_only:s,revision:h,model_file_name:f},o=MODEL_TYPE_MAPPING.get(this.name),t;if(o===DecoderOnlyModelType)t=await Promise.all([AutoConfig.from_pretrained(n,a),constructSession(n,a.model_file_name??"decoder_model_merged",a)]);else if(o===Seq2SeqModelType)t=await Promise.all([AutoConfig.from_pretrained(n,a),constructSession(n,"encoder_model",a),constructSession(n,"decoder_model_merged",a),getModelJSON(n,"generation_config.json",!1,a)]);else if(o===EncoderDecoderModelType)t=await Promise.all([AutoConfig.from_pretrained(n,a),constructSession(n,"encoder_model",a),constructSession(n,"decoder_model_merged",a)]);else if(o===EncoderOnlyModelType)t=await Promise.all([AutoConfig.from_pretrained(n,a),constructSession(n,a.model_file_name??"model",a)]);else throw console.warn("Malformed class definition.",this),Error(`Unable to load model: ${n}. Please report this bug at https://github.com/xenova/transformers.js/issues/new/choose.`);return new this(...t)}async _call(n){return await this.forward(n)}async forward(n){return await forward(this,n)}_get_logits_processor(n,u,d=null){const l=new LogitsProcessorList;if(n.repetition_penalty!==null&&n.repetition_penalty!==1&&l.push(new RepetitionPenaltyLogitsProcessor(n.repetition_penalty)),n.no_repeat_ngram_size!==null&&n.no_repeat_ngram_size>0&&l.push(new NoRepeatNGramLogitsProcessor(n.no_repeat_ngram_size)),n.forced_bos_token_id!==null&&l.push(new ForcedBOSTokenLogitsProcessor(n.forced_bos_token_id)),n.forced_eos_token_id!==null&&l.push(new ForcedEOSTokenLogitsProcessor(n.max_length,n.forced_eos_token_id)),n.begin_suppress_tokens!==null){let p=u>1||n.forced_bos_token_id===null?u:u+1;n.forced_decoder_ids!==null&&(p+=n.forced_decoder_ids[n.forced_decoder_ids.length-1][0]),l.push(new SuppressTokensAtBeginLogitsProcessor(n.begin_suppress_tokens,p))}return n.forced_decoder_ids!==null&&l.push(new ForceTokensLogitsProcessor(n.forced_decoder_ids)),d!==null&&l.extend(d),l}_get_generation_config(n){let u=new GenerationConfig;return"generation_config"in this&&Object.assign(u,this.generation_config),n!==null&&Object.assign(u,n),u}async generate(n,u=null,d=null,{inputs_attention_mask:l=null}={}){if(!(n instanceof Tensor)&&!isTypedArray(n)&&!Array.isArray(n))throw Error(`\`inputs\` must be a Tensor, TypedArray, or Array, but is "${n.constructor.name}".`);let p;if(this.config.is_encoder_decoder)p=0;else if(p=n instanceof Tensor?n.dims[0]:n.length,p===0)throw Error("Must supply a non-empty array of input token ids.");u=this._get_generation_config(u),d=d??new LogitsProcessorList,d=this._get_logits_processor(u,p,d);let s=1;const h=s+(u.max_new_tokens??1/0),f=Number.isInteger(u.max_length)&&(u.max_new_tokens??null)===null;let a=Sampler.getSampler(u),o=this.getStartBeams(n,s,l);for(;o.some(i=>!i.done)&&s<h;){let i=[];for(let c of o){if(c.done){i.push(c);continue}if(f&&c.output_token_ids.length>=u.max_length){c.done=!0,i.push(c);continue}let g=await this.runBeam(c);u.output_attentions&&this.addAttentionsToBeam(c,g),u.output_scores;let m=g.logits.slice(null,-1,null);d(c.output_token_ids,m);let b=a(m);for(let[_,w]of b){let v={...c};this.updateBeam(v,_),v.score+=w,_===this.config.eos_token_id&&(v.done=!0),i.push(v)}}++s,i=this.groupBeams(i).map(c=>c.sort((g,m)=>m.score-g.score).slice(0,u.num_beams)),o=i.flat(),u.callback_function&&u.callback_function(o)}const t=this.groupBeams(o),e=i=>t.map(c=>u.num_return_sequences>1?c.slice(0,u.num_return_sequences).map(g=>g[i]):[c[0][i]]).flat(),r=e("output_token_ids");if(u.return_dict_in_generate){const i=e("decoder_attentions"),c=e("cross_attentions");return{sequences:r,decoder_attentions:i,cross_attentions:c}}else return r}addAttentionsToBeam(n,u){if(this.config.is_encoder_decoder){if(!u.cross_attentions||u.cross_attentions.length===0)throw Error("`output_attentions` is true, but the model did not produce cross-attentions. This is most likely because the model was not exported with `output_attentions=True`.");n.cross_attentions||(n.cross_attentions=[]),n.cross_attentions.push(u.cross_attentions)}if(!u.decoder_attentions||u.decoder_attentions.length===0)throw Error("`output_attentions` is true, but the model did not produce decoder-attentions. This is most likely because the model was not exported with `output_attentions=True`.");n.decoder_attentions||(n.decoder_attentions=[]),n.decoder_attentions.push(u.decoder_attentions)}groupBeams(n){const u=Object.create(null);for(const d of n)u[d.id]===void 0?u[d.id]=[d]:u[d.id].push(d);return Object.values(u)}getPastKeyValues(n,u){const d=Object.create(null);for(const l in n)if(l.startsWith("present")){let p=l.replace("present","past_key_values");u&&l.includes("encoder")?d[p]=u[p]:d[p]=n[l]}return d}getAttentions(n){const u=Object.create(null);for(const d of["cross_attentions","decoder_attentions"]){const l=[];for(const p in n)if(p.startsWith(d)){const s=p.split(".").pop();l[s]=n[p]}u[d]=l}return u}addPastKeyValues(n,u,d=!1){if(u)Object.assign(n,u);else if(d){let l=[1,this.num_encoder_heads,0,this.encoder_dim_kv];for(let s=0;s<this.num_encoder_layers;++s)n[`past_key_values.${s}.encoder.key`]=new Tensor("float32",[],l),n[`past_key_values.${s}.encoder.value`]=new Tensor("float32",[],l);let p=[1,this.num_decoder_heads,0,this.decoder_dim_kv];for(let s=0;s<this.num_decoder_layers;++s)n[`past_key_values.${s}.decoder.key`]=new Tensor("float32",[],p),n[`past_key_values.${s}.decoder.value`]=new Tensor("float32",[],p)}else if(this.config.multi_query){let l=[1,0,2*this.dim_kv];for(let p=0;p<this.num_layers;++p)n[`past_key_values.${p}.key_value`]=new Tensor("float32",[],l)}else{let l=[1,this.num_heads,0,this.dim_kv];for(let p=0;p<this.num_layers;++p)n[`past_key_values.${p}.key`]=new Tensor("float32",[],l),n[`past_key_values.${p}.value`]=new Tensor("float32",[],l)}}}class ModelOutput{}class BertPreTrainedModel extends PreTrainedModel{}class BertModel extends BertPreTrainedModel{}class BertForMaskedLM extends BertPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class BertForSequenceClassification extends BertPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class BertForTokenClassification extends BertPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class BertForQuestionAnswering extends BertPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class DistilBertPreTrainedModel extends PreTrainedModel{}class DistilBertModel extends DistilBertPreTrainedModel{}class DistilBertForSequenceClassification extends DistilBertPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class DistilBertForTokenClassification extends DistilBertPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class DistilBertForQuestionAnswering extends DistilBertPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class DistilBertForMaskedLM extends DistilBertPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class MobileBertPreTrainedModel extends PreTrainedModel{}class MobileBertModel extends MobileBertPreTrainedModel{}class MobileBertForMaskedLM extends MobileBertPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class MobileBertForSequenceClassification extends MobileBertPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class MobileBertForQuestionAnswering extends MobileBertPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class MPNetPreTrainedModel extends PreTrainedModel{}class MPNetModel extends MPNetPreTrainedModel{}class MPNetForMaskedLM extends MPNetPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class MPNetForSequenceClassification extends MPNetPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class MPNetForTokenClassification extends MPNetPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class MPNetForQuestionAnswering extends MPNetPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class SqueezeBertPreTrainedModel extends PreTrainedModel{}class SqueezeBertModel extends SqueezeBertPreTrainedModel{}class SqueezeBertForMaskedLM extends SqueezeBertPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class SqueezeBertForSequenceClassification extends SqueezeBertPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class SqueezeBertForQuestionAnswering extends SqueezeBertPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class AlbertPreTrainedModel extends PreTrainedModel{}class AlbertModel extends AlbertPreTrainedModel{}class AlbertForSequenceClassification extends AlbertPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class AlbertForQuestionAnswering extends AlbertPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class AlbertForMaskedLM extends AlbertPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class T5PreTrainedModel extends PreTrainedModel{}class T5Model extends T5PreTrainedModel{async generate(...n){throw Error("The current model class (T5Model) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'T5ForConditionalGeneration'}")}}class T5ForConditionalGeneration extends T5PreTrainedModel{constructor(n,u,d,l){super(n,u),this.decoder_merged_session=d,this.generation_config=l,this.num_decoder_layers=this.config.num_decoder_layers,this.num_decoder_heads=this.config.num_heads,this.decoder_dim_kv=this.config.d_kv,this.num_encoder_layers=this.config.num_layers,this.num_encoder_heads=this.config.num_heads,this.encoder_dim_kv=this.config.d_kv}getStartBeams(n,u,...d){return seq2seqStartBeams(this,n)}async runBeam(n){return await seq2seqRunBeam(this,n)}updateBeam(n,u){n.output_token_ids=[...n.output_token_ids,u]}async forward(n){return await seq2seqForward(this,n)}}class MT5PreTrainedModel extends PreTrainedModel{}class MT5Model extends MT5PreTrainedModel{async generate(...n){throw Error("The current model class (MT5Model) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'MT5ForConditionalGeneration'}")}}class MT5ForConditionalGeneration extends MT5PreTrainedModel{constructor(n,u,d,l){super(n,u),this.decoder_merged_session=d,this.generation_config=l,this.num_decoder_layers=this.config.num_decoder_layers,this.num_decoder_heads=this.config.num_heads,this.decoder_dim_kv=this.config.d_kv,this.num_encoder_layers=this.config.num_layers,this.num_encoder_heads=this.config.num_heads,this.encoder_dim_kv=this.config.d_kv}getStartBeams(n,u,...d){return seq2seqStartBeams(this,n)}async runBeam(n){return await seq2seqRunBeam(this,n)}updateBeam(n,u){n.output_token_ids=[...n.output_token_ids,u]}async forward(n){return await seq2seqForward(this,n)}}class BartPretrainedModel extends PreTrainedModel{}class BartModel extends BartPretrainedModel{async generate(...n){throw Error("The current model class (BartModel) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'BartForConditionalGeneration'}")}}class BartForConditionalGeneration extends BartPretrainedModel{constructor(n,u,d,l){super(n,u),this.decoder_merged_session=d,this.generation_config=l,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}getStartBeams(n,u,...d){return seq2seqStartBeams(this,n)}async runBeam(n){return await seq2seqRunBeam(this,n)}updateBeam(n,u){n.output_token_ids=[...n.output_token_ids,u]}async forward(n){return await seq2seqForward(this,n)}}class BartForSequenceClassification extends BartPretrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class RobertaPreTrainedModel extends PreTrainedModel{}class RobertaModel extends RobertaPreTrainedModel{}class RobertaForMaskedLM extends RobertaPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class RobertaForSequenceClassification extends RobertaPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class RobertaForTokenClassification extends RobertaPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class RobertaForQuestionAnswering extends RobertaPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class XLMRobertaPreTrainedModel extends PreTrainedModel{}class XLMRobertaModel extends XLMRobertaPreTrainedModel{}class XLMRobertaForMaskedLM extends XLMRobertaPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class XLMRobertaForSequenceClassification extends XLMRobertaPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class XLMRobertaForTokenClassification extends XLMRobertaPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class XLMRobertaForQuestionAnswering extends XLMRobertaPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class WhisperPreTrainedModel extends PreTrainedModel{}class WhisperModel extends WhisperPreTrainedModel{async generate(...n){throw Error("The current model class (WhisperModel) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'WhisperForConditionalGeneration'}")}}class WhisperForConditionalGeneration extends WhisperPreTrainedModel{constructor(n,u,d,l){super(n,u),this.decoder_merged_session=d,this.generation_config=l,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}async generate(n,u=null,d=null){if(u=this._get_generation_config(u),u.return_timestamps??(u.return_timestamps=!1),u.return_timestamps&&(d=[new WhisperTimeStampLogitsProcessor(u)]),u.return_token_timestamps&&(u.output_attentions=!0,u.return_dict_in_generate=!0,u.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),!u.alignment_heads))throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");const l=await super.generate(n,u,d);return u.return_token_timestamps&&u.alignment_heads&&(l.token_timestamps=this._extract_token_timestamps(l,u.alignment_heads)),l}getStartBeams(n,u,...d){return seq2seqStartBeams(this,n,u,!1)}async runBeam(n){return await seq2seqRunBeam(this,n,{input_name:"input_features"})}updateBeam(n,u){n.output_token_ids=[...n.output_token_ids,u]}async forward(n){return await seq2seqForward(this,n)}_extract_token_timestamps(n,u,d=.02){if(!n.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");let l=this.config.median_filter_width;l===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),l=7);const p=n.cross_attentions.map(f=>{let a=Array.from({length:this.config.decoder_layers},(c,g)=>cat(f.map(m=>m[g]),2)),o=stack(u.map(([c,g])=>a[c].slice(null,g)));o=o.transpose(1,0,2,3);let[t,e]=std_mean(o,-2,0,!0),r=o.clone();for(let c=0;c<r.dims[0];++c){let g=r[c];for(let m=0;m<g.dims[0];++m){let b=g[m];const _=t[c][m][0],w=e[c][m][0];for(let v=0;v<b.dims[0];++v){let S=b[v];for(let O=0;O<S.data.length;++O)S.data[O]=(S.data[O]-w.data[O])/_.data[O];S.data.set(medianFilter(S.data,l))}}}return mean(r,1)}),s=[n.sequences.length,n.sequences[0].length],h=new Tensor("float32",new Float32Array(s[0]*s[1]),s);for(let f=0;f<s[0];++f){const a=p[f].neg().squeeze_(0);let[o,t]=dynamicTimeWarping(a),e=Array.from({length:o.length-1},(c,g)=>o[g+1]-o[g]),r=mergeArrays([1],e).map(c=>!!c),i=[];for(let c=0;c<r.length;++c)r[c]&&i.push(t[c]*d);h[f].data.set(i,1)}return h}}class VisionEncoderDecoderModel extends PreTrainedModel{constructor(n,u,d){super(n,u),this.decoder_merged_session=d,this.num_layers=this.config.decoder.n_layer,this.num_heads=this.config.decoder.n_head,this.dim_kv=this.config.decoder.n_embd/this.num_heads}getStartBeams(n,u,...d){return seq2seqStartBeams(this,n)}async runBeam(n){return seq2seqRunBeam(this,n,{input_name:"pixel_values"})}updateBeam(n,u){n.output_token_ids=[...n.output_token_ids,u]}async forward(n){return await seq2seqForward(this,n,{add_decoder_pkv:!1})}}class CLIPPreTrainedModel extends PreTrainedModel{}class CLIPModel extends CLIPPreTrainedModel{}class GPT2PreTrainedModel extends PreTrainedModel{constructor(n,u){super(n,u),this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_head,this.num_layers=this.config.n_layer,this.dim_kv=this.config.n_embd/this.num_heads}}class GPT2Model extends GPT2PreTrainedModel{async generate(...n){throw Error("The current model class (GPT2Model) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'GPT2LMHeadModel'}")}}class GPT2LMHeadModel extends GPT2PreTrainedModel{getStartBeams(n,u,d){return decoderStartBeams(this,n,u,d)}async runBeam(n){return await decoderRunBeam(this,n)}updateBeam(n,u){return decoderUpdatebeam(n,u)}async forward(n){return await decoderForward(this,n)}}class GPTNeoPreTrainedModel extends PreTrainedModel{constructor(n,u){super(n,u),this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_heads,this.num_layers=this.config.num_layers,this.dim_kv=this.config.hidden_size/this.num_heads}}class GPTNeoModel extends GPTNeoPreTrainedModel{async generate(...n){throw Error("The current model class (GPTNeoModel) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'GPTNeoForCausalLM'}")}}class GPTNeoForCausalLM extends GPTNeoPreTrainedModel{getStartBeams(n,u,d){return decoderStartBeams(this,n,u,d)}async runBeam(n){return await decoderRunBeam(this,n)}updateBeam(n,u){return decoderUpdatebeam(n,u)}async forward(n){return await decoderForward(this,n)}}class GPTBigCodePreTrainedModel extends PreTrainedModel{constructor(n,u){super(n,u),this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_head,this.num_layers=this.config.n_layer,this.dim_kv=this.config.n_embd/this.num_heads}}class GPTBigCodeModel extends GPTBigCodePreTrainedModel{async generate(...n){throw Error("The current model class (GPTBigCodeModel) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'GPTBigCodeForCausalLM'}")}}class GPTBigCodeForCausalLM extends GPTBigCodePreTrainedModel{getStartBeams(n,u,d){return decoderStartBeams(this,n,u,d)}async runBeam(n){return await decoderRunBeam(this,n)}updateBeam(n,u){return decoderUpdatebeam(n,u)}async forward(n){return await decoderForward(this,n)}}class CodeGenPreTrainedModel extends PreTrainedModel{constructor(n,u){super(n,u),this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_head,this.num_layers=this.config.n_layer,this.dim_kv=this.config.n_embd/this.num_heads}}class CodeGenModel extends CodeGenPreTrainedModel{async generate(...n){throw Error("The current model class (CodeGenModel) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'CodeGenForCausalLM'}")}}class CodeGenForCausalLM extends CodeGenPreTrainedModel{getStartBeams(n,u,d){return decoderStartBeams(this,n,u,d)}async runBeam(n){return await decoderRunBeam(this,n)}updateBeam(n,u){return decoderUpdatebeam(n,u)}async forward(n){return await decoderForward(this,n)}}class ViTPreTrainedModel extends PreTrainedModel{}class ViTForImageClassification extends ViTPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class MobileViTPreTrainedModel extends PreTrainedModel{}class MobileViTForImageClassification extends MobileViTPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class DetrPreTrainedModel extends PreTrainedModel{}class DetrForObjectDetection extends DetrPreTrainedModel{async _call(n){return new DetrObjectDetectionOutput(await super._call(n))}}class DetrForSegmentation extends DetrPreTrainedModel{async _call(n){return new DetrSegmentationOutput(await super._call(n))}}class DetrObjectDetectionOutput extends ModelOutput{constructor({logits:n,pred_boxes:u}){super(),this.logits=n,this.pred_boxes=u}}class DetrSegmentationOutput extends ModelOutput{constructor({logits:n,pred_boxes:u,pred_masks:d}){super(),this.logits=n,this.pred_boxes=u,this.pred_masks=d}}class SamPreTrainedModel extends PreTrainedModel{}class SamModel extends SamPreTrainedModel{async _call(n){return new SamImageSegmentationOutput(await super._call(n))}}class SamImageSegmentationOutput extends ModelOutput{constructor({iou_scores:n,pred_masks:u}){super(),this.iou_scores=n,this.pred_masks=u}}class MarianPreTrainedModel extends PreTrainedModel{}class MarianModel extends MarianPreTrainedModel{async generate(...n){throw Error("The current model class (MarianModel) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'MarianMTModel'}")}}class MarianMTModel extends MarianPreTrainedModel{constructor(n,u,d,l){super(n,u),this.decoder_merged_session=d,this.generation_config=l,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}getStartBeams(n,u,...d){return seq2seqStartBeams(this,n)}async runBeam(n){return await seq2seqRunBeam(this,n)}updateBeam(n,u){n.output_token_ids=[...n.output_token_ids,u]}async forward(n){return await seq2seqForward(this,n)}}class M2M100PreTrainedModel extends PreTrainedModel{}class M2M100Model extends M2M100PreTrainedModel{async generate(...n){throw Error("The current model class (M2M100Model) is not compatible with `.generate()`, as it doesn't have a language model head. Please use one of the following classes instead: {'M2M100ForConditionalGeneration'}")}}class M2M100ForConditionalGeneration extends M2M100PreTrainedModel{constructor(n,u,d,l){super(n,u),this.decoder_merged_session=d,this.generation_config=l,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads,this.num_encoder_layers=this.config.encoder_layers,this.num_encoder_heads=this.config.encoder_attention_heads,this.encoder_dim_kv=this.config.d_model/this.num_encoder_heads}getStartBeams(n,u,...d){return seq2seqStartBeams(this,n)}async runBeam(n){return await seq2seqRunBeam(this,n)}updateBeam(n,u){n.output_token_ids=[...n.output_token_ids,u]}async forward(n){return await seq2seqForward(this,n)}}const MODEL_MAPPING_NAMES_ENCODER_ONLY=new Map([["bert",BertModel],["mpnet",MPNetModel],["albert",AlbertModel],["distilbert",DistilBertModel],["roberta",RobertaModel],["xlm-roberta",XLMRobertaModel],["clip",CLIPModel],["mobilebert",MobileBertModel],["squeezebert",SqueezeBertModel],["sam",SamModel]]),MODEL_MAPPING_NAMES_ENCODER_DECODER=new Map([["t5",T5Model],["mt5",MT5Model],["bart",BartModel],["marian",MarianModel],["whisper",WhisperModel],["m2m_100",M2M100Model]]),MODEL_MAPPING_NAMES_DECODER_ONLY=new Map([["gpt2",GPT2Model],["gpt_bigcode",GPTBigCodeModel],["gpt_neo",GPTNeoModel],["codegen",CodeGenModel]]),MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES=new Map([["bert",BertForSequenceClassification],["mpnet",MPNetForSequenceClassification],["albert",AlbertForSequenceClassification],["distilbert",DistilBertForSequenceClassification],["roberta",RobertaForSequenceClassification],["xlm-roberta",XLMRobertaForSequenceClassification],["bart",BartForSequenceClassification],["mobilebert",MobileBertForSequenceClassification],["squeezebert",SqueezeBertForSequenceClassification]]),MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES=new Map([["bert",BertForTokenClassification],["mpnet",MPNetForTokenClassification],["distilbert",DistilBertForTokenClassification],["roberta",RobertaForTokenClassification],["xlm-roberta",XLMRobertaForTokenClassification]]),MODEL_FOR_SEQ_2_SEQ_MAPPING_NAMES=new Map([["t5",T5ForConditionalGeneration],["mt5",MT5ForConditionalGeneration],["bart",BartForConditionalGeneration],["whisper",WhisperForConditionalGeneration],["marian",MarianMTModel],["m2m_100",M2M100ForConditionalGeneration]]),MODEL_WITH_LM_HEAD_MAPPING_NAMES=new Map([["gpt2",GPT2LMHeadModel],["gpt_bigcode",GPTBigCodeForCausalLM],["gpt_neo",GPTNeoForCausalLM],["codegen",CodeGenForCausalLM]]),MODEL_FOR_MASKED_LM_MAPPING_NAMES=new Map([["bert",BertForMaskedLM],["mpnet",MPNetForMaskedLM],["albert",AlbertForMaskedLM],["distilbert",DistilBertForMaskedLM],["roberta",RobertaForMaskedLM],["xlm-roberta",XLMRobertaForMaskedLM],["mobilebert",MobileBertForMaskedLM],["squeezebert",SqueezeBertForMaskedLM]]),MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES=new Map([["bert",BertForQuestionAnswering],["mpnet",MPNetForQuestionAnswering],["albert",AlbertForQuestionAnswering],["distilbert",DistilBertForQuestionAnswering],["roberta",RobertaForQuestionAnswering],["xlm-roberta",XLMRobertaForQuestionAnswering],["mobilebert",MobileBertForQuestionAnswering],["squeezebert",SqueezeBertForQuestionAnswering]]),MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES=new Map([["vision-encoder-decoder",VisionEncoderDecoderModel]]),MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES=new Map([["vit",ViTForImageClassification],["mobilevit",MobileViTForImageClassification]]),MODEL_FOR_OBJECT_DETECTION_MAPPING_NAMES=new Map([["detr",DetrForObjectDetection]]),MODEL_FOR_IMAGE_SEGMENTATION_MAPPING_NAMES=new Map([["detr",DetrForSegmentation]]),MODEL_FOR_MASK_GENERATION_MAPPING_NAMES=new Map([["sam",SamModel]]),MODEL_CLASS_TYPE_MAPPING=[[MODEL_MAPPING_NAMES_ENCODER_ONLY,EncoderOnlyModelType],[MODEL_MAPPING_NAMES_ENCODER_DECODER,EncoderDecoderModelType],[MODEL_MAPPING_NAMES_DECODER_ONLY,DecoderOnlyModelType],[MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES,EncoderOnlyModelType],[MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES,EncoderOnlyModelType],[MODEL_FOR_SEQ_2_SEQ_MAPPING_NAMES,Seq2SeqModelType],[MODEL_WITH_LM_HEAD_MAPPING_NAMES,DecoderOnlyModelType],[MODEL_FOR_MASKED_LM_MAPPING_NAMES,EncoderOnlyModelType],[MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES,EncoderOnlyModelType],[MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES,EncoderDecoderModelType],[MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES,EncoderOnlyModelType],[MODEL_FOR_IMAGE_SEGMENTATION_MAPPING_NAMES,EncoderOnlyModelType],[MODEL_FOR_OBJECT_DETECTION_MAPPING_NAMES,EncoderOnlyModelType],[MODEL_FOR_MASK_GENERATION_MAPPING_NAMES,EncoderOnlyModelType]];for(const[y,n]of MODEL_CLASS_TYPE_MAPPING)for(const u of y.values())MODEL_TYPE_MAPPING.set(u.name,n);class Seq2SeqLMOutput extends ModelOutput{constructor({logits:n,past_key_values:u,encoder_outputs:d,decoder_attentions:l=null,cross_attentions:p=null}){super(),this.logits=n,this.past_key_values=u,this.encoder_outputs=d,this.decoder_attentions=l,this.cross_attentions=p}}class SequenceClassifierOutput extends ModelOutput{constructor({logits:n}){super(),this.logits=n}}class TokenClassifierOutput extends ModelOutput{constructor({logits:n}){super(),this.logits=n}}class MaskedLMOutput extends ModelOutput{constructor({logits:n}){super(),this.logits=n}}class QuestionAnsweringModelOutput extends ModelOutput{constructor({start_logits:n,end_logits:u}){super(),this.start_logits=n,this.end_logits=u}}const BROWSER_ENV=typeof self<"u";if(!BROWSER_ENV){if(!sharp)throw new Error("Unable to load image processing library.")}env.allowLocalModels=!1;const TOKENIZER_MAPPINGS=new Map;self.addEventListener("message",async y=>{let n=TOKENIZER_MAPPINGS.get(y.data.model_id);n||(n=AutoTokenizer.from_pretrained(y.data.model_id),TOKENIZER_MAPPINGS.set(y.data.model_id,new Promise(a=>{n.then(o=>{switch(o.constructor.name){case"LlamaTokenizer":o.decoder.decoders.pop();break;case"T5Tokenizer":o.decoder.addPrefixSpace=!1;break}a(o)})})));const u=await n,d=y.data.text,l=performance.now(),p=u.encode(d),s=performance.now();console.log("[INFO]",`Tokenized ${d.length} characters in ${(s-l).toFixed(2)}ms`);let h=p.map(a=>u.decode([a])),f=[];switch(u.constructor.name){case"BertTokenizer":f=h.map((a,o)=>o===0||a.startsWith("##")?0:8),h=h.map(a=>a.replace("##",""));break;case"T5Tokenizer":h.length>0&&h.length!==" "&&(h[0]=h[0].replace(/^ /,""));break}self.postMessage({token_ids:p,decoded:h,margins:f})})})();