function _mergeNamespaces(b,n){for(var a=0;a<n.length;a++){const u=n[a];if(typeof u!="string"&&!Array.isArray(u)){for(const c in u)if(c!=="default"&&!(c in b)){const f=Object.getOwnPropertyDescriptor(u,c);f&&Object.defineProperty(b,c,f.get?f:{enumerable:!0,get:()=>u[c]})}}}return Object.freeze(Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))u(c);new MutationObserver(c=>{for(const f of c)if(f.type==="childList")for(const s of f.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&u(s)}).observe(document,{childList:!0,subtree:!0});function a(c){const f={};return c.integrity&&(f.integrity=c.integrity),c.referrerPolicy&&(f.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?f.credentials="include":c.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function u(c){if(c.ep)return;c.ep=!0;const f=a(c);fetch(c.href,f)}})();function dispatchCallback(b,n){b&&b(n)}function reverseDictionary(b){return Object.fromEntries(Object.entries(b).map(([n,a])=>[a,n]))}const Callable=class{constructor(){let b=function(...n){return b._call(...n)};return Object.setPrototypeOf(b,new.target.prototype)}_call(...b){throw Error("Must implement _call method in subclass")}};function isTypedArray(b){return b?.prototype?.__proto__?.constructor?.name==="TypedArray"}function isIntegralNumber(b){return Number.isInteger(b)||typeof b=="bigint"}function exists(b){return b!=null}function calculateDimensions(b){const n=[];let a=b;for(;Array.isArray(a);)n.push(a.length),a=a[0];return n}function mergeArrays(...b){return Array.prototype.concat.apply([],b)}function calculateReflectOffset(b,n){return Math.abs((b+n)%(2*n)-n)}const sharp={},ONNX_NODE=Object.freeze(Object.defineProperty({__proto__:null,default:sharp},Symbol.toStringTag,{value:"Module"}));function getDefaultExportFromCjs(b){return b&&b.__esModule&&Object.prototype.hasOwnProperty.call(b,"default")?b.default:b}function getAugmentedNamespace(b){if(b.__esModule)return b;var n=b.default;if(typeof n=="function"){var a=function u(){return this instanceof u?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};a.prototype=n.prototype}else a={};return Object.defineProperty(a,"__esModule",{value:!0}),Object.keys(b).forEach(function(u){var c=Object.getOwnPropertyDescriptor(b,u);Object.defineProperty(a,u,c.get?c:{enumerable:!0,get:function(){return b[u]}})}),a}var ortWeb_min$1={exports:{}};const backends={},backendsSortedByPriority=[],registerBackend=(b,n,a)=>{if(n&&typeof n.init=="function"&&typeof n.createSessionHandler=="function"){const u=backends[b];if(u===void 0)backends[b]={backend:n,priority:a};else{if(u.priority>a)return;if(u.priority===a&&u.backend!==n)throw new Error(`cannot register backend "${b}" using priority ${a}`)}if(a>=0){const c=backendsSortedByPriority.indexOf(b);c!==-1&&backendsSortedByPriority.splice(c,1);for(let f=0;f<backendsSortedByPriority.length;f++)if(backends[backendsSortedByPriority[f]].priority<=a){backendsSortedByPriority.splice(f,0,b);return}backendsSortedByPriority.push(b)}return}throw new TypeError("not a valid backend")},resolveBackend=async b=>{const n=b.length===0?backendsSortedByPriority:b,a=[];for(const u of n){const c=backends[u];if(c){if(c.initialized)return c.backend;if(c.aborted)continue;const f=!!c.initPromise;try{return f||(c.initPromise=c.backend.init()),await c.initPromise,c.initialized=!0,c.backend}catch(s){f||a.push({name:u,err:s}),c.aborted=!0}finally{delete c.initPromise}}}throw new Error(`no available backend found. ERR: ${a.map(u=>`[${u.name}] ${u.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$2=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=b=>{let n=1;for(let a=0;a<b.length;a++){const u=b[a];if(typeof u!="number"||!Number.isSafeInteger(u))throw new TypeError(`dims[${a}] must be an integer, got: ${u}`);if(u<0)throw new RangeError(`dims[${a}] must be a non-negative integer, got: ${u}`);n*=u}return n};let Tensor$2=class st{constructor(n,a,u){let c,f,s;if(typeof n=="string")if(c=n,s=u,n==="string"){if(!Array.isArray(a))throw new TypeError("A string tensor's data must be a string array.");f=a}else{const p=NUMERIC_TENSOR_TYPE_TO_TYPEDARRAY_MAP.get(n);if(p===void 0)throw new TypeError(`Unsupported tensor type: ${n}.`);if(Array.isArray(a))f=p.from(a);else if(a instanceof p)f=a;else throw new TypeError(`A ${c} tensor's data must be type of ${p}`)}else if(s=a,Array.isArray(n)){if(n.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const p=typeof n[0];if(p==="string")c="string",f=n;else if(p==="boolean")c="bool",f=Uint8Array.from(n);else throw new TypeError(`Invalid element type of data array: ${p}.`)}else{const p=NUMERIC_TENSOR_TYPEDARRAY_TO_TYPE_MAP.get(n.constructor);if(p===void 0)throw new TypeError(`Unsupported type for tensor data: ${n.constructor}.`);c=p,f=n}if(s===void 0)s=[f.length];else if(!Array.isArray(s))throw new TypeError("A tensor's dims must be a number array");const h=calculateSize(s);if(h!==f.length)throw new Error(`Tensor's size(${h}) does not match data length(${f.length}).`);this.dims=s,this.type=c,this.data=f,this.size=h}static bufferToTensor(n,a){if(n===void 0)throw new Error("Image buffer must be defined");if(a.height===void 0||a.width===void 0)throw new Error("Image height and width must be defined");const{height:u,width:c}=a,f=a.norm;let s,h;f===void 0||f.mean===void 0?s=255:s=f.mean,f===void 0||f.bias===void 0?h=0:h=f.bias;const p=a.bitmapFormat!==void 0?a.bitmapFormat:"RGBA",l=a.tensorFormat!==void 0&&a.tensorFormat!==void 0?a.tensorFormat:"RGB",o=u*c,t=l==="RGBA"?new Float32Array(o*4):new Float32Array(o*3);let e=4,r=0,i=1,d=2,g=3,m=0,_=o,y=o*2,T=-1;p==="RGB"&&(e=3,r=0,i=1,d=2,g=-1),l==="RGBA"?T=o*3:l==="RBG"?(m=0,y=o,_=o*2):l==="BGR"&&(y=0,_=o,m=o*2);for(let S=0;S<o;S++,r+=e,d+=e,i+=e,g+=e)t[m++]=(n[r]+h)/s,t[_++]=(n[i]+h)/s,t[y++]=(n[d]+h)/s,T!==-1&&g!==-1&&(t[T++]=(n[g]+h)/s);return l==="RGBA"?new st("float32",t,[1,4,u,c]):new st("float32",t,[1,3,u,c])}static async fromImage(n,a){const u=typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement,c=typeof ImageData<"u"&&n instanceof ImageData,f=typeof ImageBitmap<"u"&&n instanceof ImageBitmap,s=typeof String<"u"&&(n instanceof String||typeof n=="string");let h,p={};if(u){const l=document.createElement("canvas"),o=l.getContext("2d");if(o!=null){let t=n.naturalHeight,e=n.naturalWidth;if(a!==void 0&&a.resizedHeight!==void 0&&a.resizedWidth!==void 0&&(t=a.resizedHeight,e=a.resizedWidth),a!==void 0){if(p=a,a.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");if(p.tensorFormat="RGBA",a.height!==void 0&&a.height!==t)throw new Error("Image input config height doesn't match HTMLImageElement height");if(p.height=t,a.width!==void 0&&a.width!==e)throw new Error("Image input config width doesn't match HTMLImageElement width");p.width=e}else p.tensorFormat="RGBA",p.height=t,p.width=e;l.width=e,l.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(c){const l="RGBA";let o,t;if(a!==void 0&&a.resizedWidth!==void 0&&a.resizedHeight!==void 0?(o=a.resizedHeight,t=a.resizedWidth):(o=n.height,t=n.width),a!==void 0){if(p=a,a.bitmapFormat!==void 0&&a.bitmapFormat!==l)throw new Error("Image input config format must be RGBA for ImageData");p.bitmapFormat="RGBA"}else p.bitmapFormat="RGBA";if(p.height=o,p.width=t,a!==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(f){if(a===void 0)throw new Error("Please provide image config with format for Imagebitmap");if(a.bitmapFormat!==void 0)throw new Error("Image input config format must be defined for ImageBitmap");const l=document.createElement("canvas").getContext("2d");if(l!=null){const o=n.height,t=n.width;if(l.drawImage(n,0,0,t,o),h=l.getImageData(0,0,t,o).data,a!==void 0){if(a.height!==void 0&&a.height!==o)throw new Error("Image input config height doesn't match ImageBitmap height");if(p.height=o,a.width!==void 0&&a.width!==t)throw new Error("Image input config width doesn't match ImageBitmap width");p.width=t}else p.height=o,p.width=t;return st.bufferToTensor(h,p)}else throw new Error("Can not access image data")}else{if(s)return new Promise((l,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(a!==void 0){if(a.height!==void 0&&a.height!==t.height)throw new Error("Image input config height doesn't match ImageBitmap height");if(p.height=t.height,a.width!==void 0&&a.width!==t.width)throw new Error("Image input config width doesn't match ImageBitmap width");p.width=t.width}else p.height=t.height,p.width=t.width;l(st.bufferToTensor(i.data,p))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(h!==void 0)return st.bufferToTensor(h,p);throw new Error("Input data provided is not supported - aborted tensor creation")}toImageData(n){var a,u;const c=document.createElement("canvas").getContext("2d");let f;if(c!=null){const s=this.dims[3],h=this.dims[2],p=this.dims[1],l=n!==void 0&&n.format!==void 0?n.format:"RGB",o=n!==void 0&&((a=n.norm)===null||a===void 0?void 0:a.mean)!==void 0?n.norm.mean:255,t=n!==void 0&&((u=n.norm)===null||u===void 0?void 0:u.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&&p===4&&n.format!=="RGBA"||p===3&&n.format!=="RGB"&&n.format!=="BGR")throw new Error("Tensor format doesn't match input tensor dims")}const r=4;let i=0,d=1,g=2,m=3,_=0,y=e,T=e*2,w=-1;l==="RGBA"?(_=0,y=e,T=e*2,w=e*3):l==="RGB"?(_=0,y=e,T=e*2):l==="RBG"&&(_=0,T=e,y=e*2),f=c.createImageData(s,h);for(let S=0;S<h*s;i+=r,d+=r,g+=r,m+=r,S++)f.data[i]=(this.data[_++]-t)*o,f.data[d]=(this.data[y++]-t)*o,f.data[g]=(this.data[T++]-t)*o,f.data[m]=w===-1?255:(this.data[w++]-t)*o}else throw new Error("Can not access image data");return f}reshape(n){return new st(this.type,this.data,n)}};const Tensor$1=Tensor$2;let InferenceSession$2=class ln{constructor(n){this.handler=n}async run(n,a,u){const c={};let f={};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 a=="object"){if(a===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(a instanceof Tensor$1)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(a)){if(a.length===0)throw new TypeError("'fetches' cannot be an empty array.");s=!1;for(const l of a){if(typeof l!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(l)===-1)throw new RangeError(`'fetches' contains invalid output name: ${l}.`);c[l]=null}if(typeof u=="object"&&u!==null)f=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else{let l=!1;const o=Object.getOwnPropertyNames(a);for(const t of this.outputNames)if(o.indexOf(t)!==-1){const e=a[t];(e===null||e instanceof Tensor$1)&&(l=!0,s=!1,c[t]=e)}if(l){if(typeof u=="object"&&u!==null)f=u;else if(typeof u<"u")throw new TypeError("'options' must be an object.")}else f=a}}else if(typeof a<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const l of this.inputNames)if(typeof n[l]>"u")throw new Error(`input '${l}' is missing in 'feeds'.`);if(s)for(const l of this.outputNames)c[l]=null;const h=await this.handler.run(n,c,f),p={};for(const l in h)Object.hasOwnProperty.call(h,l)&&(p[l]=new Tensor$1(h[l].type,h[l].data,h[l].dims));return p}static async create(n,a,u,c){let f,s={};if(typeof n=="string"){if(f=n,typeof a=="object"&&a!==null)s=a;else if(typeof a<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof Uint8Array){if(f=n,typeof a=="object"&&a!==null)s=a;else if(typeof a<"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 a=="object"&&a!==null)s=a;else if(typeof a=="number"){if(e=a,!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 u=="number"){if(r=u,!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 c=="object"&&c!==null)s=c;else if(typeof c<"u")throw new TypeError("'options' must be an object.")}else if(typeof u<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof a<"u")throw new TypeError("'options' must be an object.");f=new Uint8Array(t,e,r)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");const p=(s.executionProviders||[]).map(t=>typeof t=="string"?t:t.name),o=await(await resolveBackend(p)).createSessionHandler(f,s);return new ln(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,lib=Object.freeze(Object.defineProperty({__proto__:null,InferenceSession:InferenceSession$1,Tensor:Tensor$1,env:env$2,registerBackend},Symbol.toStringTag,{value:"Module"})),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(b,n){module.exports=n(require$$0)})(self,__WEBPACK_EXTERNAL_MODULE__1670__=>(()=>{var __webpack_modules__={3474:(b,n,a)=>{var u,c=(u=(u=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(f){function s(){return z.buffer!=J&&Me(z.buffer),ue}function h(){return z.buffer!=J&&Me(z.buffer),Se}function p(){return z.buffer!=J&&Me(z.buffer),Te}function l(){return z.buffer!=J&&Me(z.buffer),se}function o(){return z.buffer!=J&&Me(z.buffer),ye}var t,e,r;f=f||{},t||(t=f!==void 0?f:{}),t.ready=new Promise(function(x,A){e=x,r=A});var i,d,g,m,_,y,T=Object.assign({},t),w="./this.program",S=(x,A)=>{throw A},O=typeof window=="object",E=typeof importScripts=="function",v=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",P=t.ENVIRONMENT_IS_PTHREAD||!1,L="";function V(x){return t.locateFile?t.locateFile(x,L):L+x}if(v){let x;L=E?a(908).dirname(L)+"/":"//",y=()=>{_||(m=a(1384),_=a(908))},i=function(A,I){return y(),A=_.normalize(A),m.readFileSync(A,I?void 0:"utf8")},g=A=>((A=i(A,!0)).buffer||(A=new Uint8Array(A)),A),d=(A,I,F)=>{y(),A=_.normalize(A),m.readFile(A,function(B,G){B?F(B):I(G.buffer)})},1<process.argv.length&&(w=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",function(A){if(!(A instanceof Qe))throw A}),process.on("unhandledRejection",function(A){throw A}),S=(A,I)=>{if(Ge())throw process.exitCode=A,I;I instanceof Qe||$("exiting due to exception: "+I),process.exit(A)},t.inspect=function(){return"[Emscripten Module object]"};try{x=a(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}a.g.Worker=x.Worker}else(O||E)&&(E?L=self.location.href:typeof document<"u"&&document.currentScript&&(L=document.currentScript.src),u&&(L=u),L=L.indexOf("blob:")!==0?L.substr(0,L.replace(/[?#].*/,"").lastIndexOf("/")+1):"",v||(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)}),d=(x,A,I)=>{var F=new XMLHttpRequest;F.open("GET",x,!0),F.responseType="arraybuffer",F.onload=()=>{F.status==200||F.status==0&&F.response?A(F.response):I()},F.onerror=I,F.send(null)}));v&&typeof performance>"u"&&(a.g.performance=a(6953).performance);var R=console.log.bind(console),k=console.warn.bind(console);v&&(y(),R=x=>m.writeSync(1,x+`
`),k=x=>m.writeSync(2,x+`
`));var Y,C=t.print||R,$=t.printErr||k;Object.assign(t,T),T=null,t.thisProgram&&(w=t.thisProgram),t.quit&&(S=t.quit),t.wasmBinary&&(Y=t.wasmBinary);var X=t.noExitRuntime||!1;typeof WebAssembly!="object"&&pe("no native wasm support detected");var z,Z,J,ue,Se,Te,se,ye,be=!1,Ie=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Le(x,A,I){var F=(A>>>=0)+I;for(I=A;x[I]&&!(I>=F);)++I;if(16<I-A&&x.buffer&&Ie)return Ie.decode(x.buffer instanceof SharedArrayBuffer?x.slice(A,I):x.subarray(A,I));for(F="";A<I;){var B=x[A++];if(128&B){var G=63&x[A++];if((224&B)==192)F+=String.fromCharCode((31&B)<<6|G);else{var Q=63&x[A++];65536>(B=(240&B)==224?(15&B)<<12|G<<6|Q:(7&B)<<18|G<<12|Q<<6|63&x[A++])?F+=String.fromCharCode(B):(B-=65536,F+=String.fromCharCode(55296|B>>10,56320|1023&B))}}else F+=String.fromCharCode(B)}return F}function ve(x,A){return(x>>>=0)?Le(h(),x,A):""}function Ne(x,A,I,F){if(!(0<F))return 0;var B=I>>>=0;F=I+F-1;for(var G=0;G<x.length;++G){var Q=x.charCodeAt(G);if(55296<=Q&&57343>=Q&&(Q=65536+((1023&Q)<<10)|1023&x.charCodeAt(++G)),127>=Q){if(I>=F)break;A[I++>>>0]=Q}else{if(2047>=Q){if(I+1>=F)break;A[I++>>>0]=192|Q>>6}else{if(65535>=Q){if(I+2>=F)break;A[I++>>>0]=224|Q>>12}else{if(I+3>=F)break;A[I++>>>0]=240|Q>>18,A[I++>>>0]=128|Q>>12&63}A[I++>>>0]=128|Q>>6&63}A[I++>>>0]=128|63&Q}}return A[I>>>0]=0,I-B}function Fe(x){for(var A=0,I=0;I<x.length;++I){var F=x.charCodeAt(I);127>=F?A++:2047>=F?A+=2:55296<=F&&57343>=F?(A+=4,++I):A+=3}return A}function Me(x){J=x,t.HEAP8=ue=new Int8Array(x),t.HEAP16=new Int16Array(x),t.HEAP32=Te=new Int32Array(x),t.HEAPU8=Se=new Uint8Array(x),t.HEAPU16=new Uint16Array(x),t.HEAPU32=se=new Uint32Array(x),t.HEAPF32=new Float32Array(x),t.HEAPF64=ye=new Float64Array(x)}P&&(J=t.buffer);var Oe=t.INITIAL_MEMORY||16777216;if(P)z=t.wasmMemory,J=t.buffer;else if(t.wasmMemory)z=t.wasmMemory;else if(!((z=new WebAssembly.Memory({initial:Oe/65536,maximum:65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw $("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"),v&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");z&&(J=z.buffer),Oe=J.byteLength,Me(J);var Be,Ue=[],ze=[],He=[],Ke=[];function Ge(){return X||!1}function Ve(){var x=t.preRun.shift();Ue.unshift(x)}var Ae,Re=0,Ye=null;function pe(x){throw P?postMessage({cmd:"onAbort",arg:x}):t.onAbort&&t.onAbort(x),$(x="Aborted("+x+")"),be=!0,x=new WebAssembly.RuntimeError(x+". Build with -sASSERTIONS for more info."),r(x),x}function dt(){return Ae.startsWith("data:application/octet-stream;base64,")}function at(){var x=Ae;try{if(x==Ae&&Y)return new Uint8Array(Y);if(g)return g(x);throw"both async and sync fetching of the wasm failed"}catch(A){pe(A)}}Ae="ort-wasm-threaded.wasm",dt()||(Ae=V(Ae));var Et={};function Qe(x){this.name="ExitStatus",this.message="Program terminated with exit("+x+")",this.status=x}function ut(x){(x=re.Vb[x])||pe(),re.mc(x)}function lt(x){var A=re.Cc();if(!A)return 6;re.ac.push(A),re.Vb[x.Ub]=A,A.Ub=x.Ub;var I={cmd:"run",start_routine:x.Ic,arg:x.zc,pthread_ptr:x.Ub};return A.$b=()=>{I.time=performance.now(),A.postMessage(I,x.Nc)},A.loaded&&(A.$b(),delete A.$b),0}function $e(x){if(P)return ee(1,1,x);Ge()||(re.oc(),t.onExit&&t.onExit(x),be=!0),S(x,new Qe(x))}function nt(x,A){if(!A&&P)throw Mt(x),"unwind";Ge()||P||(Gt(),tt(He),zt(0),Ft[1].length&&kt(1,10),Ft[2].length&&kt(2,10),re.oc()),$e(x)}var re={Yb:[],ac:[],qc:[],Vb:{},fc:function(){P&&re.Ec()},Pc:function(){},Ec:function(){re.receiveObjectTransfer=re.Gc,re.threadInitTLS=re.pc,re.setExitStatus=re.nc,X=!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,Nt(A)},Gc:function(){},pc:function(){re.qc.forEach(x=>x())},Fc:function(x,A){x.onmessage=I=>{var F=(I=I.data).cmd;if(x.Ub&&(re.Bc=x.Ub),I.targetThread&&I.targetThread!=It()){var B=re.Vb[I.Qc];B?B.postMessage(I,I.transferList):$('Internal error! Worker sent a message "'+F+'" to target pthread '+I.targetThread+", but that thread no longer exists!")}else F==="processProxyingQueue"?N(I.queue):F==="spawnThread"?lt(I):F==="cleanupThread"?ut(I.thread):F==="killThread"?(I=I.thread,F=re.Vb[I],delete re.Vb[I],F.terminate(),Nt(I),re.ac.splice(re.ac.indexOf(F),1),F.Ub=0):F==="cancelThread"?re.Vb[I.thread].postMessage({cmd:"cancel"}):F==="loaded"?(x.loaded=!0,A&&A(x),x.$b&&(x.$b(),delete x.$b)):F==="print"?C("Thread "+I.threadId+": "+I.text):F==="printErr"?$("Thread "+I.threadId+": "+I.text):F==="alert"?alert("Thread "+I.threadId+": "+I.text):I.target==="setimmediate"?x.postMessage(I):F==="onAbort"?t.onAbort&&t.onAbort(I.arg):F&&$("worker sent an unknown command "+F);re.Bc=void 0},x.onerror=I=>{throw $("worker sent an error! "+I.filename+":"+I.lineno+": "+I.message),I},v&&(x.on("message",function(I){x.onmessage({data:I})}),x.on("error",function(I){x.onerror(I)}),x.on("detachedExit",function(){})),x.postMessage({cmd:"load",urlOrBlob:t.mainScriptUrlOrBlob||u,wasmMemory:z,wasmModule:Z})},yc:function(){var x=V("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 tt(x){for(;0<x.length;)x.shift()(t)}function At(x){var A=de();return x=x(),ce(A),x}function Mt(x){if(P)return ee(2,0,x);try{nt(x)}catch(A){A instanceof Qe||A=="unwind"||S(1,A)}}t.PThread=re,t.establishStackSpace=function(){var x=It(),A=p()[x+44>>2>>>0];x=p()[x+48>>2>>>0],Xt(A,A-x),ce(A)};var Je=[];function we(x){var A=Je[x];return A||(x>=Je.length&&(Je.length=x+1),Je[x]=A=Be.get(x)),A}t.invokeEntryPoint=function(x,A){x=we(x)(A),Ge()?re.nc(x):Yt(x)};var rt,ht,it=[],ae=0,ie=0;function oe(x){this.Zb=x,this.Sb=x-24,this.xc=function(A){l()[this.Sb+4>>2>>>0]=A},this.bc=function(){return l()[this.Sb+4>>2>>>0]},this.wc=function(A){l()[this.Sb+8>>2>>>0]=A},this.Dc=function(){return l()[this.Sb+8>>2>>>0]},this.rc=function(){p()[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,I){this.cc(0),this.xc(A),this.wc(I),this.rc(),this.hc(!1),this.ic(!1)},this.sc=function(){Atomics.add(p(),this.Sb>>2,1)},this.Hc=function(){return Atomics.sub(p(),this.Sb>>2,1)===1},this.cc=function(A){l()[this.Sb+16>>2>>>0]=A},this.tc=function(){return l()[this.Sb+16>>2>>>0]},this.vc=function(){if(Kt(this.bc()))return l()[this.Zb>>2>>>0];var A=this.tc();return A!==0?A:this.Zb}}function ft(x){return Ut(new oe(x).Sb)}function ot(x,A,I,F){return P?ee(3,1,x,A,I,F):pt(x,A,I,F)}function pt(x,A,I,F){if(typeof SharedArrayBuffer>"u")return $("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var B=[];return P&&B.length===0?ot(x,A,I,F):(x={Ic:I,Ub:x,zc:F,Nc:B},P?(x.Oc="spawnThread",postMessage(x,B),0):lt(x))}function gt(x,A,I){return P?ee(4,1,x,A,I):0}function mt(x,A){if(P)return ee(5,1,x,A)}function bt(x,A){if(P)return ee(6,1,x,A)}function _t(x,A,I){if(P)return ee(7,1,x,A,I)}function yt(x,A,I){return P?ee(8,1,x,A,I):0}function wt(x,A){if(P)return ee(9,1,x,A)}function Tt(x,A,I){if(P)return ee(10,1,x,A,I)}function vt(x,A,I,F){if(P)return ee(11,1,x,A,I,F)}function xt(x,A,I,F){if(P)return ee(12,1,x,A,I,F)}function St(x,A,I,F){if(P)return ee(13,1,x,A,I,F)}function Ot(x){if(P)return ee(14,1,x)}function M(x,A){if(P)return ee(15,1,x,A)}function D(x,A,I){if(P)return ee(16,1,x,A,I)}function N(x){Atomics.store(p(),x>>2,1),It()&&Ht(x),Atomics.compareExchange(p(),x>>2,1,0)}function j(x){return l()[x>>>2]+4294967296*p()[x+4>>>2]}function U(x,A,I,F,B,G){return P?ee(17,1,x,A,I,F,B,G):-52}function H(x,A,I,F,B,G){if(P)return ee(18,1,x,A,I,F,B,G)}function K(x){var A=Fe(x)+1,I=Lt(A);return I&&Ne(x,s(),I,A),I}function te(x,A,I){function F(ge){return(ge=ge.toTimeString().match(/\(([A-Za-z ]+)\)$/))?ge[1]:"GMT"}if(P)return ee(19,1,x,A,I);var B=new Date().getFullYear(),G=new Date(B,0,1),Q=new Date(B,6,1);B=G.getTimezoneOffset();var ne=Q.getTimezoneOffset(),fe=Math.max(B,ne);p()[x>>2>>>0]=60*fe,p()[A>>2>>>0]=+(B!=ne),x=F(G),A=F(Q),x=K(x),A=K(A),ne<B?(l()[I>>2>>>0]=x,l()[I+4>>2>>>0]=A):(l()[I>>2>>>0]=A,l()[I+4>>2>>>0]=x)}function ee(x,A){var I=arguments.length-2,F=arguments;return At(()=>{for(var B=$t(8*I),G=B>>3,Q=0;Q<I;Q++){var ne=F[2+Q];o()[G+Q>>>0]=ne}return Wt(x,I,B,A)})}t.executeNotifiedProxyingQueue=N,ht=v?()=>{var x=process.hrtime();return 1e3*x[0]+x[1]/1e6}:P?()=>performance.now()-t.__performance_now_clock_drift:()=>performance.now();var le,xe=[],ke={};function Ce(){if(!le){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",_:w||"./this.program"};for(x in ke)ke[x]===void 0?delete A[x]:A[x]=ke[x];var I=[];for(x in A)I.push(x+"="+A[x]);le=I}return le}function q(x,A){if(P)return ee(20,1,x,A);var I=0;return Ce().forEach(function(F,B){var G=A+I;for(B=l()[x+4*B>>2>>>0]=G,G=0;G<F.length;++G)s()[B++>>0>>>0]=F.charCodeAt(G);s()[B>>0>>>0]=0,I+=F.length+1}),0}function me(x,A){if(P)return ee(21,1,x,A);var I=Ce();l()[x>>2>>>0]=I.length;var F=0;return I.forEach(function(B){F+=B.length+1}),l()[A>>2>>>0]=F,0}function Ee(x){return P?ee(22,1,x):52}function qe(x,A,I,F){return P?ee(23,1,x,A,I,F):52}function Ze(x,A,I,F,B){return P?ee(24,1,x,A,I,F,B):70}var Ft=[null,[],[]];function kt(x,A){var I=Ft[x];A===0||A===10?((x===1?C:$)(Le(I,0)),I.length=0):I.push(A)}function Rt(x,A,I,F){if(P)return ee(25,1,x,A,I,F);for(var B=0,G=0;G<I;G++){var Q=l()[A>>2>>>0],ne=l()[A+4>>2>>>0];A+=8;for(var fe=0;fe<ne;fe++)kt(x,h()[Q+fe>>>0]);B+=ne}return l()[F>>2>>>0]=B,0}var je=0;function Pt(x){return x%4==0&&(x%100!=0||x%400==0)}var jt=[31,29,31,30,31,30,31,31,30,31,30,31],Bt=[31,28,31,30,31,30,31,31,30,31,30,31];function Vt(x,A,I,F){function B(W,_e,Pe){for(W=typeof W=="number"?W.toString():W||"";W.length<_e;)W=Pe[0]+W;return W}function G(W,_e){return B(W,_e,"0")}function Q(W,_e){function Pe(ct){return 0>ct?-1:0<ct?1:0}var et;return(et=Pe(W.getFullYear()-_e.getFullYear()))===0&&(et=Pe(W.getMonth()-_e.getMonth()))===0&&(et=Pe(W.getDate()-_e.getDate())),et}function ne(W){switch(W.getDay()){case 0:return new Date(W.getFullYear()-1,11,29);case 1:return W;case 2:return new Date(W.getFullYear(),0,3);case 3:return new Date(W.getFullYear(),0,2);case 4:return new Date(W.getFullYear(),0,1);case 5:return new Date(W.getFullYear()-1,11,31);case 6:return new Date(W.getFullYear()-1,11,30)}}function fe(W){var _e=W.Wb;for(W=new Date(new Date(W.Xb+1900,0,1).getTime());0<_e;){var Pe=W.getMonth(),et=(Pt(W.getFullYear())?jt:Bt)[Pe];if(!(_e>et-W.getDate())){W.setDate(W.getDate()+_e);break}_e-=et-W.getDate()+1,W.setDate(1),11>Pe?W.setMonth(Pe+1):(W.setMonth(0),W.setFullYear(W.getFullYear()+1))}return Pe=new Date(W.getFullYear()+1,0,4),_e=ne(new Date(W.getFullYear(),0,4)),Pe=ne(Pe),0>=Q(_e,W)?0>=Q(Pe,W)?W.getFullYear()+1:W.getFullYear():W.getFullYear()-1}var ge=p()[F+40>>2>>>0];for(var De in F={Lc:p()[F>>2>>>0],Kc:p()[F+4>>2>>>0],dc:p()[F+8>>2>>>0],jc:p()[F+12>>2>>>0],ec:p()[F+16>>2>>>0],Xb:p()[F+20>>2>>>0],Tb:p()[F+24>>2>>>0],Wb:p()[F+28>>2>>>0],Rc:p()[F+32>>2>>>0],Jc:p()[F+36>>2>>>0],Mc:ge?ve(ge):""},I=ve(I),ge={"%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"})I=I.replace(new RegExp(De,"g"),ge[De]);var Xe="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),We="January February March April May June July August September October November December".split(" ");for(De in ge={"%a":function(W){return Xe[W.Tb].substring(0,3)},"%A":function(W){return Xe[W.Tb]},"%b":function(W){return We[W.ec].substring(0,3)},"%B":function(W){return We[W.ec]},"%C":function(W){return G((W.Xb+1900)/100|0,2)},"%d":function(W){return G(W.jc,2)},"%e":function(W){return B(W.jc,2," ")},"%g":function(W){return fe(W).toString().substring(2)},"%G":function(W){return fe(W)},"%H":function(W){return G(W.dc,2)},"%I":function(W){return(W=W.dc)==0?W=12:12<W&&(W-=12),G(W,2)},"%j":function(W){for(var _e=0,Pe=0;Pe<=W.ec-1;_e+=(Pt(W.Xb+1900)?jt:Bt)[Pe++]);return G(W.jc+_e,3)},"%m":function(W){return G(W.ec+1,2)},"%M":function(W){return G(W.Kc,2)},"%n":function(){return`
`},"%p":function(W){return 0<=W.dc&&12>W.dc?"AM":"PM"},"%S":function(W){return G(W.Lc,2)},"%t":function(){return"	"},"%u":function(W){return W.Tb||7},"%U":function(W){return G(Math.floor((W.Wb+7-W.Tb)/7),2)},"%V":function(W){var _e=Math.floor((W.Wb+7-(W.Tb+6)%7)/7);if(2>=(W.Tb+371-W.Wb-2)%7&&_e++,_e)_e==53&&((Pe=(W.Tb+371-W.Wb)%7)==4||Pe==3&&Pt(W.Xb)||(_e=1));else{_e=52;var Pe=(W.Tb+7-W.Wb-1)%7;(Pe==4||Pe==5&&Pt(W.Xb%400-1))&&_e++}return G(_e,2)},"%w":function(W){return W.Tb},"%W":function(W){return G(Math.floor((W.Wb+7-(W.Tb+6)%7)/7),2)},"%y":function(W){return(W.Xb+1900).toString().substring(2)},"%Y":function(W){return W.Xb+1900},"%z":function(W){var _e=0<=(W=W.Jc);return W=Math.abs(W)/60,(_e?"+":"-")+("0000"+(W/60*100+W%60)).slice(-4)},"%Z":function(W){return W.Mc},"%%":function(){return"%"}},I=I.replace(/%%/g,"\0\0"),ge)I.includes(De)&&(I=I.replace(new RegExp(De,"g"),ge[De](F)));return De=function(W){var _e=Array(Fe(W)+1);return Ne(W,_e,0,_e.length),_e}(I=I.replace(/\0\0/g,"%")),De.length>A?0:(function(W,_e){s().set(W,_e>>>0)}(De,x),De.length-1)}re.fc();var cn=[null,$e,Mt,ot,gt,mt,bt,_t,yt,wt,Tt,vt,xt,St,Ot,M,D,U,H,te,q,me,Ee,qe,Ze,Rt],dn={b:function(x){return Lt(x+24)+24},n:function(x){return(x=new oe(x)).uc()||(x.hc(!0),ae--),x.ic(!1),it.push(x),x.sc(),x.vc()},ma:function(x){throw $("Unexpected exception thrown, this is not properly supported - aborting"),be=!0,x},x:function(){he(0);var x=it.pop();if(x.Hc()&&!x.kc()){var A=x.Dc();A&&we(A)(x.Zb),ft(x.Zb)}ie=0},e:function(){var x=ie;if(!x)return je=0;var A=new oe(x);A.cc(x);var I=A.bc();if(!I)return je=0,x;for(var F=Array.prototype.slice.call(arguments),B=0;B<F.length;B++){var G=F[B];if(G===0||G===I)break;if(Ct(G,I,A.Sb+16))return je=G,x}return je=I,x},l:function(){var x=ie;if(!x)return je=0;var A=new oe(x);A.cc(x);var I=A.bc();if(!I)return je=0,x;for(var F=Array.prototype.slice.call(arguments),B=0;B<F.length;B++){var G=F[B];if(G===0||G===I)break;if(Ct(G,I,A.Sb+16))return je=G,x}return je=I,x},h:function(){var x=ie;if(!x)return je=0;var A=new oe(x);A.cc(x);var I=A.bc();if(!I)return je=0,x;for(var F=Array.prototype.slice.call(arguments),B=0;B<F.length;B++){var G=F[B];if(G===0||G===I)break;if(Ct(G,I,A.Sb+16))return je=G,x}return je=I,x},t:ft,M:function(){var x=it.pop();x||pe("no exception to throw");var A=x.Zb;throw x.kc()||(it.push(x),x.ic(!0),x.hc(!1),ae++),ie=A,A},c:function(x,A,I){throw new oe(x).fc(A,I),ie=x,ae++,x},pa:function(){return ae},Fa:function(x){qt(x,!E,1,!O),re.pc()},T:function(x){P?postMessage({cmd:"cleanupThread",thread:x}):ut(x)},xa:pt,j:function(x){throw ie||(ie=x),x},H:gt,Ma:mt,ua:bt,wa:_t,oa:yt,Ka:wt,Ca:Tt,Ja:vt,V:xt,va:St,sa:Ot,La:M,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,I,F){if(x==A)setTimeout(()=>N(F));else if(P)postMessage({targetThread:x,cmd:"processProxyingQueue",queue:F});else{if(!(x=re.Vb[x]))return;x.postMessage({cmd:"processProxyingQueue",queue:F})}return 1},Ea:function(){return-1},Pa:function(x,A){x=new Date(1e3*j(x)),p()[A>>2>>>0]=x.getUTCSeconds(),p()[A+4>>2>>>0]=x.getUTCMinutes(),p()[A+8>>2>>>0]=x.getUTCHours(),p()[A+12>>2>>>0]=x.getUTCDate(),p()[A+16>>2>>>0]=x.getUTCMonth(),p()[A+20>>2>>>0]=x.getUTCFullYear()-1900,p()[A+24>>2>>>0]=x.getUTCDay(),x=(x.getTime()-Date.UTC(x.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,p()[A+28>>2>>>0]=x},Qa:function(x,A){x=new Date(1e3*j(x)),p()[A>>2>>>0]=x.getSeconds(),p()[A+4>>2>>>0]=x.getMinutes(),p()[A+8>>2>>>0]=x.getHours(),p()[A+12>>2>>>0]=x.getDate(),p()[A+16>>2>>>0]=x.getMonth(),p()[A+20>>2>>>0]=x.getFullYear()-1900,p()[A+24>>2>>>0]=x.getDay();var I=new Date(x.getFullYear(),0,1),F=(x.getTime()-I.getTime())/864e5|0;p()[A+28>>2>>>0]=F,p()[A+36>>2>>>0]=-60*x.getTimezoneOffset(),F=new Date(x.getFullYear(),6,1).getTimezoneOffset(),x=0|(F!=(I=I.getTimezoneOffset())&&x.getTimezoneOffset()==Math.min(I,F)),p()[A+32>>2>>>0]=x},Ra:function(x){var A=new Date(p()[x+20>>2>>>0]+1900,p()[x+16>>2>>>0],p()[x+12>>2>>>0],p()[x+8>>2>>>0],p()[x+4>>2>>>0],p()[x>>2>>>0],0),I=p()[x+32>>2>>>0],F=A.getTimezoneOffset(),B=new Date(A.getFullYear(),0,1),G=new Date(A.getFullYear(),6,1).getTimezoneOffset(),Q=B.getTimezoneOffset(),ne=Math.min(Q,G);return 0>I?p()[x+32>>2>>>0]=+(G!=Q&&ne==F):0<I!=(ne==F)&&(G=Math.max(Q,G),A.setTime(A.getTime()+6e4*((0<I?ne:G)-F))),p()[x+24>>2>>>0]=A.getDay(),I=(A.getTime()-B.getTime())/864e5|0,p()[x+28>>2>>>0]=I,p()[x>>2>>>0]=A.getSeconds(),p()[x+4>>2>>>0]=A.getMinutes(),p()[x+8>>2>>>0]=A.getHours(),p()[x+12>>2>>>0]=A.getDate(),p()[x+16>>2>>>0]=A.getMonth(),A.getTime()/1e3|0},Aa:U,Ba:H,Sa:function x(A,I,F){x.Ac||(x.Ac=!0,te(A,I,F))},y:function(){pe("")},U:function(){if(!v&&!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";rt||(rt={}),rt[x]||(rt[x]=1,v&&(x="warning: "+x),$(x))}},ra:function(){return 4294901760},B:ht,Ia:function(x,A,I){h().copyWithin(x>>>0,A>>>0,A+I>>>0)},F:function(){return v?a(3993).cpus().length:navigator.hardwareConcurrency},Da:function(x,A,I){xe.length=A,I>>=3;for(var F=0;F<A;F++)xe[F]=o()[I+F>>>0];return(0>x?Et[-x-1]:cn[x]).apply(null,xe)},qa:function(x){var A=h().length;if((x>>>=0)<=A||4294901760<x)return!1;for(var I=1;4>=I;I*=2){var F=A*(1+.2/I);F=Math.min(F,x+100663296);var B=Math;F=Math.max(x,F),B=B.min.call(B,4294901760,F+(65536-F%65536)%65536);e:{try{z.grow(B-J.byteLength+65535>>>16),Me(z.buffer);var G=1;break e}catch{}G=void 0}if(G)return!0}return!1},Na:function(){throw"unwind"},Ga:q,Ha:me,J:nt,I:Ee,S:qe,ga:Ze,R:Rt,d:function(){return je},na:function x(A,I){x.lc||(x.lc=function(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var B=new Uint8Array(1);return()=>(crypto.getRandomValues(B),B[0])}if(v)try{var G=a(Object(function(){var Q=new Error("Cannot find module 'crypto'");throw Q.code="MODULE_NOT_FOUND",Q}()));return()=>G.randomBytes(1)[0]}catch{}return()=>pe("randomDevice")}());for(var F=0;F<I;F++)s()[A+F>>0>>>0]=x.lc();return 0},ia:function(x,A,I){var F=de();try{return we(x)(A,I)}catch(B){if(ce(F),B!==B+0)throw B;he(1,0)}},ja:function(x,A,I){var F=de();try{return we(x)(A,I)}catch(B){if(ce(F),B!==B+0)throw B;he(1,0)}},K:function(x){var A=de();try{return we(x)()}catch(I){if(ce(A),I!==I+0)throw I;he(1,0)}},f:function(x,A){var I=de();try{return we(x)(A)}catch(F){if(ce(I),F!==F+0)throw F;he(1,0)}},P:function(x,A,I){var F=de();try{return we(x)(A,I)}catch(B){if(ce(F),B!==B+0)throw B;he(1,0)}},Q:function(x,A,I){var F=de();try{return we(x)(A,I)}catch(B){if(ce(F),B!==B+0)throw B;he(1,0)}},k:function(x,A,I){var F=de();try{return we(x)(A,I)}catch(B){if(ce(F),B!==B+0)throw B;he(1,0)}},p:function(x,A,I,F){var B=de();try{return we(x)(A,I,F)}catch(G){if(ce(B),G!==G+0)throw G;he(1,0)}},q:function(x,A,I,F,B){var G=de();try{return we(x)(A,I,F,B)}catch(Q){if(ce(G),Q!==Q+0)throw Q;he(1,0)}},N:function(x,A,I,F,B,G){var Q=de();try{return we(x)(A,I,F,B,G)}catch(ne){if(ce(Q),ne!==ne+0)throw ne;he(1,0)}},s:function(x,A,I,F,B,G){var Q=de();try{return we(x)(A,I,F,B,G)}catch(ne){if(ce(Q),ne!==ne+0)throw ne;he(1,0)}},w:function(x,A,I,F,B,G,Q){var ne=de();try{return we(x)(A,I,F,B,G,Q)}catch(fe){if(ce(ne),fe!==fe+0)throw fe;he(1,0)}},L:function(x,A,I,F,B,G,Q,ne){var fe=de();try{return we(x)(A,I,F,B,G,Q,ne)}catch(ge){if(ce(fe),ge!==ge+0)throw ge;he(1,0)}},E:function(x,A,I,F,B,G,Q,ne,fe,ge,De,Xe){var We=de();try{return we(x)(A,I,F,B,G,Q,ne,fe,ge,De,Xe)}catch(W){if(ce(We),W!==W+0)throw W;he(1,0)}},aa:function(x,A,I,F,B,G,Q,ne){var fe=de();try{return sn(x,A,I,F,B,G,Q,ne)}catch(ge){if(ce(fe),ge!==ge+0)throw ge;he(1,0)}},_:function(x,A,I,F,B,G,Q){var ne=de();try{return Jt(x,A,I,F,B,G,Q)}catch(fe){if(ce(ne),fe!==fe+0)throw fe;he(1,0)}},Z:function(x,A,I,F,B){var G=de();try{return an(x,A,I,F,B)}catch(Q){if(ce(G),Q!==Q+0)throw Q;he(1,0)}},ca:function(x,A,I,F){var B=de();try{return rn(x,A,I,F)}catch(G){if(ce(B),G!==G+0)throw G;he(1,0)}},$:function(x){var A=de();try{return Qt(x)}catch(I){if(ce(A),I!==I+0)throw I;he(1,0)}},ba:function(x,A){var I=de();try{return on(x,A)}catch(F){if(ce(I),F!==F+0)throw F;he(1,0)}},Y:function(x,A,I){var F=de();try{return Zt(x,A,I)}catch(B){if(ce(F),B!==B+0)throw B;he(1,0)}},g:function(x){var A=de();try{we(x)()}catch(I){if(ce(A),I!==I+0)throw I;he(1,0)}},r:function(x,A){var I=de();try{we(x)(A)}catch(F){if(ce(I),F!==F+0)throw F;he(1,0)}},i:function(x,A,I){var F=de();try{we(x)(A,I)}catch(B){if(ce(F),B!==B+0)throw B;he(1,0)}},ha:function(x,A,I,F){var B=de();try{we(x)(A,I,F)}catch(G){if(ce(B),G!==G+0)throw G;he(1,0)}},m:function(x,A,I,F){var B=de();try{we(x)(A,I,F)}catch(G){if(ce(B),G!==G+0)throw G;he(1,0)}},v:function(x,A,I,F,B){var G=de();try{we(x)(A,I,F,B)}catch(Q){if(ce(G),Q!==Q+0)throw Q;he(1,0)}},u:function(x,A,I,F,B,G){var Q=de();try{we(x)(A,I,F,B,G)}catch(ne){if(ce(Q),ne!==ne+0)throw ne;he(1,0)}},O:function(x,A,I,F,B,G,Q){var ne=de();try{we(x)(A,I,F,B,G,Q)}catch(fe){if(ce(ne),fe!==fe+0)throw fe;he(1,0)}},A:function(x,A,I,F,B,G,Q,ne){var fe=de();try{we(x)(A,I,F,B,G,Q,ne)}catch(ge){if(ce(fe),ge!==ge+0)throw ge;he(1,0)}},ka:function(x,A,I,F,B,G,Q,ne,fe){var ge=de();try{we(x)(A,I,F,B,G,Q,ne,fe)}catch(De){if(ce(ge),De!==De+0)throw De;he(1,0)}},C:function(x,A,I,F,B,G,Q,ne,fe,ge,De){var Xe=de();try{we(x)(A,I,F,B,G,Q,ne,fe,ge,De)}catch(We){if(ce(Xe),We!==We+0)throw We;he(1,0)}},D:function(x,A,I,F,B,G,Q,ne,fe,ge,De,Xe,We,W,_e,Pe){var et=de();try{we(x)(A,I,F,B,G,Q,ne,fe,ge,De,Xe,We,W,_e,Pe)}catch(ct){if(ce(et),ct!==ct+0)throw ct;he(1,0)}},fa:function(x,A,I,F,B,G,Q,ne){var fe=de();try{en(x,A,I,F,B,G,Q,ne)}catch(ge){if(ce(fe),ge!==ge+0)throw ge;he(1,0)}},da:function(x,A,I,F,B,G,Q,ne,fe,ge,De,Xe){var We=de();try{nn(x,A,I,F,B,G,Q,ne,fe,ge,De,Xe)}catch(W){if(ce(We),W!==W+0)throw W;he(1,0)}},ea:function(x,A,I,F,B,G){var Q=de();try{tn(x,A,I,F,B,G)}catch(ne){if(ce(Q),ne!==ne+0)throw ne;he(1,0)}},o:function(x){return x},a:z||t.wasmMemory,G:function(x){je=x},la:Vt,z:function(x,A,I,F){return Vt(x,A,I,F)}};(function(){function x(B,G){t.asm=B.exports,re.qc.push(t.asm.sb),Be=t.asm.ub,ze.unshift(t.asm.Va),Z=G,P||(Re--,t.monitorRunDependencies&&t.monitorRunDependencies(Re),Re==0&&Ye&&(B=Ye,Ye=null,B()))}function A(B){x(B.instance,B.module)}function I(B){return function(){if(!Y&&(O||E)){if(typeof fetch=="function"&&!Ae.startsWith("file://"))return fetch(Ae,{credentials:"same-origin"}).then(function(G){if(!G.ok)throw"failed to load wasm binary file at '"+Ae+"'";return G.arrayBuffer()}).catch(function(){return at()});if(d)return new Promise(function(G,Q){d(Ae,function(ne){G(new Uint8Array(ne))},Q)})}return Promise.resolve().then(function(){return at()})}().then(function(G){return WebAssembly.instantiate(G,F)}).then(function(G){return G}).then(B,function(G){$("failed to asynchronously prepare wasm: "+G),pe(G)})}var F={a:dn};if(P||(Re++,t.monitorRunDependencies&&t.monitorRunDependencies(Re)),t.instantiateWasm)try{return t.instantiateWasm(F,x)}catch(B){return $("Module.instantiateWasm callback failed with error: "+B),!1}(Y||typeof WebAssembly.instantiateStreaming!="function"||dt()||Ae.startsWith("file://")||v||typeof fetch!="function"?I(A):fetch(Ae,{credentials:"same-origin"}).then(function(B){return WebAssembly.instantiateStreaming(B,F).then(A,function(G){return $("wasm streaming compile failed: "+G),$("falling back to ArrayBuffer instantiation"),I(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 It=t._pthread_self=function(){return(It=t._pthread_self=t.asm.ob).apply(null,arguments)},Lt=t._malloc=function(){return(Lt=t._malloc=t.asm.pb).apply(null,arguments)},Ut=t._free=function(){return(Ut=t._free=t.asm.qb).apply(null,arguments)},zt=t._fflush=function(){return(zt=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 Gt=t.___funcs_on_exit=function(){return(Gt=t.___funcs_on_exit=t.asm.tb).apply(null,arguments)},qt=t.__emscripten_thread_init=function(){return(qt=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 Dt,Wt=t._emscripten_run_in_main_runtime_thread_js=function(){return(Wt=t._emscripten_run_in_main_runtime_thread_js=t.asm.xb).apply(null,arguments)},Ht=t.__emscripten_proxy_execute_task_queue=function(){return(Ht=t.__emscripten_proxy_execute_task_queue=t.asm.yb).apply(null,arguments)},Nt=t.__emscripten_thread_free_data=function(){return(Nt=t.__emscripten_thread_free_data=t.asm.zb).apply(null,arguments)},Yt=t.__emscripten_thread_exit=function(){return(Yt=t.__emscripten_thread_exit=t.asm.Ab).apply(null,arguments)},he=t._setThrew=function(){return(he=t._setThrew=t.asm.Bb).apply(null,arguments)},Xt=t._emscripten_stack_set_limits=function(){return(Xt=t._emscripten_stack_set_limits=t.asm.Cb).apply(null,arguments)},de=t.stackSave=function(){return(de=t.stackSave=t.asm.Db).apply(null,arguments)},ce=t.stackRestore=function(){return(ce=t.stackRestore=t.asm.Eb).apply(null,arguments)},$t=t.stackAlloc=function(){return($t=t.stackAlloc=t.asm.Fb).apply(null,arguments)},Ct=t.___cxa_can_catch=function(){return(Ct=t.___cxa_can_catch=t.asm.Gb).apply(null,arguments)},Kt=t.___cxa_is_pointer_type=function(){return(Kt=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)},Jt=t.dynCall_iiiiij=function(){return(Jt=t.dynCall_iiiiij=t.asm.Jb).apply(null,arguments)},Zt=t.dynCall_jii=function(){return(Zt=t.dynCall_jii=t.asm.Kb).apply(null,arguments)},en=t.dynCall_viiiiij=function(){return(en=t.dynCall_viiiiij=t.asm.Lb).apply(null,arguments)},tn=t.dynCall_vjji=function(){return(tn=t.dynCall_vjji=t.asm.Mb).apply(null,arguments)},nn=t.dynCall_viiijjjii=function(){return(nn=t.dynCall_viiijjjii=t.asm.Nb).apply(null,arguments)},rn=t.dynCall_iij=function(){return(rn=t.dynCall_iij=t.asm.Ob).apply(null,arguments)},on=t.dynCall_ji=function(){return(on=t.dynCall_ji=t.asm.Pb).apply(null,arguments)},sn=t.dynCall_iiiiiij=function(){return(sn=t.dynCall_iiiiiij=t.asm.Qb).apply(null,arguments)},an=t.dynCall_iiij=function(){return(an=t.dynCall_iiij=t.asm.Rb).apply(null,arguments)};function un(){function x(){if(!Dt&&(Dt=!0,t.calledRun=!0,!be)&&(P||tt(ze),e(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),!P)){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;){var A=t.postRun.shift();Ke.unshift(A)}tt(Ke)}}if(!(0<Re))if(P)e(t),P||tt(ze),postMessage({cmd:"loaded"});else{if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)Ve();tt(Ue),0<Re||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),x()},1)):x())}}if(t.UTF8ToString=ve,t.stringToUTF8=function(x,A,I){return Ne(x,h(),A,I)},t.lengthBytesUTF8=Fe,t.keepRuntimeAlive=Ge,t.wasmMemory=z,t.stackSave=de,t.stackRestore=ce,t.stackAlloc=$t,t.ExitStatus=Qe,t.PThread=re,Ye=function x(){Dt||un(),Dt||(Ye=x)},t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();return un(),f.ready});b.exports=c},932:(b,n,a)=>{var u,c=(u=(u=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0)||"/index.js",function(f){var s,h,p;f=f||{},s||(s=f!==void 0?f:{}),s.ready=new Promise(function(M,D){h=M,p=D});var l,o,t,e,r,i,d=Object.assign({},s),g="./this.program",m=(M,D)=>{throw D},_=typeof window=="object",y=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",w="";T?(w=y?a(908).dirname(w)+"/":"//",i=()=>{r||(e=a(1384),r=a(908))},l=function(M,D){return i(),M=r.normalize(M),e.readFileSync(M,D?void 0:"utf8")},t=M=>((M=l(M,!0)).buffer||(M=new Uint8Array(M)),M),o=(M,D,N)=>{i(),M=r.normalize(M),e.readFile(M,function(j,U){j?N(j):D(U.buffer)})},1<process.argv.length&&(g=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",function(M){if(!(M instanceof ze))throw M}),process.on("unhandledRejection",function(M){throw M}),m=(M,D)=>{if(v||0<Ie)throw process.exitCode=M,D;D instanceof ze||E("exiting due to exception: "+D),process.exit(M)},s.inspect=function(){return"[Emscripten Module object]"}):(_||y)&&(y?w=self.location.href:typeof document<"u"&&document.currentScript&&(w=document.currentScript.src),u&&(w=u),w=w.indexOf("blob:")!==0?w.substr(0,w.replace(/[?#].*/,"").lastIndexOf("/")+1):"",l=M=>{var D=new XMLHttpRequest;return D.open("GET",M,!1),D.send(null),D.responseText},y&&(t=M=>{var D=new XMLHttpRequest;return D.open("GET",M,!1),D.responseType="arraybuffer",D.send(null),new Uint8Array(D.response)}),o=(M,D,N)=>{var j=new XMLHttpRequest;j.open("GET",M,!0),j.responseType="arraybuffer",j.onload=()=>{j.status==200||j.status==0&&j.response?D(j.response):N()},j.onerror=N,j.send(null)});var S,O=s.print||console.log.bind(console),E=s.printErr||console.warn.bind(console);Object.assign(s,d),d=null,s.thisProgram&&(g=s.thisProgram),s.quit&&(m=s.quit),s.wasmBinary&&(S=s.wasmBinary);var v=s.noExitRuntime||!1;typeof WebAssembly!="object"&&Me("no native wasm support detected");var P,L,V,R,k,Y,C=!1,$=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function X(M,D,N){var j=(D>>>=0)+N;for(N=D;M[N]&&!(N>=j);)++N;if(16<N-D&&M.buffer&&$)return $.decode(M.subarray(D,N));for(j="";D<N;){var U=M[D++];if(128&U){var H=63&M[D++];if((224&U)==192)j+=String.fromCharCode((31&U)<<6|H);else{var K=63&M[D++];65536>(U=(240&U)==224?(15&U)<<12|H<<6|K:(7&U)<<18|H<<12|K<<6|63&M[D++])?j+=String.fromCharCode(U):(U-=65536,j+=String.fromCharCode(55296|U>>10,56320|1023&U))}}else j+=String.fromCharCode(U)}return j}function z(M,D){return(M>>>=0)?X(R,M,D):""}function Z(M,D,N,j){if(!(0<j))return 0;var U=N>>>=0;j=N+j-1;for(var H=0;H<M.length;++H){var K=M.charCodeAt(H);if(55296<=K&&57343>=K&&(K=65536+((1023&K)<<10)|1023&M.charCodeAt(++H)),127>=K){if(N>=j)break;D[N++>>>0]=K}else{if(2047>=K){if(N+1>=j)break;D[N++>>>0]=192|K>>6}else{if(65535>=K){if(N+2>=j)break;D[N++>>>0]=224|K>>12}else{if(N+3>=j)break;D[N++>>>0]=240|K>>18,D[N++>>>0]=128|K>>12&63}D[N++>>>0]=128|K>>6&63}D[N++>>>0]=128|63&K}}return D[N>>>0]=0,N-U}function J(M){for(var D=0,N=0;N<M.length;++N){var j=M.charCodeAt(N);127>=j?D++:2047>=j?D+=2:55296<=j&&57343>=j?(D+=4,++N):D+=3}return D}function ue(){var M=P.buffer;L=M,s.HEAP8=V=new Int8Array(M),s.HEAP16=new Int16Array(M),s.HEAP32=k=new Int32Array(M),s.HEAPU8=R=new Uint8Array(M),s.HEAPU16=new Uint16Array(M),s.HEAPU32=Y=new Uint32Array(M),s.HEAPF32=new Float32Array(M),s.HEAPF64=new Float64Array(M)}var Se,Te=[],se=[],ye=[],be=[],Ie=0;function Le(){var M=s.preRun.shift();Te.unshift(M)}var ve,Ne=0,Fe=null;function Me(M){throw s.onAbort&&s.onAbort(M),E(M="Aborted("+M+")"),C=!0,M=new WebAssembly.RuntimeError(M+". Build with -sASSERTIONS for more info."),p(M),M}function Oe(){return ve.startsWith("data:application/octet-stream;base64,")}if(ve="ort-wasm.wasm",!Oe()){var Be=ve;ve=s.locateFile?s.locateFile(Be,w):w+Be}function Ue(){var M=ve;try{if(M==ve&&S)return new Uint8Array(S);if(t)return t(M);throw"both async and sync fetching of the wasm failed"}catch(D){Me(D)}}function ze(M){this.name="ExitStatus",this.message="Program terminated with exit("+M+")",this.status=M}function He(M){for(;0<M.length;)M.shift()(s)}var Ke=[],Ge=0,Ve=0;function Ae(M){this.Db=M,this.zb=M-24,this.Ub=function(D){Y[this.zb+4>>2>>>0]=D},this.Eb=function(){return Y[this.zb+4>>2>>>0]},this.Sb=function(D){Y[this.zb+8>>2>>>0]=D},this.Wb=function(){return Y[this.zb+8>>2>>>0]},this.Tb=function(){k[this.zb>>2>>>0]=0},this.Ib=function(D){V[this.zb+12>>0>>>0]=D?1:0},this.Pb=function(){return V[this.zb+12>>0>>>0]!=0},this.Jb=function(D){V[this.zb+13>>0>>>0]=D?1:0},this.Lb=function(){return V[this.zb+13>>0>>>0]!=0},this.Rb=function(D,N){this.Fb(0),this.Ub(D),this.Sb(N),this.Tb(),this.Ib(!1),this.Jb(!1)},this.Nb=function(){k[this.zb>>2>>>0]+=1},this.Xb=function(){var D=k[this.zb>>2>>>0];return k[this.zb>>2>>>0]=D-1,D===1},this.Fb=function(D){Y[this.zb+16>>2>>>0]=D},this.Ob=function(){return Y[this.zb+16>>2>>>0]},this.Qb=function(){if(pt(this.Eb()))return Y[this.Db>>2>>>0];var D=this.Ob();return D!==0?D:this.Db}}function Re(M){return rt(new Ae(M).zb)}var Ye=[];function pe(M){var D=Ye[M];return D||(M>=Ye.length&&(Ye.length=M+1),Ye[M]=D=Se.get(M)),D}function dt(M){var D=J(M)+1,N=we(D);return N&&Z(M,V,N,D),N}var at={};function Et(){if(!Qe){var M,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(M in at)at[M]===void 0?delete D[M]:D[M]=at[M];var N=[];for(M in D)N.push(M+"="+D[M]);Qe=N}return Qe}var Qe,ut=[null,[],[]];function lt(M,D){var N=ut[M];D===0||D===10?((M===1?O:E)(X(N,0)),N.length=0):N.push(D)}var $e=0;function nt(M){return M%4==0&&(M%100!=0||M%400==0)}var re=[31,29,31,30,31,30,31,31,30,31,30,31],tt=[31,28,31,30,31,30,31,31,30,31,30,31];function At(M,D,N,j){function U(q,me,Ee){for(q=typeof q=="number"?q.toString():q||"";q.length<me;)q=Ee[0]+q;return q}function H(q,me){return U(q,me,"0")}function K(q,me){function Ee(Ze){return 0>Ze?-1:0<Ze?1:0}var qe;return(qe=Ee(q.getFullYear()-me.getFullYear()))===0&&(qe=Ee(q.getMonth()-me.getMonth()))===0&&(qe=Ee(q.getDate()-me.getDate())),qe}function te(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 ee(q){var me=q.Bb;for(q=new Date(new Date(q.Cb+1900,0,1).getTime());0<me;){var Ee=q.getMonth(),qe=(nt(q.getFullYear())?re:tt)[Ee];if(!(me>qe-q.getDate())){q.setDate(q.getDate()+me);break}me-=qe-q.getDate()+1,q.setDate(1),11>Ee?q.setMonth(Ee+1):(q.setMonth(0),q.setFullYear(q.getFullYear()+1))}return Ee=new Date(q.getFullYear()+1,0,4),me=te(new Date(q.getFullYear(),0,4)),Ee=te(Ee),0>=K(me,q)?0>=K(Ee,q)?q.getFullYear()+1:q.getFullYear():q.getFullYear()-1}var le=k[j+40>>2>>>0];for(var xe in j={$b:k[j>>2>>>0],Zb:k[j+4>>2>>>0],Gb:k[j+8>>2>>>0],Kb:k[j+12>>2>>>0],Hb:k[j+16>>2>>>0],Cb:k[j+20>>2>>>0],Ab:k[j+24>>2>>>0],Bb:k[j+28>>2>>>0],bc:k[j+32>>2>>>0],Yb:k[j+36>>2>>>0],ac:le?z(le):""},N=z(N),le={"%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(xe,"g"),le[xe]);var ke="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),Ce="January February March April May June July August September October November December".split(" ");for(xe in le={"%a":function(q){return ke[q.Ab].substring(0,3)},"%A":function(q){return ke[q.Ab]},"%b":function(q){return Ce[q.Hb].substring(0,3)},"%B":function(q){return Ce[q.Hb]},"%C":function(q){return H((q.Cb+1900)/100|0,2)},"%d":function(q){return H(q.Kb,2)},"%e":function(q){return U(q.Kb,2," ")},"%g":function(q){return ee(q).toString().substring(2)},"%G":function(q){return ee(q)},"%H":function(q){return H(q.Gb,2)},"%I":function(q){return(q=q.Gb)==0?q=12:12<q&&(q-=12),H(q,2)},"%j":function(q){for(var me=0,Ee=0;Ee<=q.Hb-1;me+=(nt(q.Cb+1900)?re:tt)[Ee++]);return H(q.Kb+me,3)},"%m":function(q){return H(q.Hb+1,2)},"%M":function(q){return H(q.Zb,2)},"%n":function(){return`
`},"%p":function(q){return 0<=q.Gb&&12>q.Gb?"AM":"PM"},"%S":function(q){return H(q.$b,2)},"%t":function(){return"	"},"%u":function(q){return q.Ab||7},"%U":function(q){return H(Math.floor((q.Bb+7-q.Ab)/7),2)},"%V":function(q){var me=Math.floor((q.Bb+7-(q.Ab+6)%7)/7);if(2>=(q.Ab+371-q.Bb-2)%7&&me++,me)me==53&&((Ee=(q.Ab+371-q.Bb)%7)==4||Ee==3&&nt(q.Cb)||(me=1));else{me=52;var Ee=(q.Ab+7-q.Bb-1)%7;(Ee==4||Ee==5&&nt(q.Cb%400-1))&&me++}return H(me,2)},"%w":function(q){return q.Ab},"%W":function(q){return H(Math.floor((q.Bb+7-(q.Ab+6)%7)/7),2)},"%y":function(q){return(q.Cb+1900).toString().substring(2)},"%Y":function(q){return q.Cb+1900},"%z":function(q){var me=0<=(q=q.Yb);return q=Math.abs(q)/60,(me?"+":"-")+("0000"+(q/60*100+q%60)).slice(-4)},"%Z":function(q){return q.ac},"%%":function(){return"%"}},N=N.replace(/%%/g,"\0\0"),le)N.includes(xe)&&(N=N.replace(new RegExp(xe,"g"),le[xe](j)));return xe=function(q){var me=Array(J(q)+1);return Z(q,me,0,me.length),me}(N=N.replace(/\0\0/g,"%")),xe.length>D?0:(V.set(xe,M>>>0),xe.length-1)}var Mt={a:function(M){return we(M+24)+24},m:function(M){return(M=new Ae(M)).Pb()||(M.Ib(!0),Ge--),M.Jb(!1),Ke.push(M),M.Nb(),M.Qb()},ia:function(M){throw E("Unexpected exception thrown, this is not properly supported - aborting"),C=!0,M},w:function(){ae(0);var M=Ke.pop();if(M.Xb()&&!M.Lb()){var D=M.Wb();D&&pe(D)(M.Db),Re(M.Db)}Ve=0},d:function(){var M=Ve;if(!M)return $e=0;var D=new Ae(M);D.Fb(M);var N=D.Eb();if(!N)return $e=0,M;for(var j=Array.prototype.slice.call(arguments),U=0;U<j.length;U++){var H=j[U];if(H===0||H===N)break;if(ot(H,N,D.zb+16))return $e=H,M}return $e=N,M},k:function(){var M=Ve;if(!M)return $e=0;var D=new Ae(M);D.Fb(M);var N=D.Eb();if(!N)return $e=0,M;for(var j=Array.prototype.slice.call(arguments),U=0;U<j.length;U++){var H=j[U];if(H===0||H===N)break;if(ot(H,N,D.zb+16))return $e=H,M}return $e=N,M},g:function(){var M=Ve;if(!M)return $e=0;var D=new Ae(M);D.Fb(M);var N=D.Eb();if(!N)return $e=0,M;for(var j=Array.prototype.slice.call(arguments),U=0;U<j.length;U++){var H=j[U];if(H===0||H===N)break;if(ot(H,N,D.zb+16))return $e=H,M}return $e=N,M},s:Re,L:function(){var M=Ke.pop();M||Me("no exception to throw");var D=M.Db;throw M.Lb()||(Ke.push(M),M.Jb(!0),M.Ib(!1),Ge++),Ve=D,D},b:function(M,D,N){throw new Ae(M).Rb(D,N),Ve=M,Ge++,M},la:function(){return Ge},i:function(M){throw Ve||(Ve=M),M},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(){Me("To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking")},Ia:function(){Me("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(M,D){M=new Date(1e3*(Y[M>>>2]+4294967296*k[M+4>>>2])),k[D>>2>>>0]=M.getUTCSeconds(),k[D+4>>2>>>0]=M.getUTCMinutes(),k[D+8>>2>>>0]=M.getUTCHours(),k[D+12>>2>>>0]=M.getUTCDate(),k[D+16>>2>>>0]=M.getUTCMonth(),k[D+20>>2>>>0]=M.getUTCFullYear()-1900,k[D+24>>2>>>0]=M.getUTCDay(),k[D+28>>2>>>0]=(M.getTime()-Date.UTC(M.getUTCFullYear(),0,1,0,0,0,0))/864e5|0},Ea:function(M,D){M=new Date(1e3*(Y[M>>>2]+4294967296*k[M+4>>>2])),k[D>>2>>>0]=M.getSeconds(),k[D+4>>2>>>0]=M.getMinutes(),k[D+8>>2>>>0]=M.getHours(),k[D+12>>2>>>0]=M.getDate(),k[D+16>>2>>>0]=M.getMonth(),k[D+20>>2>>>0]=M.getFullYear()-1900,k[D+24>>2>>>0]=M.getDay();var N=new Date(M.getFullYear(),0,1);k[D+28>>2>>>0]=(M.getTime()-N.getTime())/864e5|0,k[D+36>>2>>>0]=-60*M.getTimezoneOffset();var j=new Date(M.getFullYear(),6,1).getTimezoneOffset();N=N.getTimezoneOffset(),k[D+32>>2>>>0]=0|(j!=N&&M.getTimezoneOffset()==Math.min(N,j))},Fa:function(M){var D=new Date(k[M+20>>2>>>0]+1900,k[M+16>>2>>>0],k[M+12>>2>>>0],k[M+8>>2>>>0],k[M+4>>2>>>0],k[M>>2>>>0],0),N=k[M+32>>2>>>0],j=D.getTimezoneOffset(),U=new Date(D.getFullYear(),0,1),H=new Date(D.getFullYear(),6,1).getTimezoneOffset(),K=U.getTimezoneOffset(),te=Math.min(K,H);return 0>N?k[M+32>>2>>>0]=+(H!=K&&te==j):0<N!=(te==j)&&(H=Math.max(K,H),D.setTime(D.getTime()+6e4*((0<N?te:H)-j))),k[M+24>>2>>>0]=D.getDay(),k[M+28>>2>>>0]=(D.getTime()-U.getTime())/864e5|0,k[M>>2>>>0]=D.getSeconds(),k[M+4>>2>>>0]=D.getMinutes(),k[M+8>>2>>>0]=D.getHours(),k[M+12>>2>>>0]=D.getDate(),k[M+16>>2>>>0]=D.getMonth(),D.getTime()/1e3|0},sa:function(){return-52},ta:function(){},Ga:function M(D,N,j){M.Vb||(M.Vb=!0,function(U,H,K){function te(Ce){return(Ce=Ce.toTimeString().match(/\(([A-Za-z ]+)\)$/))?Ce[1]:"GMT"}var ee=new Date().getFullYear(),le=new Date(ee,0,1),xe=new Date(ee,6,1);ee=le.getTimezoneOffset();var ke=xe.getTimezoneOffset();k[U>>2>>>0]=60*Math.max(ee,ke),k[H>>2>>>0]=+(ee!=ke),U=te(le),H=te(xe),U=dt(U),H=dt(H),ke<ee?(Y[K>>2>>>0]=U,Y[K+4>>2>>>0]=H):(Y[K>>2>>>0]=H,Y[K+4>>2>>>0]=U)}(D,N,j))},B:function(){Me("")},ma:function(){return 4294901760},I:T?()=>{var M=process.hrtime();return 1e3*M[0]+M[1]/1e6}:()=>performance.now(),xa:function(M,D,N){R.copyWithin(M>>>0,D>>>0,D+N>>>0)},G:function(M){var D=R.length;if(4294901760<(M>>>=0))return!1;for(var N=1;4>=N;N*=2){var j=D*(1+.2/N);j=Math.min(j,M+100663296);var U=Math;j=Math.max(M,j),U=U.min.call(U,4294901760,j+(65536-j%65536)%65536);e:{try{P.grow(U-L.byteLength+65535>>>16),ue();var H=1;break e}catch{}H=void 0}if(H)return!0}return!1},va:function(M,D){var N=0;return Et().forEach(function(j,U){var H=D+N;for(U=Y[M+4*U>>2>>>0]=H,H=0;H<j.length;++H)V[U++>>0>>>0]=j.charCodeAt(H);V[U>>0>>>0]=0,N+=j.length+1}),0},wa:function(M,D){var N=Et();Y[M>>2>>>0]=N.length;var j=0;return N.forEach(function(U){j+=U.length+1}),Y[D>>2>>>0]=j,0},ba:function(M){v||0<Ie||(it(),He(ye),ht(0),ut[1].length&&lt(1,10),ut[2].length&&lt(2,10)),v||0<Ie||(s.onExit&&s.onExit(M),C=!0),m(M,new ze(M))},E:function(){return 52},Q:function(){return 52},ca:function(){return 70},P:function(M,D,N,j){for(var U=0,H=0;H<N;H++){var K=Y[D>>2>>>0],te=Y[D+4>>2>>>0];D+=8;for(var ee=0;ee<te;ee++)lt(M,R[K+ee>>>0]);U+=te}return Y[j>>2>>>0]=U,0},c:function(){return $e},ja:function M(D,N){M.Mb||(M.Mb=function(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var U=new Uint8Array(1);return()=>(crypto.getRandomValues(U),U[0])}if(T)try{var H=a(Object(function(){var K=new Error("Cannot find module 'crypto'");throw K.code="MODULE_NOT_FOUND",K}()));return()=>H.randomBytes(1)[0]}catch{}return()=>Me("randomDevice")}());for(var j=0;j<N;j++)V[D+j>>0>>>0]=M.Mb();return 0},ea:function(M,D,N){var j=ie();try{return pe(M)(D,N)}catch(U){if(oe(j),U!==U+0)throw U;ae(1,0)}},fa:function(M,D,N){var j=ie();try{return pe(M)(D,N)}catch(U){if(oe(j),U!==U+0)throw U;ae(1,0)}},J:function(M){var D=ie();try{return pe(M)()}catch(N){if(oe(D),N!==N+0)throw N;ae(1,0)}},e:function(M,D){var N=ie();try{return pe(M)(D)}catch(j){if(oe(N),j!==j+0)throw j;ae(1,0)}},N:function(M,D,N){var j=ie();try{return pe(M)(D,N)}catch(U){if(oe(j),U!==U+0)throw U;ae(1,0)}},O:function(M,D,N){var j=ie();try{return pe(M)(D,N)}catch(U){if(oe(j),U!==U+0)throw U;ae(1,0)}},j:function(M,D,N){var j=ie();try{return pe(M)(D,N)}catch(U){if(oe(j),U!==U+0)throw U;ae(1,0)}},o:function(M,D,N,j){var U=ie();try{return pe(M)(D,N,j)}catch(H){if(oe(U),H!==H+0)throw H;ae(1,0)}},p:function(M,D,N,j,U){var H=ie();try{return pe(M)(D,N,j,U)}catch(K){if(oe(H),K!==K+0)throw K;ae(1,0)}},M:function(M,D,N,j,U,H){var K=ie();try{return pe(M)(D,N,j,U,H)}catch(te){if(oe(K),te!==te+0)throw te;ae(1,0)}},r:function(M,D,N,j,U,H){var K=ie();try{return pe(M)(D,N,j,U,H)}catch(te){if(oe(K),te!==te+0)throw te;ae(1,0)}},v:function(M,D,N,j,U,H,K){var te=ie();try{return pe(M)(D,N,j,U,H,K)}catch(ee){if(oe(te),ee!==ee+0)throw ee;ae(1,0)}},K:function(M,D,N,j,U,H,K,te){var ee=ie();try{return pe(M)(D,N,j,U,H,K,te)}catch(le){if(oe(ee),le!==le+0)throw le;ae(1,0)}},D:function(M,D,N,j,U,H,K,te,ee,le,xe,ke){var Ce=ie();try{return pe(M)(D,N,j,U,H,K,te,ee,le,xe,ke)}catch(q){if(oe(Ce),q!==q+0)throw q;ae(1,0)}},X:function(M,D,N,j,U,H,K,te){var ee=ie();try{return xt(M,D,N,j,U,H,K,te)}catch(le){if(oe(ee),le!==le+0)throw le;ae(1,0)}},V:function(M,D,N,j,U,H,K){var te=ie();try{return mt(M,D,N,j,U,H,K)}catch(ee){if(oe(te),ee!==ee+0)throw ee;ae(1,0)}},U:function(M,D,N,j,U){var H=ie();try{return St(M,D,N,j,U)}catch(K){if(oe(H),K!==K+0)throw K;ae(1,0)}},Z:function(M,D,N,j){var U=ie();try{return Tt(M,D,N,j)}catch(H){if(oe(U),H!==H+0)throw H;ae(1,0)}},W:function(M){var D=ie();try{return gt(M)}catch(N){if(oe(D),N!==N+0)throw N;ae(1,0)}},Y:function(M,D){var N=ie();try{return vt(M,D)}catch(j){if(oe(N),j!==j+0)throw j;ae(1,0)}},T:function(M,D,N){var j=ie();try{return bt(M,D,N)}catch(U){if(oe(j),U!==U+0)throw U;ae(1,0)}},f:function(M){var D=ie();try{pe(M)()}catch(N){if(oe(D),N!==N+0)throw N;ae(1,0)}},q:function(M,D){var N=ie();try{pe(M)(D)}catch(j){if(oe(N),j!==j+0)throw j;ae(1,0)}},h:function(M,D,N){var j=ie();try{pe(M)(D,N)}catch(U){if(oe(j),U!==U+0)throw U;ae(1,0)}},da:function(M,D,N,j){var U=ie();try{pe(M)(D,N,j)}catch(H){if(oe(U),H!==H+0)throw H;ae(1,0)}},l:function(M,D,N,j){var U=ie();try{pe(M)(D,N,j)}catch(H){if(oe(U),H!==H+0)throw H;ae(1,0)}},t:function(M,D,N,j,U){var H=ie();try{pe(M)(D,N,j,U)}catch(K){if(oe(H),K!==K+0)throw K;ae(1,0)}},u:function(M,D,N,j,U,H){var K=ie();try{pe(M)(D,N,j,U,H)}catch(te){if(oe(K),te!==te+0)throw te;ae(1,0)}},x:function(M,D,N,j,U,H,K){var te=ie();try{pe(M)(D,N,j,U,H,K)}catch(ee){if(oe(te),ee!==ee+0)throw ee;ae(1,0)}},z:function(M,D,N,j,U,H,K,te){var ee=ie();try{pe(M)(D,N,j,U,H,K,te)}catch(le){if(oe(ee),le!==le+0)throw le;ae(1,0)}},ga:function(M,D,N,j,U,H,K,te,ee){var le=ie();try{pe(M)(D,N,j,U,H,K,te,ee)}catch(xe){if(oe(le),xe!==xe+0)throw xe;ae(1,0)}},A:function(M,D,N,j,U,H,K,te,ee,le,xe){var ke=ie();try{pe(M)(D,N,j,U,H,K,te,ee,le,xe)}catch(Ce){if(oe(ke),Ce!==Ce+0)throw Ce;ae(1,0)}},C:function(M,D,N,j,U,H,K,te,ee,le,xe,ke,Ce,q,me,Ee){var qe=ie();try{pe(M)(D,N,j,U,H,K,te,ee,le,xe,ke,Ce,q,me,Ee)}catch(Ze){if(oe(qe),Ze!==Ze+0)throw Ze;ae(1,0)}},aa:function(M,D,N,j,U,H,K,te){var ee=ie();try{_t(M,D,N,j,U,H,K,te)}catch(le){if(oe(ee),le!==le+0)throw le;ae(1,0)}},_:function(M,D,N,j,U,H,K,te,ee,le,xe,ke){var Ce=ie();try{wt(M,D,N,j,U,H,K,te,ee,le,xe,ke)}catch(q){if(oe(Ce),q!==q+0)throw q;ae(1,0)}},$:function(M,D,N,j,U,H){var K=ie();try{yt(M,D,N,j,U,H)}catch(te){if(oe(K),te!==te+0)throw te;ae(1,0)}},n:function(M){return M},F:function(M){$e=M},ha:At,y:function(M,D,N,j){return At(M,D,N,j)}};(function(){function M(U){s.asm=U.exports,P=s.asm.Ka,ue(),Se=s.asm.ib,se.unshift(s.asm.La),Ne--,s.monitorRunDependencies&&s.monitorRunDependencies(Ne),Ne==0&&Fe&&(U=Fe,Fe=null,U())}function D(U){M(U.instance)}function N(U){return function(){if(!S&&(_||y)){if(typeof fetch=="function"&&!ve.startsWith("file://"))return fetch(ve,{credentials:"same-origin"}).then(function(H){if(!H.ok)throw"failed to load wasm binary file at '"+ve+"'";return H.arrayBuffer()}).catch(function(){return Ue()});if(o)return new Promise(function(H,K){o(ve,function(te){H(new Uint8Array(te))},K)})}return Promise.resolve().then(function(){return Ue()})}().then(function(H){return WebAssembly.instantiate(H,j)}).then(function(H){return H}).then(U,function(H){E("failed to asynchronously prepare wasm: "+H),Me(H)})}var j={a:Mt};if(Ne++,s.monitorRunDependencies&&s.monitorRunDependencies(Ne),s.instantiateWasm)try{return s.instantiateWasm(j,M)}catch(U){return E("Module.instantiateWasm callback failed with error: "+U),!1}(S||typeof WebAssembly.instantiateStreaming!="function"||Oe()||ve.startsWith("file://")||T||typeof fetch!="function"?N(D):fetch(ve,{credentials:"same-origin"}).then(function(U){return WebAssembly.instantiateStreaming(U,j).then(D,function(H){return E("wasm streaming compile failed: "+H),E("falling back to ArrayBuffer instantiation"),N(D)})})).catch(p)})(),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,we=s._malloc=function(){return(we=s._malloc=s.asm.eb).apply(null,arguments)},rt=s._free=function(){return(rt=s._free=s.asm.fb).apply(null,arguments)},ht=s._fflush=function(){return(ht=s._fflush=s.asm.gb).apply(null,arguments)},it=s.___funcs_on_exit=function(){return(it=s.___funcs_on_exit=s.asm.hb).apply(null,arguments)},ae=s._setThrew=function(){return(ae=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)},ot=s.___cxa_can_catch=function(){return(ot=s.___cxa_can_catch=s.asm.nb).apply(null,arguments)},pt=s.___cxa_is_pointer_type=function(){return(pt=s.___cxa_is_pointer_type=s.asm.ob).apply(null,arguments)},gt=s.dynCall_j=function(){return(gt=s.dynCall_j=s.asm.pb).apply(null,arguments)},mt=s.dynCall_iiiiij=function(){return(mt=s.dynCall_iiiiij=s.asm.qb).apply(null,arguments)},bt=s.dynCall_jii=function(){return(bt=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)},yt=s.dynCall_vjji=function(){return(yt=s.dynCall_vjji=s.asm.tb).apply(null,arguments)},wt=s.dynCall_viiijjjii=function(){return(wt=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)},vt=s.dynCall_ji=function(){return(vt=s.dynCall_ji=s.asm.wb).apply(null,arguments)},xt=s.dynCall_iiiiiij=function(){return(xt=s.dynCall_iiiiiij=s.asm.xb).apply(null,arguments)},St=s.dynCall_iiij=function(){return(St=s.dynCall_iiij=s.asm.yb).apply(null,arguments)};function Ot(){function M(){if(!Je&&(Je=!0,s.calledRun=!0,!C)){if(He(se),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();be.unshift(D)}He(be)}}if(!(0<Ne)){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Le();He(Te),0<Ne||(s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),M()},1)):M())}}if(s.UTF8ToString=z,s.stringToUTF8=function(M,D,N){return Z(M,R,D,N)},s.lengthBytesUTF8=J,s.stackSave=ie,s.stackRestore=oe,s.stackAlloc=ft,Fe=function M(){Je||Ot(),Je||(Fe=M)},s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);0<s.preInit.length;)s.preInit.pop()();return Ot(),f.ready});b.exports=c},4537:b=>{b.exports=function(n,a){for(var u=new Array(arguments.length-1),c=0,f=2,s=!0;f<arguments.length;)u[c++]=arguments[f++];return new Promise(function(h,p){u[c]=function(l){if(s)if(s=!1,l)p(l);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(a||null,u)}catch(l){s&&(s=!1,p(l))}})}},7419:(b,n)=>{var a=n;a.length=function(h){var p=h.length;if(!p)return 0;for(var l=0;--p%4>1&&h.charAt(p)==="=";)++l;return Math.ceil(3*h.length)/4-l};for(var u=new Array(64),c=new Array(123),f=0;f<64;)c[u[f]=f<26?f+65:f<52?f+71:f<62?f-4:f-59|43]=f++;a.encode=function(h,p,l){for(var o,t=null,e=[],r=0,i=0;p<l;){var d=h[p++];switch(i){case 0:e[r++]=u[d>>2],o=(3&d)<<4,i=1;break;case 1:e[r++]=u[o|d>>4],o=(15&d)<<2,i=2;break;case 2:e[r++]=u[o|d>>6],e[r++]=u[63&d],i=0}r>8191&&((t||(t=[])).push(String.fromCharCode.apply(String,e)),r=0)}return i&&(e[r++]=u[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";a.decode=function(h,p,l){for(var o,t=l,e=0,r=0;r<h.length;){var i=h.charCodeAt(r++);if(i===61&&e>1)break;if((i=c[i])===void 0)throw Error(s);switch(e){case 0:o=i,e=1;break;case 1:p[l++]=o<<2|(48&i)>>4,o=i,e=2;break;case 2:p[l++]=(15&o)<<4|(60&i)>>2,o=i,e=3;break;case 3:p[l++]=(3&o)<<6|i,e=0}}if(e===1)throw Error(s);return l-t},a.test=function(h){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(h)}},9211:b=>{function n(){this._listeners={}}b.exports=n,n.prototype.on=function(a,u,c){return(this._listeners[a]||(this._listeners[a]=[])).push({fn:u,ctx:c||this}),this},n.prototype.off=function(a,u){if(a===void 0)this._listeners={};else if(u===void 0)this._listeners[a]=[];else for(var c=this._listeners[a],f=0;f<c.length;)c[f].fn===u?c.splice(f,1):++f;return this},n.prototype.emit=function(a){var u=this._listeners[a];if(u){for(var c=[],f=1;f<arguments.length;)c.push(arguments[f++]);for(f=0;f<u.length;)u[f].fn.apply(u[f++].ctx,c)}return this}},945:b=>{function n(s){return typeof Float32Array<"u"?function(){var h=new Float32Array([-0]),p=new Uint8Array(h.buffer),l=p[3]===128;function o(i,d,g){h[0]=i,d[g]=p[0],d[g+1]=p[1],d[g+2]=p[2],d[g+3]=p[3]}function t(i,d,g){h[0]=i,d[g]=p[3],d[g+1]=p[2],d[g+2]=p[1],d[g+3]=p[0]}function e(i,d){return p[0]=i[d],p[1]=i[d+1],p[2]=i[d+2],p[3]=i[d+3],h[0]}function r(i,d){return p[3]=i[d],p[2]=i[d+1],p[1]=i[d+2],p[0]=i[d+3],h[0]}s.writeFloatLE=l?o:t,s.writeFloatBE=l?t:o,s.readFloatLE=l?e:r,s.readFloatBE=l?r:e}():function(){function h(l,o,t,e){var r=o<0?1:0;if(r&&(o=-o),o===0)l(1/o>0?0:2147483648,t,e);else if(isNaN(o))l(2143289344,t,e);else if(o>34028234663852886e22)l((r<<31|2139095040)>>>0,t,e);else if(o<11754943508222875e-54)l((r<<31|Math.round(o/1401298464324817e-60))>>>0,t,e);else{var i=Math.floor(Math.log(o)/Math.LN2);l((r<<31|i+127<<23|8388607&Math.round(o*Math.pow(2,-i)*8388608))>>>0,t,e)}}function p(l,o,t){var e=l(o,t),r=2*(e>>31)+1,i=e>>>23&255,d=8388607&e;return i===255?d?NaN:r*(1/0):i===0?1401298464324817e-60*r*d:r*Math.pow(2,i-150)*(d+8388608)}s.writeFloatLE=h.bind(null,a),s.writeFloatBE=h.bind(null,u),s.readFloatLE=p.bind(null,c),s.readFloatBE=p.bind(null,f)}(),typeof Float64Array<"u"?function(){var h=new Float64Array([-0]),p=new Uint8Array(h.buffer),l=p[7]===128;function o(i,d,g){h[0]=i,d[g]=p[0],d[g+1]=p[1],d[g+2]=p[2],d[g+3]=p[3],d[g+4]=p[4],d[g+5]=p[5],d[g+6]=p[6],d[g+7]=p[7]}function t(i,d,g){h[0]=i,d[g]=p[7],d[g+1]=p[6],d[g+2]=p[5],d[g+3]=p[4],d[g+4]=p[3],d[g+5]=p[2],d[g+6]=p[1],d[g+7]=p[0]}function e(i,d){return p[0]=i[d],p[1]=i[d+1],p[2]=i[d+2],p[3]=i[d+3],p[4]=i[d+4],p[5]=i[d+5],p[6]=i[d+6],p[7]=i[d+7],h[0]}function r(i,d){return p[7]=i[d],p[6]=i[d+1],p[5]=i[d+2],p[4]=i[d+3],p[3]=i[d+4],p[2]=i[d+5],p[1]=i[d+6],p[0]=i[d+7],h[0]}s.writeDoubleLE=l?o:t,s.writeDoubleBE=l?t:o,s.readDoubleLE=l?e:r,s.readDoubleBE=l?r:e}():function(){function h(l,o,t,e,r,i){var d=e<0?1:0;if(d&&(e=-e),e===0)l(0,r,i+o),l(1/e>0?0:2147483648,r,i+t);else if(isNaN(e))l(0,r,i+o),l(2146959360,r,i+t);else if(e>17976931348623157e292)l(0,r,i+o),l((d<<31|2146435072)>>>0,r,i+t);else{var g;if(e<22250738585072014e-324)l((g=e/5e-324)>>>0,r,i+o),l((d<<31|g/4294967296)>>>0,r,i+t);else{var m=Math.floor(Math.log(e)/Math.LN2);m===1024&&(m=1023),l(4503599627370496*(g=e*Math.pow(2,-m))>>>0,r,i+o),l((d<<31|m+1023<<20|1048576*g&1048575)>>>0,r,i+t)}}}function p(l,o,t,e,r){var i=l(e,r+o),d=l(e,r+t),g=2*(d>>31)+1,m=d>>>20&2047,_=4294967296*(1048575&d)+i;return m===2047?_?NaN:g*(1/0):m===0?5e-324*g*_:g*Math.pow(2,m-1075)*(_+4503599627370496)}s.writeDoubleLE=h.bind(null,a,0,4),s.writeDoubleBE=h.bind(null,u,4,0),s.readDoubleLE=p.bind(null,c,0,4),s.readDoubleBE=p.bind(null,f,4,0)}(),s}function a(s,h,p){h[p]=255&s,h[p+1]=s>>>8&255,h[p+2]=s>>>16&255,h[p+3]=s>>>24}function u(s,h,p){h[p]=s>>>24,h[p+1]=s>>>16&255,h[p+2]=s>>>8&255,h[p+3]=255&s}function c(s,h){return(s[h]|s[h+1]<<8|s[h+2]<<16|s[h+3]<<24)>>>0}function f(s,h){return(s[h]<<24|s[h+1]<<16|s[h+2]<<8|s[h+3])>>>0}b.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(b){}return null}module.exports=inquire},6662:b=>{b.exports=function(n,a,u){var c=u||8192,f=c>>>1,s=null,h=c;return function(p){if(p<1||p>f)return n(p);h+p>c&&(s=n(c),h=0);var l=a.call(s,h,h+=p);return 7&h&&(h=1+(7|h)),l}}},4997:(b,n)=>{var a=n;a.length=function(u){for(var c=0,f=0,s=0;s<u.length;++s)(f=u.charCodeAt(s))<128?c+=1:f<2048?c+=2:(64512&f)==55296&&(64512&u.charCodeAt(s+1))==56320?(++s,c+=4):c+=3;return c},a.read=function(u,c,f){if(f-c<1)return"";for(var s,h=null,p=[],l=0;c<f;)(s=u[c++])<128?p[l++]=s:s>191&&s<224?p[l++]=(31&s)<<6|63&u[c++]:s>239&&s<365?(s=((7&s)<<18|(63&u[c++])<<12|(63&u[c++])<<6|63&u[c++])-65536,p[l++]=55296+(s>>10),p[l++]=56320+(1023&s)):p[l++]=(15&s)<<12|(63&u[c++])<<6|63&u[c++],l>8191&&((h||(h=[])).push(String.fromCharCode.apply(String,p)),l=0);return h?(l&&h.push(String.fromCharCode.apply(String,p.slice(0,l))),h.join("")):String.fromCharCode.apply(String,p.slice(0,l))},a.write=function(u,c,f){for(var s,h,p=f,l=0;l<u.length;++l)(s=u.charCodeAt(l))<128?c[f++]=s:s<2048?(c[f++]=s>>6|192,c[f++]=63&s|128):(64512&s)==55296&&(64512&(h=u.charCodeAt(l+1)))==56320?(s=65536+((1023&s)<<10)+(1023&h),++l,c[f++]=s>>18|240,c[f++]=s>>12&63|128,c[f++]=s>>6&63|128,c[f++]=63&s|128):(c[f++]=s>>12|224,c[f++]=s>>6&63|128,c[f++]=63&s|128);return f-p}},3442:(b,n)=>{n.__esModule=!0;var a=function(){function u(c){if(!c)throw new TypeError("Invalid argument; `value` has no value.");this.value=u.EMPTY,c&&u.isGuid(c)&&(this.value=c)}return u.isGuid=function(c){var f=c.toString();return c&&(c instanceof u||u.validator.test(f))},u.create=function(){return new u([u.gen(2),u.gen(1),u.gen(1),u.gen(1),u.gen(3)].join("-"))},u.createEmpty=function(){return new u("emptyguid")},u.parse=function(c){return new u(c)},u.raw=function(){return[u.gen(2),u.gen(1),u.gen(1),u.gen(1),u.gen(3)].join("-")},u.gen=function(c){for(var f="",s=0;s<c;s++)f+=(65536*(1+Math.random())|0).toString(16).substring(1);return f},u.prototype.equals=function(c){return u.isGuid(c)&&this.value===c.toString()},u.prototype.isEmpty=function(){return this.value===u.EMPTY},u.prototype.toString=function(){return this.value},u.prototype.toJSON=function(){return{value:this.value}},u.validator=new RegExp("^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$","i"),u.EMPTY="00000000-0000-0000-0000-000000000000",u}();n.Guid=a},3720:b=>{b.exports=a;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 a(v,P,L){this.low=0|v,this.high=0|P,this.unsigned=!!L}function u(v){return(v&&v.__isLong__)===!0}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0}),a.isLong=u;var c={},f={};function s(v,P){var L,V,R;return P?(R=0<=(v>>>=0)&&v<256)&&(V=f[v])?V:(L=p(v,(0|v)<0?-1:0,!0),R&&(f[v]=L),L):(R=-128<=(v|=0)&&v<128)&&(V=c[v])?V:(L=p(v,v<0?-1:0,!1),R&&(c[v]=L),L)}function h(v,P){if(isNaN(v))return P?m:g;if(P){if(v<0)return m;if(v>=r)return S}else{if(v<=-i)return O;if(v+1>=i)return w}return v<0?h(-v,P).neg():p(v%e|0,v/e|0,P)}function p(v,P,L){return new a(v,P,L)}a.fromInt=s,a.fromNumber=h,a.fromBits=p;var l=Math.pow;function o(v,P,L){if(v.length===0)throw Error("empty string");if(v==="NaN"||v==="Infinity"||v==="+Infinity"||v==="-Infinity")return g;if(typeof P=="number"?(L=P,P=!1):P=!!P,(L=L||10)<2||36<L)throw RangeError("radix");var V;if((V=v.indexOf("-"))>0)throw Error("interior hyphen");if(V===0)return o(v.substring(1),P,L).neg();for(var R=h(l(L,8)),k=g,Y=0;Y<v.length;Y+=8){var C=Math.min(8,v.length-Y),$=parseInt(v.substring(Y,Y+C),L);if(C<8){var X=h(l(L,C));k=k.mul(X).add(h($))}else k=(k=k.mul(R)).add(h($))}return k.unsigned=P,k}function t(v,P){return typeof v=="number"?h(v,P):typeof v=="string"?o(v,P):p(v.low,v.high,typeof P=="boolean"?P:v.unsigned)}a.fromString=o,a.fromValue=t;var e=4294967296,r=e*e,i=r/2,d=s(1<<24),g=s(0);a.ZERO=g;var m=s(0,!0);a.UZERO=m;var _=s(1);a.ONE=_;var y=s(1,!0);a.UONE=y;var T=s(-1);a.NEG_ONE=T;var w=p(-1,2147483647,!1);a.MAX_VALUE=w;var S=p(-1,-1,!0);a.MAX_UNSIGNED_VALUE=S;var O=p(0,-2147483648,!1);a.MIN_VALUE=O;var E=a.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(v){if((v=v||10)<2||36<v)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(O)){var P=h(v),L=this.div(P),V=L.mul(P).sub(this);return L.toString(v)+V.toInt().toString(v)}return"-"+this.neg().toString(v)}for(var R=h(l(v,6),this.unsigned),k=this,Y="";;){var C=k.div(R),$=(k.sub(C.mul(R)).toInt()>>>0).toString(v);if((k=C).isZero())return $+Y;for(;$.length<6;)$="0"+$;Y=""+$+Y}},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 v=this.high!=0?this.high:this.low,P=31;P>0&&!(v&1<<P);P--);return this.high!=0?P+33:P+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(v){return u(v)||(v=t(v)),(this.unsigned===v.unsigned||this.high>>>31!=1||v.high>>>31!=1)&&this.high===v.high&&this.low===v.low},E.eq=E.equals,E.notEquals=function(v){return!this.eq(v)},E.neq=E.notEquals,E.ne=E.notEquals,E.lessThan=function(v){return this.comp(v)<0},E.lt=E.lessThan,E.lessThanOrEqual=function(v){return this.comp(v)<=0},E.lte=E.lessThanOrEqual,E.le=E.lessThanOrEqual,E.greaterThan=function(v){return this.comp(v)>0},E.gt=E.greaterThan,E.greaterThanOrEqual=function(v){return this.comp(v)>=0},E.gte=E.greaterThanOrEqual,E.ge=E.greaterThanOrEqual,E.compare=function(v){if(u(v)||(v=t(v)),this.eq(v))return 0;var P=this.isNegative(),L=v.isNegative();return P&&!L?-1:!P&&L?1:this.unsigned?v.high>>>0>this.high>>>0||v.high===this.high&&v.low>>>0>this.low>>>0?-1:1:this.sub(v).isNegative()?-1:1},E.comp=E.compare,E.negate=function(){return!this.unsigned&&this.eq(O)?O:this.not().add(_)},E.neg=E.negate,E.add=function(v){u(v)||(v=t(v));var P=this.high>>>16,L=65535&this.high,V=this.low>>>16,R=65535&this.low,k=v.high>>>16,Y=65535&v.high,C=v.low>>>16,$=0,X=0,z=0,Z=0;return z+=(Z+=R+(65535&v.low))>>>16,X+=(z+=V+C)>>>16,$+=(X+=L+Y)>>>16,$+=P+k,p((z&=65535)<<16|(Z&=65535),($&=65535)<<16|(X&=65535),this.unsigned)},E.subtract=function(v){return u(v)||(v=t(v)),this.add(v.neg())},E.sub=E.subtract,E.multiply=function(v){if(this.isZero())return g;if(u(v)||(v=t(v)),n)return p(n.mul(this.low,this.high,v.low,v.high),n.get_high(),this.unsigned);if(v.isZero())return g;if(this.eq(O))return v.isOdd()?O:g;if(v.eq(O))return this.isOdd()?O:g;if(this.isNegative())return v.isNegative()?this.neg().mul(v.neg()):this.neg().mul(v).neg();if(v.isNegative())return this.mul(v.neg()).neg();if(this.lt(d)&&v.lt(d))return h(this.toNumber()*v.toNumber(),this.unsigned);var P=this.high>>>16,L=65535&this.high,V=this.low>>>16,R=65535&this.low,k=v.high>>>16,Y=65535&v.high,C=v.low>>>16,$=65535&v.low,X=0,z=0,Z=0,J=0;return Z+=(J+=R*$)>>>16,z+=(Z+=V*$)>>>16,Z&=65535,z+=(Z+=R*C)>>>16,X+=(z+=L*$)>>>16,z&=65535,X+=(z+=V*C)>>>16,z&=65535,X+=(z+=R*Y)>>>16,X+=P*$+L*C+V*Y+R*k,p((Z&=65535)<<16|(J&=65535),(X&=65535)<<16|(z&=65535),this.unsigned)},E.mul=E.multiply,E.divide=function(v){if(u(v)||(v=t(v)),v.isZero())throw Error("division by zero");var P,L,V;if(n)return this.unsigned||this.high!==-2147483648||v.low!==-1||v.high!==-1?p((this.unsigned?n.div_u:n.div_s)(this.low,this.high,v.low,v.high),n.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?m:g;if(this.unsigned){if(v.unsigned||(v=v.toUnsigned()),v.gt(this))return m;if(v.gt(this.shru(1)))return y;V=m}else{if(this.eq(O))return v.eq(_)||v.eq(T)?O:v.eq(O)?_:(P=this.shr(1).div(v).shl(1)).eq(g)?v.isNegative()?_:T:(L=this.sub(v.mul(P)),V=P.add(L.div(v)));if(v.eq(O))return this.unsigned?m:g;if(this.isNegative())return v.isNegative()?this.neg().div(v.neg()):this.neg().div(v).neg();if(v.isNegative())return this.div(v.neg()).neg();V=g}for(L=this;L.gte(v);){P=Math.max(1,Math.floor(L.toNumber()/v.toNumber()));for(var R=Math.ceil(Math.log(P)/Math.LN2),k=R<=48?1:l(2,R-48),Y=h(P),C=Y.mul(v);C.isNegative()||C.gt(L);)C=(Y=h(P-=k,this.unsigned)).mul(v);Y.isZero()&&(Y=_),V=V.add(Y),L=L.sub(C)}return V},E.div=E.divide,E.modulo=function(v){return u(v)||(v=t(v)),n?p((this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,v.low,v.high),n.get_high(),this.unsigned):this.sub(this.div(v).mul(v))},E.mod=E.modulo,E.rem=E.modulo,E.not=function(){return p(~this.low,~this.high,this.unsigned)},E.and=function(v){return u(v)||(v=t(v)),p(this.low&v.low,this.high&v.high,this.unsigned)},E.or=function(v){return u(v)||(v=t(v)),p(this.low|v.low,this.high|v.high,this.unsigned)},E.xor=function(v){return u(v)||(v=t(v)),p(this.low^v.low,this.high^v.high,this.unsigned)},E.shiftLeft=function(v){return u(v)&&(v=v.toInt()),(v&=63)==0?this:v<32?p(this.low<<v,this.high<<v|this.low>>>32-v,this.unsigned):p(0,this.low<<v-32,this.unsigned)},E.shl=E.shiftLeft,E.shiftRight=function(v){return u(v)&&(v=v.toInt()),(v&=63)==0?this:v<32?p(this.low>>>v|this.high<<32-v,this.high>>v,this.unsigned):p(this.high>>v-32,this.high>=0?0:-1,this.unsigned)},E.shr=E.shiftRight,E.shiftRightUnsigned=function(v){if(u(v)&&(v=v.toInt()),(v&=63)==0)return this;var P=this.high;return v<32?p(this.low>>>v|P<<32-v,P>>>v,this.unsigned):p(v===32?P:P>>>v-32,0,this.unsigned)},E.shru=E.shiftRightUnsigned,E.shr_u=E.shiftRightUnsigned,E.toSigned=function(){return this.unsigned?p(this.low,this.high,!1):this},E.toUnsigned=function(){return this.unsigned?this:p(this.low,this.high,!0)},E.toBytes=function(v){return v?this.toBytesLE():this.toBytesBE()},E.toBytesLE=function(){var v=this.high,P=this.low;return[255&P,P>>>8&255,P>>>16&255,P>>>24,255&v,v>>>8&255,v>>>16&255,v>>>24]},E.toBytesBE=function(){var v=this.high,P=this.low;return[v>>>24,v>>>16&255,v>>>8&255,255&v,P>>>24,P>>>16&255,P>>>8&255,255&P]},a.fromBytes=function(v,P,L){return L?a.fromBytesLE(v,P):a.fromBytesBE(v,P)},a.fromBytesLE=function(v,P){return new a(v[0]|v[1]<<8|v[2]<<16|v[3]<<24,v[4]|v[5]<<8|v[6]<<16|v[7]<<24,P)},a.fromBytesBE=function(v,P){return new a(v[4]<<24|v[5]<<16|v[6]<<8|v[7],v[0]<<24|v[1]<<16|v[2]<<8|v[3],P)}},1446:(b,n,a)=>{var u,c,f,s=a(2100),h=s.Reader,p=s.Writer,l=s.util,o=s.roots.default||(s.roots.default={});o.onnx=((f={}).Version=(u={},(c=Object.create(u))[u[0]="_START_VERSION"]=0,c[u[1]="IR_VERSION_2017_10_10"]=1,c[u[2]="IR_VERSION_2017_10_30"]=2,c[u[3]="IR_VERSION_2017_11_3"]=3,c[u[4]="IR_VERSION_2019_1_22"]=4,c[u[5]="IR_VERSION"]=5,c),f.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=l.Long?l.Long.fromBits(0,0,!1):0,t.prototype.s=l.newBuffer([]),t.prototype.t=null,t.prototype.g=null,t.prototype.floats=l.emptyArray,t.prototype.ints=l.emptyArray,t.prototype.strings=l.emptyArray,t.prototype.tensors=l.emptyArray,t.prototype.graphs=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=p.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,d=new o.onnx.AttributeProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:d.name=e.string();break;case 21:d.refAttrName=e.string();break;case 13:d.docString=e.string();break;case 20:d.type=e.int32();break;case 2:d.f=e.float();break;case 3:d.i=e.int64();break;case 4:d.s=e.bytes();break;case 5:d.t=o.onnx.TensorProto.decode(e,e.uint32());break;case 6:d.g=o.onnx.GraphProto.decode(e,e.uint32());break;case 7:if(d.floats&&d.floats.length||(d.floats=[]),(7&g)==2)for(var m=e.uint32()+e.pos;e.pos<m;)d.floats.push(e.float());else d.floats.push(e.float());break;case 8:if(d.ints&&d.ints.length||(d.ints=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)d.ints.push(e.int64());else d.ints.push(e.int64());break;case 9:d.strings&&d.strings.length||(d.strings=[]),d.strings.push(e.bytes());break;case 10:d.tensors&&d.tensors.length||(d.tensors=[]),d.tensors.push(o.onnx.TensorProto.decode(e,e.uint32()));break;case 11:d.graphs&&d.graphs.length||(d.graphs=[]),d.graphs.push(o.onnx.GraphProto.decode(e,e.uint32()));break;default:e.skipType(7&g)}}return d},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")&&!l.isString(e.name))return"name: string expected";if(e.refAttrName!=null&&e.hasOwnProperty("refAttrName")&&!l.isString(e.refAttrName))return"refAttrName: string expected";if(e.docString!=null&&e.hasOwnProperty("docString")&&!l.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")&&!(l.isInteger(e.i)||e.i&&l.isInteger(e.i.low)&&l.isInteger(e.i.high)))return"i: integer|Long expected";if(e.s!=null&&e.hasOwnProperty("s")&&!(e.s&&typeof e.s.length=="number"||l.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(!(l.isInteger(e.ints[r])||e.ints[r]&&l.isInteger(e.ints[r].low)&&l.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"||l.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&&(l.Long?(r.i=l.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 l.LongBits(e.i.low>>>0,e.i.high>>>0).toNumber())),e.s!=null&&(typeof e.s=="string"?l.base64.decode(e.s,r.s=l.newBuffer(l.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)l.Long?(r.ints[i]=l.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 l.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"?l.base64.decode(e.strings[i],r.strings[i]=l.newBuffer(l.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,l.Long){var d=new l.Long(0,0,!1);i.i=r.longs===String?d.toString():r.longs===Number?d.toNumber():d}else i.i=r.longs===String?"0":0;r.bytes===String?i.s="":(i.s=[],r.bytes!==Array&&(i.s=l.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?l.Long.prototype.toString.call(e.i):r.longs===Number?new l.LongBits(e.i.low>>>0,e.i.high>>>0).toNumber():e.i),e.s!=null&&e.hasOwnProperty("s")&&(i.s=r.bytes===String?l.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?l.Long.prototype.toString.call(e.ints[g]):r.longs===Number?new l.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?l.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}(),f.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=p.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,d=new o.onnx.ValueInfoProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:d.name=e.string();break;case 2:d.type=o.onnx.TypeProto.decode(e,e.uint32());break;case 3:d.docString=e.string();break;default:e.skipType(7&g)}}return d},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")&&!l.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")&&!l.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}(),f.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=l.emptyArray,t.prototype.output=l.emptyArray,t.prototype.name="",t.prototype.opType="",t.prototype.domain="",t.prototype.attribute=l.emptyArray,t.prototype.docString="",t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=p.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,d=new o.onnx.NodeProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:d.input&&d.input.length||(d.input=[]),d.input.push(e.string());break;case 2:d.output&&d.output.length||(d.output=[]),d.output.push(e.string());break;case 3:d.name=e.string();break;case 4:d.opType=e.string();break;case 7:d.domain=e.string();break;case 5:d.attribute&&d.attribute.length||(d.attribute=[]),d.attribute.push(o.onnx.AttributeProto.decode(e,e.uint32()));break;case 6:d.docString=e.string();break;default:e.skipType(7&g)}}return d},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(!l.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(!l.isString(e.output[r]))return"output: string[] expected"}if(e.name!=null&&e.hasOwnProperty("name")&&!l.isString(e.name))return"name: string expected";if(e.opType!=null&&e.hasOwnProperty("opType")&&!l.isString(e.opType))return"opType: string expected";if(e.domain!=null&&e.hasOwnProperty("domain")&&!l.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")&&!l.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 d=0;d<e.input.length;++d)i.input[d]=e.input[d]}if(e.output&&e.output.length)for(i.output=[],d=0;d<e.output.length;++d)i.output[d]=e.output[d];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=[],d=0;d<e.attribute.length;++d)i.attribute[d]=o.onnx.AttributeProto.toObject(e.attribute[d],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}(),f.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=l.Long?l.Long.fromBits(0,0,!1):0,t.prototype.opsetImport=l.emptyArray,t.prototype.producerName="",t.prototype.producerVersion="",t.prototype.domain="",t.prototype.modelVersion=l.Long?l.Long.fromBits(0,0,!1):0,t.prototype.docString="",t.prototype.graph=null,t.prototype.metadataProps=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=p.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,d=new o.onnx.ModelProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:d.irVersion=e.int64();break;case 8:d.opsetImport&&d.opsetImport.length||(d.opsetImport=[]),d.opsetImport.push(o.onnx.OperatorSetIdProto.decode(e,e.uint32()));break;case 2:d.producerName=e.string();break;case 3:d.producerVersion=e.string();break;case 4:d.domain=e.string();break;case 5:d.modelVersion=e.int64();break;case 6:d.docString=e.string();break;case 7:d.graph=o.onnx.GraphProto.decode(e,e.uint32());break;case 14:d.metadataProps&&d.metadataProps.length||(d.metadataProps=[]),d.metadataProps.push(o.onnx.StringStringEntryProto.decode(e,e.uint32()));break;default:e.skipType(7&g)}}return d},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")&&!(l.isInteger(e.irVersion)||e.irVersion&&l.isInteger(e.irVersion.low)&&l.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")&&!l.isString(e.producerName))return"producerName: string expected";if(e.producerVersion!=null&&e.hasOwnProperty("producerVersion")&&!l.isString(e.producerVersion))return"producerVersion: string expected";if(e.domain!=null&&e.hasOwnProperty("domain")&&!l.isString(e.domain))return"domain: string expected";if(e.modelVersion!=null&&e.hasOwnProperty("modelVersion")&&!(l.isInteger(e.modelVersion)||e.modelVersion&&l.isInteger(e.modelVersion.low)&&l.isInteger(e.modelVersion.high)))return"modelVersion: integer|Long expected";if(e.docString!=null&&e.hasOwnProperty("docString")&&!l.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&&(l.Long?(r.irVersion=l.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 l.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&&(l.Long?(r.modelVersion=l.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 l.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(l.Long){var d=new l.Long(0,0,!1);i.irVersion=r.longs===String?d.toString():r.longs===Number?d.toNumber():d}else i.irVersion=r.longs===String?"0":0;i.producerName="",i.producerVersion="",i.domain="",l.Long?(d=new l.Long(0,0,!1),i.modelVersion=r.longs===String?d.toString():r.longs===Number?d.toNumber():d):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?l.Long.prototype.toString.call(e.irVersion):r.longs===Number?new l.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?l.Long.prototype.toString.call(e.modelVersion):r.longs===Number?new l.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}(),f.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=p.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,d=new o.onnx.StringStringEntryProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:d.key=e.string();break;case 2:d.value=e.string();break;default:e.skipType(7&g)}}return d},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")&&!l.isString(e.key)?"key: string expected":e.value!=null&&e.hasOwnProperty("value")&&!l.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}(),f.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=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=p.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,d=new o.onnx.TensorAnnotation;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:d.tensorName=e.string();break;case 2:d.quantParameterTensorNames&&d.quantParameterTensorNames.length||(d.quantParameterTensorNames=[]),d.quantParameterTensorNames.push(o.onnx.StringStringEntryProto.decode(e,e.uint32()));break;default:e.skipType(7&g)}}return d},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")&&!l.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 d=0;d<e.quantParameterTensorNames.length;++d)i.quantParameterTensorNames[d]=o.onnx.StringStringEntryProto.toObject(e.quantParameterTensorNames[d],r)}return i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t}(),f.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=l.emptyArray,t.prototype.name="",t.prototype.initializer=l.emptyArray,t.prototype.docString="",t.prototype.input=l.emptyArray,t.prototype.output=l.emptyArray,t.prototype.valueInfo=l.emptyArray,t.prototype.quantizationAnnotation=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=p.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,d=new o.onnx.GraphProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:d.node&&d.node.length||(d.node=[]),d.node.push(o.onnx.NodeProto.decode(e,e.uint32()));break;case 2:d.name=e.string();break;case 5:d.initializer&&d.initializer.length||(d.initializer=[]),d.initializer.push(o.onnx.TensorProto.decode(e,e.uint32()));break;case 10:d.docString=e.string();break;case 11:d.input&&d.input.length||(d.input=[]),d.input.push(o.onnx.ValueInfoProto.decode(e,e.uint32()));break;case 12:d.output&&d.output.length||(d.output=[]),d.output.push(o.onnx.ValueInfoProto.decode(e,e.uint32()));break;case 13:d.valueInfo&&d.valueInfo.length||(d.valueInfo=[]),d.valueInfo.push(o.onnx.ValueInfoProto.decode(e,e.uint32()));break;case 14:d.quantizationAnnotation&&d.quantizationAnnotation.length||(d.quantizationAnnotation=[]),d.quantizationAnnotation.push(o.onnx.TensorAnnotation.decode(e,e.uint32()));break;default:e.skipType(7&g)}}return d},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")&&!l.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")&&!l.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 d=0;d<e.node.length;++d)i.node[d]=o.onnx.NodeProto.toObject(e.node[d],r)}if(e.name!=null&&e.hasOwnProperty("name")&&(i.name=e.name),e.initializer&&e.initializer.length)for(i.initializer=[],d=0;d<e.initializer.length;++d)i.initializer[d]=o.onnx.TensorProto.toObject(e.initializer[d],r);if(e.docString!=null&&e.hasOwnProperty("docString")&&(i.docString=e.docString),e.input&&e.input.length)for(i.input=[],d=0;d<e.input.length;++d)i.input[d]=o.onnx.ValueInfoProto.toObject(e.input[d],r);if(e.output&&e.output.length)for(i.output=[],d=0;d<e.output.length;++d)i.output[d]=o.onnx.ValueInfoProto.toObject(e.output[d],r);if(e.valueInfo&&e.valueInfo.length)for(i.valueInfo=[],d=0;d<e.valueInfo.length;++d)i.valueInfo[d]=o.onnx.ValueInfoProto.toObject(e.valueInfo[d],r);if(e.quantizationAnnotation&&e.quantizationAnnotation.length)for(i.quantizationAnnotation=[],d=0;d<e.quantizationAnnotation.length;++d)i.quantizationAnnotation[d]=o.onnx.TensorAnnotation.toObject(e.quantizationAnnotation[d],r);return i},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t}(),f.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=l.emptyArray,t.prototype.dataType=0,t.prototype.segment=null,t.prototype.floatData=l.emptyArray,t.prototype.int32Data=l.emptyArray,t.prototype.stringData=l.emptyArray,t.prototype.int64Data=l.emptyArray,t.prototype.name="",t.prototype.docString="",t.prototype.rawData=l.newBuffer([]),t.prototype.externalData=l.emptyArray,t.prototype.dataLocation=0,t.prototype.doubleData=l.emptyArray,t.prototype.uint64Data=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=p.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,d=new o.onnx.TensorProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:if(d.dims&&d.dims.length||(d.dims=[]),(7&g)==2)for(var m=e.uint32()+e.pos;e.pos<m;)d.dims.push(e.int64());else d.dims.push(e.int64());break;case 2:d.dataType=e.int32();break;case 3:d.segment=o.onnx.TensorProto.Segment.decode(e,e.uint32());break;case 4:if(d.floatData&&d.floatData.length||(d.floatData=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)d.floatData.push(e.float());else d.floatData.push(e.float());break;case 5:if(d.int32Data&&d.int32Data.length||(d.int32Data=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)d.int32Data.push(e.int32());else d.int32Data.push(e.int32());break;case 6:d.stringData&&d.stringData.length||(d.stringData=[]),d.stringData.push(e.bytes());break;case 7:if(d.int64Data&&d.int64Data.length||(d.int64Data=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)d.int64Data.push(e.int64());else d.int64Data.push(e.int64());break;case 8:d.name=e.string();break;case 12:d.docString=e.string();break;case 9:d.rawData=e.bytes();break;case 13:d.externalData&&d.externalData.length||(d.externalData=[]),d.externalData.push(o.onnx.StringStringEntryProto.decode(e,e.uint32()));break;case 14:d.dataLocation=e.int32();break;case 10:if(d.doubleData&&d.doubleData.length||(d.doubleData=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)d.doubleData.push(e.double());else d.doubleData.push(e.double());break;case 11:if(d.uint64Data&&d.uint64Data.length||(d.uint64Data=[]),(7&g)==2)for(m=e.uint32()+e.pos;e.pos<m;)d.uint64Data.push(e.uint64());else d.uint64Data.push(e.uint64());break;default:e.skipType(7&g)}}return d},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(!(l.isInteger(e.dims[r])||e.dims[r]&&l.isInteger(e.dims[r].low)&&l.isInteger(e.dims[r].high)))return"dims: integer|Long[] expected"}if(e.dataType!=null&&e.hasOwnProperty("dataType")&&!l.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(!l.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"||l.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(!(l.isInteger(e.int64Data[r])||e.int64Data[r]&&l.isInteger(e.int64Data[r].low)&&l.isInteger(e.int64Data[r].high)))return"int64Data: integer|Long[] expected"}if(e.name!=null&&e.hasOwnProperty("name")&&!l.isString(e.name))return"name: string expected";if(e.docString!=null&&e.hasOwnProperty("docString")&&!l.isString(e.docString))return"docString: string expected";if(e.rawData!=null&&e.hasOwnProperty("rawData")&&!(e.rawData&&typeof e.rawData.length=="number"||l.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(!(l.isInteger(e.uint64Data[r])||e.uint64Data[r]&&l.isInteger(e.uint64Data[r].low)&&l.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)l.Long?(r.dims[i]=l.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 l.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"?l.base64.decode(e.stringData[i],r.stringData[i]=l.newBuffer(l.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)l.Long?(r.int64Data[i]=l.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 l.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"?l.base64.decode(e.rawData,r.rawData=l.newBuffer(l.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)l.Long?(r.uint64Data[i]=l.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 l.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=l.newBuffer(i.rawData))),i.docString="",i.dataLocation=r.enums===String?"DEFAULT":0),e.dims&&e.dims.length){i.dims=[];for(var d=0;d<e.dims.length;++d)typeof e.dims[d]=="number"?i.dims[d]=r.longs===String?String(e.dims[d]):e.dims[d]:i.dims[d]=r.longs===String?l.Long.prototype.toString.call(e.dims[d]):r.longs===Number?new l.LongBits(e.dims[d].low>>>0,e.dims[d].high>>>0).toNumber():e.dims[d]}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=[],d=0;d<e.floatData.length;++d)i.floatData[d]=r.json&&!isFinite(e.floatData[d])?String(e.floatData[d]):e.floatData[d];if(e.int32Data&&e.int32Data.length)for(i.int32Data=[],d=0;d<e.int32Data.length;++d)i.int32Data[d]=e.int32Data[d];if(e.stringData&&e.stringData.length)for(i.stringData=[],d=0;d<e.stringData.length;++d)i.stringData[d]=r.bytes===String?l.base64.encode(e.stringData[d],0,e.stringData[d].length):r.bytes===Array?Array.prototype.slice.call(e.stringData[d]):e.stringData[d];if(e.int64Data&&e.int64Data.length)for(i.int64Data=[],d=0;d<e.int64Data.length;++d)typeof e.int64Data[d]=="number"?i.int64Data[d]=r.longs===String?String(e.int64Data[d]):e.int64Data[d]:i.int64Data[d]=r.longs===String?l.Long.prototype.toString.call(e.int64Data[d]):r.longs===Number?new l.LongBits(e.int64Data[d].low>>>0,e.int64Data[d].high>>>0).toNumber():e.int64Data[d];if(e.name!=null&&e.hasOwnProperty("name")&&(i.name=e.name),e.rawData!=null&&e.hasOwnProperty("rawData")&&(i.rawData=r.bytes===String?l.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=[],d=0;d<e.doubleData.length;++d)i.doubleData[d]=r.json&&!isFinite(e.doubleData[d])?String(e.doubleData[d]):e.doubleData[d];if(e.uint64Data&&e.uint64Data.length)for(i.uint64Data=[],d=0;d<e.uint64Data.length;++d)typeof e.uint64Data[d]=="number"?i.uint64Data[d]=r.longs===String?String(e.uint64Data[d]):e.uint64Data[d]:i.uint64Data[d]=r.longs===String?l.Long.prototype.toString.call(e.uint64Data[d]):r.longs===Number?new l.LongBits(e.uint64Data[d].low>>>0,e.uint64Data[d].high>>>0).toNumber(!0):e.uint64Data[d];if(e.docString!=null&&e.hasOwnProperty("docString")&&(i.docString=e.docString),e.externalData&&e.externalData.length)for(i.externalData=[],d=0;d<e.externalData.length;++d)i.externalData[d]=o.onnx.StringStringEntryProto.toObject(e.externalData[d],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),d=0;d<i.length;++d)r[i[d]]!=null&&(this[i[d]]=r[i[d]])}return e.prototype.begin=l.Long?l.Long.fromBits(0,0,!1):0,e.prototype.end=l.Long?l.Long.fromBits(0,0,!1):0,e.create=function(r){return new e(r)},e.encode=function(r,i){return i||(i=p.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 d=i===void 0?r.len:r.pos+i,g=new o.onnx.TensorProto.Segment;r.pos<d;){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")&&!(l.isInteger(r.begin)||r.begin&&l.isInteger(r.begin.low)&&l.isInteger(r.begin.high))?"begin: integer|Long expected":r.end!=null&&r.hasOwnProperty("end")&&!(l.isInteger(r.end)||r.end&&l.isInteger(r.end.low)&&l.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&&(l.Long?(i.begin=l.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 l.LongBits(r.begin.low>>>0,r.begin.high>>>0).toNumber())),r.end!=null&&(l.Long?(i.end=l.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 l.LongBits(r.end.low>>>0,r.end.high>>>0).toNumber())),i},e.toObject=function(r,i){i||(i={});var d={};if(i.defaults){if(l.Long){var g=new l.Long(0,0,!1);d.begin=i.longs===String?g.toString():i.longs===Number?g.toNumber():g}else d.begin=i.longs===String?"0":0;l.Long?(g=new l.Long(0,0,!1),d.end=i.longs===String?g.toString():i.longs===Number?g.toNumber():g):d.end=i.longs===String?"0":0}return r.begin!=null&&r.hasOwnProperty("begin")&&(typeof r.begin=="number"?d.begin=i.longs===String?String(r.begin):r.begin:d.begin=i.longs===String?l.Long.prototype.toString.call(r.begin):i.longs===Number?new l.LongBits(r.begin.low>>>0,r.begin.high>>>0).toNumber():r.begin),r.end!=null&&r.hasOwnProperty("end")&&(typeof r.end=="number"?d.end=i.longs===String?String(r.end):r.end:d.end=i.longs===String?l.Long.prototype.toString.call(r.end):i.longs===Number?new l.LongBits(r.end.low>>>0,r.end.high>>>0).toNumber():r.end),d},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}(),f.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=l.emptyArray,t.create=function(e){return new t(e)},t.encode=function(e,r){if(r||(r=p.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,d=new o.onnx.TensorShapeProto;e.pos<i;){var g=e.uint32();g>>>3==1?(d.dim&&d.dim.length||(d.dim=[]),d.dim.push(o.onnx.TensorShapeProto.Dimension.decode(e,e.uint32()))):e.skipType(7&g)}return d},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 d=0;d<e.dim.length;++d)i.dim[d]=o.onnx.TensorShapeProto.Dimension.toObject(e.dim[d],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 d=Object.keys(i),g=0;g<d.length;++g)i[d[g]]!=null&&(this[d[g]]=i[d[g]])}var r;return e.prototype.dimValue=l.Long?l.Long.fromBits(0,0,!1):0,e.prototype.dimParam="",e.prototype.denotation="",Object.defineProperty(e.prototype,"value",{get:l.oneOfGetter(r=["dimValue","dimParam"]),set:l.oneOfSetter(r)}),e.create=function(i){return new e(i)},e.encode=function(i,d){return d||(d=p.create()),i.dimValue!=null&&i.hasOwnProperty("dimValue")&&d.uint32(8).int64(i.dimValue),i.dimParam!=null&&i.hasOwnProperty("dimParam")&&d.uint32(18).string(i.dimParam),i.denotation!=null&&i.hasOwnProperty("denotation")&&d.uint32(26).string(i.denotation),d},e.encodeDelimited=function(i,d){return this.encode(i,d).ldelim()},e.decode=function(i,d){i instanceof h||(i=h.create(i));for(var g=d===void 0?i.len:i.pos+d,m=new o.onnx.TensorShapeProto.Dimension;i.pos<g;){var _=i.uint32();switch(_>>>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&_)}}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 d={};if(i.dimValue!=null&&i.hasOwnProperty("dimValue")&&(d.value=1,!(l.isInteger(i.dimValue)||i.dimValue&&l.isInteger(i.dimValue.low)&&l.isInteger(i.dimValue.high))))return"dimValue: integer|Long expected";if(i.dimParam!=null&&i.hasOwnProperty("dimParam")){if(d.value===1)return"value: multiple values";if(d.value=1,!l.isString(i.dimParam))return"dimParam: string expected"}return i.denotation!=null&&i.hasOwnProperty("denotation")&&!l.isString(i.denotation)?"denotation: string expected":null},e.fromObject=function(i){if(i instanceof o.onnx.TensorShapeProto.Dimension)return i;var d=new o.onnx.TensorShapeProto.Dimension;return i.dimValue!=null&&(l.Long?(d.dimValue=l.Long.fromValue(i.dimValue)).unsigned=!1:typeof i.dimValue=="string"?d.dimValue=parseInt(i.dimValue,10):typeof i.dimValue=="number"?d.dimValue=i.dimValue:typeof i.dimValue=="object"&&(d.dimValue=new l.LongBits(i.dimValue.low>>>0,i.dimValue.high>>>0).toNumber())),i.dimParam!=null&&(d.dimParam=String(i.dimParam)),i.denotation!=null&&(d.denotation=String(i.denotation)),d},e.toObject=function(i,d){d||(d={});var g={};return d.defaults&&(g.denotation=""),i.dimValue!=null&&i.hasOwnProperty("dimValue")&&(typeof i.dimValue=="number"?g.dimValue=d.longs===String?String(i.dimValue):i.dimValue:g.dimValue=d.longs===String?l.Long.prototype.toString.call(i.dimValue):d.longs===Number?new l.LongBits(i.dimValue.low>>>0,i.dimValue.high>>>0).toNumber():i.dimValue,d.oneofs&&(g.value="dimValue")),i.dimParam!=null&&i.hasOwnProperty("dimParam")&&(g.dimParam=i.dimParam,d.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}(),f.TypeProto=function(){function t(r){if(r)for(var i=Object.keys(r),d=0;d<i.length;++d)r[i[d]]!=null&&(this[i[d]]=r[i[d]])}var e;return t.prototype.tensorType=null,t.prototype.denotation="",Object.defineProperty(t.prototype,"value",{get:l.oneOfGetter(e=["tensorType"]),set:l.oneOfSetter(e)}),t.create=function(r){return new t(r)},t.encode=function(r,i){return i||(i=p.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 d=i===void 0?r.len:r.pos+i,g=new o.onnx.TypeProto;r.pos<d;){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")&&!l.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 d={};return i.defaults&&(d.denotation=""),r.tensorType!=null&&r.hasOwnProperty("tensorType")&&(d.tensorType=o.onnx.TypeProto.Tensor.toObject(r.tensorType,i),i.oneofs&&(d.value="tensorType")),r.denotation!=null&&r.hasOwnProperty("denotation")&&(d.denotation=r.denotation),d},t.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},t.Tensor=function(){function r(i){if(i)for(var d=Object.keys(i),g=0;g<d.length;++g)i[d[g]]!=null&&(this[d[g]]=i[d[g]])}return r.prototype.elemType=0,r.prototype.shape=null,r.create=function(i){return new r(i)},r.encode=function(i,d){return d||(d=p.create()),i.elemType!=null&&i.hasOwnProperty("elemType")&&d.uint32(8).int32(i.elemType),i.shape!=null&&i.hasOwnProperty("shape")&&o.onnx.TensorShapeProto.encode(i.shape,d.uint32(18).fork()).ldelim(),d},r.encodeDelimited=function(i,d){return this.encode(i,d).ldelim()},r.decode=function(i,d){i instanceof h||(i=h.create(i));for(var g=d===void 0?i.len:i.pos+d,m=new o.onnx.TypeProto.Tensor;i.pos<g;){var _=i.uint32();switch(_>>>3){case 1:m.elemType=i.int32();break;case 2:m.shape=o.onnx.TensorShapeProto.decode(i,i.uint32());break;default:i.skipType(7&_)}}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")&&!l.isInteger(i.elemType))return"elemType: integer expected";if(i.shape!=null&&i.hasOwnProperty("shape")){var d=o.onnx.TensorShapeProto.verify(i.shape);if(d)return"shape."+d}return null},r.fromObject=function(i){if(i instanceof o.onnx.TypeProto.Tensor)return i;var d=new o.onnx.TypeProto.Tensor;if(i.elemType!=null&&(d.elemType=0|i.elemType),i.shape!=null){if(typeof i.shape!="object")throw TypeError(".onnx.TypeProto.Tensor.shape: object expected");d.shape=o.onnx.TensorShapeProto.fromObject(i.shape)}return d},r.toObject=function(i,d){d||(d={});var g={};return d.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,d)),g},r.prototype.toJSON=function(){return this.constructor.toObject(this,s.util.toJSONOptions)},r}(),t}(),f.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=l.Long?l.Long.fromBits(0,0,!1):0,t.create=function(e){return new t(e)},t.encode=function(e,r){return r||(r=p.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,d=new o.onnx.OperatorSetIdProto;e.pos<i;){var g=e.uint32();switch(g>>>3){case 1:d.domain=e.string();break;case 2:d.version=e.int64();break;default:e.skipType(7&g)}}return d},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")&&!l.isString(e.domain)?"domain: string expected":e.version!=null&&e.hasOwnProperty("version")&&!(l.isInteger(e.version)||e.version&&l.isInteger(e.version.low)&&l.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&&(l.Long?(r.version=l.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 l.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="",l.Long){var d=new l.Long(0,0,!1);i.version=r.longs===String?d.toString():r.longs===Number?d.toNumber():d}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?l.Long.prototype.toString.call(e.version):r.longs===Number?new l.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}(),f),b.exports=o},2100:(b,n,a)=>{b.exports=a(9482)},9482:(b,n,a)=>{var u=n;function c(){u.util._configure(),u.Writer._configure(u.BufferWriter),u.Reader._configure(u.BufferReader)}u.build="minimal",u.Writer=a(1173),u.BufferWriter=a(3155),u.Reader=a(1408),u.BufferReader=a(593),u.util=a(9693),u.rpc=a(5994),u.roots=a(5054),u.configure=c,c()},1408:(b,n,a)=>{b.exports=p;var u,c=a(9693),f=c.LongBits,s=c.utf8;function h(d,g){return RangeError("index out of range: "+d.pos+" + "+(g||1)+" > "+d.len)}function p(d){this.buf=d,this.pos=0,this.len=d.length}var l,o=typeof Uint8Array<"u"?function(d){if(d instanceof Uint8Array||Array.isArray(d))return new p(d);throw Error("illegal buffer")}:function(d){if(Array.isArray(d))return new p(d);throw Error("illegal buffer")},t=function(){return c.Buffer?function(d){return(p.create=function(g){return c.Buffer.isBuffer(g)?new u(g):o(g)})(d)}:o};function e(){var d=new f(0,0),g=0;if(!(this.len-this.pos>4)){for(;g<3;++g){if(this.pos>=this.len)throw h(this);if(d.lo=(d.lo|(127&this.buf[this.pos])<<7*g)>>>0,this.buf[this.pos++]<128)return d}return d.lo=(d.lo|(127&this.buf[this.pos++])<<7*g)>>>0,d}for(;g<4;++g)if(d.lo=(d.lo|(127&this.buf[this.pos])<<7*g)>>>0,this.buf[this.pos++]<128)return d;if(d.lo=(d.lo|(127&this.buf[this.pos])<<28)>>>0,d.hi=(d.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return d;if(g=0,this.len-this.pos>4){for(;g<5;++g)if(d.hi=(d.hi|(127&this.buf[this.pos])<<7*g+3)>>>0,this.buf[this.pos++]<128)return d}else for(;g<5;++g){if(this.pos>=this.len)throw h(this);if(d.hi=(d.hi|(127&this.buf[this.pos])<<7*g+3)>>>0,this.buf[this.pos++]<128)return d}throw Error("invalid varint encoding")}function r(d,g){return(d[g-4]|d[g-3]<<8|d[g-2]<<16|d[g-1]<<24)>>>0}function i(){if(this.pos+8>this.len)throw h(this,8);return new f(r(this.buf,this.pos+=4),r(this.buf,this.pos+=4))}p.create=t(),p.prototype._slice=c.Array.prototype.subarray||c.Array.prototype.slice,p.prototype.uint32=(l=4294967295,function(){if(l=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128||(l=(l|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)||(l=(l|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)||(l=(l|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)||(l=(l|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128))return l;if((this.pos+=5)>this.len)throw this.pos=this.len,h(this,10);return l}),p.prototype.int32=function(){return 0|this.uint32()},p.prototype.sint32=function(){var d=this.uint32();return d>>>1^-(1&d)|0},p.prototype.bool=function(){return this.uint32()!==0},p.prototype.fixed32=function(){if(this.pos+4>this.len)throw h(this,4);return r(this.buf,this.pos+=4)},p.prototype.sfixed32=function(){if(this.pos+4>this.len)throw h(this,4);return 0|r(this.buf,this.pos+=4)},p.prototype.float=function(){if(this.pos+4>this.len)throw h(this,4);var d=c.float.readFloatLE(this.buf,this.pos);return this.pos+=4,d},p.prototype.double=function(){if(this.pos+8>this.len)throw h(this,4);var d=c.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,d},p.prototype.bytes=function(){var d=this.uint32(),g=this.pos,m=this.pos+d;if(m>this.len)throw h(this,d);return this.pos+=d,Array.isArray(this.buf)?this.buf.slice(g,m):g===m?new this.buf.constructor(0):this._slice.call(this.buf,g,m)},p.prototype.string=function(){var d=this.bytes();return s.read(d,0,d.length)},p.prototype.skip=function(d){if(typeof d=="number"){if(this.pos+d>this.len)throw h(this,d);this.pos+=d}else do if(this.pos>=this.len)throw h(this);while(128&this.buf[this.pos++]);return this},p.prototype.skipType=function(d){switch(d){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(d=7&this.uint32())!=4;)this.skipType(d);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+d+" at offset "+this.pos)}return this},p._configure=function(d){u=d,p.create=t(),u._configure();var g=c.Long?"toLong":"toNumber";c.merge(p.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:(b,n,a)=>{b.exports=f;var u=a(1408);(f.prototype=Object.create(u.prototype)).constructor=f;var c=a(9693);function f(s){u.call(this,s)}f._configure=function(){c.Buffer&&(f.prototype._slice=c.Buffer.prototype.slice)},f.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))},f._configure()},5054:b=>{b.exports={}},5994:(b,n,a)=>{n.Service=a(7948)},7948:(b,n,a)=>{b.exports=c;var u=a(9693);function c(f,s,h){if(typeof f!="function")throw TypeError("rpcImpl must be a function");u.EventEmitter.call(this),this.rpcImpl=f,this.requestDelimited=!!s,this.responseDelimited=!!h}(c.prototype=Object.create(u.EventEmitter.prototype)).constructor=c,c.prototype.rpcCall=function f(s,h,p,l,o){if(!l)throw TypeError("request must be specified");var t=this;if(!o)return u.asPromise(f,t,s,h,p,l);if(t.rpcImpl)try{return t.rpcImpl(s,h[t.requestDelimited?"encodeDelimited":"encode"](l).finish(),function(e,r){if(e)return t.emit("error",e,s),o(e);if(r!==null){if(!(r instanceof p))try{r=p[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)},c.prototype.end=function(f){return this.rpcImpl&&(f||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},1945:(b,n,a)=>{b.exports=c;var u=a(9693);function c(p,l){this.lo=p>>>0,this.hi=l>>>0}var f=c.zero=new c(0,0);f.toNumber=function(){return 0},f.zzEncode=f.zzDecode=function(){return this},f.length=function(){return 1};var s=c.zeroHash="\0\0\0\0\0\0\0\0";c.fromNumber=function(p){if(p===0)return f;var l=p<0;l&&(p=-p);var o=p>>>0,t=(p-o)/4294967296>>>0;return l&&(t=~t>>>0,o=~o>>>0,++o>4294967295&&(o=0,++t>4294967295&&(t=0))),new c(o,t)},c.from=function(p){if(typeof p=="number")return c.fromNumber(p);if(u.isString(p)){if(!u.Long)return c.fromNumber(parseInt(p,10));p=u.Long.fromString(p)}return p.low||p.high?new c(p.low>>>0,p.high>>>0):f},c.prototype.toNumber=function(p){if(!p&&this.hi>>>31){var l=1+~this.lo>>>0,o=~this.hi>>>0;return l||(o=o+1>>>0),-(l+4294967296*o)}return this.lo+4294967296*this.hi},c.prototype.toLong=function(p){return u.Long?new u.Long(0|this.lo,0|this.hi,!!p):{low:0|this.lo,high:0|this.hi,unsigned:!!p}};var h=String.prototype.charCodeAt;c.fromHash=function(p){return p===s?f:new c((h.call(p,0)|h.call(p,1)<<8|h.call(p,2)<<16|h.call(p,3)<<24)>>>0,(h.call(p,4)|h.call(p,5)<<8|h.call(p,6)<<16|h.call(p,7)<<24)>>>0)},c.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)},c.prototype.zzEncode=function(){var p=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^p)>>>0,this.lo=(this.lo<<1^p)>>>0,this},c.prototype.zzDecode=function(){var p=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^p)>>>0,this.hi=(this.hi>>>1^p)>>>0,this},c.prototype.length=function(){var p=this.lo,l=(this.lo>>>28|this.hi<<4)>>>0,o=this.hi>>>24;return o===0?l===0?p<16384?p<128?1:2:p<2097152?3:4:l<16384?l<128?5:6:l<2097152?7:8:o<128?9:10}},9693:function(b,n,a){var u=n;function c(s,h,p){for(var l=Object.keys(h),o=0;o<l.length;++o)s[l[o]]!==void 0&&p||(s[l[o]]=h[l[o]]);return s}function f(s){function h(p,l){if(!(this instanceof h))return new h(p,l);Object.defineProperty(this,"message",{get:function(){return p}}),Error.captureStackTrace?Error.captureStackTrace(this,h):Object.defineProperty(this,"stack",{value:new Error().stack||""}),l&&c(this,l)}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}u.asPromise=a(4537),u.base64=a(7419),u.EventEmitter=a(9211),u.float=a(945),u.inquire=a(7199),u.utf8=a(4997),u.pool=a(6662),u.LongBits=a(1945),u.isNode=!!(a.g!==void 0&&a.g&&a.g.process&&a.g.process.versions&&a.g.process.versions.node),u.global=u.isNode&&a.g||typeof window<"u"&&window||typeof self<"u"&&self||this,u.emptyArray=Object.freeze?Object.freeze([]):[],u.emptyObject=Object.freeze?Object.freeze({}):{},u.isInteger=Number.isInteger||function(s){return typeof s=="number"&&isFinite(s)&&Math.floor(s)===s},u.isString=function(s){return typeof s=="string"||s instanceof String},u.isObject=function(s){return s&&typeof s=="object"},u.isset=u.isSet=function(s,h){var p=s[h];return!(p==null||!s.hasOwnProperty(h))&&(typeof p!="object"||(Array.isArray(p)?p.length:Object.keys(p).length)>0)},u.Buffer=function(){try{var s=u.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),u._Buffer_from=null,u._Buffer_allocUnsafe=null,u.newBuffer=function(s){return typeof s=="number"?u.Buffer?u._Buffer_allocUnsafe(s):new u.Array(s):u.Buffer?u._Buffer_from(s):typeof Uint8Array>"u"?s:new Uint8Array(s)},u.Array=typeof Uint8Array<"u"?Uint8Array:Array,u.Long=u.global.dcodeIO&&u.global.dcodeIO.Long||u.global.Long||u.inquire("long"),u.key2Re=/^true|false|0|1$/,u.key32Re=/^-?(?:0|[1-9][0-9]*)$/,u.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,u.longToHash=function(s){return s?u.LongBits.from(s).toHash():u.LongBits.zeroHash},u.longFromHash=function(s,h){var p=u.LongBits.fromHash(s);return u.Long?u.Long.fromBits(p.lo,p.hi,h):p.toNumber(!!h)},u.merge=c,u.lcFirst=function(s){return s.charAt(0).toLowerCase()+s.substring(1)},u.newError=f,u.ProtocolError=f("ProtocolError"),u.oneOfGetter=function(s){for(var h={},p=0;p<s.length;++p)h[s[p]]=1;return function(){for(var l=Object.keys(this),o=l.length-1;o>-1;--o)if(h[l[o]]===1&&this[l[o]]!==void 0&&this[l[o]]!==null)return l[o]}},u.oneOfSetter=function(s){return function(h){for(var p=0;p<s.length;++p)s[p]!==h&&delete this[s[p]]}},u.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},u._configure=function(){var s=u.Buffer;s?(u._Buffer_from=s.from!==Uint8Array.from&&s.from||function(h,p){return new s(h,p)},u._Buffer_allocUnsafe=s.allocUnsafe||function(h){return new s(h)}):u._Buffer_from=u._Buffer_allocUnsafe=null}},1173:(b,n,a)=>{b.exports=t;var u,c=a(9693),f=c.LongBits,s=c.base64,h=c.utf8;function p(_,y,T){this.fn=_,this.len=y,this.next=void 0,this.val=T}function l(){}function o(_){this.head=_.head,this.tail=_.tail,this.len=_.len,this.next=_.states}function t(){this.len=0,this.head=new p(l,0,0),this.tail=this.head,this.states=null}var e=function(){return c.Buffer?function(){return(t.create=function(){return new u})()}:function(){return new t}};function r(_,y,T){y[T]=255&_}function i(_,y){this.len=_,this.next=void 0,this.val=y}function d(_,y,T){for(;_.hi;)y[T++]=127&_.lo|128,_.lo=(_.lo>>>7|_.hi<<25)>>>0,_.hi>>>=7;for(;_.lo>127;)y[T++]=127&_.lo|128,_.lo=_.lo>>>7;y[T++]=_.lo}function g(_,y,T){y[T]=255&_,y[T+1]=_>>>8&255,y[T+2]=_>>>16&255,y[T+3]=_>>>24}t.create=e(),t.alloc=function(_){return new c.Array(_)},c.Array!==Array&&(t.alloc=c.pool(t.alloc,c.Array.prototype.subarray)),t.prototype._push=function(_,y,T){return this.tail=this.tail.next=new p(_,y,T),this.len+=y,this},i.prototype=Object.create(p.prototype),i.prototype.fn=function(_,y,T){for(;_>127;)y[T++]=127&_|128,_>>>=7;y[T]=_},t.prototype.uint32=function(_){return this.len+=(this.tail=this.tail.next=new i((_>>>=0)<128?1:_<16384?2:_<2097152?3:_<268435456?4:5,_)).len,this},t.prototype.int32=function(_){return _<0?this._push(d,10,f.fromNumber(_)):this.uint32(_)},t.prototype.sint32=function(_){return this.uint32((_<<1^_>>31)>>>0)},t.prototype.uint64=function(_){var y=f.from(_);return this._push(d,y.length(),y)},t.prototype.int64=t.prototype.uint64,t.prototype.sint64=function(_){var y=f.from(_).zzEncode();return this._push(d,y.length(),y)},t.prototype.bool=function(_){return this._push(r,1,_?1:0)},t.prototype.fixed32=function(_){return this._push(g,4,_>>>0)},t.prototype.sfixed32=t.prototype.fixed32,t.prototype.fixed64=function(_){var y=f.from(_);return this._push(g,4,y.lo)._push(g,4,y.hi)},t.prototype.sfixed64=t.prototype.fixed64,t.prototype.float=function(_){return this._push(c.float.writeFloatLE,4,_)},t.prototype.double=function(_){return this._push(c.float.writeDoubleLE,8,_)};var m=c.Array.prototype.set?function(_,y,T){y.set(_,T)}:function(_,y,T){for(var w=0;w<_.length;++w)y[T+w]=_[w]};t.prototype.bytes=function(_){var y=_.length>>>0;if(!y)return this._push(r,1,0);if(c.isString(_)){var T=t.alloc(y=s.length(_));s.decode(_,T,0),_=T}return this.uint32(y)._push(m,y,_)},t.prototype.string=function(_){var y=h.length(_);return y?this.uint32(y)._push(h.write,y,_):this._push(r,1,0)},t.prototype.fork=function(){return this.states=new o(this),this.head=this.tail=new p(l,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 p(l,0,0),this.len=0),this},t.prototype.ldelim=function(){var _=this.head,y=this.tail,T=this.len;return this.reset().uint32(T),T&&(this.tail.next=_.next,this.tail=y,this.len+=T),this},t.prototype.finish=function(){for(var _=this.head.next,y=this.constructor.alloc(this.len),T=0;_;)_.fn(_.val,y,T),T+=_.len,_=_.next;return y},t._configure=function(_){u=_,t.create=e(),u._configure()}},3155:(b,n,a)=>{b.exports=f;var u=a(1173);(f.prototype=Object.create(u.prototype)).constructor=f;var c=a(9693);function f(){u.call(this)}function s(h,p,l){h.length<40?c.utf8.write(h,p,l):p.utf8Write?p.utf8Write(h,l):p.write(h,l)}f._configure=function(){f.alloc=c._Buffer_allocUnsafe,f.writeBytesBuffer=c.Buffer&&c.Buffer.prototype instanceof Uint8Array&&c.Buffer.prototype.set.name==="set"?function(h,p,l){p.set(h,l)}:function(h,p,l){if(h.copy)h.copy(p,l,0,h.length);else for(var o=0;o<h.length;)p[l++]=h[o++]}},f.prototype.bytes=function(h){c.isString(h)&&(h=c._Buffer_from(h,"base64"));var p=h.length>>>0;return this.uint32(p),p&&this._push(f.writeBytesBuffer,p,h),this},f.prototype.string=function(h){var p=c.Buffer.byteLength(h);return this.uint32(p),p&&this._push(s,p,h),this},f._configure()},7714:(b,n,a)=>{n.R=void 0;const u=a(6919),c=a(7448);n.R=new class{async init(){}async createSessionHandler(f,s){const h=new u.Session(s);return await h.loadModel(f),new c.OnnxjsSessionHandler(h)}}},4200:(b,n,a)=>{n.c8=n.rX=void 0;const u=a(1670),c=a(5381),f=a(2157),s=a(2306);n.rX=()=>{if((typeof u.env.wasm.initTimeout!="number"||u.env.wasm.initTimeout<0)&&(u.env.wasm.initTimeout=0),typeof u.env.wasm.simd!="boolean"&&(u.env.wasm.simd=!0),typeof u.env.wasm.proxy!="boolean"&&(u.env.wasm.proxy=!1),typeof u.env.wasm.numThreads!="number"||!Number.isInteger(u.env.wasm.numThreads)||u.env.wasm.numThreads<=0){const h=typeof navigator>"u"?(0,c.cpus)().length:navigator.hardwareConcurrency;u.env.wasm.numThreads=Math.min(4,Math.ceil((h||1)/2))}},n.c8=new class{async init(){(0,n.rX)(),await(0,f.initWasm)()}async createSessionHandler(h,p){const l=new s.OnnxruntimeWebAssemblySessionHandler;return await l.loadModel(h,p),Promise.resolve(l)}}},6018:function(b,n,a){var u=this&&this.__createBinding||(Object.create?function(s,h,p,l){l===void 0&&(l=p);var o=Object.getOwnPropertyDescriptor(h,p);o&&!("get"in o?!h.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return h[p]}}),Object.defineProperty(s,l,o)}:function(s,h,p,l){l===void 0&&(l=p),s[l]=h[p]}),c=this&&this.__exportStar||function(s,h){for(var p in s)p==="default"||Object.prototype.hasOwnProperty.call(h,p)||u(h,s,p)};Object.defineProperty(n,"__esModule",{value:!0}),c(a(1670),n);const f=a(1670);{const s=a(7714).R;(0,f.registerBackend)("webgl",s,-10)}{const s=a(4200).c8;(0,f.registerBackend)("cpu",s,10),(0,f.registerBackend)("wasm",s,10),(0,f.registerBackend)("xnnpack",s,9)}},246:(b,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createAttributeWithCacheKey=void 0;class a{constructor(c){Object.assign(this,c)}get cacheKey(){return this._cacheKey||(this._cacheKey=Object.getOwnPropertyNames(this).sort().map(c=>`${this[c]}`).join(";")),this._cacheKey}}n.createAttributeWithCacheKey=u=>new a(u)},7778:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Attribute=void 0;const u=a(1446),c=a(9395),f=a(9162),s=a(2517);var h=c.onnxruntime.experimental.fbs;class p{constructor(o){if(this._attributes=new Map,o!=null){for(const t of o)t instanceof u.onnx.AttributeProto?this._attributes.set(t.name,[p.getValue(t),p.getType(t)]):t instanceof h.Attribute&&this._attributes.set(t.name(),[p.getValue(t),p.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 u.onnx.AttributeProto?o.type:o.type();switch(t){case u.onnx.AttributeProto.AttributeType.FLOAT:return"float";case u.onnx.AttributeProto.AttributeType.INT:return"int";case u.onnx.AttributeProto.AttributeType.STRING:return"string";case u.onnx.AttributeProto.AttributeType.TENSOR:return"tensor";case u.onnx.AttributeProto.AttributeType.FLOATS:return"floats";case u.onnx.AttributeProto.AttributeType.INTS:return"ints";case u.onnx.AttributeProto.AttributeType.STRINGS:return"strings";case u.onnx.AttributeProto.AttributeType.TENSORS:return"tensors";default:throw new Error(`attribute type is not supported yet: ${u.onnx.AttributeProto.AttributeType[t]}`)}}static getValue(o){const t=o instanceof u.onnx.AttributeProto?o.type:o.type();if(t===u.onnx.AttributeProto.AttributeType.GRAPH||t===u.onnx.AttributeProto.AttributeType.GRAPHS)throw new Error("graph attribute is not supported yet");const e=this.getValueNoCheck(o);if(t===u.onnx.AttributeProto.AttributeType.INT&&s.LongUtil.isLong(e))return s.LongUtil.longToNumber(e);if(t===u.onnx.AttributeProto.AttributeType.INTS){const r=e,i=new Array(r.length);for(let d=0;d<r.length;d++){const g=r[d];i[d]=s.LongUtil.longToNumber(g)}return i}if(t===u.onnx.AttributeProto.AttributeType.TENSOR)return o instanceof u.onnx.AttributeProto?f.Tensor.fromProto(e):f.Tensor.fromOrtTensor(e);if(t===u.onnx.AttributeProto.AttributeType.TENSORS){if(o instanceof u.onnx.AttributeProto)return e.map(r=>f.Tensor.fromProto(r));if(o instanceof h.Attribute)return e.map(r=>f.Tensor.fromOrtTensor(r))}if(t===u.onnx.AttributeProto.AttributeType.STRING&&o instanceof u.onnx.AttributeProto){const r=e;return(0,s.decodeUtf8String)(r)}return t===u.onnx.AttributeProto.AttributeType.STRINGS&&o instanceof u.onnx.AttributeProto?e.map(s.decodeUtf8String):e}static getValueNoCheck(o){return o instanceof u.onnx.AttributeProto?this.getValueNoCheckFromOnnxFormat(o):this.getValueNoCheckFromOrtFormat(o)}static getValueNoCheckFromOnnxFormat(o){switch(o.type){case u.onnx.AttributeProto.AttributeType.FLOAT:return o.f;case u.onnx.AttributeProto.AttributeType.INT:return o.i;case u.onnx.AttributeProto.AttributeType.STRING:return o.s;case u.onnx.AttributeProto.AttributeType.TENSOR:return o.t;case u.onnx.AttributeProto.AttributeType.GRAPH:return o.g;case u.onnx.AttributeProto.AttributeType.FLOATS:return o.floats;case u.onnx.AttributeProto.AttributeType.INTS:return o.ints;case u.onnx.AttributeProto.AttributeType.STRINGS:return o.strings;case u.onnx.AttributeProto.AttributeType.TENSORS:return o.tensors;case u.onnx.AttributeProto.AttributeType.GRAPHS:return o.graphs;default:throw new Error(`unsupported attribute type: ${u.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=p},7091:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.resolveBackend=n.backend=void 0;const u=a(5038),c=new Map;async function f(s){const h=n.backend;if(h[s]!==void 0&&function(p){const l=p;return"initialize"in l&&typeof l.initialize=="function"&&"createSessionHandler"in l&&typeof l.createSessionHandler=="function"&&"dispose"in l&&typeof l.dispose=="function"}(h[s])){const p=h[s];let l=p.initialize();if(typeof l=="object"&&"then"in l&&(l=await l),l)return c.set(s,p),p}}n.backend={webgl:new u.WebGLBackend},n.resolveBackend=async function s(h){if(!h)return s(["webgl"]);{const p=typeof h=="string"?[h]:h;for(const l of p){const o=c.get(l);if(o)return o;const t=await f(l);if(t)return t}}throw new Error("no available backend to use")}},5038:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.WebGLBackend=void 0;const u=a(1670),c=a(6231),f=a(6416),s=a(7305);n.WebGLBackend=class{get contextId(){return u.env.webgl.contextId}set contextId(h){u.env.webgl.contextId=h}get matmulMaxBatchSize(){return u.env.webgl.matmulMaxBatchSize}set matmulMaxBatchSize(h){u.env.webgl.matmulMaxBatchSize=h}get textureCacheMode(){return u.env.webgl.textureCacheMode}set textureCacheMode(h){u.env.webgl.textureCacheMode=h}get pack(){return u.env.webgl.pack}set pack(h){u.env.webgl.pack=h}get async(){return u.env.webgl.async}set async(h){u.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),c.Logger.setWithEnv(u.env),c.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 c.Logger.warning("WebGLBackend",`Unable to initialize WebGLBackend. ${h}`),!1}}createSessionHandler(h){return new f.WebGLSessionHandler(this,h)}dispose(){this.glContext.dispose()}}},5107:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.CoordsGlslLib=void 0;const u=a(2517),c=a(8520),f=a(5060),s=a(7859),h=a(9390);class p extends c.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 c.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 c.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 d=`
      void setOutput(vec4 val) {
        ${(0,f.getGlsl)(this.context.glContext.version).output} = val;
      }
    `;return r.floatTextureSetRGBA=new c.GlslLibRoutine(d),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 d=`
        void setOutput(float val) {
          ${(0,f.getGlsl)(this.context.glContext.version).output} = vec4(val, 0, 0, 0);
        }
    `;return r.floatTextureSetR=new c.GlslLibRoutine(d),r}getOutputScalarCoords(){return new c.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 c.GlslLibRoutine(r)):e[1]===1?(r=`
          int getOutputCoords() {
            return 2 * int(TexCoords.x * ${e[0]}.0);
          }
        `,new c.GlslLibRoutine(r)):(r=`
        int getOutputCoords() {
          ivec2 resTexRC = ivec2(TexCoords.xy *
                                 vec2(${e[0]}, ${e[1]}));
          return 2 * (resTexRC.y * ${e[0]} + resTexRC.x);
        }
      `,new c.GlslLibRoutine(r))}getOutputPacked2DCoords(o,t){let e="";if(u.ArrayUtil.arraysEqual(o,t))return e=`
        ivec2 getOutputCoords() {
          return 2 * ivec2(TexCoords.xy * vec2(${t[0]}, ${t[1]}));
        }
      `,new c.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 c.GlslLibRoutine(e)}getOutputPacked3DCoords(o,t){const e=[t[0],t[1]],r=Math.ceil(o[2]/2),i=r*Math.ceil(o[1]/2),d=`
        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 c.GlslLibRoutine(d)}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 d=i,g="",m="b, r, c";for(let y=2;y<o.length-1;y++)d*=o[o.length-y-1],g=`
      int b${y} = index / ${d};
      index -= b${y} * ${d};
    `+g,m=`b${y}, `+m;const _=`
      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 c.GlslLibRoutine(_)}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 c.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 c.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 d=["r","c","d"],g=i.map((m,_)=>`int ${d[_]} = index / ${m}; ${_===i.length-1?`int ${d[_+1]} = index - ${d[_]} * ${m}`:`index -= ${d[_]} * ${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 c.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 d=["r","c","d","d2"],g=i.map((m,_)=>`int ${d[_]} = index / ${m}; ${_===i.length-1?`int ${d[_+1]} = index - ${d[_]} * ${m}`:`index -= ${d[_]} * ${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 c.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 d=["r","c","d","d2","d3"],g=i.map((m,_)=>`int ${d[_]} = index / ${m}; ${_===i.length-1?`int ${d[_+1]} = index - ${d[_]} * ${m}`:`index -= ${d[_]} * ${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 c.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 d=["r","c","d","d2","d3","d4"],g=i.map((m,_)=>`int ${d[_]} = index / ${m}; ${_===i.length-1?`int ${d[_+1]} = index - ${d[_]} * ${m}`:`index -= ${d[_]} * ${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 c.GlslLibRoutine(e)}getCommonUtilFuncs(){const o={};let t="uvFromFlat";o[t]=new c.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 c.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 c.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 c.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,f.getGlsl)(this.context.glContext.version);return o[t]=new c.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],d=(0,h.generateShaderFuncNameFromInputSamplerName)(e);i.isPacked?o[d]=this.getPackedSamplerFromInput(d,e,i):o[d]=this.getUnpackedSamplerFromInput(d,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,d=e.unpackedShape,g=r,m=(0,h.generateShaderFuncNameFromInputSamplerName)(g),_=i.length,y=d.length,T=u.BroadcastUtil.getBroadcastDims(i,d),w=(0,h.getCoordsDataType)(y),S=y-_;let O;const E=(0,h.getGlChannels)();O=_===0?"":y<2&&T.length>=1?"coords = 0;":T.map(k=>`coords.${E[k+S]} = 0;`).join(`
`);let v="";v=y<2&&_>0?"coords":i.map((k,Y)=>`coords.${E[Y+S]}`).join(", ");let P="return outputValue;";const L=u.ShapeUtil.size(i)===1,V=u.ShapeUtil.size(d)===1;if(_!==1||L||V){if(L&&!V)P=y===1?`
          return vec4(outputValue.x, outputValue.x, 0., 0.);
        `:`
          return vec4(outputValue.x);
        `;else if(T.length){const k=_-2,Y=_-1;T.indexOf(k)>-1&&T.indexOf(Y)>-1?P="return vec4(outputValue.x);":T.indexOf(k)>-1?P="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":T.indexOf(Y)>-1&&(P="return vec4(outputValue.xx, outputValue.zz);")}}else P=`
        return vec4(outputValue.xy, outputValue.xy);
      `;const R=`
      vec4 ${o}() {
        ${w} coords = getOutputCoords();
        
        int lastDim = coords.${E[y-1]};
        coords.${E[y-1]} = coords.${E[y-2]};
        coords.${E[y-2]} = lastDim;
      
        ${O}
        vec4 outputValue = ${m}(${v});
        ${P}
      }
    `;return new c.GlslLibRoutine(R,["coordinates.getOutputCoords"])}getUnpackedSamplerAtOutputCoords(o,t,e,r){const i=[e.width,e.height],d=[t.width,t.height],g=t.unpackedShape.length,m=e.unpackedShape.length,_=t.unpackedShape,y=e.unpackedShape,T=(0,h.generateShaderFuncNameFromInputSamplerName)(r);if(g===m&&u.ArrayUtil.arraysEqual(d,i)){const V=`
          float ${o}() {
            return sampleTexture(${r}, TexCoords);
          }
        `;return new c.GlslLibRoutine(V,["coordinates.sampleTexture"])}const w=(0,h.getCoordsDataType)(m),S=u.BroadcastUtil.getBroadcastDims(_,y),O=m-g;let E;const v=(0,h.getGlChannels)();E=g===0?"":m<2&&S.length>=1?"coords = 0;":S.map(V=>`coords.${v[V+O]} = 0;`).join(`
`);let P="";P=m<2&&g>0?"coords":t.unpackedShape.map((V,R)=>`coords.${v[R+O]}`).join(", ");const L=`
        float ${o}() {
          ${w} coords = getOutputCoords();
          ${E}
          return ${T}(${P});
        }
      `;return new c.GlslLibRoutine(L,["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,f.getGlsl)(this.context.glContext.version).texture2D}(${t}, halfCR);
          }
        `;return new c.GlslLibRoutine(e)}getPackedSampler1D(o,t,e){const r=[e.width,e.height],i=[r[1],r[0]],d=(0,f.getGlsl)(this.context.glContext.version),g=`vec4 ${o}(int index) {
      vec2 uv = packedUVfrom1D(
      ${i[0]}, ${i[1]}, index);
      return ${d.texture2D}(${t}, uv);
    }`;return new c.GlslLibRoutine(g,["coordinates.packedUVfrom1D"])}getPackedSampler2D(o,t,e){const r=e.unpackedShape,i=[e.width,e.height],d=(0,f.getGlsl)(this.context.glContext.version),g=i[0],m=i[1];if(i!=null&&u.ArrayUtil.arraysEqual(r,i)){const w=`vec4 ${o}(int row, int col) {
        vec2 uv = (vec2(col, row) + halfCR) / vec2(${m}.0, ${g}.0);
        return ${d.texture2D}(${t}, uv);
      }`;return new c.GlslLibRoutine(w)}const _=i,y=Math.ceil(r[1]/2),T=`vec4 ${o}(int row, int col) {
      vec2 uv = packedUVfrom2D(${_[1]}, ${_[0]}, ${y}, row, col);
      return ${d.texture2D}(${t}, uv);
    }`;return new c.GlslLibRoutine(T,["coordinates.packedUVfrom2D"])}getPackedSampler3D(o,t,e){const r=e.unpackedShape,i=[e.width,e.height],d=[i[0],i[1]],g=(0,f.getGlsl)(this.context.glContext.version);if(r[0]===1){const w=r.slice(1),S=[1,2],O=(0,h.squeezeInputShape)(r,w),E=["b","row","col"],v=JSON.parse(JSON.stringify(e));v.unpackedShape=O;const P=this.getPackedSamplerFromInput(o,t,v),L=`${P.routineBody}
      vec4 ${o}(int b, int row, int col) {
        return ${o}(${(0,h.getSqueezedParams)(E,S)});
      } `;return new c.GlslLibRoutine(L,P.dependencies)}const m=d[0],_=d[1],y=Math.ceil(r[2]/2),T=`vec4 ${o}(int b, int row, int col) {
      vec2 uv = packedUVfrom3D(
        ${_}, ${m}, ${y*Math.ceil(r[1]/2)}, ${y}, b, row, col);
      return ${g.texture2D}(${t}, uv);}`;return new c.GlslLibRoutine(T,["coordinates.packedUVfrom3D"])}getPackedSamplerND(o,t,e){const r=e.unpackedShape,i=r.length,d=[e.width,e.height],g=(0,f.getGlsl)(this.context.glContext.version),m=[d[0],d[1]],_=m[1],y=m[0],T=Math.ceil(r[i-1]/2);let w=T*Math.ceil(r[i-2]/2),S="int b, int row, int col",O=`b * ${w} + (row / 2) * ${T} + (col / 2)`;for(let v=2;v<i-1;v++)S=`int b${v}, `+S,w*=r[i-v-1],O=`b${v} * ${w} + `+O;const E=`vec4 ${o}(${S}) {
      int index = ${O};
      int texR = index / ${y};
      int texC = index - texR * ${y};
      vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${y}, ${_});
      return ${g.texture2D}(${t}, uv);
    }`;return new c.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 c.GlslLibRoutine(g,["coordinates.sampleTexture"])}const d=`
        float ${o}() {
          int offset_${t} = coordsToOffset(TexCoords, ${r}, ${i});
          vec2 uv = uvFromFlat(${r}, ${i}, offset_${t});
          return sampleTexture(${t}, uv);
        }
      `;return new c.GlslLibRoutine(d,["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 c.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 c.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 c.GlslLibRoutine(g,["coordinates.sampleTexture"])}const d=`
        float ${o}(int index) {
          vec2 uv = uvFromFlat(${r}, ${i}, index);
          return sampleTexture(${t}, uv);
        }
      `;return new c.GlslLibRoutine(d,["coordinates.uvFromFlat","coordinates.sampleTexture"])}getUnpackedSampler2D(o,t,e){const r=e.unpackedShape,i=[e.height,e.width];if(i!=null&&u.ArrayUtil.arraysEqual(r,i)){const w=`
          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 c.GlslLibRoutine(w,["coordinates.sampleTexture"])}const{newShape:d,keptDims:g}=(0,s.squeezeShape)(r),m=d;if(m.length<r.length){const w=(0,h.squeezeInputShape)(r,m),S=JSON.parse(JSON.stringify(e));S.unpackedShape=w;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 c.GlslLibRoutine(E,["coordinates.sampleTexture"])}const _=i[1],y=i[0];if(y===1){const w=`
          float ${o}(int row, int col) {
            int offset_${t} = coordsToOffset(TexCoords, ${_}, ${y});
            float index = dot(vec3(row, col, offset_${t}), vec3(${r[1]}, 1, 1));
            vec2 uv = vec2(0.5, (index + 0.5) / ${_}.0);
            return sampleTexture(${t}, uv);
          }
        `;return new c.GlslLibRoutine(w,["coordinates.sampleTexture","coordinates.coordsToOffset"])}if(_===1){const w=`
          float ${o}(int row, int col) {
            int offset_${t} = coordsToOffset(TexCoords, ${_}, ${y});
            float index = dot(vec3(row, col, offset_${t}), vec3(${r[1]}, 1, 1));
            vec2 uv = vec2((index + 0.5) / ${y}.0, 0.5);
            return sampleTexture(${t}, uv);
          }
        `;return new c.GlslLibRoutine(w,["coordinates.sampleTexture","coordinates.coordsToOffset"])}const T=`
        float ${o}(int row, int col) {
          int index = col * ${r[1]} + row;
          vec2 uv = uvFromFlat(${_}, ${y}, index);
          return sampleTexture(${t}, uv);
        }
      `;return new c.GlslLibRoutine(T,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}getUnpackedSampler3D(o,t,e){const r=e.unpackedShape,i=r[1]*r[2],d=r[2],{newShape:g,keptDims:m}=(0,s.squeezeShape)(r),_=g;if(_.length<r.length){const T=(0,h.squeezeInputShape)(r,_),w=["batch","col","row"],S=JSON.parse(JSON.stringify(e));S.unpackedShape=T;const O=this.getUnpackedSamplerFromInput(o,t,S),E=m.reverse(),v=`
          ${O.routineBody}
          float ${o}(int batch, int row, int col) {
            return ${o}(${(0,h.getSqueezedParams)(w,E)});
          }
        `;return new c.GlslLibRoutine(v,O.dependencies)}const y=`
          float ${o}(int depth, int row, int col) {
            // Explicitly use integer operations as dot() only works on floats.
            int index = depth * ${i} + col * ${d} + row;
            vec2 uv = uvFromFlat(${e.width}, ${e.height}, index);
            return sampleTexture(${t}, uv);
          }
      `;return new c.GlslLibRoutine(y,["coordinates.uvFromFlat","coordinates.sampleTexture","coordinates.coordsToOffset"])}getUnpackedSampler4D(o,t,e){const r=e.unpackedShape,i=r[3],d=r[2]*i,g=`
        float ${o}(int row, int col, int depth, int depth2) {
          int index = row * ${r[1]*d} + col * ${d} +
              depth2 * ${i} + depth;
          vec2 uv = uvFromFlat(${e.width}, ${e.height}, index);
          return sampleTexture(${t}, uv);
        }
      `;return new c.GlslLibRoutine(g,["coordinates.uvFromFlat","coordinates.sampleTexture"])}getUnpackedSampler5D(o,t,e){const r=e.unpackedShape,i=r[4],d=r[3]*i,g=r[2]*d,m=r[1]*g,{newShape:_,keptDims:y}=(0,s.squeezeShape)(r);if(_.length<r.length){const w=(0,h.squeezeInputShape)(r,_),S=["row","col","depth","depth2","depth3"],O=JSON.parse(JSON.stringify(e));O.unpackedShape=w;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,y)});
          }
        `;return new c.GlslLibRoutine(E,["coordinates.sampleTexture","coordinates.uvFromFlat"])}const T=`
        float ${o}(int row, int col, int depth, int depth2, int depth3) {
          int index = row * ${m} + col * ${g} + depth * ${d} +
          depth3 * ${i} + depth2;
          vec2 uv = uvFromFlat(${e.width}, ${e.height}, index);
          return sampleTexture(${t}, uv);
        }
      `;return new c.GlslLibRoutine(T,["coordinates.sampleTexture","coordinates.uvFromFlat"])}getUnpackedSampler6D(o,t,e){const r=e.unpackedShape,i=r[5],d=r[4]*i,g=r[3]*d,m=r[2]*g,_=r[1]*m,{newShape:y,keptDims:T}=(0,s.squeezeShape)(r);if(y.length<r.length){const S=(0,h.squeezeInputShape)(r,y),O=["row","col","depth","depth2","depth3","depth4"],E=JSON.parse(JSON.stringify(e));E.unpackedShape=S;const v=`
            ${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,T)});
            }
          `;return new c.GlslLibRoutine(v,["coordinates.sampleTexture","coordinates.uvFromFlat"])}const w=`
          float ${o}(int row, int col, int depth,
            int depth2, int depth3, int depth4) {
            int index = row * ${_} + col * ${m} + depth * ${g} +
            depth2 * ${d} + depth3 * ${i} + depth4;
            vec2 uv = uvFromFlat(${e.width}, ${e.height}, index);
            return sampleTexture(${t}, uv);
          }
        `;return new c.GlslLibRoutine(w,["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,d=[];for(let m=0;m<t-1;++m)d.push(`
        c[${m}] = offset / ${e[m]};`),d.push(`
        offset -= c[${m}] * ${e[m]};`);d.push(`
        c[${t-1}] = offset;`);const g=`
      void toVec(vec2 texCoords, out int c[${t}]) {
        int offset = coordsToOffset(texCoords, ${r}, ${i});
        ${d.join("")}
      }
      void toVec(int offset, out int c[${t}]) {
        ${d.join("")}
      }
    `;return{toVec:new c.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 d=`_${t}`;o[d]=new c.GlslLibRoutine(this.getValueFromSingle(t,i,r.width,r.height,!1),[`shapeUtils.indicesToOffset${d}`,"coordinates.offsetToCoords","fragcolor.getColorAsFloat"]),d+="_T",o[d]=new c.GlslLibRoutine(this.getValueFromSingle(t,i,r.width,r.height,!0),[`shapeUtils.indicesToOffset${d}`,"coordinates.offsetToCoords","fragcolor.getColorAsFloat"])}),o}getValueFromSingle(o,t,e,r,i){let d=`_${o}`;return i&&(d+="_T"),`
        float ${d}(int m[${t}]) {
          int offset = indicesToOffset${d}(m);
          vec2 coords = offsetToCoords(offset, ${e}, ${r});
          float value = getColorAsFloat(${(0,f.getGlsl)(this.context.glContext.version).texture2D}(${o}, coords));
          return value;
        }
        `}getPackedValueFrom(o,t,e,r,i){let d=`_${o}_Pack`;return i&&(d+="_T"),`
        vec4 ${d}(int m[${t}]) {
          int offset = indicesToOffset_${o}(m);
          vec2 coords = offsetToCoords(offset, ${e}, ${r});
          return ${(0,f.getGlsl)(this.context.glContext.version).texture2D}(${o}, coords);
        }
        `}}n.CoordsGlslLib=p},8520:(b,n)=>{var a;Object.defineProperty(n,"__esModule",{value:!0}),n.TopologicalSortGlslRoutines=n.GlslLibRoutineNode=n.GlslLibRoutine=n.GlslLib=n.GlslContext=n.FunctionType=void 0,(a=n.FunctionType||(n.FunctionType={}))[a.ValueBased=0]="ValueBased",a[a.Positional=1]="Positional",n.GlslContext=class{constructor(u,c,f,s){this.glContext=u,this.programInfo=c,this.inputTextureLayouts=f,this.outputTextureLayout=s}},n.GlslLib=class{constructor(u){this.context=u}},n.GlslLibRoutine=class{constructor(u,c){this.routineBody=u,this.dependencies=c}},n.GlslLibRoutineNode=class{constructor(u,c,f){this.name=u,this.dependencies=f||[],c&&(this.routineBody=c)}addDependency(u){u&&this.dependencies.push(u)}},n.TopologicalSortGlslRoutines=class{static returnOrderedNodes(u){if(!u||u.length===0)return[];if(u.length===1)return u;const c=new Set,f=new Set,s=new Array;return this.createOrderedNodes(u,c,f,s),s}static createOrderedNodes(u,c,f,s){for(let h=0;h<u.length;++h)this.dfsTraverse(u[h],c,f,s)}static dfsTraverse(u,c,f,s){if(!u||f.has(u.name))return;if(c.has(u.name))throw new Error("Cyclic dependency detected. Can't topologically sort routines needed for shader.");c.add(u.name);const h=u.dependencies;if(h&&h.length>0)for(let p=0;p<h.length;++p)this.dfsTraverse(h[p],c,f,s);s.push(u),f.add(u.name),c.delete(u.name)}}},7341:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.EncodingGlslLib=void 0;const u=a(8520);class c extends u.GlslLib{constructor(s){super(s)}getFunctions(){return Object.assign(Object.assign({},this.encodeFloat32()),this.decodeFloat32())}getCustomTypes(){return{}}encodeFloat32(){return{encode:new u.GlslLibRoutine(`highp vec4 encode(highp float f) {
        return vec4(f, 0.0, 0.0, 0.0);
      }
        `)}}decodeFloat32(){return{decode:new u.GlslLibRoutine(`highp float decode(highp vec4 rgba) {
        return rgba.r;
      }
        `)}}encodeUint8(){const s=c.isLittleEndian()?"rgba.rgba=rgba.abgr;":"";return{encode:new u.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=c.isLittleEndian()?"rgba.rgba=rgba.abgr;":"";return{decode:new u.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),p=new Uint8Array(s);if(h[0]=3735928559,p[0]===239)return!0;if(p[0]===222)return!1;throw new Error("unknown endianness")}}n.EncodingGlslLib=c},9894:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.FragColorGlslLib=void 0;const u=a(8520),c=a(5060);class f extends u.GlslLib{constructor(h){super(h)}getFunctions(){return Object.assign(Object.assign({},this.setFragColor()),this.getColorAsFloat())}getCustomTypes(){return{}}setFragColor(){const h=(0,c.getGlsl)(this.context.glContext.version);return{setFragColor:new u.GlslLibRoutine(`
        void setFragColor(float value) {
            ${h.output} = encode(value);
        }
        `,["encoding.encode"])}}getColorAsFloat(){return{getColorAsFloat:new u.GlslLibRoutine(`
        float getColorAsFloat(vec4 color) {
            return decode(color);
        }
        `,["encoding.decode"])}}}n.FragColorGlslLib=f},2848:(b,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.replaceInlines=void 0;const a=/@inline[\s\n\r]+(\w+)[\s\n\r]+([0-9a-zA-Z_]+)\s*\(([^)]*)\)\s*{(([^}]|[\n\r])*)}/gm;n.replaceInlines=function(u){const c={};let f;for(;(f=a.exec(u))!==null;){const s=f[3].split(",").map(h=>{const p=h.trim().split(" ");return p&&p.length===2?{type:p[0],name:p[1]}:null}).filter(h=>h!==null);c[f[2]]={params:s,body:f[4]}}for(const s in c){const h="(\\w+)?\\s+([_0-9a-zA-Z]+)\\s+=\\s+__FUNC__\\((.*)\\)\\s*;".replace("__FUNC__",s),p=new RegExp(h,"gm");for(;(f=p.exec(u))!==null;){const l=f[1],o=f[2],t=f[3].split(","),e=l?`${l} ${o};`:"";let r=c[s].body,i="";c[s].params.forEach((g,m)=>{g&&(i+=`${g.type} ${g.name} = ${t[m]};
`)}),r=`${i}
 ${r}`,r=r.replace("return",`${o} = `);const d=`
      ${e}
      {
        ${r}
      }
      `;u=u.replace(f[0],d)}}return u.replace(a,"")}},8879:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.GlslPreprocessor=void 0;const u=a(8520),c=a(2848),f=a(5483),s=a(5060);n.GlslPreprocessor=class{constructor(h,p,l,o){this.libs={},this.glslLibRoutineDependencyGraph={},this.context=new u.GlslContext(h,p,l,o),Object.keys(f.glslRegistry).forEach(e=>{const r=new f.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 d=e+"."+i;let g;t[d]?(g=t[d],g.routineBody=r[i].routineBody):(g=new u.GlslLibRoutineNode(d,r[i].routineBody),t[d]=g);const m=r[i].dependencies;if(m)for(let _=0;_<m.length;++_)if(t[m[_]])g.addDependency(t[m[_]]);else{const y=new u.GlslLibRoutineNode(m[_]);t[m[_]]=y,g.addDependency(y)}}}}preprocess(){const h=this.context.programInfo;let p=h.shaderSource;return this.context.programInfo.hasMain||(p=`${p}
      ${(0,s.getDefaultFragShaderMain)(this.context.glContext.version,this.context.outputTextureLayout.shape.length)}`),p=(0,c.replaceInlines)(p),`${(0,s.getFragShaderPreamble)(this.context.glContext.version)}
    ${this.getUniforms(h.inputNames,h.variables)}
    ${this.getImports(p)}
    ${p}`}getImports(h){const p=this.selectGlslLibRoutinesToBeIncluded(h);if(p.length===0)return"";let l="";for(let o=0;o<p.length;++o){if(!p[o].routineBody)throw new Error(`Missing body for the Glsl Library routine: ${p[o].name}`);l+=p[o].routineBody+`
`}return l}selectGlslLibRoutinesToBeIncluded(h){const p=[];return Object.keys(this.glslLibRoutineDependencyGraph).forEach(l=>{const o=l.split(".")[1];h.indexOf(o)!==-1&&p.push(this.glslLibRoutineDependencyGraph[l])}),u.TopologicalSortGlslRoutines.returnOrderedNodes(p)}getUniforms(h,p){const l=[];if(h)for(const o of h)l.push(`uniform sampler2D ${o};`);if(p)for(const o of p)l.push(`uniform ${o.type} ${o.name}${o.arrayLength?`[${o.arrayLength}]`:""};`);return l.join(`
`)}}},5483:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.glslRegistry=void 0;const u=a(5107),c=a(7341),f=a(9894),s=a(2655),h=a(3891);n.glslRegistry={encoding:c.EncodingGlslLib,fragcolor:f.FragColorGlslLib,vec:h.VecGlslLib,shapeUtils:s.ShapeUtilsGlslLib,coordinates:u.CoordsGlslLib}},2655:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ShapeUtilsGlslLib=void 0;const u=a(8520);class c extends u.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((p,l)=>{const o=this.context.inputTextureLayouts[l].unpackedShape;if(o.length<=s){const t=o.length,e=s-t,r=`bcastIndices_${p}`;let i="";for(let g=0;g<t;++g)i+=`
          realIndices[${g}] = int( mod(float(bcastedIndices[${e+g}]), ${o[g]}.0) );
          `;const d=`
        void ${r} (int bcastedIndices[${s}], out int realIndices[${t}]) {
          ${i}
        }
        `;h[r]=new u.GlslLibRoutine(d)}}),h}bcastMatmulIndex(){const s=this.context.outputTextureLayout.shape.length,h={};return this.context.programInfo.inputNames.forEach((p,l)=>{const o=this.context.inputTextureLayouts[l].shape;if(!(o.length<2||o.length>s)){const t=o.length,e=s-t,r=`bcastMatmulIndices_${p}`;let i="";for(let g=0;g<t-2;++g)i+=`
          realIndices[${g}] = int( mod(float(bcastedIndices[${e+g}]), ${o[g]}.0) );
          `;const d=`
        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 u.GlslLibRoutine(d)}}),h}indicesToOffset(){const s={};return this.context.programInfo.inputNames.forEach((h,p)=>{const l=this.context.inputTextureLayouts[p].shape,o=this.context.inputTextureLayouts[p].strides,t=l.length;let e=`indicesToOffset_${h}`;s[e]=new u.GlslLibRoutine(c.indexToOffsetSingle(e,t,o)),e=`indicesToOffset_${h}_T`,s[e]=new u.GlslLibRoutine(c.indexToOffsetSingle(e,t,o.slice().reverse()))}),s}static indexToOffsetSingle(s,h,p){let l="";for(let o=h-1;o>=0;--o)l+=`
        offset += indices[${o}] * ${p[o]};
        `;return`
      int ${s}(int indices[${h}]) {
        int offset = 0;
        ${l}
        return offset;
      }
      `}offsetToIndices(){const s={};return this.context.programInfo.inputNames.forEach((h,p)=>{const l=this.context.inputTextureLayouts[p].shape,o=this.context.inputTextureLayouts[p].strides,t=l.length;let e=`offsetToIndices_${h}`;s[e]=new u.GlslLibRoutine(c.offsetToIndicesSingle(e,t,o)),e=`offsetToIndices_${h}_T`,s[e]=new u.GlslLibRoutine(c.offsetToIndicesSingle(e,t,o.slice().reverse()))}),s}static offsetToIndicesSingle(s,h,p){const l=[];for(let o=0;o<h-1;++o)l.push(`
      indices[${o}] = offset / ${p[o]};`),l.push(`
        offset -= indices[${o}] * ${p[o]};`);return l.push(`
      indices[${h-1}] = offset;`),`
      void ${s}(int offset, out int indices[${h}]) {
        ${l.join("")}
      }
      `}incrementIndices(){const s={};return this.context.programInfo.inputNames.forEach((h,p)=>{const l=this.context.inputTextureLayouts[p].shape,o=l.length,t=`incrementIndices_${h}`;let e="";for(let i=0;i<o;++i)e+=`
        shape[${i}] = ${l[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 u.GlslLibRoutine(r)}),s}}n.ShapeUtilsGlslLib=c},5060:(b,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.getDefaultFragShaderMain=n.getFragShaderPreamble=n.getVertexShaderSource=n.getGlsl=void 0;const a={version:"",attribute:"attribute",varyingVertex:"varying",varyingFrag:"varying",texture2D:"texture2D",output:"gl_FragColor",outputDeclaration:""},u={version:"#version 300 es",attribute:"in",varyingVertex:"out",varyingFrag:"in",texture2D:"texture",output:"outputColor",outputDeclaration:"out vec4 outputColor;"};function c(f){return f===1?a:u}n.getGlsl=c,n.getVertexShaderSource=function(f){const s=c(f);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(f){const s=c(f);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(f,s){return`
  void main() {
    int indices[${s}];
    toVec(TexCoords, indices);
    vec4 result = vec4(process(indices));
    ${c(f).output} = result;
  }
  `}},3891:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.VecGlslLib=void 0;const u=a(8520);class c extends u.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:"/="},p={};for(const l in h){const o=`${l}Vec`;let t="";for(let r=0;r<s;++r)t+=`
          dest[${r}] ${h[l]} src[${r}];
          `;const e=`
        void ${o}(int src[${s}], out int dest[${s}]) {
          ${t}
        }
        `;p[o]=new u.GlslLibRoutine(e)}return p}copyVec(){const s=this.context.outputTextureLayout.shape.length;let h="";for(let l=0;l<s;++l)h+=`
        dest[${l}] = src[${l}];
        `;const p=`
      void copyVec(int src[${s}], out int dest[${s}]) {
        ${h}
      }
      `;return{copyVec:new u.GlslLibRoutine(p)}}setVecItem(){const s=this.context.outputTextureLayout.shape.length;let h=`
        if(index < 0)
            index =${s} + index;
        if (index == 0)
            m[0] = value;
        `;for(let l=1;l<s-1;++l)h+=`
        else if (index == ${l})
            m[${l}] = value;
            `;h+=`
        else
            m[${s-1}] = value;
        `;const p=`
      void setVecItem(out int m[${s}], int index, int value) {
        ${h}
      }
        `;return{setVecItem:new u.GlslLibRoutine(p)}}getVecItem(){const s=this.context.outputTextureLayout.shape.length;let h=`
        if(index < 0)
            index = ${s} + index;
        if (index == 0)
            return m[0];
      `;for(let l=1;l<s-1;++l)h+=`
        else if (index == ${l})
            return m[${l}];
      `;h+=`
        else
            return m[${s-1}];
        `;const p=`
      int getVecItem(int m[${s}], int index) {
        ${h}
      }
    `;return{getVecItem:new u.GlslLibRoutine(p)}}}n.VecGlslLib=c},8316:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.WebGLInferenceHandler=void 0;const u=a(6231),c=a(9162),f=a(2517),s=a(2403),h=a(7019),p=a(8710),l=a(5611),o=a(4057),t=a(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 T=0;T<e.inputNames.length;++T)i[T]=this.getOrCreateTextureData(r[T],e.inputTypes[T]);const d=((T,w)=>{const S=w.map(E=>`${E.unpackedShape.join(",")};${E.width}x${E.height}`).join("_");let O=T.name;return T.cacheHint&&(O+="["+T.cacheHint+"]"),O+=":"+S,O})(e,i);let g=this.session.programManager.getArtifact(d);const m=g?g.programInfo:typeof e.get=="function"?e.get():e,_=(0,o.createTextureLayoutFromTextureType)(this.session.layoutStrategy,m.output.dims,m.output.textureType),y=this.createTextureData(_,m.output.type);return g||(g=this.session.programManager.build(m,i,y),this.session.programManager.setArtifact(d,g)),this.runProgram(g,i,y),y}run(e,r){return this.executeProgram(e,r).tensor}runProgram(e,r,i){for(let d=0;d<r.length;++d)if(!!r[d].isPacked!=(e.programInfo.inputTypes[d]===t.TextureType.packed))throw new Error(`input[${d}] 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 d=(0,o.createTextureLayoutFromTextureType)(this.session.layoutStrategy,e.dims,r);if(r===t.TextureType.packedLastDimension){const _=e.dims;if(_.length===4){const y=[_[0],Math.ceil(_[1]*_[2]*_[3]/4)],T=(0,o.createTextureLayoutFromTextureType)(this.session.layoutStrategy,y,r);let w=e.numberData;if(_[1]*_[2]*_[3]%4!=0){const S=_[0],O=_[1]*_[2]*_[3],E=Math.ceil(O*1/4)*4;w=new Float32Array(S*E);for(let v=0;v<S;++v){const P=v*O,L=v*E+v%1*O;w.set(e.numberData.subarray(P,P+O),L)}}return this.createTextureData(T,e.type,w,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(d,e.type,e.numberData,e,1)}return i}createTextureDataFromLayoutBindTensor(e,r,i,d){return this.createTextureData(e,r,i,d,1)}createTextureData(e,r,i,d,g){u.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,d)}reshapeUnpacked(e,r){const i=this.getOrCreateTextureData(e,t.TextureType.unpacked),d={channels:i.channels,height:i.height,width:i.width,shape:r.length!==0?r:[1],strides:f.ShapeUtil.computeStrides(r),unpackedShape:r};return this.createTextureDataFromTexture(d,e.type,i.texture).tensor}reshapePacked(e,r){const i=this.getOrCreateTextureData(e,t.TextureType.packed);if((0,h.isReshapeCheap)(e.dims,r)){const y={channels:i.channels,height:i.height,width:i.width,shape:r.length!==0?r:[1],strides:f.ShapeUtil.computeStrides(r),unpackedShape:r,isPacked:!0};return this.createTextureDataFromTexture(y,e.type,i.texture).tensor}const d=(0,h.processDims3D)(e.dims),g=(0,h.processDims3D)(r),m=this.reshapePacked(e,d),_=this.run((0,h.createPackedReshape3DProgramInfoLoader)(this,m,g),[m]);return this.reshapePacked(_,r)}cast(e,r){const i=this.getOrCreateTextureData(e,t.TextureType.unpacked);return this.createTextureDataFromTexture(i,r,i.texture).tensor}createTextureDataFromTexture(e,r,i,d,g){const m=Object.assign(Object.assign({},e),{tensor:d||new c.Tensor(e.unpackedShape,r,_=>this.readTexture(m),async _=>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,p.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,p.encodeAsUint8)(this,e))}pack(e){return this.executeProgram((0,s.createPackProgramInfoLoader)(this,e.tensor),[e.tensor])}unpack(e){return this.executeProgram((0,l.createUnpackProgramInfoLoader)(this,e.tensor),[e.tensor])}}},1640:function(b,n,a){var u=this&&this.__createBinding||(Object.create?function(z,Z,J,ue){ue===void 0&&(ue=J);var Se=Object.getOwnPropertyDescriptor(Z,J);Se&&!("get"in Se?!Z.__esModule:Se.writable||Se.configurable)||(Se={enumerable:!0,get:function(){return Z[J]}}),Object.defineProperty(z,ue,Se)}:function(z,Z,J,ue){ue===void 0&&(ue=J),z[ue]=Z[J]}),c=this&&this.__setModuleDefault||(Object.create?function(z,Z){Object.defineProperty(z,"default",{enumerable:!0,value:Z})}:function(z,Z){z.default=Z}),f=this&&this.__importStar||function(z){if(z&&z.__esModule)return z;var Z={};if(z!=null)for(var J in z)J!=="default"&&Object.prototype.hasOwnProperty.call(z,J)&&u(Z,z,J);return c(Z,z),Z};Object.defineProperty(n,"__esModule",{value:!0}),n.WEBGL_OP_RESOLVE_RULES=void 0;const s=a(2898),h=f(a(7839)),p=a(4196),l=a(2069),o=a(8138),t=a(9663),e=a(5193),r=a(7992),i=a(1253),d=a(4776),g=a(6572),m=a(3346),_=a(5623),y=a(2870),T=a(2143),w=a(4939),S=a(718),O=a(2268),E=a(8117),v=a(2278),P=a(5524),L=a(5975),V=a(3933),R=a(6558),k=a(5723),Y=a(3738),C=f(a(4909)),$=a(8428),X=a(9793);n.WEBGL_OP_RESOLVE_RULES=[["Abs","","6+",C.abs],["Acos","","7+",C.acos],["Add","","7+",h.add],["And","","7+",h.and],["Asin","","7+",C.asin],["Atan","","7+",C.atan],["AveragePool","","7+",T.averagePool,T.parseAveragePoolAttributes],["BatchNormalization","","7+",s.batchNormalization,s.parseBatchNormalizationAttributes],["Cast","","6+",p.cast,p.parseCastAttributes],["Ceil","","6+",C.ceil],["Clip","","6-10",C.clip,C.parseClipAttributes],["Clip","","11+",C.clipV11],["Concat","","4+",l.concat,l.parseConcatAttributes],["Conv","","1+",o.conv,o.parseConvAttributes],["ConvTranspose","","1+",t.convTranspose,t.parseConvTransposeAttributes],["Cos","","7+",C.cos],["Div","","7+",h.div],["Dropout","","7+",C.identity],["DepthToSpace","","1+",e.depthToSpace,e.parseDepthToSpaceAttributes],["Equal","","7+",h.equal],["Elu","","6+",C.elu,C.parseEluAttributes],["Exp","","6+",C.exp],["Flatten","","1+",r.flatten,r.parseFlattenAttributes],["Floor","","6+",C.floor],["FusedConv","com.microsoft","1+",o.conv,o.parseConvAttributes],["Gather","","1+",i.gather,i.parseGatherAttributes],["Gemm","","7-10",d.gemm,d.parseGemmAttributesV7],["Gemm","","11+",d.gemm,d.parseGemmAttributesV11],["GlobalAveragePool","","1+",T.globalAveragePool,T.parseGlobalAveragePoolAttributes],["GlobalMaxPool","","1+",T.globalMaxPool],["Greater","","7+",h.greater],["Identity","","1+",C.identity],["ImageScaler","","1+",g.imageScaler,g.parseImageScalerAttributes],["InstanceNormalization","","6+",m.instanceNormalization,m.parseInstanceNormalizationAttributes],["LeakyRelu","","6+",C.leakyRelu,C.parseLeakyReluAttributes],["Less","","7+",h.less],["Log","","6+",C.log],["MatMul","","1+",_.matMul,_.parseMatMulAttributes],["MaxPool","","1+",T.maxPool,T.parseMaxPoolAttributes],["Mul","","7+",h.mul],["Neg","","6+",C.neg],["Not","","1+",C.not],["Or","","7+",h.or],["Pad","","2-10",y.padV2,y.parsePadAttributesV2],["Pad","","11+",y.padV11,y.parsePadAttributesV11],["Pow","","7+",h.pow],["PRelu","","7+",h.pRelu],["ReduceLogSum","","1+",w.reduceLogSum,w.parseReduceAttributes],["ReduceMax","","1+",w.reduceMax,w.parseReduceAttributes],["ReduceMean","","1+",w.reduceMean,w.parseReduceAttributes],["ReduceMin","","1+",w.reduceMin,w.parseReduceAttributes],["ReduceProd","","1+",w.reduceProd,w.parseReduceAttributes],["ReduceSum","","1-12",w.reduceSum,w.parseReduceAttributes],["ReduceSumSquare","","1+",w.reduceLogSumSquare,w.parseReduceAttributes],["Relu","","6+",C.relu],["Reshape","","5+",S.reshape],["Resize","","10",O.resize,O.parseResizeAttributesV10],["Resize","","11+",O.resize,O.parseResizeAttributesV11],["Shape","","1+",E.shape],["Sigmoid","","6+",C.sigmoid],["Sin","","7+",C.sin],["Slice","","10+",v.sliceV10],["Slice","","1-9",v.slice,v.parseSliceAttributes],["Softmax","","1-12",P.softmax,P.parseSoftmaxAttributes],["Softmax","","13+",P.softmaxV13,P.parseSoftmaxAttributesV13],["Split","","2-12",L.split,L.parseSplitAttributes],["Sqrt","","6+",C.sqrt],["Squeeze","","1-12",V.squeeze,V.parseSqueezeAttributes],["Squeeze","","13+",V.squeezeV13],["Sub","","7+",h.sub],["Sum","","6+",R.sum],["Tan","","7+",C.tan],["Tanh","","6+",C.tanh],["Tile","","6+",k.tile],["Transpose","","1+",Y.transpose,Y.parseTransposeAttributes],["Upsample","","7-8",X.upsample,X.parseUpsampleAttributesV7],["Upsample","","9",X.upsample,X.parseUpsampleAttributesV9],["Unsqueeze","","1-12",$.unsqueeze,$.parseUnsqueezeAttributes],["Unsqueeze","","13+",$.unsqueezeV13],["Xor","","7+",h.xor]]},2898:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseBatchNormalizationAttributes=n.batchNormalization=void 0;const u=a(246),c=a(5060),f=a(2039),s={name:"BatchNormalization",inputNames:["A","Scale","B","Mean","Variance"],inputTypes:[f.TextureType.unpacked,f.TextureType.unpacked,f.TextureType.unpacked,f.TextureType.unpacked,f.TextureType.unpacked]};n.batchNormalization=(l,o,t)=>(p(o),[l.run(Object.assign(Object.assign({},s),{cacheHint:t.cacheKey,get:()=>h(l,o,t)}),o)]),n.parseBatchNormalizationAttributes=l=>{const o=l.attributes.getFloat("epsilon",1e-5),t=l.attributes.getFloat("momentum",.9),e=l.attributes.getInt("spatial",1);return(0,u.createAttributeWithCacheKey)({epsilon:o,momentum:t,spatial:e})};const h=(l,o,t)=>{const e=(0,c.getGlsl)(l.session.backend.glContext.version),r=o[0].dims.length,[i,d]=l.calculateTextureWidthAndHeight(o[1].dims,f.TextureType.unpacked),g=`
  float process(int[${r}] indices) {
    vec2 position = offsetToCoords(indices[1], ${i}, ${d});
    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:f.TextureType.unpacked},shaderSource:g})},p=l=>{if(!l||l.length!==5)throw new Error("BatchNormalization requires 5 inputs.");const o=l[0],t=l[1],e=l[2],r=l[3],i=l[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:(b,n,a)=>{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 u=a(2517),c=a(8520),f=a(5060),s=a(2039);function h(){const w="add_";return{body:`
  float ${w}(float a, float b) {
    return a + b;
  }
  vec4 ${w}(vec4 v1, vec4 v2) {
    return v1 + v2;
  }
  `,name:w,type:c.FunctionType.ValueBased}}function p(){const w="div_";return{body:`
  float ${w}(float a, float b) {
    return a / b;
  }
  vec4 ${w}(vec4 v1, vec4 v2) {
    return v1 / v2;
  }
  `,name:w,type:c.FunctionType.ValueBased}}function l(){const w="mul_";return{body:`
  float ${w}(float a, float b) {
    return a * b;
  }
  vec4 ${w}(vec4 v1, vec4 v2) {
    return v1 * v2;
  }
  `,name:w,type:c.FunctionType.ValueBased}}function o(){const w="sub_";return{body:`
  float ${w}(float a, float b) {
    return a - b;
  }
  vec4 ${w}(vec4 v1, vec4 v2) {
    return v1 - v2;
  }
  `,name:w,type:c.FunctionType.ValueBased}}function t(){const w="equal_";return{body:`
  float ${w}(float a, float b) {
    return float(a == b);
  }
  vec4 ${w}(vec4 v1, vec4 v2) {
    return vec4(equal(v1, v2));
  }
  `,name:w,type:c.FunctionType.ValueBased}}function e(){const w="greater_";return{body:`
  float ${w}(float a, float b) {
    return float(a > b);
  }
  vec4 ${w}(vec4 v1, vec4 v2) {
    return vec4( v1.r > v2.r ,
      v1.g > v2.g,
      v1.b > v2.b,
      v1.a > v2.a );
  }
  `,name:w,type:c.FunctionType.ValueBased}}function r(){const w="less_";return{body:`
  float ${w}(float a, float b) {
    return float(a < b);
  }
  vec4 ${w}(vec4 v1, vec4 v2) {
    return vec4( v1.r < v2.r ,
                v1.g < v2.g,
                v1.b < v2.b,
                v1.a < v2.a );
  }
  `,name:w,type:c.FunctionType.ValueBased}}function i(){const w="and_";return{body:`
  float ${w}(float a, float b) {
    return float( bool(a) && bool(b) );
  }
  vec4 ${w}(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:w,type:c.FunctionType.ValueBased}}function d(){const w="or_";return{body:`
  float ${w}(float a, float b) {
    return float( bool(a) || bool(b) );
  }
  vec4 ${w}(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:w,type:c.FunctionType.ValueBased}}function g(){const w="xor_";return{body:`
  float ${w}(float a, float b) {
    return float( bool(a) ^^ bool(b) );
  }
  vec4 ${w}(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:w,type:c.FunctionType.ValueBased}}function m(){return function(w){const S=`${w}_`;return{body:`
  float ${S}(float a, float b) {
    return ${w}(a, b);
  }
  vec4 ${S}(vec4 v1, vec4 v2) {
    return ${w}(v1, v2);
  }
  `,name:S,type:c.FunctionType.ValueBased}}("pow")}function _(){const w="prelu_";return{body:`
  float ${w}(float a, float b) {
    return a < 0.0 ? a * b: a;
  }
  vec4 ${w}(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:w,type:c.FunctionType.ValueBased}}n.glslAdd=h,n.glslDiv=p,n.glslMul=l,n.glslSub=o,n.glslEqual=t,n.glslGreater=e,n.glslLess=r,n.glslAnd=i,n.glslOr=d,n.glslXor=g,n.glslPow=m,n.glslPRelu=_;const y=(w,S,O,E=S[0].type,v)=>{const P=w.session.pack?s.TextureType.packed:s.TextureType.unpacked;return{name:O.name,inputNames:["A","B"],inputTypes:[P,P],cacheHint:v,get:()=>T(w,S,O,E)}},T=(w,S,O,E=S[0].type)=>{const v=w.session.pack?s.TextureType.packed:s.TextureType.unpacked,P=!u.ShapeUtil.areEqual(S[0].dims,S[1].dims);let L=S[0].dims;const V=w.session.pack;if(P){const Y=u.BroadcastUtil.calcShape(S[0].dims,S[1].dims,!1);if(!Y)throw new Error("Can't perform binary op on the given tensors");L=Y;const C=L.length,$=S[0].dims.length!==0?S[0].dims.length:1,X=S[1].dims.length!==0?S[1].dims.length:1,z=S[0].dims.length!==0?"bcastIndices_A(indices, aindices);":"aindices[0] = 0;",Z=S[1].dims.length!==0?"bcastIndices_B(indices, bindices);":"bindices[0] = 0;",J=(0,f.getGlsl)(w.session.backend.glContext.version),ue=V?`
      ${O.body}
      void main() {
        vec4 a = getAAtOutCoords();
        vec4 b = getBAtOutCoords();
        vec4 result = ${O.name}(a, b);
        ${J.output} = result;
      }`:`
      ${O.body}
      float process(int indices[${C}]) {
        int aindices[${$}];
        int bindices[${X}];
        ${z}
        ${Z}
        return ${O.name}(_A(aindices), _B(bindices));
      }`;return{name:O.name,inputNames:["A","B"],inputTypes:[v,v],output:{dims:L,type:E,textureType:v},shaderSource:ue,hasMain:V}}const R=(0,f.getGlsl)(w.session.backend.glContext.version),k=`
    ${O.body}
    void main() {
      vec4 v1 = ${R.texture2D}(A, TexCoords);
      vec4 v2 = ${R.texture2D}(B, TexCoords);
      vec4 result = ${O.name}(v1, v2);
      ${R.output} = result;
    }
    `;return{name:O.name,inputNames:["A","B"],inputTypes:[v,v],output:{dims:S[0].dims,type:E,textureType:v},shaderSource:k,hasMain:!0}};n.add=(w,S)=>[w.run(y(w,S,h()),S)],n.and=(w,S)=>[w.run(y(w,S,i(),"bool"),S)],n.div=(w,S)=>[w.run(y(w,S,p()),S)],n.equal=(w,S)=>[w.run(y(w,S,t(),"bool"),S)],n.greater=(w,S)=>[w.run(y(w,S,e(),"bool"),S)],n.less=(w,S)=>[w.run(y(w,S,r(),"bool"),S)],n.mul=(w,S)=>[w.run(y(w,S,l()),S)],n.or=(w,S)=>[w.run(y(w,S,d(),"bool"),S)],n.pow=(w,S)=>[w.run(y(w,S,m()),S)],n.pRelu=(w,S)=>[w.run(y(w,S,_()),S)],n.sub=(w,S)=>[w.run(y(w,S,o()),S)],n.xor=(w,S)=>[w.run(y(w,S,g(),"bool"),S)]},4196:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseCastAttributes=n.cast=void 0;const u=a(2517);n.cast=(f,s,h)=>(c(s),[f.cast(s[0],h)]),n.parseCastAttributes=f=>u.ProtoUtil.tensorDataTypeFromProto(f.attributes.getInt("to"));const c=f=>{if(!f||f.length!==1)throw new Error("Cast requires 1 input.");if(f[0].type==="string")throw new Error("Invalid input type.")}},1163:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createPackedConcatProgramInfoLoader=void 0;const u=a(5060),c=a(2039),f=a(9390),s=a(2827);n.createPackedConcatProgramInfoLoader=(p,l,o)=>{const t=(e=l.length,r=o.cacheKey,{name:"Concat (packed)",inputNames:Array.from({length:e},(i,d)=>`X${d}`),inputTypes:Array(e).fill(c.TextureType.packed),cacheHint:r});var e,r;return Object.assign(Object.assign({},t),{get:()=>((i,d,g,m)=>{const _=g[0].dims.slice();if(m>=_.length||m<-1*_.length)throw new Error("axis specified for concat doesn't match input dimensionality");m<0&&(m=_.length+m);const y=_.slice(0);for(let z=1;z<g.length;z++){const Z=g[z].dims.slice();for(let J=0;J<_.length;J++)if(J===m)y[m]+=Z[J];else if(_[J]!==Z[J])throw new Error("non concat dimensions must match")}const T=y.length,w=(0,s.getChannels)("coords",T),S=(0,f.getCoordsDataType)(T),O=(0,s.unpackFromChannel)(),E=g.map(z=>z.dims),v=(0,f.getGlChannels)(T),P=new Array(E.length-1);P[0]=E[0][m];for(let z=1;z<P.length;z++)P[z]=P[z-1]+E[z][m];const L=v[m],V=v.slice(-2),R=v.join();let k=`if (${L} < ${P[0]}) {
        return getChannel(
            getX0(${R}), vec2(${V.join()}));
        }`;for(let z=1;z<P.length;z++){const Z=P[z-1];k+=`
            if (${L} < ${P[z]}  && ${L} >= ${P[z-1]}) {
              return getChannel(
                getX${z}(${h(v,L,Z)}),
                vec2(${h(V,L,Z)}));
            }`}const Y=P.length,C=P[P.length-1];k+=`
            return getChannel(
              getX${Y}(${h(v,L,C)}),
              vec2(${h(V,L,C)}));`;const $=(0,u.getGlsl)(i.session.backend.glContext.version),X=`
          ${O}
          float getValue(${v.map(z=>"int "+z)}) {
            ${k}
          }

          void main() {
            ${S} coords = getOutputCoords();
            int lastDim = coords.${v[T-1]};
            coords.${v[T-1]} = coords.${v[T-2]};
            coords.${v[T-2]} = lastDim;

            vec4 result = vec4(getValue(${w}), 0., 0., 0.);

            ${w[T-1]} = ${w[T-1]} + 1;
            if (${w[T-1]} < ${y[T-1]}) {
              result.g = getValue(${w});
            }

            ${w[T-2]} = ${w[T-2]} + 1;
            if (${w[T-2]} < ${y[T-2]}) {
              result.a = getValue(${w});
            }

            ${w[T-1]} = ${w[T-1]} - 1;
            if (${w[T-2]} < ${y[T-2]} &&
                ${w[T-1]} < ${y[T-1]}) {
              result.b = getValue(${w});
            }
            ${$.output} = result;
          }
        `;return Object.assign(Object.assign({},d),{output:{dims:y,type:g[0].type,textureType:c.TextureType.packed},shaderSource:X,hasMain:!0})})(p,t,l,o.axis)})};const h=(p,l,o)=>{const t=p.indexOf(l);return p.map((e,r)=>r===t?`${e} - ${o}`:e).join()}},2069:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseConcatAttributes=n.concat=void 0;const u=a(246),c=a(2039),f=a(1163);n.concat=(e,r,i)=>(t(r),e.session.pack&&r[0].dims.length>1?[e.run((0,f.createPackedConcatProgramInfoLoader)(e,r,i),r)]:[e.run(s(e,r,i),r)]);const s=(e,r,i)=>{const d=(g=r.length,m=i.cacheKey,{name:"Concat",inputNames:Array.from({length:g},(_,y)=>`X${y}`),inputTypes:Array(g).fill(c.TextureType.unpacked),cacheHint:m});var g,m;return Object.assign(Object.assign({},d),{get:()=>((_,y,T,w)=>{const S=T[0].dims.slice();if(w>=S.length||w<-1*S.length)throw new Error("axis specified for concat doesn't match input dimensionality");w<0&&(w=S.length+w);const O=S.slice(0);for(let R=1;R<T.length;R++){const k=T[R].dims.slice();for(let Y=0;Y<S.length;Y++)if(Y===w)O[w]+=k[Y];else if(S[Y]!==k[Y])throw new Error("non concat dimensions must match")}const E=O.length,v=new Array(T.length);let P=0;for(let R=0;R<v.length;++R)P+=T[R].dims[w],v[R]=P;let L="";L=T.length<5?h(v):p(v);const V=`
        ${l(T.length,E)}
        ${o(v)}
        ${L}
        float process(int indices[${E}]) {
          int textureIndex = getTextureWhereDataResides (indices[${w}]);

          if(textureIndex != 0) {
            indices[${w}] = indices[${w}] - int(getSizeInConcatAxisValueFromIndex(textureIndex-int(1)));
          }

          return fetchDataFromCorrectTexture(textureIndex, indices);
        }`;return Object.assign(Object.assign({},y),{output:{dims:O,type:T[0].type,textureType:c.TextureType.unpacked},shaderSource:V})})(0,d,r,i.axis)})},h=e=>`int getTextureWhereDataResides(int index) {
      ${e.map((r,i)=>`if(index<${r}) {return ${i};}
`).join("")}
    }`,p=e=>h(e),l=(e,r)=>{const i=[`float fetchDataFromCorrectTexture(int textureIndex, int indices[${r}]) {`];for(let d=0;d<e;++d)d===0?i.push(`	if (textureIndex == ${d}) { return _X${d}(indices); }`):d===e-1?i.push(`	else { return _X${d}(indices); }`):i.push(`	else if (textureIndex == ${d}) { return _X${d}(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,u.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 d of e){if(d.type!==r)throw new Error("input tensors should be one type");if(d.dims.length!==i)throw new Error("input tensors should have the same shape")}}},4770:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createUnpackedGroupedConvProgramInfoLoader=void 0;const u=a(6231),c=a(5060),f=a(2039),s=a(8138),h=a(2823);n.createUnpackedGroupedConvProgramInfoLoader=(p,l,o)=>{const t=(e=l.length>2,r=o.cacheKey,{name:"GroupedConv",inputNames:e?["X","W","Bias"]:["X","W"],inputTypes:e?[f.TextureType.unpacked,f.TextureType.unpacked,f.TextureType.unpacked]:[f.TextureType.unpacked,f.TextureType.unpacked],cacheHint:r});var e,r;return Object.assign(Object.assign({},t),{get:()=>((i,d,g,m)=>{const _=d.length>2?"value += getBias(output_channel);":"",y=d[0].dims.slice(),T=d[1].dims.slice(),w=T[0]/m.group;u.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)(y,T,m.dilations,m.pads,m.strides),O=(0,c.getGlsl)(i.session.backend.glContext.version),{activationFunction:E,applyActivation:v}=(0,h.getActivationSnippet)(m),P=`
  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 / ${w};

    float value = 0.0;
    for (int wInChannel = 0; wInChannel < ${T[1]}; wInChannel++) {
      int input_channel = group_id * ${T[1]} + wInChannel;
      for (int wHeight = 0; wHeight < ${T[2]}; wHeight++) {
        int xHeight = xRCCorner.x + wHeight * ${m.dilations[0]};

        if (xHeight < 0 || xHeight >= ${y[2]}) {
          continue;
        }

        for (int wWidth = 0; wWidth < ${T[3]}; wWidth++) {
          int xWidth = xRCCorner.y + wWidth * ${m.dilations[1]};
          if (xWidth < 0 || xWidth >= ${y[3]}) {
            continue;
          }

          float xVal = getX(batch, input_channel, xWidth, xHeight);
          float wVal = getW(output_channel, wInChannel, wWidth, wHeight);
          value += xVal*wVal;
        }
      }
    }
    ${_}
    ${v}
    ${O.output} = vec4(value, .0, .0, .0);
  }
`;return Object.assign(Object.assign({},g),{output:{dims:S,type:d[0].type,textureType:f.TextureType.unpacked},shaderSource:P,hasMain:!0})})(p,l,t,o)})}},1386:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.conv2DPacked=n.conv2DPackedPointwise=void 0;const u=a(8138),c=a(8555),f=a(708);n.conv2DPackedPointwise=(s,h,p)=>{const l=h[0].dims,o=h[1].dims,t=(0,u.calculateOutputShape)(l,o,p.dilations,p.pads,p.strides),e=s.reshapePacked(h[0],[l[1],l[2]*l[3]]),r=s.reshapePacked(h[1],[o[0],o[1]]),i=h.length>2?[r,e,h[2]]:[r,e],d=s.run((0,f.createPackedMatmulProgramInfoLoader)(s,i,p),i);return s.reshapePacked(d,t)},n.conv2DPacked=(s,h,p)=>{const l=h[0].dims,o=h[1].dims,t=(0,u.calculateOutputShape)(l,o,p.dilations,p.pads,p.strides),e=s.run((0,c.createPackedIm2ColProgramInfoLoader)(s,h[0],h[1],t,p),[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],d=s.run((0,f.createPackedMatmulProgramInfoLoader)(s,i,p),i);return s.reshapePacked(d,t)}},9663:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseConvTransposeAttributes=n.convTranspose=void 0;const u=a(246),c=a(5060),f=a(2039),s=a(2823),h=(r,i,d,g,m,_)=>(r-1)*i+d+(g-1)*m+1-_,p=(r,i,d,g,m)=>{const _=Math.floor(r/2);i==="SAME_UPPER"?(d[g]=_,d[m]=r-_):i==="SAME_LOWER"&&(d[g]=r-_,d[m]=_)};n.convTranspose=(r,i,d)=>(e(i,d),l(r,i,d));const l=(r,i,d)=>{const g=t(d,i);return[o(r,i,g)]},o=(r,i,d)=>r.run(((g,m,_)=>{const y=(T=m.length>2,w=_.cacheKey,{name:"ConvTranspose",inputNames:T?["X","W","B"]:["X","W"],inputTypes:T?[f.TextureType.unpacked,f.TextureType.unpacked,f.TextureType.unpacked]:[f.TextureType.unpacked,f.TextureType.unpacked],cacheHint:w});var T,w;return Object.assign(Object.assign({},y),{get:()=>((S,O,E,v)=>{const P=O.length>2?"getB(output_channel)":"0.0",L=O[0].dims,V=O[1].dims,R=V[1],k=V[0]/v.group,Y=[O[0].dims[0],O[1].dims[1]*v.group,...v.outputShape],C=(0,c.getGlsl)(S.session.backend.glContext.version),{activationFunction:$,applyActivation:X}=(0,s.getActivationSnippet)(v),z=`
  const ivec2 strides = ivec2(${v.strides[0]}, ${v.strides[1]});
  const ivec2 pads = ivec2(${v.pads[0]}, ${v.pads[1]});
  ${$}
  void main() {
    ivec4 coords = getOutputCoords();
    int batch = coords.x;
    int output_channel = coords.y;

    ivec2 loc = coords.zw + pads;

    int group_id = output_channel / ${R};
    int wOutChannel = output_channel - group_id * ${R};

    float value = ${P};
    for (int inChannelOffset = 0; inChannelOffset < ${k}; inChannelOffset++) {
      int input_channel = group_id * ${k} + inChannelOffset;
      for (int wWOff = 0; wWOff < ${V[2]}; wWOff++) {
        for (int wHOff = 0; wHOff < ${V[3]}; wHOff++) {
          ivec2 wOff = ivec2(wWOff * ${v.dilations[0]}, wHOff * ${v.dilations[1]});
          ivec2 wLoc = loc - wOff;
          ivec2 wLocIn = wLoc / strides;
          if (
            wLocIn * strides == wLoc &&
            wLocIn.x >= 0 && wLocIn.x < ${L[2]} &&
            wLocIn.y >= 0 && wLocIn.y < ${L[3]}
          ) {
            float xVal = getX(batch, input_channel, wLocIn.y, wLocIn.x);
            float wVal = getW(input_channel, wOutChannel, wHOff, wWOff);
            value += xVal * wVal;
          }
        }
      }
    }
    ${X}
    ${C.output} = vec4(value, .0, .0, .0);
  }
`;return Object.assign(Object.assign({},E),{output:{dims:Y,type:O[0].type,textureType:f.TextureType.unpacked},shaderSource:z,hasMain:!0})})(g,m,y,_)})})(r,i,d),i),t=(r,i)=>{const d=r.kernelShape.slice();if(r.kernelShape.length===0)for(let y=2;y<i[1].dims.length;++y)d.push(i[1].dims[y]);const g=r.pads.slice(),m=r.outputShape.slice();((y,T,w,S,O,E,v,P)=>{const L=y.length-2,V=P.length===0;for(let R=0;R<L;++R){const k=V?y[R+2]*E[R]:P[R],Y=h(y[R+2],E[R],O[R],T[R],w[R],k);p(Y,S,O,R,R+L),V&&P.push(E[R]*(y[R+2]-1)+v[R]+(T[R]-1)*w[R]+1-O[R]-O[R+L])}})(i[0].dims,d,r.dilations,r.autoPad,g,r.strides,r.outputPadding,m);const _=Object.assign({},r);return Object.assign(_,{kernelShape:d,pads:g,outputShape:m,cacheKey:r.cacheKey}),_};n.parseConvTransposeAttributes=r=>{const i=r.attributes,d=(0,s.parseInternalActivationAttributes)(i),g=i.getString("auto_pad","NOTSET"),m=i.getInts("dilations",[1,1]),_=i.getInt("group",1),y=i.getInts("kernel_shape",[]),T=i.getInts("output_padding",[0,0]),w=i.getInts("output_shape",[]),S=i.getInts("pads",[0,0,0,0]),O=i.getInts("strides",[1,1]);return(0,u.createAttributeWithCacheKey)(Object.assign({autoPad:g,dilations:m,group:_,kernelShape:y,outputPadding:T,outputShape:w,pads:S,strides:O},d))};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 d=r[1].dims[1]*i.group;if(r.length===3&&(r[2].dims.length!==1||r[2].dims[0]!==d))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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseConvAttributes=n.conv=n.calculateOutputShape=void 0;const u=a(246),c=a(2517),f=a(4770),s=a(1386),h=a(9828),p=a(2823),l=a(3248),o=a(5623);n.calculateOutputShape=(g,m,_,y,T)=>{const w=g[0],S=g.slice(2),O=S.length,E=m[0],v=m.slice(2).map((L,V)=>L+(L-1)*(_[V]-1)),P=S.map((L,V)=>L+y[V]+y[V+O]).map((L,V)=>Math.floor((L-v[V]+T[V])/T[V]));return[w,E].concat(...P)},n.conv=(g,m,_)=>(d(m,_),t(g,m,_));const t=(g,m,_)=>{const y=i(_,m),T=g.session.pack,w=y.kernelShape[0]===1&&y.kernelShape[1]===1;return y.group>1?[g.run((0,f.createUnpackedGroupedConvProgramInfoLoader)(g,m,y),m)]:w&&T?[e(g,m,y)]:T&&m[0].dims.length===4&&m[0].dims[0]===1&&!w?[(0,s.conv2DPacked)(g,m,y)]:[r(g,m,y)]},e=(g,m,_)=>{const y=m[0].dims,T=m[1].dims,w=(0,n.calculateOutputShape)(y,T,_.dilations,_.pads,_.strides),S=g.reshapeUnpacked(m[0],[y[1],y[2]*y[3]]),O=g.reshapeUnpacked(m[1],[T[0],T[1]]),E=m.length>2?[O,S,m[2]]:[O,S],v=g.run((0,o.createMatmulProgramInfoLoader)(E,_),E);return g.reshapeUnpacked(v,w)},r=(g,m,_)=>{const y=m[0].dims,T=m[1].dims,w=(0,n.calculateOutputShape)(y,T,_.dilations,_.pads,_.strides),S=g.run((0,l.createIm2ColProgramInfoLoader)(g,m[0],m[1],w,_),[m[0]]),O=m.length===3?[S,m[1],m[2]]:[S,m[1]];return g.run((0,h.createDotProductProgramInfoLoader)(g,m,w,_),O)},i=(g,m)=>{const _=g.kernelShape.slice();if(g.kernelShape.length===0)for(let w=2;w<m[1].dims.length;++w)_.push(m[1].dims[w]);const y=g.pads.slice();c.PoolConvUtil.adjustPadsBasedOnAutoPad(m[0].dims,g.strides,g.dilations,_,y,g.autoPad);const T=Object.assign({},g);return Object.assign(T,{kernelShape:_,pads:y,cacheKey:g.cacheKey}),T};n.parseConvAttributes=g=>{const m=g.attributes,_=(0,p.parseInternalActivationAttributes)(m),y=m.getString("auto_pad","NOTSET"),T=m.getInts("dilations",[1,1]),w=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,u.createAttributeWithCacheKey)(Object.assign({autoPad:y,dilations:T,group:w,kernelShape:S,pads:O,strides:E},_))};const d=(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 _=g[0].dims.length-2;if(m.dilations.length!==_)throw new Error(`dilations should be ${_}D`);if(m.strides.length!==_)throw new Error(`strides should be ${_}D`);if(m.pads.length!==2*_)throw new Error(`pads should be ${2*_}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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseDepthToSpaceAttributes=n.depthToSpace=void 0;const u=a(3738);n.depthToSpace=(f,s,h)=>{c(s);const p=h.blocksize,l=p*p,o=h.mode==="DCR"?[0,3,4,1,5,2]:[0,1,4,2,5,3],t=h.mode==="DCR"?[s[0].dims[0],p,p,s[0].dims[1]/l,s[0].dims[2],s[0].dims[3]]:[s[0].dims[0],s[0].dims[1]/l,p,p,s[0].dims[2],s[0].dims[3]],e=f.reshapeUnpacked(s[0],t),r={perm:o,cacheKey:`${o}`},[i]=(0,u.transpose)(f,[e],r),d=[s[0].dims[0],s[0].dims[1]/l,s[0].dims[2]*p,s[0].dims[3]*p];return[f.reshapeUnpacked(i,d)]},n.parseDepthToSpaceAttributes=f=>{const s=f.attributes.getInt("blocksize");if(s<1)throw new Error(`blocksize must be >= 1, but got : ${s} for DepthToSpace`);const h=f.attributes.getString("mode","DCR");if(h!=="DCR"&&h!=="CRD")throw new Error(`unrecognized mode: ${h} for DepthToSpace`);return{mode:h,blocksize:s}};const c=f=>{if(f.length!==1)throw new Error(`DepthToSpace expect 1 inputs, but got ${f.length}`);if(f[0].type==="string"||f[0].dims.length!==4)throw new TypeError("DepthToSpace input should be a 4-D numeric tensor")}},9828:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createDotProductProgramInfoLoader=void 0;const u=a(2517),c=a(5060),f=a(2039),s=a(2823),h=a(3248);n.createDotProductProgramInfoLoader=(p,l,o,t)=>{const e=((r,i)=>({name:"ConvDotProduct",inputNames:r?["Im2Col","K","B"]:["Im2Col","K"],inputTypes:r?[f.TextureType.unpacked,f.TextureType.packedLastDimension,f.TextureType.unpacked]:[f.TextureType.unpacked,f.TextureType.packedLastDimension],cacheKey:i.activationCacheKey}))(l.length>2,t);return Object.assign(Object.assign({},e),{get:()=>((r,i,d,g,m)=>{const _=d[0].dims,y=d[1].dims,T=[y[0],Math.ceil(_[1]*y[2]*y[3]/4)],w=(0,h.calculateIm2ColDims)(_,y,g),[S,O]=r.calculateTextureWidthAndHeight(T,f.TextureType.packedLastDimension),E=u.ShapeUtil.computeStrides(w),[v,P]=r.calculateTextureWidthAndHeight(w,f.TextureType.packedLastDimension),L=g.length,V=d.length<3?"0.0":"_B(b)",R=Math.ceil(_[1]*y[2]*y[3]/4),{activationFunction:k,applyActivation:Y}=(0,s.getActivationSnippet)(m),C=(0,c.getGlsl)(r.session.backend.glContext.version),$=`
${k}
float process(int indices[${L}]) {
  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] * ${T[1]};
  float value = ${V};
  for (int i = 0; i < ${R}; ++i) {
    vec2 im2colCoords = offsetToCoords(im2colOffset, ${v}, ${P});
    vec2 kernelCoords = offsetToCoords(kernelOffset, ${S}, ${O});
    value += dot(${C.texture2D}(Im2Col, im2colCoords), ${C.texture2D}(K, kernelCoords));
    ++im2colOffset;
    ++kernelOffset;
  }
  ${Y}
  return value;
}`;return Object.assign(Object.assign({},i),{output:{dims:g,type:d[0].type,textureType:f.TextureType.unpacked},shaderSource:$})})(p,e,l,o,t)})}},7992:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseFlattenAttributes=n.flatten=void 0;const u=a(2517);n.flatten=(f,s,h)=>{c(s,h);const p=u.ShapeUtil.flattenShape(s[0].dims,h);return[f.reshapeUnpacked(s[0],p)]},n.parseFlattenAttributes=f=>f.attributes.getInt("axis",1);const c=(f,s)=>{if(!f||f.length!==1)throw new Error("Flatten requires 1 input.");const h=f[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(f[0].type==="string")throw new Error("string tensor is not supported.")}},2823:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseInternalActivationAttributes=n.getActivationSnippet=void 0;const u=a(2517),c=a(4909);n.getActivationSnippet=function(f){let s;switch(f.activation){case"Relu":s=(0,c.glslRelu)();break;case"Sigmoid":s=(0,c.glslSigmoid)();break;case"Clip":s=(0,c.glslClip)(f.clipMin,f.clipMax);break;default:return{activationFunction:"",applyActivation:""}}const h=s.name;return{activationFunction:s.body,applyActivation:`value = ${h}_(value);`}},n.parseInternalActivationAttributes=f=>{const s=f.getString("activation","");if(s==="Clip"){const[h,p]=f.getFloats("activation_params",[u.MIN_CLIP,u.MAX_CLIP]);return{activation:s,clipMax:p,clipMin:h,activationCacheKey:`${s}:${h},${p}`}}return{activation:s,activationCacheKey:s}}},1253:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseGatherAttributes=n.gather=void 0;const u=a(246),c=a(782),f=a(2517),s=a(2039);n.gather=(o,t,e)=>(l(t,e.axis),[o.run(p(o,t,e),t)]),n.parseGatherAttributes=o=>(0,u.createAttributeWithCacheKey)({axis:o.attributes.getInt("axis",0)});const h={name:"Gather",inputNames:["A","B"],inputTypes:[s.TextureType.unpacked,s.TextureType.unpacked]},p=(o,t,e)=>{const r=Object.assign(Object.assign({},h),{cacheHint:e.cacheKey});return Object.assign(Object.assign({},r),{get:()=>((i,d,g,m)=>{const _=g[0].dims.slice(),y=g[1].dims.slice(),T=new Array(_.length+y.length-1);m=f.ShapeUtil.normalizeAxis(m,_.length);const w=[];for(let O=0;O<T.length;O++)O<m?(T[O]=_[O],w.push(`inputIdx[${O}] = outputIdx[${O}];`)):O<m+y.length?(T[O]=y[O-m],w.push(`indexDataIdx[${O-m}] = outputIdx[${O}];`)):(T[O]=_[O-y.length+1],w.push(`inputIdx[${O-y.length+1}] = outputIdx[${O}];`));const S=`
      float process(int outputIdx[${T.length||1}]) {
        int inputIdx[${_.length}];
        int indexDataIdx[${y.length||1}];
        indexDataIdx[0] = 0;
        ${w.join(`
        `)}
        int idx = int(_B(indexDataIdx));
        inputIdx[${m}] = idx < 0 ? idx + ${_[m]} : idx;
        return _A(inputIdx);
      }`;return Object.assign(Object.assign({},d),{output:{dims:T,type:g[0].type,textureType:s.TextureType.unpacked},shaderSource:S})})(0,r,t,e.axis)})},l=(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(c.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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseGemmAttributesV11=n.parseGemmAttributesV7=n.gemm=void 0;const u=a(246),c=a(2517),f=a(2039);n.gemm=(o,t,e)=>(l(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),d=o.attributes.getFloat("beta",1);return(0,u.createAttributeWithCacheKey)({transA:e,transB:r,alpha:i,beta:d,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?[f.TextureType.unpacked,f.TextureType.unpacked,f.TextureType.unpacked]:[f.TextureType.unpacked,f.TextureType.unpacked],key:t.cacheKey};return Object.assign(Object.assign({},e),{get:()=>p(e,o,t)})},p=(o,t,e)=>{const r=t[0].dims.slice(),i=t[1].dims.slice(),[d,g]=c.GemmUtil.getShapeOfGemmResult(r,e.transA,i,e.transB,t.length===3?t[2].dims:void 0),m=[d,g];if(!m)throw new Error("Can't use gemm on the given tensors");let _=r[r.length-1],y="";e.transA&&(_=r[0]),e.transA&&e.transB?y="value += _A_T(a) * _B_T(b);":e.transA&&!e.transB?y="value += _A_T(a) * _B(b);":!e.transA&&e.transB?y="value += _A(a) * _B_T(b);":e.transA||e.transB||(y="value += _A(a) * _B(b);");const T=m.length,w=`
      float process(int indices[${T}]) {
          int a[${T}];
          int b[${T}];
          ${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<${_}; ++k) {
              a[${T-1}] = k;
              b[${T-2}] = k;
              ${y}
          }

          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:f.TextureType.unpacked},variables:[{name:"alpha",type:"float",data:e.alpha},{name:"beta",type:"float",data:e.beta}],shaderSource:w})},l=(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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createPackedIm2ColProgramInfoLoader=void 0;const u=a(5060),c=a(2039),f=a(2827);n.createPackedIm2ColProgramInfoLoader=(s,h,p,l,o)=>{const t=(e=o.cacheKey,{name:"Im2Col (packed)",inputNames:["A"],inputTypes:[c.TextureType.packed],cacheHint:e});var e;return Object.assign(Object.assign({},t),{get:()=>((r,i,d,g,m,_)=>{const y=d.dims,T=g.dims,w=m.length,S=[T[1]*T[2]*T[3],m[2]*m[3]],O=T[2]*T[3],E=(0,f.unpackFromChannel)(),v=(0,u.getGlsl)(r.session.backend.glContext.version);let P="";for(let V=0;V<=1;V++)for(let R=0;R<=1;R++)P+=`
            blockIndex = rc.x + ${R};
            pos = rc.y + ${V};

            if(blockIndex < ${S[1]} && pos < ${S[0]}) {
              offsetY = int(blockIndex / (${m[w-1]})) * ${_.strides[0]} -
                ${_.pads[0]};
              d0 = offsetY + ${_.dilations[0]} * (imod(pos, ${O}) / ${T[2]});

              if(d0 < ${y[2]} && d0 >= 0) {
                offsetX = imod(blockIndex, ${m[w-1]}) * ${_.strides[1]} -
                  ${_.pads[1]};
                d1 = offsetX + ${_.dilations[1]} * imod(imod(pos, ${O}), ${T[2]});

                if(d1 < ${y[3]} && d1 >= 0) {

                  ch = int(float(pos)/ ${O}.);
                    innerDims = vec2(d0, d1);
                    result[${2*V+R}] = getChannel(
                      getA(0, ch, int(innerDims.x),
                      int(innerDims.y)), innerDims);
                }
              }
            }

          `;const L=`
      ${E}

      void main() {
        ivec2 rc = getOutputCoords();
          vec4 result = vec4(0.0);
          int blockIndex, pos, offsetY, d0, offsetX, d1, ch;
          vec2 innerDims;
          ${P}
          ${v.output} = result;
      }
            `;return Object.assign(Object.assign({},i),{output:{dims:S,type:d.type,textureType:c.TextureType.packed},shaderSource:L,hasMain:!0})})(s,t,h,p,l,o)})}},3248:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.calculateIm2ColDims=n.createIm2ColProgramInfoLoader=void 0;const u=a(2039);n.createIm2ColProgramInfoLoader=(c,f,s,h,p)=>{const l=(o=p.cacheKey,{name:"Im2Col",inputNames:["X"],inputTypes:[u.TextureType.unpacked],cacheHint:o});var o;return Object.assign(Object.assign({},l),{get:()=>((t,e,r,i,d,g)=>{const m=r.dims,_=i.dims,y=d.length,T=(0,n.calculateIm2ColDims)(m,_,d,4),w=`
        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[${y}]) {
          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:T,type:r.type,textureType:u.TextureType.packedLastDimension},shaderSource:w})})(0,l,f,s,h,p)})},n.calculateIm2ColDims=(c,f,s,h=4)=>[s[0],s[2],s[3],Math.ceil(c[1]*f[2]*f[3]/h)]},6572:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseImageScalerAttributes=n.imageScaler=void 0;const u=a(246),c=a(2039);n.imageScaler=(l,o,t)=>(p(o),[l.run(s(l,o,t),o)]),n.parseImageScalerAttributes=l=>{const o=l.attributes.getFloat("scale"),t=l.attributes.getFloats("bias");return(0,u.createAttributeWithCacheKey)({scale:o,bias:t})};const f={name:"ImageScaler",inputNames:["X"],inputTypes:[c.TextureType.unpacked]},s=(l,o,t)=>{const e=Object.assign(Object.assign({},f),{cacheHint:t.cacheKey});return Object.assign(Object.assign({},e),{get:()=>((r,i,d,g)=>{const m=d[0].dims.slice(),_=m.length,y=`
      ${h(g.bias.length)}
      float process(int indices[${_}]) {
        return _X(indices) * scale + getBias(bias, indices[1]);
      }`;return Object.assign(Object.assign({},i),{output:{dims:m,type:d[0].type,textureType:c.TextureType.unpacked},variables:[{name:"bias",type:"float",arrayLength:g.bias.length,data:g.bias},{name:"scale",type:"float",data:g.scale}],shaderSource:y})})(0,e,o,t)})},h=l=>{const o=[`float getBias(float bias[${l}], int channel) {`];for(let t=0;t<l;++t)t===0?o.push(`	if (channel == ${t}) { return bias[${t}]; }`):t===l-1?o.push(`	else { return bias[${t}]; }`):o.push(`	else if (channel == ${t}) { return bias[${t}]; }`);return o.push("	}"),o.join(`
`)},p=l=>{if(!l||l.length!==1)throw new Error("ImageScaler requires 1 input.");if(l[0].dims.length!==4)throw new Error("Invalid input shape.");if(l[0].type!=="float32"&&l[0].type!=="float64")throw new Error("Invalid input type.")}},3346:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseInstanceNormalizationAttributes=n.instanceNormalization=void 0;const u=a(5060),c=a(2039);n.instanceNormalization=(o,t,e)=>{l(t);const r=o.run(s(t[0]),t);return[o.run(p(o,t[0],e,r.dims),[t[0],r,t[1],t[2]])]},n.parseInstanceNormalizationAttributes=o=>o.attributes.getFloat("epsilon",1e-5);const f={name:"InstanceNormalization_MeanAndVariance",inputNames:["X"],inputTypes:[c.TextureType.unpacked]},s=o=>Object.assign(Object.assign({},f),{get:()=>((t,e)=>{const r=e.dims.slice(),i=r[1],d=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(${d});
        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(${d});

        return v;
      }`;return Object.assign(Object.assign({},t),{output:{dims:g,type:e.type,textureType:c.TextureType.packedLastDimension},shaderSource:m})})(f,o)}),h={name:"InstanceNormalization_ComputeOutput",inputNames:["X","MeanAndVariance","Scale","B"],inputTypes:[c.TextureType.unpacked,c.TextureType.packedLastDimension,c.TextureType.unpacked,c.TextureType.unpacked]},p=(o,t,e,r)=>{const i=Object.assign(Object.assign({},h),{cacheHint:`${e}`});return Object.assign(Object.assign({},i),{get:()=>((d,g,m,_,y)=>{const T=(0,u.getGlsl)(d.session.backend.glContext.version),[w,S]=d.calculateTextureWidthAndHeight(y,c.TextureType.packedLastDimension),[O,E]=[w/4,S],v=`
      vec4 get_MeanAndVariance(int[2] mv) {
        int offset = indicesToOffset_MeanAndVariance(mv);
        vec2 coords = offsetToCoords(offset, ${O}, ${E});
        return ${T.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:c.TextureType.unpacked},variables:[{name:"epsilon",type:"float",data:_}],shaderSource:v})})(o,i,t,e,r)})},l=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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createPackedMatmulProgramInfoLoader=void 0;const u=a(2517),c=a(5060),f=a(2039),s=a(9390),h=a(2823),p=a(5623);n.createPackedMatmulProgramInfoLoader=(l,o,t)=>{const e=(r=o.length>2,i=t.activationCacheKey,{name:"MatMul (packed)",inputNames:r?["A","B","Bias"]:["A","B"],inputTypes:r?[f.TextureType.packed,f.TextureType.packed,f.TextureType.packed]:[f.TextureType.packed,f.TextureType.packed],cacheHint:i});var r,i;return Object.assign(Object.assign({},e),{get:()=>((d,g,m,_)=>{const y=m.length>2,T=y?"value += getBiasForMatmul();":"",w=m[0].dims,S=m[1].dims,O=u.BroadcastUtil.calcShape(w,S,!0),E=!u.ShapeUtil.areEqual(m[0].dims,m[1].dims);if(!O)throw new Error("Can't use matmul on the given tensors");const v=w[w.length-1],P=Math.ceil(v/2),L=w.length,V=S.length,R=(0,c.getGlsl)(d.session.backend.glContext.version),k=(0,s.getCoordsDataType)(O.length),Y=O.length,C=(0,s.getGlChannels)(),{activationFunction:$,applyActivation:X}=(0,h.getActivationSnippet)(_),z=y?`${(0,p.getBiasForMatmul)(k,C,m[2].dims,O,!0)}`:"",Z=E?`${function(Te,se,ye,be){let Ie=[],Le=[];const ve=ye[0].dims,Ne=ye[1].dims,Fe=ve.length,Me=Ne.length,Oe=be.length,Be=Oe-Fe,Ue=Oe-Me;Ie=ve.map((Ae,Re)=>`coords.${se[Re+Be]}`),Ie[Fe-1]="i*2",Ie.join(", "),Le=Ne.map((Ae,Re)=>`coords.${se[Re+Ue]}`),Le[Me-2]="i*2",Le.join(", ");const ze=u.BroadcastUtil.getBroadcastDims(ve,be),He=u.BroadcastUtil.getBroadcastDims(Ne,be),Ke=ze.map(Ae=>`coords.${se[Ae+Be]} = 0;`).join(`
`),Ge=He.map(Ae=>`coords.${se[Ae+Ue]} = 0;`).join(`
`),Ve=`int lastDim = coords.${se[Oe-1]};
  coords.${se[Oe-1]} = coords.${se[Oe-2]};
  coords.${se[Oe-2]} = lastDim;`;return`
vec4 getAAtOutCoordsMatmul(int i) {
  ${Te} coords = getOutputCoords();
  ${Ve}
  ${Ke}
  vec4 outputValue = getA(${Ie});
  return outputValue;
}

vec4 getBAtOutCoordsMatmul(int i) {
  ${Te} coords = getOutputCoords();
  ${Ve}
  ${Ge}
  vec4 outputValue = getB(${Le});
  return outputValue;
}`}(k,C,m,O)}`:"",J=E?"getAAtOutCoordsMatmul(i)":`getA(${function(Te,se){let ye="";for(let be=0;be<se-2;be++)ye+=`rc.${Te[be]}, `;return ye+=`rc.${Te[se-2]}, i*2`,ye}(C,L)})`,ue=E?"getBAtOutCoordsMatmul(i)":`getB(${function(Te,se){let ye="";for(let be=0;be<se-2;be++)ye+=`rc.${Te[be]}, `;return ye+=`i*2, rc.${Te[se-1]}`,ye}(C,V)})`,Se=`
            ${Z}
            ${z}
            ${$}
            void main() {
              ${E?"":`${k} rc =
          getOutputCoords(); int lastDim = rc.${C[Y-1]}; rc.${C[Y-1]} =
          rc.${C[Y-2]}; rc.${C[Y-2]} = lastDim;
      `}

              vec4 value = vec4(0);
              for (int i = 0; i < ${P}; i++) {
                vec4 a = ${J};
                vec4 b = ${ue};

                value += (a.rrbb * b.rgrg);
                value += (a.ggaa * b.baba);
              }
              ${T}
              ${X}
              ${R.output} = value;
            }`;return Object.assign(Object.assign({},g),{output:{dims:O,type:m[0].type,textureType:f.TextureType.packed},shaderSource:Se,hasMain:!0})})(l,e,o,t)})}},5623:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.getBiasForMatmul=n.createMatmulProgramInfoLoader=n.parseMatMulAttributes=n.matMul=void 0;const u=a(2517),c=a(2039),f=a(9390),s=a(2823),h=a(708);function p(t,e){const r=(i=t.length>2,d=e.activationCacheKey,{name:"MatMul",inputNames:i?["A","B","Bias"]:["A","B"],inputTypes:i?[c.TextureType.unpacked,c.TextureType.unpacked,c.TextureType.unpacked]:[c.TextureType.unpacked,c.TextureType.unpacked],cacheHint:d});var i,d;return Object.assign(Object.assign({},r),{get:()=>function(g,m,_){const y=m[0].dims,T=m[1].dims,w=u.BroadcastUtil.calcShape(y,T,!0);if(!w)throw new Error("Can't use matmul on the given tensors");const S=(0,f.getCoordsDataType)(w.length),O=(0,f.getGlChannels)(),{activationFunction:E,applyActivation:v}=(0,s.getActivationSnippet)(_),P=m.length>2,L=P?"value += getBiasForMatmul();":"",V=P?`${o(S,O,m[2].dims,w,!1)}`:"",R=w.length,k=y.length,Y=T.length,C=`
    ${E}
    ${V}
    float process(int indices[${R}]) {
        int a[${k}];
        int b[${Y}];
        bcastMatmulIndices_A(indices, a);
        bcastMatmulIndices_B(indices, b);

        float value;
        for (int k=0; k<${y[y.length-1]}; ++k) {
            a[${k-1}] = k;
            b[${Y-2}] = k;
            value += _A(a) * _B(b);
        }
        ${L}
        ${v}
        return value;
    }`;return Object.assign(Object.assign({},g),{output:{dims:w,type:m[0].type,textureType:c.TextureType.unpacked},shaderSource:C})}(r,t,e)})}n.matMul=(t,e,r)=>(l(e),t.session.pack?[t.run((0,h.createPackedMatmulProgramInfoLoader)(t,e,r),e)]:[t.run(p(e,r),e)]),n.parseMatMulAttributes=t=>(0,s.parseInternalActivationAttributes)(t.attributes),n.createMatmulProgramInfoLoader=p;const l=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,d){let g="";const m=r.length,_=i.length,y=_-m;g=_<2&&m>0?"coords":r.map((S,O)=>`coords.${e[O+y]}`).join(", ");const T=u.BroadcastUtil.getBroadcastDims(r,i).map(S=>`coords.${e[S+y]} = 0;`).join(`
`);let w="vec4(outputValue.xx, outputValue.yy)";return u.ShapeUtil.size(r)===1&&(w="vec4(outputValue.x)"),d?`
vec4 getBiasForMatmul() {
  ${t} coords = getOutputCoords();
  ${T}
  vec4 outputValue = getBias(${g});
  return ${w};
}`:`
float getBiasForMatmul() {
  ${t} coords = getOutputCoords();
  ${T}
  return getBias(coords.x);
}`}n.getBiasForMatmul=o},2403:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createPackProgramInfoLoader=void 0;const u=a(5060),c=a(2039),f=a(9390),s=a(2827),h={name:"pack",inputNames:["A"],inputTypes:[c.TextureType.unpackedReversed]};n.createPackProgramInfoLoader=(p,l)=>Object.assign(Object.assign({},h),{get:()=>((o,t)=>{const e=(0,u.getGlsl)(o.session.backend.glContext.version),r=t.dims,i=r.length,d=t.dims.length,g=(0,f.getCoordsDataType)(d),m=(0,s.getChannels)("rc",d),_=(y=d,T=m,w=r[r.length-2],S=r[r.length-1],y===0||y===1?"":`
    int r = ${T[y-2]};
    int c = ${T[y-1]};
    int rp1 = ${T[y-2]} + 1;
    int cp1 = ${T[y-1]} + 1;
    bool rEdge = rp1 >= ${S};
    bool cEdge = cp1 >= ${w};
    `);var y,T,w,S;let O;O=i===0?[1,1]:i===1?[r[0],1]:[r[d-1],r[d-2]];const E=function(L,V,R){if(L===0)return"false";if(L===1)return`rc > ${V[0]}`;let k="";for(let Y=L-2;Y<L;Y++)k+=`${R[Y]} >= ${V[Y-L+2]}`,Y<L-1&&(k+="||");return k}(d,O,m),v=function(L,V){const R=L.length;if(R===0)return"getA(), 0, 0, 0";if(R===1)return`getA(rc),
            rc + 1 >= ${L[0]} ? 0. : getA(rc + 1),
            0, 0`;let k="";if(R>2)for(let Y=0;Y<R-2;++Y)k+=`${V[Y]},`;return`getA(${k}r, c),
          rEdge ? 0. : getA(${k}rp1, c),
          cEdge ? 0. : getA(${k}r, cp1),
          rEdge || cEdge ? 0. : getA(${k}rp1, cp1)`}(r,m),P=`
        void main() {
          ${g} rc = getOutputCoords();

          if(${E}) {
            ${e.output} = vec4(0);
          } else {
            ${_}

            ${e.output} = vec4(${v});
          }
        }
      `;return Object.assign(Object.assign({},h),{hasMain:!0,output:{dims:t.dims,type:t.type,textureType:c.TextureType.packed},shaderSource:P})})(p,l)})},2827:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.unpackFromChannel=n.getChannels=n.getVecChannels=void 0;const u=a(9390);function c(f,s){return(0,u.getGlChannels)(s).map(h=>`${f}.${h}`)}n.getVecChannels=c,n.getChannels=function(f,s){return s===1?[f]:c(f,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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parsePadAttributesV11=n.padV11=n.parsePadAttributesV2=n.padV2=void 0;const u=a(246),c=a(2517),f=a(5060),s=a(2039),h={name:"Pad",inputNames:["A"],inputTypes:[s.TextureType.unpacked]};n.padV2=(g,m,_)=>(o(m),[g.run(Object.assign(Object.assign({},h),{cacheHint:_.cacheKey,get:()=>l(g,m[0],_)}),m)]),n.parsePadAttributesV2=g=>{const m=g.attributes.getString("mode","constant"),_=g.attributes.getFloat("value",0),y=g.attributes.getInts("pads");return(0,u.createAttributeWithCacheKey)({mode:m,value:_,pads:y})},n.padV11=(g,m,_)=>{t(m);const y=p(g,m,_);return(0,n.padV2)(g,[m[0]],y)},n.parsePadAttributesV11=g=>g.attributes.getString("mode","constant");const p=(g,m,_)=>{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 y=Array.from(m[1].integerData),T=m.length>=3?m[2].floatData[0]:0;return(0,u.createAttributeWithCacheKey)({mode:_,pads:y,value:T})},l=(g,m,_)=>{const y=c.ShapeUtil.padShape(m.dims.slice(),_.pads),T=y.length,w=`
      ${e(g,m,_)}
      float process(int[${T}] indices) {
          return padA(indices);
      }`;return{name:"Pad",inputNames:["A"],inputTypes:[s.TextureType.unpacked],output:{dims:y,type:m.type,textureType:s.TextureType.unpacked},shaderSource:w}},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,_)=>{const y=(0,f.getGlsl)(g.session.backend.glContext.version),[T,w]=g.calculateTextureWidthAndHeight(m.dims,s.TextureType.unpacked),S=c.ShapeUtil.computeStrides(m.dims);switch(_.mode){case"constant":return r(y,m.dims,S,T,w,_.pads,_.value);case"reflect":return i(y,m.dims,S,T,w,_.pads);case"edge":return d(y,m.dims,S,T,w,_.pads);default:throw new Error("Invalid mode")}},r=(g,m,_,y,T,w,S)=>{const O=m.length;let E="";for(let v=O-1;v>=0;--v)E+=`
        k = m[${v}] - ${w[v]};
        if (k < 0)  return constant;
        if (k >= ${m[v]}) return constant;
        offset += k * ${_[v]};
        `;return`
      float padA(int m[${O}]) {
        const float constant = float(${S});
        int offset = 0;
        int k = 0;
        ${E}
        vec2 coords = offsetToCoords(offset, ${y}, ${T});
        float value = getColorAsFloat(${g.texture2D}(A, coords));
        return value;
      }
      `},i=(g,m,_,y,T,w)=>{const S=m.length;let O="";for(let E=S-1;E>=0;--E)O+=`
        k = m[${E}] - ${w[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 * ${_[E]};
        `;return`
      float padA(int m[${S}]) {
        int offset = 0;
        int k = 0;
        ${O}
        vec2 coords = offsetToCoords(offset, ${y}, ${T});
        float value = getColorAsFloat(${g.texture2D}(A, coords));
        return value;
      }
      `},d=(g,m,_,y,T,w)=>{const S=m.length;let O="";for(let E=S-1;E>=0;--E)O+=`
        k = m[${E}] - ${w[E]};
        if (k < 0)  k = 0;
        if (k >= ${m[E]}) k = ${m[E]-1};
        offset += k * ${_[E]};
      `;return`
      float padA(int m[${S}]) {
        int offset = 0;
        int k = 0;
        ${O}
        vec2 coords = offsetToCoords(offset, ${y}, ${T});
        float value = getColorAsFloat(${g.texture2D}(A, coords));
        return value;
      }
      `}},2143:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.globalMaxPool=n.parseMaxPoolAttributes=n.maxPool=n.parseGlobalAveragePoolAttributes=n.globalAveragePool=n.parseAveragePoolAttributes=n.averagePool=void 0;const u=a(246),c=a(2517),f=a(2039);n.averagePool=(d,g,m)=>{t(g);const _={name:"AveragePool",inputNames:["X"],inputTypes:[f.TextureType.unpacked],cacheHint:m.cacheKey};return[d.run(Object.assign(Object.assign({},_),{get:()=>s(g,_,!1,m)}),g)]},n.parseAveragePoolAttributes=d=>{const g=d.attributes.getString("auto_pad","NOTSET"),m=d.attributes.getInt("ceil_mode",0),_=d.attributes.getInt("count_include_pad",0)!==0,y=d.attributes.getInts("kernel_shape"),T=d.attributes.getInts("strides",[]),w=d.attributes.getInts("pads",[]);if(m!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");return(0,u.createAttributeWithCacheKey)({autoPad:g,ceilMode:m,countIncludePad:_,kernelShape:y,strides:T,pads:w})};const s=(d,g,m,_)=>{const[y,T]=p(d,_,m),w=c.ShapeUtil.size(y.kernelShape);let S="";y.countIncludePad?S+=`value /= float(${w});`:S+=`value /= float(${w} - pad);`;const O=`
        ${e(d[0].dims,y,"value += _X(x);",S,"0.0")}
      `;return Object.assign(Object.assign({},g),{output:{dims:T,type:d[0].type,textureType:f.TextureType.unpacked},shaderSource:O})};n.globalAveragePool=(d,g,m)=>{t(g);const _={name:"GlobalAveragePool",inputNames:["X"],inputTypes:[f.TextureType.unpacked],cacheHint:`${m.countIncludePad}`};return[d.run(Object.assign(Object.assign({},_),{get:()=>s(g,_,!0,m)}),g)]},n.parseGlobalAveragePoolAttributes=d=>{const g=d.attributes.getInt("count_include_pad",0)!==0;return(0,u.createAttributeWithCacheKey)({autoPad:"",ceilMode:0,countIncludePad:g,kernelShape:[],strides:[],pads:[]})},n.maxPool=(d,g,m)=>{t(g);const _={name:"MaxPool",inputNames:["X"],inputTypes:[f.TextureType.unpacked],cacheHint:m.cacheKey};return[d.run(Object.assign(Object.assign({},_),{get:()=>h(g,_,!1,m)}),g)]},n.parseMaxPoolAttributes=d=>{const g=d.attributes.getString("auto_pad","NOTSET"),m=d.attributes.getInt("ceil_mode",0),_=d.attributes.getInts("kernel_shape"),y=d.attributes.getInts("strides",[]),T=d.attributes.getInts("pads",[]),w=d.attributes.getInt("storage_order",0),S=d.attributes.getInts("dilations",[]);if(w!==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,u.createAttributeWithCacheKey)({autoPad:g,ceilMode:m,countIncludePad:!1,kernelShape:_,strides:y,pads:T,storageOrder:w,dilations:S})};const h=(d,g,m,_)=>{const[y,T]=p(d,_,m),w=`
      ${e(d[0].dims,y,`
      value = max(_X(x), value);
    `,"","-1e5")}
    `;return Object.assign(Object.assign({},g),{output:{dims:T,type:d[0].type,textureType:f.TextureType.unpacked},shaderSource:w})},p=(d,g,m)=>{const _=d[0].dims.slice(),y=Object.hasOwnProperty.call(g,"dilations"),T=g.kernelShape.slice(),w=g.strides.slice(),S=y?g.dilations.slice():[],O=g.pads.slice();c.PoolConvUtil.adjustPoolAttributes(m,_,T,w,S,O);const E=c.PoolConvUtil.computePoolOutputShape(m,_,w,S,T,O,g.autoPad),v=Object.assign({},g);return y?Object.assign(v,{kernelShape:T,strides:w,pads:O,dilations:S,cacheKey:g.cacheKey}):Object.assign(v,{kernelShape:T,strides:w,pads:O,cacheKey:g.cacheKey}),[v,E]},l={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[],cacheKey:""},o={name:"GlobalMaxPool",inputNames:["X"],inputTypes:[f.TextureType.unpacked]};n.globalMaxPool=(d,g)=>(t(g),[d.run(Object.assign(Object.assign({},o),{get:()=>h(g,o,!0,l)}),g)]);const t=d=>{if(!d||d.length!==1)throw new Error("Pool ops requires 1 input.");if(d[0].type!=="float32"&&d[0].type!=="float64")throw new Error("Invalid input type.")},e=(d,g,m,_,y)=>{const T=d.length;if(g.kernelShape.length<=2){const w=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],v=d[T-1];let P="",L="",V="";if(P=O+E!==0?`
          for (int i = 0; i < ${w}; i++) {
            x[${T} - 1] = indices[${T} - 1] * ${S} - ${O} + i;
            if (x[${T} - 1] < 0 || x[${T} - 1] >= ${v}) {
              pad++;
              continue;
            }
            ${m}
          }`:`
          for (int i = 0; i < ${w}; i++) {
            x[${T} - 1] = indices[${T} - 1] * ${S} - ${O} + i;
            ${m}
          }`,g.kernelShape.length===2){const R=g.kernelShape[g.kernelShape.length-2],k=g.strides[g.strides.length-2],Y=g.pads[g.pads.length/2-2],C=g.pads[g.pads.length-2],$=d[T-2];L=Y+C!==0?`
            for (int j = 0; j < ${R}; j++) {
              x[${T} - 2] = indices[${T} - 2] * ${k} - ${Y} + j;
              if (x[${T} - 2] < 0 || x[${T} - 2] >= ${$}) {
                pad+= ${w};
                continue;
              }
          `:`
            for (int j = 0; j < ${R}; j++) {
              x[${T} - 2] = indices[${T} - 2] * ${k} - ${Y} + j;
            `,V=`
          }
        `}return`
        float process(int indices[${T}]) {
          int x[${T}];
          copyVec(indices, x);

          float value = ${y};
          int pad = 0;
          ${L}
          ${P}
          ${V}
          ${_}
          return value;
        }
      `}{const w=c.ShapeUtil.size(g.kernelShape),S=c.ShapeUtil.computeStrides(g.kernelShape),O=S.length,E=g.pads.length,v=i(O),P=r(d,"inputDims"),L=r(g.pads,"pads"),V=r(S,"kernelStrides"),R=r(g.strides,"strides");let k="";return k=g.pads.reduce((Y,C)=>Y+C)?`
            if (x[j] >= inputDims[j] || x[j] < 0) {
              pad++;
              isPad = true;
              break;
            }
          }
          if (!isPad) {
            ${m}
          }`:`
          }
          ${m}
        `,`
        ${v}
        float process(int indices[${T}]) {
          int x[${T}];
          copyVec(indices, x);
          int offset[${O}];
          int pads[${E}];
          int inputDims[${T}];
          int kernelStrides[${O}];
          int strides[${O}];
          ${L}
          ${P}
          ${R}
          ${V}

          float value = ${y};
          int pad = 0;
          bool isPad = false;
          for (int i = 0; i < ${w}; i++) {
            offsetToIndices(i, kernelStrides, offset);
            isPad = false;
            for (int j = ${T} - ${O}; j < ${T}; j++) {
              x[j] = indices[j] * strides[j - ${T} + ${O}]
                + offset[j - ${T} + ${O}] - pads[j - 2];
              ${k}
          }
          ${_}

          return value;
        }
      `}},r=(d,g)=>{let m="";for(let _=0;_<d.length;_++)m+=`
      ${g}[${_}] = ${d[_]};
    `;return m},i=d=>`
  void offsetToIndices(int offset, int[${d}] strides, out int[${d}] indices) {
    if (${d} == 0) {
      return;
    }
    for (int i = 0; i < ${d} - 1; ++i) {
      indices[i] = offset / strides[i];
      offset -= indices[i] * strides[i];
    }
    indices[${d} - 1] = offset;
  }`},4939:(b,n,a)=>{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 u=a(246),c=a(782),f=a(2517),s=a(2039),h=(o,t,e,r,i)=>{l(t);const d={name:r,inputNames:["A"],inputTypes:[s.TextureType.unpacked]};return[o.run(Object.assign(Object.assign({},d),{cacheHint:e.cacheKey,get:()=>p(o,t,e,r,i,d)}),t)]};n.parseReduceAttributes=o=>{const t=o.attributes.getInts("axes",[]),e=o.attributes.getInt("keepdims",1)===1;return(0,u.createAttributeWithCacheKey)({axes:t,keepDims:e})};const p=(o,t,e,r,i,d)=>{const g=[],m=t[0].dims.length||1,_=[],y=f.ShapeUtil.normalizeAxes(e.axes,t[0].dims.length),T=i(t,y);let w=T[1];for(let O=0;O<t[0].dims.length;O++)y.indexOf(O)>=0||y.length===0?(e.keepDims&&g.push(1),w=`
          for(int j${O} = 0; j${O} < ${t[0].dims[O]}; j${O}++) {
            inputIdx[${O}] = j${O};
            ${w}
          }`):(_.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
        ${_.join(`
`)}
        ${T[0]}       // init ops for reduce max/min
        ${w}
        ${T[2]}       // final computation for reduce mean
        return value;
      }`;return Object.assign(Object.assign({},d),{output:{dims:g,type:t[0].type,textureType:s.TextureType.unpacked},shaderSource:S})},l=o=>{if(!o||o.length!==1)throw new Error("Reduce op requires 1 input.");if(c.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 d=1;for(let g=0;g<r[0].dims.length;g++)(i.indexOf(g)>=0||i.length===0)&&(d*=r[0].dims[g]);return["value = 0.0;","value += _A(inputIdx);",`value /= ${d}.;`]}),n.reduceMax=(o,t,e)=>h(o,t,e,"ReduceMax",(r,i)=>{const d=[];for(let g=0;g<r[0].dims.length;g++)(i.indexOf(g)>=0||i.length===0)&&d.push(`inputIdx[${g}] = 0;`);return[`${d.join(`
`)}
value = _A(inputIdx);`,"value = max(value, _A(inputIdx));",""]}),n.reduceMin=(o,t,e)=>h(o,t,e,"ReduceMin",(r,i)=>{const d=[];for(let g=0;g<r[0].dims.length;g++)(i.indexOf(g)>=0||i.length===0)&&d.push(`inputIdx[${g}] = 0;`);return[`${d.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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.isReshapeCheap=n.processDims3D=n.createPackedReshape3DProgramInfoLoader=void 0;const u=a(2517),c=a(5060),f=a(2039),s=a(2827);n.createPackedReshape3DProgramInfoLoader=(h,p,l)=>{const o=(t=>({name:"Reshape (packed)",inputTypes:[f.TextureType.packed],inputNames:["A"],cacheHint:`${t}`}))(l);return Object.assign(Object.assign({},o),{get:()=>((t,e,r,i)=>{const d=e.dims,g=i;let m="";for(let T=0;T<4;T++){let w="";switch(T){case 0:w="outputCoords = rc;";break;case 1:w="outputCoords = ivec3(rc.x, rc.y+1, rc.z);";break;case 2:w="outputCoords = ivec3(rc.x, rc.y, rc.z+1);";break;case 3:w="outputCoords = ivec3(rc.x, rc.y+1, rc.z+1);";break;default:throw new Error}m+=`
        ${w}
        ${T>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[${T}] = getChannel(getA(inputRC.x, inputRC.y, inputRC.z), innerDims);

        ${T>0?"}":""}
      `}const _=(0,c.getGlsl)(t.session.backend.glContext.version),y=`
      ${function(T){const w=u.ShapeUtil.computeStrides(T),S=["b","r","c"],O="index";return`
    ivec3 inputCoordsFromReshapedOutCoords(int index) {
      ${w.map((E,v)=>`int ${S[v]} = ${O} / ${E}; ${v===w.length-1?`int ${S[v+1]} = ${O} - ${S[v]} * ${E}`:`index -= ${S[v]} * ${E}`};`).join("")}
      return ivec3(b, r, c);
    }
  `}(d)}
      ${function(T){const w=u.ShapeUtil.computeStrides(T);return`
  int getFlattenedIndex(ivec3 coords) {
    // reverse y, z order
    return coords.x * ${w[0]} + coords.z * ${w[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}
        ${_.output} = result;
      }
    `;return Object.assign(Object.assign({},r),{output:{dims:g,type:e.type,textureType:f.TextureType.packed},shaderSource:y,hasMain:!0})})(h,p,o,l)})},n.processDims3D=function(h){if(h.length===0)return[1,1,1];let p=1;for(let l=0;l<h.length-2;++l)p*=h[l];return[p,h.length>1?h[h.length-2]:1,h[h.length-1]]},n.isReshapeCheap=function(h,p){let l=!1;return l=h.length===0||p.length===0||(h.length<2||p.length<2?h[h.length-1]===p[p.length-1]:h[h.length-1]===p[p.length-1]&&h[h.length-2]===p[p.length-2]),l}},718:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.reshape=void 0;const u=a(2517);n.reshape=(c,f)=>{const s=u.ShapeUtil.calculateReshapedDims(f[0].dims,f[1].integerData);return c.session.pack?[c.reshapePacked(f[0],s)]:[c.reshapeUnpacked(f[0],s)]}},2268:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseResizeAttributesV11=n.parseResizeAttributesV10=n.resize=void 0;const u=a(5060),c=a(2039),f=a(9390),s=a(2827),h=a(9793),p={name:"Resize",inputNames:["A"],inputTypes:[c.TextureType.packed]};n.resize=(r,i,d)=>((0,h.validateInputs)(i,d),[r.run(Object.assign(Object.assign({},p),{cacheHint:d.cacheKey,get:()=>l(r,i,d)}),i)]),n.parseResizeAttributesV10=r=>(0,h.parseUpsampleAttributes)(r,10),n.parseResizeAttributesV11=r=>(0,h.parseUpsampleAttributes)(r,11);const l=(r,i,d)=>{const g=(0,u.getGlsl)(r.session.backend.glContext.version),[m,_]=o(i,d);if(m.every(k=>k===1)&&d.coordinateTransformMode!=="tf_crop_and_resize")return Object.assign(Object.assign({},p),{output:{dims:_,type:i[0].type,textureType:c.TextureType.packed},hasMain:!0,shaderSource:`void main() {
                    vec4 v = ${g.texture2D}(X, TexCoords);
                    ${g.output} = v;
                }`});const y=_.length;if(y<2)throw new Error(`output dimension should be at least 2, but got ${y}`);const T=_[y-2],w=_[y-1],S=i[0].dims;if(y!==S.length)throw new Error(`output dimension should match input ${S.length}, but got ${y}`);const O=S[y-2],E=S[y-1],v=m[y-2],P=m[y-1];let L="";if(d.mode!=="linear")throw new Error(`resize (packed) does not support mode: '${d.mode}'`);switch(d.coordinateTransformMode){case"asymmetric":L=`
                    vec4 getSourceFracIndex(ivec4 coords) {
                        return vec4(coords) / scaleWHWH;
                    }
                `;break;case"half_pixel":L=`
                    vec4 getSourceFracIndex(ivec4 coords) {
                        return (vec4(coords) + 0.5) / scaleWHWH - 0.5;
                    }
                `;break;case"pytorch_half_pixel":L=`
                    vec4 getSourceFracIndex(ivec4 coords) {
                        vec4 fcoords = vec4(coords);
                        return vec4(
                            ${w}.0 > 1.0 ? (fcoords.x + 0.5) / scaleWHWH.x - 0.5 : 0.0,
                            ${T}.0 > 1.0 ? (fcoords.y + 0.5) / scaleWHWH.y - 0.5 : 0.0,
                            ${w}.0 > 1.0 ? (fcoords.z + 0.5) / scaleWHWH.z - 0.5 : 0.0,
                            ${T}.0 > 1.0 ? (fcoords.w + 0.5) / scaleWHWH.w - 0.5 : 0.0
                          );
                    }
                `;break;case"align_corners":L=`
                    vec4 getSourceFracIndex(ivec4 coords) {
                        vec4 resized = vec4(${w}.0 - 1.0, ${T}.0 - 1.0, ${w}.0 - 1.0,
                            ${T}.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:                                 '${d.coordinateTransformMode}'`)}const V=(0,f.getCoordsDataType)(y),R=`
            const vec2 inputWH = vec2(${O}.0, ${E}.0);
            const vec4 scaleWHWH = vec4(float(${v}), float(${P}), float(${v}), float(${P}));
            ${(0,s.unpackFromChannel)()}
            ${L}
            float getAValue(int x10, int r, int c, int d) {
                return getChannel(getA(x10, r, c, d), vec2(c, d));
            }
            void main() {
                ${V} 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 < ${T-1};
                bool hasNextCol = rc.z < ${w-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({},p),{output:{dims:_,type:i[0].type,textureType:c.TextureType.packed},hasMain:!0,shaderSource:R})},o=(r,i)=>{const d=r[0].dims;let g,m=i.scales;if(m.length===0){const y=r[i.scalesInputIdx];if(y&&y.size!==0){if(r[i.sizesInputIdx])throw new Error("Only one of scales or sizes must be provided as input.");m=t(y,i.mode,i.isResize)}else{const T=r[i.sizesInputIdx];if(!T||T.size===0)throw new Error("Either scales or sizes MUST be provided as input.");g=Array.from(T.integerData),m=e(g,d,i.mode,i.isResize)}}else if(r[i.sizesInputIdx])throw new Error("Only one of scales or sizes must be provided as input.");const _=g||d.map((y,T)=>Math.floor(y*m[T]));return[m,_]},t=(r,i,d)=>{const g=Array.from(r.floatData);return(0,h.scalesValidation)(g,i,d),g},e=(r,i,d,g)=>{const m=i.length,_=new Array(m);for(let y=0,T=m;y<T;y++)if(i[y]===0){if(r[y]!==0)throw new Error("Input dim is zero but required output dim is non-zero.");_[y]=1}else _[y]=r[y]/i[y];return(0,h.scalesValidation)(_,d,g),_}},8117:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.shape=void 0;const u=a(9162);n.shape=(f,s)=>(c(s),[new u.Tensor([s[0].dims.length],"int32",void 0,void 0,new Int32Array(s[0].dims))]);const c=f=>{if(!f||f.length!==1)throw new Error("Shape requires 1 input.")}},2278:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.sliceV10=n.parseSliceAttributes=n.slice=void 0;const u=a(246),c=a(782),f=a(2517),s=a(2039),h={name:"Slice",inputNames:["A"],inputTypes:[s.TextureType.unpacked]};n.slice=(e,r,i)=>(l(r),[e.run(Object.assign(Object.assign({},h),{cacheHint:i.cacheKey,get:()=>p(e,r[0],i)}),r)]),n.parseSliceAttributes=e=>{const r=e.attributes.getInts("starts"),i=e.attributes.getInts("ends"),d=e.attributes.getInts("axes",[]);return(0,u.createAttributeWithCacheKey)({starts:r,ends:i,axes:d})};const p=(e,r,i)=>{const d=i.axes.length===0?r.dims.slice(0).map((S,O)=>O):i.axes,g=f.ShapeUtil.normalizeAxes(d,r.dims.length),m=i.starts.map((S,O)=>S>r.dims[g[O]]-1?r.dims[g[O]]:f.ShapeUtil.normalizeAxis(S,r.dims[g[O]])),_=i.ends.map((S,O)=>S>r.dims[g[O]]-1?r.dims[g[O]]:f.ShapeUtil.normalizeAxis(S,r.dims[g[O]])),y=r.dims.slice(),T=[];for(let S=0;S<g.length;S++)y[g[S]]=_[S]-m[S],m[S]>0&&T.push(`outputIdx[${g[S]}] += ${m[S]};`);const w=`
      float process(int outputIdx[${y.length}]) {
        ${T.join(`
      `)}
        return _A(outputIdx);
      }`;return Object.assign(Object.assign({},h),{output:{dims:y,type:r.type,textureType:s.TextureType.unpacked},shaderSource:w})},l=e=>{if(!e||e.length!==1)throw new Error("Slice requires 1 input.");if(c.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:()=>p(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),d=Array.from(r[2].integerData),g=r.length>=4?Array.from(r[3].integerData):[];return{starts:i,ends:d,axes:g,cacheKey:`${g};${i};${d}`}},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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.softmaxV13=n.parseSoftmaxAttributesV13=n.parseSoftmaxAttributes=n.softmax=void 0;const u=a(246),c=a(2517),f=a(5060),s=a(2039),h=a(3738),p={name:"SoftmaxComputeMax",inputNames:["A"],inputTypes:[s.TextureType.unpacked]},l={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,_)=>{d(m);const y=m[0].dims.slice(),T=c.ShapeUtil.normalizeAxis(_.axis,y.length),w=c.ShapeUtil.sizeToDimension(y,T),S=c.ShapeUtil.sizeFromDimension(y,T);return t(g,m,_,w,S)},n.parseSoftmaxAttributes=g=>(0,u.createAttributeWithCacheKey)({axis:g.attributes.getInt("axis",1)}),n.parseSoftmaxAttributesV13=g=>(0,u.createAttributeWithCacheKey)({axis:g.attributes.getInt("axis",-1)}),n.softmaxV13=(g,m,_)=>{d(m);const y=m[0].dims.slice(),T=c.ShapeUtil.normalizeAxis(_.axis,y.length),w=y.length,S=T!==w-1,O=[];let E,v=[],P=[];S&&(v=Array.from({length:w}).map((k,Y)=>Y),v[T]=w-1,v[w-1]=T,v.map(k=>O.push(y[k])),E=(0,u.createAttributeWithCacheKey)({perm:v}),P=(0,h.transpose)(g,m,E));const L=S?c.ShapeUtil.sizeToDimension(O,w-1):c.ShapeUtil.sizeToDimension(y,w-1),V=S?c.ShapeUtil.sizeFromDimension(O,w-1):c.ShapeUtil.sizeFromDimension(y,w-1),R=t(g,S?P:m,_,L,V);return S?(0,h.transpose)(g,R,E):R};const t=(g,m,_,y,T)=>{const w=e(g,m[0],y,T,[y]),S=g.run(Object.assign(Object.assign({},p),{cacheHint:_.cacheKey,get:()=>w}),m),O=r(g,m[0],y,T,w.output.dims,[y]),E=g.run(Object.assign(Object.assign({},l),{cacheHint:_.cacheKey,get:()=>O}),[m[0],S]),v=i(g,m[0],y,T,w.output.dims,O.output.dims);return[g.run(Object.assign(Object.assign({},o),{cacheHint:_.cacheKey,get:()=>v}),[m[0],S,E])]},e=(g,m,_,y,T)=>{const[w,S]=g.calculateTextureWidthAndHeight(m.dims,s.TextureType.unpacked),O=T.length;if(_<1||y<1)throw new Error("Logical row count N and feature count D must be greater than or equal to 1");if(T.length!==1)throw new Error("Dimensionality of the output should be 1");if(T[0]!==_)throw new Error("Shape of the output should be equal to logical row count");const E=(0,f.getGlsl)(g.session.backend.glContext.version),v=`
      float process(int[${O}] indices) {
        int logical_row_start_offset = indices[0] * ${y};

        float max = getColorAsFloat(${E.texture2D}(A, offsetToCoords(logical_row_start_offset, ${w},
        ${S} )));
        for(int i=1; i<${y}; ++i)
        {
          float current = getColorAsFloat(${E.texture2D}(A, offsetToCoords(logical_row_start_offset + i,
            ${w}, ${S})));
          if(current > max)
          max = current;
        }

        return max;
      }`;return Object.assign(Object.assign({},p),{output:{dims:T,type:m.type,textureType:s.TextureType.unpacked},shaderSource:v})},r=(g,m,_,y,T,w)=>{const[S,O]=g.calculateTextureWidthAndHeight(m.dims,s.TextureType.unpacked),E=w.length;if(_<1||y<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]!==_)throw new Error("Shape of the output should be equal to logical row count");if(T.length!==1)throw new Error("Dimensionality of the intermediate results should be 1");if(T[0]!==_)throw new Error("Shape of the intermediate results should be equal to logical row count");const v=`
      float process(int[${E}] indices) {
        int logical_row_start_offset = indices[0] * ${y};

        float norm_factor = 0.0;
        float max = _Max(indices);
        for(int i=0; i<${y}; ++i)
        {
          norm_factor += exp(getColorAsFloat(${(0,f.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({},l),{output:{dims:w,type:m.type,textureType:s.TextureType.unpacked},shaderSource:v})},i=(g,m,_,y,T,w)=>{const[S,O]=g.calculateTextureWidthAndHeight(m.dims,s.TextureType.unpacked),E=m.dims.length;if(_<1||y<1)throw new Error("Logical row count N and feature count D must be greater than or equal to 1");if(T.length!==1||w.length!==1)throw new Error("Dimensionality of the intermediate results should be 1");if(T[0]!==_||w[0]!==_)throw new Error("Shape of the intermediate results should be equal to logical row count");const v=`
      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 / ${y};

      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:v})},d=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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseSplitAttributes=n.split=void 0;const u=a(246),c=a(2517),f=a(2039),s={name:"Split",inputNames:["A"],inputTypes:[f.TextureType.unpacked]};n.split=(o,t,e)=>{l(t);const r=c.ShapeUtil.normalizeAxis(e.axis,t[0].dims.length),i=h(o,t,r,e),d=[];for(let g=0;g<i;++g)d.push(o.run(Object.assign(Object.assign({},s),{cacheHint:`${e.cacheKey};${g}`,get:()=>p(o,t[0],e,r,g)}),t));return d},n.parseSplitAttributes=o=>{const t=o.attributes.getInt("axis",0),e=o.attributes.getInts("split",[]),r=o.outputs.length;return(0,u.createAttributeWithCacheKey)({axis:t,split:e,numOutputs:r})};const h=(o,t,e,r)=>{const[,i]=c.SplitUtil.splitShape(t[0].dims,e,r.split,r.numOutputs);return i.length},p=(o,t,e,r,i)=>{const[d,g]=c.SplitUtil.splitShape(t.dims,r,e.split,e.numOutputs),m=g[i],_=d[i],y=`
      float process(int indices[${_.length}]) {
        indices[${r}] += ${m};
        return _A(indices);
      }
    `;return Object.assign(Object.assign({},s),{cacheHint:`${e.cacheKey}:${i}`,output:{dims:_,type:t.type,textureType:f.TextureType.unpacked},shaderSource:y})},l=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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseSqueezeAttributes=n.squeezeV13=n.squeeze=void 0;const u=a(2517);n.squeeze=(s,h,p)=>{c(h);const l=u.ShapeUtil.squeezeShape(h[0].dims,p);return[s.reshapeUnpacked(h[0],l)]},n.squeezeV13=(s,h)=>(f(h),(0,n.squeeze)(s,[h[0]],Array.from(h[1].integerData))),n.parseSqueezeAttributes=s=>s.attributes.getInts("axes");const c=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.")},f=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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.sum=void 0;const u=a(5060),c=a(2039);n.sum=(h,p)=>{s(p);const l={name:"Sum",inputNames:p.map((o,t)=>`X${t}`),inputTypes:new Array(p.length).fill(c.TextureType.unpacked)};return[h.run(Object.assign(Object.assign({},l),{get:()=>f(h,p,l)}),p)]};const f=(h,p,l)=>{const o=(0,u.getGlsl)(h.session.backend.glContext.version),t=p[0].dims.slice(),e=`
      void main() {
        vec4 result = ${p.map((r,i)=>`${o.texture2D}(X${i},TexCoords)`).join(" + ")};
        ${o.output} = result;
      }
    `;return Object.assign(Object.assign({},l),{output:{dims:t,type:p[0].type,textureType:c.TextureType.unpacked},hasMain:!0,shaderSource:e})},s=h=>{if(!h||h.length===0)throw new Error("Sum requires inputs.");const p=h[0].dims.length;for(let l=1;l<h.length;l++){if(p!==h[l].dims.length)throw new Error("Input shapes are mismatched.");for(let o=0;o<p;o++)if(h[0].dims[o]!==h[l].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 l=1;l<h.length;l++)if(h[0].type!==h[l].type)throw new Error("Input types are not matched.")}},5723:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.tile=void 0;const u=a(782),c=a(2039);n.tile=(h,p)=>{s(p);const l={name:"Tile",inputNames:["A"],inputTypes:[c.TextureType.unpacked]};return[h.run(Object.assign(Object.assign({},l),{get:()=>f(h,p,l)}),p)]};const f=(h,p,l)=>{const o=p[0].dims.slice(),t=new Array(o.length),e=[];for(let d=0;d<o.length;d++)t[d]=o[d]*p[1].numberData[d],e.push(`inputIdx[${d}] = int(mod(float(outputIdx[${d}]), ${o[d]}.));`);const r=t.length,i=`
      float process(int outputIdx[${r}]) {
        int inputIdx[${r}];
        ${e.join(`
`)}
        return _A(inputIdx);
      }
    `;return Object.assign(Object.assign({},l),{output:{dims:t,type:p[0].type,textureType:c.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(u.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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseTransposeAttributes=n.transpose=void 0;const u=a(246),c=a(2517),f=a(2039),s={name:"Transpose",inputNames:["A"],inputTypes:[f.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,u.createAttributeWithCacheKey)({perm:e.attributes.getInts("perm",[])});const h=(e,r,i)=>{const d=r.dims;i=p(d,i);const g=l(d,i),m=d.length,_=`
      ${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:f.TextureType.unpacked},shaderSource:_})},p=(e,r)=>(r&&r.length!==e.length&&(r=[...e.keys()].reverse()),r),l=(e,r)=>(r=p(e,r),c.ShapeUtil.sortBasedOnPerm(e,r)),o=(e,r,i)=>{const d=[];d.push(`void ${e}(out int a[${i}], int src[${i}]) {`);for(let g=0;g<i;++g)d.push(`	a[${r[g]}]=src[${g}];`);return d.push("	}"),d.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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.encodeAsUint8=void 0;const u=a(5060),c=a(2039);n.encodeAsUint8=(f,s)=>{const h=s.shape,p=(0,u.getGlsl)(f.session.backend.glContext.version),l=`
    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 = ${p.texture2D}(X,TexCoords).r;
      ${p.output} = encodeAsUint8(value);
    }`,o={name:"Uint8Encode",inputTypes:[c.TextureType.unpacked],inputNames:["X"],output:{dims:h,type:s.tensor.type,textureType:c.TextureType.downloadUint8AsFloat},shaderSource:l,hasMain:!0};return f.executeProgram(o,[s.tensor])}},4909:(b,n,a)=>{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 u=a(246),c=a(2517),f=a(8520),s=a(5060),h=a(2039);function p(){return R("abs")}function l(){return R("acos")}function o(){return R("asin")}function t(){return R("atan")}function e(){return R("ceil")}function r(){return R("cos")}function i(C){const $="elu";return{body:`
  const float alpha = float(${C});

  float ${$}_(float a) {
    return a >= 0.0 ? a: (exp(a) - 1.0) * alpha;
  }
  vec4 ${$}_(vec4 v) {
    return vec4(${$}_(v.x), ${$}_(v.y), ${$}_(v.z), ${$}_(v.w));
  }
  `,name:$,type:f.FunctionType.ValueBased}}function d(){return R("exp")}function g(){return R("floor")}function m(C,$){const X="clip";return{body:`
  const float min = float(${C});
  const float max = float(${$});

  float ${X}_(float a) {
    return clamp(a, min, max);
  }
  vec4 ${X}_(vec4 v) {
    return clamp(v, min, max);
  }
  `,name:X,type:f.FunctionType.ValueBased}}function _(){const C="indentity";return{body:`
  float ${C}_(float a) {
    return a;
  }
  vec4 ${C}_(vec4 v) {
    return v;
  }
  `,name:C,type:f.FunctionType.ValueBased}}function y(C){const $="leakyRelu";return{body:`
  const float alpha = float(${C});

  float ${$}_(float a) {
    return a < 0.0 ? a * alpha : a;
  }
  vec4 ${$}_(vec4 v) {
    return vec4(${$}_(v.x), ${$}_(v.y), ${$}_(v.z), ${$}_(v.w));
  }
  `,name:$,type:f.FunctionType.ValueBased}}function T(){return R("log")}function w(){const C="neg";return{body:`
  float ${C}_(float a) {
    return -a;
  }
  vec4 ${C}_(vec4 v) {
    return -v;
  }
  `,name:C,type:f.FunctionType.ValueBased}}function S(){const C="not";return{body:`
  float ${C}_(float a) {
    return float( ! bool(a) );
  }
  bool ${C}_(bool a) {
    return !a;
  }
  vec4 ${C}_(vec4 v) {
    return vec4(!bool(v.x), !bool(v.y), !bool(v.z), !bool(v.w));
  }
  bvec4 ${C}_(bvec4 v) {
    return bvec4(!v.x, !v.y, !v.z, !v.w);
  }
  `,name:C,type:f.FunctionType.ValueBased}}function O(){return R("sin")}function E(){const C="relu";return{body:`
  float ${C}_(float a) {
    return max( a, 0.0 );
  }
  vec4 ${C}_(vec4 v) {
    return max( v, 0.0 );
  }
  `,name:C,type:f.FunctionType.ValueBased}}function v(){const C="sigmoid";return{body:`
  float ${C}_(float a) {
    return 1.0 / (1.0 + exp(-a));
  }
  vec4 ${C}_(vec4 v) {
    return 1.0 / (1.0 + exp(-v));
  }
  `,name:C,type:f.FunctionType.ValueBased}}function P(){return R("sqrt")}function L(){return R("tan")}function V(){const C="tanh";return{body:`
  float ${C}_(float a) {
    a = clamp(a, -10., 10.);
    a = exp(2.*a);
    return (a - 1.) / (a + 1.);
  }
  vec4 ${C}_(vec4 v) {
    v = clamp(v, -10., 10.);
    v = exp(2.*v);
    return (v - 1.) / (v + 1.);
  }
  `,name:C,type:f.FunctionType.ValueBased}}function R(C){return{body:`
  float ${C}_(float a) {
    return ${C}(a);
  }
  vec4 ${C}_(vec4 v) {
    return ${C}(v);
  }
  `,name:C,type:f.FunctionType.ValueBased}}n.glslAbs=p,n.glslAcos=l,n.glslAsin=o,n.glslAtan=t,n.glslCeil=e,n.glslCos=r,n.glslElu=i,n.glslExp=d,n.glslFloor=g,n.glslClip=m,n.glslIdentity=_,n.glslLeakyRelu=y,n.glslLog=T,n.glslNeg=w,n.glslNot=S,n.glslSin=O,n.glslRelu=E,n.glslSigmoid=v,n.glslSqrt=P,n.glslTan=L,n.glslTanh=V;const k=(C,$,X,z)=>{const Z=C.session.pack?h.TextureType.packed:h.TextureType.unpacked,J={name:X.name,inputTypes:[Z],inputNames:["A"],cacheHint:z};return Object.assign(Object.assign({},J),{get:()=>((ue,Se,Te,se)=>{const ye=ue.session.pack?h.TextureType.packed:h.TextureType.unpacked,be=(0,s.getGlsl)(ue.session.backend.glContext.version);return Object.assign(Object.assign({},Se),{output:{dims:Te.dims,type:Te.type,textureType:ye},shaderSource:`
     ${se.body}
     void main() {
       vec4 v = ${be.texture2D}(A, TexCoords);
       v = ${se.name}_(v);
       ${be.output} = v;
     }
     `,hasMain:!0})})(C,J,$,X)})};n.abs=(C,$)=>[C.run(k(C,$[0],p()),$)],n.acos=(C,$)=>[C.run(k(C,$[0],l()),$)],n.asin=(C,$)=>[C.run(k(C,$[0],o()),$)],n.atan=(C,$)=>[C.run(k(C,$[0],t()),$)],n.clip=(C,$,X)=>[C.run(k(C,$[0],m(X.min,X.max),X.cacheKey),$)],n.parseClipAttributes=C=>(0,u.createAttributeWithCacheKey)({min:C.attributes.getFloat("min",c.MIN_CLIP),max:C.attributes.getFloat("max",c.MAX_CLIP)}),n.clipV11=(C,$)=>{const X=Y(C,$);return(0,n.clip)(C,[$[0]],X)};const Y=(C,$)=>{if($.length>=3&&(!C.session.isInitializer($[1].dataId)||!C.session.isInitializer($[2].dataId)))throw new Error("dynamic clip attributes are not allowed");const X=$.length>=3?$[1].numberData[0]:c.MIN_CLIP,z=$.length>=3?$[2].numberData[0]:c.MAX_CLIP;return(0,u.createAttributeWithCacheKey)({min:X,max:z})};n.ceil=(C,$)=>[C.run(k(C,$[0],e()),$)],n.cos=(C,$)=>[C.run(k(C,$[0],r()),$)],n.elu=(C,$,X)=>[C.run(k(C,$[0],i(X.alpha),X.cacheKey),$)],n.parseEluAttributes=C=>(0,u.createAttributeWithCacheKey)({alpha:C.attributes.getFloat("alpha",1)}),n.exp=(C,$)=>[C.run(k(C,$[0],d()),$)],n.floor=(C,$)=>[C.run(k(C,$[0],g()),$)],n.identity=(C,$)=>[C.run(k(C,$[0],_()),$)],n.leakyRelu=(C,$,X)=>[C.run(k(C,$[0],y(X.alpha),X.cacheKey),$)],n.parseLeakyReluAttributes=C=>(0,u.createAttributeWithCacheKey)({alpha:C.attributes.getFloat("alpha",.01)}),n.log=(C,$)=>[C.run(k(C,$[0],T()),$)],n.neg=(C,$)=>[C.run(k(C,$[0],w()),$)],n.not=(C,$)=>[C.run(k(C,$[0],S()),$)],n.relu=(C,$)=>[C.run(k(C,$[0],E()),$)],n.sigmoid=(C,$)=>[C.run(k(C,$[0],v()),$)],n.sin=(C,$)=>[C.run(k(C,$[0],O()),$)],n.sqrt=(C,$)=>[C.run(k(C,$[0],P()),$)],n.tan=(C,$)=>[C.run(k(C,$[0],L()),$)],n.tanh=(C,$)=>[C.run(k(C,$[0],V()),$)]},5611:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createUnpackProgramInfoLoader=n.createUnpackProgramInfo=void 0;const u=a(5060),c=a(2039),f=a(9390),s=a(2827),h={name:"unpack",inputNames:["A"],inputTypes:[c.TextureType.packed]};n.createUnpackProgramInfo=(p,l)=>{const o=l.dims.length,t=(0,s.getChannels)("rc",o),e=t.slice(-2),r=(0,f.getCoordsDataType)(o),i=(0,s.unpackFromChannel)(),d=l.dims.length===0?"":function(_,y){if(_===1)return"rc";let T="";for(let w=0;w<_;w++)T+=y[w],w<_-1&&(T+=",");return T}(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(${d});

       ${(0,u.getGlsl)(p.session.backend.glContext.version).output} = vec4(getChannel(packedInput, ${g}), 0, 0, 0);
     }
   `;return Object.assign(Object.assign({},h),{hasMain:!0,output:{dims:l.dims,type:l.type,textureType:c.TextureType.unpacked},shaderSource:m})},n.createUnpackProgramInfoLoader=(p,l)=>Object.assign(Object.assign({},h),{get:()=>(0,n.createUnpackProgramInfo)(p,l)})},8428:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.parseUnsqueezeAttributes=n.unsqueezeV13=n.unsqueeze=void 0;const u=a(2517);n.unsqueeze=(s,h,p)=>{c(h);const l=u.ShapeUtil.unsqueezeShape(h[0].dims,p);return[s.reshapeUnpacked(h[0],l)]},n.unsqueezeV13=(s,h)=>(f(h),(0,n.unsqueeze)(s,[h[0]],Array.from(h[1].integerData))),n.parseUnsqueezeAttributes=s=>s.attributes.getInts("axes");const c=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.")},f=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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.scalesValidation=n.validateInputs=n.parseUpsampleAttributes=n.parseUpsampleAttributesV9=n.parseUpsampleAttributesV7=n.upsample=void 0;const u=a(246),c=a(5060),f=a(2039),s={name:"Upsample",inputNames:["X"],inputTypes:[f.TextureType.unpacked]};n.upsample=(p,l,o)=>((0,n.validateInputs)(l,o),[p.run(Object.assign(Object.assign({},s),{cacheHint:o.cacheKey,get:()=>h(p,l,o)}),l)]),n.parseUpsampleAttributesV7=p=>(0,n.parseUpsampleAttributes)(p,7),n.parseUpsampleAttributesV9=p=>(0,n.parseUpsampleAttributes)(p,9),n.parseUpsampleAttributes=(p,l)=>{const o=l>=10,t=p.attributes.getString("mode","nearest");if(t!=="nearest"&&t!=="linear"&&(l<11||t!=="cubic"))throw new Error(`unrecognized mode: ${t}`);let e=[];l<9&&(e=p.attributes.getFloats("scales"),(0,n.scalesValidation)(e,t,o));const r=p.attributes.getFloat("extrapolation_value",0),i=l>10?p.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 d=i==="tf_crop_and_resize",g=d,m=t==="nearest"&&l>=11?p.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 _=p.attributes.getFloat("cubic_coeff_a",-.75),y=p.attributes.getInt("exclude_outside",0)!==0;if(y&&t!=="cubic")throw new Error("exclude_outside can be set to 1 only when mode is CUBIC.");const T=l<11||t==="nearest"&&i==="asymmetric"&&m==="floor";let w=0,S=0,O=0;return l>10?p.inputs.length>2?(w=1,S=2,O=3):(S=1,O=2):l===9&&(S=1),(0,u.createAttributeWithCacheKey)({opset:l,isResize:o,mode:t,scales:e,extrapolationValue:r,coordinateTransformMode:i,useExtrapolation:g,needRoiInput:d,nearestMode:m,cubicCoefficientA:_,excludeOutside:y,useNearest2xOptimization:T,roiInputIdx:w,scalesInputIdx:S,sizesInputIdx:O})};const h=(p,l,o)=>{const t=(0,c.getGlsl)(p.session.backend.glContext.version),[e,r]=p.calculateTextureWidthAndHeight(l[0].dims,f.TextureType.unpacked),i=l[0].dims.map((O,E)=>Math.floor(O*o.scales[E])),[d,g]=p.calculateTextureWidthAndHeight(i,f.TextureType.unpacked),m=i.length,_=new Array(m),y=new Array(m);let T=`
      int output_pitches[${m}];
      int input_pitches[${m}];
      `;for(let O=m-1;O>=0;O--)_[O]=O===m-1?1:_[O+1]*i[O+1],y[O]=O===m-1?1:y[O+1]*l[0].dims[O+1],T+=`
        output_pitches[${O}] = ${_[O]};
        input_pitches[${O}] = ${y[O]};
        `;const w=`
      float getInputFloat(int index) {
        vec2 coords = offsetToCoords(index, ${e}, ${r});
        float value = getColorAsFloat(${t.texture2D}(X, coords));
        return value;
      }
      `,S=o.mode==="nearest"?`
    ${w}
    float process(int indices[${m}]) {
      int input_index = 0;
      int output_index = coordsToOffset(TexCoords, ${d}, ${g});

      ${T}

      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?`
    ${w}
    float process(int indices[4]) {
      int input_index = 0;
      int output_index = coordsToOffset(TexCoords, ${d}, ${g});

      ${T}

      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 == (${l[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]);
    }`:`
    ${w}
    float process(int indices[2]) {
      int input_index = 0;
      int output_index = coordsToOffset(TexCoords, ${d}, ${g});

      ${T}

      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 == (${l[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:l[0].type,textureType:f.TextureType.unpacked},shaderSource:S,variables:[{name:"scales",type:"int",arrayLength:o.scales.length,data:o.scales.map(O=>Math.ceil(O))}]})};n.validateInputs=(p,l)=>{if(!p||l.opset<9&&p.length!==1||l.opset>=9&&l.opset<11&&p.length!==2||l.opset>=11&&p.length<2)throw new Error("invalid inputs.");if(l.scales.length>0&&p[0].dims.length!==l.scales.length)throw new Error("Invalid input shape.");if(p[0].type==="string")throw new Error("Invalid input tensor types.")},n.scalesValidation=(p,l,o)=>{if(o){for(const t of p)if(t<=0)throw new Error("Scale value should be greater than 0.")}else for(const t of p)if(t<1)throw new Error("Scale value should be greater than or equal to 1.");if(!(l!=="linear"&&l!=="cubic"||p.length===2||p.length===4&&p[0]===1&&p[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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ProgramManager=void 0;const u=a(1670),c=a(6231),f=a(8879),s=a(5060);n.ProgramManager=class{constructor(h,p,l){this.profiler=h,this.glContext=p,this.textureLayoutStrategy=l,this.repo=new Map,this.attributesBound=!1}getArtifact(h){return this.repo.get(h)}setArtifact(h,p){this.repo.set(h,p)}run(h,p,l){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(l),this.attributesBound||this.bindAttributes(h.attribLocations),this.bindUniforms(h.uniformLocations,(t=h.programInfo.variables)!==null&&t!==void 0?t:[],p)}catch(i){throw c.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,p,l){return this.profiler.event("backend","ProgramManager.build",()=>{const o=new f.GlslPreprocessor(this.glContext,h,p,l),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){c.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)}u.env.debug&&c.Logger.verbose("ProrgramManager",`FragShader:
${h}
`);const p=this.glContext.compileShader(h,this.glContext.gl.FRAGMENT_SHADER),l=this.glContext.createProgram(this.vertexShader,p);return this.glContext.deleteShader(p),l}bindOutput(h){const p=h.width,l=h.height;c.Logger.verbose("ProrgramManager",`Binding output texture to Framebuffer: w/h=${p}/${l}, shape=${h.shape}, type=${h.tensor.type}`),this.glContext.attachFramebuffer(h.texture,p,l)}bindAttributes(h){const p=h.position,l=h.textureCoord;this.glContext.setVertexAttributes(p,l),this.attributesBound=!0}bindUniforms(h,p,l){var o;const t=this.glContext.gl;let e=0;for(const{name:r,type:i,location:d,arrayLength:g}of h){const m=(o=p.find(_=>_.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(l[e],d,e),e++;break;case"float":g?t.uniform1fv(d,m):t.uniform1f(d,m);break;case"int":g?t.uniform1iv(d,m):t.uniform1i(d,m);break;default:throw new Error(`Uniform not implemented: ${i}`)}}}bindTexture(h,p,l){this.glContext.bindTextureToUniform(h.texture,l,p)}getAttribLocations(h){return{position:this.getAttribLocation(h,"position"),textureCoord:this.getAttribLocation(h,"textureCoord")}}getUniformLocations(h,p,l){const o=[];if(p)for(const t of p)o.push({name:t,type:"sampler2D",location:this.getUniformLocation(h,t)});if(l)for(const t of l)o.push(Object.assign(Object.assign({},t),{location:this.getUniformLocation(h,t.name)}));return o}getUniformLocation(h,p){const l=this.glContext.gl.getUniformLocation(h,p);if(l===null)throw new Error(`Uniform ${p} not found.`);return l}getAttribLocation(h,p){return this.glContext.gl.getAttribLocation(h,p)}}},6416:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.WebGLSessionHandler=void 0;const u=a(6231),c=a(1047),f=a(8316),s=a(1640),h=a(1958),p=a(7859),l=a(5702);n.WebGLSessionHandler=class{constructor(o,t){this.backend=o,this.context=t,this.layoutStrategy=new p.PreferLogicalStrategy(o.glContext.maxTextureSize),this.programManager=new h.ProgramManager(this.context.profiler,o.glContext,this.layoutStrategy),this.textureManager=new l.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 f.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){u.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,c.resolveOperator)(o,t,s.WEBGL_OP_RESOLVE_RULES);return{impl:r.opImpl,context:r.opInit?r.opInit(o,e):o}}}},7769:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Uint8DataEncoder=n.RGBAFloatDataEncoder=n.RedFloat32DataEncoder=void 0;const u=a(6231);n.RedFloat32DataEncoder=class{constructor(c,f=1){if(f===1)this.internalFormat=c.R32F,this.format=c.RED,this.textureType=c.FLOAT,this.channelSize=f;else{if(f!==4)throw new Error(`Invalid number of channels: ${f}`);this.internalFormat=c.RGBA32F,this.format=c.RGBA,this.textureType=c.FLOAT,this.channelSize=f}}encode(c,f){let s,h;return c.constructor!==Float32Array&&(u.Logger.warning("Encoder","data was not of type Float32; creating new Float32Array"),h=new Float32Array(c)),f*this.channelSize>c.length?(u.Logger.warning("Encoder","Source data too small. Allocating larger array"),h=c,s=this.allocate(f*this.channelSize),h.forEach((p,l)=>s[l]=p)):(h=c,s=h),s}allocate(c){return new Float32Array(4*c)}decode(c,f){return this.channelSize===1?c.filter((s,h)=>h%4==0).subarray(0,f):c.subarray(0,f)}},n.RGBAFloatDataEncoder=class{constructor(c,f=1,s){if(f!==1&&f!==4)throw new Error(`Invalid number of channels: ${f}`);this.internalFormat=c.RGBA,this.format=c.RGBA,this.channelSize=f,this.textureType=s||c.FLOAT}encode(c,f){let s=c;return this.channelSize===1&&(u.Logger.verbose("Encoder","Exploding into a larger array"),s=this.allocate(f),c.forEach((h,p)=>s[4*p]=h)),s}allocate(c){return new Float32Array(4*c)}decode(c,f){return this.channelSize===1?c.filter((s,h)=>h%4==0).subarray(0,f):c.subarray(0,f)}},n.Uint8DataEncoder=class{constructor(c,f=1){if(this.channelSize=4,f===1)this.internalFormat=c.ALPHA,this.format=c.ALPHA,this.textureType=c.UNSIGNED_BYTE,this.channelSize=f;else{if(f!==4)throw new Error(`Invalid number of channels: ${f}`);this.internalFormat=c.RGBA,this.format=c.RGBA,this.textureType=c.UNSIGNED_BYTE,this.channelSize=f}}encode(c,f){return new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}allocate(c){return new Uint8Array(c*this.channelSize)}decode(c,f){if(c instanceof Uint8Array)return c.subarray(0,f);throw new Error(`Invalid array type: ${c.constructor}`)}}},7859:(b,n,a)=>{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 u=a(6231),c=a(2517);function f(o,t){const e=[],r=[],i=t!=null&&Array.isArray(t)&&t.length===0,d=t==null||i?null:s(t,o).sort();let g=0;for(let m=0;m<o.length;++m){if(d!=null){if(d[g]===m&&o[m]!==1)throw new Error(`Can't squeeze axis ${m} since its dim '${o[m]}' is not 1`);(d[g]==null||d[g]>m)&&o[m]===1&&(e.push(o[m]),r.push(m)),d[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,c.assert)(o.every(r=>r>=-e&&r<e),()=>`All values in axis param must be in range [-${e}, ${e}) but got axis ${o}`),(0,c.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 p(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 l(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 d=t.breakAxis>=o.length?1:o.slice(t.breakAxis).reduce((m,_)=>m*_),g=t.breakAxis<=0?1:o.slice(0,t.breakAxis).reduce((m,_)=>m*_);if(!(d>e||g>e))return[d,g];u.Logger.verbose("TextureLayout",`Given width/height preferences were unattainable: shape:${o}, breakAxis:${t.breakAxis}`)}const r=o.reduce((d,g)=>d*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((_,y)=>_*y),m=t.breakAxis<=0?1:o.slice(0,t.breakAxis).reduce((_,y)=>_*y);if(!(g>r||m>r))return[g,m];u.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=f(i).newShape);const d=p(i);return i.length<=1&&d<=r?[1,d]: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?l(d/4).map(g=>2*g):l(d)}},n.squeezeShape=f,n.parseAxisParam=s,n.isInt=h,n.sizeFromShape=p,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=l,n.getBatchDim=function(o,t=2){return p(o.slice(0,o.length-t))}},4057:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createTextureLayoutFromShape=n.calculateTextureWidthAndHeight=n.createTextureLayoutFromTextureType=void 0;const u=a(2517),c=a(2039);n.createTextureLayoutFromTextureType=(f,s,h)=>{const p=h===c.TextureType.unpacked||h===c.TextureType.unpackedReversed?1:4,l=h===c.TextureType.packed,o=h===c.TextureType.unpackedReversed||h===c.TextureType.packed,t=h===c.TextureType.packedLastDimension?s.length-1:void 0,e=h===c.TextureType.packedLastDimension?s.map((r,i)=>i===s.length-1?4*r:r):void 0;return(0,n.createTextureLayoutFromShape)(f,s,p,e,{isPacked:l,reverseWH:o,breakAxis:t})},n.calculateTextureWidthAndHeight=(f,s,h)=>{const p=(0,n.createTextureLayoutFromTextureType)(f,s,h);return[p.width,p.height]},n.createTextureLayoutFromShape=(f,s,h=1,p,l)=>{const o=!(!l||!l.isPacked),[t,e]=f.computeTextureWH(o&&p||s,l),r=s.length;let i=s.slice(0);if(r===0&&(i=[1]),h===1)p=s;else if(o){if(h!==4)throw new Error("a packed texture must be 4-channel");p=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(!p)throw new Error("Unpacked shape is needed when using channels > 1");return{width:t,height:e,channels:h,isPacked:o,shape:i,strides:u.ShapeUtil.computeStrides(i),unpackedShape:p,reversedWH:l&&l.reverseWH}}},5702:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.TextureManager=void 0;const u=a(6231);n.TextureManager=class{constructor(c,f,s,h){this.glContext=c,this.layoutStrategy=f,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(c,f,s,h){const p=this.toEncoderType(c),l=this.glContext.getEncoder(p,f.channels||1,h);if(f.isPacked&&h===1)throw new Error("not implemented");const o=f.width,t=f.height;let e,r;if(this.config.reuseTextures){e=`${o}x${t}_${l.format}_${l.internalFormat}_${l.textureType}`,r=this.inUseTextures.get(e),r||(r=[],this.inUseTextures.set(e,r));const d=this.idleTextures.get(e);if(d&&d.length>0){const g=d.pop();return r.push(g),h===1&&this.glContext.updateTexture(g,o,t,l,this.toTextureData(c,s)),g}}u.Logger.verbose("TextureManager",`Creating new texture of size ${f.width}x${f.height}`);const i=this.glContext.allocateTexture(o,t,l,this.toTextureData(c,s));return this.config.reuseTextures&&(r.push(i),this.textureLookup.set(i,e)),i}readTexture(c,f,s){return s||(s=1),this.profiler.event("backend","TextureManager.readTexture",()=>{const h=c.shape.reduce((l,o)=>l*o)*s,p=this.glContext.readTexture(c.texture,c.width,c.height,h,this.toEncoderType(f),s);return this.toTensorData(f,p)})}async readTextureAsync(c,f,s){const h=c.tensor.dataId;if(s||(s=1),this.pendingRead.has(h)){const p=this.pendingRead.get(h);return new Promise(l=>p?.push(l))}return this.profiler.event("backend","TextureManager.readTextureAsync",async()=>{this.pendingRead.set(h,[]);const p=c.shape.reduce((e,r)=>e*r)*s;await this.glContext.createAndWaitForFence();const l=this.glContext.readTexture(c.texture,c.width,c.height,p,this.toEncoderType(f),s),o=this.toTensorData(f,l),t=this.pendingRead.get(h);return this.pendingRead.delete(h),t?.forEach(e=>e(o)),o})}readUint8TextureAsFloat(c){return this.profiler.event("backend","TextureManager.readUint8TextureAsFloat",()=>{const f=c.shape.reduce((h,p)=>h*p),s=this.glContext.readTexture(c.texture,c.width,c.height,4*f,"byte",4);return new Float32Array(s.buffer,s.byteOffset,f)})}releaseTexture(c,f){let s;if(this.config.reuseTextures&&(s=this.textureLookup.get(c.texture),s)){f&&this.textureLookup.delete(s);const h=this.inUseTextures.get(s);if(h){const p=h.indexOf(c.texture);if(p!==-1){h.splice(p,1);let l=this.idleTextures.get(s);l||(l=[],this.idleTextures.set(s,l)),l.push(c.texture)}}}s&&!f||(u.Logger.verbose("TextureManager",`Deleting texture of size ${c.width}x${c.height}`),this.glContext.deleteTexture(c.texture))}toTensorData(c,f){switch(c){case"int16":return f instanceof Int16Array?f:Int16Array.from(f);case"int32":return f instanceof Int32Array?f:Int32Array.from(f);case"int8":return f instanceof Int8Array?f:Int8Array.from(f);case"uint16":return f instanceof Uint16Array?f:Uint16Array.from(f);case"uint32":return f instanceof Uint32Array?f:Uint32Array.from(f);case"uint8":case"bool":return f instanceof Uint8Array?f:Uint8Array.from(f);case"float32":return f instanceof Float32Array?f:Float32Array.from(f);case"float64":return f instanceof Float64Array?f:Float64Array.from(f);default:throw new Error(`TensorData type ${c} is not supported`)}}toTextureData(c,f){if(f)return f instanceof Float32Array?f:new Float32Array(f)}toEncoderType(c){return"float"}clearActiveTextures(){this.glContext.clearActiveTextures()}}},2039:(b,n)=>{var a;Object.defineProperty(n,"__esModule",{value:!0}),n.TextureType=void 0,(a=n.TextureType||(n.TextureType={}))[a.unpacked=0]="unpacked",a[a.unpackedReversed=1]="unpackedReversed",a[a.packed=2]="packed",a[a.downloadUint8AsFloat=3]="downloadUint8AsFloat",a[a.packedLastDimension=4]="packedLastDimension"},9390:(b,n,a)=>{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 u=a(2517);n.getPackedShape=function(c){const f=c.length;return c.slice(0,f-1).concat(c[f-1]/4)},n.repeatedTry=async function(c,f=h=>0,s){return new Promise((h,p)=>{let l=0;const o=()=>{if(c())return void h();l++;const t=f(l);s!=null&&l>=s?p():setTimeout(o,t)};o()})},n.generateShaderFuncNameFromInputSamplerName=function(c){return(0,u.assert)(c!==void 0&&c.length!==0,()=>"empty string found for sampler name"),"get"+c.charAt(0).toUpperCase()+c.slice(1)},n.generateShaderFuncNameFromInputSamplerNameAtOutCoords=function(c){return(0,u.assert)(c!==void 0&&c.length!==0,()=>"empty string found for sampler name"),"get"+c.charAt(0).toUpperCase()+c.slice(1)+"AtOutCoords"},n.squeezeInputShape=function(c,f){let s=JSON.parse(JSON.stringify(c));return s=f,s},n.getSqueezedParams=function(c,f){return f.map(s=>c[s]).join(", ")},n.getCoordsDataType=function(c){if(c<=1)return"int";if(c===2)return"ivec2";if(c===3)return"ivec3";if(c===4)return"ivec4";if(c===5)return"ivec5";if(c===6)return"ivec6";throw Error(`GPU for rank ${c} is not yet supported`)},n.getGlChannels=function(c=6){return["x","y","z","w","u","v"].slice(0,c)}},7305:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.createNewWebGLContext=n.createWebGLContext=void 0;const u=a(6231),c=a(1713),f={};function s(h){const p=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 l;const o={alpha:!1,depth:!1,antialias:!1,stencil:!1,preserveDrawingBuffer:!1,premultipliedAlpha:!1,failIfMajorPerformanceCaveat:!1};if((!h||h==="webgl2")&&(l=p.getContext("webgl2",o),l))try{return new c.WebGLContext(l,2)}catch(t){u.Logger.warning("GlContextFactory",`failed to create WebGLContext using contextId 'webgl2'. Error: ${t}`)}if((!h||h==="webgl")&&(l=p.getContext("webgl",o)||p.getContext("experimental-webgl",o),l))try{return new c.WebGLContext(l,1)}catch(t){u.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(p){let l;p&&p!=="webgl2"||!("webgl2"in f)?p&&p!=="webgl"||!("webgl"in f)||(l=f.webgl):l=f.webgl2,l=l||s(p),p=p||l.version===1?"webgl":"webgl2";const o=l.gl;return f[p]=l,o.isContextLost()?(delete f[p],h(p)):(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),l)},n.createNewWebGLContext=s},1713:function(b,n,a){var u=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]}),c=this&&this.__setModuleDefault||(Object.create?function(o,t){Object.defineProperty(o,"default",{enumerable:!0,value:t})}:function(o,t){o.default=t}),f=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)&&u(t,o,e);return c(t,o),t};Object.defineProperty(n,"__esModule",{value:!0}),n.WebGLContext=n.linearSearchLastTrue=void 0;const s=a(1670),h=f(a(7769)),p=a(9390);function l(o){let t=0;for(;t<o.length&&o[t]();++t);return t-1}n.linearSearchLastTrue=l,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,d=i.createTexture();i.bindTexture(i.TEXTURE_2D,d),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(),d}updateTexture(o,t,e,r,i){const d=this.gl;d.bindTexture(d.TEXTURE_2D,o);const g=r.encode(i,t*e);d.texSubImage2D(d.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,d){const g=this.gl;d||(d=1),this.frameBufferBound||this.attachFramebuffer(o,t,e);const m=this.getEncoder(i,d),_=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,_),this.checkError(),m.decode(_,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,d;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),d=o.createProgram(),!!d&&(o.attachShader(d,r),o.attachShader(d,i),o.linkProgram(d),o.useProgram(d),o.drawArrays(o.POINTS,0,1),o.getError()===o.NO_ERROR)))}finally{o.disable(o.BLEND),d&&o.deleteProgram(d),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,p.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=l(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,p.repeatedTry)(()=>(this.pollItems(),this.itemsToPoll.length===0))}}},1036:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ExecutionPlan=void 0;const u=a(6231);class c{constructor(s,h){this.op=s,this.node=h}}n.ExecutionPlan=class{constructor(f,s,h){this.graph=f,this.profiler=h,this.initialize(s)}initialize(f){this.profiler.event("session","ExecutionPlan.initialize",()=>{const s=this.graph.getNodes();if(s.length!==f.length)throw new Error("The size of nodes and OPs do not match.");this._ops=f.map((h,p)=>new c(h,s[p])),this.reset(),this._starter=[],this._ops.forEach((h,p)=>{let l=!0;for(const o of h.node.inputs)if(!this._values[o]&&this.graph.getInputIndices().indexOf(o)===-1){l=!1;break}l&&this._starter.push(p)})})}reset(){this._values=this.graph.getValues().map(f=>f.tensor)}async execute(f,s){return this.profiler.event("session","ExecutionPlan.execute",async()=>{this.reset();const h=f.createInferenceHandler(),p=this.graph.getInputIndices();if(s.length!==p.length)throw new Error(`number of input tensors don't match the number of inputs to the model: actual: ${s.length} expected: ${p.length}`);s.forEach((i,d)=>{const g=p[d];this._values[g]=i});const l=this._starter.slice(0),o=this.graph.getValues(),t=this.graph.getNodes();let e=0;for(;e<l.length;){const i=l[e++],d=this._ops[i],g=d.node.inputs.map(T=>this._values[T]);if(g.indexOf(void 0)!==-1)throw new Error(`unresolved input detected: op: ${d.node}`);const m=g;u.Logger.verbose("ExecPlan",`Runing op:${d.node.name} (${m.map((T,w)=>`'${d.node.inputs[w]}': ${T.type}[${T.dims.join(",")}]`).join(", ")})`);const _=await this.profiler.event("node",d.node.name,async()=>d.op.impl(h,m,d.op.context));if(_.length!==d.node.outputs.length)throw new Error("the size of output does not match model definition.");_.forEach((T,w)=>{const S=d.node.outputs[w];if(this._values[S])throw new Error(`output [${S}] already has value: op:${d.node.name}`);this._values[S]=T});const y=new Set;_.forEach((T,w)=>{const S=d.node.outputs[w];for(const O of o[S].to){const E=t[O];let v=!0;for(const P of E.inputs)if(!this._values[P]){v=!1;break}v&&y.add(O)}}),l.push(...y)}const r=[];for(let i=0;i<this.graph.getOutputIndices().length;i++){const d=this.graph.getOutputIndices()[i],g=this._values[d];if(g===void 0)throw new Error(`required output [${d}] does not have value`);d===0?await g.getData():g.data,r.push(g)}return u.Logger.verbose("ExecPlan","disposing of inferenceHandler"),h.dispose(),r})}}},7070:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Graph=void 0;const u=a(1446),c=a(7778),f=a(9395),s=a(9162),h=a(2517);var p=f.onnxruntime.experimental.fbs;n.Graph={from:(e,r)=>new t(e,r)};class l{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 u.onnx.NodeProto?(this.name=r.name,this.opType=r.opType,this.attributes=new c.Attribute(r.attribute)):r instanceof p.Node&&(this.name=i??r.name(),this.opType=r.opType(),this.attributes=new c.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 u.onnx.GraphProto)this.buildGraphFromOnnxFormat(r);else{if(!(r instanceof p.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 d=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 _=this._allData.push(new l(m))-1;i.set(m.name,_),g.push(m.name)}if(!r.initializer)throw new Error("missing information in graph: initializer");for(const m of r.initializer){let _=i.get(m.name);if(_===void 0){const y=new l;y.type={shape:{dims:h.ProtoUtil.tensorDimsFromProto(m.dims)},tensorType:h.ProtoUtil.tensorDataTypeFromProto(m.dataType)},_=this._allData.push(y)-1,i.set(m.name,_)}this._allData[_]._from=-1,this._allData[_].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 _=this._allData.push(new l(m))-1;i.set(m.name,_),this._allOutputIndices.push(_),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 y=0;;y++){const T=`unnamed_${m.opType}_${y}`;if(!d.has(T)){m.name=T;break}}if(d.has(m.name))throw new Error(`duplicated node name: ${m.name}`);const _=this._nodes.push(new o(m))-1;d.set(m.name,_)}for(let m=0;m<this._nodes.length;m++){const _=this._nodes[m],y=r.node[m];if(!y.output)throw new Error(`missing output for node: ${y.name}`);for(const T of y.output){let w=i.get(T);if(w===void 0&&(w=this._allData.push(new l)-1,i.set(T,w)),_.outputs.push(w),this._allData[w]._from!==void 0)throw new Error(`multiple nodes output to one data value: ${w}`);if(this._allData[w]._from=m,y.opType==="Constant"){if(!y.attribute||y.attribute.length!==1||!y.attribute[0].t)throw new Error("missing attributes or missing tensor value in attributes for this Constant operator");if(!y.output||y.output.length!==1)throw new Error("missing output or incorrect number of outputs for this Constant operator");_.outputs.pop(),_.executeNode=!1,this._allData[w]._from=-1,this._allData[w].tensor=s.Tensor.fromProto(y.attribute[0].t)}}}for(let m=0;m<this._nodes.length;m++){const _=this._nodes[m],y=r.node[m];if(!y.input)throw new Error(`missing input for node: ${y.name}`);for(const T of y.input){const w=i.get(T);if(w===void 0){if(T===""&&y.input.length===3&&y.opType==="Resize")continue;throw new Error(`unrecognized input '${T}' for node: ${y.name}`)}_.inputs.push(w),this._allData[w]._to.push(m)}}return!0}buildGraphFromOrtFormat(r){var i,d,g;const m=new Map;this._allData=[],this._allInputIndices=[],this._allInputNames=[],this._allOutputIndices=[],this._allOutputNames=[],this._nodes=[];const _=new Map,y=[];for(let T=0;T<r.inputsLength();T++){const w=r.inputs(T);if(m.has(w))throw new Error(`duplicated input name: ${w}`);for(let S=0;S<r.nodeArgsLength();S++)if(((i=r.nodeArgs(S))===null||i===void 0?void 0:i.name())===w){const O=new l;if(((g=(d=r.nodeArgs(S))===null||d===void 0?void 0:d.type())===null||g===void 0?void 0:g.valueType())!==p.TypeInfoValue.tensor_type)throw new Error("Unexpected value type for the nodeArg.");const E=r.nodeArgs(S).type().value(new p.TensorTypeAndShape),v=h.ProtoUtil.tensorDataTypeFromProto(E.elemType()),P=E.shape(),L=[];for(let R=0;R<P.dimLength();R++)L.push(h.LongUtil.longToNumber(P.dim(R).value().dimValue()));O.type={shape:{dims:L},tensorType:v};const V=this._allData.push(O)-1;m.set(w,V),y.push(w)}}for(let T=0;T<r.initializersLength();T++){const w=r.initializers(T);let S=m.get(w.name());if(S===void 0){const O=new l,E=h.ProtoUtil.tensorDimsFromORTFormat(w),v=h.ProtoUtil.tensorDataTypeFromProto(w.dataType());O.type={shape:{dims:E},tensorType:v},S=this._allData.push(O)-1,m.set(w.name(),S)}this._allData[S]._from=-1,this._allData[S].tensor=s.Tensor.fromOrtTensor(w)}for(let T=0;T<this._allData.length;T++)this._allData[T].tensor||(this._allInputIndices.push(T),this._allInputNames.push(y[T]));for(let T=0;T<r.outputsLength();T++){const w=r.outputs(T);if(m.has(w))throw new Error(`duplicated output name: ${w}`);const S=this._allData.push(new l)-1;m.set(w,S),this._allOutputIndices.push(S),this._allOutputNames.push(w)}if(!r.nodes)throw new Error("missing information in graph: node");for(let T=0;T<r.nodesLength();T++){const w=r.nodes(T);let S=w.name();if(!S)for(let E=0;S=`unnamed_${w.opType()}_${E}`,_.has(S);E++);if(_.has(S))throw new Error(`duplicated node name: ${S}`);const O=this._nodes.push(new o(w,S))-1;_.set(S,O)}for(let T=0;T<this._nodes.length;T++){const w=this._nodes[T],S=r.nodes(T);if(S==null)throw new Error(`No node exists at index ${T}`);if(S?.outputsLength()===0)throw new Error(`missing output for node: ${S.name}`);for(let O=0;O<S?.outputsLength();O++){const E=S?.outputs(O);let v=m.get(E);if(v===void 0&&(v=this._allData.push(new l)-1,m.set(E,v)),w.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=T,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");w.outputs.pop(),w.executeNode=!1,this._allData[v]._from=-1,this._allData[v].tensor=s.Tensor.fromOrtTensor(S.attributes(0).t())}}}for(let T=0;T<this._nodes.length;T++){const w=this._nodes[T],S=r.nodes(T);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),v=m.get(E);if(v===void 0)throw new Error(`unrecognized input '${E}' for node: ${S.name()}`);w.inputs.push(v),this._allData[v]._to.push(T)}}}checkIsAcyclic(){const r=new Set;this._allInputIndices.forEach(g=>{this._allData[g]._to.forEach(m=>{r.add(m)})});const i=Array.from(r),d=new Array(this._nodes.length).fill("white");for(;i.length>0;){const g=i.pop();d[g]==="gray"?d[g]="black":(i.push(g),d[g]="gray",this._nodes[g].outputs.forEach(m=>{const _=this._allData[m];if(_.tensor!==void 0)throw new Error("node outputs should not be initialized");if(_._from!==g)throw new Error("from property of the Value object doesn't match index of Node being processed");_._to.forEach(y=>{if(d[y]==="gray")throw new Error("model graph is cyclic");d[y]==="white"&&i.push(y)})}))}}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(d=>{const g=this._allData[d]._to.indexOf(i+r);g!==-1&&(this._allData[d]._to[g]=i)}),this._nodes[i].outputs.forEach(d=>{this._allData[d]._from&&this._allData[d]._from===i+r&&(this._allData[d]._from=i)})):(r++,this._nodes[i].outputs.forEach(d=>{this._allData[d]._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 d=-1;this._allData[i].from!==void 0&&this._allData[i].from!==-1?(d=this._nodes[this._allData[i].from].outputs.indexOf(i+r),d!==-1&&(this._nodes[this._allData[i].from].outputs[d]=i)):(d=this._allInputIndices.indexOf(i+r),d!==-1&&(this._allInputIndices[d]=i)),this._allData[i].to.forEach(g=>{d=this._nodes[g].inputs.indexOf(i+r),d!==-1&&(this._nodes[g].inputs[d]=i)}),this._allData[i].to.length===0&&(d=this._allOutputIndices.indexOf(i+r),d!==-1&&(this._allOutputIndices[d]=i))}}else r++,this._allData.splice(i,1),i--}deleteNode(r){const i=this._nodes[r];if(i.outputs.length>1){for(let T=1;T<i.outputs.length;T++)if(this._allData[i.outputs[T]].to.length>0)throw new Error("Node deletion with more than one output connected to other nodes is not supported. ")}i.executeNode=!1;const d=i.inputs[0],g=i.outputs[0],m=this._allData[g].to,_=this._allData[d].to.indexOf(r);if(_===-1)throw new Error("The Value object doesn't have the current Node in it's 'to' property ");this._allData[d].to.splice(_,1),this._allData[g]._to=[];const y=this._allOutputIndices.indexOf(g);if(y!==-1&&(this._allOutputIndices[y]=d),m&&m.length>0)for(const T of m){const w=this._nodes[T].inputs.indexOf(g);if(w===-1)throw new Error("The Node object doesn't have the output Value in it's 'inputs' property ");this._nodes[T].inputs[w]=d,this._allData[d].to.push(T)}}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 d=this._nodes[i[0]];if(d.opType==="Clip")if(d.inputs.length===1)try{r.attributes.set("activation_params","floats",[d.attributes.getFloat("min"),d.attributes.getFloat("max")])}catch{r.attributes.set("activation_params","floats",[h.MIN_CLIP,h.MAX_CLIP])}else{if(!(d.inputs.length>=3&&this._allData[d.inputs[1]].tensor!==void 0&&this._allData[d.inputs[2]].tensor!==void 0))continue;r.attributes.set("activation_params","floats",[this._allData[d.inputs[1]].tensor.floatData[0],this._allData[d.inputs[2]].tensor.floatData[0]])}r.attributes.set("activation","string",d.opType),this.deleteNode(i[0])}}}}},6231:(b,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.now=n.Profiler=n.Logger=void 0;const a={verbose:1e3,info:2e3,warning:4e3,error:5e3,fatal:6e3},u={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}`)}}}},c={provider:"console",minimalSeverity:"warning",logDateTime:!0,logSourceLocation:!1};let f={"":c};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=f[r||""]||f[""];a[o]<a[i.minimalSeverity]||(i.logDateTime&&(t=`${new Date().toISOString()}|${t}`),i.logSourceLocation,u[i.provider].log(o,t,r))}(function(o){function t(r){f={},e("",r||{})}function e(r,i){if(r==="*")t(i);else{const d=f[r]||c;f[r]={provider:i.provider||d.provider,minimalSeverity:i.minimalSeverity||d.minimalSeverity,logDateTime:i.logDateTime===void 0?d.logDateTime:i.logDateTime,logSourceLocation:i.logSourceLocation===void 0?d.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 p{constructor(t,e,r,i,d,g){this.category=t,this.name=e,this.startTime=r,this.endCallback=i,this.timer=d,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 l{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 d=!1;const g=e();if(g&&typeof g.then=="function")return d=!0,new Promise((m,_)=>{g.then(async y=>{i&&await i.end(),m(y)},async y=>{i&&await i.end(),_(y)})});if(!d&&i){const m=i.end();if(m&&typeof m.then=="function")return new Promise((_,y)=>{m.then(()=>{_(g)},T=>{y(T)})})}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 p(o,t,r,i=>this.endSync(i))}{const r=e.beginTimer();return new p(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 l(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 l(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:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Model=void 0;const u=a(5686),c=a(1446),f=a(7070),s=a(9395),h=a(2517);var p=s.onnxruntime.experimental.fbs;n.Model=class{constructor(){}load(l,o,t){if(!t)try{return void this.loadFromOnnxFormat(l,o)}catch(e){if(t!==void 0)throw e}this.loadFromOrtFormat(l,o)}loadFromOnnxFormat(l,o){const t=c.onnx.ModelProto.decode(l);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=f.Graph.from(t.graph,o)}loadFromOrtFormat(l,o){const t=new u.flatbuffers.ByteBuffer(l),e=p.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?.domain(),version:h.LongUtil.longToNumber(i.version())})}this._graph=f.Graph.from(e.graph(),o)}get graph(){return this._graph}get opsets(){return this._opsets}}},782:(b,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:(b,n)=>{function a(u,c){if(c.endsWith("+")){const f=Number.parseInt(c.substring(0,c.length-1),10);return!isNaN(f)&&f<=u}if(c.split("-").length===2){const f=c.split("-"),s=Number.parseInt(f[0],10),h=Number.parseInt(f[1],10);return!isNaN(s)&&!isNaN(h)&&s<=u&&u<=h}return Number.parseInt(c,10)===u}Object.defineProperty(n,"__esModule",{value:!0}),n.resolveOperator=void 0,n.resolveOperator=function(u,c,f){for(const s of f){const h=s[0],p=s[1],l=s[2],o=s[3],t=s[4];if(u.opType===h){for(const e of c)if((e.domain===p||e.domain==="ai.onnx"&&p==="")&&a(e.version,l))return{opImpl:o,opInit:t}}}throw new TypeError(`cannot resolve operator '${u.opType}' with opsets: ${c.map(s=>`${s.domain||"ai.onnx"} v${s.version}`).join(", ")}`)}},9395:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.onnxruntime=void 0;const u=a(5686);var c,f;c=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={}))}((f=c.experimental||(c.experimental={})).fbs||(f.fbs={})),function(s){(function(h){(function(p){(function(l){l[l.UNKNOWN=0]="UNKNOWN",l[l.VALUE=1]="VALUE",l[l.PARAM=2]="PARAM"})(p.DimensionValueType||(p.DimensionValueType={}))})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){(function(l){l[l.UNDEFINED=0]="UNDEFINED",l[l.FLOAT=1]="FLOAT",l[l.UINT8=2]="UINT8",l[l.INT8=3]="INT8",l[l.UINT16=4]="UINT16",l[l.INT16=5]="INT16",l[l.INT32=6]="INT32",l[l.INT64=7]="INT64",l[l.STRING=8]="STRING",l[l.BOOL=9]="BOOL",l[l.FLOAT16=10]="FLOAT16",l[l.DOUBLE=11]="DOUBLE",l[l.UINT32=12]="UINT32",l[l.UINT64=13]="UINT64",l[l.COMPLEX64=14]="COMPLEX64",l[l.COMPLEX128=15]="COMPLEX128",l[l.BFLOAT16=16]="BFLOAT16"})(p.TensorDataType||(p.TensorDataType={}))})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){(function(l){l[l.Primitive=0]="Primitive",l[l.Fused=1]="Fused"})(p.NodeType||(p.NodeType={}))})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){(function(l){l[l.NONE=0]="NONE",l[l.tensor_type=1]="tensor_type",l[l.sequence_type=2]="sequence_type",l[l.map_type=3]="map_type"})(p.TypeInfoValue||(p.TypeInfoValue={}))})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsShape(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startShape(t),l.addDim(t,e),l.endShape(t)}}p.Shape=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsDimension(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startDimension(t),l.addValue(t,e),l.addDenotation(t,r),l.endDimension(t)}}p.Dimension=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsDimensionValue(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startDimensionValue(t),l.addDimType(t,e),l.addDimValue(t,r),l.addDimParam(t,i),l.endDimensionValue(t)}}p.DimensionValue=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTensorTypeAndShape(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startTensorTypeAndShape(t),l.addElemType(t,e),l.addShape(t,r),l.endTensorTypeAndShape(t)}}p.TensorTypeAndShape=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMapType(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startMapType(t),l.addKeyType(t,e),l.addValueType(t,r),l.endMapType(t)}}p.MapType=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSequenceType(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startSequenceType(t),l.addElemType(t,e),l.endSequenceType(t)}}p.SequenceType=l})(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(p,l){return this.bb_pos=p,this.bb=l,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(p,l,o,t){return p.prep(4,12),p.writeInt32(t),p.writeInt32(o),p.writeInt32(l),p.offset()}}})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsNodeEdge(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startNodeEdge(t),l.addNodeIndex(t,e),l.addInputEdges(t,r),l.addOutputEdges(t,i),l.endNodeEdge(t)}}p.NodeEdge=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsNode(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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,d,g,m,_,y,T,w,S,O,E){return l.startNode(t),l.addName(t,e),l.addDocString(t,r),l.addDomain(t,i),l.addSinceVersion(t,d),l.addIndex(t,g),l.addOpType(t,m),l.addType(t,_),l.addExecutionProviderType(t,y),l.addInputs(t,T),l.addOutputs(t,w),l.addAttributes(t,S),l.addInputArgCounts(t,O),l.addImplicitInputs(t,E),l.endNode(t)}}p.Node=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsValueInfo(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startValueInfo(t),l.addName(t,e),l.addDocString(t,r),l.addType(t,i),l.endValueInfo(t)}}p.ValueInfo=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTypeInfo(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startTypeInfo(t),l.addDenotation(t,e),l.addValueType(t,r),l.addValue(t,i),l.endTypeInfo(t)}}p.TypeInfo=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsOperatorSetId(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startOperatorSetId(t),l.addDomain(t,e),l.addVersion(t,r),l.endOperatorSetId(t)}}p.OperatorSetId=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTensor(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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,d,g,m){return l.startTensor(t),l.addName(t,e),l.addDocString(t,r),l.addDims(t,i),l.addDataType(t,d),l.addRawData(t,g),l.addStringData(t,m),l.endTensor(t)}}p.Tensor=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSparseTensor(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startSparseTensor(t),l.addValues(t,e),l.addIndices(t,r),l.addDims(t,i),l.endSparseTensor(t)}}p.SparseTensor=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsAttribute(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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,d,g,m,_,y,T,w,S,O,E){return l.startAttribute(t),l.addName(t,e),l.addDocString(t,r),l.addType(t,i),l.addF(t,d),l.addI(t,g),l.addS(t,m),l.addT(t,_),l.addG(t,y),l.addFloats(t,T),l.addInts(t,w),l.addStrings(t,S),l.addTensors(t,O),l.addGraphs(t,E),l.endAttribute(t)}}p.Attribute=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsGraph(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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,d,g,m,_,y){return l.startGraph(t),l.addInitializers(t,e),l.addNodeArgs(t,r),l.addNodes(t,i),l.addMaxNodeIndex(t,d),l.addNodeEdges(t,g),l.addInputs(t,m),l.addOutputs(t,_),l.addSparseInitializers(t,y),l.endGraph(t)}}p.Graph=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsModel(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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,d,g,m,_,y,T){return l.startModel(t),l.addIrVersion(t,e),l.addOpsetImport(t,r),l.addProducerName(t,i),l.addProducerVersion(t,d),l.addDomain(t,g),l.addModelVersion(t,m),l.addDocString(t,_),l.addGraph(t,y),l.addGraphDocString(t,T),l.endModel(t)}}p.Model=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsKernelCreateInfos(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startKernelCreateInfos(t),l.addNodeIndices(t,e),l.addKernelDefHashes(t,r),l.endKernelCreateInfos(t)}}p.KernelCreateInfos=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSubGraphSessionState(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startSubGraphSessionState(t),l.addGraphId(t,e),l.addSessionState(t,r),l.endSubGraphSessionState(t)}}p.SubGraphSessionState=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSessionState(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startSessionState(t),l.addKernels(t,e),l.addSubGraphSessionStates(t,r),l.endSessionState(t)}}p.SessionState=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={})),function(s){(function(h){(function(p){class l{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 l).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsInferenceSession(t,e){return t.setPosition(t.position()+u.flatbuffers.SIZE_PREFIX_LENGTH),(e||new l).__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 l.startInferenceSession(t),l.addOrtVersion(t,e),l.addModel(t,r),l.addSessionState(t,i),l.endInferenceSession(t)}}p.InferenceSession=l})(h.fbs||(h.fbs={}))})(s.experimental||(s.experimental={}))}(n.onnxruntime||(n.onnxruntime={}))},7448:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.OnnxjsSessionHandler=void 0;const u=a(1670),c=a(9162);n.OnnxjsSessionHandler=class{constructor(f){this.session=f,this.inputNames=this.session.inputNames,this.outputNames=this.session.outputNames}async dispose(){}async run(f,s,h){const p=new Map;for(const t in f)if(Object.hasOwnProperty.call(f,t)){const e=f[t];p.set(t,new c.Tensor(e.dims,e.type,void 0,void 0,e.data))}const l=await this.session.run(p),o={};return l.forEach((t,e)=>{o[e]=new u.Tensor(t.type,t.data,t.dims)}),o}startProfiling(){this.session.startProfiling()}endProfiling(){this.session.endProfiling()}}},6919:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.Session=void 0;const u=a(7067),c=a(1296),f=a(7091),s=a(1036),h=a(6231),p=a(2644);n.Session=class{constructor(l={}){this._initialized=!1,this.backendHint=l.backendHint,this.profiler=h.Profiler.create(l.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(l,o,t){await this.profiler.event("session","Session.loadModel",async()=>{const e=await(0,f.resolveBackend)(this.backendHint);if(this.sessionHandler=e.createSessionHandler(this.context),this._model=new p.Model,typeof l=="string"){const r=l.endsWith(".ort");if(typeof fetch>"u"){const i=await(0,c.promisify)(u.readFile)(l);this.initialize(i,r)}else{const i=await fetch(l),d=await i.arrayBuffer();this.initialize(new Uint8Array(d),r)}}else if(ArrayBuffer.isView(l))this.initialize(l);else{const r=new Uint8Array(l,o||0,t||l.byteLength);this.initialize(r)}})}initialize(l,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(l,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(l){if(!this._initialized)throw new Error("session not initialized yet");return this.profiler.event("session","Session.run",async()=>{const o=this.normalizeAndValidateInputs(l),t=await this._executionPlan.execute(this.sessionHandler,o);return this.createOutput(t)})}normalizeAndValidateInputs(l){const o=this._model.graph.getInputNames();if(Array.isArray(l)){if(l.length!==o.length)throw new Error(`incorrect input array length: expected ${o.length} but got ${l.length}`)}else{if(l.size!==o.length)throw new Error(`incorrect input map size: expected ${o.length} but got ${l.size}`);const t=new Array(l.size);let e=0;for(let r=0;r<o.length;++r){const i=l.get(o[r]);if(!i)throw new Error(`missing input tensor for: '${name}'`);t[e++]=i}l=t}if(this.context.graphInputTypes&&this.context.graphInputTypes.length!==0&&this.context.graphInputDims&&this.context.graphInputDims.length!==0)this.validateInputTensorDims(this.context.graphInputDims,l,!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 d=e[t[i]];r[i]=d.type.shape.dims,this.context.graphInputTypes.push(d.type.tensorType),this.context.graphInputDims.push(l[i].dims)}this.validateInputTensorDims(r,l,!0)}return this.validateInputTensorTypes(this.context.graphInputTypes,l),l}validateInputTensorTypes(l,o){for(let t=0;t<o.length;t++){const e=l[t],r=o[t].type;if(e!==r)throw new Error(`input tensor[${t}] check failed: expected type '${e}' but got ${r}`)}}validateInputTensorDims(l,o,t){for(let e=0;e<o.length;e++){const r=l[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(l,o,t){if(l.length!==o.length)return!1;for(let e=0;e<l.length;++e)if(l[e]!==o[e]&&(!t||l[e]!==0))return!1;return!0}createOutput(l){const o=this._model.graph.getOutputNames();if(l.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],l[e]);return t}initializeOps(l){const o=l.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,l)}}},9162:function(b,n,a){var u=this&&this.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(n,"__esModule",{value:!0}),n.Tensor=void 0;const c=a(3442),f=u(a(3720)),s=a(1446),h=a(9395),p=a(2517);var l=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[p.ShapeUtil.indicesToOffset(g,this.strides)]}set(g,m){this.data[p.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=p.ShapeUtil.computeStrides(this.dims)),this._strides}constructor(g,m,_,y,T,w=c.Guid.create()){this.dims=g,this.type=m,this.dataProvider=_,this.asyncDataProvider=y,this.cache=T,this.dataId=w,this.size=p.ShapeUtil.validateDimsAndCalcSize(g);const S=this.size,O=_===void 0&&y===void 0&&T===void 0;if(T!==void 0&&T.length!==S)throw new RangeError("Input dims doesn't match data length.");if(m==="string"){if(!(T===void 0||Array.isArray(T)&&T.every(E=>typeof E=="string")))throw new TypeError("cache should be a string array");O&&(this.cache=new Array(S))}else{if(T!==void 0){const E=e(m);if(!(T instanceof E))throw new TypeError(`cache should be type ${E.name}`)}if(O){const E=new ArrayBuffer(S*function(v){switch(v){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 ${v}`)}}(m));this.cache=function(v,P){return new(e(P))(v)}(E,m)}}}static fromProto(g){if(!g)throw new Error("cannot construct Value from an empty tensor");const m=p.ProtoUtil.tensorDataTypeFromProto(g.dataType),_=p.ProtoUtil.tensorDimsFromProto(g.dims),y=new o(_,m);if(m==="string")g.stringData.forEach((T,w)=>{y.data[w]=(0,p.decodeUtf8String)(T)});else if(g.rawData&&typeof g.rawData.byteLength=="number"&&g.rawData.byteLength>0){const T=y.data,w=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(T.length!==O)throw new Error("buffer length mismatch");for(let E=0;E<O;E++){const v=i(w,g.dataType,E*S);T[E]=v}}else{let T;switch(g.dataType){case s.onnx.TensorProto.DataType.FLOAT:T=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:T=g.int32Data;break;case s.onnx.TensorProto.DataType.INT64:T=g.int64Data;break;case s.onnx.TensorProto.DataType.DOUBLE:T=g.doubleData;break;case s.onnx.TensorProto.DataType.UINT32:case s.onnx.TensorProto.DataType.UINT64:T=g.uint64Data;break;default:throw new Error("unspecific error")}if(T==null)throw new Error("failed to populate data from a tensorproto value");const w=y.data;if(w.length!==T.length)throw new Error("array length mismatch");for(let S=0;S<T.length;S++){const O=T[S];f.default.isLong(O)?w[S]=r(O,g.dataType):w[S]=O}}return y}static fromData(g,m,_){return new o(m,_,void 0,void 0,g)}static fromOrtTensor(g){if(!g)throw new Error("cannot construct Value from an empty tensor");const m=p.ProtoUtil.tensorDimsFromORTFormat(g),_=p.ProtoUtil.tensorDataTypeFromProto(g.dataType()),y=new o(m,_);if(_==="string")for(let T=0;T<g.stringDataLength();T++)y.data[T]=g.stringData(T);else if(g.rawDataArray()&&typeof g.rawDataLength()=="number"&&g.rawDataLength()>0){const T=y.data,w=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(T.length!==O)throw new Error("buffer length mismatch");for(let E=0;E<O;E++){const v=i(w,g.dataType(),E*S);T[E]=v}}return y}}function t(d){switch(d){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[d]}`)}}function e(d){switch(d){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(d,g){if(g===s.onnx.TensorProto.DataType.INT64||g===l.TensorDataType.INT64){if(d.greaterThanOrEqual(2147483648)||d.lessThan(-2147483648))throw new TypeError("int64 is not supported")}else{if(g!==s.onnx.TensorProto.DataType.UINT32&&g!==l.TensorDataType.UINT32&&g!==s.onnx.TensorProto.DataType.UINT64&&g!==l.TensorDataType.UINT64)throw new TypeError(`not a LONG type: ${s.onnx.TensorProto.DataType[g]}`);if(d.greaterThanOrEqual(4294967296)||d.lessThan(0))throw new TypeError("uint64 is not supported")}return d.toNumber()}function i(d,g,m){switch(g){case s.onnx.TensorProto.DataType.BOOL:case s.onnx.TensorProto.DataType.UINT8:return d.getUint8(m);case s.onnx.TensorProto.DataType.INT8:return d.getInt8(m);case s.onnx.TensorProto.DataType.UINT16:return d.getUint16(m,!0);case s.onnx.TensorProto.DataType.INT16:return d.getInt16(m,!0);case s.onnx.TensorProto.DataType.FLOAT:return d.getFloat32(m,!0);case s.onnx.TensorProto.DataType.INT32:return d.getInt32(m,!0);case s.onnx.TensorProto.DataType.UINT32:return d.getUint32(m,!0);case s.onnx.TensorProto.DataType.INT64:return r(f.default.fromBits(d.getUint32(m,!0),d.getUint32(m+4,!0),!1),g);case s.onnx.TensorProto.DataType.DOUBLE:return d.getFloat64(m,!0);case s.onnx.TensorProto.DataType.UINT64:return r(f.default.fromBits(d.getUint32(m,!0),d.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(b,n,a){var u=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 c=a(5686),f=u(a(3720)),s=a(1446),h=a(9162);n.checkInputsShape=function(g,...m){if(!g||g.length!==m.length)return!1;for(let _=0;_<g.length;_++)if(!g[_].dims||g[_].dims.length!==m[_])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 _=0;_<g.length;_++)if(g[_]!==m[_])return!1;return!0}};class p{static preprocessInputShapes(m,_){return[m.length===1?[1,m[0]]:m,_.length===1?[_[0],1]:_]}static postprocessOutputShape(m,_,y){_===1&&m.splice(m.length-2,1),y===1&&m.pop()}static calcMatMulShape(m,_){return m[1]!==_[0]?void 0:[m[0],_[1]]}}n.MatMulUtil=p;class l{static calcShape(m,_,y=!1){const T=m.length,w=_.length;if(T===0)return _;if(w===0)return m;const S=Math.max(m.length,_.length),O=new Array(S);if(y){if(T<2||w<2)return;const E=p.calcMatMulShape([m[T-2],m[T-1]],[_[w-2],_[w-1]]);if(E===void 0)return;[O[S-2],O[S-1]]=E}for(let E=y?3:1;E<=S;E++){const v=T-E<0?1:m[T-E],P=w-E<0?1:_[w-E];if(v!==P&&v>1&&P>1)return;O[S-E]=Math.max(v,P)}return O}static index(m,_){const y=new Array(_.length);return l.fillIndex(m,_,y),y}static fillIndex(m,_,y){const T=m.length-_.length;for(let w=0;w<_.length;w++)y[w]=m[T+w]%_[w]}static calc(m,_,y,T,w){const S=l.calcShape(m.dims,_.dims);if(S){if(T&&!e.areEqual(S,m.dims))return;const O=e.size(S),E=T?m:new h.Tensor(S,w||m.type);if(S.length===0)E.set([],y(m.get([]),_.get([])));else{const v=new Array(S.length),P=new Array(m.dims.length),L=new Array(_.dims.length);let V,R=0,k=0,Y=!1,C=!1;m.dims.length===0&&(R=m.get([]),Y=!0),_.dims.length===0&&(k=_.get([]),C=!0);for(let $=0;$<O;$++){V=$;for(let X=S.length-1;X>=0;X--)v[X]=V%S[X],V=Math.floor(V/S[X]);Y||(l.fillIndex(v,m.dims,P),R=m.get(P)),C||(l.fillIndex(v,_.dims,L),k=_.get(L)),E.set(v,y(R,k))}}return E}}static isValidBroadcast(m,_){const y=m.length,T=_.length;if(y>T)return!1;for(let w=1;w<=y;w++)if(m[y-w]!==1&&m[y-w]!==_[T-w])return!1;return!0}static getBroadcastDims(m,_){const y=m.length,T=[];for(let w=0;w<y;w++){const S=y-1-w,O=m[S]||1;(_[_.length-1-w]||1)>1&&O===1&&T.unshift(S)}return T}}n.BroadcastUtil=l,n.arrayCopyHelper=function(g,m,_,y,T){if(y<0||y>=m.length)throw new Error("sourceIndex out of bounds");if(_<0||_>=g.length)throw new Error("targetIndex out of bounds");if(y+T>m.length)throw new Error("source indices to be copied are outside bounds");if(_+T>g.length)throw new Error("target array is too small to hold result");for(let w=0;w<T;w++)g[_+w]=m[y+w]},n.GemmUtil=class{static getShapeOfGemmResult(g,m,_,y,T){if(g.length!==2||_.length!==2)throw new Error("shape need to be of size 2");let w,S,O;m?(w=g[1],S=g[0]):(w=g[0],S=g[1]);let E=-1;if(y?(O=_[0],E=1):(O=_[1],E=0),_[E]!==S)throw new Error("dimension mismatch");if(w<=0||O<=0||S<=0)throw new Error("invalid shape specified");if(T&&!l.isValidBroadcast(T,[w,O]))throw new Error("gemm: invalid bias shape for broadcast");return[w,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(_=>f.default.isLong(_)?_.toNumber():_)}static tensorValueTypeFromProto(m){return{tensorType:o.tensorDataTypeFromProto(m.elemType),shape:{dims:o.tensorDimsFromProto(m.shape.dim.map(_=>_.dimValue))}}}static tensorDimsFromORTFormat(m){const _=[];for(let y=0;y<m.dimsLength();y++)_.push(t.longToNumber(m.dims(y)));return _}static tensorAttributesFromORTFormat(m){const _=[];for(let y=0;y<m.attributesLength();y++)_.push(m.attributes(y));return _}}n.ProtoUtil=o;class t{static longToNumber(m,_){return f.default.isLong(m)?m.toNumber():m instanceof c.flatbuffers.Long?f.default.fromValue({low:m.low,high:m.high,unsigned:_!=null&&_}).toNumber():m}static isLong(m){return f.default.isLong(m)||m instanceof c.flatbuffers.Long}}n.LongUtil=t;class e{static size(m){return e.getSizeFromDimensionRange(m,0,m.length)}static sizeFromDimension(m,_){if(_<0||_>m.length)throw new Error(`invalid dimension of ${_} for sizeFromDimension as Tensor has ${m.length} dimensions.`);return e.getSizeFromDimensionRange(m,_,m.length)}static sizeToDimension(m,_){if(_<0||_>m.length)throw new Error(`invalid dimension of ${_} for sizeToDimension as Tensor has ${m.length} dimensions.`);return e.getSizeFromDimensionRange(m,0,_)}static getSizeFromDimensionRange(m,_,y){let T=1;for(let w=_;w<y;w++){if(m[w]<=0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains 0 or negative values in them.");T*=m[w]}return T}static computeStrides(m){const _=m.length;if(_===0)return[];if(_===1)return[1];const y=new Array(_);y[_-1]=1,y[_-2]=m[_-1];for(let T=_-3;T>=0;--T)y[T]=y[T+1]*m[T+1];return y}static transpose(m){return m.slice().reverse()}static indicesToOffset(m,_,y){y===void 0&&(y=m.length);let T=0;for(let w=0;w<y;++w)T+=_[w]*m[w];return T}static offsetToIndices(m,_){const y=_.length;if(y===0)return[];if(y===1)return[m*_[0]];const T=new Array(_.length);for(let w=0;w<T.length-1;++w)T[w]=Math.floor(m/_[w]),m-=T[w]*_[w];return T[T.length-1]=m,T}static normalizeAxis(m,_){if(m<-_&&m>=_)throw new Error("unsupported axis for this operation.");return m<0?m+_:m}static normalizeAxes(m,_){return m.map(y=>this.normalizeAxis(y,_))}static incrementIndex(m,_,y){if(_.length===0||m.length===0)throw new Error("Index incrementing unsupported for scalar Tensor");if(y===void 0)y=_.length;else if(y<=0||y>_.length)throw new Error("Incorrect axis to increment on");for(let T=y-1;T>=0&&(m[T]++,!(m[T]<_[T]));--T)m[T]=0}static calculateReshapedDims(m,_){if(_.length===0){if(m.length===0||e.size(m)===1)return[];throw new Error("cannot reshape to a scalar Tensor")}const y=_.length,T=new Array(y);let w=-1,S=1;for(let E=0;E<y;E++){if(_[E]<-1)throw new Error("a dimension in shape hints cannot be less than -1");if(_[E]===-1){if(w!==-1)throw new Error("at most one dimension in shape hints can be -1");w=E}else{if(_[E]===0){if(E>=m.length)throw new Error("the dimension with value zero exceeds the dimension size of the input tensor");T[E]=m[E]}else T[E]=_[E];S*=T[E]}}const O=e.size(m);if(w!==-1){if(O%S!=0)throw new Error(`the input tensor cannot be reshaped to the requested shape. Input shape: [${m}] Output shape: [${_}]`);T[w]=O/S}else if(S!==O)throw new Error("reshapedDims and originalDims don't have matching sizes");return T}static sortBasedOnPerm(m,_){return _?_.map(y=>m[y]):m.slice().reverse()}static padShape(m,_){const y=m.length;return m.map((T,w)=>T+_[w]+_[w+y])}static areEqual(m,_){return m.length===_.length&&m.every((y,T)=>y===_[T])}static validateDimsAndCalcSize(m){if(m.length>6)throw new TypeError("Only rank 0 to 6 is supported for tensor shape.");let _=1;for(const y of m){if(!Number.isInteger(y))throw new TypeError(`Invalid shape: ${y} is not an integer`);if(y<0||y>2147483647)throw new TypeError(`Invalid shape: length ${y} is not allowed`);_*=y}return _}static flattenShape(m,_){_<0&&(_+=m.length);const y=m.reduce((w,S)=>w*S,1),T=m.slice(_).reduce((w,S)=>w*S,1);return[y/T,T]}static squeezeShape(m,_){const y=new Array;_=e.normalizeAxes(_,m.length);for(let T=0;T<m.length;T++){const w=_.indexOf(T)>=0;if(w&&m[T]!==1)throw new Error("squeeze an axis of size different than 1");(_.length===0&&m[T]>1||_.length>0&&!w)&&y.push(m[T])}return y}static unsqueezeShape(m,_){const y=new Array(m.length+_.length);y.fill(0);for(let w=0;w<_.length;w++){const S=e.normalizeAxis(_[w],y.length);if(S>=y.length)throw new Error("'axes' has an out of range axis");if(y[S]!==0)throw new Error("'axes' has a duplicate axis");y[S]=1}let T=0;for(let w=0;w<y.length;w++)y[w]===0&&(y[w]=m[T++]);if(T!==m.length)throw new Error("the unsqueezed dimension could not be established");return y}}n.ShapeUtil=e,n.MathUtil=class{static sqr(g,m,_,y,T){if(y<0||y>=m.length)throw new Error("sourceIndex out of bounds");if(_<0||_>=g.length)throw new Error("targetIndex out of bounds");if(y+T>m.length)throw new Error("source indices to be copied are outside bounds");if(_+T>g.length)throw new Error("target array is too small to hold result");for(let w=0;w<T;w++)g[_+w]+=Math.pow(m[y+w],2)}static axpy(g,m,_,y,T,w){if(y<0||y>=m.length)throw new Error("sourceIndex out of bounds");if(_<0||_>=g.length)throw new Error("targetIndex out of bounds");if(y+T>m.length)throw new Error("source indices to be copied are outside bounds");if(_+T>g.length)throw new Error("target array is too small to hold result");for(let S=0;S<T;S++)g[_+S]+=w*m[y+S]}static powx(g,m,_,y,T,w){if(y<0||y>=m.length)throw new Error("sourceIndex out of bounds");if(_<0||_>=g.length)throw new Error("targetIndex out of bounds");if(y+T>m.length)throw new Error("source indices to be copied are outside bounds");if(_+T>g.length)throw new Error("target array is too small to hold result");for(let S=0;S<T;S++)g[_+S]=Math.pow(m[y+S],w)}static mul(g,m,_,y,T){if(y<0||y>=m.length)throw new Error("sourceIndex out of bounds");if(_<0||_>=g.length)throw new Error("targetIndex out of bounds");if(y+T>m.length)throw new Error("source indices to be copied are outside bounds");if(_+T>g.length)throw new Error("target array is too small to hold result");for(let w=0;w<T;w++)g[_+w]=m[y+w]*g[_+w]}};class r{static splitShape(m,_,y,T){if(y.length===0){if(!T)throw new Error("need to know number of outputs when the 'split' attribute is not specified");r.determineSplit(m[_],T,y)}const w=[],S=[0];for(let O=0;O<y.length;++O){O!==0&&S.push(S[O-1]+y[O-1]);const E=m.slice();E[_]=y[O],w.push(E)}return[w,S]}static determineSplit(m,_,y){if(m%_!=0)throw new Error("cannot split tensor to equal sized parts");for(let T=0;T<_;++T)y.push(m/_)}}n.SplitUtil=r;class i{static calcReduce(m,_,y,T,w){const S=m.dims.slice(0);_.length===0&&S.forEach((R,k)=>_.push(k));const O=i.calcReduceShape(S,_,!0),E=e.size(O),v=new h.Tensor(O,m.type),P=e.computeStrides(O),L=e.computeStrides(S),V=new Array(S.length);for(let R=0;R<E;R++){const k=e.offsetToIndices(R,P);l.fillIndex(k,S,V),v.set(k,i.calcReduceByAxis(m.numberData,_,S,0,e.indicesToOffset(V,L),T,w))}return y?v:new h.Tensor(i.calcReduceShape(S,_,y),v.type,void 0,void 0,v.data,v.dataId)}static calcReduceByAxis(m,_,y,T,w,S,O){let E=0;if(T>=_.length)return S(m[w]);const v=_[T],P=v>=y.length?1:e.size(y.slice(v+1));for(let L=0;L<y[v];L++)E=L===0?i.calcReduceByAxis(m,_,y,T+1,w,S,O):O(E,i.calcReduceByAxis(m,_,y,T+1,w,S,O)),w+=P;return E}static calcReduceShape(m,_,y){const T=m.slice();for(let w=0;w<_.length;w++)T[_[w]]=y?1:0;return T.filter(w=>w!==0)}}n.ReduceUtil=i;class d{static adjustPoolAttributes(m,_,y,T,w,S){if(!m&&y.length!==_.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<_.length-2;O++)O>=y.length?y.push(_[O+2]):y[O]=_[O+2];for(let O=0;O<y.length;O++)if(O<T.length){if(T[O]<0)throw new Error("strides should be greater than or equal to 1")}else T.push(1);for(let O=0;O<y.length;O++)if(O<w.length){if(w[O]<0)throw new Error("dilations should be greater than or equal to 1")}else w.push(1);for(let O=0;O<2*y.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<y.length;O++){if(y[O]<=0)throw new Error("kernel shapes need to be greater than 0");if(S[O]>=y[O]||S[O+y.length]>=y[O])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(m,_,y,T,w,S){if(S){if(w.length!==2*(m.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(_.length!==m.length-2)throw new Error("length of strides should be the length of data dimensions");if(T.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++)d.adjustPadAndReturnShape(m[O+2],_[O],y[O],T[O],w,O,O+m.length-2,S)}}static computePoolOutputShape(m,_,y,T,w,S,O){if(_.length<=0)throw new Error("input shape must be of size greater than 0");const E=[_[0],_[1]];return d.computeShapeHelper(m,_,E,y,T,w,S,O),E}static computeConvOutputShape(m,_,y,T,w,S,O){if(m.length<=0||_.length<=0)throw new Error("invalid input tensor dims or invalid filter tensor dims");const E=[m[0],_[0]];return d.computeShapeHelper(!1,m,E,y,T,w,S,O),E}static computeShapeHelper(m,_,y,T,w,S,O,E){if(m)for(let v=0;v<_.length-2;v++)y.push(1);else for(let v=0;v<_.length-2;v++)y.push(d.adjustPadAndReturnShape(_[v+2],T[v],w[v],S[v],O,v,v+_.length-2,E))}static adjustPadAndReturnShape(m,_,y,T,w,S,O,E){const v=y*(T-1)+1;if(!E||E==="NOTSET")return Math.floor((m+w[S]+w[O]-v)/_+1);switch(E){case"VALID":return w[S]=0,w[O]=0,Math.floor((m-v)/_+1);case"SAME_LOWER":case"SAME_UPPER":if(y!==1)throw new Error("Dilation not supported for SAME_UPPER or SAME_LOWER");{const P=((m+_-1)/_-1)*_+T-m;return w[S]=Math.floor(E==="SAME_LOWER"?(P+1)/2:P/2),w[O]=P-w[S],Math.floor((m+P-T)/_+1)}default:throw new Error("Unsupported AutoPad type")}}}n.PoolConvUtil=d,n.MIN_CLIP=-34028234663852886e22,n.MAX_CLIP=34028234663852886e22,n.decodeUtf8String=function(g){return new TextDecoder().decode(g)}},7967:(b,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.iterateExtraOptions=void 0,n.iterateExtraOptions=(a,u,c,f)=>{if(typeof a=="object"&&a!==null){if(c.has(a))throw new Error("Circular reference in options");c.add(a)}Object.entries(a).forEach(([s,h])=>{const p=u?u+s:s;if(typeof h=="object")(0,n.iterateExtraOptions)(h,p+".",c,f);else if(typeof h=="string"||typeof h=="number")f(p,h.toString());else{if(typeof h!="boolean")throw new Error("Can't handle extra config type: "+typeof h);f(p,h?"1":"0")}})}},2157:function(b,n,a){var u,c=this&&this.__createBinding||(Object.create?function(P,L,V,R){R===void 0&&(R=V);var k=Object.getOwnPropertyDescriptor(L,V);k&&!("get"in k?!L.__esModule:k.writable||k.configurable)||(k={enumerable:!0,get:function(){return L[V]}}),Object.defineProperty(P,R,k)}:function(P,L,V,R){R===void 0&&(R=V),P[R]=L[V]}),f=this&&this.__setModuleDefault||(Object.create?function(P,L){Object.defineProperty(P,"default",{enumerable:!0,value:L})}:function(P,L){P.default=L}),s=this&&this.__importStar||function(P){if(P&&P.__esModule)return P;var L={};if(P!=null)for(var V in P)V!=="default"&&Object.prototype.hasOwnProperty.call(P,V)&&c(L,P,V);return f(L,P),L};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=a(1670),p=s(a(349)),l=a(6361),o=()=>!!h.env.wasm.proxy&&typeof document<"u";let t,e,r,i=!1,d=!1,g=!1;const m=[],_=[],y=[],T=[],w=[],S=[],O=()=>{if(i||!d||g||!t)throw new Error("worker not ready")},E=P=>{switch(P.data.type){case"init-wasm":i=!1,P.data.err?(g=!0,e[1](P.data.err)):(d=!0,e[0]());break;case"init-ort":P.data.err?r[1](P.data.err):r[0]();break;case"create_allocate":P.data.err?m.shift()[1](P.data.err):m.shift()[0](P.data.out);break;case"create_finalize":P.data.err?_.shift()[1](P.data.err):_.shift()[0](P.data.out);break;case"create":P.data.err?y.shift()[1](P.data.err):y.shift()[0](P.data.out);break;case"release":P.data.err?T.shift()[1](P.data.err):T.shift()[0]();break;case"run":P.data.err?w.shift()[1](P.data.err):w.shift()[0](P.data.out);break;case"end-profiling":P.data.err?S.shift()[1](P.data.err):S.shift()[0]()}},v=typeof document<"u"?(u=document?.currentScript)===null||u===void 0?void 0:u.src:void 0;n.initWasm=async()=>{if(o()){if(d)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&&v&&v.indexOf("blob:")!==0&&(h.env.wasm.wasmPaths=v.substr(0,+v.lastIndexOf("/")+1)),new Promise((P,L)=>{t?.terminate(),t=a(9710).Z(),t.onmessage=E,e=[P,L];const V={type:"init-wasm",in:h.env.wasm};t.postMessage(V)})}return(0,l.initializeWebAssembly)(h.env.wasm)},n.initOrt=async(P,L)=>{if(o())return O(),new Promise((V,R)=>{r=[V,R];const k={type:"init-ort",in:{numThreads:P,loggingLevel:L}};t.postMessage(k)});p.initOrt(P,L)},n.createSessionAllocate=async P=>o()?(O(),new Promise((L,V)=>{m.push([L,V]);const R={type:"create_allocate",in:{model:P}};t.postMessage(R,[P.buffer])})):p.createSessionAllocate(P),n.createSessionFinalize=async(P,L)=>o()?(O(),new Promise((V,R)=>{_.push([V,R]);const k={type:"create_finalize",in:{modeldata:P,options:L}};t.postMessage(k)})):p.createSessionFinalize(P,L),n.createSession=async(P,L)=>o()?(O(),new Promise((V,R)=>{y.push([V,R]);const k={type:"create",in:{model:P,options:L}};t.postMessage(k,[P.buffer])})):p.createSession(P,L),n.releaseSession=async P=>{if(o())return O(),new Promise((L,V)=>{T.push([L,V]);const R={type:"release",in:P};t.postMessage(R)});p.releaseSession(P)},n.run=async(P,L,V,R,k)=>o()?(O(),new Promise((Y,C)=>{w.push([Y,C]);const $={type:"run",in:{sessionId:P,inputIndices:L,inputs:V,outputIndices:R,options:k}};t.postMessage($,p.extractTransferableBuffers(V))})):p.run(P,L,V,R,k),n.endProfiling=async P=>{if(o())return O(),new Promise((L,V)=>{S.push([L,V]);const R={type:"end-profiling",in:P};t.postMessage(R)});p.endProfiling(P)}},586:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.setRunOptions=void 0;const u=a(7967),c=a(4983),f=a(6361);n.setRunOptions=s=>{const h=(0,f.getInstance)();let p=0;const l=[],o=s||{};try{if(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?.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?.terminate===void 0&&(o.terminate=!1);let t=0;if(s?.tag!==void 0&&(t=(0,c.allocWasmString)(s.tag,l)),p=h._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,t),p===0)throw new Error("Can't create run options");return s?.extra!==void 0&&(0,u.iterateExtraOptions)(s.extra,"",new WeakSet,(e,r)=>{const i=(0,c.allocWasmString)(e,l),d=(0,c.allocWasmString)(r,l);if(h._OrtAddRunConfigEntry(p,i,d)!==0)throw new Error(`Can't set a run config entry: ${e} - ${r}`)}),[p,l]}catch(t){throw p!==0&&h._OrtReleaseRunOptions(p),l.forEach(h._free),t}}},2306:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.OnnxruntimeWebAssemblySessionHandler=void 0;const u=a(2806),c=a(1670),f=a(2850),s=a(2157);let h;n.OnnxruntimeWebAssemblySessionHandler=class{async createSessionAllocate(p){const l=await fetch(p),o=await l.arrayBuffer();return(0,s.createSessionAllocate)(new Uint8Array(o))}async loadModel(p,l){if(h||(await(0,s.initOrt)(c.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}`)}})(c.env.logLevel)),h=!0),typeof p=="string")if(typeof fetch>"u"){const o=await(0,f.promisify)(u.readFile)(p);[this.sessionId,this.inputNames,this.outputNames]=await(0,s.createSession)(o,l)}else{const o=await this.createSessionAllocate(p);[this.sessionId,this.inputNames,this.outputNames]=await(0,s.createSessionFinalize)(o,l)}else[this.sessionId,this.inputNames,this.outputNames]=await(0,s.createSession)(p,l)}async dispose(){return(0,s.releaseSession)(this.sessionId)}async run(p,l,o){const t=[],e=[];Object.entries(p).forEach(g=>{const m=g[0],_=g[1],y=this.inputNames.indexOf(m);if(y===-1)throw new Error(`invalid input '${m}'`);t.push(_),e.push(y)});const r=[];Object.entries(l).forEach(g=>{const m=g[0],_=this.outputNames.indexOf(m);if(_===-1)throw new Error(`invalid output '${m}'`);r.push(_)});const i=await(0,s.run)(this.sessionId,e,t.map(g=>[g.type,g.dims,g.data]),r,o),d={};for(let g=0;g<i.length;g++)d[this.outputNames[r[g]]]=new c.Tensor(i[g][0],i[g][2],i[g][1]);return d}startProfiling(){}endProfiling(){(0,s.endProfiling)(this.sessionId)}}},4919:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.setSessionOptions=void 0;const u=a(7967),c=a(4983),f=a(6361);n.setSessionOptions=s=>{const h=(0,f.getInstance)();let p=0;const l=[],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?.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?.enableCpuMemArena===void 0&&(o.enableCpuMemArena=!0),s?.enableMemPattern===void 0&&(o.enableMemPattern=!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?.logId!==void 0&&(r=(0,c.allocWasmString)(s.logId,l)),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?.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?.enableProfiling===void 0&&(o.enableProfiling=!1),p=h._OrtCreateSessionOptions(t,!!o.enableCpuMemArena,!!o.enableMemPattern,e,!!o.enableProfiling,0,r,o.logSeverityLevel,o.logVerbosityLevel),p===0)throw new Error("Can't create session options");return s?.executionProviders&&((i,d,g)=>{for(const m of d){let _=typeof m=="string"?m:m.name;switch(_){case"xnnpack":_="XNNPACK";break;case"wasm":case"cpu":continue;default:throw new Error(`not supported EP: ${_}`)}const y=(0,c.allocWasmString)(_,g);if((0,f.getInstance)()._OrtAppendExecutionProvider(i,y)!==0)throw new Error(`Can't append execution provider: ${_}`)}})(p,s.executionProviders,l),s?.extra!==void 0&&(0,u.iterateExtraOptions)(s.extra,"",new WeakSet,(i,d)=>{const g=(0,c.allocWasmString)(i,l),m=(0,c.allocWasmString)(d,l);if(h._OrtAddSessionConfigEntry(p,g,m)!==0)throw new Error(`Can't set a session config entry: ${i} - ${d}`)}),[p,l]}catch(t){throw p!==0&&h._OrtReleaseSessionOptions(p),l.forEach(h._free),t}}},4983:(b,n,a)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.allocWasmString=void 0;const u=a(6361);n.allocWasmString=(c,f)=>{const s=(0,u.getInstance)(),h=s.lengthBytesUTF8(c)+1,p=s._malloc(h);return s.stringToUTF8(c,p,h),f.push(p),p}},349:(b,n,a)=>{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 u=a(586),c=a(4919),f=a(4983),s=a(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,d=0,g=[];try{if([d,g]=(0,c.setSessionOptions)(e),i=r._OrtCreateSession(t[0],t[1],d),i===0)throw new Error("Can't create a session")}finally{r._free(t[0]),r._OrtReleaseSessionOptions(d),g.forEach(r._free)}const m=r._OrtGetInputCount(i),_=r._OrtGetOutputCount(i),y=[],T=[],w=[],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");T.push(E),y.push(r.UTF8ToString(E))}for(let O=0;O<_;O++){const E=r._OrtGetOutputName(i,O);if(E===0)throw new Error("Can't get an output name");S.push(E),w.push(r.UTF8ToString(E))}return h.set(i,[i,T,S]),[i,y,w]},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],d=r[1],g=r[2];d.forEach(e._OrtFree),g.forEach(e._OrtFree),e._OrtReleaseSession(i),h.delete(t)};const p=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}`)}},l=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,d)=>{const g=(0,s.getInstance)(),m=h.get(t);if(!m)throw new Error("invalid session id");const _=m[0],y=m[1],T=m[2],w=e.length,S=i.length;let O=0,E=[];const v=[],P=[];try{[O,E]=(0,u.setRunOptions)(d);for(let C=0;C<w;C++){const $=r[C][0],X=r[C][1],z=r[C][2];let Z,J;if(Array.isArray(z)){J=4*z.length,Z=g._malloc(J),P.push(Z);let Te=Z/4;for(let se=0;se<z.length;se++){if(typeof z[se]!="string")throw new TypeError(`tensor data at index ${se} is not a string`);g.HEAPU32[Te++]=(0,f.allocWasmString)(z[se],P)}}else J=z.byteLength,Z=g._malloc(J),P.push(Z),g.HEAPU8.set(new Uint8Array(z.buffer,z.byteOffset,J),Z);const ue=g.stackSave(),Se=g.stackAlloc(4*X.length);try{let Te=Se/4;X.forEach(ye=>g.HEAP32[Te++]=ye);const se=g._OrtCreateTensor(p($),Z,J,Se,X.length);if(se===0)throw new Error("Can't create a tensor");v.push(se)}finally{g.stackRestore(ue)}}const L=g.stackSave(),V=g.stackAlloc(4*w),R=g.stackAlloc(4*w),k=g.stackAlloc(4*S),Y=g.stackAlloc(4*S);try{let C=V/4,$=R/4,X=k/4,z=Y/4;for(let ue=0;ue<w;ue++)g.HEAPU32[C++]=v[ue],g.HEAPU32[$++]=y[e[ue]];for(let ue=0;ue<S;ue++)g.HEAPU32[X++]=0,g.HEAPU32[z++]=T[i[ue]];let Z=g._OrtRun(_,R,V,w,Y,S,k,O);const J=[];if(Z===0)for(let ue=0;ue<S;ue++){const Se=g.HEAPU32[k/4+ue],Te=g.stackSave(),se=g.stackAlloc(16);let ye,be=0;try{if(Z=g._OrtGetTensorData(Se,se,se+4,se+8,se+12),Z!==0)throw new Error(`Can't access output tensor data. error code = ${Z}`);let Ie=se/4;const Le=g.HEAPU32[Ie++];be=g.HEAPU32[Ie++];const ve=g.HEAPU32[Ie++],Ne=g.HEAPU32[Ie++],Fe=[];for(let Oe=0;Oe<Ne;Oe++)Fe.push(g.HEAPU32[ve/4+Oe]);g._OrtFree(ve);const Me=Fe.length===0?1:Fe.reduce((Oe,Be)=>Oe*Be);if(ye=l(Le),ye==="string"){const Oe=[];let Be=be/4;for(let Ue=0;Ue<Me;Ue++){const ze=g.HEAPU32[Be++],He=Ue===Me-1?void 0:g.HEAPU32[Be]-ze;Oe.push(g.UTF8ToString(ze,He))}J.push([ye,Fe,Oe])}else{const Oe=new(o(ye))(Me);new Uint8Array(Oe.buffer,Oe.byteOffset,Oe.byteLength).set(g.HEAPU8.subarray(be,be+Oe.byteLength)),J.push([ye,Fe,Oe])}}finally{g.stackRestore(Te),ye==="string"&&be&&g._free(be),g._OrtReleaseTensor(Se)}}if(Z===0)return J;throw new Error(`failed to call OrtRun(). error code = ${Z}.`)}finally{g.stackRestore(L)}}finally{v.forEach(g._OrtReleaseTensor),P.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],d=e._OrtEndProfiling(i);if(d===0)throw new Error("Can't get an profile file name");e._OrtFree(d)},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(b,n,a){var u=this&&this.__createBinding||(Object.create?function(d,g,m,_){_===void 0&&(_=m);var y=Object.getOwnPropertyDescriptor(g,m);y&&!("get"in y?!g.__esModule:y.writable||y.configurable)||(y={enumerable:!0,get:function(){return g[m]}}),Object.defineProperty(d,_,y)}:function(d,g,m,_){_===void 0&&(_=m),d[_]=g[m]}),c=this&&this.__setModuleDefault||(Object.create?function(d,g){Object.defineProperty(d,"default",{enumerable:!0,value:g})}:function(d,g){d.default=g}),f=this&&this.__importStar||function(d){if(d&&d.__esModule)return d;var g={};if(d!=null)for(var m in d)m!=="default"&&Object.prototype.hasOwnProperty.call(d,m)&&u(g,d,m);return c(g,d),g},s=this&&this.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(n,"__esModule",{value:!0}),n.dispose=n.getInstance=n.initializeWebAssembly=void 0;const h=f(a(6449)),p=s(a(932)),l=a(3474);let o,t=!1,e=!1,r=!1;const i=(d,g)=>g?d?"ort-wasm-simd-threaded.wasm":"ort-wasm-threaded.wasm":d?"ort-wasm-simd.wasm":"ort-wasm.wasm";n.initializeWebAssembly=async d=>{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=d.initTimeout,m=d.numThreads,_=d.simd,y=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}})(),T=_&&(()=>{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}})(),w=typeof d.wasmPaths=="string"?d.wasmPaths:void 0,S=i(!1,y),O=i(T,y),E=typeof d.wasmPaths=="object"?d.wasmPaths[O]:void 0;let v=!1;const P=[];if(g>0&&P.push(new Promise(L=>{setTimeout(()=>{v=!0,L()},g)})),P.push(new Promise((L,V)=>{const R=y?l:p.default,k={locateFile:(Y,C)=>y&&Y.endsWith(".worker.js")&&typeof Blob<"u"?URL.createObjectURL(new Blob([a(4154)],{type:"text/javascript"})):Y===S?E??(w??C)+O:C+Y};if(y)if(typeof Blob>"u")k.mainScriptUrlOrBlob=h.join("/","ort-wasm-threaded.js");else{const Y=`var ortWasmThreaded=(function(){var _scriptDir;return ${R.toString()}})();`;k.mainScriptUrlOrBlob=new Blob([Y],{type:"text/javascript"})}R(k).then(Y=>{e=!1,t=!0,o=Y,L()},Y=>{e=!1,r=!0,V(Y)})})),await Promise.race(P),v)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 d;!t||e||r||(e=!0,(d=o.PThread)===null||d===void 0||d.terminateAllThreads(),o=void 0,e=!1,t=!1,r=!0)}},9710:(b,n,a)=>{a.d(n,{Z:()=>f});var u=a(477),c=a.n(u);function f(){return c()('/*!\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&&gt(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&&lt(1,10),st[2].length&&lt(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:b=>{b.exports=function(n,a,u,c){var f=self||window;try{try{var s;try{s=new f.Blob([n])}catch{(s=new(f.BlobBuilder||f.WebKitBlobBuilder||f.MozBlobBuilder||f.MSBlobBuilder)).append(n),s=s.getBlob()}var h=f.URL||f.webkitURL,p=h.createObjectURL(s),l=new f[a](p,u);return h.revokeObjectURL(p),l}catch{return new f[a]("data:application/javascript,".concat(encodeURIComponent(n)),u)}}catch{if(!c)throw Error("Inline worker is not supported");return new f[a](c,u)}}},4154:b=>{b.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:b=>{b.exports=__WEBPACK_EXTERNAL_MODULE__1670__},7067:()=>{},1296:()=>{},1384:()=>{},3993:()=>{},908:()=>{},6953:()=>{},9925:()=>{},2806:()=>{},6449:()=>{},2850:()=>{},5381:()=>{},5686:(b,n,a)=>{a.r(n),a.d(n,{flatbuffers:()=>u});var u={};u.Offset,u.Table,u.SIZEOF_SHORT=2,u.SIZEOF_INT=4,u.FILE_IDENTIFIER_LENGTH=4,u.SIZE_PREFIX_LENGTH=4,u.Encoding={UTF8_BYTES:1,UTF16_STRING:2},u.int32=new Int32Array(2),u.float32=new Float32Array(u.int32.buffer),u.float64=new Float64Array(u.int32.buffer),u.isLittleEndian=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1,u.Long=function(c,f){this.low=0|c,this.high=0|f},u.Long.create=function(c,f){return c==0&&f==0?u.Long.ZERO:new u.Long(c,f)},u.Long.prototype.toFloat64=function(){return(this.low>>>0)+4294967296*this.high},u.Long.prototype.equals=function(c){return this.low==c.low&&this.high==c.high},u.Long.ZERO=new u.Long(0,0),u.Builder=function(c){if(c)f=c;else var f=1024;this.bb=u.ByteBuffer.allocate(f),this.space=f,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},u.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},u.Builder.prototype.forceDefaults=function(c){this.force_defaults=c},u.Builder.prototype.dataBuffer=function(){return this.bb},u.Builder.prototype.asUint8Array=function(){return this.bb.bytes().subarray(this.bb.position(),this.bb.position()+this.offset())},u.Builder.prototype.prep=function(c,f){c>this.minalign&&(this.minalign=c);for(var s=1+~(this.bb.capacity()-this.space+f)&c-1;this.space<s+c+f;){var h=this.bb.capacity();this.bb=u.Builder.growByteBuffer(this.bb),this.space+=this.bb.capacity()-h}this.pad(s)},u.Builder.prototype.pad=function(c){for(var f=0;f<c;f++)this.bb.writeInt8(--this.space,0)},u.Builder.prototype.writeInt8=function(c){this.bb.writeInt8(this.space-=1,c)},u.Builder.prototype.writeInt16=function(c){this.bb.writeInt16(this.space-=2,c)},u.Builder.prototype.writeInt32=function(c){this.bb.writeInt32(this.space-=4,c)},u.Builder.prototype.writeInt64=function(c){this.bb.writeInt64(this.space-=8,c)},u.Builder.prototype.writeFloat32=function(c){this.bb.writeFloat32(this.space-=4,c)},u.Builder.prototype.writeFloat64=function(c){this.bb.writeFloat64(this.space-=8,c)},u.Builder.prototype.addInt8=function(c){this.prep(1,0),this.writeInt8(c)},u.Builder.prototype.addInt16=function(c){this.prep(2,0),this.writeInt16(c)},u.Builder.prototype.addInt32=function(c){this.prep(4,0),this.writeInt32(c)},u.Builder.prototype.addInt64=function(c){this.prep(8,0),this.writeInt64(c)},u.Builder.prototype.addFloat32=function(c){this.prep(4,0),this.writeFloat32(c)},u.Builder.prototype.addFloat64=function(c){this.prep(8,0),this.writeFloat64(c)},u.Builder.prototype.addFieldInt8=function(c,f,s){(this.force_defaults||f!=s)&&(this.addInt8(f),this.slot(c))},u.Builder.prototype.addFieldInt16=function(c,f,s){(this.force_defaults||f!=s)&&(this.addInt16(f),this.slot(c))},u.Builder.prototype.addFieldInt32=function(c,f,s){(this.force_defaults||f!=s)&&(this.addInt32(f),this.slot(c))},u.Builder.prototype.addFieldInt64=function(c,f,s){!this.force_defaults&&f.equals(s)||(this.addInt64(f),this.slot(c))},u.Builder.prototype.addFieldFloat32=function(c,f,s){(this.force_defaults||f!=s)&&(this.addFloat32(f),this.slot(c))},u.Builder.prototype.addFieldFloat64=function(c,f,s){(this.force_defaults||f!=s)&&(this.addFloat64(f),this.slot(c))},u.Builder.prototype.addFieldOffset=function(c,f,s){(this.force_defaults||f!=s)&&(this.addOffset(f),this.slot(c))},u.Builder.prototype.addFieldStruct=function(c,f,s){f!=s&&(this.nested(f),this.slot(c))},u.Builder.prototype.nested=function(c){if(c!=this.offset())throw new Error("FlatBuffers: struct must be serialized inline.")},u.Builder.prototype.notNested=function(){if(this.isNested)throw new Error("FlatBuffers: object serialization must not be nested.")},u.Builder.prototype.slot=function(c){this.vtable[c]=this.offset()},u.Builder.prototype.offset=function(){return this.bb.capacity()-this.space},u.Builder.growByteBuffer=function(c){var f=c.capacity();if(3221225472&f)throw new Error("FlatBuffers: cannot grow buffer beyond 2 gigabytes.");var s=f<<1,h=u.ByteBuffer.allocate(s);return h.setPosition(s-f),h.bytes().set(c.bytes(),s-f),h},u.Builder.prototype.addOffset=function(c){this.prep(u.SIZEOF_INT,0),this.writeInt32(this.offset()-c+u.SIZEOF_INT)},u.Builder.prototype.startObject=function(c){this.notNested(),this.vtable==null&&(this.vtable=[]),this.vtable_in_use=c;for(var f=0;f<c;f++)this.vtable[f]=0;this.isNested=!0,this.object_start=this.offset()},u.Builder.prototype.endObject=function(){if(this.vtable==null||!this.isNested)throw new Error("FlatBuffers: endObject called without startObject");this.addInt32(0);for(var c=this.offset(),f=this.vtable_in_use-1;f>=0&&this.vtable[f]==0;f--);for(var s=f+1;f>=0;f--)this.addInt16(this.vtable[f]!=0?c-this.vtable[f]:0);this.addInt16(c-this.object_start);var h=(s+2)*u.SIZEOF_SHORT;this.addInt16(h);var p=0,l=this.space;e:for(f=0;f<this.vtables.length;f++){var o=this.bb.capacity()-this.vtables[f];if(h==this.bb.readInt16(o)){for(var t=u.SIZEOF_SHORT;t<h;t+=u.SIZEOF_SHORT)if(this.bb.readInt16(l+t)!=this.bb.readInt16(o+t))continue e;p=this.vtables[f];break}}return p?(this.space=this.bb.capacity()-c,this.bb.writeInt32(this.space,p-c)):(this.vtables.push(this.offset()),this.bb.writeInt32(this.bb.capacity()-c,this.offset()-c)),this.isNested=!1,c},u.Builder.prototype.finish=function(c,f,s){var h=s?u.SIZE_PREFIX_LENGTH:0;if(f){var p=f;if(this.prep(this.minalign,u.SIZEOF_INT+u.FILE_IDENTIFIER_LENGTH+h),p.length!=u.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: file identifier must be length "+u.FILE_IDENTIFIER_LENGTH);for(var l=u.FILE_IDENTIFIER_LENGTH-1;l>=0;l--)this.writeInt8(p.charCodeAt(l))}this.prep(this.minalign,u.SIZEOF_INT+h),this.addOffset(c),h&&this.addInt32(this.bb.capacity()-this.space),this.bb.setPosition(this.space)},u.Builder.prototype.finishSizePrefixed=function(c,f){this.finish(c,f,!0)},u.Builder.prototype.requiredField=function(c,f){var s=this.bb.capacity()-c,h=s-this.bb.readInt32(s);if(this.bb.readInt16(h+f)==0)throw new Error("FlatBuffers: field "+f+" must be set")},u.Builder.prototype.startVector=function(c,f,s){this.notNested(),this.vector_num_elems=f,this.prep(u.SIZEOF_INT,c*f),this.prep(s,c*f)},u.Builder.prototype.endVector=function(){return this.writeInt32(this.vector_num_elems),this.offset()},u.Builder.prototype.createString=function(c){if(c instanceof Uint8Array)var f=c;else{f=[];for(var s=0;s<c.length;){var h,p=c.charCodeAt(s++);(h=p<55296||p>=56320?p:(p<<10)+c.charCodeAt(s++)+-56613888)<128?f.push(h):(h<2048?f.push(h>>6&31|192):(h<65536?f.push(h>>12&15|224):f.push(h>>18&7|240,h>>12&63|128),f.push(h>>6&63|128)),f.push(63&h|128))}}this.addInt8(0),this.startVector(1,f.length,1),this.bb.setPosition(this.space-=f.length),s=0;for(var l=this.space,o=this.bb.bytes();s<f.length;s++)o[l++]=f[s];return this.endVector()},u.Builder.prototype.createLong=function(c,f){return u.Long.create(c,f)},u.ByteBuffer=function(c){this.bytes_=c,this.position_=0},u.ByteBuffer.allocate=function(c){return new u.ByteBuffer(new Uint8Array(c))},u.ByteBuffer.prototype.clear=function(){this.position_=0},u.ByteBuffer.prototype.bytes=function(){return this.bytes_},u.ByteBuffer.prototype.position=function(){return this.position_},u.ByteBuffer.prototype.setPosition=function(c){this.position_=c},u.ByteBuffer.prototype.capacity=function(){return this.bytes_.length},u.ByteBuffer.prototype.readInt8=function(c){return this.readUint8(c)<<24>>24},u.ByteBuffer.prototype.readUint8=function(c){return this.bytes_[c]},u.ByteBuffer.prototype.readInt16=function(c){return this.readUint16(c)<<16>>16},u.ByteBuffer.prototype.readUint16=function(c){return this.bytes_[c]|this.bytes_[c+1]<<8},u.ByteBuffer.prototype.readInt32=function(c){return this.bytes_[c]|this.bytes_[c+1]<<8|this.bytes_[c+2]<<16|this.bytes_[c+3]<<24},u.ByteBuffer.prototype.readUint32=function(c){return this.readInt32(c)>>>0},u.ByteBuffer.prototype.readInt64=function(c){return new u.Long(this.readInt32(c),this.readInt32(c+4))},u.ByteBuffer.prototype.readUint64=function(c){return new u.Long(this.readUint32(c),this.readUint32(c+4))},u.ByteBuffer.prototype.readFloat32=function(c){return u.int32[0]=this.readInt32(c),u.float32[0]},u.ByteBuffer.prototype.readFloat64=function(c){return u.int32[u.isLittleEndian?0:1]=this.readInt32(c),u.int32[u.isLittleEndian?1:0]=this.readInt32(c+4),u.float64[0]},u.ByteBuffer.prototype.writeInt8=function(c,f){this.bytes_[c]=f},u.ByteBuffer.prototype.writeUint8=function(c,f){this.bytes_[c]=f},u.ByteBuffer.prototype.writeInt16=function(c,f){this.bytes_[c]=f,this.bytes_[c+1]=f>>8},u.ByteBuffer.prototype.writeUint16=function(c,f){this.bytes_[c]=f,this.bytes_[c+1]=f>>8},u.ByteBuffer.prototype.writeInt32=function(c,f){this.bytes_[c]=f,this.bytes_[c+1]=f>>8,this.bytes_[c+2]=f>>16,this.bytes_[c+3]=f>>24},u.ByteBuffer.prototype.writeUint32=function(c,f){this.bytes_[c]=f,this.bytes_[c+1]=f>>8,this.bytes_[c+2]=f>>16,this.bytes_[c+3]=f>>24},u.ByteBuffer.prototype.writeInt64=function(c,f){this.writeInt32(c,f.low),this.writeInt32(c+4,f.high)},u.ByteBuffer.prototype.writeUint64=function(c,f){this.writeUint32(c,f.low),this.writeUint32(c+4,f.high)},u.ByteBuffer.prototype.writeFloat32=function(c,f){u.float32[0]=f,this.writeInt32(c,u.int32[0])},u.ByteBuffer.prototype.writeFloat64=function(c,f){u.float64[0]=f,this.writeInt32(c,u.int32[u.isLittleEndian?0:1]),this.writeInt32(c+4,u.int32[u.isLittleEndian?1:0])},u.ByteBuffer.prototype.getBufferIdentifier=function(){if(this.bytes_.length<this.position_+u.SIZEOF_INT+u.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: ByteBuffer is too short to contain an identifier.");for(var c="",f=0;f<u.FILE_IDENTIFIER_LENGTH;f++)c+=String.fromCharCode(this.readInt8(this.position_+u.SIZEOF_INT+f));return c},u.ByteBuffer.prototype.__offset=function(c,f){var s=c-this.readInt32(c);return f<this.readInt16(s)?this.readInt16(s+f):0},u.ByteBuffer.prototype.__union=function(c,f){return c.bb_pos=f+this.readInt32(f),c.bb=this,c},u.ByteBuffer.prototype.__string=function(c,f){c+=this.readInt32(c);var s=this.readInt32(c),h="",p=0;if(c+=u.SIZEOF_INT,f===u.Encoding.UTF8_BYTES)return this.bytes_.subarray(c,c+s);for(;p<s;){var l,o=this.readUint8(c+p++);if(o<192)l=o;else{var t=this.readUint8(c+p++);if(o<224)l=(31&o)<<6|63&t;else{var e=this.readUint8(c+p++);l=o<240?(15&o)<<12|(63&t)<<6|63&e:(7&o)<<18|(63&t)<<12|(63&e)<<6|63&this.readUint8(c+p++)}}l<65536?h+=String.fromCharCode(l):(l-=65536,h+=String.fromCharCode(55296+(l>>10),56320+(1023&l)))}return h},u.ByteBuffer.prototype.__indirect=function(c){return c+this.readInt32(c)},u.ByteBuffer.prototype.__vector=function(c){return c+this.readInt32(c)+u.SIZEOF_INT},u.ByteBuffer.prototype.__vector_len=function(c){return this.readInt32(c+this.readInt32(c))},u.ByteBuffer.prototype.__has_identifier=function(c){if(c.length!=u.FILE_IDENTIFIER_LENGTH)throw new Error("FlatBuffers: file identifier must be length "+u.FILE_IDENTIFIER_LENGTH);for(var f=0;f<u.FILE_IDENTIFIER_LENGTH;f++)if(c.charCodeAt(f)!=this.readInt8(this.position_+u.SIZEOF_INT+f))return!1;return!0},u.ByteBuffer.prototype.createLong=function(c,f){return u.Long.create(c,f)}}},__webpack_module_cache__={};function __webpack_require__(b){var n=__webpack_module_cache__[b];if(n!==void 0)return n.exports;var a=__webpack_module_cache__[b]={exports:{}};return __webpack_modules__[b].call(a.exports,a,a.exports,__webpack_require__),a.exports}__webpack_require__.n=b=>{var n=b&&b.__esModule?()=>b.default:()=>b;return __webpack_require__.d(n,{a:n}),n},__webpack_require__.d=(b,n)=>{for(var a in n)__webpack_require__.o(n,a)&&!__webpack_require__.o(b,a)&&Object.defineProperty(b,a,{enumerable:!0,get:n[a]})},__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=(b,n)=>Object.prototype.hasOwnProperty.call(b,n),__webpack_require__.r=b=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(b,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(6018);return __webpack_exports__})())})(ortWeb_min$1);var ortWeb_minExports=ortWeb_min$1.exports;const ortWeb_min=getDefaultExportFromCjs(ortWeb_minExports),ONNX_WEB=_mergeNamespaces({__proto__:null,default:ortWeb_min},[ortWeb_minExports]);let ONNX;const executionProviders=["wasm"];typeof process<"u"&&process?.release?.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.15.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(import.meta.url))):"./",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$1={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(b){return Object.keys(b).length===0}var define_process_env_default={};globalThis.ReadableStream||(globalThis.ReadableStream=sharp.ReadableStream);class FileResponse{_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"};constructor(n){if(this.filePath=n,this.headers=new Headers,this.exists=sharp.existsSync(n),this.exists){this.status=200,this.statusText="OK";let a=sharp.statSync(n);this.headers.set("content-length",a.size.toString()),this.updateContentType();let u=this;this.body=new ReadableStream({start(c){u.arrayBuffer().then(f=>{c.enqueue(new Uint8Array(f)),c.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(b,n=null){let a;try{a=new URL(b)}catch{return!1}return n&&!n.includes(a.hostname)?!1:a.protocol==="http:"||a.protocol==="https:"}async function getFile(b){if(env$1.useFS&&!isValidHttpUrl(b))return new FileResponse(b);if(typeof process<"u"&&process?.release?.name==="node"){const n=!!define_process_env_default?.TESTING_REMOTELY,a=env$1.version,u=new Headers;if(u.set("User-Agent",`transformers.js/${a}; is_ci/${n};`),isValidHttpUrl(b,["huggingface.co","hf.co"])){const f=define_process_env_default?.HF_TOKEN??define_process_env_default?.HF_ACCESS_TOKEN;f&&u.set("Authorization",`Bearer ${f}`)}return fetch(b,{headers:u})}else return fetch(b)}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(b,n,a){if(!a)return null;const u=ERROR_MAPPING[b]??`Error (${b}) occurred while trying to load file`;throw Error(`${u}: "${n}".`)}class FileCache{constructor(n){this.path=n}async match(n){let a=sharp.join(this.path,n),u=new FileResponse(a);if(u.exists)return u}async put(n,a){const u=Buffer.from(await a.arrayBuffer());let c=sharp.join(this.path,n);try{await sharp.promises.mkdir(sharp.dirname(c),{recursive:!0}),await sharp.promises.writeFile(c,u)}catch(f){console.warn("An error occurred while writing the file to cache:",f)}}}async function tryCache(b,...n){for(let a of n)try{let u=await b.match(a);if(u)return u}catch{continue}}async function getModelFile(b,n,a=!0,u={}){if(!env$1.allowLocalModels&&u.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(u.progress_callback,{status:"initiate",name:b,file:n});let c;if(!c&&env$1.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{c=await caches.open("transformers-cache")}catch(m){console.warn("An error occurred while opening the browser cache:",m)}}if(!c&&env$1.useFSCache&&(c=new FileCache(u.cache_dir??env$1.cacheDir)),!c&&env$1.useCustomCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");const f=u.revision??"main";let s=pathJoin(b,n),h=pathJoin(env$1.localModelPath,s),p=pathJoin(env$1.remoteHost,env$1.remotePathTemplate.replaceAll("{model}",b).replaceAll("{revision}",encodeURIComponent(f)),n),l=f==="main"?s:pathJoin(b,f,n),o,t=c instanceof FileCache?l:p,e=!1,r;c&&(r=await tryCache(c,h,t));const i=r!==void 0;if(r===void 0){if(env$1.allowLocalModels)if(isValidHttpUrl(s)){if(u.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(_){console.warn(`Unable to load from local path "${h}": "${_}"`)}if(r===void 0||r.status===404){if(u.local_files_only||!env$1.allowRemoteModels){if(a)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${h}".`);return null}if(r=await getFile(p),r.status!==200)return handleError(r.status,p,a);o=t}e=c&&typeof Response<"u"&&r instanceof Response&&r.status===200}dispatchCallback(u.progress_callback,{status:"download",name:b,file:n});const d={status:"progress",name:b,file:n};let g;return u.progress_callback?i&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(g=new Uint8Array(await r.arrayBuffer()),dispatchCallback(u.progress_callback,{...d,progress:100,loaded:g.length,total:g.length})):g=await readResponse(r,m=>{dispatchCallback(u.progress_callback,{...d,...m})}):g=new Uint8Array(await r.arrayBuffer()),e&&o&&await c.match(o)===void 0&&await c.put(o,new Response(g,{headers:r.headers})).catch(m=>{console.warn(`Unable to add response to browser cache: ${m}.`)}),dispatchCallback(u.progress_callback,{status:"done",name:b,file:n}),g}async function getModelJSON(b,n,a=!0,u={}){let c=await getModelFile(b,n,a,u);if(c===null)return{};let s=new TextDecoder("utf-8").decode(c);return JSON.parse(s)}async function readResponse(b,n){const a=b.headers.get("Content-Length");a===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let u=parseInt(a??"0"),c=new Uint8Array(u),f=0;const s=b.body.getReader();async function h(){const{done:p,value:l}=await s.read();if(p)return;let o=f+l.length;if(o>u){u=o;let e=new Uint8Array(u);e.set(c),c=e}c.set(l,f),f=o;const t=f/u*100;return n({progress:t,loaded:f,total:u}),h()}return await h(),c}function pathJoin(...b){return b=b.map((n,a)=>(a&&(n=n.replace(new RegExp("^/"),"")),a!==b.length-1&&(n=n.replace(new RegExp("/$"),"")),n)),b.join("/")}function interpolate_data(b,[n,a,u],[c,f],s="bilinear",h=!1){const p=f/u,l=c/a,o=new b.constructor(c*f*n),t=a*u,e=c*f;for(let r=0;r<c;++r)for(let i=0;i<f;++i){const d=r*f+i,g=(i+.5)/p-.5,m=(r+.5)/l-.5;let _=Math.floor(g),y=Math.floor(m);const T=Math.min(_+1,u-1),w=Math.min(y+1,a-1);_=Math.max(_,0),y=Math.max(y,0);const S=g-_,O=m-y,E=(1-S)*(1-O),v=S*(1-O),P=(1-S)*O,L=S*O,V=y*u,R=w*u,k=V+_,Y=V+T,C=R+_,$=R+T;for(let X=0;X<n;++X){const z=X*t;o[X*e+d]=E*b[z+k]+v*b[z+Y]+P*b[z+C]+L*b[z+$]}}return o}function transpose_data(b,n,a){const u=new Array(a.length),c=new Array(a.length);for(let h=a.length-1,p=1;h>=0;--h)c[h]=p,u[h]=n[a[h]],p*=u[h];const f=a.map((h,p)=>c[a.indexOf(p)]),s=new b.constructor(b.length);for(let h=0;h<b.length;++h){let p=0;for(let l=n.length-1,o=h;l>=0;--l)p+=o%n[l]*f[l],o=Math.floor(o/n[l]);s[p]=b[h]}return[s,u]}function softmax(b){const n=max(b)[0],a=b.map(f=>Math.exp(f-n)),u=a.reduce((f,s)=>f+s,0);return a.map(f=>f/u)}function log_softmax(b){return softmax(b).map(u=>Math.log(u))}function getTopItems(b,n=0){return b=Array.from(b).map((a,u)=>[u,a]).sort((a,u)=>u[1]-a[1]),n!==null&&n>0&&(b=b.slice(0,n)),b}function min(b){if(b.length===0)throw Error("Array must not be empty");let n=b[0],a=0;for(let u=1;u<b.length;++u)b[u]<n&&(n=b[u],a=u);return[n,a]}function max(b){if(b.length===0)throw Error("Array must not be empty");let n=b[0],a=0;for(let u=1;u<b.length;++u)b[u]>n&&(n=b[u],a=u);return[Number(n),a]}function isPowerOfTwo(b){return b>0&&(b&b-1)===0}class P2FFT{constructor(n){if(this.size=n|0,this.size<=1||!isPowerOfTwo(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=n<<1,this.table=new Float64Array(this.size*2);for(let u=0;u<this.table.length;u+=2){const c=Math.PI*u/this.size;this.table[u]=Math.cos(c),this.table[u+1]=-Math.sin(c)}let a=0;for(let u=1;this.size>u;u<<=1)++a;this._width=a%2===0?a-1:a,this._bitrev=new Int32Array(1<<this._width);for(let u=0;u<this._bitrev.length;++u){this._bitrev[u]=0;for(let c=0;c<this._width;c+=2){const f=this._width-c-2;this._bitrev[u]|=(u>>>c&3)<<f}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(n,a){const u=a||new Array(n.length>>>1);for(let c=0;c<n.length;c+=2)u[c>>>1]=n[c];return u}toComplexArray(n,a){const u=a||this.createComplexArray();for(let c=0;c<u.length;c+=2)u[c]=n[c>>>1],u[c+1]=0;return u}completeSpectrum(n){const a=this._csize,u=a>>>1;for(let c=2;c<u;c+=2)n[a-c]=n[c],n[a-c+1]=-n[c+1]}transform(n,a){if(n===a)throw new Error("Input and output buffers must be different");this._transform4(n,a,1)}realTransform(n,a){if(n===a)throw new Error("Input and output buffers must be different");this._realTransform4(n,a,1)}inverseTransform(n,a){if(n===a)throw new Error("Input and output buffers must be different");this._transform4(n,a,-1);for(let u=0;u<n.length;++u)n[u]/=this.size}_transform4(n,a,u){const c=this._csize;let s=1<<this._width,h=c/s<<1,p,l;const o=this._bitrev;if(h===4)for(p=0,l=0;p<c;p+=h,++l){const t=o[l];this._singleTransform2(a,n,p,t,s)}else for(p=0,l=0;p<c;p+=h,++l){const t=o[l];this._singleTransform4(a,n,p,t,s,u)}for(s>>=2;s>=2;s>>=2){h=c/s<<1;const t=h>>>2;for(p=0;p<c;p+=h){const e=p+t-1;for(let r=p,i=0;r<e;r+=2,i+=s){const d=r,g=d+t,m=g+t,_=m+t,y=n[d],T=n[d+1],w=n[g],S=n[g+1],O=n[m],E=n[m+1],v=n[_],P=n[_+1],L=this.table[i],V=u*this.table[i+1],R=w*L-S*V,k=w*V+S*L,Y=this.table[2*i],C=u*this.table[2*i+1],$=O*Y-E*C,X=O*C+E*Y,z=this.table[3*i],Z=u*this.table[3*i+1],J=v*z-P*Z,ue=v*Z+P*z,Se=y+$,Te=T+X,se=y-$,ye=T-X,be=R+J,Ie=k+ue,Le=u*(R-J),ve=u*(k-ue);n[d]=Se+be,n[d+1]=Te+Ie,n[g]=se+ve,n[g+1]=ye-Le,n[m]=Se-be,n[m+1]=Te-Ie,n[_]=se-ve,n[_+1]=ye+Le}}}}_singleTransform2(n,a,u,c,f){const s=n[c],h=n[c+1],p=n[c+f],l=n[c+f+1];a[u]=s+p,a[u+1]=h+l,a[u+2]=s-p,a[u+3]=h-l}_singleTransform4(n,a,u,c,f,s){const h=f*2,p=f*3,l=n[c],o=n[c+1],t=n[c+f],e=n[c+f+1],r=n[c+h],i=n[c+h+1],d=n[c+p],g=n[c+p+1],m=l+r,_=o+i,y=l-r,T=o-i,w=t+d,S=e+g,O=s*(t-d),E=s*(e-g);a[u]=m+w,a[u+1]=_+S,a[u+2]=y+E,a[u+3]=T-O,a[u+4]=m-w,a[u+5]=_-S,a[u+6]=y-E,a[u+7]=T+O}_realTransform4(n,a,u){const c=this._csize;let s=1<<this._width,h=c/s<<1,p,l;const o=this._bitrev;if(h===4)for(p=0,l=0;p<c;p+=h,++l){const t=o[l];this._singleRealTransform2(a,n,p,t>>>1,s>>>1)}else for(p=0,l=0;p<c;p+=h,++l){const t=o[l];this._singleRealTransform4(a,n,p,t>>>1,s>>>1,u)}for(s>>=2;s>=2;s>>=2){h=c/s<<1;const t=h>>>2;for(p=0;p<c;p+=h){const e=p+t-1;for(let r=p,i=0;r<e;r+=2,i+=s){const d=r,g=d+t,m=g+t,_=m+t,y=n[d],T=n[d+1],w=n[g],S=n[g+1],O=n[m],E=n[m+1],v=n[_],P=n[_+1],L=this.table[i],V=u*this.table[i+1],R=w*L-S*V,k=w*V+S*L,Y=this.table[2*i],C=u*this.table[2*i+1],$=O*Y-E*C,X=O*C+E*Y,z=this.table[3*i],Z=u*this.table[3*i+1],J=v*z-P*Z,ue=v*Z+P*z,Se=y+$,Te=T+X,se=y-$,ye=T-X,be=R+J,Ie=k+ue,Le=u*(R-J),ve=u*(k-ue);n[d]=Se+be,n[d+1]=Te+Ie,n[g]=se+ve,n[g+1]=ye-Le,n[m]=Se-be,n[m+1]=Te-Ie,n[_]=se-ve,n[_+1]=ye+Le}}}}_singleRealTransform2(n,a,u,c,f){const s=n[c],h=n[c+f];a[u]=s+h,a[u+1]=0,a[u+2]=s-h,a[u+3]=0}_singleRealTransform4(n,a,u,c,f,s){const h=f*2,p=f*3,l=n[c],o=n[c+f],t=n[c+h],e=n[c+p],r=l+t,i=l-t,d=o+e,g=s*(o-e);a[u]=r+d,a[u+1]=0,a[u+2]=i,a[u+3]=-g,a[u+4]=r-d,a[u+5]=0,a[u+6]=i,a[u+7]=g}}class NP2FFT{constructor(n){const a=2*(n-1),u=2*(2*n-1),c=2**Math.ceil(Math.log2(u));this.bufferSize=c,this._a=a;const f=new Float64Array(u),s=new Float64Array(c);this._chirpBuffer=new Float64Array(c),this._buffer1=new Float64Array(c),this._buffer2=new Float64Array(c),this._outBuffer1=new Float64Array(c),this._outBuffer2=new Float64Array(c);const h=-2*Math.PI/n,p=Math.cos(h),l=Math.sin(h);for(let o=0;o<u>>1;++o){const t=(o+1-n)**2/2,e=Math.sqrt(p**2+l**2)**t,r=t*Math.atan2(l,p),i=2*o;f[i]=e*Math.cos(r),f[i+1]=e*Math.sin(r),s[i]=f[i],s[i+1]=-f[i+1]}this._slicedChirpBuffer=f.subarray(a,u),this._f=new P2FFT(c>>1),this._f.transform(this._chirpBuffer,s)}_transform(n,a,u){const c=this._buffer1,f=this._buffer2,s=this._outBuffer1,h=this._outBuffer2,p=this._chirpBuffer,l=this._slicedChirpBuffer,o=this._a;if(u)for(let t=0;t<l.length;t+=2){const e=t+1,r=t>>1,i=a[r];c[t]=i*l[t],c[e]=i*l[e]}else for(let t=0;t<l.length;t+=2){const e=t+1;c[t]=a[t]*l[t]-a[e]*l[e],c[e]=a[t]*l[e]+a[e]*l[t]}this._f.transform(s,c);for(let t=0;t<p.length;t+=2){const e=t+1;f[t]=s[t]*p[t]-s[e]*p[e],f[e]=s[t]*p[e]+s[e]*p[t]}this._f.inverseTransform(h,f);for(let t=0;t<h.length;t+=2){const e=h[t+o],r=h[t+o+1],i=l[t],d=l[t+1];n[t]=e*i-r*d,n[t+1]=e*d+r*i}}transform(n,a){this._transform(n,a,!1)}realTransform(n,a){this._transform(n,a,!0)}}class FFT{constructor(n){this.fft_length=n,this.isPowerOfTwo=isPowerOfTwo(n),this.isPowerOfTwo?(this.fft=new P2FFT(n),this.outputBufferSize=2*n):(this.fft=new NP2FFT(n),this.outputBufferSize=this.fft.bufferSize)}realTransform(n,a){this.fft.realTransform(n,a)}transform(n,a){this.fft.transform(n,a)}}function medianFilter(b,n){if(n%2===0||n<=0)throw new Error("Window size must be a positive odd number");const a=new b.constructor(b.length),u=new b.constructor(n),c=Math.floor(n/2);for(let f=0;f<b.length;++f){let s=0;for(let h=-c;h<=c;++h){let p=f+h;p<0?p=Math.abs(p):p>=b.length&&(p=2*(b.length-1)-p),u[s++]=b[p]}u.sort(),a[f]=u[c]}return a}const DataTypeMap=Object.freeze({float32:Float32Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array}),ONNXTensor$1=ONNX.Tensor;class Tensor{dims;type;data;size;constructor(...n){return n[0]instanceof ONNXTensor$1?Object.assign(this,n[0]):Object.assign(this,new ONNXTensor$1(n[0],n[1],n[2])),new Proxy(this,{get:(a,u)=>{if(typeof u=="string"){let c=Number(u);if(Number.isInteger(c))return a._getitem(c)}return a[u]},set:(a,u,c)=>a[u]=c})}*[Symbol.iterator](){const[n,...a]=this.dims;if(a.length>0){const u=a.reduce((c,f)=>c*f);for(let c=0;c<n;++c)yield this._subarray(c,u,a)}else yield*this.data}_getitem(n){const[a,...u]=this.dims;if(n=safeIndex(n,a),u.length>0){const c=u.reduce((f,s)=>f*s);return this._subarray(n,c,u)}else return new Tensor(this.type,[this.data[n]],u)}indexOf(n){for(let a=0;a<this.data.length;++a)if(this.data[a]==n)return a;return-1}_subarray(n,a,u){const c=n*a,f=(n+1)*a,s="subarray"in this.data?this.data.subarray(c,f):this.data.slice(c,f);return new Tensor(this.type,s,u)}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}mul(n){return this.clone().mul_(n)}mul_(n){for(let a=0;a<this.data.length;++a)this.data[a]*=n;return this}add(n){return this.clone().add_(n)}add_(n){for(let a=0;a<this.data.length;++a)this.data[a]+=n;return this}clone(){return new Tensor(this.type,this.data.slice(),this.dims.slice())}slice(...n){let a=[],u=[];for(let p=0;p<this.dims.length;++p){let l=n[p];if(l==null)u.push([0,this.dims[p]]),a.push(this.dims[p]);else if(typeof l=="number")l=safeIndex(l,this.dims[p],p),u.push([l,l+1]);else if(Array.isArray(l)&&l.length===2){if(l[0]>l[1])throw new Error(`Invalid slice: ${l}`);let o=[Math.max(l[0],0),Math.min(l[1],this.dims[p])];u.push(o),a.push(o[1]-o[0])}else throw new Error(`Invalid slice: ${l}`)}let c=u.map(([p,l])=>l-p),f=c.reduce((p,l)=>p*l),s=new this.data.constructor(f);const h=this.stride();for(let p=0;p<f;++p){let l=0;for(let o=c.length-1,t=p;o>=0;--o){const e=c[o];l+=(t%e+u[o][0])*h[o],t=Math.floor(t/e)}s[p]=this.data[l]}return new Tensor(this.type,s,a)}transpose(...n){return transpose(this,n)}sum(n=null,a=!1){return this.norm(1,n,a)}norm(n="fro",a=null,u=!1){if(n==="fro")n=2;else if(typeof n=="string")throw Error(`Unsupported norm: ${n}`);if(a===null){let s=this.data.reduce((h,p)=>h+p**n,0)**(1/n);return new Tensor(this.type,[s],[])}a=safeIndex(a,this.dims.length);const c=this.dims.slice();c[a]=1;const f=new this.data.constructor(this.data.length/this.dims[a]);for(let s=0;s<this.data.length;++s){let h=0;for(let p=this.dims.length-1,l=s,o=1;p>=0;--p){const t=this.dims[p];if(p!==a){const e=l%t;h+=e*o,o*=c[p]}l=Math.floor(l/t)}f[h]+=this.data[s]**n}if(n!==1)for(let s=0;s<f.length;++s)f[s]=f[s]**(1/n);return u||c.splice(a,1),new Tensor(this.type,f,c)}normalize_(n=2,a=1){a=safeIndex(a,this.dims.length);const u=this.norm(n,a,!0);for(let c=0;c<this.data.length;++c){let f=0;for(let s=this.dims.length-1,h=c,p=1;s>=0;--s){const l=this.dims[s];if(s!==a){const o=h%l;f+=o*p,p*=this.dims[s]}h=Math.floor(h/l)}this.data[c]/=u.data[f]}return this}normalize(n=2,a=1){return this.clone().normalize_(n,a)}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,a=-1){a=(a+this.dims.length)%this.dims.length;let u=this.dims.slice(0,n),c=this.dims.slice(n,a+1),f=this.dims.slice(a+1);return this.dims=[...u,c.reduce((s,h)=>s*h,1),...f],this}flatten(n=0,a=-1){return this.clone().flatten_(n,a)}view(...n){let a=-1;for(let u=0;u<n.length;++u)if(n[u]===-1){if(a!==-1)throw new Error("Only one dimension can be inferred");a=u}if(a!==-1){const u=n.reduce((c,f,s)=>s!==a?c*f:c,1);n[a]=this.data.length/u}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_()}clamp_(n,a){for(let u=0;u<this.data.length;++u)this.data[u]=Math.min(Math.max(this.data[u],n),a);return this}clamp(n,a){return this.clone().clamp_(n,a)}round_(){for(let n=0;n<this.data.length;++n)this.data[n]=Math.round(this.data[n]);return this}round(){return this.clone().round_()}to(n){if(this.type===n)return this;if(!DataTypeMap.hasOwnProperty(n))throw new Error(`Unsupported type: ${n}`);return new Tensor(n,DataTypeMap[n].from(this.data),this.dims)}}function reshape(b,n){const a=b.length,u=n.reduce((f,s)=>f*s);if(a!==u)throw Error(`cannot reshape array of size ${a} into shape (${n})`);let c=b;for(let f=n.length-1;f>=0;f--)c=c.reduce((s,h)=>{let p=s[s.length-1];return p.length<n[f]?p.push(h):s.push([h]),s},[[]]);return c[0]}function transpose(b,n){const[a,u]=transpose_data(b.data,b.dims,n);return new Tensor(b.type,a,u)}function interpolate(b,[n,a],u="bilinear",c=!1){const f=b.dims.at(-3)??1,s=b.dims.at(-2),h=b.dims.at(-1);let p=interpolate_data(b.data,[f,s,h],[n,a],u,c);return new Tensor(b.type,p,[f,n,a])}function calc_squeeze_dims(b,n){return b=b.slice(),n===null?b=b.filter(a=>a!==1):typeof n=="number"?b[n]===1&&b.splice(n,1):Array.isArray(n)&&(b=b.filter((a,u)=>a!==1||!n.includes(u))),b}function calc_unsqueeze_dims(b,n){return n=safeIndex(n,b.length+1),b=b.slice(),b.splice(n,0,1),b}function safeIndex(b,n,a=null){if(b<-n||b>=n)throw new Error(`IndexError: index ${b} is out of bounds for dimension${a===null?"":" "+a} with size ${n}`);return b<0&&(b=(b%n+n)%n),b}function cat(b,n=0){n=safeIndex(n,b[0].dims.length);const a=b[0].dims.slice();a[n]=b.reduce((s,h)=>s+h.dims[n],0);const u=a.reduce((s,h)=>s*h,1),c=new b[0].data.constructor(u),f=b[0].type;if(n===0){let s=0;for(let h of b)c.set(h.data,s),s+=h.data.length}else{let s=0;for(let h=0;h<b.length;++h){let p=b[h];for(let l=0;l<p.data.length;++l){let o=0;for(let t=p.dims.length-1,e=l,r=1;t>=0;--t){const i=p.dims[t];let d=e%i;t===n&&(d+=s),o+=d*r,r*=a[t],e=Math.floor(e/i)}c[o]=p.data[l]}s+=p.dims[n]}}return new Tensor(f,c,a)}function stack(b,n=0){return cat(b.map(a=>a.unsqueeze(n)),n)}function std_mean(b,n=null,a=1,u=!1){if(n===null){const l=b.data.reduce((r,i)=>r+i,0)/b.data.length,o=Math.sqrt(b.data.reduce((r,i)=>r+(i-l)**2,0)/(b.data.length-a)),t=new Tensor(b.type,[l],[]);return[new Tensor(b.type,[o],[]),t]}n=safeIndex(n,b.dims.length);const c=mean(b,n,u),f=b.dims.slice();f[n]=1;const s=new b.data.constructor(b.data.length/b.dims[n]);for(let p=0;p<b.data.length;++p){let l=0;for(let o=b.dims.length-1,t=p,e=1;o>=0;--o){const r=b.dims[o];if(o!==n){const i=t%r;l+=i*e,e*=f[o]}t=Math.floor(t/r)}s[l]+=(b.data[p]-c.data[l])**2}for(let p=0;p<s.length;++p)s[p]=Math.sqrt(s[p]/(b.dims[n]-a));return u||f.splice(n,1),[new Tensor(b.type,s,f),c]}function mean(b,n=null,a=!1){if(n===null){let f=b.data.reduce((s,h)=>s+h,0);return new Tensor(b.type,[f/b.data.length],[])}n=safeIndex(n,b.dims.length);const u=b.dims.slice();u[n]=1;const c=new b.data.constructor(b.data.length/b.dims[n]);for(let f=0;f<b.data.length;++f){let s=0;for(let h=b.dims.length-1,p=f,l=1;h>=0;--h){const o=b.dims[h];if(h!==n){const t=p%o;s+=t*l,l*=u[h]}p=Math.floor(p/o)}c[s]+=b.data[f]}if(b.dims[n]!==1)for(let f=0;f<c.length;++f)c[f]=c[f]/b.dims[n];return a||u.splice(n,1),new Tensor(b.type,c,u)}function dynamicTimeWarping(b){const[n,a]=b.dims,u=[n+1,a+1],c=new Tensor("float32",new Float32Array(u[0]*u[1]).fill(1/0),u),f=new Tensor("float32",new Float32Array(u[0]*u[1]).fill(-1),u);c[0].data[0]=0;for(let o=1;o<a+1;++o)for(let t=1;t<n+1;++t){const e=c[t-1][o-1].item(),r=c[t-1][o].item(),i=c[t][o-1].item();let d,g;e<r&&e<i?(d=e,g=0):r<e&&r<i?(d=r,g=1):(d=i,g=2),c[t].data[o]=b[t-1][o-1].item()+d,f[t].data[o]=g}let s=n,h=a;f.data.fill(2,0,u[1]);for(let o=0;o<u[0];++o)f[o].data[0]=1;let p=[],l=[];for(;s>0||h>0;)switch(p.push(s-1),l.push(h-1),f[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 p.reverse(),l.reverse(),[p,l]}function dimsToStride(b){const n=new Array(b.length);for(let a=b.length-1,u=1;a>=0;--a)n[a]=u,u*=b[a];return n}function ones(b){const n=b.reduce((a,u)=>a*u,1);return new Tensor("int64",new BigInt64Array(n).fill(1n),b)}function ones_like(b){return ones(b.dims)}var TOKEN_TYPES=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",NotIn:"NotIn",Else:"Else",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator"});Object.freeze({set:TOKEN_TYPES.Set,for:TOKEN_TYPES.For,in:TOKEN_TYPES.In,if:TOKEN_TYPES.If,else:TOKEN_TYPES.Else,endif:TOKEN_TYPES.EndIf,elif:TOKEN_TYPES.ElseIf,endfor:TOKEN_TYPES.EndFor,and:TOKEN_TYPES.And,or:TOKEN_TYPES.Or,not:TOKEN_TYPES.Not,"not in":TOKEN_TYPES.NotIn,true:TOKEN_TYPES.BooleanLiteral,false:TOKEN_TYPES.BooleanLiteral});TOKEN_TYPES.OpenStatement,TOKEN_TYPES.CloseStatement,TOKEN_TYPES.OpenExpression,TOKEN_TYPES.CloseExpression,TOKEN_TYPES.OpenParen,TOKEN_TYPES.CloseParen,TOKEN_TYPES.OpenSquareBracket,TOKEN_TYPES.CloseSquareBracket,TOKEN_TYPES.Comma,TOKEN_TYPES.Dot,TOKEN_TYPES.Colon,TOKEN_TYPES.Pipe,TOKEN_TYPES.ComparisonBinaryOperator,TOKEN_TYPES.ComparisonBinaryOperator,TOKEN_TYPES.ComparisonBinaryOperator,TOKEN_TYPES.ComparisonBinaryOperator,TOKEN_TYPES.ComparisonBinaryOperator,TOKEN_TYPES.ComparisonBinaryOperator,TOKEN_TYPES.AdditiveBinaryOperator,TOKEN_TYPES.AdditiveBinaryOperator,TOKEN_TYPES.MultiplicativeBinaryOperator,TOKEN_TYPES.MultiplicativeBinaryOperator,TOKEN_TYPES.MultiplicativeBinaryOperator,TOKEN_TYPES.Equals;const BYTES_TO_UNICODE=(()=>{const b=[...Array.from({length:94},(c,f)=>f+33),...Array.from({length:12},(c,f)=>f+161),...Array.from({length:82},(c,f)=>f+174)],n=b.slice();let a=0;for(let c=0;c<256;++c)b.includes(c)||(b.push(c),n.push(256+a),a+=1);const u=n.map(c=>String.fromCharCode(c));return Object.fromEntries(b.map((c,f)=>[c,u[f]]))})();reverseDictionary(BYTES_TO_UNICODE);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"]];new Map(WHISPER_LANGUAGES);async function loadConfig(b,n){return await getModelJSON(b,"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:a=null,config:u=null,cache_dir:c=null,local_files_only:f=!1,revision:s="main"}={}){let h=u??await loadConfig(n,{progress_callback:a,config:u,cache_dir:c,local_files_only:f,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,a){for(let u of a)this.processors.forEach(c=>c(n,u))}[Symbol.iterator](){return this.processors.values()}}class LogitsProcessor extends Callable{_call(n,a){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,a){let u=this.force_token_map[n.length];return exists(u)&&(a.data.fill(-1/0),a.data[u]=0),a}}class ForcedBOSTokenLogitsProcessor extends LogitsProcessor{constructor(n){super(),this.bos_token_id=n}_call(n,a){return n.length===1&&(a.data.fill(-1/0),a.data[this.bos_token_id]=0),a}}class ForcedEOSTokenLogitsProcessor extends LogitsProcessor{constructor(n,a){super(),this.max_length=n,this.forced_eos_token_id=a}_call(n,a){}}class SuppressTokensAtBeginLogitsProcessor extends LogitsProcessor{constructor(n,a){super(),this.begin_suppress_tokens=n,this.begin_index=a}_call(n,a){if(n.length===this.begin_index)for(let u of this.begin_suppress_tokens)a.data[u]=-1/0;return a}}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,a){const u=a.data;if(u[this.no_timestamps_token_id]=-1/0,n.length===this.begin_index-1)return u.fill(-1/0),u[this.timestamp_begin]=0,a;const c=n.slice(this.begin_index),f=c.length>=1&&c[c.length-1]>=this.timestamp_begin,s=c.length<2||c[c.length-2]>=this.timestamp_begin;if(f&&(s?u.subarray(this.timestamp_begin).fill(-1/0):u.subarray(0,this.eos_token_id).fill(-1/0)),n.length===this.begin_index&&this.max_initial_timestamp_index!==null){const o=this.timestamp_begin+this.max_initial_timestamp_index;u.subarray(o+1).fill(-1/0)}const h=log_softmax(u),p=Math.log(h.subarray(this.timestamp_begin).map(Math.exp).reduce((o,t)=>o+t)),l=max(h.subarray(0,this.timestamp_begin))[0];return p>l&&u.subarray(0,this.timestamp_begin).fill(-1/0),a}}class NoRepeatNGramLogitsProcessor extends LogitsProcessor{constructor(n){super(),this.no_repeat_ngram_size=n}getNgrams(n){const a=n.length,u=[];for(let f=0;f<a+1-this.no_repeat_ngram_size;++f){const s=[];for(let h=0;h<this.no_repeat_ngram_size;++h)s.push(n[f+h]);u.push(s)}const c=new Map;for(const f of u){const s=f.slice(0,f.length-1),h=JSON.stringify(s),p=c.get(h)??[];p.push(f[f.length-1]),c.set(h,p)}return c}getGeneratedNgrams(n,a){const u=a.slice(a.length+1-this.no_repeat_ngram_size,a.length);return n.get(JSON.stringify(u))??[]}calcBannedNgramTokens(n){const a=[];if(n.length+1<this.no_repeat_ngram_size)return a;{const u=this.getNgrams(n);return this.getGeneratedNgrams(u,n)}}_call(n,a){const u=this.calcBannedNgramTokens(n);for(const c of u)a.data[c]=-1/0;return a}}class RepetitionPenaltyLogitsProcessor extends LogitsProcessor{constructor(n){super(),this.penalty=n}_call(n,a){for(const u of n)a.data[u]<0?a.data[u]*=this.penalty:a.data[u]/=this.penalty;return a}}class MinLengthLogitsProcessor extends LogitsProcessor{constructor(n,a){super(),this.min_length=n,this.eos_token_id=Array.isArray(a)?a:[a]}_call(n,a){if(n.length<this.min_length)for(const u of this.eos_token_id)a.data[u]=-1/0;return a}}class MinNewTokensLengthLogitsProcessor extends LogitsProcessor{constructor(n,a,u){super(),this.prompt_length_to_skip=n,this.min_new_tokens=a,this.eos_token_id=Array.isArray(u)?u:[u]}_call(n,a){if(n.length-this.prompt_length_to_skip<this.min_new_tokens)for(const c of this.eos_token_id)a.data[c]=-1/0;return a}}class NoBadWordsLogitsProcessor extends LogitsProcessor{constructor(n,a){super(),this.bad_words_ids=n,this.eos_token_id=Array.isArray(a)?a:[a]}_call(n,a){for(const u of this.bad_words_ids){let c=!0;for(let f=1;f<=u.length-1&&u.length<n.length;++f)if(u.at(-f-1)!==n.at(-f)){c=!1;break}c&&(a.data[u.at(-1)]=-1/0)}return a}}const GenerationConfig=class{constructor(b={}){this.max_length=b.max_length??20,this.max_new_tokens=b.max_new_tokens??null,this.min_length=b.min_length??0,this.min_new_tokens=b.min_new_tokens??null,this.early_stopping=b.early_stopping??!1,this.max_time=b.max_time??null,this.do_sample=b.do_sample??!1,this.num_beams=b.num_beams??1,this.num_beam_groups=b.num_beam_groups??1,this.penalty_alpha=b.penalty_alpha??null,this.use_cache=b.use_cache??!0,this.temperature=b.temperature??1,this.top_k=b.top_k??50,this.top_p=b.top_p??1,this.typical_p=b.typical_p??1,this.epsilon_cutoff=b.epsilon_cutoff??0,this.eta_cutoff=b.eta_cutoff??0,this.diversity_penalty=b.diversity_penalty??0,this.repetition_penalty=b.repetition_penalty??1,this.encoder_repetition_penalty=b.encoder_repetition_penalty??1,this.length_penalty=b.length_penalty??1,this.no_repeat_ngram_size=b.no_repeat_ngram_size??0,this.bad_words_ids=b.bad_words_ids??null,this.force_words_ids=b.force_words_ids??null,this.renormalize_logits=b.renormalize_logits??!1,this.constraints=b.constraints??null,this.forced_bos_token_id=b.forced_bos_token_id??null,this.forced_eos_token_id=b.forced_eos_token_id??null,this.remove_invalid_values=b.remove_invalid_values??!1,this.exponential_decay_length_penalty=b.exponential_decay_length_penalty??null,this.suppress_tokens=b.suppress_tokens??null,this.begin_suppress_tokens=b.begin_suppress_tokens??null,this.forced_decoder_ids=b.forced_decoder_ids??null,this.num_return_sequences=b.num_return_sequences??1,this.output_attentions=b.output_attentions??!1,this.output_hidden_states=b.output_hidden_states??!1,this.output_scores=b.output_scores??!1,this.return_dict_in_generate=b.return_dict_in_generate??!1,this.pad_token_id=b.pad_token_id??null,this.bos_token_id=b.bos_token_id??null,this.eos_token_id=b.eos_token_id??null,this.encoder_no_repeat_ngram_size=b.encoder_no_repeat_ngram_size??0,this.decoder_start_token_id=b.decoder_start_token_id??null,this.generation_kwargs=b.generation_kwargs??{}}};class Sampler extends Callable{constructor(n){super(),this.generation_config=n}_call(n,a=-1){return this.sample(n,a)}sample(n,a){throw Error("sample should be implemented in subclasses.")}getLogits(n,a){let u=n.dims.at(-1),c=n.data;if(a===-1)c=c.slice(-u);else{let f=a*u;c=c.slice(f,f+u)}return this.generation_config.temperature>0&&(c=c.map(f=>f/this.generation_config.temperature)),c}randomSelect(n){let a=n.reduce((c,f)=>c+f,0),u=Math.random()*a;for(let c=0;c<n.length;++c)if(u-=n[c],u<=0)return c;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,a=-1){let u=this.getLogits(n,a);return[[max(u)[1],0]]}}class MultinomialSampler extends Sampler{sample(n,a=-1){let u=n.dims.at(-1);this.generation_config.top_k>0&&(u=Math.min(this.generation_config.top_k,u));const c=this.getLogits(n,a),f=getTopItems(c,u),s=softmax(f.map(h=>h[1]));return Array.from({length:this.generation_config.num_beams},()=>{const h=this.randomSelect(s);return[f[h][0],Math.log(s[h])]})}}class BeamSearchSampler extends Sampler{sample(n,a=-1){let u=n.dims.at(-1);this.generation_config.top_k>0&&(u=Math.min(this.generation_config.top_k,u));const c=this.getLogits(n,a),f=getTopItems(c,u),s=softmax(f.map(h=>h[1]));return Array.from({length:this.generation_config.num_beams},(h,p)=>[f[p][0],Math.log(s[p])])}}const{InferenceSession,Tensor:ONNXTensor,env}=ONNX,MODEL_TYPES={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5},MODEL_TYPE_MAPPING=new Map,MODEL_NAME_TO_CLASS_MAPPING=new Map,MODEL_CLASS_TO_NAME_MAPPING=new Map;async function constructSession(b,n,a){let u=`onnx/${n}${a.quantized?"_quantized":""}.onnx`,c=await getModelFile(b,u,!0,a);try{return await InferenceSession.create(c,{executionProviders})}catch(f){if(executionProviders.length===1&&executionProviders[0]==="wasm")throw f;return console.warn(f),console.warn("Something went wrong during model construction (most likely a missing operation). Using `wasm` as a fallback. "),await InferenceSession.create(c,{executionProviders:["wasm"]})}}function validateInputs(b,n){const a=Object.create(null),u=[];for(const s of b.inputNames){const h=n[s];if(!(h instanceof Tensor)){u.push(s);continue}a[s]=env.wasm.proxy?h.clone():h}if(u.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${u.join(", ")}.`);const c=Object.keys(n).length,f=b.inputNames.length;if(c>f){let s=Object.keys(n).filter(h=>!b.inputNames.includes(h));console.warn(`WARNING: Too many inputs were provided (${c} > ${f}). The following inputs will be ignored: "${s.join(", ")}".`)}return a}async function sessionRun(b,n){const a=validateInputs(b,n);try{let u=await b.run(a);return u=replaceTensors(u),u}catch(u){throw console.error(`An error occurred during model execution: "${u}".`),console.error("Inputs given to model:",a),u}}function replaceTensors(b){for(let n in b)b[n]instanceof ONNXTensor?b[n]=new Tensor(b[n]):typeof b[n]=="object"&&replaceTensors(b[n]);return b}function toI64Tensor(b){if(b instanceof Tensor)return b;if(b.length===0)throw Error("items must be non-empty");if(Array.isArray(b[0])){if(b.some(n=>n.length!==b[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(b.flat().map(n=>BigInt(n))),[b.length,b[0].length])}else return new Tensor("int64",BigInt64Array.from(b.map(n=>BigInt(n))),[1,b.length])}function prepareAttentionMask(b,n){let a=b.config.pad_token_id??null,u=b.config.eos_token_id??null;isIntegralNumber(u)&&(u=[u]);let c=n.indexOf(a)!==-1,f=u===null||!u.includes(a);if(c&&f){let s=BigInt64Array.from(n.data.map(h=>h!=a));return new Tensor("int64",s,n.dims)}else return ones_like(n)}function preparePositionIds(b,n,a){if(!b.inputNames.includes("position_ids"))return;const u=new BigInt64Array(n.attention_mask.data.length);for(let c=0;c<n.attention_mask.dims[0];++c){let f=c*n.attention_mask.dims[1],s=BigInt(0);for(let h=0;h<n.attention_mask.dims[1];++h){const p=f+h;n.attention_mask.data[p]===0n?u[p]=BigInt(1):(u[p]=s,s+=n.attention_mask.data[p])}}n.position_ids=new Tensor("int64",u,n.attention_mask.dims),a&&(n.position_ids=n.position_ids.slice(null,-1).unsqueeze_(-1))}function boolTensor(b){return new Tensor("bool",[b],[1])}async function seq2seqForward(b,n){let{encoder_outputs:a,past_key_values:u}=n;a||(a=(await encoderForward(b,n)).last_hidden_state);let c={input_ids:n.decoder_input_ids,encoder_hidden_states:a};const f=!!u;b.decoder_merged_session.inputNames.includes("use_cache_branch")&&(c.use_cache_branch=boolTensor(f)),b.decoder_merged_session.inputNames.includes("encoder_attention_mask")&&(c.encoder_attention_mask=n.attention_mask),preparePositionIds(b.decoder_merged_session,c,f),b.addPastKeyValues(c,u);const s=await sessionRun(b.decoder_merged_session,c);let h=s.logits;u=b.getPastKeyValues(s,u);const p=b.getAttentions(s);return new Seq2SeqLMOutput({logits:h,past_key_values:u,encoder_outputs:a,...p})}function seq2seqStartBeams(b,n,a,u){let c=[],f=0;const s=b.requires_attention_mask??!0;let h=a.decoder_input_ids??a.decoder_start_token_id??a.bos_token_id??a.eos_token_id;h instanceof Tensor?h=h.tolist().flat():Array.isArray(h)||(h=[h]);for(let p of n){p.dims=[1,...p.dims];let l={inputs:p,encoder_outputs:null,prev_model_outputs:null,output_token_ids:h,done:!1,score:0,id:f++};s&&(l.attention_mask=prepareAttentionMask(b,p)),c.push(l)}return c}async function seq2seqRunBeam(b,n){const a=b.main_input_name;let u=n.output_token_ids;n.prev_model_outputs&&(u=u.slice(-1));let c={[a]:n.inputs,decoder_input_ids:toI64Tensor(u),encoder_outputs:n.encoder_outputs,past_key_values:n.prev_model_outputs?.past_key_values};n.attention_mask&&(c.attention_mask=n.attention_mask);let f=await b.forward(c);return n.prev_model_outputs=f,n.encoder_outputs=f.encoder_outputs,f}function seq2seqUpdatebeam(b,n){b.output_token_ids=[...b.output_token_ids,n]}async function encoderForward(b,n){const a=Object.create(null);for(const u of b.session.inputNames)a[u]=n[u];return b.session.inputNames.includes("token_type_ids")&&!a.token_type_ids&&(a.token_type_ids=new Tensor("int64",new BigInt64Array(a.input_ids.data.length),a.input_ids.dims)),await sessionRun(b.session,a)}async function decoderForward(b,n){let{input_ids:a,past_key_values:u,attention_mask:c}=n,f={input_ids:a,attention_mask:c??prepareAttentionMask(b,a)};const s=!!u;b.session.inputNames.includes("use_cache_branch")&&(f.use_cache_branch=boolTensor(s)),preparePositionIds(b.session,f,s),b.addPastKeyValues(f,u);let h=await sessionRun(b.session,f),p=h.logits;return u=b.getPastKeyValues(h,u),{logits:p,past_key_values:u}}function decoderStartBeams(b,n,a,u,c){let f=[],s=0;for(let h of n){let p=h.tolist().map(Number);h.dims=[1,...h.dims];let l;c?(l=c[s],l.dims=[1,...l.dims]):l=prepareAttentionMask(b,h);let o={input:h,model_input_ids:h,attention_mask:l,prev_model_outputs:null,output_token_ids:p,num_output_tokens:u,done:!1,score:0,id:s++};f.push(o)}return f}async function decoderRunBeam(b,n){let a=new BigInt64Array(n.output_token_ids.length).fill(1n),u={input_ids:n.model_input_ids,attention_mask:new Tensor("int64",a,[1,a.length]),past_key_values:n.prev_model_outputs?.past_key_values},c=await b.forward(u);return n.prev_model_outputs=c,c}function decoderUpdatebeam(b,n){b.output_token_ids=[...b.output_token_ids,n],b.model_input_ids=new Tensor("int64",[BigInt(n)],[1,1])}class PreTrainedModel extends Callable{main_input_name="input_ids";constructor(n,a){super(),this.config=n,this.session=a;const u=MODEL_CLASS_TO_NAME_MAPPING.get(this.constructor),c=MODEL_TYPE_MAPPING.get(u);this.can_generate=!1,this._runBeam=null,this._getStartBeams=null,this._updateBeam=null,this._forward=null,c===MODEL_TYPES.DecoderOnly?(this.can_generate=!0,this._runBeam=decoderRunBeam,this._getStartBeams=decoderStartBeams,this._updateBeam=decoderUpdatebeam,this._forward=decoderForward):c===MODEL_TYPES.Seq2Seq||c===MODEL_TYPES.Vision2Seq?(this.can_generate=!0,this._runBeam=seq2seqRunBeam,this._getStartBeams=seq2seqStartBeams,this._updateBeam=seq2seqUpdatebeam,this._forward=seq2seqForward):c===MODEL_TYPES.EncoderDecoder?this._forward=encoderForward:this._forward=encoderForward}async dispose(){const n=[];for(let a of Object.keys(this)){const u=this[a];u instanceof InferenceSession&&n.push(u.handler.dispose())}return await Promise.all(n)}static async from_pretrained(n,{quantized:a=!0,progress_callback:u=null,config:c=null,cache_dir:f=null,local_files_only:s=!1,revision:h="main",model_file_name:p=null}={}){let l={quantized:a,progress_callback:u,config:c,cache_dir:f,local_files_only:s,revision:h,model_file_name:p};const o=MODEL_CLASS_TO_NAME_MAPPING.get(this),t=MODEL_TYPE_MAPPING.get(o);let e;return t===MODEL_TYPES.DecoderOnly?e=await Promise.all([AutoConfig.from_pretrained(n,l),constructSession(n,l.model_file_name??"decoder_model_merged",l),getModelJSON(n,"generation_config.json",!1,l)]):t===MODEL_TYPES.Seq2Seq||t===MODEL_TYPES.Vision2Seq?e=await Promise.all([AutoConfig.from_pretrained(n,l),constructSession(n,"encoder_model",l),constructSession(n,"decoder_model_merged",l),getModelJSON(n,"generation_config.json",!1,l)]):t===MODEL_TYPES.MaskGeneration?e=await Promise.all([AutoConfig.from_pretrained(n,l),constructSession(n,"vision_encoder",l),constructSession(n,"prompt_encoder_mask_decoder",l)]):t===MODEL_TYPES.EncoderDecoder?e=await Promise.all([AutoConfig.from_pretrained(n,l),constructSession(n,"encoder_model",l),constructSession(n,"decoder_model_merged",l)]):(t!==MODEL_TYPES.EncoderOnly&&console.warn(`Model type for '${o??c?.model_type}' not found, assuming encoder-only architecture. Please report this at https://github.com/xenova/transformers.js/issues/new/choose.`),e=await Promise.all([AutoConfig.from_pretrained(n,l),constructSession(n,l.model_file_name??"model",l)])),new this(...e)}async _call(n){return await this.forward(n)}async forward(n){return await this._forward(this,n)}_get_logits_processor(n,a,u=null){const c=new LogitsProcessorList;if(n.repetition_penalty!==null&&n.repetition_penalty!==1&&c.push(new RepetitionPenaltyLogitsProcessor(n.repetition_penalty)),n.no_repeat_ngram_size!==null&&n.no_repeat_ngram_size>0&&c.push(new NoRepeatNGramLogitsProcessor(n.no_repeat_ngram_size)),n.bad_words_ids!==null&&c.push(new NoBadWordsLogitsProcessor(n.bad_words_ids,n.eos_token_id)),n.min_length!==null&&n.eos_token_id!==null&&n.min_length>0&&c.push(new MinLengthLogitsProcessor(n.min_length,n.eos_token_id)),n.min_new_tokens!==null&&n.eos_token_id!==null&&n.min_new_tokens>0&&c.push(new MinNewTokensLengthLogitsProcessor(a,n.min_new_tokens,n.eos_token_id)),n.forced_bos_token_id!==null&&c.push(new ForcedBOSTokenLogitsProcessor(n.forced_bos_token_id)),n.forced_eos_token_id!==null&&c.push(new ForcedEOSTokenLogitsProcessor(n.max_length,n.forced_eos_token_id)),n.begin_suppress_tokens!==null){let f=a>1||n.forced_bos_token_id===null?a:a+1;n.forced_decoder_ids!==null&&(f+=n.forced_decoder_ids[n.forced_decoder_ids.length-1][0]),c.push(new SuppressTokensAtBeginLogitsProcessor(n.begin_suppress_tokens,f))}return n.forced_decoder_ids!==null&&c.push(new ForceTokensLogitsProcessor(n.forced_decoder_ids)),u!==null&&c.extend(u),c}_get_generation_config(n){let a=new GenerationConfig(this.config);return"generation_config"in this&&Object.assign(a,this.generation_config),n!==null&&Object.assign(a,n),a}async generate(n,a=null,u=null,{inputs_attention_mask:c=null}={}){if(!this.can_generate){let g=`The current model class (${MODEL_CLASS_TO_NAME_MAPPING.get(this.constructor)}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;const m=this.config.model_type,_=MODEL_WITH_LM_HEAD_MAPPING_NAMES.get(m)??MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES.get(m)??MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES.get(m)??MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES.get(m);throw _&&(g+=` Please use the following class instead: '${_[0]}'`),Error(g)}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 f;if(this.config.is_encoder_decoder)f=0;else if(f=n instanceof Tensor?n.dims.at(-1):n.length,f===0)throw Error("Must supply a non-empty array of input token ids.");a=this._get_generation_config(a),u=u??new LogitsProcessorList,u=this._get_logits_processor(a,f,u);let s=a.eos_token_id;s!==null&&!Array.isArray(s)&&(s=[s]);let h=1;const p=h+(a.max_new_tokens??1/0),l=Number.isInteger(a.max_length)&&(a.max_new_tokens??null)===null;let o=Sampler.getSampler(a),t=this.getStartBeams(n,a,h,c);for(;t.some(d=>!d.done)&&h<p;){let d=[];for(let g of t){if(g.done){d.push(g);continue}if(l&&g.output_token_ids.length>=a.max_length){g.done=!0,d.push(g);continue}let m=await this.runBeam(g);a.output_attentions&&this.addAttentionsToBeam(g,m),a.output_scores;let _=m.logits.slice(null,-1,null);u(g.output_token_ids,_);let y=o(_);for(let[T,w]of y){let S={...g};this.updateBeam(S,T),S.score+=w,s&&s.includes(T)&&(S.done=!0),d.push(S)}}++h,d=this.groupBeams(d).map(g=>g.sort((m,_)=>_.score-m.score).slice(0,a.num_beams)),t=d.flat(),a.callback_function&&a.callback_function(t)}const e=this.groupBeams(t),r=d=>e.map(g=>a.num_return_sequences>1?g.slice(0,a.num_return_sequences).map(m=>m[d]):[g[0][d]]).flat(),i=r("output_token_ids");if(a.return_dict_in_generate){const d=r("decoder_attentions"),g=r("cross_attentions");return{sequences:i,decoder_attentions:d,cross_attentions:g}}else return i}addAttentionsToBeam(n,a){if(this.config.is_encoder_decoder){if(!a.cross_attentions||a.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(a.cross_attentions)}if(!a.decoder_attentions||a.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(a.decoder_attentions)}groupBeams(n){const a=Object.create(null);for(const u of n)a[u.id]===void 0?a[u.id]=[u]:a[u.id].push(u);return Object.values(a)}getPastKeyValues(n,a){const u=Object.create(null);for(const c in n)if(c.startsWith("present")){let f=c.replace("present","past_key_values");a&&c.includes("encoder")?u[f]=a[f]:u[f]=n[c]}return u}getAttentions(n){const a=Object.create(null);for(const u of["cross_attentions","decoder_attentions"]){const c=[];for(const f in n)if(f.startsWith(u)){const s=f.split(".").pop();c[s]=n[f]}a[u]=c}return a}addPastKeyValues(n,a){if(a)Object.assign(n,a);else if(this.config.is_encoder_decoder&&(this.add_encoder_pkv??!0)){let c=[1,this.num_encoder_heads,0,this.encoder_dim_kv],f=[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}.encoder.key`]=new Tensor("float32",[],c),n[`past_key_values.${s}.encoder.value`]=new Tensor("float32",[],c),n[`past_key_values.${s}.decoder.key`]=new Tensor("float32",[],f),n[`past_key_values.${s}.decoder.value`]=new Tensor("float32",[],f)}else if(this.config.model_type==="falcon"){let c=[1*this.num_heads,0,this.dim_kv];for(let f=0;f<this.num_layers;++f)n[`past_key_values.${f}.key`]=new Tensor("float32",[],c),n[`past_key_values.${f}.value`]=new Tensor("float32",[],c)}else if(this.config.multi_query){let c=[1*this.num_heads,0,2*this.dim_kv];for(let f=0;f<this.num_layers;++f)n[`past_key_values.${f}.key_value`]=new Tensor("float32",[],c)}else if(this.config.model_type==="bloom"){let c=[1*this.num_heads,this.dim_kv,0],f=[1*this.num_heads,0,this.dim_kv];for(let s=0;s<this.num_layers;++s)n[`past_key_values.${s}.key`]=new Tensor("float32",[],c),n[`past_key_values.${s}.value`]=new Tensor("float32",[],f)}else{let c=[1,this.num_heads,0,this.dim_kv];for(let f=0;f<this.num_layers;++f)n[`past_key_values.${f}.key`]=new Tensor("float32",[],c),n[`past_key_values.${f}.value`]=new Tensor("float32",[],c)}}getStartBeams(n,a,u,c){return this._getStartBeams(this,n,a,u,c)}async runBeam(n){return await this._runBeam(this,n)}updateBeam(n,a){return this._updateBeam(n,a)}}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 RoFormerPreTrainedModel extends PreTrainedModel{}class RoFormerModel extends RoFormerPreTrainedModel{}class RoFormerForMaskedLM extends RoFormerPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class RoFormerForSequenceClassification extends RoFormerPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class RoFormerForTokenClassification extends RoFormerPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class RoFormerForQuestionAnswering extends RoFormerPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class ConvBertPreTrainedModel extends PreTrainedModel{}class ConvBertModel extends ConvBertPreTrainedModel{}class ConvBertForMaskedLM extends ConvBertPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class ConvBertForSequenceClassification extends ConvBertPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class ConvBertForTokenClassification extends ConvBertPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class ConvBertForQuestionAnswering extends ConvBertPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class ElectraPreTrainedModel extends PreTrainedModel{}class ElectraModel extends ElectraPreTrainedModel{}class ElectraForMaskedLM extends ElectraPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class ElectraForSequenceClassification extends ElectraPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class ElectraForTokenClassification extends ElectraPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class ElectraForQuestionAnswering extends ElectraPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class CamembertPreTrainedModel extends PreTrainedModel{}class CamembertModel extends CamembertPreTrainedModel{}class CamembertForMaskedLM extends CamembertPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class CamembertForSequenceClassification extends CamembertPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class CamembertForTokenClassification extends CamembertPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class CamembertForQuestionAnswering extends CamembertPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class DebertaPreTrainedModel extends PreTrainedModel{}class DebertaModel extends DebertaPreTrainedModel{}class DebertaForMaskedLM extends DebertaPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class DebertaForSequenceClassification extends DebertaPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class DebertaForTokenClassification extends DebertaPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class DebertaForQuestionAnswering extends DebertaPreTrainedModel{async _call(n){return new QuestionAnsweringModelOutput(await super._call(n))}}class DebertaV2PreTrainedModel extends PreTrainedModel{}class DebertaV2Model extends DebertaV2PreTrainedModel{}class DebertaV2ForMaskedLM extends DebertaV2PreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class DebertaV2ForSequenceClassification extends DebertaV2PreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class DebertaV2ForTokenClassification extends DebertaV2PreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class DebertaV2ForQuestionAnswering extends DebertaV2PreTrainedModel{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 EsmPreTrainedModel extends PreTrainedModel{}class EsmModel extends EsmPreTrainedModel{}class EsmForMaskedLM extends EsmPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class EsmForSequenceClassification extends EsmPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class EsmForTokenClassification extends EsmPreTrainedModel{async _call(n){return new TokenClassifierOutput(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{}class T5ForConditionalGeneration extends T5PreTrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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}}class LongT5PreTrainedModel extends PreTrainedModel{}class LongT5Model extends LongT5PreTrainedModel{}class LongT5ForConditionalGeneration extends LongT5PreTrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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}}class MT5PreTrainedModel extends PreTrainedModel{}class MT5Model extends MT5PreTrainedModel{}class MT5ForConditionalGeneration extends MT5PreTrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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}}class BartPretrainedModel extends PreTrainedModel{}class BartModel extends BartPretrainedModel{}class BartForConditionalGeneration extends BartPretrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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}}class BartForSequenceClassification extends BartPretrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class MBartPreTrainedModel extends PreTrainedModel{}class MBartModel extends MBartPreTrainedModel{}class MBartForConditionalGeneration extends MBartPreTrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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}}class MBartForSequenceClassification extends MBartPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class MBartForCausalLM extends MBartPreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,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}}class BlenderbotPreTrainedModel extends PreTrainedModel{}class BlenderbotModel extends BlenderbotPreTrainedModel{}class BlenderbotForConditionalGeneration extends BlenderbotPreTrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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}}class BlenderbotSmallPreTrainedModel extends PreTrainedModel{}class BlenderbotSmallModel extends BlenderbotSmallPreTrainedModel{}class BlenderbotSmallForConditionalGeneration extends BlenderbotSmallPreTrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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}}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 XLMPreTrainedModel extends PreTrainedModel{}class XLMModel extends XLMPreTrainedModel{}class XLMWithLMHeadModel extends XLMPreTrainedModel{async _call(n){return new MaskedLMOutput(await super._call(n))}}class XLMForSequenceClassification extends XLMPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class XLMForTokenClassification extends XLMPreTrainedModel{async _call(n){return new TokenClassifierOutput(await super._call(n))}}class XLMForQuestionAnswering extends XLMPreTrainedModel{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 ASTPreTrainedModel extends PreTrainedModel{}class ASTModel extends ASTPreTrainedModel{}class ASTForAudioClassification extends ASTPreTrainedModel{}class WhisperPreTrainedModel extends PreTrainedModel{}class WhisperModel extends WhisperPreTrainedModel{}class WhisperForConditionalGeneration extends WhisperPreTrainedModel{requires_attention_mask=!1;main_input_name="input_features";constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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,a=null,u=null){if(a=this._get_generation_config(a),a.return_timestamps??=!1,a.return_timestamps&&(u=[new WhisperTimeStampLogitsProcessor(a)]),a.return_token_timestamps&&(a.output_attentions=!0,a.return_dict_in_generate=!0,a.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),!a.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 c=await super.generate(n,a,u);return a.return_token_timestamps&&a.alignment_heads&&(c.token_timestamps=this._extract_token_timestamps(c,a.alignment_heads,a.num_frames)),c}_extract_token_timestamps(n,a,u=null,c=.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 f=this.config.median_filter_width;f===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),f=7);const s=n.cross_attentions.map(l=>{let o=Array.from({length:this.config.decoder_layers},(g,m)=>cat(l.map(_=>_[m]),2)),t=stack(a.map(([g,m])=>u?o[g].slice(null,m,null,[0,u]):o[g].slice(null,m)));t=t.transpose(1,0,2,3);let[e,r]=std_mean(t,-2,0,!0),i=t.clone();for(let g=0;g<i.dims[0];++g){let m=i[g];for(let _=0;_<m.dims[0];++_){let y=m[_];const T=e[g][_][0],w=r[g][_][0];for(let S=0;S<y.dims[0];++S){let O=y[S];for(let E=0;E<O.data.length;++E)O.data[E]=(O.data[E]-w.data[E])/T.data[E];O.data.set(medianFilter(O.data,f))}}}return mean(i,1)}),h=[n.sequences.length,n.sequences[0].length],p=new Tensor("float32",new Float32Array(h[0]*h[1]),h);for(let l=0;l<h[0];++l){const o=s[l].neg().squeeze_(0);let[t,e]=dynamicTimeWarping(o),r=Array.from({length:t.length-1},(g,m)=>t[m+1]-t[m]),i=mergeArrays([1],r).map(g=>!!g),d=[];for(let g=0;g<i.length;++g)i[g]&&d.push(e[g]*c);p[l].data.set(d,1)}return p}}class VisionEncoderDecoderModel extends PreTrainedModel{main_input_name="pixel_values";constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c;const f=this.config.encoder,s=this.config.decoder,h=f.model_type;(MODEL_MAPPING_NAMES_ENCODER_ONLY.get(h)??MODEL_MAPPING_NAMES_ENCODER_DECODER.get(h))||console.warn(`Model type for encoder '${h}' not found, assuming encoder-only architecture. Please report this at https://github.com/xenova/transformers.js/issues/new/choose.`);const l=MODEL_WITH_LM_HEAD_MAPPING_NAMES.get(s.model_type);if(!l)throw new Error(`Unable to construct \`VisionEncoderDecoder\` due to unsupported decoder: "${this.config.decoder.model_type}"`);const o=l[1],t=new o(s,u,c);this.add_encoder_pkv="num_decoder_layers"in t,this.add_encoder_pkv?(this.num_decoder_layers=t.num_decoder_layers,this.num_decoder_heads=t.num_decoder_heads,this.decoder_dim_kv=t.decoder_dim_kv,this.num_encoder_layers=t.num_encoder_layers,this.num_encoder_heads=t.num_encoder_heads,this.encoder_dim_kv=t.encoder_dim_kv):(this.num_layers=t.num_layers,this.num_heads=t.num_heads,this.dim_kv=t.dim_kv)}}class CLIPPreTrainedModel extends PreTrainedModel{}class CLIPModel extends CLIPPreTrainedModel{}class CLIPTextModelWithProjection extends CLIPPreTrainedModel{static async from_pretrained(n,a={}){return a.model_file_name??="text_model",super.from_pretrained(n,a)}}class CLIPVisionModelWithProjection extends CLIPPreTrainedModel{static async from_pretrained(n,a={}){return a.model_file_name??="vision_model",super.from_pretrained(n,a)}}class SiglipPreTrainedModel extends PreTrainedModel{}class SiglipModel extends SiglipPreTrainedModel{}class SiglipTextModel extends SiglipPreTrainedModel{static async from_pretrained(n,a={}){return a.model_file_name??="text_model",super.from_pretrained(n,a)}}class SiglipVisionModel extends CLIPPreTrainedModel{static async from_pretrained(n,a={}){return a.model_file_name??="vision_model",super.from_pretrained(n,a)}}class ChineseCLIPPreTrainedModel extends PreTrainedModel{}class ChineseCLIPModel extends ChineseCLIPPreTrainedModel{}class CLIPSegPreTrainedModel extends PreTrainedModel{}class CLIPSegModel extends CLIPSegPreTrainedModel{}class CLIPSegForImageSegmentation extends CLIPSegPreTrainedModel{}class GPT2PreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=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{}class GPT2LMHeadModel extends GPT2PreTrainedModel{}class GPTNeoPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=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{}class GPTNeoForCausalLM extends GPTNeoPreTrainedModel{}class GPTNeoXPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.num_heads}}class GPTNeoXModel extends GPTNeoXPreTrainedModel{}class GPTNeoXForCausalLM extends GPTNeoXPreTrainedModel{}class GPTJPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=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 GPTJModel extends GPTJPreTrainedModel{}class GPTJForCausalLM extends GPTJPreTrainedModel{}class GPTBigCodePreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=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{}class GPTBigCodeForCausalLM extends GPTBigCodePreTrainedModel{}class CodeGenPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=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{}class CodeGenForCausalLM extends CodeGenPreTrainedModel{}class LlamaPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_key_value_heads??this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.config.num_attention_heads}}class LlamaModel extends LlamaPreTrainedModel{}class LlamaForCausalLM extends LlamaPreTrainedModel{}class Qwen2PreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_key_value_heads??this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.config.num_attention_heads}}class Qwen2Model extends Qwen2PreTrainedModel{}class Qwen2ForCausalLM extends Qwen2PreTrainedModel{}class PhiPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.num_heads}}class PhiModel extends PhiPreTrainedModel{}class PhiForCausalLM extends PhiPreTrainedModel{}class BloomPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=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.hidden_size/this.num_heads}}class BloomModel extends BloomPreTrainedModel{}class BloomForCausalLM extends BloomPreTrainedModel{}class MptPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.n_heads,this.num_layers=this.config.n_layers,this.dim_kv=this.config.d_model/this.num_heads}}class MptModel extends MptPreTrainedModel{}class MptForCausalLM extends MptPreTrainedModel{}class OPTPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.num_heads}}class OPTModel extends OPTPreTrainedModel{}class OPTForCausalLM extends OPTPreTrainedModel{}class ViTPreTrainedModel extends PreTrainedModel{}class ViTModel extends ViTPreTrainedModel{}class ViTForImageClassification extends ViTPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class VitMattePreTrainedModel extends PreTrainedModel{}class VitMatteForImageMatting extends VitMattePreTrainedModel{async _call(n){return new ImageMattingOutput(await super._call(n))}}class MobileViTPreTrainedModel extends PreTrainedModel{}class MobileViTModel extends MobileViTPreTrainedModel{}class MobileViTForImageClassification extends MobileViTPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class OwlViTPreTrainedModel extends PreTrainedModel{}class OwlViTModel extends OwlViTPreTrainedModel{}class OwlViTForObjectDetection extends OwlViTPreTrainedModel{}class BeitPreTrainedModel extends PreTrainedModel{}class BeitModel extends BeitPreTrainedModel{}class BeitForImageClassification extends BeitPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class DetrPreTrainedModel extends PreTrainedModel{}class DetrModel extends DetrPreTrainedModel{}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:a}){super(),this.logits=n,this.pred_boxes=a}}class DetrSegmentationOutput extends ModelOutput{constructor({logits:n,pred_boxes:a,pred_masks:u}){super(),this.logits=n,this.pred_boxes=a,this.pred_masks=u}}class TableTransformerPreTrainedModel extends PreTrainedModel{}class TableTransformerModel extends TableTransformerPreTrainedModel{}class TableTransformerForObjectDetection extends TableTransformerPreTrainedModel{async _call(n){return new TableTransformerObjectDetectionOutput(await super._call(n))}}class TableTransformerObjectDetectionOutput extends DetrObjectDetectionOutput{}class DeiTPreTrainedModel extends PreTrainedModel{}class DeiTModel extends DeiTPreTrainedModel{}class DeiTForImageClassification extends DeiTPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class ResNetPreTrainedModel extends PreTrainedModel{}class ResNetModel extends ResNetPreTrainedModel{}class ResNetForImageClassification extends ResNetPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class SwinPreTrainedModel extends PreTrainedModel{}class SwinModel extends SwinPreTrainedModel{}class SwinForImageClassification extends SwinPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class Swin2SRPreTrainedModel extends PreTrainedModel{}class Swin2SRModel extends Swin2SRPreTrainedModel{}class Swin2SRForImageSuperResolution extends Swin2SRPreTrainedModel{}class DPTPreTrainedModel extends PreTrainedModel{}class DPTModel extends DPTPreTrainedModel{}class DPTForDepthEstimation extends DPTPreTrainedModel{}class DepthAnythingPreTrainedModel extends PreTrainedModel{}class DepthAnythingForDepthEstimation extends DepthAnythingPreTrainedModel{}class GLPNPreTrainedModel extends PreTrainedModel{}class GLPNModel extends GLPNPreTrainedModel{}class GLPNForDepthEstimation extends GLPNPreTrainedModel{}class DonutSwinPreTrainedModel extends PreTrainedModel{}class DonutSwinModel extends DonutSwinPreTrainedModel{}class ConvNextPreTrainedModel extends PreTrainedModel{}class ConvNextModel extends ConvNextPreTrainedModel{}class ConvNextForImageClassification extends ConvNextPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class ConvNextV2PreTrainedModel extends PreTrainedModel{}class ConvNextV2Model extends ConvNextV2PreTrainedModel{}class ConvNextV2ForImageClassification extends ConvNextV2PreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class Dinov2PreTrainedModel extends PreTrainedModel{}class Dinov2Model extends Dinov2PreTrainedModel{}class Dinov2ForImageClassification extends Dinov2PreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class YolosPreTrainedModel extends PreTrainedModel{}class YolosModel extends YolosPreTrainedModel{}class YolosForObjectDetection extends YolosPreTrainedModel{async _call(n){return new YolosObjectDetectionOutput(await super._call(n))}}class YolosObjectDetectionOutput extends ModelOutput{constructor({logits:n,pred_boxes:a}){super(),this.logits=n,this.pred_boxes=a}}class SamPreTrainedModel extends PreTrainedModel{}class SamModel extends SamPreTrainedModel{constructor(n,a,u){super(n,a),this.prompt_encoder_mask_decoder=u}async get_image_embeddings({pixel_values:n}){return await encoderForward(this,{pixel_values:n})}async forward(n){if((!n.image_embeddings||!n.image_positional_embeddings)&&(n={...n,...await this.get_image_embeddings(n)}),!n.input_labels){const a=n.input_points.dims.slice(0,-1),u=a.reduce((c,f)=>c*f,1);n.input_labels=new Tensor("int64",new BigInt64Array(u).fill(1n),a)}return await sessionRun(this.prompt_encoder_mask_decoder,{input_points:n.input_points,input_labels:n.input_labels,image_embeddings:n.image_embeddings,image_positional_embeddings:n.image_positional_embeddings})}async _call(n){return new SamImageSegmentationOutput(await super._call(n))}}class SamImageSegmentationOutput extends ModelOutput{constructor({iou_scores:n,pred_masks:a}){super(),this.iou_scores=n,this.pred_masks=a}}class MarianPreTrainedModel extends PreTrainedModel{}class MarianModel extends MarianPreTrainedModel{}class MarianMTModel extends MarianPreTrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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}}class M2M100PreTrainedModel extends PreTrainedModel{}class M2M100Model extends M2M100PreTrainedModel{}class M2M100ForConditionalGeneration extends M2M100PreTrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,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}}class Wav2Vec2PreTrainedModel extends PreTrainedModel{}class Wav2Vec2Model extends Wav2Vec2PreTrainedModel{}class Wav2Vec2ForCTC extends Wav2Vec2PreTrainedModel{async _call(n){return new CausalLMOutput(await super._call(n))}}class Wav2Vec2ForSequenceClassification extends Wav2Vec2PreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class Wav2Vec2BertPreTrainedModel extends PreTrainedModel{}class Wav2Vec2BertModel extends Wav2Vec2BertPreTrainedModel{}class Wav2Vec2BertForCTC extends Wav2Vec2BertPreTrainedModel{async _call(n){return new CausalLMOutput(await super._call(n))}}class Wav2Vec2BertForSequenceClassification extends Wav2Vec2BertPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class HubertModel extends Wav2Vec2PreTrainedModel{}class HubertForCTC extends Wav2Vec2PreTrainedModel{async _call(n){return new CausalLMOutput(await super._call(n))}}class HubertForSequenceClassification extends Wav2Vec2PreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class WavLMPreTrainedModel extends PreTrainedModel{}class WavLMModel extends WavLMPreTrainedModel{}class WavLMForCTC extends WavLMPreTrainedModel{async _call(n){return new CausalLMOutput(await super._call(n))}}class WavLMForSequenceClassification extends WavLMPreTrainedModel{async _call(n){return new SequenceClassifierOutput(await super._call(n))}}class SpeechT5PreTrainedModel extends PreTrainedModel{}class SpeechT5ForSpeechToText extends SpeechT5PreTrainedModel{}class SpeechT5ForTextToSpeech extends SpeechT5PreTrainedModel{constructor(n,a,u,c){super(n,a),this.decoder_merged_session=u,this.generation_config=c,this.num_decoder_layers=this.config.decoder_layers,this.num_decoder_heads=this.config.decoder_attention_heads,this.decoder_dim_kv=this.config.hidden_size/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.hidden_size/this.num_encoder_heads}async generate_speech(n,a,{threshold:u=.5,minlenratio:c=0,maxlenratio:f=20,vocoder:s=null}={}){const h={input_ids:n},{encoder_outputs:p,encoder_attention_mask:l}=await encoderForward(this,h),o=p.dims[1]/this.config.reduction_factor,t=Math.floor(o*f),e=Math.floor(o*c),r=this.config.num_mel_bins;let i=[],d=null,g=null,m=0;for(;;){++m;const T=boolTensor(!!g);let w;g?w=g.output_sequence_out:w=new Tensor("float32",new Float32Array(r),[1,1,r]);let S={use_cache_branch:T,output_sequence:w,encoder_attention_mask:l,speaker_embeddings:a,encoder_hidden_states:p};this.addPastKeyValues(S,d),g=await sessionRun(this.decoder_merged_session,S),d=this.getPastKeyValues(g,d);const{prob:O,spectrum:E}=g;if(i.push(E),m>=e&&(Array.from(O.data).filter(v=>v>=u).length>0||m>=t))break}const _=cat(i),{waveform:y}=await sessionRun(s.session,{spectrogram:_});return{spectrogram:_,waveform:y}}}class SpeechT5HifiGan extends PreTrainedModel{main_input_name="spectrogram"}class TrOCRPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,this.config.pad_token_id=this.config.eos_token_id,this.num_encoder_layers=this.num_decoder_layers=this.config.decoder_layers,this.num_encoder_heads=this.num_decoder_heads=this.config.decoder_attention_heads,this.encoder_dim_kv=this.decoder_dim_kv=this.config.d_model/this.num_decoder_heads}}class TrOCRForCausalLM extends TrOCRPreTrainedModel{}class MistralPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_key_value_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.config.num_attention_heads}}class MistralModel extends MistralPreTrainedModel{}class MistralForCausalLM extends MistralPreTrainedModel{}class FalconPreTrainedModel extends PreTrainedModel{constructor(n,a,u){super(n,a),this.generation_config=u,this.config.pad_token_id=this.config.eos_token_id,this.num_heads=this.config.num_attention_heads,this.num_layers=this.config.num_hidden_layers,this.dim_kv=this.config.hidden_size/this.config.num_attention_heads}}class FalconModel extends FalconPreTrainedModel{}class FalconForCausalLM extends FalconPreTrainedModel{}class ClapPreTrainedModel extends PreTrainedModel{}class ClapModel extends ClapPreTrainedModel{}class ClapTextModelWithProjection extends ClapPreTrainedModel{static async from_pretrained(n,a={}){return a.model_file_name??="text_model",super.from_pretrained(n,a)}}class ClapAudioModelWithProjection extends ClapPreTrainedModel{static async from_pretrained(n,a={}){return a.model_file_name??="audio_model",super.from_pretrained(n,a)}}class VitsPreTrainedModel extends PreTrainedModel{}class VitsModel extends VitsPreTrainedModel{async _call(n){return new VitsModelOutput(await super._call(n))}}class SegformerPreTrainedModel extends PreTrainedModel{}class SegformerForImageClassification extends SegformerPreTrainedModel{}class SegformerForSemanticSegmentation extends SegformerPreTrainedModel{}class PretrainedMixin{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(n,{quantized:a=!0,progress_callback:u=null,config:c=null,cache_dir:f=null,local_files_only:s=!1,revision:h="main",model_file_name:p=null}={}){let l={quantized:a,progress_callback:u,config:c,cache_dir:f,local_files_only:s,revision:h,model_file_name:p};if(c=await AutoConfig.from_pretrained(n,l),l.config||(l.config=c),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);for(let o of this.MODEL_CLASS_MAPPINGS){const t=o.get(c.model_type);if(t)return await t[1].from_pretrained(n,l)}if(this.BASE_IF_FAIL)return console.warn(`Unknown model class "${c.model_type}", attempting to construct from base class.`),await PreTrainedModel.from_pretrained(n,l);throw Error(`Unsupported model type: ${c.model_type}`)}}const MODEL_MAPPING_NAMES_ENCODER_ONLY=new Map([["bert",["BertModel",BertModel]],["roformer",["RoFormerModel",RoFormerModel]],["electra",["ElectraModel",ElectraModel]],["esm",["EsmModel",EsmModel]],["convbert",["ConvBertModel",ConvBertModel]],["camembert",["CamembertModel",CamembertModel]],["deberta",["DebertaModel",DebertaModel]],["deberta-v2",["DebertaV2Model",DebertaV2Model]],["mpnet",["MPNetModel",MPNetModel]],["albert",["AlbertModel",AlbertModel]],["distilbert",["DistilBertModel",DistilBertModel]],["roberta",["RobertaModel",RobertaModel]],["xlm",["XLMModel",XLMModel]],["xlm-roberta",["XLMRobertaModel",XLMRobertaModel]],["clap",["ClapModel",ClapModel]],["clip",["CLIPModel",CLIPModel]],["clipseg",["CLIPSegModel",CLIPSegModel]],["chinese_clip",["ChineseCLIPModel",ChineseCLIPModel]],["siglip",["SiglipModel",SiglipModel]],["mobilebert",["MobileBertModel",MobileBertModel]],["squeezebert",["SqueezeBertModel",SqueezeBertModel]],["wav2vec2",["Wav2Vec2Model",Wav2Vec2Model]],["wav2vec2-bert",["Wav2Vec2BertModel",Wav2Vec2BertModel]],["hubert",["HubertModel",HubertModel]],["wavlm",["WavLMModel",WavLMModel]],["audio-spectrogram-transformer",["ASTModel",ASTModel]],["vits",["VitsModel",VitsModel]],["detr",["DetrModel",DetrModel]],["table-transformer",["TableTransformerModel",TableTransformerModel]],["vit",["ViTModel",ViTModel]],["mobilevit",["MobileViTModel",MobileViTModel]],["owlvit",["OwlViTModel",OwlViTModel]],["beit",["BeitModel",BeitModel]],["deit",["DeiTModel",DeiTModel]],["convnext",["ConvNextModel",ConvNextModel]],["convnextv2",["ConvNextV2Model",ConvNextV2Model]],["dinov2",["Dinov2Model",Dinov2Model]],["resnet",["ResNetModel",ResNetModel]],["swin",["SwinModel",SwinModel]],["swin2sr",["Swin2SRModel",Swin2SRModel]],["donut-swin",["DonutSwinModel",DonutSwinModel]],["yolos",["YolosModel",YolosModel]],["dpt",["DPTModel",DPTModel]],["glpn",["GLPNModel",GLPNModel]],["hifigan",["SpeechT5HifiGan",SpeechT5HifiGan]]]),MODEL_MAPPING_NAMES_ENCODER_DECODER=new Map([["t5",["T5Model",T5Model]],["longt5",["LongT5Model",LongT5Model]],["mt5",["MT5Model",MT5Model]],["bart",["BartModel",BartModel]],["mbart",["MBartModel",MBartModel]],["marian",["MarianModel",MarianModel]],["whisper",["WhisperModel",WhisperModel]],["m2m_100",["M2M100Model",M2M100Model]],["blenderbot",["BlenderbotModel",BlenderbotModel]],["blenderbot-small",["BlenderbotSmallModel",BlenderbotSmallModel]]]),MODEL_MAPPING_NAMES_DECODER_ONLY=new Map([["bloom",["BloomModel",BloomModel]],["gpt2",["GPT2Model",GPT2Model]],["gptj",["GPTJModel",GPTJModel]],["gpt_bigcode",["GPTBigCodeModel",GPTBigCodeModel]],["gpt_neo",["GPTNeoModel",GPTNeoModel]],["gpt_neox",["GPTNeoXModel",GPTNeoXModel]],["codegen",["CodeGenModel",CodeGenModel]],["llama",["LlamaModel",LlamaModel]],["qwen2",["Qwen2Model",Qwen2Model]],["phi",["PhiModel",PhiModel]],["mpt",["MptModel",MptModel]],["opt",["OPTModel",OPTModel]],["mistral",["MistralModel",MistralModel]],["falcon",["FalconModel",FalconModel]]]),MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES=new Map([["speecht5",["SpeechT5ForSpeechToText",SpeechT5ForSpeechToText]],["whisper",["WhisperForConditionalGeneration",WhisperForConditionalGeneration]]]),MODEL_FOR_TEXT_TO_SPECTROGRAM_MAPPING_NAMES=new Map([["speecht5",["SpeechT5ForTextToSpeech",SpeechT5ForTextToSpeech]]]),MODEL_FOR_TEXT_TO_WAVEFORM_MAPPING_NAMES=new Map([["vits",["VitsModel",VitsModel]]]),MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES=new Map([["bert",["BertForSequenceClassification",BertForSequenceClassification]],["roformer",["RoFormerForSequenceClassification",RoFormerForSequenceClassification]],["electra",["ElectraForSequenceClassification",ElectraForSequenceClassification]],["esm",["EsmForSequenceClassification",EsmForSequenceClassification]],["convbert",["ConvBertForSequenceClassification",ConvBertForSequenceClassification]],["camembert",["CamembertForSequenceClassification",CamembertForSequenceClassification]],["deberta",["DebertaForSequenceClassification",DebertaForSequenceClassification]],["deberta-v2",["DebertaV2ForSequenceClassification",DebertaV2ForSequenceClassification]],["mpnet",["MPNetForSequenceClassification",MPNetForSequenceClassification]],["albert",["AlbertForSequenceClassification",AlbertForSequenceClassification]],["distilbert",["DistilBertForSequenceClassification",DistilBertForSequenceClassification]],["roberta",["RobertaForSequenceClassification",RobertaForSequenceClassification]],["xlm",["XLMForSequenceClassification",XLMForSequenceClassification]],["xlm-roberta",["XLMRobertaForSequenceClassification",XLMRobertaForSequenceClassification]],["bart",["BartForSequenceClassification",BartForSequenceClassification]],["mbart",["MBartForSequenceClassification",MBartForSequenceClassification]],["mobilebert",["MobileBertForSequenceClassification",MobileBertForSequenceClassification]],["squeezebert",["SqueezeBertForSequenceClassification",SqueezeBertForSequenceClassification]]]),MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES=new Map([["bert",["BertForTokenClassification",BertForTokenClassification]],["roformer",["RoFormerForTokenClassification",RoFormerForTokenClassification]],["electra",["ElectraForTokenClassification",ElectraForTokenClassification]],["esm",["EsmForTokenClassification",EsmForTokenClassification]],["convbert",["ConvBertForTokenClassification",ConvBertForTokenClassification]],["camembert",["CamembertForTokenClassification",CamembertForTokenClassification]],["deberta",["DebertaForTokenClassification",DebertaForTokenClassification]],["deberta-v2",["DebertaV2ForTokenClassification",DebertaV2ForTokenClassification]],["mpnet",["MPNetForTokenClassification",MPNetForTokenClassification]],["distilbert",["DistilBertForTokenClassification",DistilBertForTokenClassification]],["roberta",["RobertaForTokenClassification",RobertaForTokenClassification]],["xlm",["XLMForTokenClassification",XLMForTokenClassification]],["xlm-roberta",["XLMRobertaForTokenClassification",XLMRobertaForTokenClassification]]]),MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES=new Map([["t5",["T5ForConditionalGeneration",T5ForConditionalGeneration]],["longt5",["LongT5ForConditionalGeneration",LongT5ForConditionalGeneration]],["mt5",["MT5ForConditionalGeneration",MT5ForConditionalGeneration]],["bart",["BartForConditionalGeneration",BartForConditionalGeneration]],["mbart",["MBartForConditionalGeneration",MBartForConditionalGeneration]],["marian",["MarianMTModel",MarianMTModel]],["m2m_100",["M2M100ForConditionalGeneration",M2M100ForConditionalGeneration]],["blenderbot",["BlenderbotForConditionalGeneration",BlenderbotForConditionalGeneration]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",BlenderbotSmallForConditionalGeneration]]]),MODEL_WITH_LM_HEAD_MAPPING_NAMES=new Map([["bloom",["BloomForCausalLM",BloomForCausalLM]],["gpt2",["GPT2LMHeadModel",GPT2LMHeadModel]],["gptj",["GPTJForCausalLM",GPTJForCausalLM]],["gpt_bigcode",["GPTBigCodeForCausalLM",GPTBigCodeForCausalLM]],["gpt_neo",["GPTNeoForCausalLM",GPTNeoForCausalLM]],["gpt_neox",["GPTNeoXForCausalLM",GPTNeoXForCausalLM]],["codegen",["CodeGenForCausalLM",CodeGenForCausalLM]],["llama",["LlamaForCausalLM",LlamaForCausalLM]],["qwen2",["Qwen2ForCausalLM",Qwen2ForCausalLM]],["phi",["PhiForCausalLM",PhiForCausalLM]],["mpt",["MptForCausalLM",MptForCausalLM]],["opt",["OPTForCausalLM",OPTForCausalLM]],["mbart",["MBartForCausalLM",MBartForCausalLM]],["mistral",["MistralForCausalLM",MistralForCausalLM]],["falcon",["FalconForCausalLM",FalconForCausalLM]],["trocr",["TrOCRForCausalLM",TrOCRForCausalLM]]]),MODEL_FOR_MASKED_LM_MAPPING_NAMES=new Map([["bert",["BertForMaskedLM",BertForMaskedLM]],["roformer",["RoFormerForMaskedLM",RoFormerForMaskedLM]],["electra",["ElectraForMaskedLM",ElectraForMaskedLM]],["esm",["EsmForMaskedLM",EsmForMaskedLM]],["convbert",["ConvBertForMaskedLM",ConvBertForMaskedLM]],["camembert",["CamembertForMaskedLM",CamembertForMaskedLM]],["deberta",["DebertaForMaskedLM",DebertaForMaskedLM]],["deberta-v2",["DebertaV2ForMaskedLM",DebertaV2ForMaskedLM]],["mpnet",["MPNetForMaskedLM",MPNetForMaskedLM]],["albert",["AlbertForMaskedLM",AlbertForMaskedLM]],["distilbert",["DistilBertForMaskedLM",DistilBertForMaskedLM]],["roberta",["RobertaForMaskedLM",RobertaForMaskedLM]],["xlm",["XLMWithLMHeadModel",XLMWithLMHeadModel]],["xlm-roberta",["XLMRobertaForMaskedLM",XLMRobertaForMaskedLM]],["mobilebert",["MobileBertForMaskedLM",MobileBertForMaskedLM]],["squeezebert",["SqueezeBertForMaskedLM",SqueezeBertForMaskedLM]]]),MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES=new Map([["bert",["BertForQuestionAnswering",BertForQuestionAnswering]],["roformer",["RoFormerForQuestionAnswering",RoFormerForQuestionAnswering]],["electra",["ElectraForQuestionAnswering",ElectraForQuestionAnswering]],["convbert",["ConvBertForQuestionAnswering",ConvBertForQuestionAnswering]],["camembert",["CamembertForQuestionAnswering",CamembertForQuestionAnswering]],["deberta",["DebertaForQuestionAnswering",DebertaForQuestionAnswering]],["deberta-v2",["DebertaV2ForQuestionAnswering",DebertaV2ForQuestionAnswering]],["mpnet",["MPNetForQuestionAnswering",MPNetForQuestionAnswering]],["albert",["AlbertForQuestionAnswering",AlbertForQuestionAnswering]],["distilbert",["DistilBertForQuestionAnswering",DistilBertForQuestionAnswering]],["roberta",["RobertaForQuestionAnswering",RobertaForQuestionAnswering]],["xlm",["XLMForQuestionAnswering",XLMForQuestionAnswering]],["xlm-roberta",["XLMRobertaForQuestionAnswering",XLMRobertaForQuestionAnswering]],["mobilebert",["MobileBertForQuestionAnswering",MobileBertForQuestionAnswering]],["squeezebert",["SqueezeBertForQuestionAnswering",SqueezeBertForQuestionAnswering]]]),MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",VisionEncoderDecoderModel]]]),MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES=new Map([["vit",["ViTForImageClassification",ViTForImageClassification]],["mobilevit",["MobileViTForImageClassification",MobileViTForImageClassification]],["beit",["BeitForImageClassification",BeitForImageClassification]],["deit",["DeiTForImageClassification",DeiTForImageClassification]],["convnext",["ConvNextForImageClassification",ConvNextForImageClassification]],["convnextv2",["ConvNextV2ForImageClassification",ConvNextV2ForImageClassification]],["dinov2",["Dinov2ForImageClassification",Dinov2ForImageClassification]],["resnet",["ResNetForImageClassification",ResNetForImageClassification]],["swin",["SwinForImageClassification",SwinForImageClassification]],["segformer",["SegformerForImageClassification",SegformerForImageClassification]]]),MODEL_FOR_OBJECT_DETECTION_MAPPING_NAMES=new Map([["detr",["DetrForObjectDetection",DetrForObjectDetection]],["table-transformer",["TableTransformerForObjectDetection",TableTransformerForObjectDetection]],["yolos",["YolosForObjectDetection",YolosForObjectDetection]]]),MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING_NAMES=new Map([["owlvit",["OwlViTForObjectDetection",OwlViTForObjectDetection]]]),MODEL_FOR_IMAGE_SEGMENTATION_MAPPING_NAMES=new Map([["detr",["DetrForSegmentation",DetrForSegmentation]],["clipseg",["CLIPSegForImageSegmentation",CLIPSegForImageSegmentation]]]),MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING_NAMES=new Map([["segformer",["SegformerForSemanticSegmentation",SegformerForSemanticSegmentation]]]),MODEL_FOR_MASK_GENERATION_MAPPING_NAMES=new Map([["sam",["SamModel",SamModel]]]),MODEL_FOR_CTC_MAPPING_NAMES=new Map([["wav2vec2",["Wav2Vec2ForCTC",Wav2Vec2ForCTC]],["wav2vec2-bert",["Wav2Vec2BertForCTC",Wav2Vec2BertForCTC]],["wavlm",["WavLMForCTC",WavLMForCTC]],["hubert",["HubertForCTC",HubertForCTC]]]),MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMES=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",Wav2Vec2ForSequenceClassification]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",Wav2Vec2BertForSequenceClassification]],["wavlm",["WavLMForSequenceClassification",WavLMForSequenceClassification]],["hubert",["HubertForSequenceClassification",HubertForSequenceClassification]],["audio-spectrogram-transformer",["ASTForAudioClassification",ASTForAudioClassification]]]),MODEL_FOR_IMAGE_MATTING_MAPPING_NAMES=new Map([["vitmatte",["VitMatteForImageMatting",VitMatteForImageMatting]]]),MODEL_FOR_IMAGE_TO_IMAGE_MAPPING_NAMES=new Map([["swin2sr",["Swin2SRForImageSuperResolution",Swin2SRForImageSuperResolution]]]),MODEL_FOR_DEPTH_ESTIMATION_MAPPING_NAMES=new Map([["dpt",["DPTForDepthEstimation",DPTForDepthEstimation]],["depth_anything",["DepthAnythingForDepthEstimation",DepthAnythingForDepthEstimation]],["glpn",["GLPNForDepthEstimation",GLPNForDepthEstimation]]]),MODEL_CLASS_TYPE_MAPPING=[[MODEL_MAPPING_NAMES_ENCODER_ONLY,MODEL_TYPES.EncoderOnly],[MODEL_MAPPING_NAMES_ENCODER_DECODER,MODEL_TYPES.EncoderDecoder],[MODEL_MAPPING_NAMES_DECODER_ONLY,MODEL_TYPES.DecoderOnly],[MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES,MODEL_TYPES.Seq2Seq],[MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES,MODEL_TYPES.Seq2Seq],[MODEL_WITH_LM_HEAD_MAPPING_NAMES,MODEL_TYPES.DecoderOnly],[MODEL_FOR_MASKED_LM_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES,MODEL_TYPES.Vision2Seq],[MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_IMAGE_SEGMENTATION_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_IMAGE_MATTING_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_IMAGE_TO_IMAGE_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_DEPTH_ESTIMATION_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_OBJECT_DETECTION_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_MASK_GENERATION_MAPPING_NAMES,MODEL_TYPES.MaskGeneration],[MODEL_FOR_CTC_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMES,MODEL_TYPES.EncoderOnly],[MODEL_FOR_TEXT_TO_SPECTROGRAM_MAPPING_NAMES,MODEL_TYPES.Seq2Seq],[MODEL_FOR_TEXT_TO_WAVEFORM_MAPPING_NAMES,MODEL_TYPES.EncoderOnly]];for(const[b,n]of MODEL_CLASS_TYPE_MAPPING)for(const[a,u]of b.values())MODEL_TYPE_MAPPING.set(a,n),MODEL_CLASS_TO_NAME_MAPPING.set(u,a),MODEL_NAME_TO_CLASS_MAPPING.set(a,u);const CUSTOM_MAPPING=[["CLIPTextModelWithProjection",CLIPTextModelWithProjection,MODEL_TYPES.EncoderOnly],["CLIPVisionModelWithProjection",CLIPVisionModelWithProjection,MODEL_TYPES.EncoderOnly],["SiglipTextModel",SiglipTextModel,MODEL_TYPES.EncoderOnly],["SiglipVisionModel",SiglipVisionModel,MODEL_TYPES.EncoderOnly],["ClapTextModelWithProjection",ClapTextModelWithProjection,MODEL_TYPES.EncoderOnly],["ClapAudioModelWithProjection",ClapAudioModelWithProjection,MODEL_TYPES.EncoderOnly]];for(const[b,n,a]of CUSTOM_MAPPING)MODEL_TYPE_MAPPING.set(b,a),MODEL_CLASS_TO_NAME_MAPPING.set(n,b),MODEL_NAME_TO_CLASS_MAPPING.set(b,n);class AutoModel extends PretrainedMixin{static MODEL_CLASS_MAPPINGS=MODEL_CLASS_TYPE_MAPPING.map(n=>n[0]);static BASE_IF_FAIL=!0}class Seq2SeqLMOutput extends ModelOutput{constructor({logits:n,past_key_values:a,encoder_outputs:u,decoder_attentions:c=null,cross_attentions:f=null}){super(),this.logits=n,this.past_key_values=a,this.encoder_outputs=u,this.decoder_attentions=c,this.cross_attentions=f}}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:a}){super(),this.start_logits=n,this.end_logits=a}}class CausalLMOutput extends ModelOutput{constructor({logits:n}){super(),this.logits=n}}class ImageMattingOutput extends ModelOutput{constructor({alphas:n}){super(),this.alphas=n}}class VitsModelOutput extends ModelOutput{constructor({waveform:n,spectrogram:a}){super(),this.waveform=n,this.spectrogram=a}}const BROWSER_ENV=typeof self<"u",WEBWORKER_ENV=BROWSER_ENV&&self.constructor.name==="DedicatedWorkerGlobalScope";let createCanvasFunction,ImageDataClass,loadImageFunction;if(BROWSER_ENV)createCanvasFunction=(b,n)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(b,n)},loadImageFunction=self.createImageBitmap,ImageDataClass=self.ImageData;else if(sharp)loadImageFunction=async b=>{const a=(await b.metadata()).channels;let{data:u,info:c}=await b.raw().toBuffer({resolveWithObject:!0});const f=new RawImage(new Uint8ClampedArray(u),c.width,c.height,c.channels);return a!==void 0&&a!==c.channels&&f.convert(a),f};else throw new Error("Unable to load image processing library.");const RESAMPLING_MAPPING={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},CONTENT_TYPE_MAP=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class RawImage{constructor(n,a,u,c){this.data=n,this.width=a,this.height=u,this.channels=c}get size(){return[this.width,this.height]}static async read(n){if(n instanceof RawImage)return n;if(typeof n=="string"||n instanceof URL)return await this.fromURL(n);throw new Error(`Unsupported input type: ${typeof n}`)}static async fromURL(n){let a=await getFile(n);if(a.status!==200)throw new Error(`Unable to read image from "${n}" (${a.status} ${a.statusText})`);let u=await a.blob();return this.fromBlob(u)}static async fromBlob(n){if(BROWSER_ENV){let a=await loadImageFunction(n);const u=createCanvasFunction(a.width,a.height).getContext("2d");return u.drawImage(a,0,0),new this(u.getImageData(0,0,a.width,a.height).data,a.width,a.height,4)}else{let a=sharp(await n.arrayBuffer());return await loadImageFunction(a)}}static fromTensor(n,a="CHW"){if(n.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${n.dims.length} dimensions.`);if(a==="CHW")n=n.transpose(1,2,0);else if(a!=="HWC")throw new Error(`Unsupported channel format: ${a}`);if(!(n.data instanceof Uint8ClampedArray||n.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${n.type}`);switch(n.dims[2]){case 1:case 2:case 3:case 4:return new RawImage(n.data,n.dims[1],n.dims[0],n.dims[2]);default:throw new Error(`Unsupported number of channels: ${n.dims[2]}`)}}grayscale(){if(this.channels===1)return this;let n=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let a=0,u=0;a<this.data.length;a+=this.channels){const c=this.data[a],f=this.data[a+1],s=this.data[a+2];n[u++]=Math.round(.2989*c+.587*f+.114*s)}break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(n,this.width,this.height,1)}rgb(){if(this.channels===3)return this;let n=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let a=0,u=0;a<this.data.length;++a)n[u++]=this.data[a],n[u++]=this.data[a],n[u++]=this.data[a];break;case 4:for(let a=0,u=0;a<this.data.length;a+=4)n[u++]=this.data[a],n[u++]=this.data[a+1],n[u++]=this.data[a+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(n,this.width,this.height,3)}rgba(){if(this.channels===4)return this;let n=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let a=0,u=0;a<this.data.length;++a)n[u++]=this.data[a],n[u++]=this.data[a],n[u++]=this.data[a],n[u++]=255;break;case 3:for(let a=0,u=0;a<this.data.length;a+=3)n[u++]=this.data[a],n[u++]=this.data[a+1],n[u++]=this.data[a+2],n[u++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(n,this.width,this.height,4)}async resize(n,a,{resample:u=2}={}){let c=RESAMPLING_MAPPING[u]??u;if(BROWSER_ENV){let f=this.channels,s=this.toCanvas();const h=createCanvasFunction(n,a).getContext("2d");return h.drawImage(s,0,0,n,a),new RawImage(h.getImageData(0,0,n,a).data,n,a,4).convert(f)}else{let f=this.toSharp();switch(c){case"box":case"hamming":(c==="box"||c==="hamming")&&(console.warn(`Resampling method ${c} is not yet supported. Using bilinear instead.`),c="bilinear");case"nearest":case"bilinear":case"bicubic":f=f.affine([n/this.width,0,0,a/this.height],{interpolator:c});break;case"lanczos":f=f.resize({width:n,height:a,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${c} is not supported.`)}return await loadImageFunction(f)}}async pad([n,a,u,c]){if(n=Math.max(n,0),a=Math.max(a,0),u=Math.max(u,0),c=Math.max(c,0),n===0&&a===0&&u===0&&c===0)return this;if(BROWSER_ENV){let f=this.channels,s=this.toCanvas(),h=this.width+n+a,p=this.height+u+c;const l=createCanvasFunction(h,p).getContext("2d");return l.drawImage(s,0,0,this.width,this.height,n,u,h,p),new RawImage(l.getImageData(0,0,h,p).data,h,p,4).convert(f)}else{let f=this.toSharp().extend({left:n,right:a,top:u,bottom:c});return await loadImageFunction(f)}}async crop([n,a,u,c]){if(n=Math.max(n,0),a=Math.max(a,0),u=Math.min(u,this.width-1),c=Math.min(c,this.height-1),n===0&&a===0&&u===this.width-1&&c===this.height-1)return this;const f=u-n+1,s=c-a+1;if(BROWSER_ENV){const h=this.channels,p=this.toCanvas(),l=createCanvasFunction(f,s).getContext("2d");return l.drawImage(p,n,a,f,s,0,0,f,s),new RawImage(l.getImageData(0,0,f,s).data,f,s,4).convert(h)}else{const h=this.toSharp().extract({left:n,top:a,width:f,height:s});return await loadImageFunction(h)}}async center_crop(n,a){if(this.width===n&&this.height===a)return this;let u=(this.width-n)/2,c=(this.height-a)/2;if(BROWSER_ENV){let f=this.channels,s=this.toCanvas();const h=createCanvasFunction(n,a).getContext("2d");let p=0,l=0,o=0,t=0;return u>=0?p=u:o=-u,c>=0?l=c:t=-c,h.drawImage(s,p,l,n,a,o,t,n,a),new RawImage(h.getImageData(0,0,n,a).data,n,a,4).convert(f)}else{let f=this.toSharp();if(u>=0&&c>=0)f=f.extract({left:Math.floor(u),top:Math.floor(c),width:n,height:a});else if(u<=0&&c<=0){let s=Math.floor(-c),h=Math.floor(-u);f=f.extend({top:s,left:h,right:n-this.width-h,bottom:a-this.height-s})}else{let s=[0,0],h=0;c<0?(s[0]=Math.floor(-c),s[1]=a-this.height-s[0]):h=Math.floor(c);let p=[0,0],l=0;u<0?(p[0]=Math.floor(-u),p[1]=n-this.width-p[0]):l=Math.floor(u),f=f.extend({top:s[0],bottom:s[1],left:p[0],right:p[1]}).extract({left:l,top:h,width:n,height:a})}return await loadImageFunction(f)}}async toBlob(n="image/png",a=1){if(!BROWSER_ENV)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:n,quality:a})}toCanvas(){if(!BROWSER_ENV)throw new Error("toCanvas() is only supported in browser environments.");let n=this.clone().rgba(),a=createCanvasFunction(n.width,n.height),u=new ImageDataClass(n.data,n.width,n.height);return a.getContext("2d").putImageData(u,0,0),a}_update(n,a,u,c=null){return this.data=n,this.width=a,this.height=u,c!==null&&(this.channels=c),this}clone(){return new RawImage(this.data.slice(),this.width,this.height,this.channels)}convert(n){if(this.channels===n)return this;switch(n){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(n){if(BROWSER_ENV){if(WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");const a=n.split(".").pop().toLowerCase(),u=CONTENT_TYPE_MAP.get(a)??"image/png",c=await this.toBlob(u),f=URL.createObjectURL(c),s=document.createElement("a");s.href=f,s.download=n,s.click(),s.remove()}else{if(env$1.useFS)return await this.toSharp().toFile(n);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(BROWSER_ENV)throw new Error("toSharp() is only supported in server-side environments.");return sharp(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}function hanning(b){if(b<1)return new Float64Array;if(b===1)return new Float64Array([1]);const n=b-1,a=Math.PI/n,u=new Float64Array(b);for(let c=0;c<b;++c){const f=2*c-n;u[c]=.5+.5*Math.cos(a*f)}return u}const HERTZ_TO_MEL_MAPPING={htk:b=>2595*Math.log10(1+b/700),kaldi:b=>1127*Math.log(1+b/700),slaney:(b,n=1e3,a=15,u=27/Math.log(6.4))=>b>=n?a+Math.log(b/n)*u:3*b/200};function hertz_to_mel(b,n="htk"){const a=HERTZ_TO_MEL_MAPPING[n];if(!a)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof b=="number"?a(b):b.map(u=>a(u))}const MEL_TO_HERTZ_MAPPING={htk:b=>700*(10**(b/2595)-1),kaldi:b=>700*(Math.exp(b/1127)-1),slaney:(b,n=1e3,a=15,u=Math.log(6.4)/27)=>b>=a?n*Math.exp(u*(b-a)):200*b/3};function mel_to_hertz(b,n="htk"){const a=MEL_TO_HERTZ_MAPPING[n];if(!a)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof b=="number"?a(b):b.map(u=>a(u))}function _create_triangular_filter_bank(b,n){const a=Float64Array.from({length:n.length-1},(s,h)=>n[h+1]-n[h]),u=Array.from({length:b.length},()=>new Array(n.length));for(let s=0;s<b.length;++s){const h=u[s];for(let p=0;p<n.length;++p)h[p]=n[p]-b[s]}const c=n.length-2,f=Array.from({length:c},()=>new Array(b.length));for(let s=0;s<b.length;++s){const h=u[s];for(let p=0;p<c;++p){const l=-h[p]/a[p],o=h[p+2]/a[p+1];f[p][s]=Math.max(0,Math.min(l,o))}}return f}function linspace(b,n,a){const u=(n-b)/(a-1);return Float64Array.from({length:a},(c,f)=>b+u*f)}function mel_filter_bank(b,n,a,u,c,f=null,s="htk",h=!1){if(f!==null&&f!=="slaney")throw new Error('norm must be one of null or "slaney"');const p=hertz_to_mel(a,s),l=hertz_to_mel(u,s),o=linspace(p,l,n+2);let t=mel_to_hertz(o,s),e;if(h){const i=c/(b*2);e=hertz_to_mel(Float64Array.from({length:b},(d,g)=>g*i),s),t=o}else e=linspace(0,Math.floor(c/2),b);const r=_create_triangular_filter_bank(e,t);if(f!==null&&f==="slaney")for(let i=0;i<n;++i){const d=r[i],g=2/(t[i+2]-t[i]);for(let m=0;m<b;++m)d[m]*=g}return r}function padReflect(b,n,a){const u=new b.constructor(b.length+n+a),c=b.length-1;for(let f=0;f<b.length;++f)u[n+f]=b[f];for(let f=1;f<=n;++f)u[n-f]=b[calculateReflectOffset(f,c)];for(let f=1;f<=a;++f)u[c+n+f]=b[calculateReflectOffset(c-f,c)];return u}function _db_conversion_helper(b,n,a,u,c){if(a<=0)throw new Error("reference must be greater than zero");if(u<=0)throw new Error("min_value must be greater than zero");a=Math.max(u,a);const f=Math.log10(a);for(let s=0;s<b.length;++s)b[s]=n*Math.log10(Math.max(u,b[s])-f);if(c!==null){if(c<=0)throw new Error("db_range must be greater than zero");const s=max(b)[0]-c;for(let h=0;h<b.length;++h)b[h]=Math.max(b[h],s)}return b}function amplitude_to_db(b,n=1,a=1e-5,u=null){return _db_conversion_helper(b,20,n,a,u)}function power_to_db(b,n=1,a=1e-10,u=null){return _db_conversion_helper(b,10,n,a,u)}function spectrogram(b,n,a,u,{fft_length:c=null,power:f=1,center:s=!0,pad_mode:h="reflect",onesided:p=!0,preemphasis:l=null,mel_filters:o=null,mel_floor:t=1e-10,log_mel:e=null,reference:r=1,min_value:i=1e-10,db_range:d=null,remove_dc_offset:g=null,max_num_frames:m=null,do_pad:_=!0,transpose:y=!1}={}){const T=n.length;if(c===null&&(c=a),a>c)throw Error(`frame_length (${a}) may not be larger than fft_length (${c})`);if(T!==a)throw new Error(`Length of the window (${T}) must equal frame_length (${a})`);if(u<=0)throw new Error("hop_length must be greater than zero");if(s){if(h!=="reflect")throw new Error(`pad_mode="${h}" not implemented yet.`);const C=Math.floor((c-1)/2)+1;b=padReflect(b,C,C)}const w=Math.floor(1+Math.floor((b.length-a)/u)),S=p?Math.floor(c/2)+1:c;let O=w,E=w;m!==null&&(m>w?_&&(E=m):E=O=m);const v=new FFT(c),P=new Float64Array(c),L=new Float64Array(v.outputBufferSize),V=new Array(O);for(let C=0;C<O;++C){const $=C*u;for(let z=0;z<a;++z)P[z]=b[$+z];if(g){let z=0;for(let J=0;J<a;++J)z+=P[J];const Z=z/a;for(let J=0;J<a;++J)P[J]-=Z}if(l!==null){for(let z=a-1;z>=1;--z)P[z]-=l*P[z-1];P[0]*=1-l}for(let z=0;z<n.length;++z)P[z]*=n[z];v.realTransform(L,P);const X=new Array(S);for(let z=0;z<X.length;++z){const Z=z<<1;X[z]=L[Z]**2+L[Z+1]**2}V[C]=X}if(f!==null&&f!==2){const C=2/f;for(let $=0;$<V.length;++$){const X=V[$];for(let z=0;z<X.length;++z)X[z]**=C}}const R=o.length,k=new Float32Array(R*E),Y=y?[E,R]:[R,E];for(let C=0;C<R;++C){const $=o[C];for(let X=0;X<O;++X){const z=V[X];let Z=0;for(let J=0;J<S;++J)Z+=$[J]*z[J];k[y?X*R+C:C*O+X]=Math.max(t,Z)}}if(f!==null&&e!==null){const C=Math.min(k.length,O*R);switch(e){case"log":for(let $=0;$<C;++$)k[$]=Math.log(k[$]);break;case"log10":for(let $=0;$<C;++$)k[$]=Math.log10(k[$]);break;case"dB":if(f===1)amplitude_to_db(k,r,i,d);else if(f===2)power_to_db(k,r,i,d);else throw new Error(`Cannot use log_mel option '${e}' with power ${f}`);break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${e}'`)}}return{data:k,dims:Y}}function window_function(b,n,{periodic:a=!0,frame_length:u=null,center:c=!0}={}){const f=a?b+1:b;let s;switch(n){case"boxcar":s=new Float64Array(f).fill(1);break;case"hann":case"hann_window":s=hanning(f);break;case"povey":s=hanning(f).map(h=>Math.pow(h,.85));break;default:throw new Error(`Unknown window type ${n}.`)}if(a&&(s=s.subarray(0,b)),u===null)return s;if(b>u)throw new Error(`Length of the window (${b}) may not be larger than frame_length (${u})`);return s}function center_to_corners_format([b,n,a,u]){return[b-a/2,n-u/2,b+a/2,n+u/2]}function post_process_object_detection(b,n=.5,a=null,u=!1){const c=b.logits,f=b.pred_boxes,[s,h,p]=c.dims;if(a!==null&&a.length!==s)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let l=[];for(let o=0;o<s;++o){let t=a!==null?a[o]:null,e={boxes:[],classes:[],scores:[]},r=c[o],i=f[o];for(let d=0;d<h;++d){let g=r[d],m=[],_;if(u){_=g.sigmoid().data;for(let y=0;y<_.length;++y)_[y]>n&&m.push(y)}else{let y=max(g.data)[1];if(y===p-1)continue;m.push(y),_=softmax(g.data)}for(const y of m){let T=i[d].data;T=center_to_corners_format(T),t!==null&&(T=T.map((w,S)=>w*t[(S+1)%2])),e.boxes.push(T),e.classes.push(y),e.scores.push(_[y])}}l.push(e)}return l}function validate_audio_inputs(b,n){if(!(b instanceof Float32Array||b instanceof Float64Array))throw new Error(`${n} expects input to be a Float32Array or a Float64Array, but got ${b?.constructor?.name??typeof b} instead.If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.`)}function constraint_to_multiple_of(b,n,a=0,u=null){let c=Math.round(b/n)*n;return u!==null&&c>u&&(c=Math.floor(b/n)*n),c<a&&(c=Math.ceil(b/n)*n),c}function enforce_size_divisibility([b,n],a){return[Math.floor(b/a)*a,Math.floor(n/a)*a]}class FeatureExtractor extends Callable{constructor(n){super(),this.config=n}}class ImageFeatureExtractor extends FeatureExtractor{constructor(n){super(n),this.image_mean=this.config.image_mean??this.config.mean,this.image_std=this.config.image_std??this.config.std,this.resample=this.config.resample??2,this.do_rescale=this.config.do_rescale??!0,this.rescale_factor=this.config.rescale_factor??1/255,this.do_normalize=this.config.do_normalize,this.do_resize=this.config.do_resize,this.do_thumbnail=this.config.do_thumbnail,this.size=this.config.size,this.size_divisibility=this.config.size_divisibility??this.config.size_divisor,this.do_center_crop=this.config.do_center_crop,this.crop_size=this.config.crop_size,this.do_convert_rgb=this.config.do_convert_rgb??!0,this.do_crop_margin=this.config.do_crop_margin,this.pad_size=this.config.pad_size,this.do_pad=this.config.do_pad,this.do_pad&&!this.pad_size&&this.size&&this.size.width!==void 0&&this.size.height!==void 0&&(this.pad_size=this.size)}async thumbnail(n,a,u=2){const c=n.height,f=n.width,s=a.height,h=a.width;let p=Math.min(c,s),l=Math.min(f,h);return p===c&&l===f?n:(c>f?l=Math.floor(f*p/c):f>c&&(p=Math.floor(c*l/f)),await n.resize(l,p,{resample:u}))}async crop_margin(n,a=200){const u=n.clone().grayscale(),c=min(u.data)[0],s=max(u.data)[0]-c;if(s===0)return n;const h=a/255;let p=u.width,l=u.height,o=0,t=0;for(let e=0;e<u.height;++e){const r=e*u.width;for(let i=0;i<u.width;++i)(u.data[r+i]-c)/s<h&&(p=Math.min(p,i),l=Math.min(l,e),o=Math.max(o,i),t=Math.max(t,e))}return n=await n.crop([p,l,o,t]),n}pad_image(n,a,u,{mode:c="constant",center:f=!1,constant_values:s=0}={}){const[h,p,l]=a;let o,t;if(typeof u=="number"?(o=u,t=u):(o=u.width,t=u.height),o!==h||t!==p){const e=new Float32Array(o*t*l);if(Array.isArray(s))for(let d=0;d<e.length;++d)e[d]=s[d%l];else s!==0&&e.fill(s);const[r,i]=f?[Math.floor((o-h)/2),Math.floor((t-p)/2)]:[0,0];for(let d=0;d<p;++d){const g=(d+i)*o,m=d*h;for(let _=0;_<h;++_){const y=(g+_+r)*l,T=(m+_)*l;for(let w=0;w<l;++w)e[y+w]=n[T+w]}}if(c==="symmetric"){if(f)throw new Error("`center` padding is not supported when `mode` is set to `symmetric`.");const d=p-1,g=h-1;for(let m=0;m<t;++m){const _=m*o,y=calculateReflectOffset(m,d)*h;for(let T=0;T<o;++T){if(m<p&&T<h)continue;const w=(_+T)*l,S=(y+calculateReflectOffset(T,g))*l;for(let O=0;O<l;++O)e[w+O]=n[S+O]}}}n=e,a=[t,o,l]}return[n,a]}rescale(n){for(let a=0;a<n.length;++a)n[a]=this.rescale_factor*n[a]}get_resize_output_image_size(n,a){const[u,c]=n.size;let f,s;if(this.do_thumbnail){const{height:h,width:p}=a;f=Math.min(h,p)}else Number.isInteger(a)?(f=a,s=this.config.max_size??f):a!==void 0&&(f=a.shortest_edge,s=a.longest_edge);if(f!==void 0||s!==void 0){const h=f===void 0?1:Math.max(f/u,f/c),p=u*h,l=c*h,o=s===void 0?1:Math.min(s/p,s/l);let t=Math.floor(Number((p*o).toFixed(2))),e=Math.floor(Number((l*o).toFixed(2)));return this.size_divisibility!==void 0&&([t,e]=enforce_size_divisibility([t,e],this.size_divisibility)),[t,e]}else if(a!==void 0&&a.width!==void 0&&a.height!==void 0){let h=a.width,p=a.height;if(this.config.keep_aspect_ratio&&this.config.ensure_multiple_of){let l=a.height/c,o=a.width/u;Math.abs(1-o)<Math.abs(1-l)?l=o:o=l,p=constraint_to_multiple_of(l*c,this.config.ensure_multiple_of),h=constraint_to_multiple_of(o*u,this.config.ensure_multiple_of)}return[h,p]}else{if(this.size_divisibility!==void 0)return enforce_size_divisibility([u,c],this.size_divisibility);throw new Error(`Could not resize image due to unsupported \`this.size\` option in config: ${JSON.stringify(a)}`)}}async resize(n){const[a,u]=this.get_resize_output_image_size(n,this.size);return await n.resize(a,u,{resample:this.resample})}async preprocess(n,{do_normalize:a=null,do_pad:u=null,do_convert_rgb:c=null,do_convert_grayscale:f=null}={}){this.do_crop_margin&&(n=await this.crop_margin(n));const[s,h]=n.size;if(c??this.do_convert_rgb?n=n.rgb():f&&(n=n.grayscale()),this.do_resize&&(n=await this.resize(n)),this.do_thumbnail&&(n=await this.thumbnail(n,this.size,this.resample)),this.do_center_crop){let r,i;Number.isInteger(this.crop_size)?(r=this.crop_size,i=this.crop_size):(r=this.crop_size.width,i=this.crop_size.height),n=await n.center_crop(r,i)}const p=[n.height,n.width];let l=Float32Array.from(n.data),o=[n.height,n.width,n.channels];if(this.do_rescale&&this.rescale(l),a??this.do_normalize){let r=this.image_mean;Array.isArray(this.image_mean)||(r=new Array(n.channels).fill(r));let i=this.image_std;if(Array.isArray(this.image_std)||(i=new Array(n.channels).fill(r)),r.length!==n.channels||i.length!==n.channels)throw new Error(`When set to arrays, the length of \`image_mean\` (${r.length}) and \`image_std\` (${i.length}) must match the number of channels in the image (${n.channels}).`);for(let d=0;d<l.length;d+=n.channels)for(let g=0;g<n.channels;++g)l[d+g]=(l[d+g]-this.image_mean[g])/this.image_std[g]}(u??(this.do_pad&&this.pad_size))&&([l,o]=this.pad_image(l,[n.width,n.height,n.channels],this.pad_size));const t=new Tensor("float32",l,o),e=transpose(t,[2,0,1]);return{original_size:[h,s],reshaped_input_size:p,pixel_values:e}}async _call(n,...a){Array.isArray(n)||(n=[n]);const u=await Promise.all(n.map(f=>this.preprocess(f)));return{pixel_values:stack(u.map(f=>f.pixel_values),0),original_sizes:u.map(f=>f.original_size),reshaped_input_sizes:u.map(f=>f.reshaped_input_size)}}}class SegformerFeatureExtractor extends ImageFeatureExtractor{post_process_semantic_segmentation(n,a=null){const u=n.logits,c=u.dims[0];if(a!==null&&a.length!==c)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const f=[];for(let s=0;s<c;++s){const h=a!==null?a[s]:null;let p=u[s];h!==null&&(p=interpolate(p,h,"bilinear",!1));const[l,o]=h??p.dims.slice(-2),t=new Tensor("int32",new Int32Array(l*o),[l,o]),e=p[0].data;for(let g=1;g<p.dims[0];++g){const m=p[g].data;for(let _=0;_<m.length;++_)m[_]>e[_]&&(e[_]=m[_],t.data[_]=g)}const r=new Array(p.dims[0]),i=t.data;for(let g=0;g<i.length;++g){const m=i[g];r[m]=m}const d=r.filter(g=>g!==void 0);f.push({segmentation:t,labels:d})}return f}}class DPTImageProcessor extends ImageFeatureExtractor{}class BitImageProcessor extends ImageFeatureExtractor{}class DPTFeatureExtractor extends ImageFeatureExtractor{}class GLPNFeatureExtractor extends ImageFeatureExtractor{}class CLIPFeatureExtractor extends ImageFeatureExtractor{}class ChineseCLIPFeatureExtractor extends ImageFeatureExtractor{}class SiglipImageProcessor extends ImageFeatureExtractor{}class ConvNextFeatureExtractor extends ImageFeatureExtractor{constructor(n){super(n),this.crop_pct=this.config.crop_pct??224/256}async resize(n){const a=this.size?.shortest_edge;if(a===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(a<384){const u=Math.floor(a/this.crop_pct),[c,f]=this.get_resize_output_image_size(n,{shortest_edge:u});n=await n.resize(c,f,{resample:this.resample}),n=await n.center_crop(a,a)}else n=await n.resize(a,a,{resample:this.resample});return n}}class ConvNextImageProcessor extends ConvNextFeatureExtractor{}class ViTFeatureExtractor extends ImageFeatureExtractor{}class ViTImageProcessor extends ImageFeatureExtractor{}class MobileViTFeatureExtractor extends ImageFeatureExtractor{}class OwlViTFeatureExtractor extends ImageFeatureExtractor{post_process_object_detection(...n){return post_process_object_detection(...n)}}class DeiTFeatureExtractor extends ImageFeatureExtractor{}class BeitFeatureExtractor extends ImageFeatureExtractor{}class DonutFeatureExtractor extends ImageFeatureExtractor{pad_image(n,a,u,c={}){const[f,s,h]=a;let p=this.image_mean;Array.isArray(this.image_mean)||(p=new Array(h).fill(p));let l=this.image_std;Array.isArray(l)||(l=new Array(h).fill(p));const o=p.map((t,e)=>-t/this.image_std[e]);return super.pad_image(n,a,u,{center:!0,constant_values:o,...c})}}class NougatImageProcessor extends DonutFeatureExtractor{}class DetrFeatureExtractor extends ImageFeatureExtractor{async _call(n){const a=await super._call(n),u=[a.pixel_values.dims[0],64,64],c=new Tensor("int64",new BigInt64Array(u.reduce((f,s)=>f*s)).fill(1n),u);return{...a,pixel_mask:c}}post_process_object_detection(...n){return post_process_object_detection(...n)}remove_low_and_no_objects(n,a,u,c){let f=[],s=[],h=[];for(let p=0;p<n.dims[0];++p){let l=n[p],o=a[p],t=max(l.data)[1];if(t===c)continue;let r=softmax(l.data)[t];r>u&&(f.push(o),s.push(r),h.push(t))}return[f,s,h]}check_segment_validity(n,a,u,c=.5,f=.8){let s=[],h=0,p=0;for(let o=0;o<n.length;++o)n[o]===u&&(s.push(o),++h),a[u].data[o]>=c&&++p;let l=h>0&&p>0;return l&&(l=h/p>f),[l,s]}compute_segments(n,a,u,c,f,s=null,h=null){let[p,l]=h??n[0].dims,o=new Tensor("int32",new Int32Array(p*l),[p,l]),t=[];if(h!==null)for(let d=0;d<n.length;++d)n[d]=interpolate(n[d],h,"bilinear",!1);let e=new Int32Array(n[0].data.length),r=new Float32Array(n[0].data.length);for(let d=0;d<n.length;++d){let g=a[d];for(let m=0;m<n[d].data.length;++m)n[d].data[m]*=g,n[d].data[m]>r[m]&&(e[m]=d,r[m]=n[d].data[m])}let i=0;for(let d=0;d<u.length;++d){let g=u[d],[m,_]=this.check_segment_validity(e,n,d,c,f);if(m){++i;for(let y of _)o.data[y]=i;t.push({id:i,label_id:g,score:a[d]})}}return[o,t]}post_process_panoptic_segmentation(n,a=.5,u=.5,c=.8,f=null,s=null){f===null&&(console.warn("`label_ids_to_fuse` unset. No instance will be fused."),f=new Set);const h=n.logits,l=n.pred_masks.sigmoid();let[o,t,e]=h.dims;if(e-=1,s!==null&&s.length!==o)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let r=[];for(let i=0;i<o;++i){let d=s!==null?s[i]:null,g=h[i],m=l[i],[_,y,T]=this.remove_low_and_no_objects(g,m,a,e);if(T.length===0){let[O,E]=d??m.dims.slice(-2),v=new Tensor("int32",new Int32Array(O*E).fill(-1),[O,E]);r.push({segmentation:v,segments_info:[]});continue}let[w,S]=this.compute_segments(_,y,T,u,c,f,d);r.push({segmentation:w,segments_info:S})}return r}post_process_instance_segmentation(){throw Error("Not implemented yet")}}class YolosFeatureExtractor extends ImageFeatureExtractor{post_process_object_detection(...n){return post_process_object_detection(...n)}}class SamImageProcessor extends ImageFeatureExtractor{reshape_input_points(n,a,u){n=structuredClone(n);let c=calculateDimensions(n);if(c.length===3)c=[1,...c],n=[n];else if(c.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let f=0;f<n.length;++f){let s=a[f],h=u[f],p=[h[0]/s[0],h[1]/s[1]];for(let l=0;l<n[f].length;++l)for(let o=0;o<n[f][l].length;++o)for(let t=0;t<n[f][l][o].length;++t)n[f][l][o][t]*=p[t]}return new Tensor("float32",Float32Array.from(n.flat(1/0)),c)}add_input_labels(n,a){let u=calculateDimensions(n);if(u.length===2)u=[1,...u],n=[n];else if(u.length!==3)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");if(u.some((c,f)=>c!==a.dims[f]))throw Error(`The first ${u.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new Tensor("int64",n.flat(1/0).map(BigInt),u)}async _call(n,a=null,u=null){const c=await super._call(n);if(a&&(c.input_points=this.reshape_input_points(a,c.original_sizes,c.reshaped_input_sizes)),u){if(!c.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");c.input_labels=this.add_input_labels(u,c.input_points)}return c}post_process_masks(n,a,u,{mask_threshold:c=0,binarize:f=!0,pad_size:s=null}={}){const h=[];s=s??this.pad_size;const p=[s.height,s.width];for(let l=0;l<a.length;++l){const o=a[l],t=u[l],e=n[l],r=[];for(let i=0;i<e.dims[0];++i){const d=e[i];let g=interpolate(d,p,"bilinear",!1);if(g=g.slice(null,[0,t[0]],[0,t[1]]),g=interpolate(g,o,"bilinear",!1),f){const m=new Uint8Array(g.data.length);for(let _=0;_<g.data.length;++_)g.data[_]>c&&(m[_]=1);g=new Tensor("bool",m,g.dims)}r.push(g)}h.push(stack(r))}return h}}class Swin2SRImageProcessor extends ImageFeatureExtractor{pad_image(n,a,u,c={}){const[f,s,h]=a;return super.pad_image(n,a,{width:f+(u-f%u)%u,height:s+(u-s%u)%u},{mode:"symmetric",center:!1,constant_values:-1,...c})}}class VitMatteImageProcessor extends ImageFeatureExtractor{async _call(n,a){Array.isArray(n)||(n=[n]),Array.isArray(a)||(a=[a]);const u=await Promise.all(n.map(s=>this.preprocess(s))),c=await Promise.all(a.map(s=>this.preprocess(s,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:stack(u.map((s,h)=>cat([s.pixel_values,c[h].pixel_values],0)),0),original_sizes:u.map(s=>s.original_size),reshaped_input_sizes:u.map(s=>s.reshaped_input_size)}}}class WhisperFeatureExtractor extends FeatureExtractor{constructor(n){super(n),this.config.mel_filters??=mel_filter_bank(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney"),this.window=window_function(this.config.n_fft,"hann")}_extract_fbank_features(n){const{data:a,dims:u}=spectrogram(n,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:this.config.nb_max_frames}),c=max(a)[0];for(let f=0;f<a.length;++f)a[f]=(Math.max(a[f],c-8)+4)/4;return{data:a,dims:u}}async _call(n){validate_audio_inputs(n,"WhisperFeatureExtractor");let a;n.length>this.config.n_samples?(console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),a=n.slice(0,this.config.n_samples)):(a=new Float32Array(this.config.n_samples),a.set(n));const{data:u,dims:c}=this._extract_fbank_features(a);return{input_features:new Tensor("float32",u,[1,...c])}}}class Wav2Vec2FeatureExtractor extends FeatureExtractor{_zero_mean_unit_var_norm(n){const u=n.reduce((f,s)=>f+s,0)/n.length,c=n.reduce((f,s)=>f+(s-u)**2,0)/n.length;return n.map(f=>(f-u)/Math.sqrt(c+1e-7))}async _call(n){validate_audio_inputs(n,"Wav2Vec2FeatureExtractor"),n instanceof Float64Array&&(n=new Float32Array(n));let a=n;this.config.do_normalize&&(a=this._zero_mean_unit_var_norm(a));const u=[1,a.length];return{input_values:new Tensor("float32",a,u),attention_mask:new Tensor("int64",new BigInt64Array(a.length).fill(1n),u)}}}class SeamlessM4TFeatureExtractor extends FeatureExtractor{constructor(n){super(n);const a=this.config.sampling_rate,u=mel_filter_bank(256,this.config.num_mel_bins,20,Math.floor(a/2),a,null,"kaldi",!0);for(let c=0;c<u.length;++c)u[c].push(0);this.mel_filters=u,this.window=window_function(400,"povey",{periodic:!1})}_extract_fbank_features(n,a){return n=n.map(u=>u*32768),spectrogram(n,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:a,transpose:!0})}async _call(n,{padding:a=!0,pad_to_multiple_of:u=2,do_normalize_per_mel_bins:c=!0,return_attention_mask:f=!0}={}){validate_audio_inputs(n,"SeamlessM4TFeatureExtractor");let s=this._extract_fbank_features(n,this.config.max_length);if(c){const[i,d]=s.dims;for(let g=0;g<d;++g){let m=0;for(let w=0;w<i;++w)m+=s.data[w*d+g];const _=m/i;let y=0;for(let w=0;w<i;++w)y+=(s.data[w*d+g]-_)**2;y/=i-1;const T=Math.sqrt(y+1e-7);for(let w=0;w<i;++w){const S=w*d+g;s.data[S]=(s.data[S]-_)/T}}}let h;if(a){const[i,d]=s.dims,g=i%u;if(g>0){const m=new Float32Array(d*(i+g));m.set(s.data),m.fill(this.config.padding_value,s.data.length);const _=i+g;s={data:m,dims:[_,d]},f&&(h=new Tensor("int64",new BigInt64Array(_),[1,_]),h.data.fill(1n,0,i))}}const[p,l]=s.dims,o=this.config.stride;if(p%o!==0)throw new Error(`The number of frames (${p}) must be a multiple of the stride (${o}).`);const e=new Tensor("float32",s.data,s.dims).view(1,Math.floor(p/o),l*o),r={input_features:e};if(f){const i=e.dims[1],d=new Tensor("int64",new BigInt64Array(i),[1,i]);if(h)for(let g=1,m=0;g<p;g+=o,++m)d.data[m]=h.data[g];else d.data.fill(1n);r.attention_mask=d}return r}}class ASTFeatureExtractor extends FeatureExtractor{constructor(n){super(n);const a=this.config.sampling_rate,u=mel_filter_bank(256,this.config.num_mel_bins,20,Math.floor(a/2),a,null,"kaldi",!0);for(let c=0;c<u.length;++c)u[c].push(0);this.mel_filters=u,this.window=window_function(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}_extract_fbank_features(n,a){return spectrogram(n,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:a,transpose:!0})}async _call(n){validate_audio_inputs(n,"ASTFeatureExtractor");const a=this._extract_fbank_features(n,this.config.max_length);if(this.config.do_normalize){const u=this.std*2;for(let c=0;c<a.data.length;++c)a.data[c]=(a.data[c]-this.mean)/u}return{input_values:new Tensor("float32",a.data,[1,...a.dims])}}}class ClapFeatureExtractor extends FeatureExtractor{constructor(n){super(n),this.mel_filters=mel_filter_bank(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=mel_filter_bank(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=window_function(this.config.fft_window_size,"hann")}_get_input_mel(n,a,u,c){let f,s=!1;const h=n.length-a;if(h>0)if(u==="rand_trunc"){s=!0;const p=Math.floor(Math.random()*(h+1));n=n.subarray(p,p+a),f=this._extract_fbank_features(n,this.mel_filters_slaney,this.config.nb_max_samples),f.dims=[1,...f.dims]}else throw new Error(`Truncation strategy "${u}" not implemented`);else{if(h<0){let p=new Float64Array(a);if(p.set(n),c==="repeat")for(let l=n.length;l<a;l+=n.length)p.set(n.subarray(0,Math.min(n.length,a-l)),l);else if(c==="repeatpad")for(let l=n.length;l<-h;l+=n.length)p.set(n,l);n=p}if(u==="fusion")throw new Error(`Truncation strategy "${u}" not implemented`);f=this._extract_fbank_features(n,this.mel_filters_slaney,this.config.nb_max_samples),f.dims=[1,...f.dims]}return{...f,longer:s}}_extract_fbank_features(n,a,u=null){return spectrogram(n,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:a,log_mel:"dB",max_num_frames:u,do_pad:!1,transpose:!0})}async _call(n,{max_length:a=null}={}){validate_audio_inputs(n,"ClapFeatureExtractor");const u=this._get_input_mel(n,a??this.config.nb_max_samples,this.config.truncation,this.config.padding);return{input_features:new Tensor("float32",u.data,[1,...u.dims])}}}class SpeechT5FeatureExtractor extends FeatureExtractor{}class Processor extends Callable{constructor(n){super(),this.feature_extractor=n}async _call(n,...a){return await this.feature_extractor(n,...a)}}class SamProcessor extends Processor{async _call(...n){return await this.feature_extractor(...n)}post_process_masks(...n){return this.feature_extractor.post_process_masks(...n)}reshape_input_points(...n){return this.feature_extractor.reshape_input_points(...n)}}class WhisperProcessor extends Processor{async _call(n){return await this.feature_extractor(n)}}class Wav2Vec2ProcessorWithLM extends Processor{async _call(n){return await this.feature_extractor(n)}}class SpeechT5Processor extends Processor{async _call(n){return await this.feature_extractor(n)}}class OwlViTProcessor extends Processor{}class AutoProcessor{static FEATURE_EXTRACTOR_CLASS_MAPPING={ImageFeatureExtractor,WhisperFeatureExtractor,ViTFeatureExtractor,MobileViTFeatureExtractor,OwlViTFeatureExtractor,CLIPFeatureExtractor,ChineseCLIPFeatureExtractor,SiglipImageProcessor,ConvNextFeatureExtractor,ConvNextImageProcessor,SegformerFeatureExtractor,BitImageProcessor,DPTImageProcessor,DPTFeatureExtractor,GLPNFeatureExtractor,BeitFeatureExtractor,DeiTFeatureExtractor,DetrFeatureExtractor,YolosFeatureExtractor,DonutFeatureExtractor,NougatImageProcessor,ViTImageProcessor,VitMatteImageProcessor,SamImageProcessor,Swin2SRImageProcessor,Wav2Vec2FeatureExtractor,SeamlessM4TFeatureExtractor,SpeechT5FeatureExtractor,ASTFeatureExtractor,ClapFeatureExtractor};static PROCESSOR_CLASS_MAPPING={WhisperProcessor,Wav2Vec2ProcessorWithLM,SamProcessor,SpeechT5Processor,OwlViTProcessor};static async from_pretrained(n,{progress_callback:a=null,config:u=null,cache_dir:c=null,local_files_only:f=!1,revision:s="main"}={}){let h=u??await getModelJSON(n,"preprocessor_config.json",!0,{progress_callback:a,config:u,cache_dir:c,local_files_only:f,revision:s}),p=h.feature_extractor_type??h.image_processor_type,l=this.FEATURE_EXTRACTOR_CLASS_MAPPING[p];if(!l)if(h.size!==void 0)console.warn(`Feature extractor type "${p}" not found, assuming ImageFeatureExtractor due to size parameter in config.`),l=ImageFeatureExtractor;else throw new Error(`Unknown Feature Extractor type: ${p}`);let o=this.PROCESSOR_CLASS_MAPPING[h.processor_class]??Processor,t=new l(h);return new o(t)}}env$1.allowLocalModels=!1;env$1.backends.onnx.wasm.proxy=!0;const EXAMPLE_URL="https://images.pexels.com/photos/5965592/pexels-photo-5965592.jpeg?auto=compress&cs=tinysrgb&w=1024",status=document.getElementById("status"),fileUpload=document.getElementById("upload"),imageContainer=document.getElementById("container"),example=document.getElementById("example");status.textContent="Loading model...";const model=await AutoModel.from_pretrained("briaai/RMBG-1.4",{config:{model_type:"custom"}}),processor=await AutoProcessor.from_pretrained("briaai/RMBG-1.4",{config:{do_normalize:!0,do_pad:!1,do_rescale:!0,do_resize:!0,image_mean:[.5,.5,.5],feature_extractor_type:"ImageFeatureExtractor",image_std:[1,1,1],resample:2,rescale_factor:.00392156862745098,size:{width:1024,height:1024}}});status.textContent="Ready";example.addEventListener("click",b=>{b.preventDefault(),predict(EXAMPLE_URL)});fileUpload.addEventListener("change",function(b){const n=b.target.files[0];if(!n)return;const a=new FileReader;a.onload=u=>predict(u.target.result),a.readAsDataURL(n)});async function predict(b){const n=await RawImage.fromURL(b);imageContainer.innerHTML="",imageContainer.style.backgroundImage=`url(${b})`;const a=n.width/n.height,[u,c]=a>720/480?[720,720/a]:[480*a,480];imageContainer.style.width=`${u}px`,imageContainer.style.height=`${c}px`,status.textContent="Analysing...";const{pixel_values:f}=await processor(n),{output:s}=await model({input:f}),h=await RawImage.fromTensor(s[0].mul(255).to("uint8")).resize(n.width,n.height),p=document.createElement("canvas");p.width=n.width,p.height=n.height;const l=p.getContext("2d");l.drawImage(n.toCanvas(),0,0);const o=l.getImageData(0,0,n.width,n.height);for(let t=0;t<h.data.length;++t)o.data[4*t+3]=h.data[t];l.putImageData(o,0,0),imageContainer.append(p),imageContainer.style.removeProperty("background-image"),imageContainer.style.background='url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAGUExURb+/v////5nD/3QAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAUSURBVBjTYwABQSCglEENMxgYGAAynwRB8BEAgQAAAABJRU5ErkJggg==")',status.textContent="Done!"}