varyR=Object.defineProperty;varxR=(e=>typeofrequire!="undefined"?require:typeofProxy!="undefined"?newProxy(e,{get:(t,n)=>(typeofrequire!="undefined"?require:t)[n]}):e)(function(e){if(typeofrequire!="undefined")returnrequire.apply(this,arguments);throwError('Dynamic require of "'+e+'" is not supported')});varnx=(e,t)=>{for(varnint)yR(e,n,{get:t[n],enumerable:!0})};varPe={};nx(Pe,{Abs:()=>Yl,Acos:()=>Ni,Acosh:()=>Ti,AdadeltaOptimizer:()=>Vw,AdagradOptimizer:()=>Uw,AdamOptimizer:()=>Gw,AdamaxOptimizer:()=>Hw,Add:()=>xs,AddN:()=>Ci,All:()=>Zl,Any:()=>Jl,ArgMax:()=>Ql,ArgMin:()=>eu,Asin:()=>Ei,Asinh:()=>_i,Atan:()=>Ai,Atan2:()=>$i,Atanh:()=>Fi,AvgPool:()=>Di,AvgPool3D:()=>tu,AvgPool3DGrad:()=>Rc,AvgPoolGrad:()=>Dc,BackendWasm:()=>O$,BatchMatMul:()=>Ri,BatchToSpaceND:()=>nu,Bincount:()=>au,BitwiseAnd:()=>ru,BroadcastArgs:()=>Mc,BroadcastTo:()=>HS,Callback:()=>MC,CallbackList:()=>A2,Cast:()=>Mi,Ceil:()=>Oi,ClipByValue:()=>vs,Complex:()=>wm,ComplexAbs:()=>Oc,Concat:()=>su,Conv2D:()=>Pi,Conv2DBackpropFilter:()=>km,Conv2DBackpropInput:()=>Li,Conv3D:()=>zi,Conv3DBackpropFilterV2:()=>iu,Conv3DBackpropInputV2:()=>ou,Cos:()=>Wi,Cosh:()=>Bi,CropAndResize:()=>uu,Cumprod:()=>lu,Cumsum:()=>Vi,CustomCallback:()=>$2,DataStorage:()=>ym,DenseBincount:()=>Pc,DepthToSpace:()=>pu,DepthwiseConv2dNative:()=>Ui,DepthwiseConv2dNativeBackpropFilter:()=>Im,DepthwiseConv2dNativeBackpropInput:()=>Sm,Diag:()=>Lc,Dilation2D:()=>Gi,Dilation2DBackpropFilter:()=>Rl,Dilation2DBackpropInput:()=>Dl,Draw:()=>Nm,ENV:()=>Nv,EarlyStopping:()=>OC,Einsum:()=>Tm,Elu:()=>qi,EluGrad:()=>cu,Environment:()=>US,Equal:()=>du,Erf:()=>ji,Exp:()=>Ki,ExpandDims:()=>hu,Expm1:()=>Xi,FFT:()=>Cm,Fill:()=>zc,FlipLeftRight:()=>mu,Floor:()=>Yi,FloorDiv:()=>Zi,FromPixels:()=>Hh,FusedBatchNorm:()=>Ji,FusedConv2D:()=>ii,FusedDepthwiseConv2D:()=>oi,GPGPUContext:()=>Wh,GatherNd:()=>gu,GatherV2:()=>fu,GraphModel:()=>F1,Greater:()=>bu,GreaterEqual:()=>Qi,History:()=>F2,IFFT:()=>Em,Identity:()=>eo,Imag:()=>_m,InputSpec:()=>zt,IsFinite:()=>to,IsInf:()=>no,IsNan:()=>ao,KernelBackend:()=>Fc,LRN:()=>oo,LRNGrad:()=>Su,LayerVariable:()=>k2,LayersModel:()=>Cr,LeakyRelu:()=>ro,Less:()=>yu,LessEqual:()=>xu,LinSpace:()=>vu,Log:()=>so,Log1p:()=>io,LogSoftmax:()=>jS,LogicalAnd:()=>wu,LogicalNot:()=>ku,LogicalOr:()=>Iu,LogicalXor:()=>qS,LowerBound:()=>pM,MathBackendCPU:()=>R1,MathBackendWebGL:()=>lk,MatrixBandPart:()=>cM,Max:()=>lo,MaxPool:()=>po,MaxPool3D:()=>Nu,MaxPool3DGrad:()=>Bc,MaxPoolGrad:()=>Wc,MaxPoolWithArgmax:()=>Vc,Maximum:()=>uo,Mean:()=>co,Min:()=>ho,Minimum:()=>mo,MirrorPad:()=>fo,Mod:()=>go,MomentumOptimizer:()=>qw,Multinomial:()=>Tu,Multiply:()=>bo,Neg:()=>Cu,NonMaxSuppressionV3:()=>_u,NonMaxSuppressionV4:()=>Au,NonMaxSuppressionV5:()=>Fu,NotEqual:()=>Eu,OP_SCOPE_SUFFIX:()=>Av,OneHot:()=>yo,OnesLike:()=>$u,Optimizer:()=>Rr,OptimizerConstructors:()=>t2,Pack:()=>Du,PadV2:()=>xo,Pool:()=>dM,Pow:()=>vo,Prelu:()=>wo,Prod:()=>ko,RMSPropOptimizer:()=>jw,RNN:()=>Mr,RaggedGather:()=>Am,RaggedRange:()=>Fm,RaggedTensorToTensor:()=>$m,Range:()=>Uc,Rank:()=>wx,Real:()=>Dm,RealDiv:()=>Hi,Reciprocal:()=>Io,Reduction:()=>wn,Relu:()=>So,Relu6:()=>Co,Reshape:()=>Ru,ResizeBilinear:()=>To,ResizeBilinearGrad:()=>Ou,ResizeNearestNeighbor:()=>No,ResizeNearestNeighborGrad:()=>Mu,Reverse:()=>Eo,RotateWithOffset:()=>Zu,Round:()=>_o,Rsqrt:()=>Ao,SGDOptimizer:()=>mf,ScatterNd:()=>Pu,SearchSorted:()=>zu,Select:()=>Wu,Selu:()=>Fo,Sequential:()=>Cf,Sigmoid:()=>Mo,Sign:()=>Ro,Sin:()=>$o,Sinh:()=>Do,Slice:()=>Bu,Softmax:()=>zo,Softplus:()=>Oo,SpaceToBatchND:()=>Vu,SparseFillEmptyRows:()=>Gc,SparseReshape:()=>Gu,SparseSegmentMean:()=>Hc,SparseSegmentSum:()=>qc,SparseToDense:()=>Hu,SplitV:()=>Uu,Sqrt:()=>Po,Square:()=>jc,SquaredDifference:()=>Wo,StaticRegexReplace:()=>Kc,Step:()=>ks,StridedSlice:()=>qu,StringNGrams:()=>Xc,StringSplit:()=>Yc,StringToHashBucketFast:()=>Zc,Sub:()=>Bo,Sum:()=>Lo,SymbolicTensor:()=>Ha,Tan:()=>Vo,Tanh:()=>Uo,Tensor:()=>Ce,TensorBuffer:()=>Wt,TensorScatterUpdate:()=>Lu,Tile:()=>ws,TopK:()=>ju,Transform:()=>Ku,Transpose:()=>Tr,Unique:()=>Jc,Unpack:()=>Xu,UnsortedSegmentSum:()=>Qc,Up
`),K=R=>U.writeSync(2,R+`
`));var Z=c.print||j,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,se=Atomics.compareExchange,ie;c.wasmBinary&&(ie=c.wasmBinary);var xe=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Vs("no native wasm support detected");var ue,ye,ke=!1,Se;function Le(R,q){R||Vs(q)}var Ue=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function mt(R,q,le){q>>>=0;for(var Ne=q+le,Me=q;R[Me]&&!(Me>=Ne);)++Me;if(Me-q>16&&R.buffer&&Ue)return Ue.decode(R.buffer instanceof SharedArrayBuffer?R.slice(q,Me):R.subarray(q,Me));for(var Fe="";q<Me;){var me=R[q++];if(!(me&128)){Fe+=String.fromCharCode(me);continue}var we=R[q++]&63;if((me&224)==192){Fe+=String.fromCharCode((me&31)<<6|we);continue}var Tt=R[q++]&63;if((me&240)==224?me=(me&15)<<12|we<<6|Tt:me=(me&7)<<18|we<<12|Tt<<6|R[q++]&63,me<65536)Fe+=String.fromCharCode(me);else{var ua=me-65536;Fe+=String.fromCharCode(55296|ua>>10,56320|ua&1023)}}return Fe}function st(R,q){return R>>>=0,R?mt(i(),R,q):""}function tt(R,q,le,Ne){if(le>>>=0,!(Ne>0))return 0;for(var Me=le,Fe=le+Ne-1,me=0;me<R.length;++me){var we=R.charCodeAt(me);if(we>=55296&&we<=57343){var Tt=R.charCodeAt(++me);we=65536+((we&1023)<<10)|Tt&1023}if(we<=127){if(le>=Fe)break;q[le++>>>0]=we}else if(we<=2047){if(le+1>=Fe)break;q[le++>>>0]=192|we>>6,q[le++>>>0]=128|we&63}else if(we<=65535){if(le+2>=Fe)break;q[le++>>>0]=224|we>>12,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}else{if(le+3>=Fe)break;q[le++>>>0]=240|we>>18,q[le++>>>0]=128|we>>12&63,q[le++>>>0]=128|we>>6&63,q[le++>>>0]=128|we&63}}return q[le>>>0]=0,le-Me}function nt(R,q,le){return tt(R,i(),q,le)}var Re,gt,Gn,Ot,ia,ln,An,oa,Fn;C&&(Re=c.buffer);function ut(R){Re=R,c.HEAP8=gt=new Int8Array(R),c.HEAP16=Ot=new Int16Array(R),c.HEAP32=ln=new Int32Array(R),c.HEAPU8=Gn=new Uint8Array(R),c.HEAPU16=ia=new Uint16Array(R),c.HEAPU32=An=new Uint32Array(R),c.HEAPF32=oa=new Float32Array(R),c.HEAPF64=Fn=new Float64Array(R)}var $n=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,Re=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:$n/65536,maximum:65536,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("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"),N&&J("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");ue&&(Re=ue.buffer),$n=Re.byteLength,ut(Re);var Hn,yr=[],ml=[],Za=[],Wp=!1;function Ia(){return xe}function Ur(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Ig(c.preRun.shift());Vp(yr)}function Jt(){Wp=!0,!C&&Vp(ml)}function Hd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Rk(c.postRun.shift());Vp(Za)}}function Ig(R){yr.unshift(R)}function Sg(R){ml.unshift(R)}function Rk(R){Za.unshift(R)}var Gr=0,fl=null,xr=null;function Ng(R){Gr++,c.monitorRunDependencies&&c.monitorRunDependencies(Gr)}function qd(R){if(Gr--,c.monitorRunDependencies&&c.monitorRunDependencies(Gr),Gr==0&&(fl!==null&&(clearInterval(fl),fl=null),xr)){var q=xr;xr=null,q()}}function Vs(R){c.onAbort&&c.onAbort(R),R="Aborted("+R+")",J(R),ke=!0,Se=1,R+=". Build with -sASSERTIONS for more info.";var q=new WebAssembly.RuntimeError(R);throw m(q),q}var Tg="data:application/octet-stream;base64,";function jd(R){return R.startsWith(Tg)}function gl(R){return R.startsWith("file://")}var gn;gn="tfjs-backend-wasm-threaded-simd.wasm",jd(gn)||(gn=F(gn));function Kd(R){try{if(R==gn&&ie)return new Uint8Array(ie);if(S)return S(R);throw"both async and sync fetching of the wasm failed"}catch(q){Vs(q)}}function Cg(){if(!ie&&(v||I)){if(typeof fetch=="function"&&!gl(gn))return fetch(gn,{credentials:"same-origin"}).then(function(R){if(!R.ok)throw"failed to load wasm binary file at '"+gn+"'";return R.arrayBuffer()}).catch(function(){return Kd(
`;return c[c.length-1]=" "+c[c.length-1]+"]"+(s?"":m),c}function ec(e){let t=[];for(let n=0;n<e.length;n+=2)t.push([e[n],e[n+1]]);return t}var Wt=class{constructor(e,t,n){if(this.dtype=t,this.shape=e.slice(),this.size=ot(e),n!=null){let a=n.length;A(a===this.size,()=>`Lengthofvalues'${a}'doesnotmatchthesizeinferredbytheshape'${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=n||Iv(t,this.size),this.strides=Xl(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`Thenumberofprovidedcoordinates(${t.length})mustmatchtherank(${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requestedoutofrangeelementat${e}.Buffershape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;a<e.length-1;++a)n+=this.strides[a]*e[a];return this.values[n]}locToIndex(e){if(this.rank===0)return 0;if(this.rank===1)return e[0];let t=e[e.length-1];for(let n=0;n<e.length-1;++n)t+=this.strides[n]*e[n];return t}indexToLoc(e){if(this.rank===0)return[];if(this.rank===1)return[e];let t=new Array(this.shape.length);for(let n=0;n<t.length-1;++n)t[n]=Math.floor(e/this.strides[n]),e-=t[n]*this.strides[n];return t[t.length-1]=e,t}get rank(){return this.shape.length}toTensor(){return za().makeTensor(this.values,this.shape,this.dtype)}},za=null,Sl=null,DM=null;function RM(e){za=e}function MM(e){Sl=e}function OM(e){DM=e}var Ce=class{constructor(e,t,n,a){this.kept=!1,this.isDisposedInternal=!1,this.shape=e.slice(),this.dtype=t||"float32",this.size=ot(e),this.strides=Xl(e),this.dataId=n,this.id=a,this.rankType=this.rank<5?this.rank.toString():"higher"}get rank(){return this.shape.length}async buffer(){let e=await this.data();return Sl.buffer(this.shape,this.dtype,e)}bufferSync(){return Sl.buffer(this.shape,this.dtype,this.dataSync())}async array(){let e=await this.data();return El(this.shape,e,this.dtype==="complex64")}arraySync(){return El(this.shape,this.dataSync(),this.dtype==="complex64")}async data(){this.throwIfDisposed();let e=za().read(this.dataId);if(this.dtype==="string"){let t=await e;try{return t.map(n=>jh(n))}catch(n){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(),za().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=za().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>jh(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 za().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),za().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Sl.print(this,e)}clone(){return this.throwIfDisposed(),Sl.clone(this)}toString(e=!1){let t=this.dataSync();return FM(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Sl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),za().makeVariable(this,e,t,n)}};Object.defineProperty(Ce,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Tv("Tensor",()=>Ce)}Q();var os=class extends Ce{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtypeofthenewvalue(${e.dtype})andpreviousvalue(${this.dtype})mustmatch`);if(!Ar(e.shape,this.shape))throw new Error(`shapeofthenewvalue(${e.shape})andpreviousvalue(${this.shape})mustmatch`);za().disposeTensor(this),this.dataId=e.dataId,za().incRef(this,null)}dispose(){za().disposeVariabl
withdtype${s.dtype}.`)}),n.length===1)return sr(n[0]);let a=n,r={axis:t};return P.runKernel(su,a,r)}var et=L({concat_:hP});function mP(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=_t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return P.runKernel(Ri,i,o)}var $e=L({matMul_:mP});function fP(e){let t={x:E(e,"x","sigmoid","float32")};return P.runKernel(Mo,t)}var ha=L({sigmoid_:fP});function gP(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return P.runKernel(Bu,r,s)}var Ve=L({slice_:gP});function bP(e){let t={x:E(e,"x","tanh","float32")};return P.runKernel(Uo,t)}var hi=L({tanh_:bP});function yP(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),u=E(a,"data","basicLSTMCell"),p=E(r,"c","basicLSTMCell"),d=E(s,"h","basicLSTMCell"),c=et([u,d],1),h=$e(c,o),m=X(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=Ve(m,[0,0],b),x=Ve(m,[0,g],b),v=Ve(m,[0,g*2],b),I=Ve(m,[0,g*3],b),N=X(z(ha(y),hi(x)),z(p,ha(X(i,v)))),C=z(hi(N),ha(I));return[N,C]}var SN=L({basicLSTMCell_:yP});function xP(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`inputrankis${a.rank}butshouldbe>thanblockShape.length${t.length}`),A(n.length===t.length,()=>`crops.lengthis${n.length}butshouldbeequaltoblockShape.length${t.length}`),A(a.shape[0]%r===0,()=>`inputtensorbatchis${a.shape[0]}butisnotdivisiblebytheproductoftheelementsofblockShape${t.join(" * ")}===${r}`);let s={x:a},i={blockShape:t,crops:n};return P.runKernel(nu,s,i)}var id=L({batchToSpaceND_:xP});function vP(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function wP(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;a!=null&&(p=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:vP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=P.runKernel(Ji,d,c);return W(h,i.shape)}var Ss=L({batchNorm_:wP});function kP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===2,()=>`ErrorinbatchNorm2D:xmustberank2butgotrank${i.rank}.`),A(o.rank===2||o.rank===1,()=>`ErrorinbatchNorm2D:meanmustberank2orrank1butgotrank${o.rank}.`),A(l.rank===2||l.rank===1,()=>`ErrorinbatchNorm2D:variancemustberank2orrank1butgotrank${l.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`ErrorinbatchNorm2D:scalemustberank2orrank1butgotrank${u.rank}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`ErrorinbatchNorm2D:offsetmustberank2orrank1butgotrank${p.rank}.`),Ss(i,o,l,p,u,s)}var qv=L({batchNorm2d_:kP});function IP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===3,()=>`ErrorinbatchNorm3D:xmustberank3butgotrank${i.rank}.`),A(o.rank===3||o.rank===1,()=>`ErrorinbatchNorm3D:meanmustberank3orrank1butgotrank${o.rank}.`),A(l.rank===3||l.rank===1,()=>`ErrorinbatchNorm3D:variancemustberank3orrank1butgotrank${l.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`ErrorinbatchNorm3D:scalemustberank3orrank1butgotrank${u.rank}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`ErrorinbatchNorm3D:offsetmustberank3orrank1butgotrank${p.rank}.`),Ss(i,o,l,
rank${s.rank}.`),A($l(t),()=>`ErrorinlocalResponseNormalization:depthRadiusmustbeanintegerbutgotdepthRadius${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=P.runKernel(oo,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var gw=L({localResponseNormalization_:$3});function D3(e){let t={x:E(e,"x","log","float32")};return P.runKernel(so,t)}var Qn=L({log_:D3});function R3(e){let t={x:E(e,"x","log1p")};return P.runKernel(io,t)}var pd=L({log1p_:R3});function M3(e){return A(ss(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(a),[a],r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Gm(i),i[0]})}}function O3(e){return A(ss(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=bc(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return P.tidy(()=>{let{value:s,grads:i}=P.gradients(()=>e(...a),a,r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Gm(i),i})}}function P3(e){return A(ss(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ce,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=P.gradients(()=>e(t),[t],n);return Gm(a),{grad:a[0],value:r}}}function L3(e){return A(ss(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ce),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ce,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=P.gradients(()=>e(...t),t,n);return n!=null&&Sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Gm(a.grads),a}}function ON(e,t){A(ss(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof os),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in P.registeredVariables)t.push(P.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads()expectsatleastoneoftheinputvariablestobetrainable,butnoneofthe${r}variablesistrainable.`);let s=!0,{value:i,grads:o}=P.gradients(e,t,null,s);A(o.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`ThefpassedinvariableGrads(f)mustreturnascalar,butitreturnedarank-${i.rank}tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function ur(e){return P.customGrad(e)}function Gm(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannotcomputegradientofy=f(x)withrespecttox.Makesurethat
thefyoupassedenclosesalloperationsthatleadfromxtoy.`)}function z3(e){let t={x:E(e,"x","neg")};return P.runKernel(Cu,t)}var yt=L({neg_:z3});function W3(e){let t={x:E(e,"x","softplus")};return P.runKernel(Oo,t)}var Go=L({softplus_:W3});function B3(e){let t=E(e,"x","logSigmoid");return ur(n=>({value:yt(Go(yt(n))),gradFunc:a=>z(a,ha(yt(n)))}))(t)}var bw=L({logSigmoid_:B3});function V3(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=_t(n,a);let r={a:n,b:a};return P.runKernel(Bo,r)}var pe=L({sub_:V3});function U3(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`LogSoftmaxalonganon-lastdimensionisnotyetsupported.Logitswasrank${n.rank}andaxiswas${t}`);return ur((a,r)=>{let s=ma(a,t,!0),i=pe(a,s),o=pe(re(i,"float32"),Qn(fe(dn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=dn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var Hm=L({logSoftmax_:U3});function G3(e,t=null,n=!1){let a=E(e,"x","logSumExp"),r=Aa(t,a.shape),s=ma(a,r,!0),i=pe(a,s),o=dn(i),l=fe(o,r),u=Qn(l),p=X(W(s,u.shape),u);if(n){let d=mi(p.shape,r);return W(p,d)}return p}var cd=L({logSumExp_:G3});function H3(e,t){let n=E(e,"a","logicalAnd","bool"),a=E(t,"b","logicalAnd","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(wu,r)}var _a=L({logicalAnd_:H3});function q3(e){let t={x:E(e,"x","logicalNot","bool")};return P.runKernel(ku,t)}var dd=L({logicalNot_:q3});function j3(e,t){let n=E(e,"a","logicalOr","bool"),a=E(t,"b","logicalOr","bool");ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(Iu,r)}var qm=L({logicalOr_:j3});function K3(e,t){let n=E(e,"a","logicalXor","bool"),a=E(t,"b","logicalXor","bool");return ct(n.shape,a.shape),_a(qm(e,t),dd(_a(e,t)))}var yw=L({logicalXor_:K3}),vh=2147483648;function X3(e,t,n="left"){let a=E(e,"sortedSequence","searchSorted"),r=E(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(ot(l.shape)>=vh)throw new Error(`valuestensorsizemustlessthan${vh}`);if(o.shape[1]>=vh)throw new Error(`trailingdim_sizemustlessthan${vh}forint32outputtype,was${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return P.runKernel(zu,u,p)}var jm=L({searchSorted_:X3});function PN(e,t){return jm(e,t,"left")}function Y3(e,t,n,a,r){let s=E(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`ErrorinmaxPool:inputmustberank4butgotrank${o.rank}.`),A(cr(n,i),()=>`ErrorinmaxPool:Eitherstridesordilationsmustbe1.Gotstrides${n}anddilations'${i}'`),Nn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=P.runKernel(po,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:Y3});function Z3(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`ErrorinmaxPool3d:xmustberank5butgotrank${o.rank}.`),A(s==="NDHWC",()=>`ErrorinmaxPool3d:OnlyNDHWCiscurrentlysupported,butgotdataFormatof${s}`),Nn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=P.runKernel(Nu,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var xw=L({maxPool3d_:Z3});function J3(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=P.runKernel(Vc,s,i);return{result:o[0],indexes:o[1]}}var LN=L({maxPoolWithArgmax_:J3});function Q3(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=re(n,"int32"),a=re(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return P.runKernel(uo,r)}var dr=L({maximum_:Q3});function eL(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return P.runKernel(co,a,r)}var Ct=L({mean_:eL});function It(e,t="float32"){
Actual:${r}.
Expected:${s}.`);for(let i=0;i<s.length;++i){let o=r[i],l=s[i];if(!n(o,l))throw new Error(`Arraysdiffer:actual[${i}]=${o},expected[${i}]=${l}.
Actual:${r}.
Expected:${s}.`)}typeof expect!="undefined"&&expect().nothing()}function EL(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function _L(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Jr(e)||Jr(e[0])||Jr(t)||Jr(t[0])?Dx(e,n,(a,r)=>a==r):Dx(e,t,(a,r)=>Tw(a,r,0))}function AL(e,t,n){if(n==null&&(n=Nw()),!Tw(e,t,n))throw new Error(`Numbersdiffer:actual===${e},expected===${t}`);typeof expect!="undefined"&&expect().nothing()}function Tw(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function FL(e,t,n){for(let a=0;a<e.length;a++)if(e[a]<t||e[a]>n)throw new Error(`Valueoutofrange:${e[a]}low:${t},high:${n}`)}function $L(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`ExpectedArrayBuffertobeoflength${a.length},butitwas${n.length}`);for(let r=0;r<a.length;r++)if(n[r]!==a[r])throw new Error(`ExpectedArrayBuffervalueat${r}tobe${a[r]}butgot${n[r]}instead`)}function QN(e){for(let t=0;t<e.length;t++){let n=e[t];Array.isArray(n)?QN(n):e[t]=nd(n)}return e}function DL(e){let t=document.createElement("video");return"playsInline"in t&&(t.playsInline=!0),t.muted=!0,t.loop=!0,t.style.position="fixed",t.style.left="0px",t.style.top="0px",t.preload="auto",t.appendChild(e),new Promise(n=>{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function RL(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var Cw=class{constructor(e,t,n,a,r){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=a,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);let s=r||Math.random();this.random=Sw.alea(s.toString())}nextValue(){if(!isNaN(this.nextVal)){let a=this.nextVal;return this.nextVal=NaN,a}let e,t,n=!1;for(;!n;){let a,r,s;do a=2*this.random()-1,r=2*this.random()-1,s=a*a+r*r;while(s>=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},ML=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Sw.alea(r.toString()),this.randn=new Cw(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),r<t||Math.log(r)<n)break}return s=1/this.beta*this.d*s,this.alpha<1&&(s*=Math.pow(this.randu(),1/this.alpha)),this.convertValue(s)}convertValue(e){return this.dtype==="float32"?e:Math.round(e)}},OL=class{constructor(e=0,t=1,n,a){if(this.canReturnFloat=()=>this.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`Thedifferencebetween${e}-${t}<=1anddtypeisnotfloat`);this.random=Sw.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function PL(e,t,n=1,a="float32",r){if(na(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupporteddatatype${a}`);let s=new ML(t,n,a,r),i=Oe(e,a);for(let o=0;o<i.values.length;o++)i.values[o]=s.nextValue();return i.toTensor()}var eT=L({randomGamma_:PL});function LL(e,t=0,n=1,a,r){if(na(e),a!=null&&a==="bool")throw new Error(`Unsupporteddatatype${a}`);let s=new Cw(t,n,a,!1,r),i=Oe(e,a);for(let o=0;o<i.values.length;o++)i.values[o]=s.nextValue();return i.toTensor()}var Km=L({randomNormal_:LL});function zL(e,t,n){if(t!=null&&t==="bool")throw new Error(`Unsupporteddatatype${t}`);return Km(e,0,1,t,n)}va
${r.shape}`);if(s.rank!==1)throw new Error(`ValuesshouldbeTensor1Dbutreceivedshape${s.shape}`);if(i.rank!==1)throw new Error(`DenseshapeshouldbeTensor1Dbutreceivedshape${i.shape}`);if(o.rank!==0)throw new Error(`Defaultvalueshouldbeascalarbutreceivedshape${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=P.runKernel(Gc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var iB=L({sparseFillEmptyRows_:sB});function oB(e,t,n){let a=E(e,"inputIndices","sparseReshape","int32"),r=E(t,"inputShape","sparseReshape","int32"),s=E(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`InputindicesshouldbeTensor2Dbutreceivedshape
${a.shape}`);if(r.rank!==1)throw new Error(`InputshapeshouldbeTensor1Dbutreceivedshape${r.shape}`);if(s.rank!==1)throw new Error(`NewshapeshouldbeTensor1Dbutreceivedshape${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=P.runKernel(Gu,i);return{outputIndices:o[0],outputShape:o[1]}}var lB=L({sparseReshape_:oB});function uB(e,t,n){let a=E(e,"data","sparseSegmentMean"),r=E(t,"indices","sparseSegmentMean","int32"),s=E(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`IndicesshouldbeTensor1Dbutreceivedshape
${r.shape}`);if(s.rank!==1)throw new Error(`SegmentidsshouldbeTensor1Dbutreceivedshape
${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(Hc,i)}var pB=L({sparseSegmentMean_:uB});function cB(e,t,n){let a=E(e,"data","sparseSegmentSum"),r=E(t,"indices","sparseSegmentSum","int32"),s=E(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`IndicesshouldbeTensor1Dbutreceivedshape
${r.shape}`);if(s.rank!==1)throw new Error(`SegmentidsshouldbeTensor1Dbutreceivedshape
${s.shape}`);let i={data:a,indices:r,segmentIds:s};return P.runKernel(qc,i)}var dB=L({sparseSegmentSum_:cB});function hB(e,t,n,a,r,s,i,o){let l=E(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Datamustbeavector,saw:${l.shape}`);let u=E(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=P.runKernel(Xc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var mB=L({stringNGrams_:hB});function fB(e,t,n=!0){let a=E(e,"input","stringSplit","string"),r=E(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`InputshouldbeTensor1Dbutreceivedshape${a.shape}`);if(r.rank!==0)throw new Error(`Delimitershouldbeascalarbutreceivedshape${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=P.runKernel(Yc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var gB=L({stringSplit_:fB});function bB(e,t){let n=E(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return P.runKernel(Zc,r,a)}var yB=L({stringToHashBucketFast_:bB});function xB(e,t,n,a=!0){let r=E(e,"input","staticRegexReplace","string"),s={pattern:t,rewrite:n,replaceGlobal:a};return P.runKernel(Kc,{x:r},s)}var vB=L({staticRegexReplace_:xB}),_T={fft:bd,ifft:Bl,rfft:yd,irfft:nf},AT={hammingWindow:Kz,hannWindow:kT,frame:IT,stft:Jz},Zn={flipLeftRight:nW,grayscaleToRGB:rW,resizeNearestNeighbor:ET,resizeBilinear:CT,rgbToGrayscale:iW,rotateWithOffset:lW,cropAndResize:eW,nonMaxSuppression:pW,nonMaxSuppressionAsync:yW,nonMaxSuppressionWithScore:vW,nonMaxSuppressionWithScoreAsync:kW,nonMaxSuppressionPadded:SW,nonMaxSuppressionPaddedAsync:TW,threshold:FW,transform:DW},Bw={bandPart:MW,gramSchmidt:PW,qr:zW},FT={absoluteDifference:VW,computeWeightedLoss:Dr,cosineDistance:GW,hingeLoss:qW,huberLoss:KW,logLoss:YW,meanSquaredError:JW,sigmoidCrossEntropy:tB,softmaxCrossEntropy:rB},$T={sparseFillEmptyRows:iB,sparseReshape:lB,sparseSegmentMean:pB,sparseSegmentSum:dB},DT={stringNGrams:mB,stringSplit:gB,stringToHashBucketFast:yB,staticRegexReplace:vB},ne={};_e(ne,{Serializable:()=>RT,SerializationMap:()=>MT,getRegisteredName:()=>kB,registerClass:()=>OT});var wB=new Map,Rx=new Map,RT=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},MT=class Tl{constructor(){this.classNameMap={}}static getMap(){return Tl.instance==null&&(Tl.instance=new Tl),Tl.instance}static register(t){Tl.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function OT(e,t,n){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),typeof t=="undefined"&&(t="Custom"),typeof n=="undefined"&&(n=e.className);let a=n,r=t+">"+a;return MT.register(e),wB.set(r,e),Rx.set(e,r),e}function kB(e){return Rx.has(e)?Rx.get(e):e.className}var Rr=class extends RT{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return Ee(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return ON(e,t)}dispose(){this.iterations_!=null&&Ee(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ve(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights()isnotimplementedforthisoptimizerclass${this.getClassName()}`)}async extractI
ManifestJSONhasweightswithnames:${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;u.push(f)})});let p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=new Fr(p.slice(c,c+m));s[h].forEach(g=>{let b=f.slice(g.groupOffset,g.groupOffset+g.sizeBytes),y=lN(b,[g.manifestEntry]);for(let x in y)d[x]=y[x]}),c+=m}),d}}var RB="application/octet-stream",MB="application/json",Kw=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(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=G().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URLpathsforhttpmusthavealengthof2,(actuallengthis${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||{},this.loadOptions=t}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 n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=cN(e,n);if(t.body.append("model.json",new Blob([JSON.stringify(a)],{type:MB}),"model.json"),e.weightData!=null){let s=Fr.join(e.weightData);t.body.append("model.weights.bin",new Blob([s],{type:RB}),"model.weights.bin")}let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:rd(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save()failedduetoHTTPresponsestatus${r.status}.`)}async loadModelJSON(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Requestto${this.path}failedwithstatuscode${e.status}.PleaseverifythisURLpointstothemodelJSONofthemodeltoload.`);let t;try{t=await e.json()}catch(r){let s=`FailedtoparsemodelJSONofresponsefrom${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 n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`TheJSONfromHTTPpath${this.path}containsneithermodeltopologyormanifestforweights.`);return t}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let e=await this.loadModelJSON();return Rv(e,t=>this.loadWeights(t))}async loadStream(){let e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),n=Ex(e.weightsManifest),a=()=>$B(t,this.loadOptions);return Object.assign(Object.assign({},e),{weightSpecs:n,getWeightStream:a})}async getWeightUrls(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=OB(t),r=this.weightPathPrefix||n,s=[],i=[];for(let o of e)for(let l of o.paths)this.weightUrlConverter!=null?i.push(this.weightUrlConverter(l)):s.push(r+l+a);return this.weightUrlConverter&&s.push(...await Promise.all(i)),s}async loadWeights(e){let t=await this.getWeightUrls(e),n=Ex(e),a=await PT(t,this.loadOptions);return[n,a]}};Kw.URL_SCHEME_REGEX=/^https?:\/\//;function OB(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Ox(e){return e.match(Kw.URL_SCHEME_REGEX)!=null}var zT=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Ox(a)
indices.shape[0]=${e}`}function q4(e,t){return`indices(${e},0)isinvalid:${t}<0`}function j4(e,t,n){return`indices(${e},0)isinvalid:${t}>=${n}`}function K4(e,t){return`onlyoneoutputdimensionmaybe-1,notboth${e}and${t}`}function X4(e,t){return`size${e}mustbenon-negative,not${t}`}function Y4(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function Z4(e,t){let n=ot(e),a=ot(t);return`InputtoreshapeisaSparseTensorwith${n}
densevalues,buttherequestedshaperequiresamultipleof${a}.inputShape=${e}outputShape=${t}`}function J4(e,t){let n=ot(e),a=ot(t);return`Inputtoreshapeisatensorwith${n}densevalues,buttherequestedshapehas${a}.inputShape=${e}outputShape=${t}`}function Q4(){return"segment ids must be >= 0"}function eV(){return"segment ids are not increasing"}function tV(e,t){return`Segmentid${e}outofrange[0,${t}),possiblybecausesegmentIdsinputisnotsorted.`}function nV(e,t,n){return`Bad:indices[${e}]==${t}outofrange[0,${n})`}var r2={};_e(r2,{collectGatherOpShapeInfo:()=>sV,computeOutShape:()=>rV,segOpComputeOptimalWindowSize:()=>aV});function aV(e,t){let n=!1,a;for(e<=Jw?(a=e,n=!0):a=Gh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Gh(e,a+1);return a}function rV(e,t,n){let a=[],r=e.length;for(let s=0;s<r;s++)s!==t?a.push(e[s]):a.push(n);return a}function sV(e,t,n,a){let r=t.shape.length,s=e.shape.length;if(a!==0&&(a<-r||a>r))throw new Error(`ExpectbatchDimsintherangeof[-${r},${r}],butgot${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims(${a})mustbelessthanrank(x)(
2.Thecustom${a}isdefinedinJavaScript,butisnotregisteredproperlywithtf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new V(`${a}:Improperconfigformat:${JSON.stringify(s)}.
'className'and'config'mustset.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in Sa?[o,l]=Sa.className:i in t&&([o,l]=t[i]),o==null)throw new V(`Unknown${a}:${i}.Thismaybeduetooneofthefollowingreasons:
2.Thecustom${a}isdefinedinJavaScript,butisnotregisteredproperlywithtf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(Sa))u[h]=Sa[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Sa);for(let h of Object.keys(n))Sa[h]=n[h];Lx(s.config);let c=l(o,s.config,n,r);return Sa=Object.assign({},d),c}else{let u=Object.assign({},Sa);for(let d of Object.keys(n))Sa[d]=n[d];let p=new o(s.config);return Sa=Object.assign({},u),p}}}function hG(e,t){return e<t?-1:e>t?1:0}function wh(e,t){return-1*hG(e,t)}function as(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function mG(e){if(e==null)throw new V(`Invalidvalueinobj:${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Ko(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n}isnotavalid${t}.Validvaluesare${e}ornull/undefined.`)}function e0(e,t,n=0,a=1/0){return tr(n>=0),tr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function tn(e,t){Array.isArray(e)?(w.assert(e.length>0,()=>`${t}isunexpectedlyanemptyarray.`),e.forEach((n,a)=>tn(n,`element${a+1}of${t}`))):w.assert(Number.isInteger(e)&&e>0,()=>`Expected${t}tobeapositiveinteger,butgot${h2(e)}.`)}function h2(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>h2(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function fG(e,t,n){let a=n!=null?n():w.now(),r;return(...s)=>{let i=n!=null?n():w.now();return i-a<t||(a=i,r=e(...s)),r}}function m2(e){return e==="relu"?"relu":e==="linear"?"linear":e==="elu"?"elu":null}var gG=0;function f2(){return gG++}var kh={};function ff(e=""){return e in kh||(kh[e]=0),kh[e]+=1,e+kh[e].toString()}var bG=["channelsFirst","channelsLast"],yG=["nearest","bilinear"],xG=["valid","same","causal"],vG=["max","avg"],wG=["sum","mul","concat","ave"],kl=new Map;function Rt(e){Ko(bG,"DataFormat",e)}function kG(e){Ko(yG,"InterpolationFormat",e)}function va(e){Ko(xG,"PaddingMode",e)}function g2(e){Ko(vG,"PoolMode",e)}var pc=[],gI="/";function ai(e,t){pc.push(e);try{let n=t();return pc.pop(),n}catch(n){throw pc.pop(),n}}function IG(){return pc.length===0?"":pc.join(gI)+gI}function b2(e){if(!x2(e))throw new Error("Not a valid tensor name: '"+e+"'");return IG()+e}function y2(e){if(!x2(e))throw new Error("Not a valid tensor name: '"+e+"'");kl.has(e)||kl.set(e,0);let t=kl.get(e);if(kl.set(e,kl.get(e)+1),t>0){let n=`${e}_${t}`;return kl.set(n,1),n}else return e}var SG=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function x2(e){return!!e.match(SG)}function NG(e){return e===parseInt(e.toString(),10)}function rs(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;r<n;++r)a*=e[r];return a}function Ul(e){if(e.length===0)return Number.NaN;let t=Number.POSITIVE_INFINITY;for(let n=0;n<e.length;n++){let a=e[n];a<t&&(t=a)}return t}function ds(e){if(e.length===0)return Number.NaN;let t=Number.NEGATIVE_INFINITY;for(let n=0;n<e.length;n++){let a=e[n];a>t&&(t=a)}return t}function Ua(e,t){if(t<e)throw new V(`end(${t})<begin(${e})isforbidden.`);let n=[];for(let a=e;a<t;++a)n.push(a);return n}var ux;function jt(){return ux==null&&(ux=$v().epsilon()),ux}function Ga(){return"channelsLast"}function ir(e,t){return re(e,t)}function wd(e,t=-1){let n=e.shape.slice();return t<0&&(t=n.length+t+1),n.splice(t,0,1),W(e,n)}function TG(e,t){return O(()=>{if(e.shape.length!==2)throw new V(`repeat()expectsarank-2tensor,butreceivedarank-${e.shape.length}tensor.`);let n=wd(e,1);return zx(n,[1,t,1])})}function CG(e){let t=[rs(e.shape)];return W(e,t)}function EG(e){if(e.rank<=1)throw new V(`batchFlattenrequiresaminimumrankof2.Gotrank:${e.rank}.`);let t=[e.shape[0],rs(e.shape,1)];return W(e,t)}function ri(e,t,n){return O(()=>{switch(e.rank){case 1:return gd(e,t,n);case 2:return tf(e,[t,0],[n,e.shape[1]]);case 3:return Ho(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Wl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Ve(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);cas
ReceivedcountWeights=${t.countWeights}`);n=Te(t.countWeights)}let a=ma(e),r=Ol(e),s=Tn(this.numTokens,a).bufferSync().get(0),i=$r(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Inputvaluesmustbebetween0<values<=numTokenswithnumTokens=${this.numTokens}`);return N6(e,this.outputMode,this.numTokens,n)})}};I1.className="CategoryEncoding";ne.registerClass(I1);var T6=["bilinear","nearest"],RI=new Set(T6),S1=class extends We{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(RI.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalidinterpolationparameter:${e.interpolation}isnotimplemented`);else this.interpolation="bilinear";this.cropToAspectRatio=!!e.cropToAspectRatio}computeOutputShape(e){e=Je(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return O(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return Zn.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Zn.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolationis${this.interpolation}butonly${[...RI]}aresupported`)})}};S1.className="Resizing";ne.registerClass(S1);var TC=class{constructor(e){this.seed=e}next(){if(this.seed!==void 0)return this.seed++}};TC.className="RandomSeed";var CC=class extends We{constructor(e){super(e),this.randomGenerator=new TC(e.seed)}getConfig(){let e={seed:this.randomGenerator.seed},t=super.getConfig();return Object.assign(e,t),e}};CC.className="BaseRandomLayer";var C6=["bilinear","nearest"],MI=new Set(C6),N1=class extends CC{constructor(e){super(e);let{factor:t,interpolation:n="bilinear"}=e;if(this.factor=t,Array.isArray(this.factor)&&this.factor.length===2)this.widthLower=this.factor[0],this.widthUpper=this.factor[1];else if(!Array.isArray(this.factor)&&this.factor>0)this.widthLower=-this.factor,this.widthUpper=this.factor;else throw new V(`Invalidfactor:${this.factor}.Mustbepositivenumberortupleof2numbers`);if(this.widthLower<-1||this.widthUpper<-1)throw new V(`factormusthavevalueslargerthan-1.Got:${this.factor}`);if(this.widthUpper<this.widthLower)throw new V(`factorcannothaveupperboundlessthanlowerbound.
Gotupperbound:${this.widthUpper}.
Gotlowerbound:${this.widthLower}
`);if(n)if(MI.has(n))this.interpolation=n;else throw new V(`Invalidinterpolationparameter:${n}isnotimplemented`)}getConfig(){let e={factor:this.factor,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e[2];return[this.imgHeight,-1,t]}call(e,t){return O(()=>{let n=Te(e);this.imgHeight=n.shape[n.shape.length-3];let a=n.shape[n.shape.length-2];this.widthFactor=Cs([1],1+this.widthLower,1+this.widthUpper,"float32",this.randomGenerator.next());let r=this.widthFactor.dataSync()[0]*a;r=Math.round(r);let s=[this.imgHeight,r];switch(this.interpolation){case"bilinear":return Zn.resizeBilinear(e,s);case"nearest":return Zn.resizeNearestNeighbor(e,s);default:throw new Error(`Interpolationis${this.interpolation}
butonly${[...MI]}aresupported`)}})}};N1.className="RandomWidth";ne.registerClass(N1);function E6(e){return new rp(e)}function _6(e){return new T0(e)}function A6(e){return new I0(e)}function F6(e){return new S0(e)}function $6(e){return new N0(e)}function D6(e){return new E0(e)}function R6(e){return new C0(e)}function M6(e){return new D0(e)}function O6(e){return new _f(e)}function P6(e){return new A0(e)}function L6(e){return new Af(e)}function z6(e){return new F0(e)}function W6(e){return new $0(e)}function B6(e){return new R0(e)}function V6(e){return new M0(e)}function U6(e){return new O0(e)}function G6(e){return new G0(e)}function H6(e){return new V0(e)}function q6(e){return new Mf(e)}function j6(e){return new B0(e)}function K6(e){return new U0(e)}function X6(e){return new H0(e)}function Y6(e){return new q0(e)}function Z6(e){return new j0(e)}function J6(e){return new X0(e)}function Q6(e){return new Y0(e)}function eq(e){return new J0(e)}function tq(e){return new t1(e)}function nq(e){return new Q0(e)}function aq(e){return new e1(e)}function rq(e){return new Z0(e)}function sq(e){return new n1(e)}function iq(e){return new i1(e)}function oq(e){return new o1(e)}function lq(e){return new l1(e)}function T1(e){return new p1(e)}function uq(e){return T1(e)}function pq(e){return T1(e)}function C1(e){return new d1(e)}function cq(e){return C1(e)}function dq(e){return C1(e)}function E1(e){return new m1(e)}function hq(e){return E1(e)}function mq(e){return E1(e)}function fq(e){return new f1(e)}function gq(e){return new b1(e)}function EC(e){return new g1(e)}function _C(e){return new y1(e)}function AC(e){return new u1(e)}function FC(e){return new c1(e)}function bq(e){return new h1(e)}function yq(e){return new L0(e)}function xq(e){return new $f(e)}function vq(e){return new z0(e)}function wq(e){return new Cd(e)}function kq(e){return new P0(e)}function Iq(e){return new Ff(e)}function Sq(e){return new W0(e)}function Nq(e){return new Rf(e)}function Tq(e){return new Mr(e)}function Cq(e){return new Df(e)}function Eq(e){return new v1(e)}function _q(e){return new x1(e)}var Aq=EC,Fq=_C,$q=AC,Dq=FC;function Rq(e){return new a1(e)}function Mq(e){return new r1(e)}function Oq(e){return new s1(e)}function Pq(e){return new K0(e)}function Lq(e){return new w1(e)}function zq(e){return new k1(e)}function Wq(e){return new S1(e)}function Bq(e){return new I1(e)}function Vq(e){return new N1(e)}var $C={};_e($C,{MAPE:()=>Qq,MSE:()=>nj,binaryAccuracy:()=>Uq,binaryCrossentropy:()=>Gq,categoricalAccuracy:()=>qq,categoricalCrossentropy:()=>jq,cosineProximity:()=>Yq,mape:()=>ej,meanAbsoluteError:()=>Zq,meanAbsolutePercentageError:()=>Jq,meanSquaredError:()=>tj,mse:()=>aj,precision:()=>Kq,recall:()=>Xq,sparseCategoricalAccuracy:()=>Hq});function Uq(e,t){return b0(e,t)}function Gq(e,t){return P2(e,t)}function Hq(e,t){return L2(e,t)}function qq(e,t){return y0(e,t)}function jq(e,t){return x0(e,t)}function Kq(e,t){return O2(e,t)}function Xq(e,t){return CH(e,t)}function Yq(e,t){return g0(e,t)}function Zq(e,t){return Nf(e,t)}function Jq(e,t){return sp(e,t)}function Qq(e,t){return sp(e,t)}function ej(e,t){return sp(e,t)}function tj(e,t){return Xo(e,t)}function nj(e,t){return Xo(e,t)}function aj(e,t){return Xo(e,t)}var DC={};_e(DC,{modelFromJSON:()=>a6});var RC={};_e(RC,{l1:()=>sj,l1l2:()=>rj,l2:()=>ij});function rj(e){return new Nd(e)}function sj(e){return p6(e)}function ij(e){return c6(e)}var MC=class extends Gl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Cr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Nh(e,t){return e<t}function OI(e,t){return e>t}var OC=class extends MC{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new ze("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStoppingmode'${this.
becausethevaluedtypeis${t.dtype},butTensorArraydtypeis${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Ca(this.elementShape,t.shape,`TensorArray${this.name}:CouldnotwritetoTensorArrayindex${e}.`),n.read)throw new Error(`TensorArray${this.name}:CouldnotwritetoTensorArrayindex${e},becauseithasalreadybeenread.`);if(n.written)throw new Error(`TensorArray${this.name}:CouldnotwritetoTensorArrayindex${e},becauseithasalreadybeenwritten.`);n.tensor=t,Ht(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray${this.name}:couldnotwritemultipletensors,becausetheindexsize:${e.length}isnotthesameastensorssize:${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(t&&t!==this.dtype)throw new Error(`TensorArraydtypeis${this.dtype}butgatherrequesteddtype${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a<this.size();a++)e.push(a)}if(e.length===0)return bn([],[0].concat(this.elementShape));let n=this.readMany(e);return Ca(this.elementShape,n[0].shape,"TensorArray shape mismatch: "),At(n,0)}concat(e){if(e&&e!==this.dtype)throw new Error(`TensorArraydtypeis${this.dtype}butconcatrequesteddtype${e}`);if(this.size()===0)return bn([],[0].concat(this.elementShape));let t=[];for(let a=0;a<this.size();a++)t.push(a);let n=this.readMany(t);return Ca(this.elementShape,n[0].shape,`TensorArrayshapemismatch:tensorarrayshape(${this.elementShape})vsfirsttensorshape(${n[0].shape})`),et(n,0)}scatter(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArraydtypeis${this.dtype}buttensorhasdtype${t.dtype}`);if(e.length!==t.shape[0])throw new Error(`Expectedlen(indices)==tensor.shape[0],butsaw:${e.length}vs.${t.shape[0]}`);let n=Math.max(...e);if(!this.dynamicSize&&n>=this.maxSize)throw new Error(`Maxindexmustbe<arraysize(${n}vs.${this.maxSize})`);this.writeMany(e,dt(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArraydtypeis${this.dtype}buttensorhasdtype${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expectedsumoflengthstobeequalto
tensor.shape[0],butsumoflengthsis
${n},andtensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray'ssizeisnotequaltothesizeoflengths(${this.maxSize}vs.${e.length}),andtheTensorArrayisnotmarkedasdynamicallyresizeable`);let r=n===0?0:t.size/n,s=[];O(()=>{t=W(t,[1,n,r]);for(let o=0;o<e.length;++o){let l=[0,o===0?0:a[o-1],0],u=[1,e[o],r];s[o]=W(Ve(t,l,u),this.elementShape)}return s});let i=[];for(let o=0;o<e.length;o++)i[o]=o;this.writeMany(i,s)}},Pf=class sv{get id(){return this.idTensor.id}constructor(t,n,a,r=-1){this.tensors=t,this.elementShape=n,this.elementDtype=a,t!=null&&t.forEach(s=>{if(a!==s.dtype)throw new Error(`Invaliddatatypes;opelements${a},butlistelements${s.dtype}`);Ca(n,s.shape,"TensorList shape mismatch: "),Ht(s)}),this.idTensor=ve(0),this.maxNumElements=r,Ht(this.idTensor)}copy(){return new sv([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(n=>{(t==null||!t.has(n.id))&&n.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,n,a=-1){if(n!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${n},butlistelements${this.elementDtype}`);if(a!==-1&&this.tensors.length!==a)throw new Error(`Operationexpectedalistwith${a}elementsbutgotalistwith${this.tensors.length}elements.`);Ca(t,this.elementShape,"TensorList shape mismatch: ");let r=Zp(this.elementShape,this.tensors,t);return O(()=>{let s=this.tensors.map(i=>W(i,r));return At(s,0)})}popBack(t,n){if(n!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${n},butlistelements${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let a=Zp(this.elementShape,this.tensors,t),r=this.tensors.pop();return r.kept=!1,Ca(r.shape,t,"TensorList shape mismatch: "),W(r,a)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${t.dtype},butlistelements${this.elementDtype}`);if(Ca(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Ht(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResizeexpectssizetobenon-negative.Got:${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResizeinputsize${t}isgreatermaxNumElement${this.maxNumElements}.`);let n=new sv([],this.elementShape,this.elementDtype,this.maxNumElements);n.tensors.length=t;for(let a=0;a<Math.min(this.tensors.length,t);++a)n.tensors[a]=this.tensors[a];return n}getItem(t,n,a){if(a!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${a},butlistelements${this.elementDtype}`);if(t<0||t>this.tensors.length)throw new Error(`Tryingtoaccesselement${t}inalistwith${this.tensors.length}elements.`);if(this.tensors[t]==null)throw new Error(`elementatindex${t}isnull.`);Ca(this.tensors[t].shape,n,"TensorList shape mismatch: ");let r=Zp(this.elementShape,this.tensors,n);return W(this.tensors[t],r)}setItem(t,n){if(n.dtype!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${n.dtype},butlistelements${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Tryingtosetelement${t}inalistwithmax${this.maxNumElements}elements.`);Ca(this.elementShape,n.shape,"TensorList shape mismatch: "),Ht(n),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=n}gather(t,n,a){if(n!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${n},butlistelements${this.elementDtype}`);Ca(this.elementShape,a,"TensorList shape mismatch: "),t=t.slice(0,this.size());let r=Zp(this.elementShape,this.tensors,a);return t.length===0?bn([],[0].concat(r)):O(()=>{let s=t.map(i=>W(this.tensors[i],r));return At(s,0)})}concat(t,n){if(t&&t!==this.elementDtype)throw new Error(`TensorListdtypeis${this.elementDtype}butconcatrequesteddtype${t}`);Ca(this.elementShape,n,"TensorList shape mismatch: ");let a=Zp(th
${e}`);let a;return this.size===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Kn(async()=>(await n.iterator()).columnMajorBatch(e,t,H5),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Kn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Kn(async()=>(await t.iterator()).filter(a=>O(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Kn(async()=>(await t.iterator()).map(n=>O(()=>e(n))),this.size)}mapAsync(e){let t=this;return Kn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Kn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Kn(async()=>{let a=$1(async()=>({value:await t.iterator(),done:!1}));return _5(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size<e||e===void 0||e<0)?n=0:n=null,Kn(async()=>(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);leta=this,r=w5.alea(t||w.now().toString());returnKn(async()=>{lets=r.int32();returnn&&(s+=r.int32()),(awaita.iterator()).shuffle(e,s.toString())},this.size)}take(e){lett=this,n;returnthis.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Kn(async()=>(awaitt.iterator()).take(e),n)}asynctoArray(){if(this.size===1/0)thrownewError("Can not convert infinite data stream to array.");return(awaitthis.iterator()).toArray()}asynctoArrayForTest(){if(this.size===1/0)thrownewError("Can not convert infinite data stream to array.");return(awaitthis.iterator()).toArrayForTest()}};ip.MAX_BUFFER_SIZE=1e4;functionKn(e,t=null){returnnewclassextendsip{constructor(){super(...arguments),this.size=t}asynciterator(){returne()}}}functionU5(e){returnKn(async()=>hE(e),e.length)}functionG5(e){if(!Hl(e))thrownewError("The argument to zip() must be an object or array.");lett;if(Array.isArray(e))for(letn=0;n<e.length;n++)t=t==null?e[n].size:Math.min(t,e[n].size);elseif(einstanceofObject)for(letnine)t=t==null?e[n].size:Math.min(t,e[n].size);returnKn(async()=>{letn=awaituE(e,a=>{if(ainstanceofip)return{value:a.iterator(),recurse:!1};if(Hl(a))return{value:null,recurse:!0};thrownewError("Leaves of the structure passed to zip() must be Datasets, not primitives.")});returnA5(n,es.SHORTEST)},t)}functionH5(e){if(e===null)returnnull;lett=e[0];returnN5(t)?{value:q5(e),recurse:!1}:{value:null,recurse:!0}}functionq5(e){if(e.length===0)thrownewError("Can't make a batch of zero elements.");returne[0]instanceofCe?At(e):bn(e)}vargE=classextendsip{constructor(e){super(),this.input=e}asynciterator(){return(awaitthis.input.iterator()).decodeUTF8().split(`
`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},Ch='"',Jp=Symbol("out"),KI=Symbol("field"),Eh=Symbol("quote"),gx=Symbol("quoteafterquote"),XI=Symbol("quoteinquote"),bE=class extends ip{async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&w.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(w.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new gE(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(w.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r<this.fullColumnNames.length;r++){let s=this.fullColumnNames[r],i=this.columnConfigs?this.columnConfigs[s]:null;if(!(this.configuredColumnsOnly&&!i)){let o=t[r],l=null;if(o==="")if(i&&i.default!==void 0)l=i.default;else{if(i&&(i.required||i.isLabel))throw new Error(`Requiredcolumn${s}isemptyinthisline:${e}`);l=void 0}else{let u=Number(o);if(isNaN(u))i&&i.dtype==="bool"?l=this.getBoolean(o):l=o;else if(!i||!i.dtype)l=u;else switch(i.dtype){case"float32":l=u;break;case"int32":l=Math.floor(u);break;case"bool":l=this.getBoolean(o);break;default:l=u}}i&&i.isLabel?a[s]=l:n[s]=l}}return Object.keys(a).length===0?n:{xs:n,ys:a}}getBoolean(e){return e==="1"||e.toLowerCase()==="true"?1:0}parseRow(e,t=!0){let n=[],a=0,r=e.length,s=Jp;for(let i=0;i<r;i++)switch(s){case Jp:switch(e.charAt(i)){case Ch:a=i+1,s=Eh;break;case this.delimiter:if(a=i+1,this.delimiter===" "&&this.delimWhitespace)break;n.push(""),s=Jp;break;default:s=KI,a=i;break}break;case KI:switch(e.charAt(i)){case this.delimiter:n.push(e.substring(a,i)),s=Jp,a=i+1;break;default:}break;case Eh:switch(e.charAt(i)){case Ch:s=gx;break;default:}break;case gx:switch(e.charAt(i)){case this.delimiter:n.push(e.substring(a,i-1)),s=Jp,a=i+1;break;case Ch:s=Eh;break;default:s=XI;break}break;case XI:switch(e.charAt(i)){case Ch:s=Eh;break;default:}break;default:}if(s===gx?n.push(e.substring(a,r-1)):n.push(e.substring(a)),t&&n.length!==this.fullColumnNames.length)throw new Error(`Invalidrowincsvfile.Shouldhave${this.fullColumnNames.length}elementsinarow,butgot${n}`);return n}},j5=class yE extends rn{constructor(t){super(),this.microphoneConfig=t,this.isClosed=!1,this.fftSize=t.fftSize||1024;let n=Math.log2(this.fftSize);if(this.fftSize<0||n<4||n>14||!Number.isInteger(n))throw new Error(`Invalidff
============================
Hi,lookslikeyouarerunningTensorFlow.jsinNode.js.Tospeedthingsupdramatically,installournodebackend,visithttps://github.com/tensorflow/tfjs-node for more details.
============================`));let r={id:this.nextDataId()};return this.data.set(r,{values:t,dtype:a,refCount:1}),r}makeTensorInfo(t,n,a){let r;if(n==="string"&&a!=null&&a.length>0&&w.isString(a[0])){let s=a.map(i=>w.encodeString(i));r=this.write(s,t,n)}else r=this.write(a,t,n);return{dataId:r,shape:t,dtype:n}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let n=this.data.get(t);n.refCount++}decRef(t){if(this.data.has(t)){let n=this.data.get(t);n.refCount--}}move(t,n,a,r,s){this.data.set(t,{values:n,dtype:r,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:n,complexTensorInfos:a}=this.data.get(t);if(n==="complex64"){let r=this.readSync(a.real.dataId),s=this.readSync(a.imag.dataId);return T.mergeRealAndImagArrays(r,s)}return w.convertBackendValuesAndArrayBuffer(this.data.get(t).values,n)}bufferSync(t){let n=this.readSync(t.dataId);if(t.dtype==="string")try{let a=n.map(r=>w.decodeString(r));return Oe(t.shape,t.dtype,a)}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(t.shape,t.dtype,n)}makeOutput(t,n,a){return Ta().makeTensorFromTensorInfo(this.makeTensorInfo(n,a,t),this)}disposeData(t,n=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!n&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:a}=this.data.get(t);a!=null&&(this.disposeData(a.real.dataId,!0),this.disposeData(a.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let n=w.now();return t(),{kernelMs:w.now()-n}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(t){ge([t],"where");let n=this.readSync(t.dataId);return lK(t.shape,n)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};R1.nextDataId=0;var M1={};_e(M1,{addImpl:()=>_E,bincountImpl:()=>P1,bincountReduceImpl:()=>AE,bitwiseAndImpl:()=>FE,castImpl:()=>EE,ceilImpl:()=>$E,concatImpl:()=>L1,equalImpl:()=>DE,expImpl:()=>ME,expm1Impl:()=>PE,floorDivImpl:()=>zE,floorImpl:()=>LE,gatherNdImpl:()=>WE,gatherV2Impl:()=>BE,greaterEqualImpl:()=>UE,greaterImpl:()=>VE,lessEqualImpl:()=>HE,lessImpl:()=>GE,linSpaceImpl:()=>qE,logImpl:()=>jE,maxImpl:()=>KE,maximumImpl:()=>XE,minimumImpl:()=>YE,multiplyImpl:()=>z1,negImpl:()=>ZE,notEqualImpl:()=>JE,prodImpl:()=>QE,raggedGatherImpl:()=>e_,raggedRangeImpl:()=>t_,raggedTensorToTensorImpl:()=>n_,rangeImpl:()=>B1,rsqrtImpl:()=>a_,scatterImpl:()=>ti,sigmoidImpl:()=>o8,simpleAbsImpl:()=>CE,sliceImpl:()=>um,sparseFillEmptyRowsImpl:()=>s_,sparseReshapeImpl:()=>i_,sparseSegmentReductionImpl:()=>V1,sqrtImpl:()=>p8,squaredDifferenceImpl:()=>o_,staticRegexReplaceImpl:()=>l_,stridedSliceImpl:()=>u_,stringNGramsImpl:()=>U1,stringSplitImpl:()=>G1,stringToHashBucketFastImpl:()=>H1,subImpl:()=>p_,tileImpl:()=>c_,topKImpl:()=>h_,transposeImpl:()=>W1,uniqueImpl:()=>j1});function CE(e){let t=new Float32Array(e.length);for(let n=0;n<e.length;++n)t[n]=Math.abs(e[n]);return t}var uK=e=>{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(w.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=CE(r),n.makeOutput(a,t.shape,t.dtype)},pK={kernelName:Yl,backendName:"cpu",kernelFunc:uK};function Mt(e){return(t,n,a,r,s)=>{let i=T.assertAndGetBroadcastShape(t,n),o=i.length,l=w.computeStrides(i),u=w.sizeFromShape(i),p=w.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=w.computeStrides(t),m=w.computeStrides(n),f=T.getBroadcastDims(t,i),g=T.getBroadcastDims(n,i);if(f.length+g.length===0)for(let b=0;b<p.length;++b)p[b]=e(a[b%a.length],r[b%r.length]);else for(let b=0;b<p.length;++b){let y=w.indexToLoc(b,o,l),x=y.slice(-d);f.forEach(C=>x[C]=0);let v=w.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let N=w.locToIndex(I,c,m);p[b]=e(a[v],r[N])}return[p,i]}}function Yn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.
${s.shape}`);if(a.shape.length!==2)throw new Error(`Indicesmustbeamatrix,saw:
${a.shape}`);if(r.shape.length!==1)throw new Error(`Valuesmustbeavector,saw:
${r.shape}`);if(i.shape.length!==0)throw new Error(`Defaultvaluemustbeascalar,saw:
${i.shape}`);let o=n.data.get(a.dataId).values,l=n.data.get(r.dataId).values,u=n.data.get(s.dataId).values,p=n.data.get(i.dataId).values[0],[d,c,h,m,f]=s_(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var qZ={kernelName:Gc,backendName:"cpu",kernelFunc:HZ};function jZ(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Inputindicesshouldbeamatrixbutreceivedshape
${a.shape}`);if(r.shape.length!==1)throw new Error(`Inputshapeshouldbeavectorbutreceivedshape
${r.shape}`);if(s.shape.length!==1)throw new Error(`Targetshapeshouldbeavectorbutreceivedshape${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=i_(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var KZ={kernelName:Gu,backendName:"cpu",kernelFunc:jZ};function XZ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indicesshouldbeavectorbutreceivedshape
${r.shape}`);if(s.shape.length!==1)throw new Error(`Segmentidsshouldbeavectorbutreceivedshape
${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=V1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var YZ={kernelName:Hc,backendName:"cpu",kernelFunc:XZ};function ZZ(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indicesshouldbeavectorbutreceivedshape
${r.shape}`);if(s.shape.length!==1)throw new Error(`Segmentidsshouldbeavectorbutreceivedshape
${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=V1(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var JZ={kernelName:qc,backendName:"cpu",kernelFunc:ZZ};function QZ(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),b=!!n.data.get(i.dataId).values[0];f=ti(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ti(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ti(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=w.decodeString(n.data.get(i.dataId).values[0]);f=ti(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupportedtype${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var eJ={kernelName:Hu,backendName:"cpu",kernelFunc:QZ};function tJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=xi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var nJ={kernelName:Uu,backendName:"cpu",kernelFunc:tJ},aJ={kernelName:jc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i<r.length;++i){let o=r[i];s[i]=o*o}return{dataId:a.write(s,n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}},rJ=lt(ks,(e,t)=>{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),sJ={kernelName:ks,backendName:"cpu",kernelFunc:rJ};function iJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=xt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Inputmusthaverankatleast1,got:${r.shape.length}`);let N=Kt.computeOutShape(y,x,v),C=xi({inputs:{x:r},backend:n,attrs:{begin:y,size:N}});I=xt({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let N=n.bufferSync(r),C=u_(h,N,v,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var oJ={kernelName:qu,backendName:"cpu",kernelFunc:iJ};function lJ(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=U1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var uJ={kernelName:Xc,backendName:"cpu",kernelFunc:lJ};function pJ(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Inputmustbeavector,gotshape:${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimitermustbeascalar,gotshape:${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=G1(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var cJ={kernelName:Yc,backendName:"cpu",kernelFunc:pJ};function dJ(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=H1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var hJ={kernelName:Zc,backendName:"cpu",kernelFunc:dJ},mJ=lt(Vo,e=>Math.tan(e)),fJ={kernel
`))}function O_(e){return Or(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function P_(e,t){if(de(e,()=>e.linkProgram(t)),!G().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Oh(e,t){if(de(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function L_(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function z_(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return de(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),de(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function jJ(){return G().getNumber("WEBGL_VERSION")===2?1:4}function W_(e){return Or(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function B_(e,t){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function V_(e){return Or(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function uv(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(de(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),de(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),de(e,()=>e.enableVertexAttribArray(o)),!0)}function U_(e,t,n){K_(e,n),de(e,()=>e.activeTexture(e.TEXTURE0+n)),de(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function KJ(e,t){K_(e,t),de(e,()=>e.activeTexture(e.TEXTURE0+t)),de(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function G_(e,t,n){return Or(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function H_(e,t,n){return e.getUniformLocation(t,n)}function q_(e,t,n,a){de(e,()=>U_(e,t,a)),de(e,()=>e.uniform1i(n,a))}function XJ(e){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),de(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),de(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Ph(e,t,n){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function pv(e,t){de(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),de(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function sc(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+j_(e,t))}function j_(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknownerror${t}`}}function Or(e,t,n){let a=de(e,()=>t());if(a==null)throw new Error(n);return a}function K_(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(a<e.TEXTURE0||a>n){let r=`[gl.TEXTURE0,gl.TEXTURE${n}]`;throw new Error(`textureUnitmustbein${r}.`)}}function vi(e,t=2){return w.sizeFromShape(e.slice(0,e.length-t))}function wi(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function ic(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[vi(e),...wi(e)]),t}function X_(e,t=!1){let n=G().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=G().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&G().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?w.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=w.squeezeShape(e).newShape);let r=w.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]
`;let s=e.shapeInfo.logicalShape,i=s.length,o=e.shapeInfo.texShape,l=[Math.ceil(o[0]/2),Math.ceil(o[1]/2)],u=l[0],p=l[1],d=Math.ceil(s[i-1]/2),c=d*Math.ceil(s[i-2]/2),h="int b, int row, int col",m=`b*${c}+(row/2)*${d}+(col/2)`;for(let f=2;f<i-1;f++)h=`intb${f},`+h,c*=s[i-f-1],m=`b${f}*${c}+`+m;return`
`}var BQ=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,n){let a=sS(t,n),r=iS(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=rS(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].pop();return this.usedTextures[r].push(o),o}let i;return a===pn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===pn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===pn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===pn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===pn.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=sS(n,a),s=iS(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=rS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=G().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l&&l.indexOf(e);if(u==null||u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l[u]=l[l.length-1],l.pop(),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures}/${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytesallocated:${this._numBytesAllocated}`),console.log(`Bytesunused:${this._numBytesFree}(${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function VQ(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknowninternalformat${t}`)}function rS(e,t,n,a,r){let s=UQ(t,a),i;if(r){let[l,u]=op(e[0],e[1]);i=l*u}else{let[l,u]=_d(e[0],e[1]);i=l*u}let o=VQ(n,s);return i*o}function UQ(e,t){switch(e){case pn.PACKED_2X2_FLOAT32:return sk(t);case pn.PACKED_2X2_FLOAT16:return ik(t);case pn.UNPACKED_FLOAT32:return nk(t);case pn.UNPACKED_FLOAT16:return ak(t);case pn.PACKED_4X1_UNSIGNED_BYTE:return rk(t);default:throw new Error(`Unknownphysicaltexturetype${e}`)}}function GQ(e){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?pn.PACKED_2X2_FLOAT32:pn.UNPACKED_FLOAT32:e?pn.PACKED_2X2_FLOAT16:pn.UNPACKED_FLOAT16}function sS(e,t){if(e===ca.UPLOAD)return pn.PACKED_2X2_FLOAT32;if(e===ca.RENDER||e==null)return GQ(t);if(e===ca.DOWNLOAD||e===ca.PIXELS)return pn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknownlogicaltexturetype${e}`)}function iS(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var rr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=xn(this.outputShape.length),this.userCode=`
`;function mee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",w.createScalarValue(s,"float32")),o=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hp($A,r.shape,i.shape):new ki(FA,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var fee={kernelName:ro,backendName:"webgl",kernelFunc:mee},DA="return (a < 0.) ? b * a : a;",RA=`
return(log(1.0+x)-log(1.0-x))/2.0;`,mte=Ze({opSnippet:hte}),fte={kernelName:Fi,backendName:"webgl",kernelFunc:mte},Ec=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch*${e.inHeight}+xR)*${e.inWidth}+xC)*${e.inChannels}+d`,g=`(xR*${e.inWidth}+xC)*${e.inChannels}+d`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=`
`}},ck=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,d=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,b=e.padInfo.left;this.outputShape=e.outShape;let y=t==="avg",x="0.0";if(y||(x="-1.0 / 1e-20"),n){let F=">=";this.userCode=`
`}},Ate=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;w.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),w.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),w.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=G().getBool("WEBGL_PACK_NORMALIZATION")?new _te(a.shape,r.shape,s.shape,p,d,l):new Ete(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},Fte={kernelName:Ji,backendName:"webgl",kernelFunc:Ate},$te=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ht(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Dte(this.rank),a,r=e.map((s,i)=>`sourceLoc.${hv[i]}=start[${i}]+coords.${hv[i]};`);a=`
`;function Yse(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=fQ(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ts(a.shape,Xse):r=new rr(a.shape,Kse),n.runWebGLProgram(r,[a],a.dtype)}var Zse={kernelName:Cu,backendName:"webgl",kernelFunc:Yse},Jse=hr.nonMaxSuppressionV3Impl;function Qse(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=Jse(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var eie={kernelName:_u,backendName:"webgl",kernelFunc:Qse},tie=hr.nonMaxSuppressionV4Impl;function nie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=tie(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var aie={kernelName:Au,backendName:"webgl",kernelFunc:nie},rie=hr.nonMaxSuppressionV5Impl;function sie(e){T.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:b}=rie(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var iie={kernelName:Fu,backendName:"webgl",kernelFunc:sie},oie=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=`
voidmain(){
ivec2coords=getOutputCoords();
intindex=round(getIndices(coords.x));
setOutput(mix(float(${a}),float(${n}),
float(index==coords.y)));
}
`}},lie=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=w.sizeFromShape(r.shape),p=new oie(u,i,o,l),d=ce({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=ce({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},uie={kernelName:yo,backendName:"webgl",kernelFunc:lie};function fm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Fd({inputs:{input:a},backend:n}),s=fm({inputs:{x:r},backend:n}),i=Vf({inputs:{input:a},backend:n}),o=fm({inputs:{x:i},backend:n}),l=Fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return $d({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var pie={kernelName:Yu,backendName:"webgl",kernelFunc:fm};function nF(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=Fd({inputs:{input:a},backend:n}),s=nF({inputs:{x:r},backend:n}),i=Vf({inputs:{input:a},backend:n}),o=fm({inputs:{x:i},backend:n}),l=Fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return $d({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var cie={kernelName:$u,backendName:"webgl",kernelFunc:nF};function die(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return fv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{w.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),w.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=fv({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=BA({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var hie={kernelName:Du,backendName:"webgl",kernelFunc:die},mie=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=ht(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=`
`}},noe=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGLbackend:Reverseofrank-${n}tensorisnotyetsupported`);this.outputShape=e;let a=kn("rc",n),r=`${a[n-1]}+1<${this.outputShape[n-1]}`,s=`${a[n-2]}+1<${this.outputShape[n-2]}`,i=ht(n);n===1?this.userCode=`
`,Woe=Ze({opSnippet:zoe}),Boe={kernelName:Oo,backendName:"webgl",kernelFunc:Woe},Voe=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;w.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;b<r.shape.length;++b)l.push([0,0]);let u=[],p=aF({inputs:{x:r},backend:n,attrs:{paddings:l,constantValue:0}}),d=T.getReshaped(p.shape,s,o,!1),c=T.getPermuted(d.length,s.length,!1),h=T.getReshapedPermuted(p.shape,s,o,!1),m=ce({inputs:{x:p},backend:n,attrs:{shape:d}}),f=In({inputs:{x:m},backend:n,attrs:{perm:c}}),g=ce({inputs:{x:f},backend:n,attrs:{shape:h}});return u.push(p),u.push(m),u.push(f),u.forEach(b=>n.disposeIntermediateTensorInfo(b)),g},Uoe={kernelName:Vu,backendName:"webgl",kernelFunc:Voe};function Goe(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Denseshapemustbeavector,saw:
${s.shape}`);if(a.shape.length!==2)throw new Error(`Indicesmustbeamatrix,saw:
${a.shape}`);if(r.shape.length!==1)throw new Error(`Valuesmustbeavector,saw:
${r.shape}`);if(i.shape.length!==0)throw new Error(`Defaultvaluemustbeascalar,saw:
${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=TQ(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Hoe={kernelName:Gc,backendName:"webgl",kernelFunc:Goe};function qoe(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Inputindicesshouldbeamatrixbutreceivedshape${a.shape}`);if(r.shape.length!==1)throw new Error(`Inputshapeshouldbeavectorbutreceivedshape${r.shape}`);if(s.shape.length!==1)throw new Error(`Targetshapeshouldbeavectorbutreceivedshape${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=CQ(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var joe={kernelName:Gu,backendName:"webgl",kernelFunc:qoe};function Koe(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indicesshouldbeavectorbutreceivedshape
${r.shape}`);if(s.shape.length!==1)throw new Error(`Segmentidsshouldbeavectorbutreceivedshape
${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=TA(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Xoe={kernelName:Hc,backendName:"webgl",kernelFunc:Koe};function Yoe(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indicesshouldbeavectorbutreceivedshape
${r.shape}`);if(s.shape.length!==1)throw new Error(`Segmentidsshouldbeavectorbutreceivedshape
${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=TA(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Zoe={kernelName:qc,backendName:"webgl",kernelFunc:Yoe};function Joe(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=T.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let b=n.bufferSync(r),y=n.bufferSync(s),x=w.decodeString(n.readSync(i.dataId)[0]),v=IQ(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,v.dtype,v.values)}let m=new dk(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=ce({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var Qoe={kernelName:Hu,backendName:"webgl",kernelFunc:Joe};function ele(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=w.parseAxisParam(i,r.shape)[0],l=T.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=fp({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var tle={kernelName:Uu,backendName:"webgl",kernelFunc:ele},IS="return sqrt(x);",nle=Ze({opSnippet:IS,packedOpSnippet:IS,cpuKernelImpl:EQ}),ale={kernelName:Po,backendName:"webgl",kernelFunc:nle},rle="return x * x;",sle=Ze({opSnippet:rle}),ile={kernelName:jc,backendName:"webgl",kernelFunc:sle},SS="return (a - b) * (a - b);",ole=hn({opSnippet:SS,packedOpSnippet:SS}),lle={kernelName:Wo,backendName:"webgl",kernelFunc:ole};function ule(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;if(r.dtype!=="string")throw new Error("Input must be of datatype string");let s=n.readSync(r.dataId),i=T.fromUint8ToStringArray(s),o=_Q(i,"string",a);return n.makeTensorInfo(r.shape,"string",o)}var ple={kernelName:Kc,backendName:"webgl",kernelFunc:ule};function cle({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Da+`
`}};function mle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:v}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ce({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){w.assert(r.shape.length>=1,()=>`Inputmusthaverankatleast1,got:${r.shape.length}`);let C=Kt.computeOutShape(y,x,v),_=fp({inputs:{x:r},backend:n,attrs:{begin:y,size:C}});I=ce({inputs:{x:_},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(_)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),_=Oe(r.shape,r.dtype,C),F=AQ(h,_,v,y);I=n.makeTensorInfo(m,r.dtype,F.values)}else{let C=new hle(y,v,h);I=n.runWebGLProgram(C,[r],r.dtype)}let N=ce({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),N}var fle={kernelName:qu,backendName:"webgl",kernelFunc:mle};function gle(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=FQ(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var ble={kernelName:Xc,backendName:"webgl",kernelFunc:gle};function yle(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Inputmustbeavector,gotshape:${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimitermustbeascalar,gotshape:${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=$Q(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var xle={kernelName:Yc,backendName:"webgl",kernelFunc:yle};function vle(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=DQ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var wle={kernelName:Zc,backendName:"webgl",kernelFunc:vle},kle="return tan(x);",Ile=Ze({opSnippet:kle}),Sle={kernelName:Vo,backendName:"webgl",kernelFunc:Ile},Nle=`