/* Human homepage: author: ' */ var Human=(()=>{var Mc=Object.defineProperty;var AE=Object.getOwnPropertyDescriptor;var xE=Object.getOwnPropertyNames;var bE=Object.prototype.hasOwnProperty;var vE=(e,t,r)=>t in e?Mc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var wE=e=>Mc(e,"__esModule",{value:!0});var Qd=(e,t)=>{for(var r in t)Mc(e,r,{get:t[r],enumerable:!0})},kE=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of xE(t))!bE.call(e,a)&&(r||a!=="default")&&Mc(e,a,{get:()=>t[a],enumerable:!(n=AE(t,a))||n.enumerable});return e};var IE=(e=>(t,r)=>e&&e.get(t)||(r=kE(wE({}),t,1),e&&e.set(t,r),r))(typeof WeakMap!="undefined"?new WeakMap:0);var fe=(e,t,r)=>(vE(e,typeof t!="symbol"?t+"":t,r),r),i3=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var ep=(e,t,r)=>(i3(e,t,"read from private field"),r?r.call(e):t.get(e)),tp=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},rp=(e,t,r,n)=>(i3(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var gAe={};Qd(gAe,{Human:()=>IN,default:()=>IN,defaults:()=>gs,env:()=>ce});function ie(...e){let t=new Date,r=`${t.getHours().toString().padStart(2,"0")}:${t.getMinutes().toString().padStart(2,"0")}:${t.getSeconds().toString().padStart(2,"0")}.${t.getMilliseconds().toString().padStart(3,"0")}`;e&&console.log(r,"Human:",...e)}function o3(e,t){let r=e.endsWith("/")?"":"/",a=t.startsWith(".")||t.startsWith("/")||t.startsWith("http:")||t.startsWith("https:")||t.startsWith("file:")?`${t}`:`${e}${r}${t}`;if(!a.toLocaleLowerCase().includes(".json"))throw new Error(`modelpath error: expecting json file: ${a}`);return a}var oe=()=>typeof performance!="undefined"?performance.now():parseInt((Number(process.hrtime.bigint())/1e3/1e3).toString());function T1(e,t,r="config",n=[]){for(let a of Object.keys(t))if(typeof t[a]=="object")T1(e[a],t[a],a,n);else{let s=e&&typeof e[a]!="undefined";s||n.push({reason:"unknown property",where:`${r}.${a} = ${t[a]}`});let i=e&&typeof e[a]==typeof t[a];s&&!i&&n.push({reason:"property type mismatch",where:`${r}.${a} = ${t[a]}`,expected:typeof e[a]})}return t.debug&&r==="config"&&n.length>0&&ie("invalid configuration",n),n}function vr(...e){let t=r=>r&&typeof r=="object";return e.reduce((r,n)=>(Object.keys(n||{}).forEach(a=>{let s=r[a],i=n[a];Array.isArray(s)&&Array.isArray(i)?r[a]=s.concat(...i):t(s)&&t(i)?r[a]=vr(s,i):r[a]=i}),r),{})}var gs={backend:"",modelBasePath:"",cacheModels:!0,wasmPath:"",wasmPlatformFetch:!1,debug:!0,async:!0,warmup:"full",cacheSensitivity:.7,skipAllowed:!1,deallocate:!1,filter:{enabled:!0,equalization:!1,width:0,height:0,flip:!1,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"blazeface.json",rotation:!0,maxDetected:1,skipFrames:99,skipTime:2500,minConfidence:.2,iouThreshold:.1,mask:!1,return:!1},mesh:{enabled:!0,modelPath:"facemesh.json"},iris:{enabled:!0,modelPath:"iris.json"},emotion:{enabled:!0,minConfidence:.1,skipFrames:99,skipTime:1500,modelPath:"emotion.json"},description:{enabled:!0,modelPath:"faceres.json",skipFrames:99,skipTime:3e3,minConfidence:.1},antispoof:{enabled:!1,skipFrames:99,skipTime:4e3,modelPath:"antispoof.json"},liveness:{enabled:!1,skipFrames:99,skipTime:4e3,modelPath:"liveness.json"}},body:{enabled:!0,modelPath:"movenet-lightning.json",maxDetected:-1,minConfidence:.3,skipFrames:1,skipTime:200},hand:{enabled:!0,rotation:!0,skipFrames:99,skipTime:1e3,minConfidence:.5,iouThreshold:.2,maxDetected:-1,landmarks:!0,detector:{modelPath:"handtrack.json"},skeleton:{modelPath:"handlandmark-full.json"}},object:{enabled:!1,modelPath:"mb3-centernet.json",minConfidence:.2,iouThreshold:.4,maxDetected:10,skipFrames:99,skipTime:2e3},segmentation:{enabled:!1,modelPath:"selfie.json",blur:8}};var Ue={};Qd(Ue,{Abs:()=>Mo,Acos:()=>Tu,Acosh:()=>Nu,AdadeltaOptimizer:()=>Tm,AdagradOptimizer:()=>Nm,AdamOptimizer:()=>Em,AdamaxOptimizer:()=>Rm,Add:()=>Ha,AddN:()=>Vs,All:()=>Eu,Any:()=>Ru,ArgMax:()=>Us,ArgMin:()=>Mu,Asin:()=>Fu,Asinh:()=>$u,Atan:()=>Pu,Atan2:()=>zu,Atanh:()=>_u,AvgPool:()=>Gs,AvgPool3D:()=>Op,AvgPool3DGrad:()=>_f,AvgPoolGrad:()=>Pf,BackendWasm:()=>MC,BatchMatMul:()=>js,BatchToSpaceND:()=>Fo,Bincount:()=>zf,BroadcastArgs:()=>Of,BroadcastTo:()=>nw,Callback:()=>M4,CallbackList:()=>M7,Cast:()=>Hs,Ceil:()=>qs,ClipByValue:()=>qa,Complex:()=>Dp,ComplexAbs:()=>Lp,Concat:()=>$o,Conv2D:()=>Ks,Conv2DBackpropFilter:()=>Df,Conv2DBackpropInput:()=>Xs,Conv3D:()=>Bp,Conv3DBackpropFilterV2:()=>Lf,Conv3DBackpropInputV2:()=>Bf,Cos:()=>Zs,Cosh:()=>Ys,CropAndResize:()=>_o,Cumsum:()=>Po,CustomCallback:()=>$7,DataStorage:()=>zp,DenseBincount:()=>Wf,DepthToSpace:()=>zo,DepthwiseConv2dNative:()=>Js,DepthwiseConv2dNativeBackpropFilter:()=>Vf,DepthwiseConv2dNativeBackpropInput:()=>Uf,Diag:()=>Gf,Dilation2D:()=>Wp,Dilation2DBackpropFilter:()=>af,Dilation2DBackpropInput:()=>nf,ENV:()=>ma,EarlyStopping:()=>F4,Einsum:()=>Vp,Elu:()=>ei,EluGrad:()=>jf,Environment:()=>tw,Equal:()=>Oo,Erf:()=>Ou,Exp:()=>ti,ExpandDims:()=>Do,Expm1:()=>Lo,FFT:()=>Hf,Fill:()=>Du,FlipLeftRight:()=>Bo,Floor:()=>ri,FloorDiv:()=>ni,FromPixels:()=>kp,FusedBatchNorm:()=>ai,FusedConv2D:()=>Ns,FusedDepthwiseConv2D:()=>Es,GPGPUContext:()=>du,GatherNd:()=>Vo,GatherV2:()=>Wo,GraphModel:()=>t0,Greater:()=>Uo,GreaterEqual:()=>si,History:()=>F7,IFFT:()=>qf,Identity:()=>ii,Imag:()=>Up,InputSpec:()=>qt,IsFinite:()=>Lu,IsInf:()=>Bu,IsNan:()=>Wu,KernelBackend:()=>Su,LRN:()=>jp,LRNGrad:()=>Xf,LayerVariable:()=>T7,LayersModel:()=>Ga,LeakyRelu:()=>oi,Less:()=>Go,LessEqual:()=>jo,LinSpace:()=>Kf,Log:()=>li,Log1p:()=>Vu,LogSoftmax:()=>aw,LogicalAnd:()=>Ho,LogicalNot:()=>Uu,LogicalOr:()=>Gp,MathBackendCPU:()=>Tx,MathBackendWebGL:()=>Th,Max:()=>ui,MaxPool:()=>pi,MaxPool3D:()=>Hp,MaxPool3DGrad:()=>Yf,MaxPoolGrad:()=>Zf,MaxPoolWithArgmax:()=>Jf,Maximum:()=>di,Mean:()=>hi,Min:()=>ci,Minimum:()=>fi,MirrorPad:()=>mi,Mod:()=>Gu,MomentumOptimizer:()=>Mm,Multinomial:()=>Qf,Multiply:()=>gi,Neg:()=>qo,NonMaxSuppressionV3:()=>Xo,NonMaxSuppressionV4:()=>ju,NonMaxSuppressionV5:()=>Zo,NotEqual:()=>Ko,OP_SCOPE_SUFFIX:()=>xw,OneHot:()=>Jo,OnesLike:()=>Yo,Optimizer:()=>Ya,OptimizerConstructors:()=>As,Pack:()=>Qo,PadV2:()=>yi,Pool:()=>mR,Pow:()=>Ai,Prelu:()=>xi,Prod:()=>el,RMSPropOptimizer:()=>Fm,RNN:()=>Ja,Range:()=>Hu,Rank:()=>uw,Real:()=>qp,RealDiv:()=>Qs,Reciprocal:()=>qu,Reduction:()=>i7,Relu:()=>bi,Relu6:()=>wi,Reshape:()=>tl,ResizeBilinear:()=>vi,ResizeBilinearGrad:()=>tm,ResizeNearestNeighbor:()=>Ku,ResizeNearestNeighborGrad:()=>em,Reverse:()=>rl,RotateWithOffset:()=>gl,Round:()=>nl,Rsqrt:()=>ki,SGDOptimizer:()=>hh,ScatterNd:()=>al,Select:()=>sl,Selu:()=>Xu,Sequential:()=>Hm,Sigmoid:()=>Si,Sign:()=>Zu,Sin:()=>Ii,Sinh:()=>ol,Slice:()=>il,Softmax:()=>Ni,Softplus:()=>Yu,SpaceToBatchND:()=>ll,SparseFillEmptyRows:()=>Kp,SparseReshape:()=>Ju,SparseSegmentMean:()=>Xp,SparseSegmentSum:()=>Zp,SparseToDense:()=>Yp,SplitV:()=>ul,Sqrt:()=>Ci,Square:()=>Qu,SquaredDifference:()=>Ei,Step:()=>$i,StridedSlice:()=>dl,StringNGrams:()=>Jp,StringSplit:()=>rm,StringToHashBucketFast:()=>nm,Sub:()=>Ri,Sum:()=>Ti,SymbolicTensor:()=>sa,Tan:()=>pl,Tanh:()=>Mi,Tensor:()=>rt,TensorBuffer:()=>rr,Tile:()=>Ka,TopK:()=>hl,Transform:()=>cl,Transpose:()=>Fi,Unique:()=>am,Unpack:()=>fl,UnsortedSegmentSum:()=>Qp,Variable:()=>Cp,ZerosLike:()=>ml,_FusedMatMul:()=>Ts,abs:()=>er,acos:()=>Jw,acosh:()=>Qw,add:()=>le,addN:()=>im,all:()=>f2,any:()=>pf,argMax:()=>Cn,argMin:()=>ek,asin:()=>tk,asinh:()=>rk,atan:()=>nk,atan2:()=>ak,atanh:()=>sk,avgPool:()=>om,avgPool3d:()=>g2,backend:()=>ga,backend_util:()=>N,basicLSTMCell:()=>r$,batchNorm:()=>fu,batchNorm2d:()=>uk,batchNorm3d:()=>dk,batchNorm4d:()=>pk,batchToSpaceND:()=>lm,bincount:()=>y2,booleanMaskAsync:()=>fz,broadcastArgs:()=>hk,broadcastTo:()=>Ap,broadcast_util:()=>yl,browser:()=>$n,buffer:()=>We,callbacks:()=>WG,cast:()=>me,ceil:()=>ck,clipByValue:()=>un,clone:()=>Or,complex:()=>Rs,concat:()=>kt,concat1d:()=>fk,concat2d:()=>td,concat3d:()=>mk,concat4d:()=>gk,constraints:()=>f7,conv1d:()=>A2,conv2d:()=>Fs,conv2dTranspose:()=>b2,conv3d:()=>v2,conv3dTranspose:()=>Ak,copyRegisteredKernels:()=>xR,cos:()=>um,cosh:()=>w2,cosineWindow:()=>H2,cumsum:()=>k2,customGrad:()=>Ra,data:()=>n6,denseBincount:()=>xk,deprecationWarn:()=>p2,depthToSpace:()=>bk,depthwiseConv2d:()=>oh,deregisterOp:()=>GG,device_util:()=>nh,diag:()=>F$,dilation2d:()=>vk,disableDeprecationWarnings:()=>AF,dispose:()=>re,disposeVariables:()=>xF,div:()=>pe,divNoNan:()=>wk,dot:()=>L$,dropout:()=>Yk,einsum:()=>kk,elu:()=>lh,enableDebugMode:()=>yF,enableProdMode:()=>d2,enclosingPowerOfTwo:()=>Jk,engine:()=>kr,env:()=>J,equal:()=>Tn,erf:()=>Ik,exp:()=>Nn,expandDims:()=>Ht,expm1:()=>Sk,eye:()=>I2,fft:()=>bm,fill:()=>rd,findBackend:()=>c2,findBackendFactory:()=>kF,floor:()=>uh,floorDiv:()=>sh,forceHalfFloat:()=>I8,fused:()=>_s,gather:()=>mu,gatherND:()=>Zk,gather_util:()=>n2,getBackend:()=>pn,getGradient:()=>G1,getKernel:()=>sf,getKernelsForBackend:()=>Na,getThreadsCount:()=>zye,gpgpu_util:()=>t8,grad:()=>dP,grads:()=>pP,greater:()=>hn,greaterEqual:()=>xl,ifft:()=>Rp,imag:()=>dm,image:()=>Ie,inTopKAsync:()=>Sz,initializers:()=>A7,input:()=>q7,io:()=>Ir,irfft:()=>W2,isFinite:()=>eP,isInf:()=>rP,isNaN:()=>Ck,keep:()=>hr,kernel_impls:()=>Un,layers:()=>S7,leakyRelu:()=>pm,less:()=>S2,lessEqual:()=>bl,linalg:()=>o7,linspace:()=>Tk,loadGraphModel:()=>qj,loadLayersModel:()=>JV,localResponseNormalization:()=>Nk,log:()=>En,log1p:()=>hm,logSigmoid:()=>yP,logSoftmax:()=>C2,logSumExp:()=>$k,logicalAnd:()=>pa,logicalNot:()=>fm,logicalOr:()=>E2,logicalXor:()=>EP,losses:()=>uD,matMul:()=>Je,math:()=>$w,max:()=>fr,maxPool:()=>mm,maxPool3d:()=>R2,maxPoolWithArgmax:()=>Pk,maximum:()=>Xa,mean:()=>Bt,memory:()=>df,meshgrid:()=>_P,metrics:()=>N4,min:()=>$s,minimum:()=>dh,mirrorPad:()=>_k,mod:()=>ad,model:()=>ZV,models:()=>E4,moments:()=>gm,movingAverage:()=>yz,mul:()=>L,multiRNNCell:()=>UP,multinomial:()=>zk,neg:()=>zt,nextFrame:()=>l7,norm:()=>G2,notEqual:()=>gu,oneHot:()=>Np,ones:()=>ln,onesLike:()=>Rn,op:()=>W,outerProduct:()=>KP,pad:()=>Vn,pad1d:()=>YP,pad2d:()=>QP,pad3d:()=>t_,pad4d:()=>n_,pool:()=>l_,pow:()=>Ps,prelu:()=>Am,print:()=>Ew,prod:()=>M2,profile:()=>bF,rand:()=>c_,randomGamma:()=>y_,randomNormal:()=>Ok,randomUniform:()=>sd,range:()=>yu,ready:()=>ed,real:()=>Ep,reciprocal:()=>Dk,registerBackend:()=>Al,registerCallbackConstructor:()=>QV,registerGradient:()=>sw,registerKernel:()=>Wn,registerOp:()=>UG,regularizers:()=>R4,relu:()=>$a,relu6:()=>P2,removeBackend:()=>wF,reshape:()=>G,reverse:()=>Mn,reverse1d:()=>C_,reverse2d:()=>N_,reverse3d:()=>R_,reverse4d:()=>F_,rfft:()=>vm,round:()=>_2,rsqrt:()=>z2,scalar:()=>Se,scatterND:()=>Xk,scatter_util:()=>a2,selu:()=>O2,separableConv2d:()=>Lk,sequential:()=>YV,serialization:()=>ue,setBackend:()=>h2,setPlatform:()=>IF,setThreadsCount:()=>_ye,setWasmPath:()=>Pye,setWasmPaths:()=>lb,setWebGLContext:()=>a0,setdiff1dAsync:()=>Bk,shared:()=>r0,sigmoid:()=>Sr,sign:()=>Wk,signal:()=>lD,sin:()=>D2,sinh:()=>L2,slice:()=>Pe,slice1d:()=>xm,slice2d:()=>B2,slice3d:()=>vl,slice4d:()=>wo,slice_util:()=>_t,softmax:()=>id,softplus:()=>nd,spaceToBatchND:()=>ym,sparse:()=>up,sparseToDense:()=>j2,spectral:()=>oD,split:()=>Kt,sqrt:()=>Cr,square:()=>yt,squaredDifference:()=>V2,squeeze:()=>et,stack:()=>sr,step:()=>ph,stridedSlice:()=>Vk,string:()=>jc,sub:()=>he,sum:()=>ke,sumOutType:()=>rh,tan:()=>Uk,tanh:()=>cu,tensor:()=>ct,tensor1d:()=>St,tensor2d:()=>oa,tensor3d:()=>_w,tensor4d:()=>az,tensor5d:()=>sz,tensor6d:()=>iz,tensor_util:()=>ia,test_util:()=>Xw,tidy:()=>K,tile:()=>Dn,time:()=>vF,topk:()=>Gk,train:()=>so,transpose:()=>nt,truncatedNormal:()=>wm,unique:()=>ny,unregisterGradient:()=>AR,unregisterKernel:()=>yR,unsortedSegmentSum:()=>jk,unstack:()=>en,upcastType:()=>Dr,util:()=>w,valueAndGrad:()=>hP,valueAndGrads:()=>cP,variable:()=>Hk,variableGrads:()=>Ek,version:()=>zh,version_converter:()=>Kj,version_core:()=>u2,version_cpu:()=>Pq,version_layers:()=>yA,version_wasm:()=>Oye,version_webgl:()=>nte,webgl:()=>ate,webgl_util:()=>CI,webgpu:()=>TS,where:()=>Lr,whereAsync:()=>U2,zeros:()=>Wt,zerosLike:()=>at});var SE=Object.create,Rf=Object.defineProperty,CE=Object.getOwnPropertyDescriptor,Uv=Object.getOwnPropertyNames,TE=Object.getPrototypeOf,NE=Object.prototype.hasOwnProperty,EE=e=>Rf(e,"__esModule",{value:!0}),ir=(e,t)=>function(){return t||(0,e[Uv(e)[0]])((t={exports:{}}).exports,t),t.exports},Le=(e,t)=>{for(var r in t)Rf(e,r,{get:t[r],enumerable:!0})},RE=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Uv(t))!NE.call(e,a)&&(r||a!=="default")&&Rf(e,a,{get:()=>t[a],enumerable:!(n=CE(t,a))||n.enumerable});return e},Eo=(e,t)=>RE(EE(Rf(e!=null?SE(TE(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),ME=ir({"src/node_modules/long/src/long.js"(e,t){t.exports=n;var r=null;try{r=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(I){}function n(I,O,z){this.low=I|0,this.high=O|0,this.unsigned=!!z}n.prototype.__isLong__,Object.defineProperty(n.prototype,"__isLong__",{value:!0});function a(I){return(I&&I.__isLong__)===!0}n.isLong=a;var s={},i={};function o(I,O){var z,j,X;return O?(I>>>=0,(X=0<=I&&I<256)&&(j=i[I],j)?j:(z=u(I,(I|0)<0?-1:0,!0),X&&(i[I]=z),z)):(I|=0,(X=-128<=I&&I<128)&&(j=s[I],j)?j:(z=u(I,I<0?-1:0,!1),X&&(s[I]=z),z))}n.fromInt=o;function l(I,O){if(isNaN(I))return O?b:x;if(O){if(I<0)return b;if(I>=g)return R}else{if(I<=-y)return _;if(I+1>=y)return E}return I<0?l(-I,O).neg():u(I%m|0,I/m|0,O)}n.fromNumber=l;function u(I,O,z){return new n(I,O,z)}n.fromBits=u;var d=Math.pow;function h(I,O,z){if(I.length===0)throw Error("empty string");if(I==="NaN"||I==="Infinity"||I==="+Infinity"||I==="-Infinity")return x;if(typeof O=="number"?(z=O,O=!1):O=!!O,z=z||10,z<2||360)throw Error("interior hyphen");if(j===0)return h(I.substring(1),O,z).neg();for(var X=l(d(z,8)),D=x,Q=0;Q>>0:this.low},M.toNumber=function(){return this.unsigned?(this.high>>>0)*m+(this.low>>>0):this.high*m+(this.low>>>0)},M.toString=function(I){if(I=I||10,I<2||36>>0,Y=ee.toString(I);if(D=V,D.isZero())return Y+Q;for(;Y.length<6;)Y="0"+Y;Q=""+Y+Q}},M.getHighBits=function(){return this.high},M.getHighBitsUnsigned=function(){return this.high>>>0},M.getLowBits=function(){return this.low},M.getLowBitsUnsigned=function(){return this.low>>>0},M.getNumBitsAbs=function(){if(this.isNegative())return this.eq(_)?64:this.neg().getNumBitsAbs();for(var I=this.high!=0?this.high:this.low,O=31;O>0&&(I&1<=0},M.isOdd=function(){return(this.low&1)===1},M.isEven=function(){return(this.low&1)===0},M.equals=function(I){return a(I)||(I=p(I)),this.unsigned!==I.unsigned&&this.high>>>31===1&&I.high>>>31===1?!1:this.high===I.high&&this.low===I.low},M.eq=M.equals,M.notEquals=function(I){return!this.eq(I)},M.neq=M.notEquals,M.ne=M.notEquals,M.lessThan=function(I){return this.comp(I)<0},M.lt=M.lessThan,M.lessThanOrEqual=function(I){return this.comp(I)<=0},M.lte=M.lessThanOrEqual,M.le=M.lessThanOrEqual,M.greaterThan=function(I){return this.comp(I)>0},M.gt=M.greaterThan,M.greaterThanOrEqual=function(I){return this.comp(I)>=0},M.gte=M.greaterThanOrEqual,M.ge=M.greaterThanOrEqual,M.compare=function(I){if(a(I)||(I=p(I)),this.eq(I))return 0;var O=this.isNegative(),z=I.isNegative();return O&&!z?-1:!O&&z?1:this.unsigned?I.high>>>0>this.high>>>0||I.high===this.high&&I.low>>>0>this.low>>>0?-1:1:this.sub(I).isNegative()?-1:1},M.comp=M.compare,M.negate=function(){return!this.unsigned&&this.eq(_)?_:this.not().add(v)},M.neg=M.negate,M.add=function(I){a(I)||(I=p(I));var O=this.high>>>16,z=this.high&65535,j=this.low>>>16,X=this.low&65535,D=I.high>>>16,Q=I.high&65535,V=I.low>>>16,ee=I.low&65535,Y=0,se=0,Z=0,ae=0;return ae+=X+ee,Z+=ae>>>16,ae&=65535,Z+=j+V,se+=Z>>>16,Z&=65535,se+=z+Q,Y+=se>>>16,se&=65535,Y+=O+D,Y&=65535,u(Z<<16|ae,Y<<16|se,this.unsigned)},M.subtract=function(I){return a(I)||(I=p(I)),this.add(I.neg())},M.sub=M.subtract,M.multiply=function(I){if(this.isZero())return x;if(a(I)||(I=p(I)),r){var O=r.mul(this.low,this.high,I.low,I.high);return u(O,r.get_high(),this.unsigned)}if(I.isZero())return x;if(this.eq(_))return I.isOdd()?_:x;if(I.eq(_))return this.isOdd()?_:x;if(this.isNegative())return I.isNegative()?this.neg().mul(I.neg()):this.neg().mul(I).neg();if(I.isNegative())return this.mul(I.neg()).neg();if(this.lt(A)&&I.lt(A))return l(this.toNumber()*I.toNumber(),this.unsigned);var z=this.high>>>16,j=this.high&65535,X=this.low>>>16,D=this.low&65535,Q=I.high>>>16,V=I.high&65535,ee=I.low>>>16,Y=I.low&65535,se=0,Z=0,ae=0,de=0;return de+=D*Y,ae+=de>>>16,de&=65535,ae+=X*Y,Z+=ae>>>16,ae&=65535,ae+=D*ee,Z+=ae>>>16,ae&=65535,Z+=j*Y,se+=Z>>>16,Z&=65535,Z+=X*ee,se+=Z>>>16,Z&=65535,Z+=D*V,se+=Z>>>16,Z&=65535,se+=z*Y+j*ee+X*V+D*Q,se&=65535,u(ae<<16|de,se<<16|Z,this.unsigned)},M.mul=M.multiply,M.divide=function(I){if(a(I)||(I=p(I)),I.isZero())throw Error("division by zero");if(r){if(!this.unsigned&&this.high===-2147483648&&I.low===-1&&I.high===-1)return this;var O=(this.unsigned?r.div_u:r.div_s)(this.low,this.high,I.low,I.high);return u(O,r.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?b:x;var z,j,X;if(this.unsigned){if(I.unsigned||(I=I.toUnsigned()),I.gt(this))return b;if(I.gt(this.shru(1)))return C;X=b}else{if(this.eq(_)){if(I.eq(v)||I.eq(S))return _;if(I.eq(_))return v;var D=this.shr(1);return z=D.div(I).shl(1),z.eq(x)?I.isNegative()?v:S:(j=this.sub(I.mul(z)),X=z.add(j.div(I)),X)}else if(I.eq(_))return this.unsigned?b:x;if(this.isNegative())return I.isNegative()?this.neg().div(I.neg()):this.neg().div(I).neg();if(I.isNegative())return this.div(I.neg()).neg();X=x}for(j=this;j.gte(I);){z=Math.max(1,Math.floor(j.toNumber()/I.toNumber()));for(var Q=Math.ceil(Math.log(z)/Math.LN2),V=Q<=48?1:d(2,Q-48),ee=l(z),Y=ee.mul(I);Y.isNegative()||Y.gt(j);)z-=V,ee=l(z,this.unsigned),Y=ee.mul(I);ee.isZero()&&(ee=v),X=X.add(ee),j=j.sub(Y)}return X},M.div=M.divide,M.modulo=function(I){if(a(I)||(I=p(I)),r){var O=(this.unsigned?r.rem_u:r.rem_s)(this.low,this.high,I.low,I.high);return u(O,r.get_high(),this.unsigned)}return this.sub(this.div(I).mul(I))},M.mod=M.modulo,M.rem=M.modulo,M.not=function(){return u(~this.low,~this.high,this.unsigned)},M.and=function(I){return a(I)||(I=p(I)),u(this.low&I.low,this.high&I.high,this.unsigned)},M.or=function(I){return a(I)||(I=p(I)),u(this.low|I.low,this.high|I.high,this.unsigned)},M.xor=function(I){return a(I)||(I=p(I)),u(this.low^I.low,this.high^I.high,this.unsigned)},M.shiftLeft=function(I){return a(I)&&(I=I.toInt()),(I&=63)===0?this:I<32?u(this.low<>>32-I,this.unsigned):u(0,this.low<>>I|this.high<<32-I,this.high>>I,this.unsigned):u(this.high>>I-32,this.high>=0?0:-1,this.unsigned)},M.shr=M.shiftRight,M.shiftRightUnsigned=function(I){if(a(I)&&(I=I.toInt()),I&=63,I===0)return this;var O=this.high;if(I<32){var z=this.low;return u(z>>>I|O<<32-I,O>>>I,this.unsigned)}else return I===32?u(O,0,this.unsigned):u(O>>>I-32,0,this.unsigned)},M.shru=M.shiftRightUnsigned,M.shr_u=M.shiftRightUnsigned,M.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},M.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},M.toBytes=function(I){return I?this.toBytesLE():this.toBytesBE()},M.toBytesLE=function(){var I=this.high,O=this.low;return[O&255,O>>>8&255,O>>>16&255,O>>>24,I&255,I>>>8&255,I>>>16&255,I>>>24]},M.toBytesBE=function(){var I=this.high,O=this.low;return[I>>>24,I>>>16&255,I>>>8&255,I&255,O>>>24,O>>>16&255,O>>>8&255,O&255]},n.fromBytes=function(I,O,z){return z?n.fromBytesLE(I,O):n.fromBytesBE(I,O)},n.fromBytesLE=function(I,O){return new n(I[0]|I[1]<<8|I[2]<<16|I[3]<<24,I[4]|I[5]<<8|I[6]<<16|I[7]<<24,O)},n.fromBytesBE=function(I,O){return new n(I[4]<<24|I[5]<<16|I[6]<<8|I[7],I[0]<<24|I[1]<<16|I[2]<<8|I[3],O)}}}),FE=ir({"(disabled):src/node_modules/node-fetch/browser.js"(){}}),$E=ir({"(disabled):util"(){}}),PE=ir({"src/node_modules/seedrandom/lib/alea.js"(e,t){(function(r,n,a){function s(u){var d=this,h=l();d.next=function(){var p=2091639*d.s0+d.c*23283064365386963e-26;return d.s0=d.s1,d.s1=d.s2,d.s2=p-(d.c=p|0)},d.c=1,d.s0=h(" "),d.s1=h(" "),d.s2=h(" "),d.s0-=h(u),d.s0<0&&(d.s0+=1),d.s1-=h(u),d.s1<0&&(d.s1+=1),d.s2-=h(u),d.s2<0&&(d.s2+=1),h=null}function i(u,d){return d.c=u.c,d.s0=u.s0,d.s1=u.s1,d.s2=u.s2,d}function o(u,d){var h=new s(u),p=d&&d.state,c=h.next;return c.int32=function(){return h.next()*4294967296|0},c.double=function(){return c()+(c()*2097152|0)*11102230246251565e-32},c.quick=c,p&&(typeof p=="object"&&i(p,h),c.state=function(){return i(h,{})}),c}function l(){var u=4022871197,d=function(h){h=String(h);for(var p=0;p>>0,c-=u,c*=u,u=c>>>0,c-=u,u+=c*4294967296}return(u>>>0)*23283064365386963e-26};return d}n&&n.exports?n.exports=o:a&&a.amd?a(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),_E=ir({"src/node_modules/seedrandom/lib/xor128.js"(e,t){(function(r,n,a){function s(l){var u=this,d="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var p=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^p^p>>>8},l===(l|0)?u.x=l:d+=l;for(var h=0;h>>0)/4294967296};return p.double=function(){do var c=d.next()>>>11,f=(d.next()>>>0)/4294967296,m=(c+f)/(1<<21);while(m===0);return m},p.int32=d.next,p.quick=p,h&&(typeof h=="object"&&i(h,d),p.state=function(){return i(d,{})}),p}n&&n.exports?n.exports=o:a&&a.amd?a(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),zE=ir({"src/node_modules/seedrandom/lib/xorwow.js"(e,t){(function(r,n,a){function s(l){var u=this,d="";u.next=function(){var p=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(p^p<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:d+=l;for(var h=0;h>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var d=new s(l),h=u&&u.state,p=function(){return(d.next()>>>0)/4294967296};return p.double=function(){do var c=d.next()>>>11,f=(d.next()>>>0)/4294967296,m=(c+f)/(1<<21);while(m===0);return m},p.int32=d.next,p.quick=p,h&&(typeof h=="object"&&i(h,d),p.state=function(){return i(d,{})}),p}n&&n.exports?n.exports=o:a&&a.amd?a(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),OE=ir({"src/node_modules/seedrandom/lib/xorshift7.js"(e,t){(function(r,n,a){function s(l){var u=this;u.next=function(){var h=u.x,p=u.i,c,f,m;return c=h[p],c^=c>>>7,f=c^c<<24,c=h[p+1&7],f^=c^c>>>10,c=h[p+3&7],f^=c^c>>>3,c=h[p+4&7],f^=c^c<<7,c=h[p+7&7],c=c^c<<13,f^=c^c<<9,h[p]=f,u.i=p+1&7,f};function d(h,p){var c,f,m=[];if(p===(p|0))f=m[0]=p;else for(p=""+p,c=0;c0;--c)h.next()}d(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var d=new s(l),h=u&&u.state,p=function(){return(d.next()>>>0)/4294967296};return p.double=function(){do var c=d.next()>>>11,f=(d.next()>>>0)/4294967296,m=(c+f)/(1<<21);while(m===0);return m},p.int32=d.next,p.quick=p,h&&(h.x&&i(h,d),p.state=function(){return i(d,{})}),p}n&&n.exports?n.exports=o:a&&a.amd?a(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),DE=ir({"src/node_modules/seedrandom/lib/xor4096.js"(e,t){(function(r,n,a){function s(l){var u=this;u.next=function(){var h=u.w,p=u.X,c=u.i,f,m;return u.w=h=h+1640531527|0,m=p[c+34&127],f=p[c=c+1&127],m^=m<<13,f^=f<<17,m^=m>>>15,f^=f>>>12,m=p[c]=m^f,u.i=c,m+(h^h>>>16)|0};function d(h,p){var c,f,m,g,y,A=[],x=128;for(p===(p|0)?(f=p,p=null):(p=p+"\0",f=0,x=Math.max(x,p.length)),m=0,g=-32;g>>15,f^=f<<4,f^=f>>>13,g>=0&&(y=y+1640531527|0,c=A[g&127]^=f+y,m=c==0?m+1:0);for(m>=128&&(A[(p&&p.length||0)&127]=-1),m=127,g=4*128;g>0;--g)f=A[m+34&127],c=A[m=m+1&127],f^=f<<13,c^=c<<17,f^=f>>>15,c^=c>>>12,A[m]=f^c;h.w=y,h.X=A,h.i=m}d(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var d=new s(l),h=u&&u.state,p=function(){return(d.next()>>>0)/4294967296};return p.double=function(){do var c=d.next()>>>11,f=(d.next()>>>0)/4294967296,m=(c+f)/(1<<21);while(m===0);return m},p.int32=d.next,p.quick=p,h&&(h.X&&i(h,d),p.state=function(){return i(d,{})}),p}n&&n.exports?n.exports=o:a&&a.amd?a(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),LE=ir({"src/node_modules/seedrandom/lib/tychei.js"(e,t){(function(r,n,a){function s(l){var u=this,d="";u.next=function(){var p=u.b,c=u.c,f=u.d,m=u.a;return p=p<<25^p>>>7^c,c=c-f|0,f=f<<24^f>>>8^m,m=m-p|0,u.b=p=p<<20^p>>>12^c,u.c=c=c-f|0,u.d=f<<16^c>>>16^m,u.a=m-p|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):d+=l;for(var h=0;h>>0)/4294967296};return p.double=function(){do var c=d.next()>>>11,f=(d.next()>>>0)/4294967296,m=(c+f)/(1<<21);while(m===0);return m},p.int32=d.next,p.quick=p,h&&(typeof h=="object"&&i(h,d),p.state=function(){return i(d,{})}),p}n&&n.exports?n.exports=o:a&&a.amd?a(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}}),BE=ir({"(disabled):crypto"(){}}),WE=ir({"src/node_modules/seedrandom/seedrandom.js"(e,t){(function(r,n,a){var s=256,i=6,o=52,l="random",u=a.pow(s,i),d=a.pow(2,o),h=d*2,p=s-1,c;function f(v,C,S){var E=[];C=C==!0?{entropy:!0}:C||{};var R=A(y(C.entropy?[v,b(n)]:v==null?x():v,3),E),_=new m(E),M=function(){for(var I=_.g(i),O=u,z=0;I=h;)I/=2,O/=2,z>>>=1;return(I+z)/O};return M.int32=function(){return _.g(4)|0},M.quick=function(){return _.g(4)/4294967296},M.double=M,A(b(_.S),n),(C.pass||S||function(I,O,z,j){return j&&(j.S&&g(j,_),I.state=function(){return g(_,{})}),z?(a[l]=I,O):I})(M,R,"global"in C?C.global:this==a,C.state)}function m(v){var C,S=v.length,E=this,R=0,_=E.i=E.j=0,M=E.S=[];for(S||(v=[S++]);R{var n=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(n=n||__filename),function(a){a=a||{};function s(){return $e.buffer!=Mr&&Zn($e.buffer),Zh}function i(){return $e.buffer!=Mr&&Zn($e.buffer),Yh}function o(){return $e.buffer!=Mr&&Zn($e.buffer),Vd}function l(){return $e.buffer!=Mr&&Zn($e.buffer),Jh}function u(){return $e.buffer!=Mr&&Zn($e.buffer),Qh}function d(){return $e.buffer!=Mr&&Zn($e.buffer),ec}function h(){return $e.buffer!=Mr&&Zn($e.buffer),tc}var p=typeof a!="undefined"?a:{},c,f;p.ready=new Promise(function(T,$){c=T,f=$});var m;typeof process!="undefined"&&process.listeners&&(m={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},p),y=[],A="./this.program",x=(T,$)=>{throw $},b=typeof window=="object",v=typeof importScripts=="function",C=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",S=p.ENVIRONMENT_IS_PTHREAD||!1,E="";function R(T){return p.locateFile?p.locateFile(T,E):E+T}var _,M,I,O;function z(T){T instanceof Yd||Y("exiting due to exception: "+T)}var j,X,D;if(C){v?E=ef().dirname(E)+"/":E=__dirname+"/",D=()=>{X||(j=Gy(),X=ef())},_=function($,U){return D(),$=X.normalize($),j.readFileSync($,U?void 0:"utf8")},I=$=>{var U=_($,!0);return U.buffer||(U=new Uint8Array(U)),U},M=($,U,te)=>{D(),$=X.normalize($),j.readFile($,function(ge,xe){ge?te(ge):U(xe.buffer)})},process.argv.length>1&&(A=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function($){if(!($ instanceof Yd))throw $}),process.on("unhandledRejection",function($){throw $}),x=($,U)=>{if(Yi())throw process.exitCode=$,U;z(U),process.exit($)},p.inspect=function(){return"[Emscripten Module object]"};let T;try{T=VE()}catch($){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),$}global.Worker=T.Worker}else(b||v)&&(v?E=self.location.href:typeof document!="undefined"&&document.currentScript&&(E=document.currentScript.src),typeof n!="undefined"&&n&&(E=n),E.indexOf("blob:")!==0?E=E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):E="",C||(_=T=>{var $=new XMLHttpRequest;return $.open("GET",T,!1),$.send(null),$.responseText},v&&(I=T=>{var $=new XMLHttpRequest;return $.open("GET",T,!1),$.responseType="arraybuffer",$.send(null),new Uint8Array($.response)}),M=(T,$,U)=>{var te=new XMLHttpRequest;te.open("GET",T,!0),te.responseType="arraybuffer",te.onload=()=>{if(te.status==200||te.status==0&&te.response){$(te.response);return}U()},te.onerror=U,te.send(null)}),O=T=>document.title=T);C&&typeof performance=="undefined"&&(global.performance=UE().performance);var Q=console.log.bind(console),V=console.warn.bind(console);C&&(D(),Q=T=>j.writeSync(1,T+` `),V=T=>j.writeSync(2,T+` `));var ee=p.print||Q,Y=p.printErr||V;Object.assign(p,g),g=null,p.arguments&&(y=p.arguments),p.thisProgram&&(A=p.thisProgram),p.quit&&(x=p.quit);var se=4;function Z(T){Z.shown||(Z.shown={}),Z.shown[T]||(Z.shown[T]=1,Y(T))}function ae(T,$){if(typeof WebAssembly.Function=="function"){for(var U={i:"i32",j:"i64",f:"f32",d:"f64"},te={parameters:[],results:$[0]=="v"?[]:[U[$[0]]]},ge=1;ge<$.length;++ge)te.parameters.push(U[$[ge]]);return new WebAssembly.Function(te,T)}var xe=[1,0,1,96],Ce=$.slice(0,1),_e=$.slice(1),$t={i:127,j:126,f:125,d:124};xe.push(_e.length);for(var ge=0;ge<_e.length;++ge)xe.push($t[_e[ge]]);Ce=="v"?xe.push(0):xe=xe.concat([1,$t[Ce]]),xe[1]=xe.length-2;var ea=new Uint8Array([0,97,115,109,1,0,0,0].concat(xe,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),ta=new WebAssembly.Module(ea),Rc=new WebAssembly.Instance(ta,{e:{f:T}}),Jd=Rc.exports.f;return Jd}var de=[],Ae;function be(){if(de.length)return de.pop();try{vn.grow(1)}catch(T){throw T instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":T}return vn.length-1}function Ee(T,$){for(var U=T;U{Me=T},Be=Atomics.load,Ze=Atomics.store,ot=Atomics.compareExchange,dt;p.wasmBinary&&(dt=p.wasmBinary);var pt=p.noExitRuntime||!0;typeof WebAssembly!="object"&&Bl("no native wasm support detected");var $e,vt,gt=!1,Rr;function ur(T,$){T||Bl($)}function Xr(T){var $=p["_"+T];return $}function Jt(T,$,U,te,ge){var xe={string:function(wn){var Zl=0;if(wn!=null&&wn!==0){var s3=(wn.length<<2)+1;Zl=Xl(s3),Xi(wn,Zl,s3)}return Zl},array:function(wn){var Zl=Xl(wn.length);return Da(wn,Zl),Zl}};function Ce(wn){return $==="string"?bn(wn):$==="boolean"?Boolean(wn):wn}var _e=Xr(T),$t=[],ea=0;if(te)for(var ta=0;ta(U.buffer instanceof SharedArrayBuffer&&(U=new Uint8Array(U)),$.decode.call($,U))}var Qt=typeof TextDecoder!="undefined"?new Zr("utf8"):void 0;function xn(T,$,U){for(var te=$+U,ge=$;T[ge]&&!(ge>=te);)++ge;if(ge-$>16&&T.subarray&&Qt)return Qt.decode(T.subarray($,ge));for(var xe="";$>10,56320|ea&1023)}}return xe}function bn(T,$){return T?xn(i(),T,$):""}function ps(T,$,U,te){if(!(te>0))return 0;for(var ge=U,xe=U+te-1,Ce=0;Ce=55296&&_e<=57343){var $t=T.charCodeAt(++Ce);_e=65536+((_e&1023)<<10)|$t&1023}if(_e<=127){if(U>=xe)break;$[U++]=_e}else if(_e<=2047){if(U+1>=xe)break;$[U++]=192|_e>>6,$[U++]=128|_e&63}else if(_e<=65535){if(U+2>=xe)break;$[U++]=224|_e>>12,$[U++]=128|_e>>6&63,$[U++]=128|_e&63}else{if(U+3>=xe)break;$[U++]=240|_e>>18,$[U++]=128|_e>>12&63,$[U++]=128|_e>>6&63,$[U++]=128|_e&63}}return $[U]=0,U-ge}function Xi(T,$,U){return ps(T,i(),$,U)}function Xh(T){for(var $=0,U=0;U=55296&&te<=57343&&(te=65536+((te&1023)<<10)|T.charCodeAt(++U)&1023),te<=127?++$:te<=2047?$+=2:te<=65535?$+=3:$+=4}return $}var hs=typeof TextDecoder!="undefined"?new Zr("utf-16le"):void 0;function Da(T,$){s().set(T,$)}function Wd(T,$,U){for(var te=0;te>0]=T.charCodeAt(te);U||(s()[$>>0]=0)}function Dl(T,$){return T%$>0&&(T+=$-T%$),T}var Mr,Zh,Yh,Vd,Jh,Qh,L5,ec,tc;S&&(Mr=p.buffer);function Zn(T){Mr=T,p.HEAP8=Zh=new Int8Array(T),p.HEAP16=Vd=new Int16Array(T),p.HEAP32=Qh=new Int32Array(T),p.HEAPU8=Yh=new Uint8Array(T),p.HEAPU16=Jh=new Uint16Array(T),p.HEAPU32=L5=new Uint32Array(T),p.HEAPF32=ec=new Float32Array(T),p.HEAPF64=tc=new Float64Array(T)}var rc=p.INITIAL_MEMORY||16777216;if(S)$e=p.wasmMemory,Mr=p.buffer;else if(p.wasmMemory)$e=p.wasmMemory;else if($e=new WebAssembly.Memory({initial:rc/65536,maximum:32768,shared:!0}),!($e.buffer instanceof SharedArrayBuffer))throw Y("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"),C&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");$e&&(Mr=$e.buffer),rc=Mr.byteLength,Zn(Mr);var vn,Ll=[],cs=[],Y0=[],nc=[],Zi=!1,J0=!1,ac=0;function Yi(){return pt||ac>0}function Fr(){if(p.preRun)for(typeof p.preRun=="function"&&(p.preRun=[p.preRun]);p.preRun.length;)B5(p.preRun.shift());uc(Ll)}function Ud(){Zi=!0,!S&&uc(cs)}function Q0(){S||(ze.terminateAllThreads(),J0=!0)}function eg(){if(!S){if(p.postRun)for(typeof p.postRun=="function"&&(p.postRun=[p.postRun]);p.postRun.length;)Gd(p.postRun.shift());uc(nc)}}function B5(T){Ll.unshift(T)}function W5(T){cs.unshift(T)}function Gd(T){nc.unshift(T)}var fs=0,sc=null,Yn=null;function jd(T){fs++,p.monitorRunDependencies&&p.monitorRunDependencies(fs)}function V5(T){if(fs--,p.monitorRunDependencies&&p.monitorRunDependencies(fs),fs==0&&(sc!==null&&(clearInterval(sc),sc=null),Yn)){var $=Yn;Yn=null,$()}}p.preloadedImages={},p.preloadedAudios={};function Bl(T){S?postMessage({cmd:"onAbort",arg:T}):p.onAbort&&p.onAbort(T),T="Aborted("+T+")",Y(T),gt=!0,Rr=1,T+=". Build with -s ASSERTIONS=1 for more info.";var $=new WebAssembly.RuntimeError(T);throw f($),$}var tg="data:application/octet-stream;base64,";function ic(T){return T.startsWith(tg)}function oc(T){return T.startsWith("file://")}var $r;$r="tfjs-backend-wasm-threaded-simd.wasm",ic($r)||($r=R($r));function lc(T){try{if(T==$r&&dt)return new Uint8Array(dt);if(I)return I(T);throw"both async and sync fetching of the wasm failed"}catch($){Bl($)}}function Wl(){if(!dt&&(b||v)){if(typeof fetch=="function"&&!oc($r))return fetch($r,{credentials:"same-origin"}).then(function(T){if(!T.ok)throw"failed to load wasm binary file at '"+$r+"'";return T.arrayBuffer()}).catch(function(){return lc($r)});if(M)return new Promise(function(T,$){M($r,function(U){T(new Uint8Array(U))},$)})}return Promise.resolve().then(function(){return lc($r)})}function rg(){var T={env:vc,wasi_snapshot_preview1:vc};function $(Ce,_e){var $t=Ce.exports;if(p.asm=$t,ug(p.asm.emscripten_tls_init),vn=p.asm.__indirect_function_table,W5(p.asm.__wasm_call_ctors),vt=_e,!S){var ea=ze.unusedWorkers.length;ze.unusedWorkers.forEach(function(ta){ze.loadWasmModuleToWorker(ta,function(){--ea||V5("wasm-instantiate")})})}}S||jd("wasm-instantiate");function U(Ce){$(Ce.instance,Ce.module)}function te(Ce){return Wl().then(function(_e){return WebAssembly.instantiate(_e,T)}).then(function(_e){return _e}).then(Ce,function(_e){Y("failed to asynchronously prepare wasm: "+_e),Bl(_e)})}function ge(){return!dt&&typeof WebAssembly.instantiateStreaming=="function"&&!ic($r)&&!oc($r)&&typeof fetch=="function"?fetch($r,{credentials:"same-origin"}).then(function(Ce){var _e=WebAssembly.instantiateStreaming(Ce,T);return _e.then(U,function($t){return Y("wasm streaming compile failed: "+$t),Y("falling back to ArrayBuffer instantiation"),te(U)})}):te(U)}if(p.instantiateWasm)try{var xe=p.instantiateWasm(T,$);return xe}catch(Ce){return Y("Module.instantiateWasm callback failed with error: "+Ce),!1}return ge().catch(f),{}}var U5,G5,ng={};function uc(T){for(;T.length>0;){var $=T.shift();if(typeof $=="function"){$(p);continue}var U=$.func;typeof U=="number"?$.arg===void 0?Ul(U)():Ul(U)($.arg):U($.arg===void 0?null:$.arg)}}function Vl(T){var $=S1(),U=T();return Cc($),U}function SN(T){return T}function j5(T){var $=/\b_Z[\w\d_]+/g;return T.replace($,function(U){var te=U;return U===te?U:te+" ["+U+"]"})}function ag(T){u()[T>>2]=0;var $=ze.pthreads[T];delete ze.pthreads[T],$.worker.terminate(),I1(T),ze.runningWorkers.splice(ze.runningWorkers.indexOf($.worker),1),$.worker.pthread=void 0}function sg(T){var $=ze.pthreads[T];$.worker.postMessage({cmd:"cancel"})}function dc(T){var $=ze.pthreads[T];if($){u()[T>>2]=0;var U=$.worker;ze.returnWorkerToPool(U)}}function pc(T){fE(T)}function ig(T){if(T instanceof Yd||T=="unwind")return Rr;x(1,T)}var ze={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],init:function(){S?ze.initWorker():ze.initMainThread()},initMainThread:function(){for(var T=8,$=0;$>2]=0;try{T()}finally{u()[a3>>2]=1}},receiveObjectTransfer:function(T){},threadInit:function(){for(var T in ze.tlsInitFunctions)ze.tlsInitFunctions[T]()},loadWasmModuleToWorker:function(T,$){T.onmessage=U=>{var te=U.data,ge=te.cmd;if(T.pthread&&(ze.currentProxiedOperationCallerThread=T.pthread.threadInfoStruct),te.targetThread&&te.targetThread!=Sc()){var xe=ze.pthreads[te.targetThread];xe?xe.worker.postMessage(te,te.transferList):Y('Internal error! Worker sent a message "'+ge+'" to target pthread '+te.targetThread+", but that thread no longer exists!"),ze.currentProxiedOperationCallerThread=void 0;return}ge==="processQueuedMainThreadWork"?Q5():ge==="spawnThread"?cc(te):ge==="cleanupThread"?dc(te.thread):ge==="killThread"?ag(te.thread):ge==="cancelThread"?sg(te.thread):ge==="loaded"?(T.loaded=!0,$&&$(T),T.runPthread&&(T.runPthread(),delete T.runPthread)):ge==="print"?ee("Thread "+te.threadId+": "+te.text):ge==="printErr"?Y("Thread "+te.threadId+": "+te.text):ge==="alert"?alert("Thread "+te.threadId+": "+te.text):te.target==="setimmediate"?T.postMessage(te):ge==="onAbort"?p.onAbort&&p.onAbort(te.arg):Y("worker sent an unknown command "+ge),ze.currentProxiedOperationCallerThread=void 0},T.onerror=U=>{var te="worker sent an error!";throw Y(te+" "+U.filename+":"+U.lineno+": "+U.message),U},C&&(T.on("message",function(U){T.onmessage({data:U})}),T.on("error",function(U){T.onerror(U)}),T.on("detachedExit",function(){})),T.postMessage({cmd:"load",urlOrBlob:p.mainScriptUrlOrBlob||n,wasmMemory:$e,wasmModule:vt})},allocateUnusedWorker:function(){var T=R("tfjs-backend-wasm-threaded-simd.worker.js");ze.unusedWorkers.push(new Worker(T))},getNewWorker:function(){return ze.unusedWorkers.length==0&&(ze.allocateUnusedWorker(),ze.loadWasmModuleToWorker(ze.unusedWorkers[0])),ze.unusedWorkers.pop()}};function og(){var T=Sc(),$=u()[T+44>>2],U=u()[T+48>>2],te=$-U;n3($,te),Cc($)}p.establishStackSpace=og;function hc(T){if(S)return eo(1,0,T);try{pc(T)}catch($){ig($)}}var Ji=[];function Ul(T){var $=Ji[T];return $||(T>=Ji.length&&(Ji.length=T+1),Ji[T]=$=vn.get(T)),$}function lg(T,$){return Ul(T)($)}p.invokeEntryPoint=lg;function H5(){var T=new Error;if(!T.stack){try{throw new Error}catch($){T=$}if(!T.stack)return"(no stack trace available)"}return T.stack.toString()}function ug(T,$,U){ze.tlsInitFunctions.push(T)}function q5(T,$){vn.set(T,$),Ji[T]=$}var Qi;C?Qi=()=>{var T=process.hrtime();return T[0]*1e3+T[1]/1e6}:S?Qi=()=>performance.now()-p.__performance_now_clock_drift:Qi=()=>performance.now();var dg=!0;function pg(T){return u()[J5()>>2]=T,T}function hg(T,$){var U;if(T===0)U=Date.now();else if((T===1||T===4)&&dg)U=Qi();else return pg(28),-1;return u()[$>>2]=U/1e3|0,u()[$+4>>2]=U%1e3*1e3*1e3|0,0}function cg(T,$){return hg(T,$)}function fg(T){e3(T,!v,1,!b),ze.threadInit()}function mg(T){S?postMessage({cmd:"cleanupThread",thread:T}):dc(T)}function cc(T){var $=ze.getNewWorker();if(!$)return 6;ze.runningWorkers.push($);var U=ze.pthreads[T.pthread_ptr]={worker:$,threadInfoStruct:T.pthread_ptr};$.pthread=U;var te={cmd:"run",start_routine:T.startRoutine,arg:T.arg,threadInfoStruct:T.pthread_ptr};return $.runPthread=()=>{te.time=performance.now(),$.postMessage(te,T.transferList)},$.loaded&&($.runPthread(),delete $.runPthread),0}function gg(T,$,U,te){if(typeof SharedArrayBuffer=="undefined")return Y("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var ge=[],xe=0;if(S&&(ge.length===0||xe))return t3(687865856,T,$,U,te);if(xe)return xe;var Ce={startRoutine:U,pthread_ptr:T,arg:te,transferList:ge};return S?(Ce.cmd="spawnThread",postMessage(Ce,ge),0):cc(Ce)}function yg(){return 2097152}function Ag(T,$){if(T==$)postMessage({cmd:"processQueuedMainThreadWork"});else if(S)postMessage({targetThread:T,cmd:"processThreadQueue"});else{var U=ze.pthreads[T],te=U&&U.worker;if(!te)return;te.postMessage({cmd:"processThreadQueue"})}return 1}function xg(){Bl("")}function bg(){C||v||Z("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function fc(){return 2147483648}function vg(T,$,U){i().copyWithin(T,$,$+U)}function wg(){return C?GE().cpus().length:navigator.hardwareConcurrency}function eo(T,$){var U=arguments.length-2,te=arguments;return Vl(function(){for(var ge=U,xe=Xl(ge*8),Ce=xe>>3,_e=0;_e>3,ge=0;ge<$;ge++)Hd[ge]=h()[te+ge];var xe=T<0,Ce=xe?ng[-T-1]:Vg[T];return Ce.apply(null,Hd)}function Ig(T){try{return $e.grow(T-Mr.byteLength+65535>>>16),Zn($e.buffer),1}catch($){}}function Sg(T){var $=i().length;if(T=T>>>0,T<=$)return!1;var U=fc();if(T>U)return!1;for(var te=1;te<=4;te*=2){var ge=$*(1+.2/te);ge=Math.min(ge,T+100663296);var xe=Math.min(U,Dl(Math.max(T,ge),65536)),Ce=Ig(xe);if(Ce)return!0}return!1}var Ke={inEventHandler:0,removeAllEventListeners:function(){for(var T=Ke.eventHandlers.length-1;T>=0;--T)Ke._removeHandler(T);Ke.eventHandlers=[],Ke.deferredCalls=[]},registerRemoveEventListeners:function(){Ke.removeEventListenersRegistered||(Y0.push(Ke.removeAllEventListeners),Ke.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(T,$,U){function te(Ce,_e){if(Ce.length!=_e.length)return!1;for(var $t in Ce)if(Ce[$t]!=_e[$t])return!1;return!0}for(var ge in Ke.deferredCalls){var xe=Ke.deferredCalls[ge];if(xe.targetFunction==T&&te(xe.argsList,U))return}Ke.deferredCalls.push({targetFunction:T,precedence:$,argsList:U}),Ke.deferredCalls.sort(function(Ce,_e){return Ce.precedence<_e.precedence})},removeDeferredCalls:function(T){for(var $=0;$>2]=U,u()[xe+4>>2]=te,u()[xe+8>>2]=ge,k1(T,637534208,$,te,xe)})},getTargetThreadForEventCallback:function(T){switch(T){case 1:return 0;case 2:return ze.currentProxiedOperationCallerThread;default:return T}},getNodeNameForTarget:function(T){return T?T==window?"#window":T==screen?"#screen":T&&T.nodeName?T.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function Cg(T){var $=Xh(T)+1,U=w1($);return Xi(T,U,$),U}function Tg(T,$,U,te){Vl(function(){var ge=Xl(12),xe=0;$&&(xe=Cg($)),u()[ge>>2]=xe,u()[ge+4>>2]=U,u()[ge+8>>2]=te,k1(T,657457152,0,xe,ge)})}function Ng(T,$,U,te){$=$?bn($):"",Tg(T,$,U,te)}function Eg(T){return T>2?bn(T):T}var Rg=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Mg(T){T=Eg(T);var $=Rg[T]||(typeof document!="undefined"?document.querySelector(T):void 0);return $}function qd(T){return Mg(T)}function mc(T,$,U){var te=qd(T);if(!te)return-4;if(te.canvasSharedPtr&&(u()[te.canvasSharedPtr>>2]=$,u()[te.canvasSharedPtr+4>>2]=U),te.offscreenCanvas||!te.controlTransferredOffscreen){te.offscreenCanvas&&(te=te.offscreenCanvas);var ge=!1;if(te.GLctxObject&&te.GLctxObject.GLctx){var xe=te.GLctxObject.GLctx.getParameter(2978);ge=xe[0]===0&&xe[1]===0&&xe[2]===te.width&&xe[3]===te.height}te.width=$,te.height=U,ge&&te.GLctxObject.GLctx.viewport(0,0,$,U)}else if(te.canvasSharedPtr){var Ce=u()[te.canvasSharedPtr+8>>2];return Ng(Ce,T,$,U),1}else return-4;return 0}function gc(T,$,U){return S?eo(2,1,T,$,U):mc(T,$,U)}function Fg(T,$,U){var te=qd(T);return te?mc(T,$,U):gc(T,$,U)}function $g(){throw"unwind"}function Pg(T){var $=T.getExtension("ANGLE_instanced_arrays");if($)return T.vertexAttribDivisor=function(U,te){$.vertexAttribDivisorANGLE(U,te)},T.drawArraysInstanced=function(U,te,ge,xe){$.drawArraysInstancedANGLE(U,te,ge,xe)},T.drawElementsInstanced=function(U,te,ge,xe,Ce){$.drawElementsInstancedANGLE(U,te,ge,xe,Ce)},1}function _g(T){var $=T.getExtension("OES_vertex_array_object");if($)return T.createVertexArray=function(){return $.createVertexArrayOES()},T.deleteVertexArray=function(U){$.deleteVertexArrayOES(U)},T.bindVertexArray=function(U){$.bindVertexArrayOES(U)},T.isVertexArray=function(U){return $.isVertexArrayOES(U)},1}function zg(T){var $=T.getExtension("WEBGL_draw_buffers");if($)return T.drawBuffers=function(U,te){$.drawBuffersWEBGL(U,te)},1}function Og(T){return!!(T.multiDrawWebgl=T.getExtension("WEBGL_multi_draw"))}var Ft={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function(T){Ft.lastError||(Ft.lastError=T)},getNewId:function(T){for(var $=Ft.counter++,U=T.length;U<$;U++)T[U]=null;return $},getSource:function(T,$,U,te){for(var ge="",xe=0;xe<$;++xe){var Ce=te?u()[te+xe*4>>2]:-1;ge+=bn(u()[U+xe*4>>2],Ce<0?void 0:Ce)}return ge},createContext:function(T,$){T.getContextSafariWebGL2Fixed||(T.getContextSafariWebGL2Fixed=T.getContext,T.getContext=function(ge,xe){var Ce=T.getContextSafariWebGL2Fixed(ge,xe);return ge=="webgl"==Ce instanceof WebGLRenderingContext?Ce:null});var U=T.getContext("webgl",$);if(!U)return 0;var te=Ft.registerContext(U,$);return te},registerContext:function(T,$){var U=w1(8);u()[U+4>>2]=Sc();var te={handle:U,attributes:$,version:$.majorVersion,GLctx:T};return T.canvas&&(T.canvas.GLctxObject=te),Ft.contexts[U]=te,(typeof $.enableExtensionsByDefault=="undefined"||$.enableExtensionsByDefault)&&Ft.initExtensions(te),U},makeContextCurrent:function(T){return Ft.currentContext=Ft.contexts[T],p.ctx=bc=Ft.currentContext&&Ft.currentContext.GLctx,!(T&&!bc)},getContext:function(T){return Ft.contexts[T]},deleteContext:function(T){Ft.currentContext===Ft.contexts[T]&&(Ft.currentContext=null),typeof Ke=="object"&&Ke.removeAllHandlersOnTarget(Ft.contexts[T].GLctx.canvas),Ft.contexts[T]&&Ft.contexts[T].GLctx.canvas&&(Ft.contexts[T].GLctx.canvas.GLctxObject=void 0),Y5(Ft.contexts[T].handle),Ft.contexts[T]=null},initExtensions:function(T){if(T||(T=Ft.currentContext),!T.initExtensionsDone){T.initExtensionsDone=!0;var $=T.GLctx;Pg($),_g($),zg($),$.disjointTimerQueryExt=$.getExtension("EXT_disjoint_timer_query"),Og($);var U=$.getSupportedExtensions()||[];U.forEach(function(te){!te.includes("lose_context")&&!te.includes("debug")&&$.getExtension(te)})}}},Dg=["default","low-power","high-performance"];function Lg(T,$){var U=$>>2,te=u()[U+6],ge={alpha:!!u()[U+0],depth:!!u()[U+1],stencil:!!u()[U+2],antialias:!!u()[U+3],premultipliedAlpha:!!u()[U+4],preserveDrawingBuffer:!!u()[U+5],powerPreference:Dg[te],failIfMajorPerformanceCaveat:!!u()[U+7],majorVersion:u()[U+8],minorVersion:u()[U+9],enableExtensionsByDefault:u()[U+10],explicitSwapControl:u()[U+11],proxyContextToMainThread:u()[U+12],renderViaOffscreenBackBuffer:u()[U+13]},xe=qd(T);if(!xe||ge.explicitSwapControl)return 0;var Ce=Ft.createContext(xe,ge);return Ce}function Bg(T,$){return Lg(T,$)}var Gl={mappings:{},buffers:[null,[],[]],printChar:function(T,$){var U=Gl.buffers[T];$===0||$===10?((T===1?ee:Y)(xn(U,0)),U.length=0):U.push($)},varargs:void 0,get:function(){Gl.varargs+=4;var T=u()[Gl.varargs-4>>2];return T},getStr:function(T){var $=bn(T);return $},get64:function(T,$){return T}};function yc(T){return S?eo(3,1,T):0}function Ac(T,$,U,te,ge){if(S)return eo(4,1,T,$,U,te,ge)}function xc(T,$,U,te){if(S)return eo(5,1,T,$,U,te);for(var ge=0,xe=0;xe>2],_e=u()[$+4>>2];$+=8;for(var $t=0;$t<_e;$t++)Gl.printChar(T,i()[Ce+$t]);ge+=_e}return u()[te>>2]=ge,0}function Wg(T){De(T)}ze.init();var bc,Vg=[null,hc,gc,yc,Ac,xc],K5=!1,vc={__clock_gettime:cg,__emscripten_init_main_thread_js:fg,__emscripten_thread_cleanup:mg,__pthread_create_js:gg,_emscripten_default_pthread_stack_size:yg,_emscripten_notify_thread_queue:Ag,abort:xg,emscripten_check_blocking_allowed:bg,emscripten_get_heap_max:fc,emscripten_get_now:Qi,emscripten_memcpy_big:vg,emscripten_num_logical_cores:wg,emscripten_receive_on_main_thread_js:kg,emscripten_resize_heap:Sg,emscripten_set_canvas_element_size:Fg,emscripten_unwind_to_js_event_loop:$g,emscripten_webgl_create_context:Bg,exit:pc,fd_close:yc,fd_seek:Ac,fd_write:xc,memory:$e||p.wasmMemory,setTempRet0:Wg},X5=rg(),Ug=p.___wasm_call_ctors=function(){return(Ug=p.___wasm_call_ctors=p.asm.__wasm_call_ctors).apply(null,arguments)},Gg=p._init=function(){return(Gg=p._init=p.asm.init).apply(null,arguments)},jg=p._init_with_threads_count=function(){return(jg=p._init_with_threads_count=p.asm.init_with_threads_count).apply(null,arguments)},Hg=p._get_threads_count=function(){return(Hg=p._get_threads_count=p.asm.get_threads_count).apply(null,arguments)},qg=p._register_tensor=function(){return(qg=p._register_tensor=p.asm.register_tensor).apply(null,arguments)},Kg=p._dispose_data=function(){return(Kg=p._dispose_data=p.asm.dispose_data).apply(null,arguments)},Xg=p._dispose=function(){return(Xg=p._dispose=p.asm.dispose).apply(null,arguments)},Zg=p._Abs=function(){return(Zg=p._Abs=p.asm.Abs).apply(null,arguments)},Yg=p._Add=function(){return(Yg=p._Add=p.asm.Add).apply(null,arguments)},Jg=p._AddN=function(){return(Jg=p._AddN=p.asm.AddN).apply(null,arguments)},Qg=p._All=function(){return(Qg=p._All=p.asm.All).apply(null,arguments)},e1=p._Any=function(){return(e1=p._Any=p.asm.Any).apply(null,arguments)},t1=p._ArgMax=function(){return(t1=p._ArgMax=p.asm.ArgMax).apply(null,arguments)},r1=p._AvgPool=function(){return(r1=p._AvgPool=p.asm.AvgPool).apply(null,arguments)},n1=p._BatchMatMul=function(){return(n1=p._BatchMatMul=p.asm.BatchMatMul).apply(null,arguments)},a1=p._Ceil=function(){return(a1=p._Ceil=p.asm.Ceil).apply(null,arguments)},s1=p._ClipByValue=function(){return(s1=p._ClipByValue=p.asm.ClipByValue).apply(null,arguments)},i1=p._Conv2D=function(){return(i1=p._Conv2D=p.asm.Conv2D).apply(null,arguments)},o1=p._Conv2DBackpropInput=function(){return(o1=p._Conv2DBackpropInput=p.asm.Conv2DBackpropInput).apply(null,arguments)},l1=p._Cos=function(){return(l1=p._Cos=p.asm.Cos).apply(null,arguments)},u1=p._Cosh=function(){return(u1=p._Cosh=p.asm.Cosh).apply(null,arguments)},d1=p._CropAndResize=function(){return(d1=p._CropAndResize=p.asm.CropAndResize).apply(null,arguments)},p1=p._Cumsum=function(){return(p1=p._Cumsum=p.asm.Cumsum).apply(null,arguments)},h1=p._DepthToSpace=function(){return(h1=p._DepthToSpace=p.asm.DepthToSpace).apply(null,arguments)},c1=p._DepthwiseConv2dNative=function(){return(c1=p._DepthwiseConv2dNative=p.asm.DepthwiseConv2dNative).apply(null,arguments)},f1=p._Elu=function(){return(f1=p._Elu=p.asm.Elu).apply(null,arguments)},m1=p._Equal=function(){return(m1=p._Equal=p.asm.Equal).apply(null,arguments)},g1=p._Exp=function(){return(g1=p._Exp=p.asm.Exp).apply(null,arguments)},y1=p._FlipLeftRight=function(){return(y1=p._FlipLeftRight=p.asm.FlipLeftRight).apply(null,arguments)},wc=p._Floor=function(){return(wc=p._Floor=p.asm.Floor).apply(null,arguments)},kc=p._FloorDiv=function(){return(kc=p._FloorDiv=p.asm.FloorDiv).apply(null,arguments)},Kd=p._FusedBatchNorm=function(){return(Kd=p._FusedBatchNorm=p.asm.FusedBatchNorm).apply(null,arguments)},A1=p._FusedConv2D=function(){return(A1=p._FusedConv2D=p.asm.FusedConv2D).apply(null,arguments)},x1=p._FusedDepthwiseConv2D=function(){return(x1=p._FusedDepthwiseConv2D=p.asm.FusedDepthwiseConv2D).apply(null,arguments)},jl=p._Gather=function(){return(jl=p._Gather=p.asm.Gather).apply(null,arguments)},Xd=p._GatherNd=function(){return(Xd=p._GatherNd=p.asm.GatherNd).apply(null,arguments)},Zd=p._Greater=function(){return(Zd=p._Greater=p.asm.Greater).apply(null,arguments)},Z5=p._GreaterEqual=function(){return(Z5=p._GreaterEqual=p.asm.GreaterEqual).apply(null,arguments)},Hl=p._LeakyRelu=function(){return(Hl=p._LeakyRelu=p.asm.LeakyRelu).apply(null,arguments)},ql=p._Less=function(){return(ql=p._Less=p.asm.Less).apply(null,arguments)},b1=p._LessEqual=function(){return(b1=p._LessEqual=p.asm.LessEqual).apply(null,arguments)},H=p._Log=function(){return(H=p._Log=p.asm.Log).apply(null,arguments)},ne=p._LogicalAnd=function(){return(ne=p._LogicalAnd=p.asm.LogicalAnd).apply(null,arguments)},ye=p._Max=function(){return(ye=p._Max=p.asm.Max).apply(null,arguments)},Re=p._MaxPool=function(){return(Re=p._MaxPool=p.asm.MaxPool).apply(null,arguments)},lt=p._Maximum=function(){return(lt=p._Maximum=p.asm.Maximum).apply(null,arguments)},ht=p._Mean=function(){return(ht=p._Mean=p.asm.Mean).apply(null,arguments)},Ye=p._Min=function(){return(Ye=p._Min=p.asm.Min).apply(null,arguments)},He=p._Minimum=function(){return(He=p._Minimum=p.asm.Minimum).apply(null,arguments)},jt=p._MirrorPad=function(){return(jt=p._MirrorPad=p.asm.MirrorPad).apply(null,arguments)},Jn=p._Multiply=function(){return(Jn=p._Multiply=p.asm.Multiply).apply(null,arguments)},Qn=p._Neg=function(){return(Qn=p._Neg=p.asm.Neg).apply(null,arguments)},Kl=p._NonMaxSuppressionV3=function(){return(Kl=p._NonMaxSuppressionV3=p.asm.NonMaxSuppressionV3).apply(null,arguments)},to=p._NonMaxSuppressionV4=function(){return(to=p._NonMaxSuppressionV4=p.asm.NonMaxSuppressionV4).apply(null,arguments)},v1=p._NonMaxSuppressionV5=function(){return(v1=p._NonMaxSuppressionV5=p.asm.NonMaxSuppressionV5).apply(null,arguments)},Yr=p._NotEqual=function(){return(Yr=p._NotEqual=p.asm.NotEqual).apply(null,arguments)},ms=p._OneHot=function(){return(ms=p._OneHot=p.asm.OneHot).apply(null,arguments)},Ic=p._PadV2=function(){return(Ic=p._PadV2=p.asm.PadV2).apply(null,arguments)},CN=p._Pow=function(){return(CN=p._Pow=p.asm.Pow).apply(null,arguments)},TN=p._Prelu=function(){return(TN=p._Prelu=p.asm.Prelu).apply(null,arguments)},NN=p._Prod=function(){return(NN=p._Prod=p.asm.Prod).apply(null,arguments)},EN=p._RealDiv=function(){return(EN=p._RealDiv=p.asm.RealDiv).apply(null,arguments)},RN=p._Relu=function(){return(RN=p._Relu=p.asm.Relu).apply(null,arguments)},MN=p._Relu6=function(){return(MN=p._Relu6=p.asm.Relu6).apply(null,arguments)},FN=p._ResizeBilinear=function(){return(FN=p._ResizeBilinear=p.asm.ResizeBilinear).apply(null,arguments)},$N=p._Reverse=function(){return($N=p._Reverse=p.asm.Reverse).apply(null,arguments)},PN=p._RotateWithOffset=function(){return(PN=p._RotateWithOffset=p.asm.RotateWithOffset).apply(null,arguments)},_N=p._Round=function(){return(_N=p._Round=p.asm.Round).apply(null,arguments)},zN=p._Rsqrt=function(){return(zN=p._Rsqrt=p.asm.Rsqrt).apply(null,arguments)},ON=p._ScatterNd=function(){return(ON=p._ScatterNd=p.asm.ScatterNd).apply(null,arguments)},DN=p._SelectV2=function(){return(DN=p._SelectV2=p.asm.SelectV2).apply(null,arguments)},LN=p._Sigmoid=function(){return(LN=p._Sigmoid=p.asm.Sigmoid).apply(null,arguments)},BN=p._Sin=function(){return(BN=p._Sin=p.asm.Sin).apply(null,arguments)},WN=p._Softmax=function(){return(WN=p._Softmax=p.asm.Softmax).apply(null,arguments)},VN=p._SparseFillEmptyRows=function(){return(VN=p._SparseFillEmptyRows=p.asm.SparseFillEmptyRows).apply(null,arguments)},UN=p._SparseReshape=function(){return(UN=p._SparseReshape=p.asm.SparseReshape).apply(null,arguments)},GN=p._SparseSegmentReduction=function(){return(GN=p._SparseSegmentReduction=p.asm.SparseSegmentReduction).apply(null,arguments)},jN=p._Sqrt=function(){return(jN=p._Sqrt=p.asm.Sqrt).apply(null,arguments)},HN=p._Square=function(){return(HN=p._Square=p.asm.Square).apply(null,arguments)},qN=p._SquaredDifference=function(){return(qN=p._SquaredDifference=p.asm.SquaredDifference).apply(null,arguments)},KN=p._Step=function(){return(KN=p._Step=p.asm.Step).apply(null,arguments)},XN=p._StridedSlice=function(){return(XN=p._StridedSlice=p.asm.StridedSlice).apply(null,arguments)},ZN=p._Sub=function(){return(ZN=p._Sub=p.asm.Sub).apply(null,arguments)},YN=p._Sum=function(){return(YN=p._Sum=p.asm.Sum).apply(null,arguments)},JN=p._Tan=function(){return(JN=p._Tan=p.asm.Tan).apply(null,arguments)},QN=p._Tanh=function(){return(QN=p._Tanh=p.asm.Tanh).apply(null,arguments)},eE=p._Tile=function(){return(eE=p._Tile=p.asm.Tile).apply(null,arguments)},tE=p._TopK=function(){return(tE=p._TopK=p.asm.TopK).apply(null,arguments)},rE=p._Transform=function(){return(rE=p._Transform=p.asm.Transform).apply(null,arguments)},nE=p._Transpose=function(){return(nE=p._Transpose=p.asm.Transpose).apply(null,arguments)},aE=p.__FusedMatMul=function(){return(aE=p.__FusedMatMul=p.asm._FusedMatMul).apply(null,arguments)},w1=p._malloc=function(){return(w1=p._malloc=p.asm.malloc).apply(null,arguments)},Y5=p._free=function(){return(Y5=p._free=p.asm.free).apply(null,arguments)},sE=p._emscripten_tls_init=function(){return(sE=p._emscripten_tls_init=p.asm.emscripten_tls_init).apply(null,arguments)},J5=p.___errno_location=function(){return(J5=p.___errno_location=p.asm.__errno_location).apply(null,arguments)},Sc=p._pthread_self=function(){return(Sc=p._pthread_self=p.asm.pthread_self).apply(null,arguments)},Q5=p._emscripten_main_thread_process_queued_calls=function(){return(Q5=p._emscripten_main_thread_process_queued_calls=p.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},iE=p.__emscripten_thread_crashed=function(){return(iE=p.__emscripten_thread_crashed=p.asm._emscripten_thread_crashed).apply(null,arguments)},e3=p.__emscripten_thread_init=function(){return(e3=p.__emscripten_thread_init=p.asm._emscripten_thread_init).apply(null,arguments)},oE=p._emscripten_current_thread_process_queued_calls=function(){return(oE=p._emscripten_current_thread_process_queued_calls=p.asm.emscripten_current_thread_process_queued_calls).apply(null,arguments)},lE=p._emscripten_main_browser_thread_id=function(){return(lE=p._emscripten_main_browser_thread_id=p.asm.emscripten_main_browser_thread_id).apply(null,arguments)},uE=p._emscripten_sync_run_in_main_thread_2=function(){return(uE=p._emscripten_sync_run_in_main_thread_2=p.asm.emscripten_sync_run_in_main_thread_2).apply(null,arguments)},t3=p._emscripten_sync_run_in_main_thread_4=function(){return(t3=p._emscripten_sync_run_in_main_thread_4=p.asm.emscripten_sync_run_in_main_thread_4).apply(null,arguments)},r3=p._emscripten_run_in_main_runtime_thread_js=function(){return(r3=p._emscripten_run_in_main_runtime_thread_js=p.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},k1=p._emscripten_dispatch_to_thread_=function(){return(k1=p._emscripten_dispatch_to_thread_=p.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},I1=p.__emscripten_thread_free_data=function(){return(I1=p.__emscripten_thread_free_data=p.asm._emscripten_thread_free_data).apply(null,arguments)},dE=p.__emscripten_thread_exit=function(){return(dE=p.__emscripten_thread_exit=p.asm._emscripten_thread_exit).apply(null,arguments)},pE=p._memalign=function(){return(pE=p._memalign=p.asm.memalign).apply(null,arguments)},n3=p._emscripten_stack_set_limits=function(){return(n3=p._emscripten_stack_set_limits=p.asm.emscripten_stack_set_limits).apply(null,arguments)},S1=p.stackSave=function(){return(S1=p.stackSave=p.asm.stackSave).apply(null,arguments)},Cc=p.stackRestore=function(){return(Cc=p.stackRestore=p.asm.stackRestore).apply(null,arguments)},Xl=p.stackAlloc=function(){return(Xl=p.stackAlloc=p.asm.stackAlloc).apply(null,arguments)},hE=p.dynCall_iijjiiii=function(){return(hE=p.dynCall_iijjiiii=p.asm.dynCall_iijjiiii).apply(null,arguments)},cE=p.dynCall_jiji=function(){return(cE=p.dynCall_jiji=p.asm.dynCall_jiji).apply(null,arguments)},a3=p.__emscripten_allow_main_runtime_queued_calls=21408;p.cwrap=dr,p.keepRuntimeAlive=Yi,p.PThread=ze,p.PThread=ze,p.wasmMemory=$e,p.ExitStatus=Yd;var Tc;function Yd(T){this.name="ExitStatus",this.message="Program terminated with exit("+T+")",this.status=T}Yn=function T(){Tc||C1(),Tc||(Yn=T)};function C1(T){if(T=T||y,fs>0)return;if(S){c(p),Ud(),postMessage({cmd:"loaded"});return}if(Fr(),fs>0)return;function $(){Tc||(Tc=!0,p.calledRun=!0,!gt&&(Ud(),c(p),p.onRuntimeInitialized&&p.onRuntimeInitialized(),eg()))}p.setStatus?(p.setStatus("Running..."),setTimeout(function(){setTimeout(function(){p.setStatus("")},1),$()},1)):$()}p.run=C1;function fE(T,$){if(Rr=T,!$&&S)throw hc(T),"unwind";Yi()||Q0(),mE(T)}function mE(T){Rr=T,Yi()||(ze.terminateAllThreads(),p.onExit&&p.onExit(T),gt=!0),x(T,new Yd(T))}if(p.preInit)for(typeof p.preInit=="function"&&(p.preInit=[p.preInit]);p.preInit.length>0;)p.preInit.pop()();C1();var Nc;m&&(Nc={uncaughtException:process.listeners("uncaughtException").filter(function(T){return!m.uncaughtException.indexOf(T)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(T){return!m.unhandledRejection.indexOf(T)>-1})});var Ec;if(typeof WasmBackendModule!="undefined")Ec=WasmBackendModule;else if(typeof a!="undefined")Ec=a;else throw new Error("Could not find wasm module in post.js");if(Nc){var gE=Ec._dispose;Ec._dispose=function(){gE(),Nc.uncaughtException.forEach(function(T){process.removeListener("uncaughtException",T)}),Nc.unhandledRejection.forEach(function(T){process.removeListener("unhandledRejection",T)})}}return a.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=r:typeof define=="function"&&define.amd?define([],function(){return r}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=r)}}),HE=ir({"src/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js"(e,t){var r=(()=>{var n=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(n=n||__filename),function(a){a=a||{};var s=typeof a!="undefined"?a:{},i,o;s.ready=new Promise(function(H,ne){i=H,o=ne});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),d=[],h="./this.program",p=(H,ne)=>{throw ne},c=typeof window=="object",f=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(H){return s.locateFile?s.locateFile(H,g):g+H}var A,x,b,v;function C(H){H instanceof Xd||M("exiting due to exception: "+H)}var S,E,R;m?(f?g=ef().dirname(g)+"/":g=__dirname+"/",R=()=>{E||(S=Gy(),E=ef())},A=function(H,ne){return R(),H=E.normalize(H),S.readFileSync(H,ne?void 0:"utf8")},b=H=>{var ne=A(H,!0);return ne.buffer||(ne=new Uint8Array(ne)),ne},x=(H,ne,ye)=>{R(),H=E.normalize(H),S.readFile(H,function(Re,lt){Re?ye(Re):ne(lt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(H){if(!(H instanceof Xd))throw H}),process.on("unhandledRejection",function(H){throw H}),p=(H,ne)=>{if(Vd())throw process.exitCode=H,ne;C(ne),process.exit(H)},s.inspect=function(){return"[Emscripten Module object]"}):(c||f)&&(f?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),n&&(g=n),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",A=H=>{var ne=new XMLHttpRequest;return ne.open("GET",H,!1),ne.send(null),ne.responseText},f&&(b=H=>{var ne=new XMLHttpRequest;return ne.open("GET",H,!1),ne.responseType="arraybuffer",ne.send(null),new Uint8Array(ne.response)}),x=(H,ne,ye)=>{var Re=new XMLHttpRequest;Re.open("GET",H,!0),Re.responseType="arraybuffer",Re.onload=()=>{if(Re.status==200||Re.status==0&&Re.response){ne(Re.response);return}ye()},Re.onerror=ye,Re.send(null)},v=H=>document.title=H);var _=s.print||console.log.bind(console),M=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(d=s.arguments),s.thisProgram&&(h=s.thisProgram),s.quit&&(p=s.quit);var I=4;function O(H){O.shown||(O.shown={}),O.shown[H]||(O.shown[H]=1,M(H))}function z(H,ne){if(typeof WebAssembly.Function=="function"){for(var ye={i:"i32",j:"i64",f:"f32",d:"f64"},Re={parameters:[],results:ne[0]=="v"?[]:[ye[ne[0]]]},lt=1;lt{V=H},Y;s.wasmBinary&&(Y=s.wasmBinary);var se=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Zi("no native wasm support detected");var Z,ae=!1,de;function Ae(H,ne){H||Zi(ne)}function be(H){var ne=s["_"+H];return ne}function Ee(H,ne,ye,Re,lt){var ht={string:function(Yr){var ms=0;if(Yr!=null&&Yr!==0){var Ic=(Yr.length<<2)+1;ms=Kd(Ic),pt(Yr,ms,Ic)}return ms},array:function(Yr){var ms=Kd(Yr.length);return gt(Yr,ms),ms}};function Ye(Yr){return ne==="string"?ot(Yr):ne==="boolean"?Boolean(Yr):Yr}var He=be(H),jt=[],Jn=0;if(Re)for(var Qn=0;Qn=Re);)++lt;if(lt-ne>16&&H.subarray&&Be)return Be.decode(H.subarray(ne,lt));for(var ht="";ne>10,56320|Jn&1023)}}return ht}function ot(H,ne){return H?Ze(dr,H,ne):""}function dt(H,ne,ye,Re){if(!(Re>0))return 0;for(var lt=ye,ht=ye+Re-1,Ye=0;Ye=55296&&He<=57343){var jt=H.charCodeAt(++Ye);He=65536+((He&1023)<<10)|jt&1023}if(He<=127){if(ye>=ht)break;ne[ye++]=He}else if(He<=2047){if(ye+1>=ht)break;ne[ye++]=192|He>>6,ne[ye++]=128|He&63}else if(He<=65535){if(ye+2>=ht)break;ne[ye++]=224|He>>12,ne[ye++]=128|He>>6&63,ne[ye++]=128|He&63}else{if(ye+3>=ht)break;ne[ye++]=240|He>>18,ne[ye++]=128|He>>12&63,ne[ye++]=128|He>>6&63,ne[ye++]=128|He&63}}return ne[ye]=0,ye-lt}function pt(H,ne,ye){return dt(H,dr,ne,ye)}function $e(H){for(var ne=0,ye=0;ye=55296&&Re<=57343&&(Re=65536+((Re&1023)<<10)|H.charCodeAt(++ye)&1023),Re<=127?++ne:Re<=2047?ne+=2:Re<=65535?ne+=3:ne+=4}return ne}var vt=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function gt(H,ne){Jt.set(H,ne)}function Rr(H,ne,ye){for(var Re=0;Re>0]=H.charCodeAt(Re);ye||(Jt[ne>>0]=0)}function ur(H,ne){return H%ne>0&&(H+=ne-H%ne),H}var Xr,Jt,dr,Xn,Zr,Qt,xn,bn,ps;function Xi(H){Xr=H,s.HEAP8=Jt=new Int8Array(H),s.HEAP16=Xn=new Int16Array(H),s.HEAP32=Qt=new Int32Array(H),s.HEAPU8=dr=new Uint8Array(H),s.HEAPU16=Zr=new Uint16Array(H),s.HEAPU32=xn=new Uint32Array(H),s.HEAPF32=bn=new Float32Array(H),s.HEAPF64=ps=new Float64Array(H)}var Xh=s.INITIAL_MEMORY||16777216,hs,Da=[],Wd=[],Dl=[],Mr=!1,Zh=!1,Yh=0;function Vd(){return se||Yh>0}function Jh(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)tc(s.preRun.shift());Gd(Da)}function Qh(){Mr=!0,Gd(Wd)}function L5(){Zh=!0}function ec(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)rc(s.postRun.shift());Gd(Dl)}function tc(H){Da.unshift(H)}function Zn(H){Wd.unshift(H)}function rc(H){Dl.unshift(H)}var vn=0,Ll=null,cs=null;function Y0(H){vn++,s.monitorRunDependencies&&s.monitorRunDependencies(vn)}function nc(H){if(vn--,s.monitorRunDependencies&&s.monitorRunDependencies(vn),vn==0&&(Ll!==null&&(clearInterval(Ll),Ll=null),cs)){var ne=cs;cs=null,ne()}}s.preloadedImages={},s.preloadedAudios={};function Zi(H){s.onAbort&&s.onAbort(H),H="Aborted("+H+")",M(H),ae=!0,de=1,H+=". Build with -s ASSERTIONS=1 for more info.";var ne=new WebAssembly.RuntimeError(H);throw o(ne),ne}var J0="data:application/octet-stream;base64,";function ac(H){return H.startsWith(J0)}function Yi(H){return H.startsWith("file://")}var Fr;Fr="tfjs-backend-wasm.wasm",ac(Fr)||(Fr=y(Fr));function Ud(H){try{if(H==Fr&&Y)return new Uint8Array(Y);if(b)return b(H);throw"both async and sync fetching of the wasm failed"}catch(ne){Zi(ne)}}function Q0(){if(!Y&&(c||f)){if(typeof fetch=="function"&&!Yi(Fr))return fetch(Fr,{credentials:"same-origin"}).then(function(H){if(!H.ok)throw"failed to load wasm binary file at '"+Fr+"'";return H.arrayBuffer()}).catch(function(){return Ud(Fr)});if(x)return new Promise(function(H,ne){x(Fr,function(ye){H(new Uint8Array(ye))},ne)})}return Promise.resolve().then(function(){return Ud(Fr)})}function eg(){var H={env:Vl,wasi_snapshot_preview1:Vl};function ne(Ye,He){var jt=Ye.exports;s.asm=jt,Z=s.asm.memory,Xi(Z.buffer),hs=s.asm.__indirect_function_table,Zn(s.asm.__wasm_call_ctors),nc("wasm-instantiate")}Y0("wasm-instantiate");function ye(Ye){ne(Ye.instance)}function Re(Ye){return Q0().then(function(He){return WebAssembly.instantiate(He,H)}).then(function(He){return He}).then(Ye,function(He){M("failed to asynchronously prepare wasm: "+He),Zi(He)})}function lt(){return!Y&&typeof WebAssembly.instantiateStreaming=="function"&&!ac(Fr)&&!Yi(Fr)&&typeof fetch=="function"?fetch(Fr,{credentials:"same-origin"}).then(function(Ye){var He=WebAssembly.instantiateStreaming(Ye,H);return He.then(ye,function(jt){return M("wasm streaming compile failed: "+jt),M("falling back to ArrayBuffer instantiation"),Re(ye)})}):Re(ye)}if(s.instantiateWasm)try{var ht=s.instantiateWasm(H,ne);return ht}catch(Ye){return M("Module.instantiateWasm callback failed with error: "+Ye),!1}return lt().catch(o),{}}var B5,W5;function Gd(H){for(;H.length>0;){var ne=H.shift();if(typeof ne=="function"){ne(s);continue}var ye=ne.func;typeof ye=="number"?ne.arg===void 0?jd(ye)():jd(ye)(ne.arg):ye(ne.arg===void 0?null:ne.arg)}}function fs(H){return H}function sc(H){var ne=/\b_Z[\w\d_]+/g;return H.replace(ne,function(ye){var Re=ye;return ye===Re?ye:Re+" ["+ye+"]"})}var Yn=[];function jd(H){var ne=Yn[H];return ne||(H>=Yn.length&&(Yn.length=H+1),Yn[H]=ne=hs.get(H)),ne}function V5(){var H=new Error;if(!H.stack){try{throw new Error}catch(ne){H=ne}if(!H.stack)return"(no stack trace available)"}return H.stack.toString()}function Bl(H,ne){hs.set(H,ne),Yn[H]=ne}function tg(){Zi("")}function ic(H,ne,ye){dr.copyWithin(H,ne,ne+ye)}function oc(){return 2147483648}function $r(H){try{return Z.grow(H-Xr.byteLength+65535>>>16),Xi(Z.buffer),1}catch(ne){}}function lc(H){var ne=dr.length;H=H>>>0;var ye=oc();if(H>ye)return!1;for(var Re=1;Re<=4;Re*=2){var lt=ne*(1+.2/Re);lt=Math.min(lt,H+100663296);var ht=Math.min(ye,ur(Math.max(H,lt),65536)),Ye=$r(ht);if(Ye)return!0}return!1}var Wl={mappings:{},buffers:[null,[],[]],printChar:function(H,ne){var ye=Wl.buffers[H];ne===0||ne===10?((H===1?_:M)(Ze(ye,0)),ye.length=0):ye.push(ne)},varargs:void 0,get:function(){Wl.varargs+=4;var H=Qt[Wl.varargs-4>>2];return H},getStr:function(H){var ne=ot(H);return ne},get64:function(H,ne){return H}};function rg(H){return 0}function U5(H,ne,ye,Re,lt){}function G5(H,ne,ye,Re){for(var lt=0,ht=0;ht>2],He=Qt[ne+4>>2];ne+=8;for(var jt=0;jt>2]=lt,0}function ng(H){ee(H)}var uc=!1,Vl={abort:tg,emscripten_memcpy_big:ic,emscripten_resize_heap:lc,fd_close:rg,fd_seek:U5,fd_write:G5,setTempRet0:ng},SN=eg(),j5=s.___wasm_call_ctors=function(){return(j5=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},ag=s._init=function(){return(ag=s._init=s.asm.init).apply(null,arguments)},sg=s._init_with_threads_count=function(){return(sg=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},dc=s._get_threads_count=function(){return(dc=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},pc=s._register_tensor=function(){return(pc=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},ig=s._dispose_data=function(){return(ig=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},ze=s._dispose=function(){return(ze=s._dispose=s.asm.dispose).apply(null,arguments)},og=s._Abs=function(){return(og=s._Abs=s.asm.Abs).apply(null,arguments)},hc=s._Add=function(){return(hc=s._Add=s.asm.Add).apply(null,arguments)},Ji=s._AddN=function(){return(Ji=s._AddN=s.asm.AddN).apply(null,arguments)},Ul=s._All=function(){return(Ul=s._All=s.asm.All).apply(null,arguments)},lg=s._Any=function(){return(lg=s._Any=s.asm.Any).apply(null,arguments)},H5=s._ArgMax=function(){return(H5=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},ug=s._AvgPool=function(){return(ug=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},q5=s._BatchMatMul=function(){return(q5=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Qi=s._Ceil=function(){return(Qi=s._Ceil=s.asm.Ceil).apply(null,arguments)},dg=s._ClipByValue=function(){return(dg=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},pg=s._Conv2D=function(){return(pg=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},hg=s._Conv2DBackpropInput=function(){return(hg=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},cg=s._Cos=function(){return(cg=s._Cos=s.asm.Cos).apply(null,arguments)},fg=s._Cosh=function(){return(fg=s._Cosh=s.asm.Cosh).apply(null,arguments)},mg=s._CropAndResize=function(){return(mg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},cc=s._Cumsum=function(){return(cc=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},gg=s._DepthToSpace=function(){return(gg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},yg=s._DepthwiseConv2dNative=function(){return(yg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ag=s._Elu=function(){return(Ag=s._Elu=s.asm.Elu).apply(null,arguments)},xg=s._Equal=function(){return(xg=s._Equal=s.asm.Equal).apply(null,arguments)},bg=s._Exp=function(){return(bg=s._Exp=s.asm.Exp).apply(null,arguments)},fc=s._FlipLeftRight=function(){return(fc=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},vg=s._Floor=function(){return(vg=s._Floor=s.asm.Floor).apply(null,arguments)},wg=s._FloorDiv=function(){return(wg=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},eo=s._FusedBatchNorm=function(){return(eo=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},Hd=s._FusedConv2D=function(){return(Hd=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},kg=s._FusedDepthwiseConv2D=function(){return(kg=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Ig=s._Gather=function(){return(Ig=s._Gather=s.asm.Gather).apply(null,arguments)},Sg=s._GatherNd=function(){return(Sg=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Ke=s._Greater=function(){return(Ke=s._Greater=s.asm.Greater).apply(null,arguments)},Cg=s._GreaterEqual=function(){return(Cg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Tg=s._LeakyRelu=function(){return(Tg=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Ng=s._Less=function(){return(Ng=s._Less=s.asm.Less).apply(null,arguments)},Eg=s._LessEqual=function(){return(Eg=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Rg=s._Log=function(){return(Rg=s._Log=s.asm.Log).apply(null,arguments)},Mg=s._LogicalAnd=function(){return(Mg=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},qd=s._Max=function(){return(qd=s._Max=s.asm.Max).apply(null,arguments)},mc=s._MaxPool=function(){return(mc=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},gc=s._Maximum=function(){return(gc=s._Maximum=s.asm.Maximum).apply(null,arguments)},Fg=s._Mean=function(){return(Fg=s._Mean=s.asm.Mean).apply(null,arguments)},$g=s._Min=function(){return($g=s._Min=s.asm.Min).apply(null,arguments)},Pg=s._Minimum=function(){return(Pg=s._Minimum=s.asm.Minimum).apply(null,arguments)},_g=s._MirrorPad=function(){return(_g=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},zg=s._Multiply=function(){return(zg=s._Multiply=s.asm.Multiply).apply(null,arguments)},Og=s._Neg=function(){return(Og=s._Neg=s.asm.Neg).apply(null,arguments)},Ft=s._NonMaxSuppressionV3=function(){return(Ft=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},Dg=s._NonMaxSuppressionV4=function(){return(Dg=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},Lg=s._NonMaxSuppressionV5=function(){return(Lg=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},Bg=s._NotEqual=function(){return(Bg=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},Gl=s._OneHot=function(){return(Gl=s._OneHot=s.asm.OneHot).apply(null,arguments)},yc=s._PadV2=function(){return(yc=s._PadV2=s.asm.PadV2).apply(null,arguments)},Ac=s._Pow=function(){return(Ac=s._Pow=s.asm.Pow).apply(null,arguments)},xc=s._Prelu=function(){return(xc=s._Prelu=s.asm.Prelu).apply(null,arguments)},Wg=s._Prod=function(){return(Wg=s._Prod=s.asm.Prod).apply(null,arguments)},bc=s._RealDiv=function(){return(bc=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Vg=s._Relu=function(){return(Vg=s._Relu=s.asm.Relu).apply(null,arguments)},K5=s._Relu6=function(){return(K5=s._Relu6=s.asm.Relu6).apply(null,arguments)},vc=s._ResizeBilinear=function(){return(vc=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},X5=s._Reverse=function(){return(X5=s._Reverse=s.asm.Reverse).apply(null,arguments)},Ug=s._RotateWithOffset=function(){return(Ug=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Gg=s._Round=function(){return(Gg=s._Round=s.asm.Round).apply(null,arguments)},jg=s._Rsqrt=function(){return(jg=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Hg=s._ScatterNd=function(){return(Hg=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},qg=s._SelectV2=function(){return(qg=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Kg=s._Sigmoid=function(){return(Kg=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Xg=s._Sin=function(){return(Xg=s._Sin=s.asm.Sin).apply(null,arguments)},Zg=s._Softmax=function(){return(Zg=s._Softmax=s.asm.Softmax).apply(null,arguments)},Yg=s._SparseFillEmptyRows=function(){return(Yg=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Jg=s._SparseReshape=function(){return(Jg=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Qg=s._SparseSegmentReduction=function(){return(Qg=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},e1=s._Sqrt=function(){return(e1=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},t1=s._Square=function(){return(t1=s._Square=s.asm.Square).apply(null,arguments)},r1=s._SquaredDifference=function(){return(r1=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},n1=s._Step=function(){return(n1=s._Step=s.asm.Step).apply(null,arguments)},a1=s._StridedSlice=function(){return(a1=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},s1=s._Sub=function(){return(s1=s._Sub=s.asm.Sub).apply(null,arguments)},i1=s._Sum=function(){return(i1=s._Sum=s.asm.Sum).apply(null,arguments)},o1=s._Tan=function(){return(o1=s._Tan=s.asm.Tan).apply(null,arguments)},l1=s._Tanh=function(){return(l1=s._Tanh=s.asm.Tanh).apply(null,arguments)},u1=s._Tile=function(){return(u1=s._Tile=s.asm.Tile).apply(null,arguments)},d1=s._TopK=function(){return(d1=s._TopK=s.asm.TopK).apply(null,arguments)},p1=s._Transform=function(){return(p1=s._Transform=s.asm.Transform).apply(null,arguments)},h1=s._Transpose=function(){return(h1=s._Transpose=s.asm.Transpose).apply(null,arguments)},c1=s.__FusedMatMul=function(){return(c1=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},f1=s._malloc=function(){return(f1=s._malloc=s.asm.malloc).apply(null,arguments)},m1=s._free=function(){return(m1=s._free=s.asm.free).apply(null,arguments)},g1=s.___errno_location=function(){return(g1=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},y1=s._emscripten_main_thread_process_queued_calls=function(){return(y1=s._emscripten_main_thread_process_queued_calls=s.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},wc=s.stackSave=function(){return(wc=s.stackSave=s.asm.stackSave).apply(null,arguments)},kc=s.stackRestore=function(){return(kc=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Kd=s.stackAlloc=function(){return(Kd=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},A1=s.dynCall_iijjiiii=function(){return(A1=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},x1=s.dynCall_jiji=function(){return(x1=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Me;var jl;function Xd(H){this.name="ExitStatus",this.message="Program terminated with exit("+H+")",this.status=H}cs=function H(){jl||Zd(),jl||(cs=H)};function Zd(H){if(H=H||d,vn>0||(Jh(),vn>0))return;function ne(){jl||(jl=!0,s.calledRun=!0,!ae&&(Qh(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),ec()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),ne()},1)):ne()}s.run=Zd;function Z5(H){de=H,Vd()||(s.onExit&&s.onExit(H),ae=!0),p(H,new Xd(H))}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Zd();var Hl;l&&(Hl={uncaughtException:process.listeners("uncaughtException").filter(function(H){return!l.uncaughtException.indexOf(H)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(H){return!l.unhandledRejection.indexOf(H)>-1})});var ql;if(typeof a!="undefined")ql=a;else if(typeof WasmBackendModuleThreadedSimd!="undefined")ql=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Hl){var b1=ql._dispose;ql._dispose=function(){b1(),Hl.uncaughtException.forEach(function(H){process.removeListener("uncaughtException",H)}),Hl.unhandledRejection.forEach(function(H){process.removeListener("unhandledRejection",H)})}}return a.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=r:typeof define=="function"&&define.amd?define([],function(){return r}):typeof e=="object"&&(e.WasmBackendModule=r)}}),qE=1e-7,KE=1e-4,zp=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},Su=class{refCount(e){return kn("refCount")}incRef(e){return kn("incRef")}timerAvailable(){return!0}time(e){return kn("time")}read(e){return kn("read")}readSync(e){return kn("readSync")}readToGPU(e,t){return kn("readToGPU")}numDataIds(){return kn("numDataIds")}disposeData(e,t){return kn("disposeData")}write(e,t,r){return kn("write")}move(e,t,r,n,a){return kn("move")}memory(){return kn("memory")}floatPrecision(){return kn("floatPrecision")}epsilon(){return this.floatPrecision()===32?qE:KE}dispose(){return kn("dispose")}};function kn(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function jv(e){let t=e.length,r=0;for(;t>0;)r=Math.random()*t|0,t--,tf(e,t,r)}function XE(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let r=e.length,n=0;for(;r>0;)n=Math.random()*r|0,r--,tf(e,r,n),tf(t,r,n)}function wp(e,t,r){return Math.max(e,Math.min(t,r))}function ZE(e){return e%2===0?e:e+1}function tf(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function YE(e){let t=0;for(let r=0;rr+` Shapes ${e} and ${t} must match`)}function Ro(e){P(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Ao(e,t=[],r=!1){if(t==null&&(t=[]),Array.isArray(e)||wr(e)&&!r)for(let n=0;n0,r){return new Promise((n,a)=>{let s=0,i=()=>{if(e()){n();return}s++;let o=t(s);if(r!=null&&s>=r){a();return}setTimeout(i,o)};i()})}function sR(e,t){let r=1,n=-1;for(let s=0;s=0)r*=e[s];else if(e[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==r)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(r===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%r!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${r}`);let a=e.slice();return a[n]=t/r,a}function Bn(e,t){let r=t.length;return e=e==null?t.map((n,a)=>a):[].concat(e),P(e.every(n=>n>=-r&&n`All values in axis param must be in range [-${r}, ${r}) but got axis ${e}`),P(e.every(n=>pu(n)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(n=>n<0?r+n:n)}function Hv(e,t){let r=[],n=[],a=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||a?null:Bn(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(r.push(e[o]),n.push(o)),s[i]<=o&&i++}e[o]!==1&&(r.push(e[o]),n.push(o))}return{newShape:r,keptDims:n}}function qv(e,t){let r=null;if(e==null||e==="float32")r=new Float32Array(t);else if(e==="int32")r=new Int32Array(t);else if(e==="bool")r=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return r}function Kv(e,t){let r=null;if(e==null||e==="float32")r=new Float32Array(t);else if(e==="int32")r=new Int32Array(t);else if(e==="bool")r=new Uint8Array(t);else if(e==="string")r=new Array(t);else throw new Error(`Unknown data type ${e}`);return r}function Xv(e,t){for(let r=0;rt+=r.length),t}function vs(e){return typeof e=="string"||e instanceof String}function Jv(e){return typeof e=="boolean"}function Qv(e){return typeof e=="number"}function Ff(e){return Array.isArray(e)?Ff(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":Qv(e)?"float32":vs(e)?"string":Jv(e)?"bool":"float32"}function Cs(e){return!!(e&&e.constructor&&e.call&&e.apply)}function rf(e,t){for(let r=t;r=0;--n)r[n]=r[n+1]*e[n+1];return r}function ew(e,t,r,n=!1){let a=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;il*u)*(n?2:1);for(let l=0;la*s)*(r?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${r?" for a complex tensor":""}.`);return ew(0,e,t,r)}function jy(e,t){let r=$f(e,t);for(let n=0;nn*a,1);if(t==null||t==="float32")return iu(e,new Float32Array(r));if(t==="int32")return iu(e,new Int32Array(r));if(t==="bool")return iu(e,new Uint8Array(r));throw new Error(`Unknown data type ${t}`)}function Hy(e){e.forEach(t=>{P(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function lR(e,t,r){if(t===0)return 0;if(t===1)return e[0];let n=e[e.length-1];for(let a=0;a{let[r,n]=t.split(":");this.urlFlags[r]=hR(r,n)})}};function dR(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(r,...n)=>(pR(t,n[0],n[1]),n.join("="))),t}function pR(e,t,r){e[decodeURIComponent(t)]=decodeURIComponent(r||"")}function hR(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function J(){return ma}var ma=null;function cR(e){ma=e}var N1;function rw(){if(N1==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");N1=e}return N1}function fR(){let e=rw();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Ky(e,t){let r=fR();if(r.has(e))return r.get(e);{let n=t();return r.set(e,n),r.get(e)}}var Mo="Abs",Tu="Acos",Nu="Acosh",Ha="Add",Vs="AddN",Eu="All",Ru="Any",Us="ArgMax",Mu="ArgMin",Fu="Asin",$u="Asinh",Pu="Atan",_u="Atanh",zu="Atan2",Gs="AvgPool",Pf="AvgPoolGrad",Op="AvgPool3D",_f="AvgPool3DGrad",js="BatchMatMul",Fo="BatchToSpaceND",zf="Bincount",nw="BroadcastTo",Of="BroadcastArgs",Hs="Cast",qs="Ceil",qa="ClipByValue",Dp="Complex",Lp="ComplexAbs",$o="Concat",Ks="Conv2D",Df="Conv2DBackpropFilter",Xs="Conv2DBackpropInput",Bp="Conv3D",Lf="Conv3DBackpropFilterV2",Bf="Conv3DBackpropInputV2",Zs="Cos",Ys="Cosh",Po="Cumsum",_o="CropAndResize",Wf="DenseBincount",zo="DepthToSpace",Js="DepthwiseConv2dNative",Vf="DepthwiseConv2dNativeBackpropFilter",Uf="DepthwiseConv2dNativeBackpropInput",Gf="Diag",Wp="Dilation2D",nf="Dilation2DBackpropInput",af="Dilation2DBackpropFilter",Qs="RealDiv",Vp="Einsum",ei="Elu",jf="EluGrad",Ou="Erf",Oo="Equal",ti="Exp",Do="ExpandDims",Lo="Expm1",Hf="FFT",Du="Fill",Bo="FlipLeftRight",ri="Floor",ni="FloorDiv",ai="FusedBatchNorm",Wo="GatherV2",Vo="GatherNd",Uo="Greater",si="GreaterEqual",ii="Identity",qf="IFFT",Up="Imag",Lu="IsFinite",Bu="IsInf",Wu="IsNan",oi="LeakyRelu",Go="Less",jo="LessEqual",Kf="LinSpace",li="Log",Vu="Log1p",Ho="LogicalAnd",Uu="LogicalNot",Gp="LogicalOr",aw="LogSoftmax",jp="LRN",Xf="LRNGrad",ui="Max",di="Maximum",pi="MaxPool",Zf="MaxPoolGrad",Hp="MaxPool3D",Yf="MaxPool3DGrad",Jf="MaxPoolWithArgmax",hi="Mean",ci="Min",fi="Minimum",mi="MirrorPad",Gu="Mod",Qf="Multinomial",gi="Multiply",qo="Neg",Ko="NotEqual",Xo="NonMaxSuppressionV3",ju="NonMaxSuppressionV4",Zo="NonMaxSuppressionV5",Yo="OnesLike",Jo="OneHot",Qo="Pack",yi="PadV2",mR="Pool",Ai="Pow",xi="Prelu",el="Prod",Hu="Range",qp="Real",qu="Reciprocal",bi="Relu",tl="Reshape",Ku="ResizeNearestNeighbor",em="ResizeNearestNeighborGrad",vi="ResizeBilinear",tm="ResizeBilinearGrad",wi="Relu6",rl="Reverse",nl="Round",ki="Rsqrt",al="ScatterNd",sl="Select",Xu="Selu",il="Slice",Ii="Sin",ol="Sinh",Zu="Sign",Si="Sigmoid",Yu="Softplus",Ci="Sqrt",Ti="Sum",ll="SpaceToBatchND",ul="SplitV",Ni="Softmax",Kp="SparseFillEmptyRows",Ju="SparseReshape",Xp="SparseSegmentMean",Zp="SparseSegmentSum",Yp="SparseToDense",Ei="SquaredDifference",Qu="Square",dl="StridedSlice",Jp="StringNGrams",rm="StringSplit",nm="StringToHashBucketFast",Ri="Sub",pl="Tan",Mi="Tanh",Ka="Tile",hl="TopK",cl="Transform",Fi="Transpose",am="Unique",fl="Unpack",Qp="UnsortedSegmentSum",ml="ZerosLike",$i="Step",kp="FromPixels",gl="RotateWithOffset",Ts="_FusedMatMul",Ns="FusedConv2D",Es="FusedDepthwiseConv2D";function bs(...e){J().getBool("IS_TEST")||J().getBool("PROD")||console.warn(...e)}function gR(...e){J().getBool("IS_TEST")||J().getBool("PROD")||console.log(...e)}var hu=Ky("kernelRegistry",()=>new Map),Ip=Ky("gradRegistry",()=>new Map);function sf(e,t){let r=Xy(e,t);return hu.get(r)}function G1(e){return Ip.get(e)}function Na(e){let t=hu.entries(),r=[];for(;;){let{done:n,value:a}=t.next();if(n)break;let[s,i]=a,[o]=s.split("_");o===e&&r.push(i)}return r}function Wn(e){let{kernelName:t,backendName:r}=e,n=Xy(t,r);hu.has(n)&&bs(`The kernel '${t}' for backend '${r}' is already registered`),hu.set(n,e)}function sw(e){let{kernelName:t}=e;Ip.has(t)&&J().getBool("DEBUG")&&bs(`Overriding the gradient for '${t}'`),Ip.set(t,e)}function yR(e,t){let r=Xy(e,t);if(!hu.has(r))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);hu.delete(r)}function AR(e){if(!Ip.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Ip.delete(e)}function xR(e,t){Na(e).forEach(r=>{let n=Object.assign({},r,{backendName:t});Wn(n)})}function Xy(e,t){return`${t}_${e}`}var w={};Le(w,{arraysEqual:()=>Ws,assert:()=>P,assertNonNegativeIntegerDimensions:()=>Hy,assertNonNull:()=>Ro,assertShapesMatch:()=>Wr,bytesFromStringArray:()=>Yv,bytesPerElement:()=>U1,checkConversionForErrors:()=>Xv,clamp:()=>wp,computeStrides:()=>Cu,createScalarValue:()=>SR,createShuffledIndices:()=>nR,decodeString:()=>of,distSquared:()=>QE,encodeString:()=>th,fetch:()=>TR,fingerPrint64:()=>IR,flatten:()=>Ao,getArrayFromDType:()=>Kv,getTypedArrayFromDType:()=>qv,hasEncodingLoss:()=>iR,hexToLong:()=>eh,indexToLoc:()=>uR,inferDtype:()=>Ff,inferFromImplicitShape:()=>sR,isBoolean:()=>Jv,isFunction:()=>Cs,isInt:()=>pu,isNumber:()=>Qv,isPromise:()=>qy,isScalarShape:()=>eR,isString:()=>vs,isTypedArray:()=>wr,isValidDtype:()=>Zv,locToIndex:()=>lR,makeOnesTypedArray:()=>jy,makeZerosNestedTypedArray:()=>oR,makeZerosTypedArray:()=>$f,nearestDivisor:()=>rf,nearestLargerEven:()=>ZE,now:()=>Sp,parseAxisParam:()=>Bn,randUniform:()=>JE,repeatedTry:()=>aR,rightPad:()=>yp,shuffle:()=>jv,shuffleCombo:()=>XE,sizeFromShape:()=>Ct,sizeToSquarishShape:()=>rR,squeezeShape:()=>Hv,sum:()=>YE,swap:()=>tf,tanh:()=>tR,toNestedArray:()=>iu,toTypedArray:()=>sm});var u3=Eo(ME()),io=u3.default||u3;function eh(e){return io.fromString(e,!0,16)}var iw=eh("c3a5c85c97cb3127"),ao=eh("b492b66fbe98f273"),Pr=eh("9ae16a3b2f90404f");function j1(e){return e.xor(e.shru(47))}function ow(e,t,r){let n=e.slice(t,t+r);return io.fromBytes(Array.from(n),!0,!0)}function wt(e,t){return ow(e,t,8)}function d3(e,t){return ow(e,t,4)}function pr(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ks(e,t,r=eh("9ddfea08eb382d69")){let n=e.xor(t).mul(r);n=n.xor(n.shru(47));let a=t.xor(n).mul(r);return a=a.xor(a.shru(47)),a=a.mul(r),a}function bR(e,t,r,n,a,s){a=a.add(e),s=pr(s.add(a).add(n),21);let i=a;return a=a.add(t),a=a.add(r),s=s.add(pr(a,44)),[a.add(n),s.add(i)]}function Fc(e,t,r,n){return bR(wt(e,t),wt(e,t+8),wt(e,t+16),wt(e,t+24),r,n)}function vR(e,t=e.length){if(t>=8){let r=Pr.add(t*2),n=wt(e,0).add(Pr),a=wt(e,t-8),s=pr(a,37).mul(r).add(n),i=pr(n,25).add(a).mul(r);return ks(s,i,r)}if(t>=4){let r=Pr.add(t*2),n=d3(e,0);return ks(n.shl(3).add(t),d3(e,t-4),r)}if(t>0){let r=e[0],n=e[t>>1],a=e[t-1],s=r+(n<<8),i=t+(a<<2);return j1(Pr.mul(s).xor(iw.mul(i))).mul(Pr)}return Pr}function wR(e,t=e.length){let r=Pr.add(t*2),n=wt(e,0).mul(ao),a=wt(e,8),s=wt(e,t-8).mul(r),i=wt(e,t-16).mul(Pr);return ks(pr(n.add(a),43).add(pr(s,30)).add(i),n.add(pr(a.add(Pr),18)).add(s),r)}function kR(e,t=e.length){let r=Pr.add(t*2),n=wt(e,0).mul(Pr),a=wt(e,8),s=wt(e,t-8).mul(r),i=wt(e,t-16).mul(Pr),o=pr(n.add(a),43).add(pr(s,30)).add(i),l=ks(o,n.add(pr(a.add(Pr),18)).add(s),r),u=wt(e,16).mul(r),d=wt(e,24),h=o.add(wt(e,t-32)).mul(r),p=l.add(wt(e,t-24)).mul(r);return ks(pr(u.add(d),43).add(pr(h,30)).add(p),u.add(pr(d.add(n),18)).add(h),r)}function IR(e,t=e.length){let r=io.fromNumber(81,!0);if(t<=32)return t<=16?vR(e,t):wR(e,t);if(t<=64)return kR(e,t);let n=r,a=r.mul(ao).add(113),s=j1(a.mul(Pr).add(113)).mul(Pr),i=[io.UZERO,io.UZERO],o=[io.UZERO,io.UZERO];n=n.mul(Pr).add(wt(e,0));let l=0,u=(t-1>>6)*64,d=u+(t-1&63)-63;do n=pr(n.add(a).add(i[0]).add(wt(e,l+8)),37).mul(ao),a=pr(a.add(i[1]).add(wt(e,l+48)),42).mul(ao),n=n.xor(o[1]),a=a.add(i[0]).add(wt(e,l+40)),s=pr(s.add(o[0]),33).mul(ao),i=Fc(e,l,i[1].mul(ao),n.add(o[0])),o=Fc(e,l+32,s.add(o[1]),a.add(wt(e,l+16))),[s,n]=[n,s],l+=64;while(l!==u);let h=ao.add(s.and(255).shl(1));return l=d,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),n=pr(n.add(a).add(i[0]).add(wt(e,l+8)),37).mul(h),a=pr(a.add(i[1]).add(wt(e,l+48)),42).mul(h),n=n.xor(o[1].mul(9)),a=a.add(i[0].mul(9).add(wt(e,l+40))),s=pr(s.add(o[0]),33).mul(h),i=Fc(e,l,i[1].mul(h),n.add(o[0])),o=Fc(e,l+32,s.add(o[1]),a.add(wt(e,l+16))),[s,n]=[n,s],ks(ks(i[0],o[0],h).add(j1(a).mul(iw)).add(s),ks(i[1],o[1],h).add(n),h)}function SR(e,t){return t==="string"?th(e):sm([e],t)}function CR(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function sm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Ao(e)),J().getBool("DEBUG")&&Xv(e,t),CR(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let r=new Uint8Array(e.length);for(let n=0;n{n=r()},s,i=Sp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(a);else{a();for(let o of n)o.dataSync();s=Promise.resolve({kernelMs:Sp()-i})}if(J().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{ER(u,l.dtype,e)})}return{kernelName:e,outputs:n,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:r,timeMs:n,inputs:a,extraInfo:s}=e;r.forEach(i=>{Promise.all([i.data(),n,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],a,o[2])})})}};function ER(e,t,r){if(t!=="float32")return!1;for(let n=0;n0?f:""} `}}console.log(`%c${o} %c${i} %c${l}D ${d} %c${u} %c${h} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function MR(e,t,r){let n={},a={};for(let l=0;ln[m.id]=!0),c=!0,a[u.id]=!0;break}if(c)break}}let s={};s[r.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],d=u.inputs;for(let h=0;h=0;a--){let s=t[a],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=r(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let d=s.inputs[l];if(!Ws(u.shape,d.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${d.shape}'`);if(e[d.id]==null)e[d.id]=u;else{let h=e[d.id];e[d.id]=n(h,u),h.dispose()}}}}var p3=20,np=3,E1=7;function $R(e,t,r,n){let a=Cu(t),s=PR(e,t,r,a),i=t.length,o=Uc(e,t,r,a,s),l=["Tensor"];return n&&(l.push(` dtype: ${r}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` `)),l.join(` `)}function PR(e,t,r,n){let a=Ct(t),s=n[n.length-1],i=new Array(s).fill(0),o=t.length,l=r==="complex64"?lp(e):e;if(o>1)for(let u=0;up3){let g=np*i,y=Array.from(e.slice(0,g)),A=Array.from(e.slice((o-np)*i,o*i));return r==="complex64"&&(y=lp(y),A=lp(A)),["["+y.map((x,b)=>op(x,a[b],r)).join(", ")+", ..., "+A.map((x,b)=>op(x,a[o-np+b],r)).join(", ")+"]"]}let m=r==="complex64"?lp(e):Array.from(e);return["["+m.map((g,y)=>op(g,a[y],r)).join(", ")+"]"]}let u=t.slice(1),d=n.slice(1),h=n[0]*i,p=[];if(o>p3){for(let m=0;m`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=r||Kv(t,this.size),this.strides=Cu(e)}set(e,...t){t.length===0&&(t=[0]),P(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let r=this.locToIndex(t);this.values[r]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let n of e){if(n<0||n>=this.shape[t]){let a=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(a)}t++}let r=e[e.length-1];for(let n=0;nof(r))}catch(r){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),ra().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=ra().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>of(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await ra().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(ra().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return ru.print(this,e)}clone(){return this.throwIfDisposed(),ru.clone(this)}toString(e=!1){let t=this.dataSync();return $R(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),ru.cast(this,e)}variable(e=!0,t,r){return this.throwIfDisposed(),ra().makeVariable(this,e,t,r)}};Object.defineProperty(rt,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function LR(){return Ky("Tensor",()=>rt)}LR();var Cp=class extends rt{constructor(e,t,r,n){super(e.shape,e.dtype,e.dataId,n);this.trainable=t,this.name=r}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Ws(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);ra().disposeTensor(this),this.dataId=e.dataId,ra().incRef(this,null)}dispose(){ra().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Cp,Symbol.hasInstance,{value:e=>e instanceof rt&&e.assign!=null&&e.assign instanceof Function});var ia={};Le(ia,{assertTypesMatch:()=>fw,getTensorsInContainer:()=>Zy,isTensorInList:()=>WR,makeTypesMatch:()=>Ot});var uw=(e=>(e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6",e))(uw||{}),dw=(e=>(e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64",e))(dw||{}),pw=(e=>(e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64",e))(pw||{}),hw=(e=>(e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64",e))(hw||{}),cw=(e=>(e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64",e))(cw||{}),BR={float32:hw,int32:dw,bool:pw,complex64:cw};function Dr(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return BR[e][t]}function rh(e){return Dr(e,"int32")}function Ot(e,t){if(e.dtype===t.dtype)return[e,t];let r=Dr(e.dtype,t.dtype);return[e.cast(r),t.cast(r)]}function fw(e,t){P(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function WR(e,t){return t.some(r=>r.id===e.id)}function Zy(e){let t=[];return mw(e,t,new Set),t}function mw(e,t,r){if(e==null)return;if(e instanceof rt){t.push(e);return}if(!VR(e))return;let n=e;for(let a in n){let s=n[a];r.has(s)||(r.add(s),mw(s,t,r))}}function VR(e){return Array.isArray(e)||typeof e=="object"}function R1(e){return e.kernelName!=null}var h3=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},H1=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new h3}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Na(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let r=t.factory();if(r&&!(r instanceof Su)&&typeof r.then=="function"){let n=++this.pendingBackendInitId,a=r.then(s=>n(nthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(r),()=>this.endScope(n),()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n))}scopedRun(e,t,r){e();try{let n=r();return t(),n}catch(n){throw t(),n}}nextTensorId(){return H1.nextTensorId++}nextVariableId(){return H1.nextVariableId++}clone(e){let t=B.runKernel(ii,{x:e}),r={x:e},n=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return B.runKernel(Hs,o,l)}}),a=[];return this.addTapeNode(this.state.activeScope.name,r,[t],n,a,{}),t}runKernel(e,t,r){if(this.backendName==null&&this.backend,sf(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:r})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,r){let n=this.backend.numDataIds(),a=0;r.forEach(o=>{a+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=n-t-a-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,r=[],n=this.isTapeOn(),a=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=R1(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(R1(e)){let{kernelName:c,inputs:f,attrs:m}=e;this.backendName==null&&this.backend;let g=sf(c,this.backendName);P(g!=null,()=>`Cannot find registered kernel '${c}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:f,attrs:m,backend:this.backend});let A=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(c,y,A);let x=A.map(b=>{if(b.rank!=null)return b;let{dataId:v,shape:C,dtype:S}=b;return this.makeTensorFromDataId(v,C,S)});if(n){let b=this.getTensorsForGradient(c,f,x);r=this.saveTensorsForBackwardMode(b)}return x}}else{let{forwardFunc:c}=e,f=m=>{!n||(r=m.map(g=>this.keep(this.clone(g))))};i=()=>{let m=this.backend.numDataIds();o=this.tidy(()=>c(this.backend,f));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,m,g),g}}let{inputs:u,attrs:d}=e,h=R1(e)?null:e.backwardsFunc,p;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(p=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(p),t=p.outputs)}),n&&this.addTapeNode(l,u,t,h,r,d),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-a,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(c=>u[c]!=null?u[c].shape:null),outputShapes:t.map(c=>c.shape),kernelTimeMs:p.timeMs,extraInfo:p.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,r){let n=G1(e);if(n!=null){let a=n.inputsToSave||[],s=n.outputsToSave||[],i;n.saveAllInputs?(P(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=a.map(l=>t[l]);let o=r.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,r,n){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");r=r||"float32",n=n||this.backend;let a=e;r==="string"&&vs(e[0])&&(a=e.map(o=>th(o)));let s=n.write(a,t,r),i=new rt(t,r,s,this.nextTensorId());if(this.trackTensor(i,n),r==="string"){let o=this.state.tensorInfo.get(s),l=Yv(a);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,r,n){r=r||"float32";let a=new rt(t,r,e,this.nextTensorId());return this.trackTensor(a,n),a}makeVariable(e,t=!0,r,n){r=r||this.nextVariableId().toString(),n!=null&&n!==e.dtype&&(e=e.cast(n));let a=new Cp(e,t,r,this.nextTensorId());if(this.state.registeredVariables[a.name]!=null)throw new Error(`Variable with name ${a.name} was already registered`);return this.state.registeredVariables[a.name]=a,this.incRef(a,this.backend),a}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let r=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(r=e.size*U1(e.dtype)),this.state.numBytes+=r,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:r})),e instanceof Cp||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let r=e.size*U1(e.dtype);this.state.numBytes-=r}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,r=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(n=>n.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-r;for(let n of this.state.activeProfile.kernels)n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,r,n,a,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:r,saved:a},o=G1(e);o!=null&&(n=o.gradFunc),n!=null&&(i.gradient=l=>(l=l.map((u,d)=>{if(u==null){let h=r[d],p=$f(h.size,h.dtype);return this.makeTensor(p,h.shape,h.dtype)}return u}),n(l.length>1?l:l[0],a,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Zy(e),r=new Set(t.map(a=>a.id));for(let a=0;a{!a.kept&&a.scopeId===n.id&&this.track(a)})}gradients(e,t,r,n=!1){if(P(t.length>0,()=>"gradients() received an empty list of xs."),r!=null&&r.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${r.dtype}'`);let a=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));P(a instanceof rt,()=>"The result y returned by f() must be a tensor.");let s=MR(this.state.activeTape,t,a);if(!n&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[a.id]=r==null?UR(a.shape):r,FR(i,s,l=>this.tidy(l),GR);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:a,grads:o}})}customGrad(e){return P(Cs(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{P(t.every(i=>i instanceof rt),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let r,n={};t.forEach((i,o)=>{n[o]=i});let a=(i,o)=>(r=e(...t,o),P(r.value instanceof rt,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),P(Cs(r.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),r.value),s=(i,o)=>{let l=r.gradFunc(i,o),u=Array.isArray(l)?l:[l];P(u.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),P(u.every(h=>h instanceof rt),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let d={};return u.forEach((h,p)=>{d[p]=()=>h}),d};return this.runKernelFunc({forwardFunc:a,backwardsFunc:s,inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=Sp(),r=await this.backend.time(e);return r.wallMs=Sp()-t,r}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new h3;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}},Yy=H1;Yy.nextTensorId=0;Yy.nextVariableId=0;function UR(e){let t=jy(Ct(e),"float32");return B.makeTensor(t,e,"float32")}function gw(){let e=rw();if(e._tfengine==null){let t=new tw(e);e._tfengine=new Yy(t)}return cR(e._tfengine.ENV),zR(()=>e._tfengine),e._tfengine}var B=gw();function GR(e,t){let r={a:e,b:t};return B.runKernel(Ha,r)}var nh={};Le(nh,{isBrowser:()=>yw,isMobile:()=>qR,mockIsMobile:()=>HR});function jR(){return typeof navigator!="undefined"&&navigator!=null}var q1;function HR(e){q1=e}function qR(e){if(q1!==void 0)return q1;if(e||jR()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let r=e;return r.userAgentData&&r.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function yw(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var da=J();da.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});da.registerFlag("IS_BROWSER",()=>yw());da.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");da.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));da.registerFlag("PROD",()=>!1);da.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>da.getBool("DEBUG"));da.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);da.registerFlag("IS_TEST",()=>!1);da.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);da.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);function Ea(e,t){let r=e;if(wr(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let n=[];for(;Array.isArray(r)||wr(r)&&t!=="string";)n.push(r.length),r=r[0];return Array.isArray(e)&&J().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&Aw(e,n,[]),n}function Aw(e,t,r){if(r=r||[],!Array.isArray(e)&&!wr(e)){P(t.length===0,()=>`Element arr[${r.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}P(t.length>0,()=>`Element arr[${r.join("][")}] should be a primitive, but is an array of ${e.length} elements`),P(e.length===t[0],()=>`Element arr[${r.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let n=t.slice(1);for(let a=0;a=0&&(a=n),c3(n,a,t,r),e==null||!wr(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${r}' must be a Tensor or TensorLike, but got '${o}'`)}let s=Ea(e,a);!wr(e)&&!Array.isArray(e)&&(e=[e]);let i=a!=="string"?sm(e,a):Ao(e,[],!0);return B.makeTensor(i,s,a)}function Tp(e,t,r,n="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${r} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((a,s)=>F(a,`${t}[${s}]`,r,n))}var xw="__op";function W(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let r=t[0],n=e[r];r.endsWith("_")&&(r=r.substring(0,r.length-1)),r=r+xw;let a=(...s)=>{B.startScope(r);try{let i=n(...s);return qy(i)&&console.error("Cannot return a Promise inside of tidy."),B.endScope(i),i}catch(i){throw B.endScope(null),i}};return Object.defineProperty(a,"name",{value:r,configurable:!0}),a}function KR(e,t){let r=F(e,"real","complex"),n=F(t,"imag","complex");Wr(r.shape,n.shape,`real and imag shapes, ${r.shape} and ${n.shape}, must match in call to tf.complex().`);let a={real:r,imag:n};return B.runKernel(Dp,a)}var Rs=W({complex_:KR});function Pi(e,t,r,n){if(n==null&&(n=Ff(e)),n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!wr(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){Hy(t);let a=Ct(t),s=Ct(r);P(a===s,()=>`Based on the provided shape, [${t}], the tensor should have ${a} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${r}) does not match the provided shape (${t}). `)}}return!wr(e)&&!Array.isArray(e)&&(e=[e]),t=t||r,e=n!=="string"?sm(e,n):Ao(e,[],!0),B.makeTensor(e,t,n)}function ct(e,t,r){let n=Ea(e,r);return Pi(e,t,n,r)}var K1={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},lf=4;async function XR(e,t){let r=[],n=[],a=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let p=await l.bytes(),c=p.reduce((g,y)=>g+y.length,0)+lf*p.length,f=new Uint8Array(c),m=0;for(let g=0;g{if(t+=s.byteLength,r.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),a=0;return r.forEach(s=>{n.set(new Uint8Array(s.buffer),a),a+=s.byteLength}),n.buffer}var Jy=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function f3(e){return Jy?Buffer.byteLength(e):new Blob([e]).size}function YR(e){if(Jy)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),r="";for(let n=0,a=t.length;n{t+=a.byteLength});let r=new Uint8Array(t),n=0;return e.forEach(a=>{r.set(new Uint8Array(a),n),n+=a.byteLength}),r.buffer}function m3(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let r=e.split(t);return r[r.length-1]}function vw(e,t){let r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),e.trainingConfig!=null&&(r.trainingConfig=e.trainingConfig),r}async function e2(e,t){let r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(r.trainingConfig=e.trainingConfig),e.weightsManifest!=null){let[n,a]=await t(e.weightsManifest);r.weightSpecs=n,r.weightData=a}return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),r}function ah(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:f3(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:f3(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function QR(){let e=r=>{let n=r<<13,a=0;for(;(n&8388608)===0;)a-=8388608,n<<=1;return n&=-8388609,a+=947912704,n|a},t=new Uint32Array(2048);t[0]=0;for(let r=1;r<1024;r++)t[r]=e(r);for(let r=1024;r<2048;r++)t[r]=939524096+(r-1024<<13);return t}function eM(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function tM(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function rM(){let e=QR(),t=eM(),r=tM();return n=>{let a=new ArrayBuffer(4*n.length),s=new Uint32Array(a);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(a)}}var Lt=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Lt.instance==null&&(Lt.instance=new Lt),Lt.instance}static registerSaveRouter(e){Lt.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Lt.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Lt.getHandlers(e,"save")}static getLoadHandlers(e,t){return Lt.getHandlers(e,"load",t)}static getHandlers(e,t,r){let n=[];return(t==="load"?Lt.getInstance().loadRouters:Lt.getInstance().saveRouters).forEach(a=>{let s=a(e,r);s!==null&&n.push(s)}),n}},nM=e=>Lt.registerSaveRouter(e),aM=e=>Lt.registerLoadRouter(e),sM=e=>Lt.getSaveHandlers(e),iM=(e,t)=>Lt.getLoadHandlers(e,t),X1="tensorflowjs",Z1=1,po="models_store",ws="model_info_store";function ww(){if(!J().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Y1(e){let t=e.result;t.createObjectStore(po,{keyPath:"modelPath"}),t.createObjectStore(ws,{keyPath:"modelPath"})}var xo=class{constructor(e){if(this.indexedDB=ww(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((r,n)=>{let a=this.indexedDB.open(X1,Z1);a.onupgradeneeded=()=>Y1(a),a.onsuccess=()=>{let s=a.result;if(t==null){let i=s.transaction(po,"readonly"),o=i.objectStore(po).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));r(o.result.modelArtifacts)},o.onerror=l=>(s.close(),n(o.error)),i.oncomplete=()=>s.close()}else{let i=ah(t),o=s.transaction(ws,"readwrite"),l=o.objectStore(ws),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),d;u.onsuccess=()=>{d=s.transaction(po,"readwrite");let h=d.objectStore(po).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});h.onsuccess=()=>r({modelArtifactsInfo:i}),h.onerror=p=>{l=o.objectStore(ws);let c=l.delete(this.modelPath);c.onsuccess=()=>(s.close(),n(h.error)),c.onerror=f=>(s.close(),n(h.error))}},u.onerror=h=>(s.close(),n(u.error)),o.oncomplete=()=>{d==null?s.close():d.oncomplete=()=>s.close()}}},a.onerror=s=>n(a.error)})}};xo.URL_SCHEME="indexeddb://";var kw=e=>J().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(xo.URL_SCHEME)?oM(e.slice(xo.URL_SCHEME.length)):null;Lt.registerSaveRouter(kw);Lt.registerLoadRouter(kw);function oM(e){return new xo(e)}function lM(e){return e.startsWith(xo.URL_SCHEME)?e.slice(xo.URL_SCHEME.length):e}var uM=class{constructor(){this.indexedDB=ww()}async listModels(){return new Promise((e,t)=>{let r=this.indexedDB.open(X1,Z1);r.onupgradeneeded=()=>Y1(r),r.onsuccess=()=>{let n=r.result,a=n.transaction(ws,"readonly"),s=a.objectStore(ws).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(n.close(),t(s.error)),a.oncomplete=()=>n.close()},r.onerror=n=>t(r.error)})}async removeModel(e){return e=lM(e),new Promise((t,r)=>{let n=this.indexedDB.open(X1,Z1);n.onupgradeneeded=()=>Y1(n),n.onsuccess=()=>{let a=n.result,s=a.transaction(ws,"readwrite"),i=s.objectStore(ws),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return a.close(),r(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),d=()=>{l=a.transaction(po,"readwrite");let h=l.objectStore(po).delete(e);h.onsuccess=()=>t(o.result.modelArtifactsInfo),h.onerror=p=>r(o.error)};u.onsuccess=d,u.onerror=h=>(d(),a.close(),r(o.error))}},o.onerror=u=>(a.close(),r(o.error)),s.oncomplete=()=>{l==null?a.close():l.oncomplete=()=>a.close()}},n.onerror=a=>r(n.error)})}},Va="/",nu="tensorflowjs_models",Iw="info",dM="model_topology",pM="weight_specs",hM="weight_data",cM="model_metadata";function Sw(e){return{info:[nu,e,Iw].join(Va),topology:[nu,e,dM].join(Va),weightSpecs:[nu,e,pM].join(Va),weightData:[nu,e,hM].join(Va),modelMetadata:[nu,e,cM].join(Va)}}function Cw(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function fM(e){let t=e.split(Va);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Va)}function mM(e){return e.startsWith(bo.URL_SCHEME)?e.slice(bo.URL_SCHEME.length):e}var bo=class{constructor(e){if(!J().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=Sw(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),r=JSON.stringify(e.weightSpecs),n=ah(e);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,r),this.LS.setItem(this.keys.weightData,YR(e.weightData));let a={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(a)),{modelArtifactsInfo:n}}catch(a){throw Cw(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${n.modelTopologyBytes}, weightSpecsBytes=${n.weightSpecsBytes}, weightDataBytes=${n.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},r=JSON.parse(this.LS.getItem(this.keys.topology));if(r==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=r;let n=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(n==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=n;let a=this.LS.getItem(this.keys.modelMetadata);if(a!=null){let i=JSON.parse(a);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=JR(s),t}};bo.URL_SCHEME="localstorage://";var Tw=e=>J().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(bo.URL_SCHEME)?gM(e.slice(bo.URL_SCHEME.length)):null;Lt.registerSaveRouter(Tw);Lt.registerLoadRouter(Tw);function gM(e){return new bo(e)}var yM=class{constructor(){P(J().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),P(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=nu+Va,r=Va+Iw;for(let n=0;n"scheme must not be undefined or null."),e.endsWith(ou)&&(e=e.slice(0,e.indexOf(ou))),P(e.length>0,()=>"scheme must not be an empty string.");let r=In.getInstance();P(r.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),r.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function Gc(e){if(e.indexOf(ou)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${In.getSchemes().join(",")}`);return{scheme:e.split(ou)[0],path:e.split(ou)[1]}}async function Nw(e,t,r=!1){P(e!==t,()=>`Old path and new path are the same: '${e}'`);let n=Lt.getLoadHandlers(e);P(n.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),P(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`);let a=n[0],s=Lt.getSaveHandlers(t);P(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),P(s.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],o=Gc(e).scheme,l=Gc(e).path,u=o===Gc(e).scheme,d=await a.load();r&&u&&await In.getManager(o).removeModel(l);let h=await i.save(d);return r&&!u&&await In.getManager(o).removeModel(l),h.modelArtifactsInfo}async function AM(){let e=In.getSchemes(),t={};for(let r of e){let n=await In.getManager(r).listModels();for(let a in n){let s=r+ou+a;t[s]=n[a]}}return t}async function xM(e){let t=Gc(e);return In.getManager(t.scheme).removeModel(t.path)}async function bM(e,t){return Nw(e,t,!1)}async function vM(e,t){return Nw(e,t,!0)}var wM=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(J().get("IS_BROWSER")){J().setPlatform("browser",new wM);try{In.registerManager(bo.URL_SCHEME,new yM)}catch(e){}try{In.registerManager(xo.URL_SCHEME,new uM)}catch(e){}}var kM={importFetch:()=>FE()},M1,IM=class{constructor(){this.util=$E(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return J().global.fetch!=null?J().global.fetch(e,t):(M1==null&&(M1=kM.importFetch()),M1(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};J().get("IS_NODE")&&!J().get("IS_BROWSER")&&J().setPlatform("node",new IM);function We(e,t="float32",r){return t=t||"float32",Hy(e),new rr(e,t,r)}function SM(e,t){let r=F(e,"x","cast");if(!Zv(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&r.dtype!=="string"||t!=="string"&&r.dtype==="string")throw new Error("Only strings can be casted to strings");let n={x:r},a={dtype:t};return B.runKernel(Hs,n,a)}var me=W({cast_:SM});function CM(e){let t={x:F(e,"x","clone","string_or_numeric")};return B.runKernel(ii,t)}var Or=W({clone_:CM});function Ew(e,t=!1){console.log(e.toString(t))}gw();var TM={buffer:We,cast:me,clone:Or,print:Ew};OR(TM);var Ir={};Le(Ir,{browserFiles:()=>PM,browserHTTPRequest:()=>LM,concatenateArrayBuffers:()=>Qy,copyModel:()=>bM,decodeWeights:()=>bw,encodeWeights:()=>XR,fromMemory:()=>WM,getLoadHandlers:()=>iM,getModelArtifactsForJSON:()=>e2,getModelArtifactsInfoForJSON:()=>ah,getSaveHandlers:()=>sM,http:()=>r2,isHTTPScheme:()=>Q1,listModels:()=>AM,loadWeights:()=>_M,moveModel:()=>vM,registerLoadRouter:()=>aM,registerSaveRouter:()=>nM,removeModel:()=>xM,weightsLoaderFactory:()=>Mw,withSaveHandler:()=>VM});var NM="model",EM=".json",RM=".weights.bin";function g3(e){return new Promise(t=>setTimeout(t)).then(e)}var J1=class{constructor(e){if(!J().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(J1.URL_SCHEME)&&(e=e.slice(J1.URL_SCHEME.length)),(e==null||e.length===0)&&(e=NM),this.modelJsonFileName=e+EM,this.weightDataFileName=e+RM}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let r=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n=vw(e,r),a=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),s=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(s.download=this.modelJsonFileName,s.href=a,await g3(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await g3(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:ah(e)}}}},uf=J1;uf.URL_SCHEME="downloads://";var MM=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let r=new FileReader;r.onload=n=>{let a=JSON.parse(n.target.result),s=a.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(a.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=e2(a,o=>this.loadWeights(o));e(i)},r.onerror=n=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(this.jsonFile)})}loadWeights(e){let t=[],r=[];for(let s of e)t.push(...s.weights),r.push(...s.paths);let n=this.checkManifestAndWeightFiles(e),a=r.map(s=>this.loadWeightsFile(s,n[s]));return Promise.all(a).then(s=>[t,Qy(s)])}loadWeightsFile(e,t){return new Promise((r,n)=>{let a=new FileReader;a.onload=s=>{let i=s.target.result;r(i)},a.onerror=s=>n(`Failed to weights data from file of path '${e}'.`),a.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],r=this.weightsFiles.map(a=>m3(a.name)),n={};for(let a of e)a.paths.forEach(s=>{let i=m3(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),r.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);n[s]=this.weightsFiles[r.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return n}},FM=e=>J().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(uf.URL_SCHEME)?$M(e.slice(uf.URL_SCHEME.length)):null;Lt.registerSaveRouter(FM);function $M(e="model"){return new uf(e)}function PM(e){return new MM(e)}function y3(e,t,r,n){i(e),r=r==null?0:r,n=n==null?1:n,o(r,n);let a=0,s=l=>(l.then(u=>{let d=r+ ++a/e.length*(n-r);return t(d),u}),l);function i(l){P(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){P(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),P(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),P(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function Rw(e,t){t==null&&(t={});let r=t.fetchFunc==null?J().platform.fetch:t.fetchFunc,n=e.map(u=>r(u,t.requestInit,{isBinary:!0})),a=0,s=.5,i=(t.onProgress==null?await Promise.all(n):await y3(n,t.onProgress,a,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await y3(i,t.onProgress,o,l)}async function _M(e,t="",r,n){return Mw(a=>Rw(a,{requestInit:n}))(e,t,r)}function Mw(e){return async(t,r="",n)=>{let a=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],o=[];if(t.forEach((c,f)=>{let m=0;c.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,A=K1[y]*Ct(g.shape),x=()=>{a[f]=!0,s[f]==null&&(s[f]=[]),s[f].push({manifestEntry:g,groupOffset:m,sizeBytes:A})};n!=null?n.forEach((b,v)=>{b===g.name&&(x(),i[v]=!0)}):x(),o.push(g.name),m+=A})}),!i.every(c=>c)){let c=n.filter((f,m)=>!i[m]);throw new Error(`Could not find weights in manifest with names: ${c.join(", ")}. Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=a.reduce((c,f,m)=>(f&&c.push(m),c),[]),u=[];l.forEach(c=>{t[c].paths.forEach(f=>{let m=r+(r.endsWith("/")?"":"/")+f;u.push(m)})});let d=await e(u),h={},p=0;return l.forEach(c=>{let f=t[c].paths.length,m=0;for(let x=0;x{let b=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),v=bw(b,[x.manifestEntry]);for(let C in v)h[C]=v[C]}),p+=f}),h}}var zM="application/octet-stream",OM="application/json",t2=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(P(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=J().platform.fetch,P(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&P(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let r=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n=vw(e,r);t.body.append("model.json",new Blob([JSON.stringify(n)],{type:OM}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:zM}),"model.weights.bin");let a=await this.fetch(this.path,t);if(a.ok)return{modelArtifactsInfo:ah(e),responses:[a]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${a.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(a){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let r=t.modelTopology,n=t.weightsManifest;if(r==null&&n==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return e2(t,a=>this.loadWeights(a))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[r,n]=DM(t),a=this.weightPathPrefix||r,s=[];for(let u of e)s.push(...u.weights);let i=[],o=[];for(let u of e)for(let d of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(d)):i.push(a+d+n);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await Rw(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Qy(l)]}};t2.URL_SCHEME_REGEX=/^https?:\/\//;function DM(e){let t=e.lastIndexOf("/"),r=e.lastIndexOf("?"),n=e.substring(0,t),a=r>t?e.substring(r):"";return[n+"/",a]}function Q1(e){return e.match(t2.URL_SCHEME_REGEX)!=null}var Fw=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let r=!0;if(Array.isArray(e)?r=e.every(n=>Q1(n)):r=Q1(e),r)return r2(e,t)}return null};Lt.registerSaveRouter(Fw);Lt.registerLoadRouter(Fw);function r2(e,t){return new t2(e,t)}function LM(e,t){return r2(e,t)}var F1=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},BM=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function WM(e,t,r,n){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new F1(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new F1({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new F1({modelTopology:e,weightSpecs:t,weightData:r,trainingConfig:n}))}function VM(e){return new BM(e)}var $w={};Le($w,{confusionMatrix:()=>qM});function UM(e,t,r=!1,n=!1){let a=F(e,"a","matMul"),s=F(t,"b","matMul");[a,s]=Ot(a,s);let i={a,b:s},o={transposeA:r,transposeB:n};return B.runKernel(js,i,o)}var Je=W({matMul_:UM});function GM(e,t,r=1,n=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let a={indices:F(e,"indices","oneHot","int32")},s={depth:t,onValue:r,offValue:n};return B.runKernel(Jo,a,s)}var Np=W({oneHot_:GM});function jM(e,t){let r=F(e,"x","transpose");if(t==null&&(t=r.shape.map((s,i)=>i).reverse()),P(r.rank===t.length,()=>`Error in transpose: rank of input ${r.rank} must match length of perm ${t}.`),t.forEach(s=>{P(s>=0&&s`All entries in 'perm' must be between 0 and ${r.rank-1} but got ${t}`)}),r.rank<=1)return r.clone();let n={x:r},a={perm:t};return B.runKernel(Fi,n,a)}var nt=W({transpose_:jM});function HM(e,t,r){let n=F(e,"labels","confusionMatrix"),a=F(t,"predictions","confusionMatrix");P(r==null||r>0&&Number.isInteger(r),()=>`If provided, numClasses must be a positive integer, but got ${r}`),P(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),P(a.rank===1,()=>`Expected the rank of predictions to be 1, but got ${a.rank}`),P(n.shape[0]===a.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${a.shape[0]}. Labels and predictions should have the same number of elements.`),P(r>0&&Number.isInteger(r),()=>`numClasses is required to be a positive integer, but got ${r}`);let s=Np(me(n,"int32"),r),i=Np(me(a,"int32"),r),o=nt(s),l=Je(o,i);return me(l,"int32")}var qM=W({confusionMatrix_:HM}),yl={};Le(yl,{assertAndGetBroadcastShape:()=>xt,getBroadcastDims:()=>Pw,getReductionAxes:()=>Xt});function Pw(e,t){let r=e.length,n=[];for(let a=0;a1&&i===1&&n.unshift(s)}return n}function Xt(e,t){let r=[];for(let n=0;n1)&&r.unshift(s)}return r}function xt(e,t){let r=[],n=Math.max(e.length,t.length);for(let a=0;aeF,fromPixelsAsync:()=>JM,toPixels:()=>QM});function _w(e,t,r){if(Ro(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Ea(e,r);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Pi(e,t,n,r)}var ro;function zw(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let r=!1,n=!1,a=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)r=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)a=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(a&&a&&e.readyState<2)throw new Error("The video element has not loaded data yet. Please wait for `loadeddata` event on the